OWASP Top 10とWebセキュリティの基本


## 1. OWASP Top 10の概要と最新動向（2025年版）

OWASP Top 10は、Webアプリケーションにおける最も重要なセキュリティリスクをまとめたものである。2024年11月18日に公開された2025年版では、従来のWebアプリケーションリスクに加え、LLMアプリケーションのセキュリティリスクも包括的に扱っている。毎年更新される形式となり、数百人の専門家による貢献のもと作成されている[^1]。

## 2. 主要な脆弱性と実践的な対策

- **インジェクション攻撃とプロンプトインジェクション**[^5]
    - SQLインジェクション、OSコマンドインジェクション、LLMプロンプトインジェクション等の不正な実行
    - 対策：プリペアドステートメント、入力値の厳格な検証、プロンプトサニタイズ
- **認証とセッション管理の不備**[^5]
    - パスワード管理の脆弱性、セッションハイジャック、ゼロトラスト違反
    - 対策：多要素認証、セッションタイムアウト、ゼロトラストアーキテクチャの採用[^2]
- **機密情報の露出とデータ漏洩**[^5]
    - 個人情報や認証情報の漏洩、AI/MLモデルからの機密情報抽出
    - 対策：強力な暗号化、HTTPS強制、AI/ML異常検知の導入[^2]
- **LLMモデルセキュリティ**[^6]
    - モデル汚染、敵対的攻撃、トレーニングデータ漏洩
    - 対策：モデルの定期的な評価、入力検証、出力フィルタリング
- **アクセス制御とRAGシステムセキュリティ**[^5]
    - 認可チェックの不足、RAGシステムでの不適切なデータアクセス
    - 対策：ロールベースアクセス制御、文書アクセス制御の強化
- **セキュリティ設定とインフラストラクチャ**[^5]
    - クラウドセキュリティの設定ミス、コンテナ環境の脆弱性
    - 対策：セキュリティヘッダの適切な設定、コンテナスキャン、最小権限の原則
- **Web3とスマートコントラクトの脆弱性**[^3]
    - スマートコントラクトの実装バグ、ブロックチェーン関連の攻撃
    - 対策：コード監査、形式検証、セキュリティテスト

## 3. 実装例（Rails + LLM統合）

```ruby
# SQLインジェクション対策
def safe_find_user
  User.where("name = ?", params[:name])  # パラメータバインディング
end

# LLMプロンプトインジェクション対策
def sanitize_prompt(input)
  # プロンプトのサニタイズ処理
  sanitized = masking_sensitive(scrub_sensitive(input))
  validate_prompt(sanitized)
  sanitized
end

# XSS対策とCSP
def show
  @content = h(params[:content])  # HTMLエスケープ
  response.headers['Content-Security-Policy'] = "default-src 'self'"
end

# セキュアなセッション設定
config.force_ssl = true  # HTTPS強制
config.session_store :cookie_store, expire_after: 12.hours
```

## 4. 包括的なセキュリティテスト戦略

- **自動化セキュリティテスト**
    - OWASP ZAP/Burp Suiteによる脆弱性スキャン
    - AI/ML支援による異常検知と脆弱性評価
    - 依存関係の脆弱性チェック（OWASP Dependency-Check）
- **手動セキュリティテスト**[^5]
    - 定期的なペネトレーションテスト
    - LLMアプリケーション特有の脆弱性診断
    - セキュリティに焦点を当てたコードレビュー

## 参照

[^1] [https://citadel-ai.com/ja/blog/2024/11/25/owasp-llm-2025/](https://citadel-ai.com/ja/blog/2024/11/25/owasp-llm-2025/)
[^2] [https://mattock.jp/blog/vietnam-offshore-development/web-security-development-zero-trust-implementation-guide/](https://mattock.jp/blog/vietnam-offshore-development/web-security-development-zero-trust-implementation-guide/)
[^3] [https://iototsecnews.jp/2025/01/20/owasp-unveils-top-10-smart-contract-vulnerabilities-for-2025/](https://iototsecnews.jp/2025/01/20/owasp-unveils-top-10-smart-contract-vulnerabilities-for-2025/)
[^4] [https://blog.scalefusion.com/ja/サイバーセキュリティのベストプラクティス/](https://blog.scalefusion.com/ja/%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9/)
[^5] [https://qiita.com/akiraokusawa/items/dcadb724e067233db569](https://qiita.com/akiraokusawa/items/dcadb724e067233db569)
[^6] [https://azure-recipe.kc-cloud.jp/owasp_llm_top10/](https://azure-recipe.kc-cloud.jp/owasp_llm_top10/)
[^7] [https://saycon.co.jp/archives/neta/webアプリケーション開発のための情報セキュリテ](https://saycon.co.jp/archives/neta/web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86)
[^8] [https://aws.amazon.com/jp/blogs/news/secure-gen-ai-applications-on-aws-refer-to-owasp-top-10-for-llm-applications/](https://aws.amazon.com/jp/blogs/news/secure-gen-ai-applications-on-aws-refer-to-owasp-top-10-for-llm-applications/)