🛠 Инструменты для выявления вредоносных зависимостей
В последнее время наблюдается кратный рост атак на цепочки поставок. Особенно популярны вектора атак через зависимости: dependency confusion, typosquatting, внедрение вредоносных изменений в исходный код библиотек и т.д.
Для борьбы с такого рода угрозами есть несколько интересных инструментов. О них и поговорим:
1️⃣ Packj — инструмент от Ossillate для поиска потенциально опасных конструкций в пакетах NPM, PyPI и RubyGems. Анализирует метаинформацию с целью выявления рискованных атрибутов. Например, релиз новой версии после длительного перерыва или отсутствие публичного репозитория с исходным кодом. Использует Strace и MalOSS для детектирования подозрительного поведения: наличия техник обфускации кода, генерации нового кода во время выполнения и т.д. Также позволяет осуществлять безопасную установку зависимостей в специальном режиме, который блокирует нелегитимную активность.
2️⃣ OSSGadget — обширный набор из 12 инструментов от Microsoft, каждый из которых решает определенную задачу в рамках анализа open-source библиотек. Самый примечательный среди них — oss-detect-backdoor. Он ищет потенциально вредоносные куски кода внутри исследуемого пакета. Поиск осуществляется с помощью регулярных выражений, посвященных 10 различным предметным областям. Например: obfuscation, dependency confusion, code_execution, data_exfiltration и т.д.
3️⃣ Package Analysis — проект от OpenSSF, который позволяет анализировать поведение зависимостей из NPM, PyPI и RubyGems. Запускает установку и импорт исследуемого пакета в изолированном контейнере, где с помощью утилит Strace и Gopacket формируется лог действий: обращение к файлам, подключение к сетевым адресам, выполнение команд. Все это сохраняется в json формате, что позволяет самостоятельно анализировать результаты и выносить вердикт, является ли исследуемый пакет вредоносным или нет.
4️⃣ Package Hunter — инструмент от Gitlab для обнаружения аномального поведения зависимостей. Поддерживает NPM и RubyGems. Осуществляет установку исследуемого пакета в изолируемой среде и мониторит активность с помощью Falco. В отличие от Package Analysis выявляет конкретные аномалии. Например, доступ к файлам с секретами, установка неразрешенного сетевого соединения, запуск исполняемых файлов из черного списка и т.д. За отслеживание подозрительной активности отвечают специальные правила.
Все указанные инструменты достаточно новые, поэтому могут генерировать большое количество ложно-положительных срабатываний. Тем не менее, их можно настроить под себя, отредактировав конфиругационный файл или соответствующие правила.
#tools #dependencies #malware
В последнее время наблюдается кратный рост атак на цепочки поставок. Особенно популярны вектора атак через зависимости: dependency confusion, typosquatting, внедрение вредоносных изменений в исходный код библиотек и т.д.
Для борьбы с такого рода угрозами есть несколько интересных инструментов. О них и поговорим:
1️⃣ Packj — инструмент от Ossillate для поиска потенциально опасных конструкций в пакетах NPM, PyPI и RubyGems. Анализирует метаинформацию с целью выявления рискованных атрибутов. Например, релиз новой версии после длительного перерыва или отсутствие публичного репозитория с исходным кодом. Использует Strace и MalOSS для детектирования подозрительного поведения: наличия техник обфускации кода, генерации нового кода во время выполнения и т.д. Также позволяет осуществлять безопасную установку зависимостей в специальном режиме, который блокирует нелегитимную активность.
2️⃣ OSSGadget — обширный набор из 12 инструментов от Microsoft, каждый из которых решает определенную задачу в рамках анализа open-source библиотек. Самый примечательный среди них — oss-detect-backdoor. Он ищет потенциально вредоносные куски кода внутри исследуемого пакета. Поиск осуществляется с помощью регулярных выражений, посвященных 10 различным предметным областям. Например: obfuscation, dependency confusion, code_execution, data_exfiltration и т.д.
3️⃣ Package Analysis — проект от OpenSSF, который позволяет анализировать поведение зависимостей из NPM, PyPI и RubyGems. Запускает установку и импорт исследуемого пакета в изолированном контейнере, где с помощью утилит Strace и Gopacket формируется лог действий: обращение к файлам, подключение к сетевым адресам, выполнение команд. Все это сохраняется в json формате, что позволяет самостоятельно анализировать результаты и выносить вердикт, является ли исследуемый пакет вредоносным или нет.
4️⃣ Package Hunter — инструмент от Gitlab для обнаружения аномального поведения зависимостей. Поддерживает NPM и RubyGems. Осуществляет установку исследуемого пакета в изолируемой среде и мониторит активность с помощью Falco. В отличие от Package Analysis выявляет конкретные аномалии. Например, доступ к файлам с секретами, установка неразрешенного сетевого соединения, запуск исполняемых файлов из черного списка и т.д. За отслеживание подозрительной активности отвечают специальные правила.
Все указанные инструменты достаточно новые, поэтому могут генерировать большое количество ложно-положительных срабатываний. Тем не менее, их можно настроить под себя, отредактировав конфиругационный файл или соответствующие правила.
#tools #dependencies #malware