GitGuardian зерттеушілері Python пакеттерінің PyPI (Python Package Index) репозиторийінде орналасқан кодта әзірлеушілер ұмытып кеткен құпия деректерді талдау нәтижелерін жариялады. 9.5 мың жобамен байланысты 5 миллионнан астам файлдар мен 450 миллион пакеттік шығарылымдарды зерттегеннен кейін құпия деректердің ағып кетуінің 56866 3938 жағдайы анықталды. Егер әртүрлі шығарылымдарда қайталанусыз бірегей деректерді ғана ескеретін болсақ, анықталған ағып кетулердің саны 2922 болды, ал кем дегенде бір ағып кетуі бар жобалар саны XNUMX болды.
Жалпы алғанда, құпия ақпараттың ағып кетуінің 150-ден астам түрі анықталды, оның ішінде қарапайым парольдер, криптографиялық кілттер, бұлттық қызметтерге кіру токендері, үздіксіз интеграциялық жүйелер мен API интерфейстері. Зерттеу кезінде кемінде 768 тіркелгі деректері белсенді болып қалды. Өзекті болып қала беретін танымал ағып кетулердің мысалдары: Azure Active Directory үшін кіру кілттері, SSH, MongoDB, MySQL және PostgreSQL үшін тіркелгі деректері, GitHub OAuth қолданбасы, Dropbox және Auth0 кілттері, Coinbase және Twilio үшін кіру параметрлері.
Танымал болып келе жатқан ағып кету түрлерінің қатарында Telegram-дағы боттарға қол жеткізуге арналған белгілер бар, олардың саны 2021 жылдың басында екі есе өсті, содан кейін 2023 жылдың көктемінде қайтадан екі есе өсті. Сондай-ақ 2020 жылдан бастап Google API-ге кіру кілттері үшін және 2022 жылдан бері ДҚБЖ тіркелгі деректері үшін ағып кетулердің тұрақты өсуі тіркелді. Ағып кетулер саны бойынша жетекші пакеттер арасында OpenAI үшін 209 кілт және Google Cloud үшін 320 кілт ұмытылған chatllm және Safire пакеттері аталды.
Ағып кетулердің ең көп саны анықталған файл түрлерінің ішінде «.py» кеңейтімі бар файлдардан басқа, .json (610 ағып кету), .md (270), PKG-INFO (240) кеңейтімі бар файлдар бар. ), METADATA (210), txt (170), сондай-ақ README файлдары (209) және test (675) деп аталатын каталогтардағы файлдар. Көптеген ағып кетулер сонымен қатар пакеттерді жасау кезінде файлдарды алып тастауды орнатудағы қателіктер мен қателерге байланысты. Мысалы, жергілікті конфигурация файлдары бар файлдарды (.cookiecutterrc, .env, .pypirc және т.б.) Git репозиторийінен «.gitignore» файлы арқылы шығаруға болады, бұл буманы жасау кезінде ескерілмейді. Атап айтқанда, PyPI-ге кіруге арналған тіркелгі деректері бар репозиторийден 43 .pypirc файлы табылды. 15 ағып кетуде әзірлеушілер бастапқыда ішкі пайдалану үшін жасалған пакеттерді көпшілікке жариялауды мақсат етпеді, бірақ оларды қателікпен PyPI-де жариялады.
Сонымен қатар, PyPI-ге қатысты тағы екі оқиғаны атап өтуге болады:
- PyPI репозиторийінде 8 зиянды пакет анықталды, олар жасыру үшін утилиталар ретінде ұсынылды, яғни. кодты оқылмайтын пішінге дейін азайту, алгоритмді қалпына келтіруді қиындату. Анықталған бумалардың атауларында "pyobf" жолы болды (Pyobftoexe, Pyobfusfile, Pyobfeexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse және pyobfgood) және 2000-нан астам рет жүктелді.
Пакеттерге енгізілген зиянды код платформаға тән болды Windows және сыртқы басқару элементіне қосылуға рұқсат етілген сервер, әзірлеушінің компьютерінде кездейсоқ командаларды орындау, кіру кілттері сияқты құпия ақпаратты тауып, сыртқы серверге жіберу және жүйеден кездейсоқ файлдарды тасымалдау. Сонымен қатар, зиянды код пернетақтаны қадағалап, Chrome браузеріне енгізілген құпия сөздерді ұстап алып, скриншоттар жасап, аудио жазып, тіпті веб-камераны басқаруы мүмкін.
- pypi.org репозиторийінің жұмысын ұйымдастыру үшін қолданылатын құралдардың кодтық базасына және контейнерлік оркестрлік инфрақұрылымда қолданылатын каботаждық негізге тәуелсіз аудиттің нәтижелері жарияланды. Аудит OTF (Ашық технологиялар қоры) коммерциялық емес ұйымының қолдауымен жүргізілді. Аудит барысында қауіптілік деңгейі жоғары проблемалар анықталмады, бастапқы кодтар қауіпсіз кодтаудың негізгі талаптарына сәйкес деп танылды. Сонымен қатар, каботаждық кодтық базаны тестілеумен қамтудың жеткіліксіздігі атап өтілді және 29 мәселе анықталды, оның ішінде сегізіне қауіптіліктің орташа деңгейі, 6-сына - төмен, 14-іне ақпараттық түсініктеме ретінде белгіленді.
Ең елеулі проблемалар:
- PyPI-ді AWS SNS-пен біріктіру үшін пайдаланылатын сандық қолтаңбаларды тексерудің жеткіліксіздігі хабарландыруларды жеке пайдаланушылардың электрондық пошталарына жіберуге мүмкіндік берді.
- Жүйеге кіру әрекеттері туралы оқиғаларды жасамай, тіркелгінің бар-жоғын анықтауға мүмкіндік беретін жүктеу өңдегішіндегі ақпараттың ағуы.
- Кэшті улану шабуылдарын жоққа шығармайтын сенімсіз криптографиялық хэштерді пайдалану.
- Егер сізде каботаж арқылы құрастыру процестерін іске қосу құқығыңыз болса, шабуылдаушы өз командаларын ауыстыруға қол жеткізуі мүмкін.
- Каботажда орналастыру құқықтарымен шабуылдаушы заңды көрінетін кескінді орналастыруы мүмкін.
Ақпарат көзі: opennet.ru
