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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
MacPersistenceChecker — コード署名検証とタイムライン追跡を備えたmacOS永続化メカニズムスキャナー | Kitploit
ツール/GitHubGitHub/pinperepette/macpersistencechecker
OSINT (オープンソースインテリジェンス)永続化メカニズム脆弱性分析フォレンジックマルウェア分析デジタルフォレンジック脅威インテリジェンス学習と教育インシデントレスポンスAIセキュリティ
GitHubpinperepette/macpersistencechecker

MacPersistenceChecker

268131ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

コード署名検証とタイムライン追跡を備えたmacOS永続化メカニズムスキャナー

リポジトリを見る

MacPersistenceChecker

Macで実行されるすべてを確認しましょう。 それがなぜ実行されるのかを理解しましょう。 何を残すかを決定しましょう。

メインUI

仕組み

TL;DR

MacPersistenceCheckerは、Macで自動的に実行されるすべてのものを表示し、なぜそれが重要かを説明し、何を残し、何を削除するかの判断を支援します。

→ マルウェアを発見 → 隠れた永続化を検出 → 数分でシステムを理解

ダウンロード

MacPersistenceChecker v2.0.0 (DMG) をダウンロード

→ 30秒未満でMacをスキャン → インストールウィザード不要、開いてすぐに実行 → ネイティブmacOS、ユニバーサル(Apple Silicon & Intel)、macOS 13+

macOSがアプリが破損していると表示した場合: xattr -cr /Applications/MacPersistenceChecker.app

実際の使用例

  • 「Macが遅いのはなぜ?」 → 隠れた自動起動アプリやログイン項目を発見
  • 「感染している?」 → 不審な永続化、署名済みだが危険なバイナリを検出
  • 「このインストーラは何を追加した?」 → インストール前後のスナップショット差分をAIが説明
  • 「ログイン時に何が実行される?」 → 22以上の永続化メカニズムを完全可視化
  • 「これは安全?」 → AIが平易な言葉で説明、MITRE ATT&CKマッピング付き

Autoruns(や他のツール)ではなぜダメなのか?

  • macOS向けに構築 — Windowsの移植版ではありません。LaunchAgents、TCC、カーネル拡張、dylibハイジャック、BTM、MDMプロファイルなどをすべて把握します。
  • AI支援トリアージ(オプション) — Claudeが数千の項目を数秒で分類、環境を学習して徐々に適応
  • フラットリストではなくナレッジグラフ — 概念ごとに一度判断すると、判定が関連するすべての項目に伝播
  • 行動+コンテキスト認識 — リスクスコアは署名、動作、意図の不一致、経過日数の異常、LOLBinsなどを組み合わせます
  • テレメトリなし、クラウド同期なし — すべての分析はローカル。AIはオプトインで、ユーザー自身のAnthropicキーで支払い

プライバシーとセキュリティ

  • AI機能をオプトインしない限り、データがマシンの外に出ることはありません
  • すべてのスキャン、リスクスコアリング、グラフ推論はローカルで実行されます
  • AI呼び出しはあなた自身のAPIキーでAnthropicに直接送信 — プロキシもログもなし
  • APIキーはmacOSキーチェーンに保存
  • ソースコード公開:何をどのように送信するか確認可能

AI搭載分析

アプリはシステムを学習し、数千のアイテムを自動的に分類します。

  • 🧠 類似アイテムを概念クラスタにグループ化(6800アイテム → 約280クラスタ)
  • 📚 信頼するものを学習 — 判定は関連アイテム(将来のものも含む)に伝播
  • 🔇 時間とともにノイズを低減 — 最初のトリアージが最大で、その後は静かになる
  • 🎯 5つのAIツール:アイテムごとの分析、バッチクラスタトリアージ、システム全体レポート、脅威ハンティングQ&A、スナップショット差分説明

クイックスタート:

  1. 設定 → AI → Anthropic APIキーを貼り付け(macOSキーチェーンに保存)
  2. 設定 → モニタリング → AIを使用トグルをオン
  3. ツールバー → トリアージでクラスタを一括分類、またはハントで自然言語の質問

