Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

企画書:Code for Security(セキュリティ診断ルーティン化キット)

OSSとして公開する、小規模組織向け「調べなくても基本のセキュリティ診断を回せる」統合キットの構想。

*一言で:ツールやフレームワークの選定・つなぎ込みを済ませた状態で配り、scope → setup → 実行(リリース前/月次)→ triage を誰でもルーティンで回せるようにするOSS。


1. 背景・課題

  • AIエージェントで攻撃も診断も安価に自動化できる時代になった。守りを仕組みとして持つ必要がある。
  • 一方で、**AIペンテスト(Strix/CAI/PentestGPT)・SAST(CodeQL/Semgrep)・標準(OWASP)・国内ガイド(IPA)は"部品"としては揃っている*が、どれがどの役割かを毎回調べ、つなぎ込むコストが高い。
  • 特に小規模の非営利・自治体・シビックテックには、その調査・設計の余力がない。結果、診断が属人化するか、やらないまま放置される。
  • 足りないのは新しいエンジンではなく、部品を束ねて"明日から回せる"状態にした接着剤。

2. コンセプト(つくるもの)

部品選定を済ませたオピニオネイテッドな統合ルーティン。利用者は「どのツールを使うか」を考えず、テンプレを展開して回すだけ。

  • *デフォルトの役割マッピング(役割→推奨OSS)を内蔵し、調査を不要にする。
  • テンプレ+最小CLI/Makefileで、init 一発で一式が入る。
  • **日本語ドキュメント+OWASP/IPAマッピング*で、国内実務にそのまま接続できる。

3. 提供価値・対象

  • *一次対象:CfJ自身、および近い組織まで(同規模の非営利・自治体・シビックテック)。広く一般には広げない。
  • *価値:セキュリティ専門家がいなくても、基本レベルの診断を定常運用できる。
  • *差別化:エンジンではなく「接着剤+日本語+文脈」。世界的OSS(下記)は部品で強いが、国内小規模組織向けに束ねた統合キットは空白。

4. スコープ

やる

  • 役割ごとのデフォルトツール選定とつなぎ込み
  • スコーピング・実行・トリアージのテンプレと標準フロー
  • 日本語の導入ガイド+OWASP/IPAマッピング

やらない(既存に委譲)

  • 診断エンジンの再実装 → Strix / CAI / CodeQL / Semgrep に委譲
  • 商用SaaS化、専門家向けの高度なレッドチーム機能

5. 構成要素(成果物)

  • *役割マッピング表:SAST=CodeQL/Semgrep、依存=Dependabot/OSV-Scanner、シークレット=Gitleaks、AIエージェント診断=Strix(必要に応じCAI)、標準=OWASP ASVS/WSTG。
  • *スコーピングテンプレ:instructions.md 生成+脅威モデル雛形(in-scope/out-of-scope・資産・認証・除外)。OWASP ASVSを参照にFocusAreasを定型化。
  • *CI/実行テンプレ:GitHub Actions(リリース前の手動+月次schedule)。--max-budget・scope制御込み。
  • *トリアージ/起票フロー:結果→Slack通知→Notion台帳、重大度トリアージの手順。
  • 最小CLI/Makefile:initで上記一式を対象リポに展開。
  • *日本語導入ガイド:IPA(ウェブ健康診断・安全なウェブサイトの作り方)とOWASPへのマッピングで実務接続。

6. 標準ルーティン(この4ステップに固定する)

  1. Scope — テンプレから instructions.md を作成(対象・認証・Focus・除外)。
  2. Setup — テスト環境(ステージング/クローン)+キー登録+CIテンプレ配置。
  3. Run — リリース前(手動)/月次(schedule)で実行。
  4. Triage — PoC付きを優先、誤検知を仕分け、起票→修正→再スキャン。 人間に残るのは「安全な環境用意」「スコープ決定」「結果の検証」「修正」。それ以外はテンプレとエージェントが担う。

