В репозиторийнa на PyPI бяха открити около 5000 забравени в кода тайни и 8 злонамерени обфускатора.

Изследователи на GitGuardian публикуваха резултатите от анализа на конфиденциални данни, забравени от разработчици в код, публикуван в репозитория на Python пакетите PyPI (Python Package Index). След проучване на над 9.5 млн файла и 5 млн релиза на пакети, свързани с 450 хиляди проекта, бяха установени 56866 случая на изтичане на конфиденциални данни. Ако се вземат предвид само уникалните данни без дублиране в различни релизи, броят на откритите изтичания е 3938, а броят на проектите, в които има поне едно изтичане — 2922.

Общо са идентифицирани над 150 типа изтичания на конфиденциална информация, сред които обикновени пароли, криптографски ключове, токени за достъп до облачни услуги, системи за непрекъсната интеграция и API. Най-малко 768 облекчения останаха валидни по време на проведеното проучване. Като пример за популярни изтичания, които остават актуални, се споменават ключовете за достъп до Azure Active Directory, данни за SSH, MongoDB, MySQL и PostgreSQL, ключовете за GitHub OAuth App, Dropbox и Auth0, параметри за вход в Coinbase и Twilio.

От набиращите популярност типове изтичания се споменават токени за достъп до ботове в Telegram, броят на които се удвои в началото на 2021 година, а след това отново се удвои през пролетта на 2023 година. Постоянен ръст на изтичанията също се документира от 2020 година за ключове за достъп до Google API, а от 2022 година — за данни за бази данни. От пакетите, водещи по брой изтичания, се споменават пакетите chatllm и safire, в които бяха забравени 209 ключа за OpenAI и 320 ключа за Google Cloud.

Сред файловете, в които е открито най-голямо количество изтичания, освен файловете с разширение «.py», се отбелязват файлове с разширение .json (610 изтичания), .md (270), PKG-INFO (240), METADATA (210), .txt (170), както и файловете README (209) и файлове от директории с името test (675). Много изтичания също са свързани с невнимание и грешки при настройване на изключенията за файлове при създаване на пакети. Например, файловете с локални конфигурации (.cookiecutterrc, .env, .pypirc и т.н.) могат да бъдат изключвани от Git репозитория чрез файла «.gitignore», който не се взема предвид при създаване на пакета. В частност, в репозитория бяха открити 43 файла .pypirc, съдържащи удостоверителни данни за достъп до PyPI. В 15 случая на изтичане, разработчиците не планираха да публикуват публично пакети, първоначално създадени за вътрешна употреба, но погрешка ги публикуваха в PyPI.

Допълнително могат да се споменат още две събития, свързани с PyPI:

  • В репозитория PyPI са открити 8 злонамерени пакета, представени като утилити за обфускация, т.е. превеждане на кода в нечетим вид, усложняващ възстановяването на алгоритъма на работа. Откритите пакети съдържаха в имената си стринга «pyobf» (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse и pyobfgood) и са били свалени повече от 2000 пъти.

    Интегрираният в пакетите злонамерен код беше специфичен за платформата Windows и позволяваше свързване с външен контролер сървъра, изпълняване на произволни команди на компютъра на разработчика, намиране и изпращане на конфиденциална информация на външен сървър, като например удостоверителни ключове, както и предаване на произволни файлове от системата. Освен това, злонамереният код можеше да изпълнява функции на кейлогер, да перехваща пароли, въведени в Chrome, да прави екранни снимки, да записва звук и дори да контролира уеб камерата.

  • Опубликвани са резултатите от независимата проверка на кодовата база на инструмента, използван за организацията на работата на хранилището pypi.org, и на фреймуърка "cabotage", използван в инфраструктурата за оркестрация на контейнери. Проверката е проведена с подкрепата на неправителствената организация OTF (Open Technology Fund). По време на проверката не са открити проблеми с висок риск, а изходният код е признат за отговарящ на основните изисквания за безопасно писане на код. Въпреки това, е отбелязан недостатъчният обхват на тестовете на кодовата база на cabotage и са установени 29 проблеми, от които на осем е присвоен умерен риск, на 6 – нисък, а 14 са отбелязани като информативни бележки.

    Най-забележимите проблеми:

    • Недостатъчна проверка на цифровите подписи, използвани за интеграцията на PyPI с AWS SNS, позволяваща изпращането на известия по имейл до отделни потребители.
    • Изтичане на информация в обработчика на качвания, позволяващо установяване на съществуването на акаунт без генериране на събития за опити за вход.
    • Използване на ненадеждни криптографски хешове, които не изключват атаки за отравяне на кеша.
    • При наличие на права за стартиране на процеси за изграждане чрез cabotage, атакуващият потенциално би могъл да подмени свои команди.
    • При наличие на права за разгръщане (deployment) в cabotage, атакуващият потенциално би могъл да разгръща легитимно изглеждащ образ.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster