Читает пароли, шифрует и отправляет на чужой сервер. Российская нейросеть MOLOT научилась ловить вредоносный код по поведению
NewsMakerPositive Technologies показала нейросеть для поиска закладок в Python, JavaScript и TypeScript.
При анализе кода обычно ищут уязвимости, через которые атакующий может получить доступ к приложению извне. Но вредоносный фрагмент может уже лежать в репозитории и работать с правами обычной программы. Positive Technologies представила нейросеть MOLOT, которая ищет вредоносный код не по отдельным подозрительным строкам, а по цепочке действий внутри приложения.
Модель построена на архитектуре трансформер, знакомой по большим языковым моделям. MOLOT стал ядром модуля по обнаружению вредоносного кода для анализа проектов на Python, JavaScript, TypeScript, и включен в PT Application Inspector начиная с ближайшего релиза 6.0. Этот продукт относится к классу SAST-инструментов, то есть проверяет исходный код без запуска программы.
Классические правила обычно ищут конкретные конструкции: опасный вызов функции, подозрительную строку, попытку выполнить команду или отправить данные в сеть. MOLOT оценивает поведение программы шире: модель смотрит, как действия выстраиваются в цепочку, и решает, похожа ли последовательность на работу вредоносного кода. В Positive Technologies заявляют, что подход повышает точность поиска на 15% по сравнению с классическими правилами.
Проблема проверки безопасности заметно шире обычного поиска уязвимостей. Уязвимость позволяет атаковать приложение извне, а намеренно добавленный вредоносный код уже находится внутри проекта. Такой фрагмент не обязан обходить защиту, потому что выполняется с правами приложения. Этот класс угроз описан в CWE-506 , а один из недавних примеров связан с инцидентом LiteLLM и кампаниями Shai-Hulud.
Главная сложность заключается в том, что отдельные действия вредоносного кода часто выглядят нормально. Программа может читать файл, обращаться к сети, расшифровывать строку или запускать процесс, и каждое действие само по себе встречается в легитимных приложениях. Опасность появляется, когда код, например, забирает логин и пароль из переменных окружения, кодирует значения и отправляет результат на сторонний сервер. Правило, которое проверяет только отдельную операцию, может пропустить полную цепочку.
MOLOT извлекает из кодовой базы действия программы: обращения к файлам и сети, запуск процессов, использование криптографии и другие операции. Затем модель собирает действия в последовательность и сравнивает поведение с признаками вредоносного кода. Принцип похож на работу языковой модели, только вместо слов нейросеть анализирует последовательность вызовов.
Компания утверждает, что тестирование на вредоносных пакетах из репозиториев PyPI и npm показало преимущество MOLOT над открытыми аналогами: на части проверок разница доходила до 30 процентных пунктов. Для независимой проверки Positive Technologies опубликовала открытый бенчмарк с набором данных и сценариями запуска.
Например: компания принимает крупный репозиторий от подрядчика или внешнего разработчика, а внутри проекта встречаются чтение секретов из переменных окружения, декодирование значений и сетевой запрос. По отдельности операции не выглядят вредоносными, но вместе образуют подозрительную цепочку. MOLOT должна пометить фрагмент и показать строки кода, которые повлияли на решение модели, чтобы аналитик быстрее проверил сработку вручную.
При анализе кода обычно ищут уязвимости, через которые атакующий может получить доступ к приложению извне. Но вредоносный фрагмент может уже лежать в репозитории и работать с правами обычной программы. Positive Technologies представила нейросеть MOLOT, которая ищет вредоносный код не по отдельным подозрительным строкам, а по цепочке действий внутри приложения.
Модель построена на архитектуре трансформер, знакомой по большим языковым моделям. MOLOT стал ядром модуля по обнаружению вредоносного кода для анализа проектов на Python, JavaScript, TypeScript, и включен в PT Application Inspector начиная с ближайшего релиза 6.0. Этот продукт относится к классу SAST-инструментов, то есть проверяет исходный код без запуска программы.
Классические правила обычно ищут конкретные конструкции: опасный вызов функции, подозрительную строку, попытку выполнить команду или отправить данные в сеть. MOLOT оценивает поведение программы шире: модель смотрит, как действия выстраиваются в цепочку, и решает, похожа ли последовательность на работу вредоносного кода. В Positive Technologies заявляют, что подход повышает точность поиска на 15% по сравнению с классическими правилами.
Проблема проверки безопасности заметно шире обычного поиска уязвимостей. Уязвимость позволяет атаковать приложение извне, а намеренно добавленный вредоносный код уже находится внутри проекта. Такой фрагмент не обязан обходить защиту, потому что выполняется с правами приложения. Этот класс угроз описан в CWE-506 , а один из недавних примеров связан с инцидентом LiteLLM и кампаниями Shai-Hulud.
Главная сложность заключается в том, что отдельные действия вредоносного кода часто выглядят нормально. Программа может читать файл, обращаться к сети, расшифровывать строку или запускать процесс, и каждое действие само по себе встречается в легитимных приложениях. Опасность появляется, когда код, например, забирает логин и пароль из переменных окружения, кодирует значения и отправляет результат на сторонний сервер. Правило, которое проверяет только отдельную операцию, может пропустить полную цепочку.
MOLOT извлекает из кодовой базы действия программы: обращения к файлам и сети, запуск процессов, использование криптографии и другие операции. Затем модель собирает действия в последовательность и сравнивает поведение с признаками вредоносного кода. Принцип похож на работу языковой модели, только вместо слов нейросеть анализирует последовательность вызовов.
Компания утверждает, что тестирование на вредоносных пакетах из репозиториев PyPI и npm показало преимущество MOLOT над открытыми аналогами: на части проверок разница доходила до 30 процентных пунктов. Для независимой проверки Positive Technologies опубликовала открытый бенчмарк с набором данных и сценариями запуска.
Например: компания принимает крупный репозиторий от подрядчика или внешнего разработчика, а внутри проекта встречаются чтение секретов из переменных окружения, декодирование значений и сетевой запрос. По отдельности операции не выглядят вредоносными, но вместе образуют подозрительную цепочку. MOLOT должна пометить фрагмент и показать строки кода, которые повлияли на решение модели, чтобы аналитик быстрее проверил сработку вручную.