アップデート一覧に戻る
New releaseJul 31, 2026

macnoise v0.2.0

拡張可能なMacOSシステムテレメトリジェネレーター。

共有
Description of image

CI Release

MacNoise

MacNoise は実際の macOS テレメトリを生成します。ネットワーク接続、ファイル書き込み、プロセス生成、plist 変更、TCC プローブなどです。EDR、SIEM、ファイアウォールスタックを実行中のマシンに向けて実行すると、実際に何が発火するかを確認できます。ベンダーのデータシートが発火すると主張する内容ではなく、実際の挙動を見ることができます。

動機と設計の背景については、リリースブログ記事 を参照してください。

クイックスタート

# Build (add build-amd64 / build-arm64 to cross-compile for Darwin, or release for both)
make build

# List available modules
./macnoise list

# Run a single module
./macnoise run net_connect --param target=127.0.0.1 --param port=8080

# Preview without executing
./macnoise run svc_launch_agent --dry-run

# Run all network modules
./macnoise run --category network

# Run a scenario
./macnoise scenario configs/scenarios/edr_validation.yaml

# Emit structured JSONL output
./macnoise run --category file --format jsonl --output /tmp/events.jsonl

テレメトリカテゴリ

CategoryDescriptionModules
network外部接続、DNS、ビーコン、リスナー、リバースシェル、データ流出net_connect, net_listen, net_beacon, net_revshell, net_dns, net_exfil
processプロセス生成、シグナル送信、dylib インジェクション、ディスカバリ、Gatekeeper バイパス、osascriptproc_spawn, proc_signal, proc_inject, proc_discovery, proc_gatekeeper, proc_osascript
fileファイル作成、変更、ブラウザ資格情報の読み取り、アーカイブ、隠蔽file_create, file_modify, file_browser_creds, file_archive, file_hide
tccTCC 権限プローブ(FDA、連絡先、キーチェーン)tcc_fda, tcc_contacts, tcc_keychain
endpoint_securityES フレームワークのイベントトリガーes_file, es_process
serviceLaunchAgent/Daemon の永続化、cron、シェルプロファイルsvc_launch_agent, svc_launch_daemon, svc_cron, svc_shell_profile
plistPlist の作成と変更plist_create, plist_modify
xpcXPC サービスの列挙xpc_connect

コマンド

macnoise run <module> [--param key=val ...]   Run a specific module
macnoise run --category <cat>                 Run all modules in a category
macnoise run --all                            Run all modules
macnoise list [--category <cat>]              List modules
macnoise info <module>                        Show module details, params, MITRE
macnoise scenario <file.yaml>                 Run a YAML scenario
macnoise categories                           List categories with counts
macnoise version                              Print version

グローバルフラグ

FlagDefaultDescription
--formathuman出力形式: human または jsonl
--output(なし)出力をファイルに書き込む(stdout に加えて)
--verbosefalseクリーンアップエラーを含む詳細出力
--dry-runfalse実行せずにアクションをプレビュー
--timeout30モジュールごとのタイムアウト(秒)
--audit-log(なし)OCSF 1.7.0 監査レコードを JSONL ファイルに書き込む
--config(なし)YAML 設定ファイルからデフォルトを読み込む

監査ログ

MacNoise は 2 つの独立したストリームを書き込みます。テレメトリイベント(EDR/SIEM が実際に確認するもの)は stdout または --output に出力されます。2 つ目はオプションのストリームで、MacNoise 自身が行ったこと(実行されたモジュール、前提条件/クリーンアップの結果、MITRE マッピング)を OCSF 1.7.0 JSONL で記録します。

./macnoise scenario configs/scenarios/amos_atomic_stealer.yaml --audit-log /tmp/audit.jsonl

監査ログは追記モードで開かれるため、複数回の実行によるレコードが 1 つのファイルに蓄積され、バッチ分析に使用できます。新しいイベントタイプが OCSF でどのように分類されるかを知りたい場合(モジュールを追加する場合)は、CONTRIBUTING.md を参照してください。

モジュールリファレンス

モジュールのドキュメントは各カテゴリの隣にあります:

シナリオ

シナリオはモジュールを順序付けられたシーケンスに連結します。単一の YAML ファイルで、多段階の侵入パターンを検出システムに対して再生します。

FileDescription
network_only.yamlすべてのネットワークモジュール
edr_validation.yaml包括的な EDR 検出カバレッジ
full_sweep.yamlすべてのカテゴリ
lazarus_group.yamlLazarus Group: dylib インジェクション、サービスディスカバリ、リバースシェル、plist 永続化
amos_atomic_stealer.yamlAMOS / Atomic Stealer: MaaS インフォスティーラー、Gatekeeper バイパス、キーチェーンダンプ、ZIP 流出、バックドア永続化

2 つの APT シナリオは、実際に文書化された侵入シーケンスをテクニックごとに追跡しています。各 YAML ファイルは、構築元となった実際の脅威インテリジェンスを引用し、各ステップで実行される MITRE テクニックに注釈を付けています。詳細な内訳はここで説明するよりも、そちらを参照してください。

最初にドライラン:

./macnoise scenario configs/scenarios/<scenario>.yaml --dry-run

SIEM/EDR との相互参照: 各ステップのコメントには、トリガーされるべきテクニックが記載されています。実際の実行後に一致するアラートがない場合は、カバレッジにギャップがあることを意味します。

独自のシナリオを作成する:

name: My Custom Scenario
steps:
  - module: net_connect
    params:
      target: "192.168.1.1"
      port: "443"
  - category: file
    params:
      base_dir: "/tmp/test"

貢献

新しいモジュールの追加、コードスタイル、PR プロセスの詳細については、CONTRIBUTING.md を参照してください。

リリースは自動化されています。release-pleaseConventional Commit の PR タイトルから直接新しいバージョンを生成します。したがって、feat: add net_tls modulefix: correct beacon jitter は PR タイトルであり、そのままチェンジログエントリになります。

免責事項

MacNoise は、許可されたセキュリティテスト、EDR 検証、および所有しているか明示的な書面によるテスト許可を得たシステム上での検出エンジニアリングを目的としています。作者は誤用に対する責任を負いません。

AI コードポリシー

AI コードの貢献は歓迎しますが、コードレビューは現在人間主導のプロセスであるため、レビューできるコード量には限りがあることに留意してください。PR は特定の修正または新しいテレメトリモジュールに限定してください。大規模な変更を含む PR は閉じられる可能性があります。

カテゴリ