Security services (CTEM / DAST / SAST / SPECT / VM / GRC / IR / DR)
セキュリティサービススイート (CTEM / DAST / SAST / SPECT / VM) のカタログは GET /v1/security/services で取得できます。認証不要の公開エッジで、記述 (describe) のみを行います。
curl -s https://api.mithril.fund/v1/security/services | jq '.[] | {id, status}'
# ctem → "component-shipped"
# dast → "gated"
# sast → "gated"
# spect → "gated"
# vm → "component-shipped"
# grc → "component-shipped"
# ir → "component-shipped"
# dr → "component-shipped"
CTEM — exposure management
CTEM は公開エンドポイント・ドメイン・証明書を継続スキャンして外部攻撃表面・エントリポイントを列挙し、到達可能な攻撃パスを特定、公開経路・依存・所有者の資産コンテキストを付与して、曝露イベントと共通スキーマの所見を VM 台帳へ渡します (status: component-shipped)。ATT&CK T1190 (Exploit Public-Facing Application) / T1595 (Active Scanning) に相当します。
# CTEM capabilities (from the catalog entry)
surface-inventory # continuous external attack-surface / asset inventory
attack-path # reachable attack-path identification
context # asset context (public routes, deps, owner)
exposure-feed # exposure events fed to the VM ledger
# inputs: assets, dns, certificates, open-endpoints
# outputs: attack-paths, exposure-findings, asset-context
# integration: feeds vm, emits :finding (shared finding-schema)
SAST — static application security testing
SAST はソースコードを解析して脆弱パターンとサニタイズ漏れを検出し、静的解析と taint / データフロー検査でファイル・行つきのコード所見を VM 台帳へ出します。依存関係マニフェストも検査し、依存メモを出力します (status: gated)。
# SAST capabilities (from the catalog entry)
code-analysis # static source-code analysis
taint-flow # taint / data-flow inspection
code-finding # code findings with file + line
dependency-notes # dependency-manifest inspection, emitting dependency notes
# inputs: source-code, dependency-manifests
# outputs: code-findings, taint-paths, dependency-notes
# integration: feeds vm, emits :finding (role: code-findings)
DAST — dynamic application security testing
DAST は稼働中のアプリに対し、走査スコープと認証シナリオ (ログイン等の認証ありのパス) で動的検査を行い、再現性のあるランタイム脆弱性所見 (リクエスト・レスポンスのエビデンスつき) を VM 台帳へ出します (status: gated)。
# DAST capabilities (from the catalog entry)
runtime-probe # dynamic probing of running applications
auth-scenarios # probing with authenticated scenarios
runtime-finding # runtime vulnerability detection as findings
# inputs: running-apps, scan-scopes, auth-scenarios
# outputs: runtime-findings, request-response-evidence
# integration: feeds vm, emits :finding (role: runtime-findings)
SPECT — spear-phishing detection
SPECT は受信メールのヘッダ検証 (SPF/DKIM/DMARC)、ドメイン正規化比較 (punycode / homoglyph / 付加文字)、URL リライト先と送信者の不一致を検査し、標的型メール所見を VM 台帳へ出します (status: gated)。ATT&CK T1566 (Phishing) に対応。
# SPECT capabilities (from the catalog entry)
header-verify # SPF / DKIM / DMARC alignment on received mail
domain-normalise # punycode / homoglyph / added-char lookalikes
url-mismatch # URL rewrite target vs sender
mail-finding # targeted-mail findings with header/domain/URL evidence
# inputs: received-mail, domain-intel, mail-flow-records
# outputs: targeted-mail-findings, lookalike-domain-notes, impersonation-evidence
# integration: feeds vm, emits :finding (role: targeted-mail-findings)
VM — vulnerability management
VM (脆弱性管理, wvme) は 4 つの上流サービスが発した共通スキーマの所見を重複排除し、到達可能性 × 悪用可能性でスコアリングして、CPE/CVE キーつきの修正ライフサイクル台帳として管理します。CVE/CPE フィード入力を受け付けます (status: component-shipped)。
# VM capabilities (from the catalog entry)
dedup # finding deduplication (asset × vulnerability key)
scoring # reachability × exploitability scoring
ledger # vulnerability ledger keyed by CPE/CVE
remediation # remediation lifecycle (detected → in progress → verified → closed)
cve-cpe-feed # CVE/CPE feed intake
# inputs: findings-from-ctem, findings-from-dast, findings-from-sast, findings-from-spear-phishing, cve-cpe-feeds
# outputs: vulnerability-ledger, remediation-status, exposure-reports
# integration: role aggregation-ledger (dedup, scoring: reachability + exploitability, ledger keys: cpe, cve)
GRC / IR / DR — NIST CSF 2.0 の統治・対応・復旧
3 つとも VM 台帳と同じく決定論的でステートレスです。POST した JSON だけから計算し、何も保存せず、モデルも呼びません。GET は入力例と、その入力例に対するその場で計算した応答を返します。読めない項目は 400 で、フィールド名と理由を返します(例: {"field": "incident.category", "reason": "not-an-allowed-value"})。
GRC — POST /v1/security/govern
profile(CSF 2.0 サブカテゴリごとの現在・目標ティア 0–4)、risks(発生可能性・影響度 1–5、treatment、owner)、suppliers(criticality、dataAccess、契約条項、lastAssessed)のいずれかを送ります。suppliers には asOf が要ります。
curl -s https://api.mithril.fund/v1/security/govern \
-H 'content-type: application/json' \
-d '{"riskAppetite": 9, "risks": [{"id": "R-2", "likelihood": 4, "impact": 3, "treatment": "accept"}]}' \
| jq '.risks.register[0] | {score, level, findings: [.findings[].code]}'
# → {"score": 12, "level": "high",
# "findings": ["no-owner", "acceptance-exceeds-appetite"]}
IR — POST /v1/security/respond
incident(id、category、awareAt、ongoing、criticalSystemAffected、personalData、jurisdictions: jp / eu / other、nis2Entity、significant)を送ると、優先度、RS サブカテゴリつきの手順、報告期限を返します。期限は法定の上限で、法的助言ではありません。個人情報保護法の確報は土日だけを繰り延べ、祝日は適用しません(応答に明記)。
curl -s https://api.mithril.fund/v1/security/respond \
-H 'content-type: application/json' \
-d '{"incident": {"id": "I-1", "category": "ransomware", "awareAt": "2026-09-24T01:30:00Z",
"ongoing": true, "personalData": {"records": 12000}, "jurisdictions": ["jp", "eu"]}}' \
| jq '{priority: .triage.priority, deadlines: [.notifications[] | {regime, stage, deadline}]}'
DR — POST /v1/security/recover
asOf と assets(id、criticality、rtoHours、rpoHours、dependsOn、backups: lastSuccessAt、lastRestoreTestAt、offsite、immutable)を送ると、依存順の復旧ウェーブと資産ごとの検査を返します。依存が循環していれば 400 dependency-cycle で、該当資産を列挙します。
curl -s https://api.mithril.fund/v1/security/recover | jq '.example.response.waves'
# → [{"wave": 1, "assets": ["db"]},
# {"wave": 2, "assets": ["api", "reporting"]}]
標的型メール攻撃対策 (solution)
模倣ドメインの発見 (CTEM) → なりすましメールの検査 (SPECT) → 乗っ取りの台帳化 (VM) まで、第一次サービス群で構成する対策の正本定義は GET /v1/security/solutions/spear-phishing。ページ側は /security/services/#spear-phishing-solution に同じ定義で描画されます。メールゲートウェイ・訓練・乗っ取り後監視はカタログの partner カテゴリ (email-sec / awareness / siem / itdr) が担います。
curl -s https://api.mithril.fund/v1/security/solutions/spear-phishing | jq '{id, components: [.components[].id]}'
# → {"id": "spear-phishing",
# "components": ["ctem", "spear-phishing", "vm"]}
DAST / SAST / SPECT は gated (非公開の authority の後方でゲート中)。4 つの上流サービスは共通 finding-schema で所見を出し、VM が重複排除・スコアリング (到達可能性 × 悪用可能性)・修正ライフサイクルを CPE/CVE キーで管理します。