Атака на типоклек
Изглежда, че всички мерки за сигурност, върху които са работили в хранилището за пакети на Python PyPI (Python Package Index), не са били много ефективни, тъй като въпреки че са принудили потребителите да използват двуфакторно удостоверяване и са внедрили мерки за сигурност, за да предотвратят въвеждането на злонамерени пакети, доколкото е възможно, те все още продължават да имат голям брой проблеми с него.
И един от големите проблеми, които измъчват NPM, е явното зареждане на злонамерени пакети, което е проблем, който имаше през последните години и не успя да изкорени и причината да се спомене това е, че тази ситуация е същата като PyPi изпитва, макар и в по-малка степен, тъй като са правени опити за внедряване на различни защитни филтри и споменавам опитите, защото продължават да се появяват злонамерени пакети.
Причината да се спомене това е, че наскоро беше наложена временна забрана за регистрация на нови потребители и създаване на нови проекти в хранилището за пакети на Python PyPI поради продължаваща автоматизирана атака , довела до масово изтегляне на злонамерени пакети. Тази мярка беше взета, след като на 26 и 27 март в хранилището бяха качени 566 пакета, съдържащи злонамерен код, който имитира стила на 16 популярни библиотеки на Python.
Имената на тези злонамерени пакети се формират с помощта на техники за типосквотинг, които включват присвояване на сходни имена само с незначителни разлики в отделните символи. Например, използват се имена като „temsorflow“ вместо „tensorflow“, „requyests“ вместо „requests“ и „asyincio“ вместо „asyncio“. Тези атаки използват разсейването на потребителите, тъй като те могат да правят печатни грешки, когато търсят или следват връзки във форуми и чат стаи, където нападателите оставят подвеждащи инструкции.
Злонамерените пакети са базирани на код от легитимни библиотеки и включват промени, които инсталират зловреден софтуер в системата. Този зловреден софтуер търси и изпраща чувствителни данни и файлове, като пароли, ключове за достъп, портфейли с криптовалута, токени и бисквитки за сесия. Злонамереният код е вграден във файла setup.py, който се изпълнява по време на инсталирането на пакета и когато се активира, изтегля злонамерени компоненти от външен сървър.
Тази автоматизирана typosquat атака беше извършена за няколко часа в няколко бързи изблици, видя освобождаването на над 500 пакета и беше насочена към 16 популярни пакета PyPI. Въпреки че бързият и силен отговор на PyPI със сигурност помогна за смекчаване на последствията от тази атака, заслужава да се отбележи, че не всички екосистеми са толкова бързи и ефективни при справяне с такава атака.
Атаката срещу хранилището на PyPI беше доста мащабна и засегна няколко популярни Python библиотеки . Нападателите успяха да изтеглят злонамерени варианти на пакети като TensorFlow, BeautifulSoup, PyGame, SimpleJson, Matplotlib, PyTorch, CustomTKInter, Selenium, Dramaturgo, Asincio и Request. Освен това бяха идентифицирани изолирани случаи на фалшифицирани библиотеки като py-cord, colorama, capmonstercloudclient, pillow и bip-utils.
Що се отнася до атаката срещу общността Top.gg, нападателят компрометира GitHub акаунта на един от разработчиците, което му позволява да открадне бисквитки на браузъра и да направи злонамерени промени.
Три злонамерени пакета бяха добавени към хранилището на PyPI и бяха регистрирани фалшиви домейни за разпространение на зависимости от злонамерени пакети. Чрез хакнат акаунт е направена промяна в хранилището на GitHub на проекта Top.gg, където е добавен файл requirements.txt, съдържащ линк към злонамерен клонинг на пакета „colorama“, хостван на фалшив домейн. Целта беше да се подмамят разработчиците да изтеглят злонамерената версия на пакета, тъй като фалшивият домейн приличаше на легитимния домейн, използван за изтегляне на пакети от PyPI.
Тези атаки подчертават важността на сигурността в хранилищата на пакети и необходимостта потребителите и разработчиците да бъдат нащрек за възможни опити за компрометиране на сигурността и изтегляне на зловреден софтуер.
Ако се интересувате да научите повече, можете да намерите подробности на следния линк.