Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyattck — Mitre ATT&CK Frameworkと対話するためのPythonパッケージ | Kitploit
ツール/GitHubGitHub/swimlane/pyattck
ペネトレーションテストフレームワーク情報収集ユーティリティとフレームワーク脅威インテリジェンス学習と教育厳選リソースArchived
GitHubswimlane/pyattck

pyattck

Mitre ATT&CK Frameworkと対話するためのPythonパッケージ

リポジトリを見る
480932年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

pyattck

pyattck のドキュメントへようこそ

root@kitploit:~
    .______   ____    ____  ___   .___________.___________.  ______  __  ___
    |   _  \  \   \  /   / /   \  |           |           | /      ||  |/  /
    |  |_)  |  \   \/   / /  ^  \ `---|  |----`---|  |----`|  ,----'|  '  /
    |   ___/    \_    _/ /  /_\  \    |  |        |  |     |  |     |    <
    |  |          |  |  /  _____  \   |  |        |  |     |  `----.|  .  \
    | _|          |__| /__/     \__\  |__|        |__|      \______||__|\__\

root@kitploit:~
MITRE ATT&CK フレームワークと対話するための Python パッケージ

現在のバージョンは 7.1.1 です

pyattck は MITRE ATT&CK フレームワークのための軽量なフレームワークです。このパッケージは、MITRE Enterprise、PRE-ATT&CK、Mobile、および ICS フレームワークから詳細を抽出します。

なぜか?

pyattck は、組織や個人が MITRE ATT&CK フレームワークにプログラムでアクセスできるように支援します。つまり、Enterprise、Mobile、Pre-Attck、ICS フレームワークで定義されたすべてのアクター、マルウェア、緩和策、戦術、技法、ツールに、コマンドラインユーティリティを介して、あるいは自分のコードベースに組み込んでアクセスできるということです。

このデータに自動化された(スクリプト化/コーディングされた)方法でアクセスしたい理由は数多くありますが、いくつかの例を挙げます。

  • 技法(またはフレームワークで定義された任意のオブジェクト)に関する追加情報を含むレポートを生成する
  • カテゴリ分けのための MITRE ATT&CK の詳細を追加した検出ルールのビルドパイプライン
  • Web ページを操作せずに技法の特定の詳細を迅速に検索する

pyattck が提供する他の利点としては、追加のコンテキストデータを提供できることもあります。このデータの詳細についてはこちらを参照してください。基本的には、pyattck は複数のオープンソースリポジトリを利用して、技法の実行に使用されるコマンド、悪意のあるアクターの国やその他の詳細、定義されたツール/マルウェアに類似したマルウェアの他の亜種など、追加のコンテキストデータを収集します。

この追加のコンテキストこそが、pyattck を真に強力なものにし、人々が検出ルールのより堅牢なテストと検証を構築したり、テストの仮定を検証したりすることを可能にします。実際、pyattck をブルーチーム、レッドチーム、パープルチームが組織(そして自身)を守るために活用できる方法は無数にあります。

機能

pyattck パッケージは、MITRE ATT&CK フレームワークからすべての戦術、技法、アクター、マルウェア、ツール、緩和策と、MITRE ATT&CK データセット内で定義されたすべての関係(サブ技法を含む)を取得します。

さらに、技法、アクター、ツール(該当する場合)には、サードパーティのリソースから収集されたデータが含まれるようになり、さまざまなプロパティを介してアクセスできます。これらの機能の詳細については、外部データセットを参照してください。

pyattck パッケージでは次のことが可能です。

  • MITRE ATT&CK Enterprise フレームワークの JSON、生成されたデータセット、および/または config.yml ファイルの URL またはローカルファイルパスを指定できます。
  • MITRE PRE-ATT&CK フレームワークのデータにアクセスできます。
  • MITRE Mobile ATT&CK フレームワークのデータにアクセスできます。
  • MITRE ICS ATT&CK フレームワークのデータにアクセスできます。
  • サブ技法をネストされたオブジェクトとしてアクセスするか、オフにして通常の技法としてアクセスできます。
  • MITRE ATT&CK 技法に関連するコンプライアンスコントロール(現在は NIST 800-53 v5)にアクセスできます。
  • pyattck は構造化データモデルを利用するようになりました。詳細は pyattck-data を参照してください。
  • pyattck データにアクセスするための対話型コンソールメニューシステムを実行できます。

目次

  1. インストール
  2. 使用例
  3. 設定
  4. 注記

インストール

pyattck は OS X、Linux、Windows にインストールできます。また、ソースから直接インストールすることもできます。インストールするには、該当するオペレーティングシステムの見出しの下にあるコマンドを参照してください。

macOS、Linux、Windows:

root@kitploit:~
pip install pyattck

ソースからインストール

