{"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\/cs\/blog\/news\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov","title":{"rendered":"V repozit\u00e1\u0159i PyPI bylo objeveno p\u0159ibli\u017en\u011b 5000 zanechan\u00fdch tajemstv\u00ed v k\u00f3du a 8 \u0161kodliv\u00fdch obfuskr\u00e1tor\u016f","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V\u00fdzkumn\u00edci z GitGuardian zve\u0159ejnili v\u00fdsledky anal\u00fdzy citliv\u00fdch dat, kter\u00e9 v\u00fdvoj\u00e1\u0159i zapomn\u011bli v k\u00f3du nahran\u00e9m do repozit\u00e1\u0159e bal\u00ed\u010dk\u016f Pythonu PyPI (Python Package Index). Po prozkoum\u00e1n\u00ed v\u00edce ne\u017e 9,5 milionu soubor\u016f a 5 milion\u016f vyd\u00e1n\u00ed bal\u00ed\u010dk\u016f souvisej\u00edc\u00edch s 450 tis\u00edci projekty bylo zji\u0161t\u011bno 56866 p\u0159\u00edpad\u016f \u00faniku citliv\u00fdch dat. Pokud zohledn\u00edme pouze unik\u00e1tn\u00ed data, bez duplicity v r\u016fzn\u00fdch vyd\u00e1n\u00edch, byl po\u010det zji\u0161t\u011bn\u00fdch \u00fanik\u016f 3938 a po\u010det projekt\u016f, ve kter\u00fdch se nach\u00e1z\u00ed alespo\u0148 jeden \u00fanik \u2014 2922.      <\/p>\n<p>Celkem bylo identifikov\u00e1no v\u00edce ne\u017e 150 typ\u016f \u00fanik\u016f citliv\u00fdch informac\u00ed, mezi nimi\u017e jsou b\u011b\u017en\u00e1 hesla, kryptografick\u00e9 kl\u00ed\u010de, p\u0159\u00edstupov\u00e9 tokeny k cloudov\u00fdm slu\u017eb\u00e1m, syst\u00e9m\u016fm kontinu\u00e1ln\u00ed integrace a API. Minim\u00e1ln\u011b 768 p\u0159ihla\u0161ovac\u00edch \u00fadaj\u016f z\u016fst\u00e1valo platn\u00fdch v dob\u011b prov\u00e1d\u011bn\u00ed v\u00fdzkumu. Jako p\u0159\u00edklady popul\u00e1rn\u00edch \u00fanik\u016f, kter\u00e9 si udr\u017euj\u00ed aktu\u00e1lnost, jsou zm\u00edn\u011bny p\u0159\u00edstupov\u00e9 kl\u00ed\u010de k Azure Active Directory, p\u0159ihla\u0161ovac\u00ed \u00fadaje k SSH, MongoDB, MySQL a PostgreSQL, kl\u00ed\u010de k GitHub OAuth App, Dropbox a Auth0, a p\u0159ihla\u0161ovac\u00ed \u00fadaje k Coinbase a Twilio.      <\/p>\n<p>Mezi st\u00e1le popul\u00e1rn\u011bj\u0161\u00edmi typy \u00fanik\u016f se zmi\u0148uj\u00ed tokeny pro p\u0159\u00edstup k bot\u016fm na Telegramu, jejich\u017e po\u010det se na za\u010d\u00e1tku roku 2021 zdvojn\u00e1sobil a pot\u00e9 se je\u0161t\u011b jednou zdvojn\u00e1sobil na ja\u0159e roku 2023. St\u00e1l\u00fd r\u016fst \u00fanik\u016f je tak\u00e9 zaznamen\u00e1n od roku 2020 u kl\u00ed\u010d\u016f pro p\u0159\u00edstup k Google API, a od roku 2022 \u2014 u p\u0159ihla\u0161ovac\u00edch \u00fadaj\u016f k datab\u00e1zov\u00fdm syst\u00e9m\u016fm. Mezi bal\u00ed\u010dky, kter\u00e9 vedou podle po\u010dtu \u00fanik\u016f, se zmi\u0148uj\u00ed bal\u00ed\u010dky chatllm a safire, v nich\u017e bylo zapomn\u011bno 209 kl\u00ed\u010d\u016f k OpenAI a 320 kl\u00ed\u010d\u016f k Google Cloud.        <\/p>\n<p>Mezi typy soubor\u016f, ve kter\u00fdch bylo zji\u0161t\u011bno nejv\u00edce \u00fanik\u016f, krom\u011b soubor\u016f s p\u0159\u00edponou .py, se zmi\u0148uj\u00ed soubory s p\u0159\u00edponou .json (610 \u00fanik\u016f), .md (270), PKG-INFO (240), METADATA (210), .txt (170), a tak\u00e9 soubory README (209) a soubory z adres\u00e1\u0159\u016f pojmenovan\u00fdch test (675). Mnoho \u00fanik\u016f souvis\u00ed tak\u00e9 s opomenut\u00edm a chybami v nastaven\u00ed v\u00fdjimek soubor\u016f p\u0159i vytv\u00e1\u0159en\u00ed bal\u00ed\u010dk\u016f. Nap\u0159\u00edklad soubory s m\u00edstn\u00edmi konfigura\u010dn\u00edmi soubory (.cookiecutterrc, .env, .pypirc atd.) mohou b\u00fdt vylou\u010deny z Gitu pomoc\u00ed souboru .gitignore, kter\u00fd se nezohled\u0148uje p\u0159i vytv\u00e1\u0159en\u00ed bal\u00ed\u010dku. Konkr\u00e9tn\u011b bylo v repozit\u00e1\u0159i nalezeno 43 soubor\u016f .pypirc, obsahuj\u00edc\u00edch p\u0159ihla\u0161ovac\u00ed \u00fadaje pro p\u0159\u00edstup k PyPI. V 15 p\u0159\u00edpadech \u00fanik\u016f v\u00fdvoj\u00e1\u0159i nepl\u00e1novali ve\u0159ejn\u00e9 publikov\u00e1n\u00ed bal\u00ed\u010dk\u016f, kter\u00e9 byly p\u016fvodn\u011b vytvo\u0159eny pro intern\u00ed pou\u017eit\u00ed, ale omylem je zve\u0159ejnili v PyPI.    <\/p>\n<p>D\u00e1le lze zm\u00ednit je\u0161t\u011b dv\u011b ud\u00e1losti spojen\u00e9 s PyPI:  <\/p>\n<ul>\n<li class=\"l\"> V repozit\u00e1\u0159i PyPI bylo zji\u0161t\u011bno 8 \u0161kodliv\u00fdch bal\u00ed\u010dk\u016f, p\u0159edstaven\u00fdch jako utility pro obfuskov\u00e1n\u00ed, tzn. p\u0159eveden\u00ed k\u00f3du do ne\u010diteln\u00fdch podob, kter\u00e9 zt\u011b\u017euj\u00ed obnovu algoritmu pr\u00e1ce. Zjist\u011bn\u00e9 bal\u00ed\u010dky obsahovaly ve sv\u00fdch n\u00e1zvech \u0159et\u011bzec \"pyobf\" (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse a pyobfgood) a byly sta\u017eeny v\u00edce ne\u017e 2000kr\u00e1t.\n<p>Integrovan\u00fd \u0161kodliv\u00fd k\u00f3d byl specifick\u00fd pro platformu Windows a umo\u017e\u0148oval p\u0159ipojov\u00e1n\u00ed k extern\u00edmu ovl\u00e1dac\u00edmu <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/dts-shicago\/\"   title=\"serveru\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2914\">serveru<\/a>, spou\u0161t\u011bt libovoln\u00e9 p\u0159\u00edkazy na po\u010d\u00edta\u010di v\u00fdvoj\u00e1\u0159e, vyhled\u00e1vat a odes\u00edlat na extern\u00ed server d\u016fv\u011brn\u00e9 informace, jako jsou p\u0159\u00edstupov\u00e9 kl\u00ed\u010de, a tak\u00e9 p\u0159ed\u00e1vat libovoln\u00e9 soubory ze syst\u00e9mu. Krom\u011b toho mohl \u0161kodliv\u00fd k\u00f3d plnit funkce keyloggeru, zachycovat zad\u00e1van\u00e1 hesla v Chromu, vytv\u00e1\u0159et sn\u00edmky obrazovky, nahr\u00e1vat zvuk a dokonce ovl\u00e1dat webovou kameru.          <\/p>\n<li class=\"l\"> Byly zve\u0159ejn\u011bny v\u00fdsledky nez\u00e1visl\u00e9ho auditu k\u00f3du n\u00e1stroj\u016f pou\u017e\u00edvan\u00fdch k organizaci pracovn\u00edho procesu repozit\u00e1\u0159e pypi.org a frameworku \u201ecabotage\u201c, kter\u00fd je zapojen do infrastruktury pro orchestraci kontejner\u016f. Audit byl proveden s podporou neziskov\u00e9 organizace OTF (Open Technology Fund). B\u011bhem auditu nebyly zji\u0161t\u011bny \u017e\u00e1dn\u00e9 probl\u00e9my s vysokou \u00farovn\u00ed nebezpe\u010d\u00ed a v\u00fdchoz\u00ed k\u00f3dy byly uzn\u00e1ny za spl\u0148uj\u00edc\u00ed z\u00e1kladn\u00ed po\u017eadavky na bezpe\u010dn\u00e9 psan\u00ed k\u00f3du. Nicm\u00e9n\u011b byl zaznamen\u00e1n nedostate\u010dn\u00fd pokryt\u00ed testy k\u00f3du cabotage a bylo zji\u0161t\u011bno 29 probl\u00e9m\u016f, z nich\u017e osmi byl p\u0159i\u0159azen m\u00edrn\u00fd \u00farove\u0148 nebezpe\u010d\u00ed, 6 \u2014 n\u00edzk\u00fd a 14 bylo ozna\u010deno jako informativn\u00ed pozn\u00e1mky.\n<p>Nejv\u00fdrazn\u011bj\u0161\u00ed probl\u00e9my:  <\/p>\n<ul>\n<li class=\"l\"> Nedostate\u010dn\u00e9 ov\u011b\u0159ov\u00e1n\u00ed digit\u00e1ln\u00edch podpis\u016f pou\u017e\u00edvan\u00fdch pro integraci PyPI s AWS SNS umo\u017enilo pos\u00edlat ozn\u00e1men\u00ed na email jednotliv\u00fdch u\u017eivatel\u016f.\n<li class=\"l\"> \u00danik informac\u00ed v handleru pro nahr\u00e1v\u00e1n\u00ed, kter\u00fd umo\u017e\u0148uje zjistit existenci \u00fa\u010dtu bez generov\u00e1n\u00ed ud\u00e1lost\u00ed o pokusech o p\u0159ihl\u00e1\u0161en\u00ed.\n<li class=\"l\"> Pou\u017eit\u00ed nespolehliv\u00fdch kryptografick\u00fdch hash\u016f, kter\u00e9 nevylu\u010duj\u00ed \u00fatoky na otravu cache.\n<li class=\"l\"> P\u0159i pr\u00e1vech spu\u0161t\u011bn\u00ed proces\u016f sestaven\u00ed p\u0159es cabotage by \u00fato\u010dn\u00edk potenci\u00e1ln\u011b mohl dos\u00e1hnout prosazen\u00ed sv\u00fdch p\u0159\u00edkaz\u016f.\n<li class=\"l\"> P\u0159i pr\u00e1vech nasazen\u00ed (deployment) v cabotage by \u00fato\u010dn\u00edk potenci\u00e1ln\u011b mohl nasadit legitimn\u011b vypadaj\u00edc\u00ed obraz.  <\/ul>\n<\/ul>\n<p>Zdroj: <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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - 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).\" \/>\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\/cs\/blog\/news\/v-repozitorii-pypi-vyyavleno-okolo-5000-ostavlennyh-v-kode-sekretov-i-8-vredonosnyh-obfuskatorov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/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\udd47 V repozit\u00e1\u0159i PyPI bylo zji\u0161t\u011bno p\u0159ibli\u017en\u011b 5000 zapomenut\u00fdch tajemstv\u00ed v k\u00f3du a 8 \u0161kodliv\u00fdch obfuska\u010dn\u00edch n\u00e1stroj\u016f | ProHoster","description":"V\u00fdzkumn\u00edci GitGuardian zve\u0159ejnili v\u00fdsledky anal\u00fdzy d\u016fv\u011brn\u00fdch dat, kter\u00e9 v\u00fdvoj\u00e1\u0159i zapomn\u011bli v k\u00f3du um\u00edst\u011bn\u00e9m v repozit\u00e1\u0159i Python bal\u00ed\u010dk\u016f PyPI (Python Package Index).","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/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":"cs_CZ","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).","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/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\/cs\/wp-json\/wp\/v2\/posts\/111737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=111737"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/111737\/revisions"}],"predecessor-version":[{"id":160194,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/111737\/revisions\/160194"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=111737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=111737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=111737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}