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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/mitre/brawl-public-game-001
ペネトレーションテストフレームワークデジタルフォレンジッククラウドセキュリティ脅威インテリジェンス学習と教育レッドチーミングインシデントレスポンスログ分析敵対的攻撃ラボと実践
GitHubmitre/brawl-public-game-001

brawl-public-game-001

215398年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

BRAWL自動敵対エミュレーション演習からのデータ

リポジトリを見る

BRAWL

サイバーセキュリティ研究者が検出・対応能力を開発する際の課題の一つは、仮説や能力をテストするための現実的な環境を見つけることです。

最も安価な方法は、小規模なラボネットワークで能力をテストすることです。しかし、この環境には、実際のエンタープライズネットワークの規模や、現実環境のノイズが欠けており、検出がはるかに難しくなります。多くの点で、最適な環境は、制御された現実的な攻撃者と、ユーザー、システム管理者、サードパーティのソフトウェア/デバイスからの実際のノイズを伴う複数のエンタープライズ規模のネットワークでテストすることです。この環境でのテストの課題は、費用がかかり、シナリオによってはリスクが高いことです。

BRAWLは、クラウド環境内にエンタープライズネットワークを自動的に作成するシステムを作成することで、妥協点を見出すことを目指しています。OpenStackは現在サポートされている唯一の環境ですが、将来他のクラウド環境も容易にサポートできるように設計されています。BRAWLはまた、LogStashおよびKafkaを使用したデータ取り込み・処理パイプラインを含む分析ネットワークを構築します。分析ネットワークの一部として、ElasticsearchおよびKibanaを使用したイベントストレージ・検索システムを作成します。BRAWLはWindowsイメージを使用してエンタープライズネットワーク「ゲームボード」を起動します。これらのイメージにはMicrosoft Sysmonおよびその他のセンサーが既にインストール・設定され、ログをデータ取り込みフレームワークに転送するようになっています。

BRAWLにはまた、ボットの概念があり、Red、Blue、またはGrayのいずれかになります。Redボットは攻撃的、Blueボットは防御的、Grayボットは正当なユーザー行動をエミュレートしてノイズを提供し、検出をより困難にします。ユーザーが研究仮説をテストしたい場合、BRAWLボットを実装します。BRAWLボットはBRAWLコントローラーに自身を登録し、コントローラーはゲームボード上でBRAWLボット間のゲームを調整します。

データリリース

注記: ファイルサイズとGitHubの割り当てに関する問題のため、すべてのファイルをプレーンテキストとしてgitリポジトリに残す代わりに、zipファイルにまとめています。すべてのデータはファイル内にあります。

このリリースは、BRAWLプロトタイプからのデータの一部で構成されています。以下に説明する小規模なエンタープライズネットワークを作成しました。その後、MITREのCALDERA研究プロジェクトをRedボットとして使用して、単一のゲームを実行しました。