root@kitploit:~
git clone https://github.com/swimlane/pyattck.git
cd pyattck
python setup.py install

使用例

pyattck を使用するには、Attck オブジェクトをインスタンス化する必要があります。各クラスを直接操作することもできますが、意図された使用方法は Attck オブジェクトを介することです。

root@kitploit:~
from pyattck import Attck

attack = Attck()

デフォルトでは、sub-techniques は各技法オブジェクトの下でアクセス可能です。この動作をオフにするには、Attck オブジェクトを作成するときに nested_techniques=False を渡します。

例として、デフォルトの動作は次のようになります。

root@kitploit:~
from pyattck import Attck

attack = Attck()

for technique in attack.enterprise.techniques:
    print(technique.id)
    print(technique.name)
    for subtechnique in technique.techniques:
        print(subtechnique.id)
        print(subtechnique.name)

Attck オブジェクトでは、次の main プロパティにアクセスできます。

  • enterprise
  • preattack
  • mobile
  • ics

MITRE ATT&CK フレームワークを指定すると、追加のプロパティにアクセスできます。

Enterprise プロパティの下でアクセス可能なオブジェクトは次のとおりです。

  • actors
  • controls
  • malwares
  • mitigations
  • tactics
  • techniques
  • tools

enterprise プロパティの下のオブジェクトタイプの詳細については、Enterprise を参照してください。

PreAttck プロパティの下でアクセス可能なオブジェクトは次のとおりです。

  • actors
  • tactics
  • techniques

preattck プロパティの下のオブジェクトタイプの詳細については、PreAttck を参照してください。

Mobile プロパティの下でアクセス可能なオブジェクトは次のとおりです。

  • actors
  • malwares
  • mitigations
  • tactics
  • techniques
  • tools

mobile プロパティの下のオブジェクトタイプの詳細については、Mobile を参照してください。

ICS プロパティの下でアクセス可能なオブジェクトは次のとおりです。

  • controls
  • malwares
  • mitigations
  • tactics
  • techniques

ics プロパティの下のオブジェクトタイプの詳細については、ICS を参照してください。

対話型メニューの使用

pyattck 内の新しい対話型メニューシステムを利用するには、interactive を True に設定する必要があります。そうすると、対話型コンソールメニューシステムが起動します。

スクリプトを使用して、次のように実行して起動できます。

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

または、コマンドラインで対話モードを実行することもできます。

root@kitploit:~
pyattck --interactive

以下の gif の例を確認してください。

設定

pyattck では、外部データを保存するかどうか、およびその保存場所を設定できます。

root@kitploit:~
from pyattck import Attck

attck = Attck(
    nested_techniques=True,
    use_config=False,
    save_config=False,
    config_file_path='~/pyattck/config.yml',
    data_path='~/pyattck/data',
    enterprise_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_enterprise_attck_v1.json",
    pre_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_pre_attck_v1.json",
    mobile_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_mobile_attck_v1.json",
    ics_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_ics_attck_v1.json",
    nist_controls_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_nist_controls_v1.json",
    generated_nist_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/attck_to_nist_controls.json",
    **kwargs
)

デフォルトでは、pyattck は(現在)HTTP GET リクエストを使用して、それぞれの場所から最新の外部データを取得します。pyattck は現在、以下の場所からデータを取得しています。

  • enterprise_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_enterprise_attck_v1.json"
  • pre_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_pre_attck_v1.json"
  • mobile_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_mobile_attck_v1.json"
  • ics_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_ics_attck_v1.json"
  • nist_controls_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_nist_controls_v1.json"
  • generated_nist_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/attck_to_nist_controls.json"

Attck オブジェクトをインスタンス化するとき、いくつかのオプションがあります。4.0.0 以降では、以下のオプションを指定できます。

  • use_config - この引数を True に指定すると、pyattck は config_file_path の場所で指定された設定を取得しようとします。このファイルが破損しているか見つからない場合、指定された *_attck_json の場所からデータを取得するデフォルトの動作にフォールバックします。
  • save_config - この引数を True に指定すると、pyattck は設定ファイルを config_file_path で設定された場所に保存します。さらに、ダウンロードしたすべてのファイルを指定された data_path の場所に保存します。*_attck_json パラメータのいずれかにダウンロード URL の代わりにローカルパスの場所を指定した場合、この場所を設定に保存し、今後その場所を参照します。
  • config_file_path - 設定ファイルを保存するパス。デフォルトは ~/pyattck/config.yml です。
  • data_path - ローカルシステムにダウンロードされたデータファイルを保存するパス。デフォルトは ~/pyattck/data です。

JSON の場所

さらに、各 *_attck_json ファイルの場所を URI またはローカルファイルパスで指定できます。ローカルファイルパスを渡した場合、そのファイルから読み取るだけです。

