
コード署名検証とタイムライン追跡を備えたmacOS永続化メカニズムスキャナー
Macで実行されるすべてを確認しましょう。 それがなぜ実行されるのかを理解しましょう。 何を残すかを決定しましょう。


MacPersistenceCheckerは、Macで自動的に実行されるすべてのものを表示し、なぜそれが重要かを説明し、何を残し、何を削除するかの判断を支援します。
→ マルウェアを発見 → 隠れた永続化を検出 → 数分でシステムを理解
MacPersistenceChecker v2.0.0 (DMG) をダウンロード
→ 30秒未満でMacをスキャン → インストールウィザード不要、開いてすぐに実行 → ネイティブmacOS、ユニバーサル(Apple Silicon & Intel)、macOS 13+
macOSがアプリが破損していると表示した場合:
xattr -cr /Applications/MacPersistenceChecker.app
アプリはシステムを学習し、数千のアイテムを自動的に分類します。
クイックスタート:
実際のコスト:アクティブ使用時月1ドル未満、定常状態では0ドル。
このアプリは、Mac上のすべての永続化アイテムのナレッジグラフを構築し、Claude(Anthropic)を使用してそれを推論します。数千のアイテムを迅速に分類し、本当に重要なものだけをエスカレーションし、システムを学習することで、ほとんどの質問に追加のAI呼び出しなしで回答できるようになります。
┌──────────────────────────┐
│ 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. │ └──────────────────────────────────────────┘
### 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バイナリの不審な使用を検出します。**組み合わせが重要です:**