Уязвимости в проектах open-source годами остаются незамеченными

Уязвимости в проектах open-source годами остаются незамеченными

Уязвимости в проектах open-source годами остаются незамеченными

Создавая программы для бизнеса, разработчики все больше полагаются на компоненты с открытым исходным кодом. Проведенное в GitHub исследование показало, что современные приложения могут на 80% состоять из зависимостей, поэтому безопасность последних особенно важна. К сожалению, уязвимости в кодах, связанных зависимостью, выявляются в основном случайно и могут просуществовать без внимания более четырех лет.

Инструментарий на GitHub позволяет быстро оповещать разработчиков о новых брешах в проектах open-source и наличии патчей, но проблема детектирования таких нарушений безопасности сильно тревожит операторов сервиса. Чтобы определить масштабы бедствия, исследователи изучили (PDF) содержимое 45 тыс. открытых репозиториев, активных как минимум два года — с октября 2018-го по сентябрь текущего.

Найденные связные компоненты были разделены на пять групп в зависимости от языка, на котором они написаны (PHP, Java, JavaScript, .NET, Python и Ruby). Как оказалось, чаще всего разработчики используют сторонние библиотеки JavaScript (94% приложений), Ruby и .NET (по 90%).

Темпы латания брешей в пакетах open-source оказались приемлемыми: участники сообщества закрывают их в течение месяца, и пользователи, получив извещение, обычно успевают за неделю внести исправления в свой продукт. Однако далеко не все оповещения GitHub заслуживают пристального внимания — в 83% случаев предметом алерта оказалась ошибка, не составляющая угрозу безопасности. Остальные предупреждения были оправданными: в open-source объявилась уязвимость (или бэкдор). К сожалению, такие проблемы в основном находят в заброшенных или редко используемых проектах.

Исправить ситуацию, по мнению исследователей, можно лишь объединенными усилиями разработчиков, операторов хранилищ и пользователей. Все они должны регулярно проверять зависимости в коде на уязвимость, а также расширять использование средств автоматизации оповещений и патчинга связных кодов — по данным GitHub, это поможет ускорить латание дыр в приложениях в 1,4 раза.

Из брешей, зафиксированных в 2020 году, наиболее опасными исследователи сочли Curveball (CVE-2020-0601), SMBGhost (CVE-2020-0796) и Zerologon (CVE-2020-1472). Эти уязвимости затронули большое количество разработок и поставили под угрозу множество оконечных устройств и корпоративных сетей.

С точки зрения патчинга весьма неприятна также CVE-2020-8203 в npm-пакете lodash, которая позволяет внести нежелательные изменения в прототип объекта JavaScript. Исследование показало, что сценарий lodash пользуется большой популярностью у разработчиков бизнес-программ, и появление CVE-2020-8203 вызвало более пяти млн алертов, запущенных с помощью бота GitHub.

Подпишитесь на новости

Я что-то сломал: Claude удалил 48 тысяч файлов вместо создания зеркала

Разработчик попросил Claude Code собрать зеркало проекта, а получил целый набор проблем. ИИ-агент создал скрипт очистки и за 103 секунды удалил 48 218 рабочих файлов, заодно уничтожив хранилище объектов Git. Полностью восстановить данные не удалось.

Об инциденте сообщило издание Cyber Security News со ссылкой на отчёт разработчика и публикацию на площадке Reddit.

После завершения операции Claude выдал лаконичное признание: «Я что-то сломал». Пост, собравший более 800 комментариев, позднее удалили с платформы.

Проблема возникла при пересоздании зеркала проекта в Windows. Агент решил сначала убрать старую копию и написал для этого Python-скрипт. Однако временный каталог содержал 614 junction-ссылок, ведущих обратно в рабочее дерево. Скрипт ошибочно принял связанные директории за обычные и отправился вычищать уже не зеркало, а оригинал.


Под раздачу попали не только файлы приложения, но и каталоги .git/objects, refs и logs. Индекс Git сохранил перечень из 7221 пути, однако сами объекты исчезли. Команда git log перестала видеть коммиты.

Вероятно, разрушительный сценарий стал возможен из-за запуска Claude Code в режиме bypassPermissions, который не спрашивает подтверждения перед выполнением команд.

Anthropic рекомендует использовать его только в изолированных контейнерах или виртуальных машинах. Контрольные точки тоже не гарантируют спасения: удаления, выполненные через Bash или PowerShell, могут не отслеживаться для последующего отката.

RSS: Новости на портале Anti-Malware.ru