実際のコスト:アクティブ使用時月1ドル未満、定常状態では0ドル。

仕組み(技術詳細)

このアプリは、Mac上のすべての永続化アイテムのナレッジグラフを構築し、Claude(Anthropic)を使用してそれを推論します。数千のアイテムを迅速に分類し、本当に重要なものだけをエスカレーションし、システムを学習することで、ほとんどの質問に追加のAI呼び出しなしで回答できるようになります。

推論フロー```

root@kitploit:~
             ┌──────────────────────────┐
             │   Persistence scan       │
             │   (e.g. 6800 items)      │
             └─────────────┬────────────┘
                           ▼
        ┌────────────────────────────────────────┐
        │  Concept Extraction (deterministic)    │
        │  6 extractors → vendor / software /    │
        │  pathCategory / pattern / mechanism /  │
        │  filename. No AI calls here.           │
        └─────────────┬──────────────────────────┘
                      ▼
        ┌────────────────────────────────────────┐
        │  Knowledge Graph (SQLite)              │
        │  • concepts (~280 typically)           │
        │  • concept_links (subsumes / instance) │
        │  • item_concepts (m:n)                 │
        │  • concept_verdicts                    │
        └─────────────┬──────────────────────────┘
                      ▼
        ┌────────────────────────────────────────┐
        │  Concept Resolver                      │
        │  for every item, picks the strongest   │
        │  verdict via a deterministic ladder:   │
        │  severity → confidence → specificity   │
        │  → source → recency.                   │
        └─────────────┬──────────────────────────┘
                      │
          ┌───────────┴────────────┐
          ▼                        ▼
ツールをダウンロード

┌──────────────────┐ ┌──────────────────────┐ │ Item is already │ │ Item is unresolved │ │ classified. │ │ → goes to a cluster. │ │ Filter hides it │ └──────────┬───────────┘ │ from "Suspicious"│ ▼ └──────────────────┘ ┌──────────────────────┐ │ Cluster Builder │ │ groups items by │ │ identical concept │ │ signature (sorted │ │ ids). 6800 items → │ │ ~280 clusters. │ └──────────┬───────────┘ ▼ ┌──────────────────────────────────────────┐ │ User decides per cluster (one click = │ │ N items decided), OR sends batch to AI: │ │ │ │ • Trust / Watch / Block (manual) │ │ • Send unresolved clusters to AI │ │ → Haiku batch (15 cluster per call) │ │ → AI returns verdicts attached to │ │ concepts (not items) — propagate │ │ to ALL items linked to those │ │ concepts, including future ones. │ └──────────────────────────────────────────┘

root@kitploit:~
### AIツール

| ツール | 場所 | モデル | コスト / 呼び出し |
|---|---|---|---|
| AIで分析(単一アイテム) | アイテム詳細 → ナレッジグラフ | Haiku | ~$0.003 |
| スマートトリアージバッチ | ツールバー → トリアージ | Haiku batch | ~$0.005(15クラスタ) |
| システムレポート | ツールバー → レポート | Sonnet | ~$0.05-0.10 |
| 脅威ハント | ツールバー → ハント | Haiku | ~$0.003 |
| スナップショット差分 | 履歴 → 比較 → AIで分析 | Haiku | ~$0.003 |

1日の呼び出し上限(デフォルト30)は設定 → AIで設定可能。ハードリミットで、上限に達するとAIは自動的に無効になります。

### 信頼コントロール

ユーザー定義のルールはAIが抽出したものより**常に優先されます**:

- **このアイテムを信頼** — singleItemルール、あなたの判定がAIウォッチリストより優先されます
- **このパターンを信頼** — TeamID/署名アンカー付きパターンルール(署名済みバイナリのみ)
- **信頼を削除** — 誤って追加したユーザー定義ルールを削除
- **監視/ブロック** — スマートトリアージでクラスタ全体にウォッチリスト/悪意の判定を適用

</details>

---

## 永続性スキャン

### コアスキャナー
- **Launch Daemons** - システム全体のサービス(`/Library/LaunchDaemons`、`/System/Library/LaunchDaemons`)
- **Launch Agents** - ユーザーレベルのエージェント(`~/Library/LaunchAgents`、`/Library/LaunchAgents`)
- **ログイン項目** - ログイン時に起動するアプリ
- **カーネル拡張** - レガシーkext
- **システム拡張** - 最新のシステム拡張(DriverKit、NetworkExtension、EndpointSecurity)
- **特権ヘルパーツール** - 昇格した権限を持つXPCサービス
- **Cronジョブ** - スケジュールされたタスク
- **構成プロファイル** - MDMおよび構成プロファイル
- **アプリケーションサポート** - バックグラウンドアプリとヘルパー

### 拡張スキャナー(オプション)
- **定期スクリプト** - `/etc/periodic/` 内の日次、週次、月次スクリプト
- **シェル起動ファイル** - 疑わしいパターン検出付き `.zshrc`、`.bashrc`、`/etc/profile`
- **ログイン/ログアウトフック** - `com.apple.loginwindow` によるレガシーログインフック
- **認証プラグイン** - `/Library/Security/SecurityAgentPlugins` 内のSecurity Agentプラグイン
- **Spotlightインポーター** - カスタムメタデータインポーター
- **Quick Lookプラグイン** - 悪用される可能性のあるプレビュー生成機能
- **ディレクトリサービスプラグイン** - 認証プラグイン
- **Finder同期拡張** - pluginkitによるFinder拡張
- **BTMデータベース** - バックグラウンドタスク管理エントリ(macOS 13+)
- **Dylibハイジャック** - `DYLD_INSERT_LIBRARIES` および不審なdylibインジェクションの検出
- **TCC/アクセシビリティ** - TCCデータベース内のアクセシビリティ権限を持つアプリ

---

## リスク評価

すべての永続性アイテムは、複数の要素に基づいて**リスクスコア(0〜100)**を取得します:

- 無効または欠落しているコード署名
- 強化ランタイム保護の欠落
- アドホック署名されたバイナリ
- 不審なファイルの場所
- 永続的な自動起動構成(RunAtLoad、KeepAlive)
- 既知のマルウェアパターン

**重要度レベル:** 低、中、高、クリティカル - リスク順に並べられ、迅速な脅威識別が可能。

### 起動頻度異常検出
- **マイクロ再起動** - StartInterval < 60秒(ウォッチドッグ悪用の可能性)
- **積極的ウォッチドッグ** - KeepAlive + 低いStartIntervalの組み合わせ
- **スロットル制限なし** - ThrottleIntervalなしのKeepAlive(クラッシュ再起動ループのリスク)

### 署名済みだが危険な検出
- **危険なエンタイトルメント** - 危険なエンタイトルメントの検出(`com.apple.security.cs.disable-library-validation` など)
- **Appleのなりすまし** - Apple のように見せかけようとする非Appleソフトウェア
- **隠し場所** - 不審なディレクトリ内の署名済みアプリ
- **ノータライゼーションの欠落** - ノータライゼーションがない最近のアプリ
- **開発者証明書分析** - 既知のベンダーに対するTeam IDの検証

### LOLBins検出(Living-off-the-Land Binaries)
永続的なコンテキストでの正規のmacOSバイナリの不審な使用を検出します。**組み合わせが重要です:**

- **osascript + 永続性** = 自動起動付きAppleScript(GUI自動化の悪用)
- **curl/wget + RunAtLoad** = ダウンロード&実行パターン
- **python + 特権ヘルパー** = 昇格したスクリプト実行
- **security + KeepAlive** = 資格情報収集リスク
- **launchctl + 自動起動** = メタ永続性インストーラー
- **netcat + 永続性** = リバースシェル / C2チャネル

40以上のLOLBinsをMITRE ATT&CKマッピングとコンテキスト認識型重要度スコアリングで追跡。

### バイナリの評判と行動分析
不審な行動パターンを検出する高度なヒューリスティック:

- **隠れた永続性ガード** - 明らかなウォッチドッグ目的のないKeepAliveエージェント
- **積極的永続性** - 非サービスアイテムでのRunAtLoad + KeepAlive
- **ステルス自動起動** - 未知のベンダーからのバックグラウンドプロセス
- **孤立した永続性** - 存在しない実行可能ファイルを指すPlist
- **不審な場所** - `/tmp/`、`/Users/Shared/`、または隠しディレクトリ内の実行可能ファイル
- **権限昇格リスク** - 特権操作を試みるユーザーエージェント
- **ネットワーク対応永続性** - ネットワーク機能を持つ永続性
- **スクリプトベースの永続性** - インタプリタを介したインラインスクリプト
- **システムプロセスになりすまし** - Apple風の命名を使用する非Appleアイテム
- **頻繁な再起動パターン** - StartInterval < 60秒

### Plistとバイナリの意図の不一致
Plistが宣言している内容とバイナリが実際に実行する内容が一致しない場合を検出します - **まさに最新のドロッパーが行うこと:**

- **無害なPlist、ヘビーなバイナリ** - シンプルな設定だがバイナリは危険なエンタイトルメントを持つ
- **ネットワークを持つパッシブヘルパー** - ネットワーククライアント/サーバーアクセスを持つバックグラウンドヘルパー
- **Dylibロードを持つパッシブヘルパー** - 未署名コードをロードできるヘルパー
- **最小構成、最大能力** - 最小限のplistだが広範なエンタイトルメント
- **キーチェーンアクセスを持つ単純なタスク** - 単純に見えるタスクだが資格情報アクセスを持つ

### バイナリの経過時間と永続性の経過時間
インストール後の悪意のあるアップデートを示す不審なタイムスタンプパターンを検出:

- **古いPlist、新しいバイナリ** - 古典的な「インストール後の悪意あるアップデート」パターン
- **サイレントバイナリ交換** - plist変更なしでバイナリが変更された
- **タイムスタンプ操作** - 作成日より前の変更日(不可能)
- **不審な変更時間** - 午前2〜5時に変更されたバイナリ
- **インストール後に変更されたバイナリ** - アップデーター以外のバイナリが初期インストール後に変更された

### 信頼レベル
- 🟢 **Apple** - Appleによって署名済み
- 🔵 **既知のベンダー** - 確認済みのサードパーティソフトウェア
- 🟡 **署名済み** - 有効な署名だがノータライズされていない
- ⚪ **不明** - 検証する実行可能ファイルがない
- 🟠 **不審** - 期限切れの証明書または不審なパス
- 🔴 **未署名** - 有効な署名がない

---

## タイムラインとフォレンジック

各永続性アイテムの包括的なフォレンジックタイムライン:

**発見**
- 初回発見 - アイテムが最初に発見された日時

**設定ファイル(Plist)**
- 作成 - ファイル作成タイムスタンプ
- 変更 - 最終変更タイムスタンプ

**実行可能ファイル(バイナリ)**
- 作成 - バイナリ作成タイムスタンプ
- 変更 - 最終変更タイムスタンプ
- 最終実行 - 最終アクセス/実行時刻

### タイムスタンプ異常検出
- **タイムスタンプ改ざん** - 変更日後の作成日(アンチフォレンジック手法)
- **ファイル交換** - 初回発見後に作成されたファイル
- **バイナリ交換** - 古いplistを持つ最近変更されたバイナリ(トロイの木馬の可能性)
- **最近の実行** - 最近アクセスされたが現在ロードされていないバイナリ

---

## MITRE ATT&CK 統合

すべての永続性メカニズムがMITRE ATT&CKフレームワークにマッピングされています:

- **戦術**: 永続性、権限昇格、防御回避、実行
- **技法**: T1543.001、T1543.004、T1547.001、T1547.015など
- MITRE ATT&CKドキュメントへの直接リンク

---

## アプリの侵入性レポート

インストールされたアプリの「侵入性」レベルを評価する包括的な分析:

### 二重スコアリングシステム

**永続性スコア(0〜100)** - 永続性メカニズムを評価:
- トリガータイプ(RunAtLoad、KeepAlive)
- 権限レベル(LaunchDaemons、カーネル拡張、特権ヘルパー)
- 回復力(自動再起動、アップデーター)
- 冗長性(同じベンダーからの複数のアイテム)
- 信頼レベル(未署名/不審のペナルティ)

**インストールスコア(0〜100)** - 「ジャンク」フットプリントを評価:
- Libraryフォルダ全体へのファイル拡散
- 合計ディスク使用量
- 孤立ファイル(対応するアプリのない永続性)
- キャッシュ肥大化
- システム全体のインストール

### グレードシステム
アプリは合計スコアに基づいて**AからF**まで評価され、すべてのスコアリング要素の詳細な内訳が表示されます。

---

## 可視化

### 統計ダッシュボード
- **リスク分布ヒストグラム** - リスク帯(低、中、高、クリティカル)ごとのアイテム
- **信頼レベルドーナツチャート** - 信頼レベルごとの分布
- **カテゴリ別内訳チャート** - 永続性カテゴリごとのアイテム
- **タイムライン可視化** - アイテムライフサイクルイベント(作成、変更、実行、発見)

### インタラクティブグラフ
- **全システムグラフ** - すべての永続性アイテムと関係の概要
- **フォーカスアイテムグラフ** - 個別アイテム分析のための放射状グラフ
- **分析モード**: 基本(信頼/カテゴリ)またはフル(dylib依存関係、ネットワーク接続を含む)
- **インタラクティブキャンバス** - ズーム、パン、関係の探索
- **信頼レベルで色分け** - 迅速な視覚的脅威評価

### セキュリティプロファイルレーダー
信頼、署名、安全性、安定性、透明性、経過時間の各次元を一目で示す包括的なレーダーチャート。

---

## リアルタイム監視

2つの分析モードによる永続性変更の継続的監視。

### 監視モード

**標準モード**
- FSEventsベースのリアルタイムファイルシステム監視
- 設定可能なデバウンスによるインテリジェントなノイズ抑制
- 重要でない変更をフィルタリングする関連性スコアリング
- 関連性の高い変更に対する即時通知

**AIモード**(Claude APIキーが必要)
- Claude AIが検出された各変更を分析
- 署名情報、LOLBins、行動異常、リスクスコアなど完全なコンテキストをAIに送信
- AIが実際の脅威レベルに基づいて通知が必要かどうかを判断
- 設定可能なチェック間隔(30秒〜1時間)
- 重要度しきい値フィルタリング(Info、低、中、高、クリティカル)

### メニューバー統合
- リアルタイム監視ステータスインジケーター
- 「AI」または「Std」を示すモードバッジ
- クイックコントロール(監視開始/停止、スキャン実行)
- 設定へのアクセス
- 未確認の変更のバッジカウント
- 最後に検出された変更のプレビュー

### 通知の重複排除
- 同じアイテムはクールダウン期間中に繰り返し通知をトリガーしません
- 設定可能なクールダウン(1〜24時間、デフォルト2時間)
- 頻繁に変更されるアイテムによる通知疲れを防止

### 起動通知
監視が開始されると、以下の内容を確認する通知を受け取ります:
- アクティブモード(AIモードまたは標準モード)
- チェック間隔(AI)または「リアルタイム」(標準)
- 通知しきい値設定

### 変更検出
- **追加** - 新しい永続性アイテム
- **削除** - 削除されたアイテム
- **変更** - 構成変更(有効/無効、パス変更など)
- **有効/無効** - 状態変更

### AI分析の詳細
AIモードがアクティブな場合、各変更は完全なアイテムデータをClaudeに送信します:
- 基本情報(名前、カテゴリ、パス、plistコンテンツ)
- 署名の詳細(署名済み、Apple、ノータライズ済み、チームID、証明書ステータス)
- リスク評価(スコア、詳細内訳)
- MITREマッピング付きLOLBins検出
- 行動異常
- 意図の不一致(plist vs バイナリ)
- 経過時間異常(タイムスタンプ分析)
- 署名済みだが危険なフラグ

Claudeは以下で応答します:
- `shouldNotify` - ユーザーに警告するかどうか
- `severity` - 脅威レベルの評価
- `title` - 通知タイトル
- `explanation` - これが不審であるかどうかの理由
- `recommendation` - 推奨アクション
- `mitreTechniques` - 関連するATT&CK技法

### AIカスタマイズ

**設定 → AI** でAIが変更を分析する方法を制御:

| オプション | デフォルト | 効果 |
|--------|---------|--------|
| Apple署名を無視 | ON | Apple(com.apple.*)によって署名されたアイテムの優先度を下げる |
| システムパスを無視 | ON | /System および /Library パスの優先度を下げる |
| 未署名を優先 | ON | 未署名の実行可能ファイルに特別な注意を払う |
| LOLBinsに焦点 | ON | Living-off-the-Land Binaries検出を優先 |
| 最小リスクスコア | 0 | リスク >= しきい値のアイテムのみ分析 |
| 無視するパス | - | スキップするカスタムパス(カンマ区切り) |

**通知しきい値**
- `Info` - すべて通知
- `Low` - 低重要度以上を通知
- `Medium` - 中重要度以上を通知(デフォルト)
- `High` - 高およびクリティカルのみ
- `Critical` - クリティカル脅威のみ

**カスタムプロンプト**
AIプロンプトに追加する独自の指示を追加。例:```
Always notify me if an item uses python or osascript.
Ignore anything from Microsoft.
Be more aggressive with unsigned items from ~/Downloads.

