参考資料と出典

Lagune 用語集:SDH、charter、検出事項、対策

Lagune と Security-Driven Hardening のすべての用語を、わかりやすい言葉で定義します。SDH、charter、detect、検出事項、対策、harden、verify、クローズ、クローズ可能性、専門知識、カテゴリ、カタログを収録しています。

Lagune と Security-Driven Hardening の方法論で要となる用語をすべて、わかりやすい言葉で一度ずつ定義します。

Security-Driven Hardening (SDH)​

Lagune が実装する方法論で、コンテキストを踏まえた Blue Team の規約です。システムのコンテキストを検出し、そのコンテキストに伴うリスクをトリアージして、修正へと導きます。セキュリティの知識は仕様と、必要なときだけ読み込む専門知識に収められているので、開発者でもそうでなくても、同じフローで支援を受けられます。

Lagune​

SDH のリファレンス実装です。9 つのエージェント向けコマンドと、各コマンドが埋めるテンプレートからなり、AI エージェントがこれを実行してコードベースを堅牢化します。各エージェントは、独自のプラグインインストーラーか skills.sh からコマンドをインストールします(インストールページ を参照)。決定論的なステップは、どれもコマンドが Lagune のエンジンで実行します。

Charter(セキュリティ原則)​

Lagune 全体を統括するレイヤーで、後続のすべてのフェーズが守るべき、セキュリティを最優先にした原則の集まりです。プロジェクトのセキュリティ態勢に対する、コンパイル時のチェックだと考えてください。保存先は .lagune/memory/charter.md です。

開発フロー​

書いているその場で作業を堅牢化する汎用コマンド /lagune です。どの段階のどんなプロンプトでも受け付け、依頼された内容を作り、安全なデフォルト設定で堅牢化してから返します。セキュリティ原則があれば、それを指針にします。Lagune の追跡情報には何も書き込まないため、生み出すのは堅牢化されたコードだけです。事前に定めるセキュリティ原則、事後の Blue Team フローとあわせて、開発中に Lagune がプロジェクトを守る手段です。

Blue Team フロー​

Lagune の中核をなす、charter、detect、plan、harden、verify の 5 フェーズからなる監査です。各フェーズは前のフェーズを土台にします。"Blue Team" はセキュリティにおける防御側の伝統を指し、攻撃側の Red Team と対をなします。

検出事項(Finding)​

検出されたひとつのリスクです。各検出事項には、それが何か、なぜ重要か、コード上の根拠が記されます。検出事項は plan、harden、verify が引き継いでいく単一の追跡単位で、どの成果物でも名前で識別されます。

対策(Control)​

リスクを解消するために適用するセキュリティ上の措置です。harden が対策を適用し、verify がその有効性を証明します。Lagune がプロンプトに合わせて対策を弱めることは決してありません。

Detect​

コードを読み、システムが何をしているか、どこにリスクがあるかを洗い出すフェーズです。根本のルールは、作り出すのではなく検出することです。コードで裏付けられることだけを記録します。

Harden​

コードに手を加える唯一のフェーズです。plan の修正をひとつずつ適用し、それぞれを Applied、Partial、Blocked のいずれかとして記録します。Applied の時点では、まだ証明はされていません。

Verify​

コードを読んで harden の記録と突き合わせ、適用した各修正が有効であることを証明するフェーズです。判定は Risk closed、Risk not closed、Cannot tell from the code の 3 つのいずれかです。

クローズ(Stand down)​

verify がリスクの解消を証明すると、その検出事項をクローズします。確認を得たうえでチェーン全体から取り除き、以後は再処理しません。

クローズ可能性(Closability)​

セキュリティ作業には終わりがある、という性質です。解消が証明された検出事項をクローズするので、フローを静止状態にでき、再開するのはコードが変わったときだけです。SDH は終わりのないループではなく、クローズできる仕組みです。

エンジン(Engine)​

npm 上の lagune パッケージです。決定論的なステップ(フック、カタログ、カテゴリ)はすべて、コマンドが npx を通じてこのパッケージで実行します。

専門知識(Specialization)​

特定のテーマに絞った、プログラミング言語に依存しないセキュリティ知識のモジュールです。デフォルトでは読み込まれず、必要なときだけ読み込まれます。専門知識はコマンドではありません。エンジンの read catalog <name> を使えば、どのプロンプトにも読み込めます(例:npx lagune read catalog regex)。

カテゴリ(Category)​

組み込みの専門知識を名前付きでまとめたグループで、owasp から、javascript、python、go、rust のような言語別のものまであります。プロジェクトが使うカテゴリは .lagune/configs.json に記録され、どの組み込み専門知識がそのカタログに加わるかを決めます。何も記録されていない間、プロジェクトは owasp だけを使います。

カタログ(Catalog)​

プロジェクトが使う専門知識の集まりです。そのカテゴリに属する組み込みの専門知識と、/lagune-specialize で書いた独自の専門知識からなります。エンジンの read catalog で一覧を表示でき、各フェーズはこれをコードと照らし合わせます。

オンデマンドプロンプト(Prompt-on-demand)​

すべてのチェックをデフォルトで実行するのではなく、プロジェクトの実態に合ったセキュリティ知識を必要に応じて取り込む、という原則です。

名前による識別(Identity-by-name)​

Lagune の追跡モデルです。各検出事項の名前は、すべての成果物でまったく同じ表記のセクション見出しとして書かれ、チェーン全体を通じてその検出事項の識別子になります。追跡マップ(.lagune/tracking.json)が保持するのは追跡情報だけで、説明文は一切持ちません。

よくある質問

SDH は、コンテキストを踏まえた Blue Team のセキュリティ方法論です。システムのコンテキストを検出し、そのコンテキストに伴うリスクをトリアージして修正へと導き、検出事項はすべてわかりやすい言葉で示します。Lagune はそのリファレンス実装です。

charter は Lagune 全体を統括するレイヤーで、後続のすべてのフェーズが守るべき、セキュリティを最優先にした原則の集まりです。保存先は .lagune/memory/charter.md です。

verify がリスクの解消を証明すると、その検出事項をクローズします。確認を得たうえでチェーン全体から取り除き、以後は再処理しません。