chore: セキュリティ監査フォローアップを STATUS.md に記録(2026-04-26)
This commit is contained in:
parent
cd5237b19c
commit
8af6faa44d
36
STATUS.md
36
STATUS.md
|
|
@ -6,30 +6,36 @@
|
|||
|
||||
- 特になし
|
||||
|
||||
## 全アプリ セキュリティ監査(2026-04-25 完了)
|
||||
## 全アプリ セキュリティ監査(2026-04-25 実施 / 2026-04-26 追加修正)
|
||||
|
||||
### このセッションで修正・デプロイ済み
|
||||
### デプロイ済みの修正一覧
|
||||
|
||||
| 修正 | 場所 | 内容 |
|
||||
|------|------|------|
|
||||
| XSS修正 | posimai-digest/index.html | escHtml()追加・AIレスポンスとユーザー入力のinnerHTML挿入前エスケープ |
|
||||
| エラー情報露出 | server.js:2067 | chronicle/activityのe.message→汎用メッセージ |
|
||||
| エラー情報露出 | server.js:3290 | atlas-scanのcode:e.code除去 |
|
||||
| 修正 | 場所 | 内容 | 日付 |
|
||||
|------|------|------|------|
|
||||
| XSS修正 | posimai-digest/index.html | escHtml()追加 | 2026-04-25 |
|
||||
| エラー情報露出 | server.js:2067 | chronicle/activityのe.message→汎用メッセージ | 2026-04-25 |
|
||||
| エラー情報露出 | server.js:3290 | atlas-scanのcode:e.code除去 | 2026-04-25 |
|
||||
| Guard CSRF トークン | posimai-guard | HMAC-SHA256(GEMINI_API_KEY, UTC日) を meta タグで注入、enrich/fix-issue に x-guard-token 必須化 | 2026-04-26 |
|
||||
|
||||
### 監査で判明した残課題(未対応)
|
||||
### 批判的コードレビューで「既修正」と判明した項目
|
||||
|
||||
- journal/together innerHTML XSS: 全箇所に escHtml/escapeHTML 適用済み。前回監査の誤検知
|
||||
- Ponshu IDOR/TOCTOU: `UPDATE ... WHERE device_id IS NULL` 原子的実装で解消済み。前回監査の誤検知
|
||||
- H-8 CSP未設定: 全31アプリに CSP + HSTS 設定済み(2026-04-20)
|
||||
- Together URL `javascript:` 注入: `isSsrfSafe()` が protocol チェックで遮断済み
|
||||
|
||||
### 残課題(未対応)
|
||||
|
||||
**即時対応必要(maiさん手動)**
|
||||
- `ponshu_room_lite/.env` と `.env.local` に Gemini APIキー(×2)・Giteaトークンが平文。GCPコンソールとGiteaで今すぐローテーション
|
||||
|
||||
**コード修正が必要(次チャットで対応)**
|
||||
1. journal/togetherの innerHTML XSS(escHtmlで解決・Eijiへの影響なし)
|
||||
2. Guard APIルートの認証(scan-claude/enrich/fix-issueがOriginチェックのみ)
|
||||
3. Ponshuライセンス認証のIDOR(routes/ponshu.js:16-90)
|
||||
4. CSP整備(unsafe-inline削除・未設定アプリへの追加)
|
||||
**コード修正が必要(優先度 High)**
|
||||
1. H-7: CSP の `unsafe-inline` 除去 → インラインイベントハンドラを addEventListener に置換が必要。工数大
|
||||
2. H-5: redirect_uri 正規表現 → `posimai-evil.vercel.app` マッチ可能。絞り込みは小さい修正で可能
|
||||
|
||||
**設計上の妥協点(意図的・変更不要)**
|
||||
- JWTをURL経由で渡す: クロスドメインSSO設計のため必要。historyReplaceStateは全アプリ実装済み
|
||||
- Together認証なし: EijiがJWT非保有のため意図的設計。レートリミット・invite_code強度で対策済み
|
||||
- JWTをURL経由で渡す: クロスドメインSSO設計のため必要
|
||||
- Together認証なし: EijiがJWT非保有のため意図的設計
|
||||
|
||||
詳細は memory/project_security_audit.md を参照
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue