{"id":111737,"date":"2023-11-24T21:10:15","date_gmt":"2023-11-24T19:10:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov"},"modified":"2023-11-24T21:10:15","modified_gmt":"2023-11-24T19:10:15","slug":"v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov","title":{"rendered":"Nel repository PyPI sono stati individuati circa 5000 segreti dimenticati nel codice e 8 offuscatori malevoli.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>I ricercatori di GitGuardian hanno pubblicato i risultati di un'analisi su dati riservati dimenticati dagli sviluppatori nel codice ospitato nel repository dei pacchetti Python PyPI (Python Package Index). Dopo aver esaminato oltre 9.5 milioni di file e 5 milioni di versioni di pacchetti, associati a 450.000 progetti, sono stati registrati 56.866 casi di fuga di dati riservati. Se si considerano solo i dati unici, senza duplicati in diverse versioni, il numero di fughe rilevate \u00e8 stato di 3.938, con 2.922 progetti che presentano almeno una fuga.      <\/p>\n<p>Sono stati identificati oltre 150 tipi di esposizione di informazioni riservate, tra cui comuni password, chiavi crittografiche, token di accesso a servizi cloud, sistemi di integrazione continua e API. Almeno 768 credenziali erano ancora valide al momento della ricerca. Tra gli esempi di esposizioni popolari e rilevanti ci sono le chiavi di accesso a Azure Active Directory, credenziali per SSH, MongoDB, MySQL e PostgreSQL, chiavi per GitHub OAuth App, Dropbox e Auth0, e dati di accesso a Coinbase e Twilio.      <\/p>\n<p>Tra i tipi di fuga in aumento, si segnalano i token di accesso per bot su Telegram, il cui numero \u00e8 raddoppiato all'inizio del 2021 e raddoppiato nuovamente nella primavera del 2023. Anche una continua crescita delle fughe \u00e8 registrata dal 2020 per le chiavi di accesso all'API di Google e dal 2022 per le credenziali dei database. Tra i pacchetti che guidano il numero di fughe si segnalano chatllm e safire, nei quali sono stati dimenticati 209 chiavi di OpenAI e 320 chiavi di Google Cloud.        <\/p>\n<p>Tra i tipi di file in cui si sono registrate il maggior numero di fughe, oltre ai file con estensione '.py', figurano i file con estensione .json (610 fughe), .md (270), PKG-INFO (240), METADATA (210), .txt (170), e anche file README (209) e file in cartelle chiamate test (675). Molte fughe sono anche correlate a negligenza e errori nella configurazione delle eccezioni dei file durante la creazione dei pacchetti. Ad esempio, i file con configurazione locale (.cookiecutterrc, .env, .pypirc, ecc.) possono essere esclusi dal repository Git tramite un file '.gitignore', che non viene considerato nella creazione del pacchetto. In particolare, nel repository sono stati trovati 43 file .pypirc contenenti credenziali per l'accesso a PyPI. In 15 casi di fuga, gli sviluppatori non intendevano pubblicare pacchetti destinati all'uso interno, ma li hanno pubblicati per errore su PyPI.    <\/p>\n<p>In aggiunta, si possono menzionare altri due eventi legati a PyPI:  <\/p>\n<ul>\n<li class=\"l\"> Nel repository PyPI sono stati identificati 8 pacchetti dannosi, presentati come utility per l'obfuscazione, cio\u00e8 per rendere il codice illeggibile, complicando il recupero dell'algoritmo di funzionamento. I pacchetti identificati contenevano nella loro denominazione la stringa 'pyobf' (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse e pyobfgood) e sono stati scaricati pi\u00f9 di 2000 volte.\n<p>Il codice malevolo integrato nei pacchetti era specifico per la piattaforma Windows e permetteva di connettersi a un controller esterno <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-shicago\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2914\">server<\/a>, eseguire comandi arbitrari sul computer dello sviluppatore, trovare e inviare a un server esterno informazioni riservate, come chiavi di accesso, e trasferire file arbitrari dal sistema. Inoltre, il codice malevolo poteva svolgere funzioni di keylogger, intercettare le password inserite in Chrome, creare screenshot, registrare audio e persino controllare la webcam.          <\/p>\n<li class=\"l\"> Sono stati pubblicati i risultati di un audit indipendente sulla base di codice degli strumenti utilizzati per gestire il repository pypi.org e sul framework 'cabotage', coinvolto nell'infrastruttura per l'orchestrazione dei container. L'audit \u00e8 stato condotto con il supporto dell'organizzazione senza scopo di lucro OTF (Open Technology Fund). Durante l'audit non sono stati riscontrati problemi di alto rischio e i testi sorgente sono stati considerati conformi ai requisiti di base per una scrittura di codice sicura. Tuttavia, \u00e8 stata segnalata una copertura inadeguata dei test sulla base di codice cabotage e sono state identificate 29 problematiche, di cui otto classificate come moderatamente pericolose, 6 come a basso rischio e 14 come osservazioni informativa.\n<p>Problemi pi\u00f9 evidenti:  <\/p>\n<ul>\n<li class=\"l\"> Una verifica insufficiente delle firme digitali utilizzate per l'integrazione di PyPI con AWS SNS consentiva l'invio di notifiche via email a singoli utenti.\n<li class=\"l\"> Una perdita di informazioni nel gestore dei caricamenti, che permette di determinare l'esistenza di un account senza generare eventi di tentativi di accesso.\n<li class=\"l\"> Utilizzo di hash crittografici non affidabili, che non escludono attacchi di avvelenamento della cache.\n<li class=\"l\"> Se i diritti per avviare processi di build sono presenti attraverso cabotage, l'attaccante potrebbe potenzialmente inserire i propri comandi.\n<li class=\"l\"> Se i diritti di deploy sono presenti in cabotage, l'attaccante potrebbe potenzialmente distribuire un'immagine dall'aspetto legittimo.  <\/ul>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60169\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0438 GitGuardian \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u0431\u044b\u0442\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index). \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 9.5 \u043c\u043b\u043d \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 5 \u043c\u043b\u043d \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 450 \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e 56866 \u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u0442\u0435\u0447\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445, \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0442\u0435\u0447\u0435\u043a [&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-111737","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0438 GitGuardian \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u0431\u044b\u0442\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index). \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 9.5 \u043c\u043b\u043d \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 5 \u043c\u043b\u043d \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 450 \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e 56866 \u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u0442\u0435\u0447\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445, \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0442\u0435\u0447\u0435\u043a\" \/>\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\/it\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 PyPI \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u043a\u043e\u043b\u043e 5000 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u0434\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0438 8 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0445 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0438 GitGuardian \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u0431\u044b\u0442\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index). \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 9.5 \u043c\u043b\u043d \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 5 \u043c\u043b\u043d \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 450 \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e 56866 \u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u0442\u0435\u0447\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445, \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0442\u0435\u0447\u0435\u043a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov\" \/>\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=\"2023-11-24T19:10:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-11-24T19:10:15+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\udd47Circa 5000 segreti lasciati nel codice e 8 offuscatori dannosi rilevati nel repository PyPI | ProHoster","description":"I ricercatori di GitGuardian hanno pubblicato i risultati di un'analisi su dati riservati dimenticati dagli sviluppatori nel codice ospitato nel repository dei pacchetti Python PyPI (Python Package Index). Dopo aver esaminato oltre 9,5 milioni di file e 5 milioni di versioni di pacchetti correlate a 450 mila progetti, sono stati individuati 56866 casi di fuga di dati sensibili. Considerando solo i dati unici, senza duplicazioni in diverse versioni, il numero di perdite rilevate","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 PyPI \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u043a\u043e\u043b\u043e 5000 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u0434\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0438 8 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0445 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u043e\u0432 | ProHoster","og:description":"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0438 GitGuardian \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u0431\u044b\u0442\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Python-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 PyPI (Python Package Index). \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 9.5 \u043c\u043b\u043d \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 5 \u043c\u043b\u043d \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 450 \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e 56866 \u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u0442\u0435\u0447\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445, \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0442\u0435\u0447\u0435\u043a","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov","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":"2023-11-24T19:10:15+00:00","article:modified_time":"2023-11-24T19:10:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"111737","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 21:42:03","updated":"2026-02-09 21:42:03","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/111737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=111737"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/111737\/revisions"}],"predecessor-version":[{"id":160194,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/111737\/revisions\/160194"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=111737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=111737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=111737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}