OWASP Top 10は、Open Worldwide Application Security Projectが公開している、Webアプリケーションのセキュリティリスクのうち特に重要なカテゴリーをまとめた、広く参照されているリストです。大企業はセキュアな開発プログラムの策定に活用していますが、顧客ポータル、オンラインショップ、SaaS製品を運営する中小企業にとっても同様に有用です。本ガイドでは、各カテゴリーを、中小企業が自社のアプリケーションやサプライヤーに投げかけられる平易な質問に置き換えて説明します。
何であるのか
Top 10は意識向上のための文書であり、チームがWebアプリケーションで最も一般的なリスクに集中するのに役立ちます。各カテゴリーは関連する弱点をまとめたものです。2021年版に代わる現行の2025年版は、次の項目を扱っています。アクセス制御の不備(サーバーサイドリクエストフォージェリも含むようになりました)、セキュリティの設定ミス、ソフトウェアサプライチェーンの不備、暗号化の不備、インジェクション、安全でない設計、認証の不備、ソフトウェアまたはデータの整合性の不備、ログ記録とアラートの不備、そして例外的な状況の不適切な処理です。多くの質問票や契約では今も2021年版が参照されているため、要件を設定する際は、顧客やパートナーがどの版を想定しているかを確認してください。中小企業にとっての価値は、リストを暗記することよりも、質問のチェックリストとして活用することにあります。誰が何を見られるのか、パスワードとセッションはどう扱われているか、どのコンポーネントが古いのか、そして進行中の攻撃に誰かが気づけるのか、といった問いです。
誰のために
このチェックリストは次のような方を対象としています。
- 顧客向けのWebアプリケーション、ポータル、オンラインショップを運営する中小企業
- 制作会社やフリーランスに開発を委託し、的確な質問をする必要がある創業者やマネージャー
- 専任のセキュリティ担当者がいない小規模な社内チーム
- OWASPに言及した顧客のセキュリティ質問票への回答を準備している企業
明確にするのに役立つこと
各カテゴリーを順に確認することで、次の点が明確になります。
- ユーザーが自身のロールで許可されたデータだけを閲覧・変更できるか
- どのサードパーティのライブラリ、プラグイン、フレームワークが古いか、または保守されていないか
- 設定、シークレット、エラーメッセージが必要以上の情報を露出していないか
- ログ記録によって不審な活動に気づき、調査できるか
含まれる内容
- アクセス制御:URLやリクエスト内のIDを変更することで、ユーザーが他の顧客の記録を閲覧・編集できないことをテストし、アプリケーションに呼び出させることができる内部・外部のアドレスを制限する
- 暗号化:全ページでのHTTPS、最新のTLS、パスワードが強力なハッシュアルゴリズムで保存されていることを確認する
- インジェクション:入力値が検証され、データベースクエリがパラメータ化されていることを確認する
- 設計:パスワードリセット、決済、返金などの重要なワークフローがどう動作すべきかを、悪用ケースも含めて文書化する
- 設定ミス:デフォルトアカウントを削除し、デバッグ出力を無効にし、セキュリティヘッダーを見直す
- サプライチェーン:ライブラリ、プラグイン、ビルドツールの一覧を管理し、定めた周期でパッチを適用し、保守されていないコンポーネントを削除する
- 認証:管理者に多要素認証を提供し、ログイン試行の繰り返しを制限する
- 整合性:ビルドおよびデプロイのパイプラインを保護し、更新が信頼できる提供元からのものかを検証する
- ログ記録とアラート:ログイン、権限変更、管理操作を記録し、アラートが確認担当者に届くようにする
- 例外的な状況:エラー、タイムアウト、想定外の入力が、スタックトレースを露出したりセキュリティチェックを飛ばしたりすることなく、安全に失敗するようにする
含まれていないもの
- Top 10に対応すればアプリケーションが安全になるという記述(より広い網羅に向けた有用な出発点です)
- 認証や正式なコンプライアンス上の承認
- 段階的な悪用手法
- 社内ネットワークや物理的セキュリティなど、Webアプリケーション以外のリスク
それを選ぶべきとき
新機能の計画時、開発サプライヤーの選定・受け入れ時、そしてリリースや大型アップデートの前に、このチェックリストを活用してください。「分からない」という回答がいくつもある場合は、推測に頼るのではなく、独立したレビューを依頼すべきサインです。顧客やパートナーからOWASPに沿ったテストの証跡を求められた場合、通常は自己評価よりも、文書化されたアプリケーションセキュリティレビューやペネトレーションテストの方が説得力を持ちます。
私たちのアプローチ
まずはアクセス制御と認証から始めてください。業務アプリケーションで深刻な問題が見つかることが多い領域だからです。開発者やサプライヤーに、各ロールが画面上で隠されているだけでなく、サーバー側でどのように強制されているかを説明してもらってください。次に、コンポーネントを一覧化し、更新の手順を合意します。シークレットがコードリポジトリに保存されていないこと、エラーページにスタックトレースが表示されないことを確認してください。独立した視点が必要な場合、当社のApplication Security Reviewは、合意したWebアプリケーションとAPIを、OWASPのカテゴリーを含む一般的なアプリケーションリスクに照らして検証し、深刻度別の指摘事項と是正ガイダンスを提供します。主な懸念がCMSベースのWebサイトであれば、Webサイトのハードニングの方が規模に見合った対策となる場合があります。どれを選ぶにしても、セキュリティをリリース前の一度きりの作業として扱うのではなく、チェックリストをリリースプロセスに組み込み、変更のたびに照らし合わせて検討してください。
よくある質問
関連記事
始めよう
Webアプリケーションを独立した視点で確認しませんか?
アプリケーション、ユーザーロール、予定しているリリースや顧客からの要望についてお知らせください。スコープを定めたレビューをご提案します。
書面のスコープを依頼する