Когда SOC-аналитик не справляется (или просто устал)
Давайте честно: анализировать тысячи событий безопасности каждый день — это не самое увлекательное занятие.
Особенно когда половина алертов — это ложные срабатывания, а вторая половина требует глубокого погружения в контекст, который вы уже забыли после третьей чашки кофе.
Именно поэтому я создал два специализированных AI-ассистента, которые действительно понимают, что происходит в ваших логах. И нет, это не очередной ChatGPT с промптом “ты эксперт по безопасности”. Это fine-tuned модели на базе LLaMA 3.1 8B, обученные на реальных (ну, почти реальных) сценариях атак и событиях безопасности.
Модель №1: Wazuh Security Assistant — эксперт по Wazuh, который не спит
Где найти:
- HuggingFace: pyToshka/wazuh-llama-3.1-8b-assistant
- Ollama: OpenNix/wazuh-llama-3.1-8B-v1
Что умеет эта модель?
Представьте себе коллегу, который:
- Видел больше SSH-брутфорсов, чем вы открывали тикетов в Jira за год
- Знает все уровни severity в Wazuh (0-15) и может объяснить, почему level 12 — это “прям сейчас беги чини”
- Не путает легитимный admin activity с lateral movement
- Даёт конкретные рекомендации, а не “проверьте логи” (спасибо, Кэп)
- Маппит всё на MITRE ATT&CK, потому что регулятор требует
Технические характеристики:
- База: meta-llama/Llama-3.1-8B-Instruct
- Архитектура: 8B параметров (fine-tuned с LoRA)
- Языки: English, Russian, Spanish
- Размер: 4.7GB (Ollama версия)
- Контекст: 128K токенов
- Оптимизация: Unsloth (в 2 раза быстрее)
Пример использования
Через HuggingFace Transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("pyToshka/wazuh-llama-3.1-8b-assistant")
tokenizer = AutoTokenizer.from_pretrained("pyToshka/wazuh-llama-3.1-8b-assistant")
prompt = """Проанализируй этот алерт Wazuh:
Множественные неудачные попытки SSH входа с IP 45.142.120.10
Rule Level: 10
Event: sshd authentication failure
Дай:
1. Уровень угрозы
2. Тип атаки
3. Рекомендуемые действия
"""
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=512)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Через Ollama (локально, потому что паранойя):
# Установка
ollama pull OpenNix/wazuh-llama-3.1-8B-v1
# Интерактивный режим
ollama run OpenNix/wazuh-llama-3.1-8B-v1
# Через API
curl http://localhost:11434/api/generate -d '{
"model": "OpenNix/wazuh-llama-3.1-8B-v1",
"prompt": "Проанализируй этот алерт Wazuh: Множественные неудачные попытки SSH входа с IP 45.142.120.10",
"stream": false
}'
Что получите в ответ:
Ответ:
1. Уровень угрозы: высокий
2. Тип атаки: атака на пароль
3. Рекомендуемые действия: «Проверьте учетные данные пользователя и пароль», «Установите двухфакторную аутентификацию», «Обновите систему до последней версии», «Проверьте наличествие обновлений безопасности» и т. д.
4. Дополнительная информация: «IP-адрес 45.142.120.10» — это IP-адрес, из которого происходили неудачные попытки входа. «sshd authentication failure» — это описание правила, которое означает, что атака происходит на SSH-сервере.
Анализ:
Этот алерт является признаком атаки на пароль, поскольку правило имеет уровень угрозы 10, что указывает на высокий уровень опасности. Следовательно, рекомендованными действиями являются проверка учетных данных пользователя и пароля, установка двухфакторной аутентификации и обновление системы до последней версии. Дополнительная информация о том, что IP-адрес 45.142.120.10 — это IP-адрес, из которого происходили неудачные попытки входа, позволяет предположить, что атака была проведена из этого IP-адреса.
Навыки рассуждения:
Чтобы ответить на этот алерт, необходимо применить навыки анализа и рассуждения. В частности, необходимо:
* Определить тип атаки и ее цель.
* Оценить уровень угрозы и принять соответствующие меры по защите.
* Проверить учетные данные пользователя и пароль.
* Установить двухфакторную аутентификацию.
* Обновить систему до последней версии.
* Проверить наличествие обновлений безопасности.
Таким образом, этот алерт требует применения навыков анализа и рассуждения для определения типа атаки, оценки уровня угрозы и принятия мер по защите. Рекомендуемые действия предполагают проверку учетных данных пользователя и пароля, установку двухфакторной а
Когда использовать?
- Нужен быстрый анализ Wazuh алертов
- Хотите автоматизировать события
- Требуется mapping на MITRE ATT&CK
- Нужны конкретные рекомендации, а не общие фразы
Модель №2: AWS Security Analyst — для тех, кто уже смирился с облаком
Где найти:
- HuggingFace: pyToshka/aws-security-analyst
- Ollama: OpenNix/aws-security-assistant
Почему облачная безопасность — это боль?
Потому что AWS генерирует логи быстрее, чем вы успеваете их читать. CloudTrail, GuardDuty, Security Hub, VPC Flow Logs, WAF, Macie, Inspector, Config… и это только начало списка.
Эта модель обучена на 20+ AWS security sources и понимает, что означает каждое событие в контексте вашей инфраструктуры.
Технические характеристики:
- База: meta-llama/Llama-3.1-8B-Instruct
- Обучено на: 16,448 семплов AWS security events
- AWS Sources: 20+ сервисов (CloudTrail, GuardDuty, Security Hub, etc.)
- MITRE ATT&CK: 135 cloud techniques, 14 tactics
- Compliance: 195 items (CIS, PCI-DSS, HIPAA, GDPR, FedRAMP, NIST)
- Attack Scenarios: 20 multi-step attack patterns
- Размер: 4.3GB (Ollama версия, Q4_0 quantization)
Что умеет?
Модель анализирует события из:
| Сервис | Что ловит |
|---|---|
| CloudTrail | 74 типа API calls (включая те, что делает root в 3 ночи) |
| GuardDuty | 86 типов findings (от crypto mining до data exfiltration) |
| Security Hub | Compliance violations (CIS, PCI-DSS, HIPAA) |
| VPC Flow Logs | 5 attack patterns (port scanning, DDoS, etc.) |
| WAF | Web application attacks (SQLi, XSS, и другие “классики”) |
| Macie | Data sensitivity findings (когда S3 bucket решил стать публичным) |
| Inspector | Vulnerability findings (zero-days и не очень zero) |
| Config | Configuration drift (кто-то отключил encryption, сюрприз!) |
Пример использования
Через HuggingFace:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("pyToshka/aws-security-analyst")
tokenizer = AutoTokenizer.from_pretrained("pyToshka/aws-security-analyst")
prompt = """Проанализируй это AWS security event:
Event Source: GuardDuty
Finding Type: UnauthorizedAccess:EC2/SSHBruteForce
Severity: 8.0
Resource: EC2 instance i-1234567890abcdef0
Source IP: 45.142.120.10
Дай:
1. Threat assessment
2. MITRE ATT&CK techniques
3. Compliance impact
4. Рекомендуемые действия
"""
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Через Ollama:
# Установка
ollama pull OpenNix/aws-security-assistant
# Анализ CloudTrail event
ollama run OpenNix/aws-security-assistant \
"Analyze: Root user attached AdministratorAccess policy at 3 AM"
# Через API
curl http://localhost:11434/api/generate -d '{
"model": "OpenNix/aws-security-assistant",
"prompt": "Analyze GuardDuty finding: Cryptocurrency mining detected on EC2",
"stream": false
}'
Use Cases (когда эта модель спасёт вам день)
GuardDuty Findings Interpretation
- Получили finding — не знаете, насколько это серьёзно?
- Модель объяснит severity, MITRE techniques, и что делать
CloudTrail Event Investigation
- Кто-то создал IAM user с admin правами в 2 ночи?
- Модель расскажет, почему это подозрительно (или нет)
Compliance Violations Detection
- CIS benchmark failed? PCI-DSS violation?
- Модель объяснит, какой пункт нарушен и как чинить
Multi-Source Event Correlation
- CloudTrail + GuardDuty + VPC Flow Logs = ???
- Модель соберёт puzzle и покажет полную картину атаки
Incident Response Planning
- Не знаете, с чего начать?
- Модель даст step-by-step план реагирования
Сравнительная таблица: что выбрать?
| Параметр | Wazuh Assistant | AWS Security Analyst |
|---|---|---|
| Специализация | Wazuh security events | AWS cloud security |
| Обучено на | Wazuh rules & alerts | 20+ AWS services |
| Training samples | ~2000 | 16,448 |
| MITRE ATT&CK | General | Cloud-specific (135 techniques) |
| Compliance | Basic | Advanced (CIS, PCI-DSS, HIPAA, GDPR, FedRAMP, NIST) |
| Языки | EN, RU, ES | EN, RU, ES |
| Размер (Ollama) | 4.7GB | 4.3GB |
| Context window | 128K | 128K |
| Best for | On-prem/hybrid security | Cloud-native AWS |
Установка и запуск: три способа
Способ 1: HuggingFace Transformers (для тех, кто любит контроль)
# Для Wazuh
from transformers import AutoModelForCausalLM, AutoTokenizer
wazuh_model = AutoModelForCausalLM.from_pretrained("pyToshka/wazuh-llama-3.1-8b-assistant")
wazuh_tokenizer = AutoTokenizer.from_pretrained("pyToshka/wazuh-llama-3.1-8b-assistant")
# Для AWS
aws_model = AutoModelForCausalLM.from_pretrained("pyToshka/aws-security-analyst")
aws_tokenizer = AutoTokenizer.from_pretrained("pyToshka/aws-security-analyst")
Способ 2: Ollama (для тех, кто ценит простоту)
# Установка Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Wazuh Assistant
ollama pull OpenNix/wazuh-llama-3.1-8B-v1
ollama run OpenNix/wazuh-llama-3.1-8B-v1
# AWS Security Analyst
ollama pull OpenNix/aws-security-assistant
ollama run OpenNix/aws-security-assistant
Способ 3: Docker + Ollama (для production)
# docker-compose.yml
services:
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
restart: always
environment:
- OLLAMA_KEEP_ALIVE=24h
- OLLAMA_HOST=0.0.0.0
docker-compose up -d
# Pull models
docker exec -it ollama bash
ollama pull OpenNix/wazuh-llama-3.1-8B-v1
ollama pull OpenNix/aws-security-assistant
Интеграция с Wazuh (потому что можно!)
Помните мою серию статей про интеграцию Wazuh с Ollama?
Эти модели можно легко интегрировать в ваш Wazuh кластер:
#!/var/ossec/framework/python/bin/python3
from ollama import Client
def analyze_wazuh_alert(alert):
client = Client(host='http://localhost:11434')
response = client.chat(
model='OpenNix/wazuh-llama-3.1-8B-v1',
messages=[{
'role': 'user',
'content': f'Analyze this Wazuh alert: {alert}'
}]
)
return response['message']['content']
if __name__ == "__main__":
alert = sys.argv[1]
analysis = analyze_wazuh_alert(alert)
send_to_wazuh(analysis)
Real-world Use Cases (примеры из жизни)
Сценарий 1: SSH Brute-force Detection
Input (Wazuh Assistant):
Multiple failed SSH login attempts from 103.85.24.45
Rule: 5710 | Level: 10 | sshd: authentication failure
Output:
Threat Level: 12/15 - High Severity
Attack Type: SSH Brute-force (MITRE T1110.001)
Risk: Active credential compromise attempt
Actions:
1. Block IP immediately via firewall/fail2ban
2. Check for successful logins from same /24 subnet
3. Enable 2FA if not configured
4. Review SSH key-based auth configuration
Сценарий 2: AWS Privilege Escalation
Input (AWS Security Analyst):
CloudTrail Event: AttachUserPolicy
User: dev-user
Policy: AdministratorAccess
Time: 02:47 AM UTC
Source IP: 185.220.101.45 (Tor exit node)
Output:
Threat Assessment: CRITICAL
MITRE ATT&CK: T1098.001 - Account Manipulation: Additional Cloud Credentials
Compliance Impact:
- CIS AWS Foundations: 1.16 (IAM policies)
- PCI-DSS: 7.1, 7.2 (Access control)
Attack Scenario: Privilege Escalation via Policy Attachment
1. Compromised dev-user account (low privileges)
2. Attached AdministratorAccess (privilege escalation)
3. Source IP is Tor node (attacker hiding identity)
Immediate Actions:
1. REVOKE AdministratorAccess from dev-user NOW
2. Rotate dev-user credentials immediately
3. Review CloudTrail for other actions from this IP
4. Check for data exfiltration (S3 GetObject, etc.)
5. Enable MFA delete on critical S3 buckets
6. Implement SCPs to prevent policy attachment by non-admin users
Limitations (честно о недостатках)
Обе модели:
Не заменяют человека(я пробовал,но нет) — это ассистенты, а не автопилоты
Требуют проверки — всегда проверяйте рекомендации перед применением
Context window ограничен — 128K это много, но не бесконечность
Могут галлюцинировать — как любая LLM, иногда придумывают детали
Wazuh Assistant:
Не знает ничего про пользовательские правила Wazuh (только официальные)
AWS Security Analyst:
Не будет работать с Azure или GCP Synthetic data может не покрывать все случаи, но я старался
FAQ (часто задаваемые вопросы)
Q: Это бесплатно?
A: Да, обе модели полностью open-source под LLaMA 3.1 Community License
Q: Можно использовать в commercial проектах?
A: Да, но читайте LLaMA 3.1 license — там есть нюансы
Q: Какая модель лучше?
A: Зависит от your use case. Wazuh для on-prem/hybrid, AWS для cloud
Q: Работает ли offline?
A: Да! Особенно через Ollama — всё локально, никаких API calls
Q: Можно ли fine-tune дальше на своих данных?
A: Конечно! Это LoRA models, легко дообучаются
Q: А что насчет privacy?
A: Вся inference локально (если через Ollama), никакие данные никуда не уходят
Q: Поддержка multi-GPU?
A: HuggingFace version — да, Ollama version — пока нет
Q: Latency какая в production?
A: 1-3s на GPU, 10-30s на CPU (зависит от hardware и length of response)
Ссылки
Модели:
Wazuh Security Assistant:
- HuggingFace: pyToshka/wazuh-llama-3.1-8b-assistant
- Ollama: OpenNix/wazuh-llama-3.1-8B-v1
AWS Security Analyst:
- HuggingFace: pyToshka/aws-security-analyst
- Ollama: OpenNix/aws-security-assistant
Полезные статьи:
- Интеграция Wazuh с Ollama: Part 1
- Интеграция Wazuh с Ollama: Part 2
- Интеграция Wazuh с Ollama: Part 3
- Интеграция Wazuh с Ollama: Part 4
- RAG для документации Wazuh: Part 1
- RAG для документации Wazuh: Part 2