デフォルト値を使用したか、これらの JSON ファイルを取得するために代替 URI の場所を指定した場合、HTTP リクエストの実行時に Python パッケージ Requests に渡される **kwargs を追加で渡すことができます。

注記

私たちは、日々、多くの異なるオープンソースプロジェクトがリリースされていることを認識していますが、MITRE ATT&CK フレームワークのすべての垂直方向の既知の関係をユーザーが特定できるようにする、わかりやすい Python パッケージを提供したいと考えていました。

MITRE ATT&CK フレームワークに詳しくない場合、しっかりと理解しておくべきいくつかの主要な構成要素があります。最初のものは戦術と技法です。MITRE ATT&CK フレームワークを見ると、戦術は列であり、攻撃のさまざまな段階を表しています。

MITRE ATT&CK フレームワークは、すべてを網羅する/デファクトのセキュリティカバレッジマップではありません。それはあくまでフレームワークであり、セキュリティ体制を評価する際には、追加の手段も考慮する必要があります。

技法はフレームワークの行であり、特定の戦術(列)の下に分類されています。これらはフレームワーク内のデータポイントであり、セキュリティギャップを評価する際のガイダンスを提供します。さらに、(ほとんどの)技法には、緩和策のガイダンスと、その技法が記録された攻撃中に使用されたツール、マルウェア、さらにはアクター/グループとの関係に関する情報が含まれています。

つまり、組織が特定のアクター/グループによって使用される TTP(戦術、技法、手順)に焦点を当てている場合、MITRE ATT&CK フレームワークは最適です。組織がこのセキュリティ成熟度に達していない場合でも、心配はいりません!ATT&CK フレームワークは、シンプルでわかりやすいレイアウトで非常に優れたガイダンスを提供しますが、プログラム的には簡単ではありません。特に、フレームワークを使用してセキュリティコントロールを測定(またはマッピング)したい場合にはなおさらです。

開発とテスト

機能やバグを追加したり、開発環境でコードを実行したりできます。

  1. 開発およびテスト環境をセットアップして実行するには、この Dockerfile を使用します。

  2. Dockerfile を使用するには、このリポジトリディレクトリに cd して、次のコマンドを実行します。

root@kitploit:~
docker build --force-rm -t pyattck .
  1. 次に、Docker コンテナを実行します。
root@kitploit:~
docker run pyattck

これを実行すると、bin/test.py にあるテスト用 Python ファイルが呼び出されます。

  1. 追加のテストと開発のために、テスト用 Python ファイルを変更します。

テストの実行

このプロジェクト内のテストは、利用可能なすべてのプロパティとメソッドをカバーする必要があります。このプロジェクトが成長するにつれて、テストはより堅牢になりますが、今のところは、それらが存在し、出力を返すことをテストしています。

貢献

私たちの行動規範と、プルリクエストを提出するプロセスの詳細については、CONTRIBUTING.md をお読みください。

バージョニング

バージョニングには SemVer を使用しています。

変更履歴

特定のバージョンの pyattck の機能の詳細については、CHANGELOG.md を参照してください。

著者

  • Josh Rickard - 初期作業 - MSAdministrator

コントリビューターのリストもご覧ください。

ライセンス

このプロジェクトは MIT ライセンス の下でライセンスされています。

謝辞

まず第一に、オープンソースプロジェクトに貢献してくださるすべての方々、特にこれらのプロジェクトのメンテナーと作成者に感謝いたします。彼らがいなければ、この機能は実現しなかったでしょう。

このデータセットは多くの異なるソースから生成されています。ソースを追加し続けるにつれて、ここに追加していきます。これらのプロジェクトすべてに改めて感謝します。順不同で、pyattck は以下のプロジェクトからのデータを利用しています。

  • Mitre ATT&CK APT3 Adversary Emulation Field Manual
  • Atomic Red Team (by Red Canary)
  • Atomic Threat Coverage
  • attck_empire (by dstepanic)
  • sentinel-attack (by BlueTeamLabs)
  • Litmus_test (by Kirtar22)
  • nsm-attack (by oxtf)
  • osquery-attck (by teoseller)
  • Mitre Stockpile
  • SysmonHunter (by baronpan)
  • ThreatHunting-Book (by 12306Bro)
  • threat_hunting_tables (by dwestgard)
  • APT Groups & Operations
  • C2Matrix (by @jorgeorchilles, @brysonbort, @adam_mashinchi)
  • Elemental
  • MalwareArchaeology - ATTACK
  • Attack-Technique-Dataset
root@kitploit:~
.. toctree::
   :titlesonly:

   configuration
   pyattck/attck
   Dataset <https://github.com/swimlane/pyattck-data>
   Data Models <https://github.com/swimlane/pyattck-data>
   enterprise/enterprise
   preattck/preattck
   mobile/mobileattck
   ics/icsattck
ツールをダウンロード