Mantis: поиск и исправление уязвимостей в коде с AI
Mantis — это модульный инструмент для автономного поиска, воспроизведения и исправления уязвимостей в коде. Основная задача проекта — помочь разработчикам обеспечить безопасность программного обеспечения с использованием искусственного интеллекта.
В отличие от других решений, Mantis выстраивает автоматизированные процессы для поиска уязвимостей без привязки к конкретным стекам технологий. Однако, стоит учитывать, что работа с этой площадкой требует осторожности, так как AI может выдавать ложные срабатывания и генерировать нестабильный код. Инструмент лучше использовать в изолированных средах.
Для установки Mantis необходим Python3 и venv. Процесс запуска включает несколько шагов: настройка, тестирование и запуск анализа кода. Учти, что проект находит уязвимости в репозиториях, но все результаты должны быть проверены вручную. Поскольку это ранняя стадия, важно помнить о возможных рисках.
Проект Mantis представляет собой набор инструментов для создания безопасного программного обеспечения с использованием возможностей искусственного интеллекта. Он разработан как помощник для автоматического генерирования и выполнения кода, который может быть нестабильным и вести к неожиданным последствиям. Использовать Mantis рекомендуется только в изолированных и ограниченных средах — ни в коем случае не на машинах, имеющих доступ к производственным системам или конфиденциальным данным.
Перед началом работы с Mantis важно понимать, что результаты, полученные с помощью AI, могут быть не всегда корректными. Все результаты должны быть вручную проверены специалистами по безопасности. Это важно, чтобы избежать массовой подачі необоснованных отчетов о уязвимостях.
Установка и запуск
Чтобы начать работу с Mantis, сначала необходимо установить python3-venv. После этого можно запустить сценарий установки:
sudo apt install python3-venv
cd reference && ./install.sh
Если ты используешь Vertex AI, необходимо также выполнить аутентификацию:
gcloud auth application-default login
Дальше идет быстрая конфигурация и автоматическое определение возможностей:
python3 scripts/configure.py --auto
После этого можешь выполнить проверку и запуск кампании по обзору уязвимостей, указав путь к файлу или директории кода:
./run.sh path/to/code
Существует множество дополнительных опций, таких как указание фокуса поиска или отключение лимитов расходов для длительных экранов. Все команды можно адаптировать под конкретные нужды:
./run.sh path/to/code --focus "look for IDOR"
./run.sh path/to/code --no-budget --parallel 32
./run.sh path/to/code --objective "Audit for Server-Side Request Forgery and SSRF in webhook handlers"
Функциональность
Mantis способен на:
- Обзор истории кода для поиска не желаемых уязвимостей, которые могли быть ранее допущены.
- Автоматическое создание модели угроз и гибкую индексацию кода для более эффективной навигации.
- Автоматическую генерацию гипотез для исследовательских агентов или простое сканирование всех файлов.
- Патчирование обнаруженных уязвимостей с проверкой, что уязвимость действительно исправлена.
- Классификацию результатов на основе установленной шкалы для противодействия чрезмерной «критичности» списков уязвимостей.
Mantis рассматривает каждый этап процесса, чтобы извлечь уроки из проведенных исследований и улучшить разработку кода, избегая повторения прежних ошибок.
Ограничения и предостережения
Mantis не является официальным продуктом Google и не подходит для использования в производственной среде. Он предназначен исключительно для демонстрационных целей, и на него не распространяется поддержка программы вознаграждений за уязвимости в открытом программном обеспечении от Google.
Также стоит отметить, что выполнение сценариев Mantis в небезопасной среде может повлечь риск нарушений, поэтому создание дополнительных слоев защиты и мониторинга является необходимостью, особенно при использовании передовых моделей AI.
Открыть на GitHub: google/mantis →
RepoRadar