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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ossem-power-up — データ品質を評価するツールで、素晴らしいOSSEMを基盤としています。 | Kitploit
ツール/GitHubGitHub/hxnoyd/ossem-power-up
脅威インテリジェンス学習と教育厳選リソースログ分析
GitHubhxnoyd/ossem-power-up

ossem-power-up

データ品質を評価するツールで、素晴らしいOSSEMを基盤としています。

リポジトリを見る
79111ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

OSSEM

データ品質を評価するツールです。素晴らしい OSSEM プロジェクトをベースに構築されています。

ミッション

  • 「ATT&CK のテクニックをハンティングしたい。どのログソースやイベントが適しているか?」という質問に答える
  • ログソースの強みと弱みの透明性を生み出す
  • ログを簡単に評価する方法を提供する

OSSEM Power-up 概要

Power-up は、データ品質評価の基盤として OSSEM Detection Data Model (DDM) を使用します。その主な理由は、ATT&CK Data Sources、Common Information Model のエンティティ (CIM)、および Data Dictionaries (イベント) を相互に構造化して関連付ける方法を提供するためです。

DDM の構造に詳しくない方のために、以下にサンプルを示します。

ご覧のとおり、DDM の各エントリは、process、user、file などの抽象エンティティを使用してサブデータソース(スコープ)を定義しています。これらの各エントリには、スコープが適用されるイベント ID も含まれています。これらのエンティティの詳細については、こちらを参照してください。

要約すると、DDM エントリは、ログソース(データチャネル)をどのように消費するかを定義するスコープを提供することで、生のイベントの複雑さを取り除く上で主要な役割を果たします。

データ品質の次元

Power-up は、5 つの異なる次元に従ってデータ品質スコアを評価します。

各次元は 0(なし)から 5(優れている)の間で評価されます。

カバレッジ、適時性、保持期間

これらの次元はデータチャネルに紐づいており、そのチャネルが提供するすべてのイベントに波及します。

これらの次元の性質上、データチャネルの特性に応じて手動で評価する必要があります。

Power-up は resources/dcs.yml を使用してデータチャネルを定義し、各次元を評価します。

root@kitploit:~
data channel: sysmon
description: sysmon monitoring
coverage: 2
timeliness: 5
retention: 2
---
data channel: security
description: windows security auditing
coverage: 5
timeliness: 5
retention: 2

構造

イベント構造の完全性を計算するために、power-up はデータ辞書の標準名と、DDM エントリ(ソースとデスティネーション)で参照されるエンティティ (CIM) のフィールドを比較します。

すべてのエンティティフィールドが関連するわけではない(コンテキストに依存する)ため、power-up はプロファイルの概念を使用して、データ辞書の標準名と一致させる必要があるフィールドを選択します。例:

root@kitploit:~
# OSSEM CIM Profile
process:
    - process_name
    - process_path
    - process_command_line

注: profiles/default.yml にサンプルプロファイルがありますので、自由に試してください。

構造スコアは以下の式で計算されます。

SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100

わかりやすくするために、構造スコアの計算例を示します。

注: Sysmon Event Id 1 のデータ辞書が関連エンティティフィールドと 100% 一致するため、構造スコアは 5(優れている)と評価されます。

構造スコアは以下のように 0~5 の尺度に変換されます。

PercentageScore

注: 使用例(SIEM、脅威ハンティング、フォレンジック)に応じて異なるプロファイルを定義し、ログを異なる方法で評価できます。

一貫性

一貫性を計算するために、power-up はデータ辞書内で標準名を持つフィールドの割合を単純に計算します。標準名にマッピングされたフィールドの数が多いデータ辞書は、CIM エンティティとの相関が高くなります。

一貫性スコアは以下の式で計算されます。

SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100

一貫性スコアは以下のように 0~5 の尺度に変換されます。

PercentageScore
00
1 ~ 501
51 ~ 993
1005

使用方法

始める前に

  • Power-up は Python スクリプトです。pip install -r requirements.txt を実行してください。
  • OSSEM リポジトリのローカルコピーを持っていることを確認してください。

power-up の実行

root@kitploit:~
$> python3 powerup.py --help
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

usage: powerup.py [-h] [-o OSSEM] [-y OSSEM_YAML] [-p PROFILE] [--excel]
                  [--elastic] [--yaml]

素晴らしい OSSEM をベースに構築された、ATT&CK データソースのカバレッジを評価するツールです。

optional arguments:
  -h, --help            このヘルプメッセージを表示して終了
  -o OSSEM, --ossem OSSEM
                        OSSEM マークダウンをインポートするパス
  -y OSSEM_YAML, --ossem-yaml OSSEM_YAML
                        OSSEM yaml をインポートするパス
  -p PROFILE, --profile PROFILE
                        CIM プロファイルのパス
  --excel               OSSEM DDM を Excel にエクスポート
  --elastic             OSSEM データモデルを Elastic にエクスポート
  --yaml                OSSEM データモデルを YAML にエクスポート
  --layer               OSSEM データモデルを Navigator Layer にエクスポート