AIはこれらの設定を使用して、よりスマートな判断を行います。例えば:

  • 署名なしLaunchAgent(/tmp/から)→ クリティカル通知
  • 署名済みDropboxアップデート → 通知なし(情報)
  • RunAtLoad付きのosascript → 高通知

MCPサーバー(Claude Code統合)

MacPersistenceCheckerには、Claude Code、Claude Desktop、およびその他のMCP互換クライアントが永続性データをクエリできるようにするMCP(Model Context Protocol)サーバーが含まれています。

MCPサーバーのビルド```bash

swift build --target MPCServer

root@kitploit:~
バイナリは `.build/debug/mpc-server` に作成されます。

### 利用可能なMCPツール

| ツール | 説明 |
|------|-------------|
| `get_current_state` | 現在の永続化アイテムをすべて取得(オプションのフィルタ付き) |
| `get_diff` | ベースラインまたは特定のスナップショットからの変更を取得 |
| `get_summary` | カウントと主要な脅威を含むコンパクトな概要 |
| `get_item_details` | 識別子による特定のアイテムの詳細 |
| `get_risk_analysis` | 推奨事項を含む集約されたリスク分析 |
| `get_snapshots` | メタデータ付きで利用可能なスナップショットを一覧表示 |
| `compare_snapshots` | 2つのスナップショットを比較して変更を確認 |

### Claude Codeの設定

Claude CodeのMCP設定に追加(`~/.claude/claude_desktop_config.json` など):```json
{
  "mcpServers": {
    "macpersistence": {
      "command": "/path/to/mpc-server",
      "args": []
    }
  }
}

