Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OWASP Top 10 に関するドキュメント

Avatar for Meme Meme
March 15, 2025
18

OWASP Top 10 に関するドキュメント

OWASP Top 10 に関するドキュメント

Avatar for Meme

Meme

March 15, 2025

Transcript

  1. OWASP Top 10脆弱性の概要 OWASP (Open Web Application Security Project )は、Web

    アプリケーションのセキュリティリスクを評価し、 最も重要な脆弱性をリスト化しています。2025 年版のOWASP Top 10 には、以下の脆弱性が含まれています。 破損したアクセス制御 1 暗号化の失敗 2 インジェクション 3 安全でない設計 4 セキュリティ構成の誤り 5 脆弱で古いコンポーネント 6 識別と認証の失敗 7 ソフトウェアとデータの整合性の失敗 8 セキュリティロギングと監視の失敗 9 サーバーサイドリクエストフォージェリ 10
  2. 1. 破損したアクセス制御 対策 • ロールベースのアクセス制御を適切に実装する • 開発段階で脆弱性をテストする • デフォルトで「拒否」の原則を適用する •

    JWT トークンを安全に管理する • セッション管理を適切に行う 問題点 不適切なアクセス制御により、攻撃者が機密データにアクセスできる 可能性があります。 具体例 ユーザーが他のユーザーのデータにアクセスできる場合があります。 URL を直接操作することで、権限のないリソースにアクセスできてし まいます。
  3. 2. 暗号化の失敗 対策 • 最新の暗号化標準(AES 256 など)を使用する • 秘密鍵をコードにハードコーディングしない •

    パスワードはbcrypt などで適切にハッシュ化する • 転送中のデータはTLS で保護する • 環境変数を使用して機密情報を管理する 問題点 古い暗号化アルゴリズムや不適切な実装は、機密データの漏洩につな がります。 具体例 パスワードを平文で保存することは避けるべきです。また、安全でな い暗号化アルゴリズム(MD5 など)の使用や、ハードコードされた暗 号鍵の使用も危険です。
  4. 3. インジェクション 対策 • パラメータ化されたクエリを使用する • ORM を活用してSQL インジェクションを防ぐ •

    ユーザー入力を検証する • 特殊文字をエスケープする • 最小権限の原則に従う 問題点 SQL インジェクションやコマンドインジェクションは、適切にサニタ イズされていない入力データを悪用して悪意のあるコードを実行しま す。 具体例 ユーザーが入力したデータをそのままSQL クエリに使用すると、攻撃 者がデータベースに不正アクセスできる可能性があります。
  5. 4-6. その他の主要な脆弱性 4. 安全でない設計 セキュリティを考慮しない設計は、後か ら修正するのが難しくなります。 対策: • セキュアな設計原則を初期段階から採 用

    • 脅威モデリングを実施 • セキュリティチームを計画段階に関与 5. セキュリティ構成の誤り 誤って構成されたサーバーやアプリケー ションは、攻撃者にとって容易な標的と なります。 対策: • デフォルト設定を変更する • 不要なサービスを無効化 • 自動化ツールで設定ミスをスキャン • セキュリティヘッダーを適切に設定 6. 脆弱で古いコンポーネント 古いソフトウェアやパッチが適用されて いないライブラリの使用は、セキュリテ ィリスクを高めます。 対策: • ソフトウェアと依存関係を最新の状態 に保つ • 不要なコンポーネントを削除 • Dependency Check などのツールで脆 弱性を監視 • パッチ管理プロセスを確立
  6. 7-10. その他の主要な脆弱性 7. 識別と認証の失敗 脆弱なログインメカニズム は、重大な侵害につながる可 能性があります。 対策: • 多要素認証を実装する

    • 強力なパスワードポリシー を使用 • アカウントロックアウトを 実装 • セッション管理を適切に行 う 8. ソフトウェアとデータの整 合性の失敗 署名されていないソフトウェ アアップデートや安全でない CI/CD パイプラインは、悪意 のある改ざんのリスクを高め ます。 対策: • ソフトウェアアップデート が署名されていることを確認 • パイプラインの整合性を検 証 • SRI (Subresource Integrity )を使用 • 信頼できるソースからのみ ソフトウェアを入手 9. セキュリティロギングと監 視の失敗 適切なロギングと監視がない と、攻撃の検出と対応が困難 になります。 対策: • SIEM ソリューションなどの ツールを導入 • ログを定期的に確認 • 不審なアクティビティを監 視 • インシデント対応計画を策 定 10. サーバーサイドリクエス トフォージェリ 攻撃者がサーバーを騙して悪 意のあるリソースを取得させ る可能性があります。 対策: • 受信URL をすべて検証 • サーバーからのアウトバウ ンドネットワークアクセスを 制限 • ホワイトリストを使用 • レスポンスをフィルタリン グ
  7. 個人開発者が実践すべきセキュリティ対策 1. 基本的なセキュリティ対策 • 強力なパスワードハッシュ化(bcrypt ) • HTTPS/TLS の使用 •

    入力検証とサニタイゼーション • CSRF トークンの実装 2. 依存関係の管理 • 定期的な依存関係の更新 • npm audit などのツールの活用 • 不要なパッケージの削除 3. 環境変数の適切な管理 • .env ファイルをgitignore に追加 • 本番環境の機密情報を安全に管理 • 環境ごとに適切な設定を行う 4. セキュリティテスト • OWASP ZAP などの無料ツールの活用 • 定期的な脆弱性スキャン • ペネトレーションテストの実施 5. セキュリティヘッダーの設定 • Content-Security-Policy • X-XSS-Protection • X-Content-Type-Options • Strict-Transport-Security 6. 継続的な学習 • セキュリティブログやニュースの購読 • OWASP コミュニティへの参加 • セキュリティ関連の書籍やコースの活用
  8. まとめ OWASP Top 10 は、Web アプリケーションのセキュリティリスクを理解し、対策を講じるための重要なガイドです。個人開発者は、これ らの脆弱性を理解し、実践的な対策を講じることで、より安全なアプリケーションを開発することができます。 セキュリティは開発プロセス の最初から考慮すべき重要な 要素です。後から対応するよ

    りも、設計段階から組み込む ことが効果的です。 セキュリティの脅威は常に進 化しています。最新の脆弱性 や対策について継続的に学 び、アプリケーションを更新 することが重要です。 セキュリティスキャナーやコ ード分析ツールを活用して、 脆弱性を早期に発見し、対策 を講じましょう。 セキュリティコミュニティに 参加し、知識を共有すること で、より安全なアプリケーシ ョンを開発する力を身につけ ることができます。 セキュリティは後付け ではなく設計から 継続的な学習と更新 ツールの活用 コミュニティの活用
  9. 参考情報 その他の学習リソース • OWASP Cheat Sheet Series: https://cheatsheetseries.owasp.org/ • OWASP

    WebGoat: 脆弱性を学ぶための練習アプリケーション • OWASP ZAP: 無料のセキュリティスキャナー • セキュリティ関連のオンラインコース(Udemy, Coursera, edX など) 公式サイト OWASP 公式サイト https://owasp.org 書籍 セキュリティに関する書籍 「Web セキュリティの基本」など 動画 YouTube 動画 OWASP Top 10 Vulnerabilities Every Hacker Must Know In 2025