Webの中のセキュリティ — コードを書くときに守ること

上級の解説は準備中のため、上級の内容を表示しています。

概要 — まず全体をつかむ

中級では「境界で防ぐ」を軸に整理しました。上級では、脅威モデリングと多層の作り込みへ。

詳細 — 1段階ずつ追う

脅威モデリングから始める

「何を、誰から、どう守るか」を先に設計します。

  • STRIDE — なりすまし・改ざん・否認・情報漏洩・DoS・権限昇格の観点で洗い出す
  • 信頼境界の明示 — 図に境界を引き、越える所すべてで検証・認可
  • 多層防御 — 予防・検知・対応を層で重ねる

守りの層(作り込み)

  1. 入力 — 検証+正規化(Unicodeの見た目差、二重デコード)
  2. 出力 — 文脈別エスケープ+CSP/SRI
  3. 認証・認可 — 中央化、最小権限
  4. 暗号 — TLS+保存時暗号、鍵管理
  5. 依存SCA/SBOMでサプライチェーンを管理
  6. 監視 — 監査ログ、異常検知、改ざん検知

運用まで含めた守り

  • セキュリティヘッダ — CSP・HSTS・SRI・SameSite・X-Content-Type-Options
  • サプライチェーン攻撃 — 依存やビルドパイプラインの汚染に注意
  • シークレット — 集中管理+ローテーション+最小配布
  • セキュアSDLC(シフトレフト) — 設計・CI・レビューにセキュリティを組み込む

⚠️ 現実の破れ方

  • OWASP Top 10 — アクセス制御不備・インジェクション・設定ミスが上位常連
  • 設定ミス — 公開設定・デフォルト資格情報・冗長な権限
  • 依存の穴 — 既知脆弱性の放置
  • CSPバイパス — 緩い設定や信頼した出所の悪用
  • ログの不足/改ざん — 攻撃に気づけない・追えない

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. ブラウザに「読み込んでよいスクリプトの出所」を制限させ、XSSの被害を抑えるヘッダは?

2. 使っているライブラリの既知脆弱性を機械的に洗い出す取り組みは?

3. 脅威モデリングの観点「STRIDE」に含まれないものはどれ?

4. 本文が挙げる、認証・認可の作り込みの原則の組み合わせとして正しいのは?

5. 本文がいう「多層防御」で、層として重ねる3つはどれ?

6. 入力の「正規化」で本文が特に警戒しているのはどれ?

7. アプリが使っている依存(部品)を一覧化した「部品表」を英字4文字の略語で答えてください。

8. 設計やCI、レビューといった早い工程からセキュリティを組み込む考え方を、カタカナで(「〜レフト」)答えてください。