
Reconociendo los grupos APT más probables responsables de un incidente
Reconocimiento de los grupos APT con mayor probabilidad de ser responsables de un incidente
Este programa toma un informe de un incidente de ciberseguridad que contiene las técnicas MITRE ATT&CK que se ha detectado que fueron utilizadas en el incidente e intenta reconocer qué grupos APT son los más probables de haber sido responsables del incidente.
El script depende del módulo enterpriseattack para acceder fácilmente a
las diversas técnicas y grupos de MITRE ATT&CK, por lo que debe instalar
este módulo antes de poder utilizar el script. Dado que ese módulo
requiere Python versión 3.6 o superior, este script también se ejecuta solo
bajo dichas versiones de Python.
Clone el repositorio:
git clone https://gitlab.com/bontchev/whodunit.git
Vaya al directorio del script:
cd whodunit
Instale las dependencias:
pip install -r requirements.txt
python whodunit.py [-h] [-v] [-n NUMGROUPS] [-b] [-u] [-d] techniques
El script acepta las siguientes opciones de línea de comandos:
-h, --help Muestra una breve explicación de cómo usar el script y cuáles
son las opciones de línea de comandos.
-v, --version Muestra la versión del script y sale.
-n NUMGROUPS, --numgroups NUMGROUPS Número de grupos más cercanos a listar (por defecto: 10).
-b, --verbose Lista las técnicas MITRE ATT&CK del informe.
-u, --update Actualiza la copia local de los datos de MITRE ATT&CK.
-d, --deprecated Utiliza también las técnicas ATT&CK obsoletas.
techniques Un archivo de texto que contiene una lista de las técnicas MITRE ATT&CK
observadas durante el incidente de ciberseguridad. Las líneas vacías se ignoran;
todo lo que aparezca después de un carácter # en una línea se considera un comentario
y se ignora. Se puede listar más de una técnica en la misma línea, en cuyo
caso deben estar separadas por uno o más espacios en blanco.
El repositorio contiene un informe (inventado) de un incidente de ciberseguridad
en el archivo report.txt. La descripción en lenguaje natural de lo que se
observó está en los comentarios. Puede procesar este informe con el script
de la siguiente manera:
python whodunit.py -u -b -n 5 report.txt
Esto hará que el script actualice la copia local de los datos de MITRE ATT&CK
(la opción -u), liste las técnicas reconocidas en el informe del incidente
(la opción -b) y muestre los 5 grupos APT con mayor probabilidad de haber
sido responsables del incidente (la opción -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%
El script funciona hallando la intersección entre el conjunto de técnicas que se sabe que utiliza cada grupo APT y el conjunto de técnicas listadas en el informe del incidente, y reportando con mayor confianza los grupos para los cuales esta intersección es el subconjunto más grande de técnicas listadas en el informe del incidente.
La primera columna es el identificador del grupo APT en el marco MITRE ATT&CK, la segunda columna es el nombre común de ese grupo y la tercera columna es el porcentaje de las técnicas del informe del incidente que son técnicas que se sabe que utiliza el grupo APT correspondiente.
Nota: Solo se admite la matriz Enterprise del marco MITRE ATT&CK
(y no, por ejemplo, las matrices Mobile o ICS), porque
esto es lo que admite el módulo enterpriseattack.
Este proyecto está licenciado bajo la licencia GNU v3.0.