AI-система автоматизированного пентестинга
Ручной пентест — дорого и редко (раз в год). За год инфраструктура меняется: новые сервисы, обновлённые компоненты, изменённые конфиги. К следующему пентесту часть найденных уязвимостей уже закрыта, часть новых — не проверена. AI-assisted пентестинг закрывает этот gap: непрерывная автоматическая проверка, ручной пентест — для сложных логических атак и creative exploitation.
Что автоматизируется, что остаётся людям
Автоматизируется хорошо:
- Reconnaissance: сканирование, enumeration сервисов, fingerprinting
- Vulnerability scanning с validation (не просто «CVE применима», а «exploit работает»)
- Известные эксплоиты для CVE с публичными PoC
- Configuration audit: неправильные настройки, DEFAULT credentials, открытые порты
- Credential testing: слабые пароли, password spraying (контролируемое)
Остаётся людям:
- Бизнес-логические уязвимости
- Сложные chain exploits (уязвимость A + неправильная конфиг B + слабый контроль C = RCE)
- Social engineering симуляции
- Нестандартные CVE без публичных эксплоитов
Архитектура AI-пентест системы
Reconnaissance модуль. Shodan/Censys API + активное сканирование (Nmap/masscan) + DNS enumeration + subdomain bruteforce + certificate transparency logs. Автоматическое построение asset inventory и attack surface map.
Vulnerability discovery. Nuclei с шаблонами сообщества — 10 000+ проверок, постоянно обновляются. OpenVAS для более глубокого сканирования. Кастомные checks под специфику клиента. Важно: все проверки с validation — не просто «обнаружен CVE-2024-XXXX», а «вот HTTP-запрос, который вернул ответ, подтверждающий уязвимость».
AI-orchestration. LLM планирует атаку на основе найденных активов и уязвимостей: «есть Tomcat 9.0.65 с CVE-2023-28709, есть Jenkins без auth, есть MongoDB на 27017 без пароля — вот предложенная цепочка атаки». GPT-4o или Claude 3.5 Sonnet для reasoning над attack graph.
class PentestOrchestrator:
def __init__(self, target_scope: Scope):
self.scope = target_scope
self.recon = ReconModule()
self.vuln_scanner = VulnScanner(tools=["nuclei", "openvas"])
self.llm = LLMPlanner(model="gpt-4o")
async def run(self) -> PentestReport:
# Фаза 1: Разведка
assets = await self.recon.discover(self.scope)
# Фаза 2: Сканирование уязвимостей (параллельно)
vulns = await asyncio.gather(*[
self.vuln_scanner.scan(asset) for asset in assets
])
# Фаза 3: AI-планирование атаки
attack_plan = await self.llm.plan_attack_chains(
assets=assets,
vulnerabilities=flatten(vulns),
objective="demonstrate_network_compromise"
)
# Фаза 4: Исполнение (в sandbox/controlled)
results = await self.execute_plan(attack_plan)
return self.generate_report(assets, vulns, attack_plan, results)
Exploit chaining с AI
Самая интересная задача — не найти уязвимость, а построить эксплуатабельную цепочку. LLM на основе граф атаки:
Вход: inventory активов + найденные уязвимости + сетевая топология
Рассуждение LLM: «С внешней сети доступен Nginx 1.18. За ним — Jenkins 2.332 без аутентификации (CVE-2024-43044 — arbitrary file read). Через file read получаем SSH ключ из /root/.ssh/. Jenkins имеет сетевой доступ к internal PostgreSQL. Можем читать данные из БД».
Цепочка: External → Jenkins file read → SSH key theft → Internal DB access.
Continuous security testing
В отличие от разового пентеста — непрерывная проверка:
- При каждом deploy: автоматическая проверка новых endpoints на известные уязвимости
- Еженедельный полный scan по расписанию
- Alert при появлении нового критического CVE, применимого к stack'у
- Comparison с предыдущим состоянием: что появилось нового, что было закрыто
Практический кейс
SaaS-компания, 40 микросервисов, Kubernetes. Ручной пентест раз в год. В очередном сканировании между пентестами AI система обнаружила:
- Новый Grafana instance (задеплоили DevOps 2 недели назад), доступный извне, с default admin/admin credentials
- Grafana имела прямой доступ к production Prometheus с метриками всех сервисов
- Через Grafana alert можно было читать внутренние URL (SSRF)
Уязвимость существовала 2 недели. Без непрерывного тестирования — до следующего ручного пентеста, ещё 10 месяцев.
Устранение заняло 4 часа после алерта.
Ограничения и этика
Автоматизированный пентестинг — только на системах, на которые есть явное разрешение. Все действия документируются в audit trail. Destructive actions (попытки DOS, изменение данных) — только по явному согласованию. Система работает в контролируемом режиме, не в production-деструктивном.
Сроки: 3–6 недель для автоматизированного vulnerability scanning, 3–5 месяцев для AI-orchestrated пентест системы с attack chaining и continuous testing.







