
Riconoscere i gruppi APT più probabili responsabili di un incidente
Riconoscimento dei gruppi APT più probabili responsabili di un incidente
Questo programma prende un report di un incidente di cybersicurezza contenente le tecniche MITRE ATT&CK che sono state rilevate come utilizzate nell'incidente e cerca di riconoscere quali gruppi APT hanno più probabilmente causato l'incidente.
Lo script dipende dal modulo enterpriseattack per un facile accesso alle
varie tecniche e gruppi MITRE ATT&CK, quindi è necessario installare
questo modulo prima di poter utilizzare lo script. Poiché quel modulo
richiede Python versione 3.6 o superiore, anche questo script funziona solo
con tali versioni di Python.
Clona il repository:
git clone https://gitlab.com/bontchev/whodunit.git
Vai nella directory dello script:
cd whodunit
Installa le dipendenze:
pip install -r requirements.txt
python whodunit.py [-h] [-v] [-n NUMGROUPS] [-b] [-u] [-d] techniques
Lo script accetta le seguenti opzioni da riga di comando:
-h, --help Mostra una breve spiegazione su come utilizzare lo script e
quali sono le opzioni da riga di comando.
-v, --version Mostra la versione dello script ed esce.
-n NUMGROUPS, --numgroups NUMGROUPS Numero di gruppi più vicini da elencare (default: 10).
-b, --verbose Elenca le tecniche MITRE ATT&CK presenti nel report.
-u, --update Aggiorna la copia locale dei dati MITRE ATT&CK.
-d, --deprecated Usa anche le tecniche ATT&CK obsolete.
techniques Un file di testo contenente un elenco delle tecniche MITRE ATT&CK
osservate durante l'incidente di cybersicurezza. Le righe vuote vengono ignorate,
tutto ciò che segue il carattere # su una riga è considerato un commento e viene
ignorato. È possibile elencare più di una tecnica sulla stessa riga, nel qual
caso devono essere separate da uno o più spazi bianchi.
Il repository contiene un report (inventato) di un incidente di cybersicurezza
nel file report.txt. La descrizione in linguaggio naturale di ciò che è stato
osservato si trova nei commenti. Puoi elaborare questo report con lo script in
questo modo:
python whodunit.py -u -b -n 5 report.txt
Questo forza lo script ad aggiornare la copia locale dei dati MITRE ATT&CK
(opzione -u), a elencare le tecniche riconosciute nel report dell'incidente
(opzione -b) e a produrre in output i 5 gruppi APT più probabili
responsabili dell'incidente (opzione -n 5):
Processing report file "report.txt"...
Observed techniques:
T1003.001
T1005
T1039
T1059.001
T1068
T1078.003
T1110.003
T1114.001
T1133
T1213.002
T1486
T1548.002
T1560
T1562.001
T1573.002
The 5 APT groups most likely responsible:
G0007 (APT28 ): 60.00%
G0016 (APT29 ): 53.33%
G0037 (FIN6 ): 46.67%
G0060 (BRONZE BUTLER ): 40.00%
G0114 (Chimera ): 40.00%
Lo script funziona trovando l'intersezione tra l'insieme delle tecniche note per essere utilizzate da ciascun gruppo APT e l'insieme delle tecniche elencate nel report dell'incidente, e segnalando con maggiore confidenza i gruppi per i quali questa intersezione è il sottoinsieme più ampio delle tecniche elencate nel report dell'incidente.
La prima colonna è l'identificatore del gruppo APT nel framework MITRE ATT&CK, la seconda colonna è il nome comune del gruppo e la terza colonna indica quale percentuale delle tecniche nel report dell'incidente siano tecniche note per essere utilizzate dal corrispondente gruppo APT.
Nota: È supportata solo la matrice Enterprise del framework MITRE ATT&CK
(e non, ad esempio, le matrici Mobile o ICS), perché questo è ciò che
supporta il modulo enterpriseattack.
Questo progetto è concesso in licenza sotto la licenza GNU v3.0.