РАЗБОР
На проверке
Локальный LLM для пентеста: железо, модели, workflow
[ обложка статьи ]
Режим чтения
На одном из недавних проектов клиент передал 14 000 строк PHP-кода кастомного REST API. Бюджет на код-ревью - два дня. Скормил контроллер авторизации локальной модели на 27B параметров - через 14 минут она ткнула пальцем в SQL-инъекцию в параметре
user_id, которую grep по регуляркам пропустил. Ни одного байта клиентского кода не ушло за пределы рабочей станции. Дальше - как собрать такую среду с нуля и встроить локальный LLM для пентеста в ежедневную работу.Зачем пентестеру локальная нейросеть
Вопрос «есть же ChatGPT - зачем мучиться?» снимается тремя вещами. Подробнее - в нашем обзоре безопасность llm атаки.NDA и регуляторика. Хороший отчёт о пентесте - по сути пошаговая инструкция, как нанести заказчику максимальный ущерб. Почти все NDA запрещают обработку таких данных третьими сторонами. Облачный API - третья сторона, даже если ToS утверждают обратное. На банковских проектах и в госсекторе вопрос закрыт до начала обсуждения. Offline AI хакинг без передачи данных наружу - единственная легитимная опция.
Цензура. ChatGPT откажется генерировать reverse shell. Claude свернёт обсуждение обхода ASLR. Для пентестера это рабочие задачи в рамках scope, а не создание малвари. Uncensored LLM модель без safety-слоя отвечает по существу - без морализаторства. Jailbreak LLM для пентеста - обходной путь, но проще сразу взять модель без ограничений и не тратить время на уговоры.
Скорость и стоимость. Без лимитов по RPM, без сетевых задержек, без оплаты за токены. На engagement, где за день нужно прогнать через модель 50 фрагментов кода и десяток скан-логов, разница ощутимая. Каждый следующий запрос к локальному inference LLM стоит ноль - только электричество.
С точки зрения MITRE ATT&CK применение AI для offensive-задач описывается техникой Artificial Intelligence (T1588.007, Resource Development). Бизнес-логика для атакующего проста: AI ускоряет фазу подготовки - от разведки до крафта пейлоада - при нулевых операционных расходах.
Железо: минимум, оптимум, идеал
Главный ограничитель - VRAM видеокарты. Модель должна целиком поместиться в видеопамять: частичный offload на CPU замедляет inference в 10–20 раз и превращает интерактивную работу в пытку.| Конфигурация | VRAM | Какие модели тянет | Бюджет |
|---|---|---|---|
| RTX 3060 12GB | 12 GB | 7B в Q8, 14B в Q4 | от $300 б/у |
| RTX 3090 24GB | 24 GB | 27-32B в Q8, 70B в Q4 | от $700 б/у |
| Mac M3 Pro 36GB | 36 GB unified | 27-32B в Q8 без свопа | от $2000 |
| 2x RTX 3090 | 48 GB | 70B в Q8 | от $1400 б/у |
По практическому разбору на Хабре, Mac с Apple M3 и 32 GB Unified Memory запускает Gemma 3 27B без свопа через Metal. На Windows/Linux RTX 3090 с 24 GB VRAM и 32 GB оперативки - проверенный дефолт для моделей 27–32B. Карта поддерживает CUDA, Ollama подхватывает её без дополнительных плясок.
Оперативная память - минимум 32 GB. Параллельно с моделью работают Burp Suite, терминалы с SSH-сессиями, Docker-контейнеры с целями и сканерами. На 16 GB всё начинает свопиться после загрузки модели - проверено на своей шкуре.
Дисковое пространство: модели занимают 15–40 GB каждая в зависимости от квантования. Если держите 3–4 модели под разные задачи - заложите 150 GB под хранилище Ollama.
Рекомендация: бюджет около $1000 - берите б/у RTX 3090. Лучшее соотношение VRAM к цене на вторичке, включая российские площадки. 24 GB закрывают 90% offensive-задач с моделями до 32B. Для минимального развёртывания LLM для безопасности на тестовом стенде хватит и RTX 3060, но выбор моделей сужается до 7B-класса - а это заметно слабее на код-ревью и генерации пейлоадов.
AI ассистент пентестера: выбор модели по бенчмаркам
Маркетинг каждой модели обещает прорыв. Реальность проверяется на реальных уязвимостях, а не на академических MMLU-бенчмарках.Согласно публикации TrustedSec (точные параметры рекомендуется уточнять в первоисточнике), несколько self-hosted моделей из разных семейств были протестированы на задачах OWASP Juice Shop. Задачи покрывали SQL injection, JWT manipulation, Path Traversal/LFI и Auth bypass. Каждая модель получала множество попыток на challenge для статистической значимости. Все модели запускались через Ollama на локальном сервере - результаты напрямую применимы к нашему сценарию.
Модели в тесте: gemma3:27b, qwen3:32b, qwen3-coder, devstral-small:24b и другие (точный список рекомендуется уточнять в первоисточнике TrustedSec, названия в каталоге Ollama меняются между релизами).
Ряд моделей меньшего размера отсеялся ещё на старте - они не смогли стабильно генерировать корректные tool calls. Это входной билет в автоматизацию пентеста с AI. Без structured tool calls модель может только рассуждать, но ничего не делать. Разница между «я бы отправил вот такой запрос» и реальным HTTP-запросом - как между чтением книги про плавание и прыжком в воду.
Что показал бенчмарк:
- Качество описаний инструментов важнее количества параметров. 27B-модель с хорошим tool description обходила 32B со скудным описанием. Подтверждается и другими исследованиями по tool calling в локальных LLM.
- Часть моделей генерировала текстовые объяснения вместо вызова инструмента. Harness отправлял nudge «Use the http_request tool. Do not explain, send a request» - но не все модели реагировали. Некоторые продолжали описывать, что бы они сделали, вместо того чтобы сделать. Знакомая ситуация - как джуниор, который пишет красивый план атаки, но не может запустить sqlmap.
- First-turn solve rate (решение с первой попытки) кардинально различался между моделями - критично для time-boxed engagement, где каждая минута на счету.
| Задача | Модель | Параметры | Комментарий |
|---|---|---|---|
| Код-ревью и поиск уязвимостей | qwen3-coder | 30B+ | Code-специализация даёт преимущество |
| Пейлоады, tool calling, автоматизация | qwen3:32b / gemma3:27b | 27-32B | Стабильные structured calls |
| Анализ скриншотов, VLM-задачи | gemma3:27b | 27B | 128K контекст, мультимодальность, хороший русский |
| Минимальное железо, 12 GB VRAM | mistral:7b | 7B | Базовый уровень, для лёгких задач сойдёт |
Из бенчмарка Codeby: для Ollama offensive security начинайте с Qwen 32B+ или gemma3:27b. Конкретная модель зависит от задачи, но как стартовая точка эти семейства стабильно лидируют на offensive-задачах.
Про русскоязычную поддержку: Gemma 3 заявляет 140+ языков, включая технический русский. На практике промпты на русском работают, но пейлоады и технические конструкции модель генерирует точнее, если промпт на английском. Системный промпт и техническую часть запроса делайте на EN, описание контекста проекта - на удобном языке.
Развёртывание Ollama для пентеста
) - для код-ревью этого обычно мало. Расширяйте через параметр
num_ctx в API-запросе:
Bash:
curl http://localhost:11434/api/chat -d '{
"model": "qwen3:32b",
"options": {"num_ctx": 16384},
"messages": [{"role":"user","content":"..."}]
}'
num_ctx осторожно и следите за nvidia-smi.Uncensored-модели. Для offensive-задач ищите варианты без safety-alignment в библиотеке Ollama: dolphin-mistral, dolphin-llama3, wizard-vicuna-uncensored. Загружаются стандартно через
ollama pull. Вместо того чтобы обходить ограничения через jailbreak-промпты, проще сразу взять модель без цензуры - меньше головной боли.Несколько моделей. Ollama позволяет держать несколько моделей одновременно. На практике удобно: qwen3-coder для код-ревью, gemma3:27b для генерации пейлоадов и анализа скриншотов. Переключение между моделями - одна строка в API-запросе.
Рабочие сценарии в цепочке атаки
Локальная нейросеть для хакинга закрывает три фазы kill chain: разведку, обнаружение уязвимостей и подготовку эксплойтов. По данным Hadrian, «AI offensive capability is concentrated at the front end, degrades through the middle, and is effectively absent at the back» - разведка и перечисление это зона доминации LLM, а post-exploitation по-прежнему требует человека.LLM для разведки и OSINT
Самый очевидный сценарий - deep research OSINT через локальную модель. Скормите ей вывод инструментов разведки и получите структурированный анализ вместо ручного парсинга сотен строк.Workflow: запускаете
nmap -sV -sC -oN scan.txt target, затем передаёте файл модели через API с промптом «проанализируй результаты сканирования, выдели сервисы с известными уязвимостями, приоритизируй по эксплуатируемости, укажи конкретные CVE если уверен». Аналогично работает с выводом subfinder на 3 000 поддоменов, результатами nuclei, Burp-экспортами. Модель не заменяет анализ - ускоряет первичную сортировку и выделение приоритетных целей.Исследование Pentest Copilot (arxiv, 2024) показало, что RAG с базой актуальных CVE снижает галлюцинации и позволяет модели ссылаться на конкретные уязвимости вместо выдуманных. Step chaining - разбиение сложной задачи разведки на подзадачи - помогает не терять контекст при работе с большими объёмами данных.
Инструменты, которые подключаются к Ollama API напрямую: PentestGPT умеет парсить вывод nmap и логов перечисления с предложением следующего шага (актуальность рекомендуется проверять в первоисточниках). В Nuclei обсуждается AI-генерация YAML-шаблонов из описания уязвимости на естественном языке (проверяйте в документации ProjectDiscovery). Некоторые open-source проекты (например, упоминаемый в сообществе METATRON - существование и актуальность требуют проверки) заявляют интеграцию с Ollama. По данным Hadrian, к марту 2025 было каталогизировано несколько десятков open-source AI-инструментов для offensive security - и практически все поддерживают подключение к локальному inference-серверу.
AI для анализа кода уязвимостей
Здесь локальный LLM для пентеста приносит максимальную отдачу. Клиент передал исходники - нужно найти injection-точки, broken access control, небезопасную десериализацию, hardcoded secrets.Подход - файл за файлом, контроллер за контроллером. Не скармливайте всё приложение целиком: даже 128K контекста не хватит на проект в 50 000 строк, а качество деградирует задолго до исчерпания окна. Разбивайте на модули, начинайте с контроллеров авторизации, обработчиков пользовательского ввода и API-эндпоинтов.
Промпт, работающий на практике: «Ты пентестер. Проанализируй этот PHP-контроллер. Найди: SQL-инъекции, XSS, IDOR, hardcoded credentials, небезопасную десериализацию. Для каждой находки укажи номер строки, тип уязвимости и PoC-запрос для эксплуатации. Если уязвимостей нет - скажи прямо.»
Последняя фраза критична. Без неё модель «находит» уязвимости в каждом файле, включая заведомо безопасный код. Классическое поведение - LLM хочет быть полезной и придумывает проблемы на ровном месте.
Модели qwen3-coder и gemma3:27b стабильно ловят классику: SQLi через конкатенацию строк, XSS через нефильтрованный вывод, IDOR через предсказуемые идентификаторы. На сложных цепочках (SSRF через PDF-генератор, десериализация с гаджет-чейном) проседают - тут по-прежнему нужен ручной анализ опытного пентестера.
Генерация эксплойтов с помощью AI
Третий сценарий - самый чувствительный к safety-фильтрам облачных API. Облачные модели отказываются помогать, локальная uncensored - работает.Типичные задачи: адаптация SQLi-пейлоада под конкретную СУБД и WAF, генерация XSS-вектора с обходом конкретного CSP, написание PoC для найденной уязвимости, конвертация exploit-кода между языками.
По данным AutoPenBench (Gioacchini et al., 2024, arXiv:2410.17141), GPT-4-based агент показал порядка 21% полностью автономный success rate, вырастающий до ~64% с участием человека (точные цифры см. arXiv:2410.17141). Исследование Fang et al. (2024, arXiv:2404.08144) зафиксировало высокий exploitation rate у GPT-4 на наборе one-day CVE - но при наличии CVE-описания в промпте. Без описания результат кратно хуже.
Локальные модели 27–32B стабильны на шаблонных задачах (SQLi, LFI), но проседают на многошаговых цепочках. GPT для red team задач работает как мультипликатор, не как замена - ни разу модель не вытянула полную цепочку от рекона до shell самостоятельно.
Квантование: граница качества на offensive-задачах
Веса модели в оригинале хранятся в 16 битах (FP16/BF16). Квантование сжимает их до 8 (Q8) или 4 бит (Q4), уменьшая VRAM и ускоряя inference. Вопрос - какой ценой.| Квантование | Потеря качества | Когда подходит | Когда не подходит |
|---|---|---|---|
| Q8_0 (8-bit GGUF) | Минимальная | Дефолт для всех задач | - |
| Q4_K_M (4-bit GGUF) | Заметная на цепочках | Быстрые одношаговые запросы | Многошаговый exploit, код-ревью |
| IQ2_M (2-bit GGUF) | Критическая | Не рекомендуется | Любые offensive-задачи |
Q8 - безопасный дефолт. Для 32B-модели: примерно 32 GB в FP16, 16–18 GB в Q8. На RTX 3090 модель 32B в Q8 помещается с запасом на контекстное окно.
Q4 - компромисс. Ответы становятся «шумнее»: модель чаще галлюцинирует, путает параметры функций, генерирует синтаксически корректные, но семантически бесполезные пейлоады. На простых задачах (перевод пейлоада под другой формат, подсказка синтаксиса
sqlmap) - хватит. На многошаговом reasoning при анализе бизнес-логики - уже нет.Q2 и агрессивнее (IQ2_M) - на Reddit обсуждают как способ запустить 70B-модели на 24 GB VRAM. На offensive-задачах результат печальный: модель теряет различение типов уязвимостей, путает SQLi с XSS, генерирует нерабочие пейлоады. Экономия на спичках.
Правило: одна подсказка → один ответ = Q4 хватит. Reasoning через несколько шагов = только Q8 или выше.
Промпт-инжиниринг для LLM red team
Промпт для offensive-модели строится иначе, чем для чат-бота.Системный промпт-минимум. Бенчмарк TrustedSec использовал одну фразу: «You are a penetration tester.» Минималистичный промпт заставляет модель опираться на знания, а не на костыли из подсказки. Для боевого engagement добавьте контекст: целевую ОС, стек технологий, scope.
Запрет на объяснения. Модели обожают рассказывать, что собираются сделать. Указывайте явно: «Выдай только команду/пейлоад. Без объяснений, без предисловий.» Это прямо коррелирует с наблюдением TrustedSec: модели генерировали текст вместо tool calls, пока harness не начинал их пинать.
Итеративность. Провальный пейлоад часто срабатывает на попытке 3–5 или после небольшой переформулировки. LLM стохастичны - каждый inference немного другой при температуре выше нуля. Не бросайте после первого отказа.
Контекст решает. Версия ПО, фрагмент ответа сервера, структура параметров, сообщение об ошибке - всё это повышает точность результата. С CVE-описанием в промпте модель работает кратно эффективнее. Без контекста даже frontier-модели проседают.
Интеграция с тулчейном. Ollama API на порту 11434 совместим с OpenAI-форматом, что позволяет подключать практически любой инструмент. PentestGPT, METATRON, кастомные Python-скрипты, Burp-расширения - все работают с
http://localhost:11434. Локальный inference-сервер становится хабом, к которому стекается всё: вывод nmap, результаты sqlmap, Burp-логи. Один endpoint - десятки применений.Разговоры о том, что AI заменит пентестеров, идут уже два года. За это время не было ни одного публичного случая, где модель самостоятельно прошла от рекона до root. Бенчмарки подтверждают: около 21% автономного success rate у лучшей frontier-модели (по пересказам AutoPenBench; точные цифры см. arXiv:2410.17141). Локальные 27–32B стабильны на SQLi, но ломаются на любой нетривиальной цепочке. AI в пентесте - cruise control, не autopilot: держит курс на прямой, повороты по-прежнему за вами.
Что реально изменилось - скорость рутины. Код-ревью, занимавший два дня, укладывается в четыре часа: модель делает первый проход, я проверяю находки и копаю глубже там, где она подсветила подозрительное. Разведка по 200 хостам проходит через LLM-фильтр и приходит ко мне уже отсортированная по приоритету. Автоматизация пентеста с AI экономит 30–40% времени на engagement - не за счёт магии, а за счёт переноса рутинного парсинга текста на модель.
Ловушка, в которую уже попадают джуниоры: слепое доверие к выводу модели. LLM галлюцинируют - уверенно называют несуществующие CVE, генерируют синтаксически правильные, но бесполезные пейлоады, «обнаруживают» уязвимости в заведомо чистом коде. Каждый вывод - гипотеза для проверки руками. Кто этого не делает - получает ложные findings в отчёте и потерю репутации перед клиентом. Если хочется обкатать цепочку «модель → пейлоад → эксплуатация» на живом стенде - на HackerLab.pro есть категории web и pwn, где эту связку можно гонять без рисков для клиентской инфраструктуры.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Продолжить чтение
Следующий разбор
AI пентест платформа: джейлбрейк LLM для атак
Комментарии
0