
A lightweight Python module to interact with the [MITRE ATT&CK®](https://attack.mitre.org/) Enterprise dataset. Built for speed with minimal dependencies. [Read the docs](https://gitlab.com/xakepnz/enterpriseattack/tree/main/docs) for more info.
Module Python léger pour interagir avec le jeu de données Enterprise de MITRE ATT&CK. Conçu pour être utilisé dans des applications de production grâce à sa rapidité et à ses dépendances minimales. Consultez la documentation pour plus d'informations.
MITRE ATT&CK® est une base de connaissances accessible à l'échelle mondiale sur les tactiques et techniques des adversaires, fondée sur des observations réelles. La base de connaissances ATT&CK est utilisée comme fondement pour le développement de modèles de menace et de méthodologies spécifiques dans le secteur privé, au sein des gouvernements et dans la communauté des produits et services de cybersécurité.
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()
Accédez directement à n'importe quel objet depuis la classe Attack, plutôt que d'itérer pour trouver des objets spécifiques.
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))
Dans cet exemple, vous pouvez choisir d'où télécharger le json officiel de Mitre Att&ck, y compris les proxys à utiliser. Vous pouvez également modifier l'argument enterprise_json si vous souhaitez enregistrer le fichier json dans un emplacement distinct. Par défaut, celui-ci est enregistré dans l'emplacement par défaut de site-packages.
enterprise_json - (facultatif) emplacement du fichier json enterprise (enregistré automatiquement dans l'emplacement pip)url - (facultatif) emplacement du fichier json enterprise à télécharger.update - (facultatif) booléen qui force un téléchargement de rafraîchissement (à chaque appel), en écrasant le fichier précédent.include_deprecated - (facultatif) booléen pour inclure les objets obsolètes de MITRE ATT&CK (des versions précédentes d'Att&ck).mitre_version - (facultatif) spécifie une version des données MITRE ATT&CK.proxies - (facultatif) dictionnaire de proxys à utiliser pour atteindre le GitHub de MITRE et récupérer le fichier 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())
...
Pour plus d'exemples, veuillez vous référer à la Documentation