MOLOT: нейросеть для поиска вредоносного кода — работает на обычном процессоре и не выдумывает угрозы

Представьте: вы руководите командой разработки, и однажды ваш коллега находит в коде подозрительный фрагмент. Выясняется, что это вредоносная вставка, которая могла бы украсть данные клиентов или нарушить работу сервиса. Такие инциденты обходятся бизнесу в миллионы рублей — не только из-за утечек, но и из-за остановки разработки, экстренных исправлений и потери доверия. Чтобы этого избежать, компании внедряют автоматические проверки кода. Но многие инструменты требуют дорогих видеокарт (GPU) или страдают «галлюцинациями» — выдают ложные угрозы, которые заставляют команду тратить время на пустые проверки.

Недавно команда Positive Technologies объявила о запуске новой модели MOLOT. Это нейросеть, которая ищет вредоносный код, анализируя не отдельные строки, а цепочки вызовов функций. Главное преимущество: MOLOT работает на обычном процессоре (CPU) и не требует мощного GPU, что экономит бюджет на инфраструктуру. Кроме того, модель не склонна к ложным срабатываниям — она не «выдумывает» угрозы там, где их нет.

Что такое MOLOT и как он работает

MOLOT — это часть модуля PT Application Inspector, готового к использованию в реальных проектах. В основе модели лежит BERT-энкодер — технология, которая читает весь код целиком и делает вывод о его безопасности, а не просто предсказывает следующую команду. Благодаря этому MOLOT не требует GPU и может работать на обычном сервере, сохраняя высокую точность.

В открытом тесте «Open Malicious Code Benchmark» MOLOT показал результаты, сравнимые с моделью Mythos от Anthropic, но без риска ложных выводов. Это значит, что команда безопасности получает меньше ложных тревог и может сосредоточиться на реальных угрозах.

Как MOLOT вписывается в рабочий процесс

Чтобы понять, подходит ли MOLOT вашему проекту, разберём, как он анализирует код:

  1. Сбор графа вызовов — из исходного кода извлекается схема, показывающая, какие функции вызывают какие.
  2. Разбиение на цепочки — схема делится на последовательности вызовов для каждого файла, чтобы модель могла видеть контекст.
  3. Кодирование цепочек — каждая последовательность преобразуется в формат, который BERT-энкодер обрабатывает целиком.
  4. Классификация — модель выдаёт вердикт: «вредоносный» или «чистый» для каждой цепочки.
  5. Отчёт — результаты собираются в отчёт, который можно подключить к системе непрерывной интеграции (CI/CD) или к мониторингу безопасности.

Эти шаги можно реализовать в рамках существующего процесса разработки без серьёзных изменений в инфраструктуре.

Как проверить MOLOT на своём проекте

Чтобы не тратить время на инструмент, который не подходит, проведите пилотный тест. Вот что нужно сделать:

  1. Скачайте репозиторий с GitHub: https://github.com/positivetechnologies/open-malicious-code-benchmark и запустите тесты на своём коде.
  2. Сравните метрики с вашими текущими инструментами: точность, полнота, время обработки.
  3. Проверьте совместимость с вашим стеком: MOLOT работает на Python 3.8+ и требует только стандартных библиотек.
  4. Проведите пилотный запуск на небольшом наборе репозиториев, чтобы убедиться, что модель не генерирует ложные срабатывания.
  5. Оцените затраты: запустите модель на обычном процессоре и измерьте потребление CPU и памяти.

Краткий чек-лист для проверки:

  • Установлены ли зависимости torch и transformers?
  • Содержит ли ваш проект граф вызовов, который MOLOT может обработать?
  • Какой процент кода в вашем репозитории считается потенциально вредоносным?
  • Сколько времени занимает анализ одного репозитория?
  • Какой уровень ложных срабатываний вы готовы принять?

Какие риски стоит проверить перед внедрением

Прежде чем внедрять MOLOT в продакшн, учтите несколько моментов:

  • Точность: MOLOT показал высокую точность на открытом тесте, но реальные проекты могут иметь другие паттерны кода. Проверьте на своих данных.
  • Обновляемость: модель не обновляется автоматически; необходимо периодически переобучать её на новых данных, чтобы учитывать новые типы угроз.
  • Совместимость: если ваш код использует нестандартные языки или фреймворки, MOLOT может не распознавать их полностью.
  • Лицензия: модель распространяется под открытой лицензией, но интеграция в коммерческое ПО может потребовать проверки условий.
  • Надёжность: хотя модель не использует GPU, при больших репозиториях время обработки может стать критическим. Проверьте на своих объёмах.

Проверьте эти пункты, чтобы избежать неожиданных расходов и ошибок в продакшене.

Что делать дальше

Если MOLOT показал хорошие результаты в пилотном тесте, можно:

  • Интегрировать его в CI/CD pipeline, чтобы каждый коммит автоматически проверялся на наличие вредоносного кода.
  • Настроить отчётность в системе мониторинга безопасности, чтобы команды реагировали на предупреждения в реальном времени.
  • Планировать переобучение модели каждые 3–6 месяцев, чтобы учитывать новые типы угроз.
  • Сравнить MOLOT с другими инструментами, которые вы уже используете, и принять решение о замене или дополнении.

Если результаты не удовлетворяют, можно отложить внедрение и продолжить поиск более подходящего решения.

Дополнительные материалы

Чтобы углубиться в тему, рекомендуем изучить следующие ресурсы:

  • Технические детали: в статье на Habr подробно описан процесс создания MOLOT и его архитектура.
  • Научная основа: System Card на arXiv содержит формальное описание модели и её метрик.
  • Практические тесты: бенчмарк на GitHub позволяет воспроизвести результаты и сравнить с другими моделями.
  • Обсуждение: в комментариях к статье на Habr можно найти ответы на вопросы от разработчиков и пользователей.

Эти источники помогут вам принять взвешенное решение о внедрении MOLOT в ваш проект.

Источники

  • Статья на Habr
  • MOLOT System Card (arXiv)
  • Open Malicious Code Benchmark

Под капотом MOLOT – обзор ML-модели для обнаружения вредоносного кода

Для тех, кто хочет глубже понять принципы работы MOLOT и его место в экосистеме безопасности кода, стоит обратить внимание на следующие аспекты. Во-первых, архитектура BERT-энкодера, лежащая в основе модели, позволяет анализировать контекст вызовов функций, что критически важно для выявления сложных вредоносных паттернов. Во-вторых, MOLOT демонстрирует устойчивость к атакам, направленным на обход детекции, благодаря использованию графов вызовов вместо простого синтаксического анализа. В-третьих, модель может быть адаптирована для работы с различными языками программирования, включая Python, JavaScript и C++, что расширяет область её применения.

Практические рекомендации по настройке MOLOT включают оптимизацию размера цепочек вызовов для баланса между скоростью и точностью, а также использование предобученных весов для ускорения первоначальной настройки. Кроме того, стоит учитывать, что модель может быть интегрирована с популярными системами управления версиями, такими как Git, для автоматического анализа изменений кода.

Наконец, для сообщества разработчиков и исследователей безопасности MOLOT представляет собой открытый инструмент, который можно дорабатывать и улучшать. Участие в развитии модели через GitHub позволяет не только получить доступ к последним обновлениям, но и внести свой вклад в борьбу с вредоносным кодом.