クエリ例

設定後、Claude Codeに以下のように質問できます:

  • 「このMac上にある永続化アイテムは?」
  • 「未署名で高リスクスコアのアイテムを表示」
  • 「前回のスナップショットから何が変わった?」
  • 「LaunchAgentsカテゴリのアイテムのリスクを分析」
  • 「今日のスナップショットと昨日のを比較」

MCPサーバーの機能

  • MacPersistenceCheckerのSQLiteデータベースへの読み取り専用アクセス
  • stdio上のJSON-RPC 2.0プロトコル
  • カテゴリ、信頼レベル、リスクスコア、Apple署名ステータスによるフィルタリング
  • 完全なスナップショットと差分機能
  • 個別のAPIキー不要(ローカルデータベースを使用)

スナップショットと比較

  • システム状態のスナップショットを作成
  • スナップショットを比較して経時変化を検出
  • 新規、削除、または変更された永続化アイテムを追跡
  • 疑わしいアイテムがいつ追加されたかを特定

フォレンジックJSONエクスポート

セキュリティパイプライン向けの機械可読エクスポート:

  • SIEM統合 - Splunk、Elasticなどで取り込み可能
  • SOAR互換 - 自動応答ワークフローに対応
  • LLM分析 - AIによる分析のための構造化データ
  • IRパイプライン - OSINTおよびインシデントレスポンスツールと互換

