{"id":139864,"date":"2025-07-31T23:11:58","date_gmt":"2025-07-31T21:11:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words"},"modified":"2025-07-31T23:11:58","modified_gmt":"2025-07-31T21:11:58","slug":"perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/news\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words","title":{"rendered":"Vier accounts op PyPI zijn gecompromitteerd en er zijn kwaadaardige releases van num2words uitgebracht.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Informatie onthuld over de slachtoffers van phishing, waarover de beheerders van de Python-pakketrepository PyPI (Python Package Index) onlangs hebben gewaarschuwd. Door het versturen van berichten waarin gebruikers worden gevraagd hun e-mailadres te bevestigen, die verwijzen naar de vervalste website pypj.org (de letter &#171;j&#187; in plaats van &#171;i&#187;), zijn de accounts van 4 begeleiders succesvol overgenomen.     <\/p>\n<p>De aanvallers genereerden uiteindelijk twee tokens voor toegang tot de API en publiceerden twee versies van het project num2words (0.5.15 en 0.5.16), die kwaadaardige code bevatten. De module num2words, die meer dan 3 miljoen downloads per maand heeft, biedt functies voor het omzetten van getallen naar tekstuele weergave. De kwaadaardige versies van num2words werden een uur na publicatie door de beheerders van PyPI verwijderd.    <\/p>\n<p>Om de bescherming van het account door middel van twee-factor-authenticatie te omzeilen, maakten de aanvallers gebruik van transparante proxy-ing van het verkeer van de phishing-site pypj.org naar de werkelijke site pypi.org, waardoor de gebruiker de indruk had dat hij met de echte PyPI-catalogus werkte. Ook de inlogpagina werd geproxiied en de aanvallers controleerden niet alleen het oorspronkelijk ingevoerde wachtwoord, maar ook het antwoord op de verificatievraag van de tweede factor van authenticatie.     <\/p>\n<p>Om toekomstige aanvallen via proxy-toegang te bestrijden, hebben de beheerders van PyPI een beveiliging ge\u00efmplementeerd die het domein controleert via JavaScript aan de clientzijde, en in geval van niet-overeenkomende hashes <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/domain\/\"   title=\"domeinen\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3189\">domeinen<\/a> geeft het een waarschuwing (de aanvaller kan op proxy-niveau echter een dergelijke scriptfiltering uitvoeren of de verificatiehash vervangen).<br \/>\n<br \/>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63656\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0436\u0435\u0440\u0442\u0432\u0430\u0445 \u0444\u0438\u0448\u0438\u043d\u0433\u0430, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0434\u043d\u044f\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index). \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\u043c \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0441\u0432\u043e\u0439 email, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 pypj.org (\u0431\u0443\u043a\u0432\u0430 &#171;j&#187; \u0432\u043c\u0435\u0441\u0442\u043e &#171;i&#187;), \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 4 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u0445. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0430\u043c\u0438 \u0431\u044b\u043b\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0432\u0430 \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-139864","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0436\u0435\u0440\u0442\u0432\u0430\u0445 \u0444\u0438\u0448\u0438\u043d\u0433\u0430, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0434\u043d\u044f\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/news\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043d\u044b 4 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 PyPI \u0438 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u044b \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b num2words | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0436\u0435\u0440\u0442\u0432\u0430\u0445 \u0444\u0438\u0448\u0438\u043d\u0433\u0430, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0434\u043d\u044f\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/news\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-07-31T21:11:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-07-31T21:11:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vier accounts in PyPI zijn gecompromitteerd en kwaadaardige releases van num2words zijn uitgegeven | ProHoster","description":"Informatie onthuld over de slachtoffers van phishing, waar de beheerders van de Python-pakketrepository PyPI (Python Package Index) recentelijk voor waarschuwden.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043d\u044b 4 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 PyPI \u0438 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u044b \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b num2words | ProHoster","og:description":"\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0436\u0435\u0440\u0442\u0432\u0430\u0445 \u0444\u0438\u0448\u0438\u043d\u0433\u0430, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0434\u043d\u044f\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index).","og:url":"https:\/\/prohoster.info\/nl\/blog\/news\/perehvacheny-4-uchyotnye-zapisi-v-pypi-i-vypushheny-vredonosnye-relizy-num2words","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-07-31T21:11:58+00:00","article:modified_time":"2025-07-31T21:11:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"139864","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-11 11:16:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 14:03:23","updated":"2026-02-11 11:16:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/139864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=139864"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/139864\/revisions"}],"predecessor-version":[{"id":160582,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/139864\/revisions\/160582"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=139864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=139864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=139864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}