Resumo do projeto
Este projeto testa o uso de um LLM como apoio à triagem inicial de alertas.
O laboratório usa Windows Event Logs e Sysmon, enviados ao Splunk, com processamento em Python e integração com a API da OpenAI para gerar avaliações estruturadas e compará-las com uma análise manual baseada nas mesmas evidências.
Repositório no GitHub: AI-ASSISTED-SOC-TRIAGE
Ferramentas utilizadas
- Splunk Enterprise
- Sysmon
- Windows Event Logs
- Python
- API da OpenAI
- MITRE ATT&CK
O que foi desenvolvido
Criei três cenários de alerta envolvendo criação de conta local, execução de PowerShell e um falso positivo controlado.
Cada alerta foi estruturado em JSON e processado por um script em Python, que enviou as evidências disponíveis ao LLM usando um prompt de triagem com restrições definidas.
As avaliações geradas pelo modelo foram então comparadas com uma análise manual baseada nas mesmas evidências.
Alerta 01: criação de conta local
O caso principal utiliza o Alerta 01 — criação de nova conta local.
A atividade gerou o Windows Security Event ID 4720.
Pesquisei o evento no Splunk:
index=* source="WinEventLog:Security" EventCode=4720
| table _time host Subject_Account_Name Target_Account_Name
| sort -_time

O evento confirmou que a conta lab_backup foi criada no host DESKTOP-HRMT55O pelo usuário jules.
Em seguida, consultei o Sysmon Event ID 1 para obter mais contexto sobre o processo:
index=* source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"lab_backup"
| search EventID=1
| table _time host User Image CommandLine ParentImage

O evento do Sysmon acrescentou a linha de comando e informações sobre o processo pai associadas à criação da conta.
O LLM produziu:
{
"risk_level": "medium",
"classification": "needs_review",
"mitre_attack_mapping": [
{
"technique_id": "T1136.001",
"technique_name": "Create Account: Local Account",
"confidence": "high"
}
],
"triage_questions": [
"Is the user authorized to create local accounts on this endpoint?",
"Was there an approved change ticket or lab activity?",
"Was the account later added to a privileged group?",
"Was the account subsequently used to log in?"
],
"confidence": "medium"
}
Minha avaliação manual chegou ao mesmo resultado:
Classificação: needs_review
Nível de risco: médio
As evidências confirmaram que a conta havia sido criada, mas não permitiam determinar se a ação era autorizada ou maliciosa.
O LLM também mapeou a atividade para T1136.001 — Create Account: Local Account sem concluir, sem evidência adicional, que houve comprometimento ou persistência.
Casos adicionais
Alerta 02 — PowerShell suspeito
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Test-NetConnection 192.168.20.45 -Port 9997"
As duas avaliações classificaram o evento como needs_review.
O LLM atribuiu risco low, enquanto minha avaliação manual atribuiu medium, dando maior peso à combinação de ExecutionPolicy Bypass com atividade de conectividade de rede.
O comando, isoladamente, não foi tratado como evidência de comprometimento.
Alerta 03 — falso positivo com alto nível de ruído
cmd.exe /c whoami
O comando fazia parte de um teste documentado de visibilidade de execução de comandos no Splunk.
Tanto o LLM quanto a avaliação manual classificaram o evento como benign, com risco low.
O modelo não tratou o uso de cmd.exe ou whoami, isoladamente, como evidência de atividade maliciosa.
Comparação dos resultados
| Alerta | IA | Avaliação manual | Resultado |
|---|---|---|---|
| 01 — Nova conta local | needs_review, risco medium |
needs_review, risco medium |
Alinhado |
| 02 — PowerShell | needs_review, risco low |
needs_review, risco medium |
Parcialmente alinhado |
| 03 — Falso positivo | benign, risco low |
benign, risco low |
Alinhado |
A principal divergência ocorreu no Alerta 02: a classificação foi a mesma, mas minha avaliação atribuiu maior peso à combinação de ExecutionPolicy Bypass com atividade de conectividade de rede.
Principais conclusões
O LLM foi útil para:
- resumir evidências e destacar observáveis relevantes;
- identificar contexto ausente por meio de perguntas de triagem;
- sugerir mapeamentos MITRE ATT&CK com níveis de confiança;
- manter as conclusões limitadas às evidências disponíveis.
A principal limitação foi a dependência do contexto fornecido. Informações sobre autorização, relações entre processos, resultado da execução e atividade associada poderiam alterar significativamente a avaliação.
O valor do LLM neste laboratório esteve no apoio estruturado à análise, não na tomada autônoma de decisão.
IA como apoio à análise, com conclusões limitadas às evidências disponíveis.