# DC0025 - Firewall Rule Modification
> [!info] Monitora alterações nas regras de firewall do host e infraestrutura. Adversários modificam regras para abrir portas de acesso remoto, permitir comunicação C2 e remover bloqueios que impediriam movimentação lateral.
## Descrição
Firewall Rule Modification monitora alterações nas regras de firewall do host (Windows Firewall, iptables, nftables) ou em firewalls de infraestrutura. Adversários modificam regras de firewall para abrir portas para acesso remoto, permitir comunicação C2 de processos específicos, desabilitar bloqueios de saída para exfiltração e remover restrições que impediriam movimentação lateral. A modificação de firewall é frequentemente um dos primeiros passos após comprometimento inicial para garantir persistência de acesso.
## Fonte de Dados
Parent: [[ds0018-firewall|DS0018 - Firewall]]
## Pipeline de Detecção
```mermaid
graph TB
A["🔥 Event ID 4946<br/>Regra Adicionada"] --> B["📋 Regra Analisada<br/>Ação + Porta"]
B --> C{"⚠️ Ação<br/>da Regra"}
C -->|Allow Inbound| D{"🌐 Porta de<br/>Acesso Remoto?"}
C -->|Firewall Off| E["🚨 Alerta P1<br/>Proteção Desabilitada"]
D -->|RDP/WinRM/SSH| F["🚨 Alerta P1<br/>Acesso Remoto Aberto"]
D -->|Porta Incomum| G["🟧 Alerta P2<br/>Investigar Porta"]
D -->|Porta Conhecida| H["📋 Verificar<br/>Autorização"]
classDef p1 fill:#e74c3c,color:#ecf0f1
classDef p2 fill:#e67e22,color:#ecf0f1
classDef ok fill:#2c3e50,color:#ecf0f1
class E,F p1
class G p2
class A,B,C,D,H ok
```
## O Que Monitorar
- Windows Event ID 4950 (Regra do Windows Firewall modificada)
- Windows Event ID 4946 (Regra adicionada ao Windows Firewall)
- Windows Event ID 4947 (Regra do Windows Firewall excluída ou modificada)
- Uso de `netsh advfirewall` para adicionar ou remover regras
- Uso de `Set-NetFirewallRule` ou `New-NetFirewallRule` via PowerShell
- Desabilitação completa do Windows Firewall via `netsh firewall set opmode disable`
- Modificações em security groups de cloud (AWS SG, Azure NSG)
- Abertura de portas incomuns (RDP 3389, WinRM 5985/5986) de fontes externas
## Técnicas Detectadas
| Técnica | ID | Como Detectar |
|---------|-----|---------------|
| Disable or Modify Firewall | [[t1562-impair-defenses\|T1562.004]] | Desabilitação ou remoção de regras de bloqueio |
| Proxy | [[t1090-proxy\|T1090]] | Abertura de portas para proxy ou relay de tráfego |
| Exfiltration Over Alternative Protocol | [[t1048-exfiltration-over-alternative-protocol\|T1048]] | Abertura de portas de saída não padrão |
| Remote Services | [[t1021-remote-services\|T1021]] | Abertura de portas RDP/SSH/WinRM de fontes externas |
## Implementação
**Habilitar auditoria de firewall:**
```
Computer Configuration > Windows Settings > Security Settings >
Advanced Audit Policy > Policy Change > Audit MPSSVC Rule-Level Policy Change
```
**SIEM - modificações em regras de firewall:**
```
index=windows EventCode=4946 OR EventCode=4950
| stats count by RuleName, ModifyingUser, Action, Profile
| where Action="Allow" AND Profile="Domain"
```
**Cloud - monitorar security group changes:**
- AWS: CloudTrail `AuthorizeSecurityGroupIngress` events
- Azure: Activity Log `Microsoft.Network/networkSecurityGroups/securityRules/write`
**Ferramentas:** Windows Event Log, Wazuh, Splunk ES, Microsoft Sentinel, AWS CloudTrail, Azure Monitor.
## Consultas KQL — Microsoft Sentinel / Defender
### Abertura de Porta de Acesso Remoto
```kql
// DC0025 - Nova regra de firewall abrindo porta de acesso remoto
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID in (4946, 4950)
| where EventData has_any (
"3389", // RDP
"5985", // WinRM HTTP
"5986", // WinRM HTTPS
"22", // SSH
"23", // Telnet
"4444", // Metasploit default
"8080", "8443", "9090"
)
| where EventData has "Allow"
| project
TimeGenerated,
Computer,
SubjectUserName,
RuleName = extract(@"Rule Name:\s+([^\r\n]+)", 1, tostring(EventData)),
Action = extract(@"Action:\s+([^\r\n]+)", 1, tostring(EventData)),
RemotePort = extract(@"Remote Port:\s+([^\r\n]+)", 1, tostring(EventData))
| order by TimeGenerated desc
```
### Desabilitação Completa do Firewall
```kql
// DC0025 - Tentativa de desabilitar o Windows Firewall
DeviceProcessEvents
| where Timestamp > ago(7d)
| where (
// netsh firewall disable
(FileName =~ "netsh.exe"
and ProcessCommandLine has_any (
"set opmode disable",
"advfirewall set allprofiles state off",
"advfirewall set currentprofile state off"
))
// PowerShell disable
or (FileName =~ "powershell.exe"
and ProcessCommandLine has "Set-NetFirewallProfile"
and ProcessCommandLine has "Enabled False")
)
| project
Timestamp,
DeviceName,
FileName,
ProcessCommandLine,
InitiatingProcessFileName,
InitiatingProcessAccountName
| order by Timestamp desc
```
## Contexto LATAM
> [!latam] Relevância Regional
> **Desabilitação de firewall é etapa padrão em ataques de ransomware e comprometimento de servidores no Brasil.** Grupos documentados em ataques a empresas brasileiras frequentemente executam `netsh advfirewall set allprofiles state off` imediatamente após obter acesso privilegiado — facilitando movimentação lateral e acesso a serviços internos. Em ambientes cloud AWS/Azure utilizados por empresas brasileiras, modificações em **Security Groups** (AWS) ou **NSGs** (Azure) para abrir RDP (3389) para `0.0.0.0/0` são frequentemente realizadas por atacantes após comprometimento de credenciais IAM. O monitoramento de `AuthorizeSecurityGroupIngress` no CloudTrail deve gerar alerta imediato em qualquer organização com infraestrutura AWS na região.
## Referências
- [MITRE ATT&CK - DS0018 Firewall](https://attack.mitre.org/datasources/DS0018/)
- [Windows Firewall Events - Microsoft](https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4946)
- [AWS Security Group Monitoring - AWS](https://aws.amazon.com/security/)
- [Azure NSG Monitoring - Microsoft](https://learn.microsoft.com/en-us/azure/network-watcher/)