ご覧のとおり、power-up は 2 つの異なる形式で OSSEM データを読み込むことができます。

  • OSSEM markdown - git からクローンしたときの OSSEM のネイティブ形式
  • OSSEM yaml - OSSEM の要約形式で、データフィールドといくつかのメタデータのみ。power-up を使用して OSSEM markdown を yaml に変換できます。

現在、Power-up は OSSEM 出力を以下にエクスポートします。

  • Yaml - output/ フォルダに OSSEM 構造を YAML で作成
  • Excel - データ品質スコアを付与した OSSEM DDM テーブルを output/ フォルダに作成
  • Elastic - Elastic に OSSEM 構造を作成。インデックスは以下の通り。
    • ossem.ddm - データ品質スコアを付与した OSSEM DDM テーブル
    • ossem.cim - OSSEM CIM エントリ
    • ossem.dds - OSSEM Data Dictionaries
    • ossem.dcs - OSSEM Data Channels

注: プロファイルファイルのパスが指定されていない場合、power-up はデフォルトで profiles/default.yml を使用します。

YAML へのエクスポート

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --yaml
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] プロファイルパス: profiles/default.yml
[*] マークダウンから OSSEM を解析中
[*] OSSEM を YAML にエクスポート中
[*] Created output/ddm_20191114_160246.yml
[*] Created output/cim_20191114_160246.yml
[*] Created output/dds_20191114_160246.yml

YAML へのエクスポート/インポートの目的は、OSSEM のカスタマイズを容易にすることです。おそらく最初に行うことは、独自のデータ辞書を作成し、新しい DDM エントリを追加することです。そのため、YAML を使用すると更新が容易になります。

注 1: resources/config.yml を変更して、正しい構造のファイル名を power-up に指示します。その後、それらをフォルダに配置し、OSSEM_YAML 引数に渡すだけです。

注 2: power-up は OSSEM オブジェクト全体を YAML に解析するわけではなく、データフィールドといくつかのメタデータ(例:説明)のみです。その理由は、データ品質を評価するために必要なデータのみを含む、可能な限り軽量な YAML オブジェクトを維持したいからです。

EXCEL へのエクスポート

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --excel
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] プロファイルパス: profiles/default.yml
[*] マークダウンから OSSEM を解析中
[*] OSSEM DDM を Excel にエクスポート中
[*] Saved Excel to output/ddm_enriched_20191114_160041.xlsx

Excel にエクスポートするとき、power-up は各エントリにデータ品質の次元を付与した、見栄えの良い DDM を作成します。

ELASTIC へのエクスポート

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --elastic
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] プロファイルパス: profiles/default.yml
[*] マークダウンから OSSEM を解析中
[*] OSSEM を Elastic にエクスポート中
[*] Creating elastic index ossem.ddm
[*] Creating elastic index ossem.cim
[*] Creating elastic index ossem.dds
[*] Creating elastic index ossem.dcs

Elastic にエクスポートするとき、power-up はすべての OSSEM データを Elastic に保存します。DDM にはそれぞれのデータ品質の次元も付与されているため、以下のようなダッシュボードを作成できます。

ATT&CK Navigator へのエクスポート

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --layer
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] プロファイルパス: profiles/default.yml
[*] マークダウンから OSSEM を解析中
[*] OSSEM を Navigator Layer にエクスポート中
[*] ATT&CK データをプル中
[*] データソース品質レイヤーを生成中
[*] Created output/ds_layer_20191119_220141.json

レイヤーにエクスポートするとき、power-up は各テクニックにデータ品質の次元を付与した ATT&CK Navigator Layer の JSON ファイルを作成します。

注: テクニックスコアは、DDM 内のデータソースの平均スコアから導出されます。

謝辞

  • Roberto Rodriguez @Cyb3rWard0g、Jose Luis Rodriguez @Cyb3rPandaH、および OSSEM をサポートするすべてのコミュニティメンバー
  • Marcus Bakker @bakk3rm と Ruben Bouman @rubenb_2 は、DeTTECT のデータ品質の次元に関するインスピレーションを提供してくれました。

To-Do

  • 追加のドキュメントを作成
  • ATT&CK Navigator Layer へのエクスポート
  • 同じデータチャネルを共有するが、オペレーティングシステムによってスキーマが異なるデータ辞書を適切に処理する
  • Kibana オブジェクト(ビジュアライゼーションとダッシュボード)を提供する
ツールをダウンロード
ATT&CK Data SourceSub Data SourceSource Data ObjectRelationshipDestination Data ObjectEventID
Process monitoringprocess creationprocesscreatedprocess4688
Process monitoringprocess creationprocesscreatedprocess1
Process monitoringprocess terminationprocessterminated-4689
Process monitoringprocess terminationprocessterminated-5
DimensionTypeDescription
Coverage(カバレッジ)Data channelデータチャネルによってカバーされるデバイスまたはネットワークセグメントの数
Timeliness(適時性)Data channelイベントが利用可能になるまでの時間
Retention(保持期間)Data channelイベントが利用可能であり続ける期間
Structure(構造)Eventイベントの完全性、関連するフィールドが利用可能かどうか
Consistency(一貫性)Eventイベントフィールドの標準化度合い、フィールドが正規化されているかどうか
00
1 ~ 251
26 ~ 502
51 ~ 753
76 ~ 994
1005