Webアプリケーションセキュリティ
概要
Webアプリケーションセキュリティは、Web アプリが直面する攻撃を理解し、設計・実装・運用の各段階で防御する分野です。書籍『ウェブアプリケーションセキュリティ 第2版』が扱う領域で、攻撃の仕組みを知った上で適切な対策を組み込むことが基本姿勢です。
代表的な脆弱性(OWASP Top 10 など)
| 脆弱性 | 概要 | 主な対策 |
|---|---|---|
| XSS(クロスサイトスクリプティング) | 悪意あるスクリプトの注入 | 出力エスケープ、CSP |
| SQLインジェクション | クエリへの不正な入力注入 | プレースホルダ(パラメータ化クエリ) |
| CSRF(クロスサイトリクエストフォージェリ) | 意図しないリクエストの強制 | CSRFトークン、SameSite Cookie |
| 認証・認可の不備 | なりすまし・権限昇格 | 適切なセッション管理、最小権限 |
| 機密データの露出 | 暗号化不足 | TLS、適切な暗号化と鍵管理 |
基本原則
- 入力は信頼しない(バリデーションとサニタイズ)
- 出力はコンテキストに応じてエスケープ
- 最小権限の原則
- 多層防御(Defense in Depth)
- セキュアな初期設定(Secure by Default)
サーバー設定の不備(事例)
アプリ本体だけでなく、Web サーバーの設定不備も大きな攻撃面です。Microsoft IIS を題材にした解説(“Humiliating IIS Servers”)では、次のような脆弱性が挙げられています。
- 情報漏洩 — IIS のエラー画面、ショートネーム列挙、HTTP ヘッダーからの内部 IP 開示
web.config露出と ViewState 偽造 — マシンキーが漏れるとセッション改ざん、最悪リモートコード実行(RCE)に至る- 拡張子フィルタのバイパス、パストラバーサル、クッキーレスセッション悪用による DLL 抽出
- なお記事タイトルの “for jail time” が示す通り、これらの調査・検証は 許可を得た範囲(ペネトレーションテスト)でのみ 行うべきもの。参考: Humiliating_IIS_Servers
LLM による脆弱性発見(防御的活用, Daily フィード)
Claude Opus を使ってソースコードの脆弱性を発見・修正する手順が公開されています。6ステップ=①脅威モデル構築(アーキ文書・CVE 履歴から信頼境界を明確化)②サンドボックス構築③脆弱性発見④独立エージェントによる検証⑤トリアージ⑥パッチ適用。Using_LLMs_to_Secure_Source_Code
- 脅威モデルの明確さが鍵 — 信頼境界が明確なら検出結果の約90%が実際に悪用可能
- 検証の分離 — 独立したエージェントで検証し誤検知を大幅削減(マルチエージェントシステム の検証者分離と同型)
- ボトルネックの転換 — 「発見」より「検証・トリアージ・パッチ」が真の課題に。AIコーディングアシスタント の防御的活用の一例(DevSecOps のシフトレフトに接続)
- 実例:curl のコード分析 — curl 作者 Daniel Stenberg が Anthropic の Mythos に curl(約17万8000行)の脆弱性を分析させ、結果をブログで公開。「パニックになるほど危険ではない」と評価。大規模 OSS でも LLM による網羅的なコード監査が実用段階にあることを示す一方、最終判断は人間が下している。curl作者がクローズドのMythosによる17万8000行のコード分析結果を公開
開発プロセスとの統合
セキュリティを開発の早い段階から組み込む考え方が DevSecOps です。物理的アクセスを前提とした攻撃の例として 自動車セキュリティ(Evil Valet)も参照。
関連ページ
参考資料
- ウェブアプリケーションセキュリティ 第2版
- OWASP Top 10
- Using_LLMs_to_Secure_Source_Code