7. 先行事例との関係(車輪の再発明を避ける)

  • *AIエージェント:CAI(モジュール型・役割パターン・human oversight)、PentestGPT、Strix。→ エンジンはここに乗る。
  • *方法論/標準:OWASP WSTG・ASVS・SAMM/DSOMM・pytm。→ スコープと成熟度の下敷きに使う。
  • *国内:IPAのガイド/ツール群(啓発・診断手引き)、BEAR.Security(日本発OSS、思想が近い)。→ マッピング・参照先にする。

本キットの立ち位置=これらの"上に乗る統合レイヤー"。独自エンジンは持たない。


8. OSS化の方針

  • *ライセンス:MIT または Apache-2.0。
  • *リポ構成:テンプレ/CLI/docs(日本語+英語)。
  • *既存OSSへの敬意:委譲するエンジンへは Drips 等でのOSS寄付も検討(別構想と接続)。
  • *コントリビュート:自治体/シビックテック事例をテンプレとして取り込める設計。

9. 進め方(フェーズ)

  • **v0(ドッグフーディング)*:CfJ内の1プロジェクトに手動適用し、ルーティンとテンプレを実地検証。
  • v0.1:テンプレ+最小CLI化。2〜3プロジェクトへ横展開。
  • **v1(OSS公開)*:テンプレ+日本語ガイドを作りながら公開。*CLIは実装せず、設計をADRで固める(将来実装の判断材料にする)。
  • *その後:コミュニティ事例の取り込み、英語化。

10. 自己メンテ設計(agent監視+人間ゲート)

保守を「人がゼロから調べ続ける」から「エージェントが監視・ドラフトし、人間は判断だけする」に変える。このキット自身のルーティン(agentが作業・人間がdecision)をドッグフーディングする構図にもなる。

  • エージェントが担う(toil)*:委譲先(Strix/CAI/CodeQL/Semgrep)のリリース・changelog・CVEを監視し、カナリアリポでテンプレを実行して壊れを検知。「flagが変わった」「新ツールが出た」をPRドラフト化*。
  • **人間が担う(opinion)*:推奨そのものの変更(ツール差し替え・推奨モデル変更・マッピング追加削除)はレビュー必須。ここがキットの価値=「調べる責任の引き受け」なので自動化しない。

2段のautonomy

  • *自動マージ可:カナリアを通ったバージョン上げ、flagリネーム、リンク修正などの機械的変更。
  • *人間レビュー必須:推奨の変更。無レビューの自動採用は、利用者が自分で調べるより悪く(検証されない権威を配ることになる)、かつ推奨ツール/モデルの自動採用自体がサプライチェーンの侵入面になるため禁止。 結果、担当者の仕事は「ゼロから調べる」から「エージェントのPRを定期的にレビューする」に縮小。保守コストは激減するが、責任者は消えない。

11. リスク・注意点

  • *保守コスト:委譲先(Strix/CAI等)の変化に追随し続ける必要。デフォルト選定が陳腐化しうる。
  • *非決定性・コスト:エージェント型の宿命。budget/scope制御を標準に含める。
  • *運用負荷:誤検知のトリアージが溜まると形骸化。起票ルールとローテを最初から組み込む。
  • *"オピニオン"の責任:デフォルト選定を推す以上、推奨が外れたときの更新責任を持つ。

12. 決定事項・残論点

決定済み

  • *プロジェクト名:Code for Security。
  • *対象:CfJ+近い組織まで(広く一般には広げない)。
  • *v1スコープ:テンプレ+ガイドを作り、CLIは実装せず設計をADRで固める。
  • *自動化のしきい値/人間ゲートの担当:v1を作りながら決める(第10節)。

残論点

  • **診断エンジンの採用方針(Strix / CAI)*:既定エンジンをStrixにして包むか、CAIを土台に独自エージェントを組むか、両対応できる薄いアダプタを挟むか。CLIの初回ADRとして扱う。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors