
Определение наиболее вероятных APT-групп, ответственных за инцидент
Определение наиболее вероятных APT-групп, ответственных за инцидент
Эта программа принимает отчёт о кибербезопасном инциденте, содержащий техники MITRE ATT&CK, которые, как было обнаружено, использовались в ходе инцидента, и пытается определить, какие APT-группы с наибольшей вероятностью ответственны за этот инцидент.
Скрипт зависит от модуля enterpriseattack для удобного доступа к
различным техникам и группам MITRE ATT&CK, поэтому перед использованием
скрипта необходимо установить этот модуль. Поскольку этот модуль
требует Python версии 3.6 или выше, скрипт также работает только
под такими версиями Python.
Клонируйте репозиторий:
git clone https://gitlab.com/bontchev/whodunit.git
Перейдите в каталог скрипта:
cd whodunit
Установите зависимости:
pip install -r requirements.txt
python whodunit.py [-h] [-v] [-n NUMGROUPS] [-b] [-u] [-d] techniques
Скрипт принимает следующие параметры командной строки:
-h, --help Выводит краткое объяснение того, как использовать скрипт,
и какие параметры командной строки доступны.
-v, --version Выводит версию скрипта и завершает работу.
-n NUMGROUPS, --numgroups NUMGROUPS Количество ближайших групп для вывода (по умолчанию: 10).
-b, --verbose Выводит список техник MITRE ATT&CK из отчёта.
-u, --update Обновляет локальную копию данных MITRE ATT&CK.
-d, --deprecated Использовать также устаревшие техники ATT&CK.
techniques Текстовый файл, содержащий список техник MITRE ATT&CK,
наблюдавшихся во время кибербезопасного инцидента. Пустые строки
игнорируются; всё после символа # в строке считается комментарием и
игнорируется. В одной строке можно указать несколько техник, в этом
случае они должны быть разделены одним или несколькими пробелами.
В репозитории содержится (вымышленный) отчёт о кибербезопасном инциденте
в файле report.txt. Описание на естественном языке того, что было
наблюдаемо, находится в комментариях. Вы можете обработать этот отчёт
скриптом следующим образом:
python whodunit.py -u -b -n 5 report.txt
Это заставит скрипт обновить локальную копию данных MITRE ATT&CK
(параметр -u), вывести список техник, распознанных в отчёте об инциденте
(параметр -b), и вывести 5 APT-групп, которые с наибольшей вероятностью
несут ответственность за инцидент (параметр -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%
Скрипт работает, находя пересечение множества техник, известных как используемые каждой APT-группой, и множества техник, перечисленных в отчёте об инциденте, и сообщая с более высокой уверенностью о группах, для которых это пересечение составляет наибольшее подмножество техник, перечисленных в отчёте об инциденте.
Первый столбец — это идентификатор APT-группы в структуре MITRE ATT&CK, второй столбец — общепринятое название этой группы, а третий столбец — какой процент техник из отчёта об инциденте является техниками, известными как используемые соответствующей APT-группой.
Примечание: Поддерживается только матрица Enterprise структуры
MITRE ATT&CK (а не, например, матрицы Mobile или ICS), поскольку
именно её поддерживает модуль enterpriseattack.
Этот проект лицензирован в соответствии с лицензией GNU v3.0.