技術解説Technical deep-dive
CyberForces CWPP の仕組み How CyberForces CWPP works
複数の EDR / EPP プロバイダ(Trend Micro Vision One、Cloud One Workload Security、CrowdStrike Falcon ほか)を、API 経由で統合し横断運用する設計を、エンジニア向けに解説します。既存のセキュリティエンジンを置き換えず、その上に統一された可視化・AI トリアージ・応答の層を載せる、という前提の上に各機能が成り立っています。 An engineer-level look at how we connect multiple EDR/EPP providers (Trend Micro Vision One, Cloud One Workload Security, CrowdStrike Falcon and more) over their APIs and operate them as one — built on the invariant that we never replace the underlying engine, but add a unified layer of visibility, AI triage and response on top of it.
アーキテクチャ概要Architecture overview
SaaS 側のコントロールプレーンが、プラガブルなプロバイダコネクタ層を介して、各プロバイダの API に認証・接続し、エンドポイント・検知・ポリシーを取得して統一モデルへ正規化します。顧客環境に当社エージェントを常駐させる必要はありません(保護自体は既存の EDR/EPP エージェントが担います)。A SaaS control plane connects and authenticates to each provider's API through a pluggable connector layer, pulling endpoints, detections and policies and normalizing them into a unified model. No standing CyberForces agent is required in the customer environment — protection itself is handled by the existing EDR/EPP agents.
⇅ Cognito / cyberforces-id JWT + group claims
プラガブルなコネクタ層Pluggable connector layer
各プロバイダは共通の抽象インターフェース(ProviderBase)を実装します。プロバイダ API への認証(Vision One: API トークン+リージョン / Cloud One: api-secret-key / CrowdStrike: OAuth2 クライアント認証情報)と、エンドポイント列挙・検知取得・隔離/復旧・ポリシー同期という統一操作を備えます。新規プロバイダの追加は、このインターフェースを実装して登録するだけです。Each provider implements a shared abstract interface (ProviderBase): authentication to the provider API (Vision One: API token + region / Cloud One: api-secret-key / CrowdStrike: OAuth2 client credentials) plus a unified set of operations — list endpoints, list detections, isolate/restore, sync policies. Adding a provider is just implementing the interface and registering it.
統一スキーマと正規化Unified schema & normalization
エンドポイント・検知・ポリシーはプロバイダ横断で正規化されます。endpoint_id は <provider>:<native_id>(例 visionone:abc123)の名前空間付き。重大度やステータスも共通の enum に揃え、プロバイダが違っても同じ語彙で扱えます。Endpoints, detections and policies are normalized across providers. The endpoint_id is namespaced as <provider>:<native_id> (e.g. visionone:abc123). Severity and status share common enums, so different providers are handled with one vocabulary.
認証とアクセス制御の内訳Auth & access-control breakdown
プロバイダ認証情報の保管とテナント分離、そしてグループ単位のスコープをサーバ側で強制します。Provider credentials, tenant isolation and per-group scoping are all enforced server-side.
- • エンドポイント在庫・検知の列挙List endpoint inventory & detections
- • 検知のトリアージ状態更新(新規/対応中/解決/誤検知)Update detection triage status
- • インシデント・タスクの参照と進捗更新View incidents/tasks, update progress
- • AI 分析のための Bedrock 呼び出し(Lambda の IAM ロール)Bedrock invocation for AI (Lambda IAM role)
- • エンドポイントの隔離 / 復旧(プロバイダ API を呼出)Isolate / restore endpoint (calls provider API)
- • ポリシーの同期・移行の実行Run policy sync / migration
- • コネクタのグループスコープ・認証情報の設定Set connector group scope / credentials
- • 状態を変える操作はすべて監査ログに記録Every such action is written to the audit log
接続の流れHow onboarding works
実際のプロバイダ接続は、おおむね次の 6 ステップです。最短で同日に横断運用を開始できます。Connecting a provider is roughly six steps — you can be operating across providers the same day.
-
1
コネクタを作成Create a connector
プロバイダ(Vision One / Cloud One / CrowdStrike)を選び、その API 認証情報を登録します。Vision One は API トークン+リージョン、Cloud One は api-secret-key、CrowdStrike は OAuth2 クライアント認証情報。認証情報はテナント単位で安全に保管します。Pick a provider (Vision One / Cloud One / CrowdStrike) and register its API credentials — Vision One: API token + region, Cloud One: api-secret-key, CrowdStrike: OAuth2 client credentials. Credentials are stored securely per tenant.
-
2
接続テストTest the connection
登録した認証情報でプロバイダ API への疎通を確認します。以降、同期ヘルスはコネクタ単位で継続的に追跡されます。A connection test verifies access to the provider API with the registered credentials. From then on, sync health is tracked per connector.
-
3
初回同期(在庫と検知)Initial sync (inventory & detections)
エンドポイント在庫と検知を取得し、統一スキーマへ正規化。endpoint_id を
<provider>:<native_id>で名前空間化し、重大度・ステータスを共通 enum に揃えます。オンデマンド同期も可能です。Endpoint inventory and detections are pulled and normalized into the unified schema — endpoint_id is namespaced<provider>:<native_id>and severity/status mapped to common enums. On-demand sync is available too. -
4
グループスコープを設定Scope to groups
コネクタを特定のグループにスコープすると、そのチームだけがコネクタと派生するエンドポイント・検知を見られます。サーバ側でアクセストークンのグループクレームから強制されます。Scope a connector to specific groups so only that team sees the connector and its derived endpoints/detections. This is enforced server-side from the access token's group claims.
-
5
AI トリアージを有効化Enable AI triage
検知ごとの AI 分析・推奨アクション・日次ブリーフィングを有効化。Bedrock(Claude)は Lambda の IAM ロールで認証され、ページや設定に API キーは存在しません。Turn on per-detection AI analysis, recommended actions and daily briefings. Bedrock (Claude) authenticates via the Lambda's IAM role — there is no API key in the page or config.
-
6
運用開始Operate
横断ダッシュボードで検知をトリアージし、必要なエンドポイントを隔離、関連検知をインシデントへ束ね、対応を追跡タスクへ昇格。状態を変える操作はすべて監査可能です。Triage detections in a cross-provider dashboard, isolate endpoints where needed, group related detections into incidents, and promote responses into tracked tasks — every state-changing action is auditable.
接続後も基盤の EDR/EPP は置き換えません。コネクタはいつでも削除でき、削除しても各プロバイダ側の保護やデータには影響しません。Even after connecting, we never replace the underlying EDR/EPP. A connector can be removed at any time, and removing it does not affect protection or data on the provider side.
同期基盤と可視化Sync pipeline & observability
同期の経路と周期Sync cadence
定期実行の Lambda が、エンドポイント在庫を毎時、検知を 2 時間ごとに増分取得します。各レコードは取得時に統一スキーマへ正規化され DynamoDB に保存。オンデマンド同期で即時更新も可能です。Scheduled Lambdas pull endpoint inventory hourly and detections every two hours, incrementally. Each record is normalized into the unified schema on ingest and stored in DynamoDB. On-demand sync gives an immediate refresh.
プロバイダ横断の帰属Cross-provider attribution
endpoint_id の名前空間(<provider>:<native_id>)により、どのプロバイダ由来のエンドポイント・検知かが常に一意に辿れます。重大度・ステータスは共通 enum に揃うため、横断で同じ軸の集計・並び替えができます。The namespaced endpoint_id (<provider>:<native_id>) always traces an endpoint or detection back to its source provider. With severity/status on common enums, you can aggregate and sort across providers on one axis.
同期ヘルスとデータモデルSync health & data model
同期の成否・最終成功時刻はコネクタ単位で追跡し、失敗は可視化します。DynamoDB はテナント単位の行で保持し、org_id でスコープした GSI で横断クエリ。認証は Cognito / cyberforces-id の JWT です。Sync success/last-success is tracked per connector and failures are surfaced. DynamoDB holds per-tenant rows with org_id-scoped GSIs for cross-cutting queries, and auth is Cognito / cyberforces-id JWT.
正規化モデル(イメージ)Normalized model (illustrative)
いずれもプロバイダ差を吸収した統一表現です。endpoint_id は名前空間付き、enum は共通語彙に揃えます。Each is a unified representation that absorbs provider differences — endpoint_id is namespaced and enums use a common vocabulary.
{
endpoint_id:
"visionone:abc123",
provider: "visionone",
hostname: "web-01",
status: "online" |
"offline" | "isolated"
}
{
endpoint_id: "...",
severity: "critical" |
"high" | "medium" |
"low" | "info",
status: "new" |
"in_progress" |
"resolved" |
"false_positive"
}
{
detections: [ ... ],
ai_summary: "...",
timeline: [ ... ],
attack: { technique,
tactic } // MITRE
}
検知・応答の制御プレーンThe detection & response control plane
トリアージ状態Triage status
検知は重大度(critical / high / medium / low / info)とトリアージ状態(new / in_progress / resolved / false_positive)を持ち、プロバイダ横断で同じ語彙で扱えます。Detections carry severity (critical / high / medium / low / info) and triage status (new / in_progress / resolved / false_positive), handled in one vocabulary across providers.
隔離と監査Isolation & audit
エンドポイントの隔離・復旧は明示的で監査される操作で、内部的にはプロバイダ API を呼び出します。状態は online / offline / isolated で表現されます。Endpoint isolate/restore are explicit, audited actions that call the provider API under the hood. Endpoint state is online / offline / isolated.
応答経路Response path
UI からの手動応答も AI 起点の推奨も、隔離・状態更新・タスク化という同一の内部経路を通り、監査ログ記録も共通です。Manual responses (UI) and AI-recommended ones share one internal path — isolate, status update, task promotion — with the same audit logging.
データモデルと定期実行Data model & scheduled jobs
データストア(DynamoDB)Data stores (DynamoDB)
定期実行ジョブScheduled jobs
| ジョブJob | 周期Cadence | 役割Role |
|---|---|---|
| 在庫同期Inventory sync | 毎時hourly | エンドポイント在庫を増分取得・正規化incrementally pull & normalize endpoints |
| 検知同期Detection sync | 2 時間ごと2-hourly | 検知を増分取得・共通 enum へ正規化pull detections, map to common enums |
| 同期ヘルス確認Sync health | 継続continuous | コネクタ単位の成否・最終成功を追跡track per-connector status / last success |
| AI トリアージAI triage | 検知到着時on detection | Bedrock で分析・推奨アクションを生成Bedrock analysis + recommended actions |
| 日次ブリーフィングDaily briefing | 日次daily | SOC レポート・サマリを自動生成generate SOC report / summary |
| ATT&CK マッピングATT&CK mapping | 検知到着時on detection | technique→tactic を対応付けヒートマップ更新map technique→tactic → heatmap |
AI と応答のメカニズム(詳細)AI & response mechanisms (in detail)
AI 検知トリアージAI detection triage
検知の分析と SOC レポート生成は Amazon Bedrock(Claude)で実行します。Lambda の IAM ロールで認証されるため、ページや設定に API キーは存在しません。AI は検知ごとの分析・推奨アクション・日次ブリーフィング・脅威ハンティングのクエリ補助を生成します。Detection analysis and SOC reporting run on Amazon Bedrock (Claude). The Lambda's IAM role authenticates, so there is no API key in the page or config. The AI produces per-detection analysis, recommended actions, daily briefings, and threat-hunting query help.
MITRE ATT&CK ヒートマップMITRE ATT&CK heatmap
検知に紐づく ATT&CK の technique を tactic へマッピングし、プロバイダ横断のヒートマップを駆動します。どの戦術段階に検知が集中しているかを一目で把握でき、ハンティングの優先付けに使えます。ATT&CK techniques attached to detections are mapped to tactics, driving a cross-provider heatmap. You can see at a glance which tactic stages detections cluster in, and prioritize hunting accordingly.
エンドポイント隔離 / 復旧Endpoint isolate / restore
隔離・復旧は明示的かつ監査される操作で、内部的にはプロバイダ API を呼び出します。エンドポイントの状態は online / offline / isolated で表現され、UI からの手動操作も AI の推奨も同じ経路を通ります。勝手にエンドポイントを隔離することはありません。Isolation and restore are explicit, audited actions that call the provider API. Endpoint state is online / offline / isolated, and both manual UI actions and AI recommendations go through the same path. We never isolate an endpoint silently.
インシデントの束ねと AI 要約Incident grouping & AI summary
関連する検知をインシデントとして束ね、AI が要約とタイムラインを付与します。プロバイダをまたぐ検知でも一つのインシデントに集約でき、攻撃の全体像を時系列で追えます。Related detections are grouped into an incident, which the AI annotates with a summary and timeline. Detections spanning multiple providers can collapse into one incident, so you can follow the full picture of an attack over time.
リスク応答(タスク化)Risk response (task promotion)
検知やインシデントは、担当・対応計画・期限・進捗(open → in_progress → done)を持つ追跡タスクへ昇格できます。「検知」と「やるべき対応」を分離し、対応の取りこぼしを防ぎます。Detections and incidents can be promoted into tracked tasks with an owner, response plan, due date, and progress (open → in_progress → done). This separates "a detection" from "the work to do about it" and stops responses falling through the cracks.
グループ単位のアクセス制御Group-based access control
コネクタはグループにスコープでき、そのチームだけがコネクタと派生するエンドポイント・検知を見られます。サーバ側でアクセストークンのグループクレームから強制し、グループ管理者とテナント管理者を区別します。テナント間は完全に分離されています。Connectors can be scoped to groups so only that team sees the connector and its derived endpoints/detections. This is enforced server-side from the access token's group claims, distinguishing group admins from tenant admins. Tenants are fully isolated.
プロバイダ移行(AI 支援)Provider migration (AI-assisted)
あるプロバイダの設定・ポリシーを別のプロバイダへ、AI 支援で移行します。アセッサーが差分と移行可能性を評価し、エグゼキューターが実行します。単純なコピーではなく、プロバイダ間の表現差を吸収した移行です。Configuration and policies are migrated from one provider to another with AI assistance: an assessor evaluates differences and feasibility, and an executor applies the migration. It is not a blind copy — it absorbs the representation differences between providers.
安全・分離の前提Safety & isolation
- 既存エンジンを置き換えないNever replaces the engine
保護自体は既存の EDR/EPP が担い、当社は運用・可視化・応答の層のみを載せます。Protection stays with the existing EDR/EPP; we only add an operations, visibility and response layer. - 状態変更は明示・監査Explicit, audited changes
隔離・復旧・移行など状態を変える操作はすべて明示的で、監査ログに記録されます。Isolate, restore, migrate and other state changes are explicit and written to the audit log. - テナント・グループ分離Tenant & group isolation
テナント間は完全分離。コネクタはグループにスコープでき、サーバ側で強制されます。Tenants are fully isolated; connectors scope to groups, enforced server-side. - 秘密情報を露出しないNo secret exposure
Bedrock は Lambda の IAM ロールで認証。プロバイダ認証情報はテナント単位で安全に保管。Bedrock authenticates via the Lambda IAM role; provider credentials are stored securely per tenant.
用語集Glossary
- CWPP / EDR / EPP
- CWPP はワークロード保護の運用層。EDR/EPP は実際に検知・防御するエンドポイントエンジン。CWPP はそれを置き換えず束ねます。CWPP is the workload-protection operations layer; EDR/EPP are the endpoint engines that actually detect and defend. CWPP unifies them without replacing them.
- コネクタ / ProviderBaseConnector / ProviderBase
- 各プロバイダ API への接続実装。共通の抽象インターフェースを実装して登録すれば新規プロバイダを追加できます。The implementation that connects to a provider API. Implement the shared abstract interface and register it to add a provider.
- endpoint_id
<provider>:<native_id>形式の名前空間付き識別子(例visionone:abc123)。A namespaced identifier of the form<provider>:<native_id>(e.g.visionone:abc123).- トリアージ状態Triage status
- 検知の対応段階:new / in_progress / resolved / false_positive。A detection's handling stage: new / in_progress / resolved / false_positive.
- 隔離 / 復旧Isolate / restore
- エンドポイントを隔離・復帰させる明示的な操作。状態は online / offline / isolated。Explicit actions to isolate or restore an endpoint; state is online / offline / isolated.
- インシデントIncident
- 関連する検知を束ねた単位。AI 要約とタイムラインを持ちます。A unit grouping related detections, with an AI summary and timeline.
- MITRE ATT&CK
- 攻撃手法の体系。technique→tactic のマッピングがヒートマップを駆動します。A taxonomy of attack techniques; technique→tactic mapping drives the heatmap.
- Bedrock (Claude)
- AI トリアージ・SOC レポートの実行基盤。Lambda の IAM ロールで認証されます。The runtime for AI triage / SOC reporting; authenticated via the Lambda IAM role.
評価・PoC のご相談Evaluations & PoCs
アーキテクチャの詳細や検証についてのご相談は、お問い合わせフォームよりお気軽にどうぞ。For architecture details or a proof of concept, reach out via the contact form.