
[MITRE ATT&CK®](https://attack.mitre.org/)エンタープライズデータセットと対話するための軽量なPythonモジュール。最小限の依存関係で高速に動作するように構築されています。詳細については[ドキュメント](https://gitlab.com/xakepnz/enterpriseattack/tree/main/docs)をお読みください。
MITRE ATT&CK Enterpriseデータセットと対話するための軽量Pythonモジュールです。高速で依存関係が最小限であるため、本番アプリケーションでの使用に適しています。詳細についてはドキュメントをお読みください。
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))
この例では、公式のMitre Att&ck JSONをダウンロードする場所を選択でき、通過するプロキシも指定できます。あるいは、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に到達するために通過するプロキシのdict。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())
...
その他の例については、ドキュメントを参照してください。
(先頭に戻る)