KAKESU Security Policy v1.0
KAKESU に保存する Log は、後から人間が読み返すための「仕事の記録」です。セッション由来の機密情報を持ち込まないでください。Private 保存でも、公開時に困る情報は最初から書かないのが原則です。
Principles
- Log はセッションの生ログのコピーではなく、目的・調査・判断・次の行動を整理した記録として書く。
- 秘密情報は伏せる。伏せた事実は本文に明記する(例: 「API Key は省略」)。
- ユーザーの文章を勝手に書き換えない。問題を見つけたら報告し、ユーザーに確認する。
- Agent 側のチェックだけを根拠に「Security Check PASSED」と表示しない。
Must not include
Credentials (remove)
- API Key / Access Token / Refresh Token
- Password / Passphrase
- Private Key (SSH, TLS, PGP)
- Authorization ヘッダの実値 / Bearer Token / JWT
- .env の中身
- Database 接続文字列(認証情報つき)
Personal data (remove)
- 個人のメールアドレス
- 電話番号
- 住所
- アカウントID と紐づく個人情報
Should review
- Client name: クライアント名・案件名は「クライアントA」等に置き換えられないか検討する。
- Internal URL: 社内ホスト名・ステージング URL・内部 IP は必要でなければ省略する。
- Contract / Money: 契約条件・金額・見積は要約にとどめ、具体的な数値は避ける。
- Unreleased project: 未公開プロジェクトの名称や仕様は、公開前提で書かない。
- Paths: 個人のホームディレクトリを含む絶対パスは相対パスに置き換える。
Review steps
- Log の本文を生成する。
- このポリシーの must_not_include / should_review に照らして本文を読み直す。
- 該当箇所は本文から取り除くか、伏せ字にしたうえで「省略した」と明記する。
- 検出結果を security_report としてまとめる(問題なしの場合は issues: [])。
- create_log / update_log に security_report を添えて送信する。
- issues が空でなければ、保存後にユーザーへ内容を伝える。
Reporting
- issues には検出した秘密情報の実値そのものを書かない。
- Agent のチェック結果は「AI Agent によるチェック」として記録され、サーバー側の決定的スキャンとは区別して表示される。
- Private 保存はブロックされない。Public 公開時に明確な Secret が検出された場合のみブロックされる。
{
"scanner": "agent",
"policy_version": "1.0",
"issues": [
{
"type": "credential | personal_data | client_name | internal_url | contract | other",
"severity": "secret | warning",
"message": "何を検出し、どう処理したかを 1 行で",
"location": "任意: 見出し名や行の目安"
}
]
}
server side scan
KAKESU 側でも決定的スキャン(正規表現ベース、LLM 不使用)を実行します。 Private 保存は原則ブロックしません。公開時に再スキャンし、明確な Secret が検出された場合のみ公開をブロックします。
検出対象の例: AWS Access Key / GitHub Token / Bearer Token / JWT / Private Key / .env の代入 / URL 埋め込み認証情報
検出しても KAKESU が本文を書き換えることはありません(No Silent Rewrite)。 検出 → 警告 → ユーザー確認 → 修正 → 公開、の順で扱います。