CALDERAは、Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK)モデルの情報に基づいて、敵対者エミュレーション活動を自動化する関連MITRE研究プロジェクトです。一連のATT&CK戦術と技術を実装し、計画システム(https://dl.acm.org/citation.cfm?id=2991111)を使用してそれらの技術の作動を自動化し、エンタープライズネットワーク内で侵害後の敵対者行動を生成します。

このデータはCreative Commons BY Licenseの下でリリースされています。

ネットワークとセンサーの説明

当社の小規模なエンタープライズネットワークは、ドメインコントローラー(dc.brawlco.com)と16台のワークステーションからなるフラットネットワークです。各PCには、PC名にプライマリユーザーの名前が含まれています(例:ユーザーbeaneは通常beane-pcにログインします)。そのユーザーはコンピューターのローカル管理者権限を持っています。

すべてのPCはWindows 8.1を実行しています。ドメインコントローラーはWindows Server 2012 R2を実行しています。

Windows 8 PCでは、次のレジストリコマンドを使用して、WDigestがLSASSのメモリにプレーンテキストのパスワードを保持するように変更を加えました: reg ADD HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 /F

シナリオの説明

この演習では、CALDERAが唯一のBRAWLボットとして参加しました。概念的にはBRAWLはさまざまな攻撃者の行動や検出をテストするために使用できますが、MITREの研究の多くは「侵害を前提とする」哲学に従っています。そのため、演習開始時にCALDERAにネットワーク上のボックスのローカル管理者としての開始点を与えています。

また、異なるホスト間でログオンを行うGrayボットがないため、BRAWLゲームボードは、Redボットが盗んで使用できる資格情報の観点から無菌状態です。横方向の移動を可能にするために、BRAWLコントローラーはpsexecを使用して、ネットワーク上の他のユーザーの資格情報を使ってホストにログオンイベントを作成します。

CALDERAは演習中に以下のATT&CKテクニックを実行しました:

  • アカウント発見
  • 資格情報ダンプ
  • ローカルネットワーク構成の発見
  • アクセス許可グループの発見
  • PowerShell
  • レジストリ実行キー/スタートアップフォルダ
  • リモートファイルコピー
  • リモートシステムの発見
  • Windows管理共有
  • Windows Management Instrumentation

データ

このリポジトリには5種類のデータがあります。それぞれがdata/フォルダ内の独自のファイルに含まれています。

BRAWL共有形式

RedボットとBlueボットは、活動または検出に関する情報をBRAWL共有形式(BSF)で記録することが推奨されます。これにより、Blueボットの検出/アクションとRedボットのアクションを比較しやすくすることが目的です。

この形式は現在開発中であり、将来のデータセットで変更される可能性があります。

BSFのフィールドについては、以下の「データソースの詳細」セクションで説明されています。

時間に関する注意

BRAWLの異なるイベントソースは時間の扱いが異なります。時間は、イベントがログ取り込みフレームワークに到達した時間、イベントがホスト/エンドポイントで生成された時間、またはネットワーク上のボットによって記録された時間のいずれかです。通常、これらの時間は互いに数ミリ秒以内であるべきです。可能な場合、ログ取り込みフレームワークは、イベントが取り込みノードに到達した時間ではなく、イベントに保存されているイベント時間を使用します。以下の表は、各データタイプに使用される方法を詳しく示しています。

データソースの詳細

game_metadata

sysmon

Sysmon v3.11を使用しています。sysmon_config.txtには、構成の詳細を示すsysmon -cコマンドの出力が含まれています。

Sysmonはさまざまな種類のイベントを生成し、それらは異なるCARオブジェクト/アクションのペアにマッピングされます。各タイプのフィールドの詳細については、CAR Webサイトで詳しく説明されています: https://car.mitre.org/wiki/Data_Model

当社の構成でSysmonによって生成されるオブジェクト/アクションのペアは次のとおりです:

  • driver/load
  • file/attr_modify
  • flow/start
  • module/load
  • process/create
  • process/terminate
  • thread/create
  • threat/remote_create

CARデータモデルを使用して、上記の各オブジェクト/アクションのペアについて、data_model.fields.*に含まれるフィールド名とセマンティクスを確認してください。

win_event

computer_properties

このデータは、MITREのPowerShell Utilities for Security Situational Awarenessのunified_json.ps1モジュールを使用して定期的に収集されました。userinfoフィールドは、Mimikatzなどの資格情報ダンパーがシステム上で実行された場合に、どの資格情報が侵害された可能性があるかを判断するのに役立ちます。

bsf

bsf配列フィールド内のオブジェクトは、タイプoperation、step、またはeventです。すべてのオブジェクトには、オブジェクトタイプを判別するために使用できるnodetypeフィールドがあります。

event BSFオブジェクト

イベントオブジェクトのオブジェクト/アクション/フィールド情報

必須フィールドとオプションフィールドのセマンティクスの詳細については、CARデータモデル内の関連オブジェクトを参照してください。

step BSFオブジェクト

Stepオブジェクトは、1つ以上のイベントをより高いレベルの活動グループに接続します。Stepオブジェクトはまた、BSFエミッターが活動にATT&CKラベルを付ける場所を提供します。

operation BSFオブジェクト

Operationオブジェクトは複数のstepオブジェクトを接続します。ただし、このデータセットにはOperationオブジェクトは存在しません。

一般的なBSF注記

イベントフィールドの説明と注記(特に「少なくとも1つ」):1. Time fields.

  1. 点時間。ファイル削除などのアクティビティは基本的に点時間であり、timeフィールドで提供可能な単一の発生時刻を持ちます。しかし、redもblueもこの正確なタイムスタンプを知らない可能性があります。例えば、redボットは時間枠内で何らかのアクションを実行するためにプロセスを生成するかもしれませんが、アクションが発生する正確な時刻は不明です。blueボットは検出遅延が伴うセンサーを使用できます。したがって、BSFはまた、実際のイベントの不確実性区間の境界を定義する、時間的な左括弧および右括弧として、happened_afterおよびhappened_beforeという2つの時間フィールドを提供します。これらの3つのフィールド(すなわち、time、happened_after、happened_before)のうち少なくとも1つは、各eventオブジェクトで報告されなければなりません。他のフィールドはオプションですが、既知の場合は報告されるべきです。特に、ボットは正確な時間がなくても最善の推測として"time"の値を報告することが推奨されます。
  2. 継続時間。フローなどのアクティビティは本質的に継続的であり、時間期間にわたります。BSFは通常、継続的アクティビティを、その区間の終了点を点時間として記録することで扱います。したがって、フロー開始イベントは{time, happened_after, happened_before}のいずれかを必要とし、フロー終了イベントも同様です。ただし、一部のblueセンサーは途中で継続的アクティビティを検出する場合があります(例:すべてのプロセスの状態を定期的にスキャンし、あるプロセスが悪意を持ったと判断するスキャナー)。フローの場合、途中でのフロー検出は"flow, message, time, ... (other fields)"として報告できます。プロセスの場合、途中でのフロー検出は"process, scanned, time, ... (other fields)"として報告できます。
  3. プロセス識別。理想的には、プロセスの識別にpidが使用されますが、特にredボットにとってはpidが常に既知であるとは限りません。代わりに、プロセスを生成したcommand_line、または実行されたexe / image_pathを提供できます。
  4. フローポート。フローにおける送信元ポートと宛先ポートは、ホスト名またはIPアドレスのいずれかで記述できます。
  5. このデータセットでは、参加している唯一のボットはCALDERAであるため、存在するBSFレコードはCALDERAからのもののみです。

Appendix

Hosts on our BRAWL network for this game:

  • beane-pc.brawlco.com
  • colgan-pc.brawlco.com
  • dc.brawlco.com
  • escue-pc.brawlco.com
  • fulco-pc.brawlco.com
  • harley-pc.brawlco.com
  • kressierer-pc.brawlco.com
  • mims-pc.brawlco.com
  • minahan-pc.brawlco.com
  • ostermeyer-pc.brawlco.com
  • peele-pc.brawlco.com
  • platten-pc.brawlco.com
  • santilli-pc.brawlco.com
  • sespinosa-pc.brawlco.com
  • sounder-pc.brawlco.com
  • teston-pc.brawlco.com
  • zissler-pc.brawlco.com
ツールをダウンロード
データタイプ
説明
game_metadataBRAWLシナリオを記述するデータ
sysmon各ワークステーションで実行されているSysmonから収集されたデータ
win_eventWindowsイベントログ
computer_propertiesカスタムスクリプトから収集されたデータで、ネットワーク内のコンピューターに関する情報を提供します
bsfBRAWL共有形式(BSF)でのRedボットアクション
データソース時間に関する注記
computer_propertiestimeフィールドから
game_metadata取り込みフレームワークに到達した時間
sysmonutc_timeフィールドから
win_eventWindowsイベント時間から取得
bsf@timestampフィールドは、取り込みフレームワークに到達した時間です。ただし、時間関連のBSFフィールド(例:happened_after、happened_beforeなど)は、CALDERAのコマンド&コントロールサーバー上の時間に基づくイベントの開始または終了時間です。
フィールド名説明
@timestampイベントに関連する時間。上記の時間に関する注記を参照してください。
@uuid一意のイベントID
game_idこの演習の一意のゲームID。
typeイベントタイプ。これらのレコードでは常にgame_metadata
hosts演習の一部であり、Redボットにとって「範囲内」であったホストのリスト
randomization_seedBRAWLボット参加者がBRAWLの実行間で同じ「ランダム」な動作を実装するために使用できるシード
starting_hostRedボットが開始するホスト。
フィールド名説明
@timestampイベントに関連する時間。上記の時間に関する注記を参照してください。
@uuid一意のイベントID
typeイベントタイプ。これらのレコードでは常にsysmon
game_idこの演習の一意のゲームID。
data_model.object作用されているCAR オブジェクト。
data_model.actionオブジェクトに対して実行されているCAR アクション。このフィールドは配列です。一部のイベントはCARデータモデル内の複数のアクションに対応する可能性があるためです。その例として、リモートスレッド作成イベントがあります。
data_model.fields.*指定されたオブジェクト/アクションのペアに関連するフィールド。
game_idこの演習の一意のゲームID。
hostイベントが記録されたホスト名。
フィールド名説明
@timestampイベントに関連する時間。各イベントの計算方法の詳細については、以下の各イベントを参照してください
@uuid一意のイベントID
typeイベントタイプ。これらのレコードでは常にwin_event
game_idこの演習の一意のゲームID。
hostイベントを記録したホスト
rawWindowsイベントログエントリの生のXML形式
data_model.fields.log_nameWindowsログ名(Application、System、またはSecurity)
data_model.fields.log_type特定のlog_nameのログタイプ
フィールド名説明
@timestampイベントに関連する時間。上記の時間に関する注記を参照してください。
@uuid一意のイベントID
typeイベントタイプ。これらのレコードでは常にcomputer_properties
game_idこの演習の一意のゲームID。
hostスクリプトが実行されたコンピューターの名前
netinfonetinfoオブジェクトのコレクション
netinfo.DNSServersこのホストに設定されたDNSリゾルバーのコレクション
netinfo.Gatewayこのインターフェースのゲートウェイ
netinfo.IPAddressこのインターフェースのIPアドレス
netinfo.IsDHCPEnabledDHCPは有効か?
netinfo.MACAddressこのインターフェースのMACアドレス
netinfo.SubnetMaskそれぞれのIPアドレスのサブネットマスク
pcinfoPCに関する情報を記述するオブジェクト
pcinfo.AssetTagアセットタグ(アクセス可能な場合)
pcinfo.CPUCPUに関する情報
pcinfo.ChassisTypeBRAWLでは使用されていません。"不明"
pcinfo.Disks接続されているディスクに関する情報
pcinfo.DomainNameシステムが属するドメイン
pcinfo.LastBootUpTimeシステムの起動時間
pcinfo.Memoryシステム上のメモリに関する情報
pcinfo.OS実行中のOSに関する情報
pcinfo.SerialNumberHWシリアル番号
timeスクリプトが実行された時間
userinfo前回の起動以降にシステムにログオンしたユーザーを記述するuserinfoオブジェクトを含む配列
userinfo.AuthenticationPackage認証に使用された認証パッケージ
userinfo.Domainアカウントが属するドメイン(またはローカルPC)
userinfo.LogonIdログオンID
userinfo.LogonTimeログオンの時間
userinfo.LogonTypeWindowsログオンタイプ定数
userinfo.LogonTypeNameLogonTypeの説明
userinfo.UserNameログオンするプリンシパルのユーザー名
フィールド名説明
@timestampイベントに関連する時間。上記の時間に関する注記を参照してください。
@uuid一意のイベントID
typeイベントタイプ。これらのレコードでは常にbsf_events
game_idこの演習の一意のゲームID。
bsfボットの活動を記述するBSFイベントの配列。この配列のフィールドについては、以下で詳細に説明します。
bsf_versionbsfイベント配列に使用されるBSFスキーマのバージョン
producer_idこのBSFデータを生成したボット。
フィールド説明
id各イベントの一意の識別子。
nodetypeこのノードのタイプ。{"operation", "step", "event"}のいずれか。
hostこのイベントが実行/検出されたホスト名またはIP。
time注: 以下の3つの時間フィールドのうち少なくとも1つ(すなわち、"time"、"happened_after"、または"happened_before")を報告する必要があります。"time"は特に望ましく、3つすべての報告が推奨されます。以下の一般的な注記の注1を参照してください。

時間形式に関する注記: すべての時間情報はISO 8601形式である必要があります。具体的には: 'yyyy-mm-ddThh:nn:ss.llll00'。ここで、yは年、mは月、dは日、hは時、nは分、sは秒、lはミリ秒(末尾に0が2つ続く)です。例: 2017-02-22T18:38:14.060000

オプション: このイベントが発生した時間の推定値。
happened_afterオプション: "time"の不確実性に対する早期の境界("時間的左括弧")。
happened_beforeオプション: "time"の不確実性に対する後期の境界("時間的右括弧")。
confidenceオプション: Blueボットがこのイベントと攻撃との関連性に対する信頼度(0.0から1.0の実数)を伝えることを可能にします。
object作用されたオブジェクト。許容値については以下の表を参照。大まかにCARデータモデルに基づく
action特定のオブジェクトに対するアクション。大まかにCARデータモデルに基づく
specific_field_1 .. N1-N個の記述属性(以下を参照)。大まかにCARデータモデルに基づく
オブジェクトアクション必須フィールドオプションフィールド
processcreate
terminate
scanned
以下のうち少なくとも1つ:
     {pid, command_line, exe, image_path}
fqdn
hostname
md5_hash
parent_exe
parent_image_path
ppid
sha1_hash
sha256_hash
sid
signer
user
flowstart
end
message
以下のうち少なくとも1つ:
    {src_hostname,src_ip}
以下のうち少なくとも1つ:
    {dest_hostname, dest_ip}
以下のうち少なくとも1つ:
     {src_port, dest_port, protocol}
content
dest_fqdn
exe
flags
fqdn
hostname
image_path
packet_count
pid
ppid
proto_info
src_fqdn
user
filecreate
delete
modify
read
timestomp
write
file_pathcompany
file_name
fqdn
hostname
image_path
md5_hash
pid
ppid
sha1_hash
sha256_hash
signer
user
フィールド名説明
id操作ステップの一意の識別子。
nodetypeこのノードのタイプ。{"operation", "step", "event"}のいずれか。
attack_infoテクニックオブジェクトの配列(以下の表で定義)、このステップがATT&CKタクソノミーにどのように関連するかを説明します。なぜ配列か?単一のテクニックがしばしばステップとそのすべてのイベントを説明しますが、場合によっては複数のテクニックが実装される可能性があります。
attack_info.technique_idこのステップとその参照イベントで赤が使用した攻撃メカニズムを説明するATT&CKテクニックID(例:"T1059")。
attack_info.technique_nameこのテクニックを説明する人間が読める文字列(例:"Command-Line Interface")。
attack_info.tacticこのテクニックの意図/戦略を説明する1つ以上のATT&CK戦術ラベルの配列。(単一のテクニックが複数の戦術を実行できることに注意。)例: ["Lateral Movement", "Execution"]
descriptionオプション: このステップのメモや注釈はここに入ります。
eventsこのステップを構成するeventオブジェクトのidの配列。