
Легковесный Python-модуль для взаимодействия с набором данных [MITRE ATT&CK®](https://attack.mitre.org/) Enterprise. Создан для скорости с минимальными зависимостями. [Читайте документацию](https://gitlab.com/xakepnz/enterpriseattack/tree/main/docs) для получения дополнительной информации.
Легковесный Python-модуль для взаимодействия с корпоративным набором данных MITRE ATT&CK. Создан для использования в production-приложениях благодаря своей скорости и минимальному количеству зависимостей. Документация содержит дополнительную информацию.
MITRE ATT&CK® — это глобально доступная база знаний о тактиках и техниках противников, основанная на реальных наблюдениях. База знаний ATT&CK используется как основа для разработки конкретных моделей угроз и методологий в частном секторе, в государственных структурах, а также в сообществе специалистов по кибербезопасности и разработчиков соответствующих продуктов и услуг.
pip3 install enterpriseattack
git clone https://gitlab.com/xakepnz/enterpriseattack.git
cd enterpriseattack
python3 setup.py install
(к началу)
docker build enterpriseattack:0.1.8 .
docker tag enterpriseattack:0.1.8 enterpriseattack:latest
docker run enterpriseattack
(к началу)
import enterpriseattack
attack = enterpriseattack.Attack()
Обращайтесь к любому объекту напрямую через класс Attack, а не перебирая объекты в поисках нужного.
attack = enterpriseattack.Attack(subscriptable=True)
wizard_spider = attack.groups.get('Wizard Spider')
print(len(wizard_spider.tactics))
execution = attack.tactics.get('Execution')
print(len(execution.techniques))
В этом примере можно выбрать, откуда загружать официальный JSON-файл MITRE ATT&CK, включая прокси-серверы для прохождения трафика. Либо, если вы хотите сохранить JSON-файл в другом месте, вы можете изменить аргумент enterprise_json. По умолчанию файл сохраняется в стандартном каталоге site-packages.
enterprise_json — (необязательно) расположение enterprise JSON-файла (автоматически сохраняется в каталоге pip).url — (необязательно) адрес, откуда загружается enterprise JSON-файл.update — (необязательно) логическое значение, принудительно обновляющее загрузку (при каждом вызове), перезаписывая предыдущий файл.include_deprecated — (необязательно) логическое значение, включающее устаревшие объекты MITRE ATT&CK (из предыдущих версий ATT&CK).mitre_version — (необязательно) указывает версию данных MITRE ATT&CK.proxies — (необязательно) словарь прокси-серверов для доступа к MITRE GitHub за файлом enterprise-attack.json.attack = enterpriseattack.Attack(
enterprise_json=None,
url='https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json',
include_deprecated=False,
update=False,
subscriptable=True,
mitre_version='latest',
proxies={'http':'http://127.0.0.1:1337'}
)
attack = enterpriseattack.Attack(
mitre_version='11.3',
update=True
)
print(attack.mitre_version)
attack = enterpriseattack.Attack()
for tactic in attack.tactics:
print(tactic.name)
for technique in tactic.techniques:
print(technique.name)
print(technique.detection)
for software in attack.software:
for technique in software.techniques:
for sub_technique in technique.sub_techniques:
print(software.name, technique.name, sub_technique.name)
attack = enterpriseattack.Attack()
for tactic in attack.tactics:
print(tactic.to_json())
for group in attack.groups:
print(group.to_json())
...
Дополнительные примеры приведены в Документации
(к началу)