エクスポート内容

  • 完全なシステムメタデータ(ホスト名、macOSバージョン、ハードウェアモデル、シリアル)
  • 完全な分析を含むすべての永続化アイテム
  • リスクスコア、LOLBin、動作異常、意図不一致、経過時間分析
  • MITRE ATT&CKマッピング
  • Unixタイムスタンプ付きの完全なフォレンジックタイムライン
  • 重大な発見と推奨事項

スキャン完了後にのみボタンが有効になります。


封じ込めシステム

疑わしい永続化アイテムを恒久的な削除なしに安全に無効化:

封じ込めアクション

  • クイック封じ込め - 永続化を無効化+ネットワークブロック(推奨)
  • 無効化のみ - ネットワークブロックなしで自動起動から削除
  • ネットワークブロックのみ - 永続化を維持したままネットワークアクセスをブロック

安全機能

  • 自動バックアップ - 変更前に元のplistを保存
  • 時間指定解除 - 設定可能なタイムアウト後(デフォルト24時間)に自動復元
  • 手動解除 - 封じ込めアイテムを即座に復元
  • アクションログ - すべての封じ込めアクションの完全な監査証跡

ネットワークブロッキング

  • 外向き接続をブロックするPFファイアウォールルール
  • 実行可能パスによるバイナリ単位のブロック
  • アプリの再起動後も維持

ユースケース

  • 調査中に疑わしいアイテムを隔離
  • 永続化を削除しても機能が壊れないかテスト
  • 設定を失わずに一時的に無効化

アクション

  • Finderで表示 - ファイルを素早く特定
  • Plistを開く - 設定ファイルを表示
  • グラフ表示 - アイテムごとのグラフ可視化
  • 無効化/有効化 - アイテムを安全に無効化(システムアイテムは管理者権限が必要)
  • 封じ込め - 自動バックアップ付きで疑わしいアイテムを隔離
  • JSONエクスポート - SIEM/SOAR/IR向けフォレンジックレポートをエクスポート

スクリーンショット

メインビュー

アイテム詳細

スナップショット比較

スナップショット比較

拡張スキャナー

拡張スキャナー設定

アプリの侵入度

メニューバー


ソースからのビルド```bash

git clone https://github.com/Pinperepette/MacPersistenceChecker.git cd MacPersistenceChecker ./build.sh

root@kitploit:~
`MacPersistenceChecker.app` を `/Applications/` にコピーします。

### 必要条件
- macOS 13.0+
- Xcode 15+ or Swift 5.9+

### 依存関係
- [GRDB.swift](https://github.com/groue/GRDB.swift) - SQLite データベース

---

## 権限

スキャンには **フルディスクアクセス** が必要です:
- `/Library/LaunchDaemons`
- システム設定ファイル
- TCC データベース
- シェル起動ファイル

フルディスクアクセスがない場合、一部の項目が表示されないことがあります。

---

## ライセンス

MIT ライセンス - 詳細は [LICENSE](https://github.com/pinperepette/macpersistencechecker/blob/HEAD/LICENSE) を参照してください。

## 著者

**pinperepette** - 2025

## スター履歴

<a href="https://www.star-history.com/?repos=Pinperepette%2FMacPersistenceChecker&type=date&legend=top-left">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=Pinperepette/MacPersistenceChecker&type=date&theme=dark&legend=top-left" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=Pinperepette/MacPersistenceChecker&type=date&legend=top-left" />
   スター履歴チャート
 </picture>
</a>

---

*Mark Russinovich による Windows 用の [Autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) に触発されました*