Webアプリケーションセキュリティ診断の項目一覧|チェックすべき15のポイント
自社のWebアプリケーションやシステムに脆弱性がないか不安を感じている担当者の方は多いのではないでしょうか。セキュリティ診断を依頼する前に「どんな項目がチェックされるのか」「診断結果レポートの見方がわからない」といった悩みを抱えるケースは少なくありません。
自社のWebアプリケーションやシステムに脆弱性がないか不安を感じている担当者の方は多いのではないでしょうか。セキュリティ診断を依頼する前に「どんな項目がチェックされるのか」「診断結果レポートの見方がわからない」といった悩みを抱えるケースは少なくありません。この記事では、Webアプリケーションセキュリティ診断で実施される15の主要項目を重要度別に解説します。実際の被害事例や対策の優先順位も明示し、診断依頼前の準備や結果の読み解き方が理解できる内容となっています。
Webアプリケーションセキュリティ診断とは
Webアプリケーションセキュリティ診断は、開発したシステムやWebサービスに潜む脆弱性を発見し、サイバー攻撃のリスクを事前に低減するための診断サービスです。個人情報漏洩やサービス停止などの重大インシデントを防ぐために、多くの企業で導入が進んでいます。
診断の目的と実施タイミング
セキュリティ診断の主な目的は、攻撃者に悪用される前に脆弱性を発見・修正することです。実施タイミングは大きく2つに分かれます。
- 開発段階での診断:リリース前にコードレビューやテスト環境での診断を実施し、脆弱性を早期発見
- 運用後の定期診断:本番環境で定期的(年1-2回)に実施し、新たな脆弱性や設定ミスを検出
IPA(独立行政法人情報処理推進機構)の調査によると、Webサイトの約7割が何らかの脆弱性を抱えているとされており、定期的な診断の重要性が高まっています。
診断方法の種類(ツール診断/手動診断)
診断方法には大きく分けて自動ツール診断と手動診断の2種類があります。
- 自動ツール診断:専用ソフトウェアがWebアプリをスキャンし、既知の脆弱性パターンを自動検出。短時間・低コストで実施可能だが、検出範囲は限定的
- 手動診断:セキュリティエンジニアが実際にアプリを操作し、ビジネスロジックの欠陥や複雑な脆弱性を発見。精度は高いが時間とコストがかかる
多くの診断サービスでは、両者を組み合わせることで検出精度を高めています。自動ツールで広範囲をスキャンした後、重要な機能部分を手動で詳細にチェックする方法が一般的です。
診断結果の見方と優先度の考え方
診断結果レポートでは、発見された脆弱性が**CVSS(共通脆弱性評価システム)**というスコアで評価されます。CVSSは0.0-10.0のスケールで危険度を数値化し、以下のように分類されます。
| 重大度 | CVSSスコア | 対応優先度 |
|---|---|---|
| 緊急(Critical) | 9.0-10.0 | 即座に対応 |
| 高(High) | 7.0-8.9 | 1週間以内に対応 |
| 中(Medium) | 4.0-6.9 | 1ヶ月以内に対応 |
| 低(Low) | 0.1-3.9 | 計画的に対応 |
実際の対応では、スコアだけでなくビジネスへの影響度も考慮します。たとえば、個人情報を扱うシステムではCVSS 7.0でも最優先で対応すべきケースがあります。
【重要度:高】絶対チェックすべき診断項目5選
ここからは、OWASP Top 10(世界的に認知されているWebアプリケーション脆弱性リスクトップ10)にも含まれる、被害が深刻化しやすい5つの診断項目を解説します。これらは優先的に対策すべき項目です。
SQLインジェクション
SQLインジェクションは、データベースへの不正な命令を送り込む攻撃です。攻撃者が入力フォームなどに悪意のあるSQL文を入力することで、データベース内の全情報を窃取・改ざん・削除される危険性があります。
実例として、2023年にある企業のECサイトでSQLインジェクション攻撃により約10万件の顧客情報が流出した事件がありました。この攻撃では、ログイン画面の入力欄に不正なSQL文が挿入され、認証を迂回して管理者権限を取得されました。
- 主な被害:個人情報漏洩、データ改ざん、サービス停止
- 対策:プリペアドステートメントの使用、入力値の厳格なバリデーション
- CVSSスコア:通常9.0以上(緊急対応が必要)
クロスサイトスクリプティング(XSS)
XSSは、Webページに悪意のあるスクリプトを埋め込む攻撃です。ユーザーがそのページを閲覧すると、ブラウザ上でスクリプトが実行され、セッション情報の窃取やフィッシングサイトへの誘導が行われます。
IPAの「安全なウェブサイトの作り方」によると、XSSは依然として多くのWebサイトで検出される脆弱性の一つです。特に掲示板やコメント機能を持つサイトで発生しやすく、ユーザー入力をそのまま表示する実装に注意が必要です。
- 主な被害:セッションハイジャック、個人情報窃取、マルウェア配布
- 対策:HTMLエスケープ処理、Content Security Policy (CSP)の導入
- CVSSスコア:6.0-8.0(中〜高)
認証・セッション管理の不備
認証機能やセッション管理に欠陥があると、不正ログインやなりすましが可能になります。弱いパスワードポリシー・セッションIDの推測可能性・ログアウト後のセッション維持などが代表的な問題です。
実際の診断事例では、セッションIDがURLパラメータに含まれており、そのURLを第三者に共有するだけでアカウントが乗っ取られるケースが確認されています。
- 主な被害:アカウント乗っ取り、不正操作、個人情報閲覧
- 対策:二段階認証の導入、セッションIDの安全な管理、ログイン試行回数制限
- CVSSスコア:7.0-9.0(高〜緊急)
OSコマンドインジェクション
OSコマンドインジェクションは、Webアプリ経由でサーバーのOS命令を不正実行する攻撃です。ファイルアップロード機能や画像処理機能など、サーバー側でコマンドを実行する箇所が狙われます。
この脆弱性が悪用されると、サーバー内のファイル削除・マルウェア設置・他システムへの攻撃の踏み台化など、深刻な被害につながります。OWASP Top 10でも高リスク項目として位置付けられています。
- 主な被害:サーバー乗っ取り、データ全消去、踏み台攻撃
- 対策:外部コマンド実行の回避、入力値の厳格なフィルタリング
- CVSSスコア:9.0以上(緊急)
ディレクトリトラバーサル
ディレクトリトラバーサルは、本来アクセスできないサーバー上のファイルを閲覧・取得する攻撃です。ファイルパスの指定に「../」などの相対パス記号を悪用し、設定ファイルやパスワードファイルにアクセスされます。
実例として、あるWebアプリでファイルダウンロード機能のパラメータ検証が不十分だったため、「../../../../etc/passwd」といったパスを指定することでサーバーのユーザー情報ファイルが漏洩したケースがあります。
- 主な被害:機密ファイル漏洩、設定情報の窃取、更なる攻撃の足がかり
- 対策:ファイルパスのホワイトリスト化、相対パス記号の無効化
- CVSSスコア:7.0-8.5(高)
【重要度:中】業務影響が大きい診断項目5選
次に、即座にシステム全体が停止するリスクは低いものの、業務への影響が大きい5つの項目を紹介します。これらも中期的な対策計画に含めるべき重要項目です。
クロスサイトリクエストフォージェリ(CSRF)
CSRFは、ユーザーの意図しない操作を強制的に実行させる攻撃です。ログイン中のユーザーが罠サイトを閲覧すると、そのサイトから正規サイトへリクエストが送信され、パスワード変更・商品購入・退会処理などが勝手に実行されます。
IPAの脆弱性届出状況によると、CSRFは依然として多くのWebサービスで検出されており、特にワンクリックで実行できる重要操作(送金・データ削除など)を持つサイトでは優先的な対策が必要です。
- 主な被害:意図しない操作の実行、データ改ざん、金銭的被害
- 対策:CSRFトークンの実装、Refererヘッダのチェック
- CVSSスコア:5.0-7.0(中〜高)
安全でないデシリアライゼーション
デシリアライゼーション(直列化データの復元)処理に脆弱性があると、任意のコード実行やデータ改ざんが可能になります。JavaやPHP、Pythonなどでオブジェクトをシリアライズして保存・送信する際に発生します。
この脆弱性は検出が難しく、自動ツールでは見逃されやすい項目です。手動診断で確認することが推奨されます。
- 主な被害:リモートコード実行、権限昇格、データ改ざん
- 対策:信頼できないデータのデシリアライゼーション禁止、整合性チェックの実装
- CVSSスコア:8.0-9.0(高〜緊急)
不適切なアクセス制御
アクセス制御の不備により、権限のないユーザーが管理画面や他人のデータにアクセスできる脆弱性です。URLの直接入力やパラメータ改ざんで本来見られない情報が閲覧できるケースが該当します。
実際の診断では、一般ユーザーがURLに「/admin」を追加するだけで管理画面にアクセスできた事例や、ユーザーIDをパラメータで指定することで他人の個人情報が閲覧できた事例が複数確認されています。
- 主な被害:権限昇格、個人情報漏洩、不正な設定変更
- 対策:すべてのリクエストで権限チェック、IDベースの直接参照禁止
- CVSSスコア:6.0-8.0(中〜高)
セキュリティ設定ミス
サーバーやアプリケーションの設定不備により、攻撃の糸口となる情報が露出する脆弱性です。デフォルトパスワードの放置・不要なサービスの稼働・エラーメッセージでのサーバー情報漏洩などが該当します。
OWASP Top 10の2021年版では、セキュリティ設定ミスが上位にランクインしており、基本的な設定確認の重要性が強調されています。
- 主な被害:サーバー情報の露出、不正アクセスの足がかり、更なる攻撃への発展
- 対策:デフォルト設定の変更、不要機能の無効化、エラーメッセージの適切化
- CVSSスコア:5.0-7.0(中〜高)
脆弱なコンポーネント利用
既知の脆弱性を持つライブラリ・フレームワーク・OSS(オープンソースソフトウェア)を使用していると、その脆弱性を突かれる危険性があります。Apache Struts2やWordPressプラグインの脆弱性が有名です。
特に開発終了から時間が経ったライブラリは、脆弱性が発見されても修正されないため、使用し続けることで攻撃リスクが高まります。定期的な棚卸しとアップデートが必要です。
- 主な被害:既知の攻撃手法による侵入、データ漏洩、サービス停止
- 対策:使用コンポーネントの定期確認、脆弱性情報の監視、速やかなアップデート
- CVSSスコア:6.0-9.0(中〜緊急、脆弱性による)
【重要度:中低】見落としがちな診断項目5選
最後に、直接的な被害は限定的ながら、放置すると他の攻撃の足がかりとなる5つの項目を解説します。包括的なセキュリティ対策には、これらの項目も含めることが推奨されます。
HTTPヘッダインジェクション
HTTPヘッダに不正な値を挿入し、レスポンスを改ざんする攻撃です。セッション固定化やキャッシュポイズニングなど、他の攻撃と組み合わせることで被害が拡大します。
入力値をそのままHTTPヘッダに設定する実装(リダイレクト先の指定など)で発生しやすく、改行コード(\r\n)の注入により任意のヘッダを追加される危険性があります。
- 主な被害:レスポンス改ざん、セッション固定化攻撃、フィッシング誘導
- 対策:改行コードの除去、ヘッダ値の厳格な検証
- CVSSスコア:4.0-6.0(中)
オープンリダイレクト
外部サイトへのリダイレクト処理に不備があり、フィッシングサイトへの誘導に悪用される脆弱性です。正規サイトのURLを経由するため、ユーザーが信頼して偽サイトにアクセスしてしまう危険性があります。
実例として、ECサイトのログイン後のリダイレクト先をパラメータで指定できる実装で、攻撃者が偽の商品購入ページに誘導し、クレジットカード情報を窃取したケースがあります。
- 主な被害:フィッシング詐欺への悪用、ブランドイメージ低下
- 対策:リダイレクト先のホワイトリスト化、外部サイトへの遷移時の警告表示
- CVSSスコア:4.0-5.5(中)
不十分なロギング・監視
攻撃や不正アクセスのログが適切に記録・監視されていないと、インシデント発生時の発見が遅れ、被害が拡大します。ログの記録漏れ・保存期間の短さ・アラート設定の不備が該当します。
IPAのインシデント対応ガイドラインでも、ログの重要性が強調されており、攻撃の検知から初動対応までの時間短縮にログ分析が不可欠とされています。
- 主な被害:攻撃の検知遅延、原因究明の困難化、再発防止策の立案遅れ
- 対策:包括的なログ記録、定期的なログ分析、異常検知システムの導入
- CVSSスコア:直接的な数値化困難(対応優先度は中)
XXE攻撃(XML外部実体参照)
XML処理の脆弱性を突き、サーバー内のファイル読み取りや内部ネットワークへのアクセスを可能にする攻撃です。XML形式のデータをアップロード・送信する機能で発生します。
この攻撃では、XMLパーサーの外部実体参照機能を悪用し、「/etc/passwd」などのシステムファイルを読み取られたり、内部ネットワークのポートスキャンを実行されたりします。
- 主な被害:機密ファイル漏洩、内部ネットワーク情報の取得、DoS攻撃
- 対策:XMLパーサーの外部実体参照無効化、DTDの使用禁止
- CVSSスコア:6.0-8.0(中〜高)
DDoS攻撃耐性
大量のリクエストを送りつけサーバーを過負荷状態にするDDoS攻撃への耐性です。診断では、アプリケーションレベルでのレート制限やリソース消費の監視が評価されます。
DDoS攻撃自体はネットワーク層での対策(CDN・WAFの導入)が主ですが、アプリケーション側でもリクエスト制限・セッション管理・リソース管理の適切化が重要です。
- 主な被害:サービス停止、ビジネス機会損失、対応コストの発生
- 対策:レート制限の実装、CDN・WAFの導入、負荷分散の最適化
- CVSSスコア:直接的な数値化困難(対応優先度は業種により変動)
まとめ
この記事では、Webアプリケーションセキュリティ診断で確認される15の主要項目を重要度別に解説しました。重要なポイントは以下の3つです。
- 重要度の高い5項目は最優先で対策:SQLインジェクション・XSS・認証不備・OSコマンドインジェクション・ディレクトリトラバーサルは、個人情報漏洩やシステム乗っ取りに直結するため即座の対応が必要です
- 診断は定期的な実施が重要:新たな脆弱性は日々発見されており、年1-2回の定期診断で最新のリスクに対応することが推奨されます
- 診断結果を放置せず確実に対策:診断レポートを受け取っても対策を実施しなければ意味がありません。CVSSスコアとビジネス影響度を考慮し、優先順位をつけて計画的に修正を進めましょう
中小企業でも最低限、重要度の高い5項目については必ず診断・対策を実施することをおすすめします。セキュリティ診断は一度実施すれば終わりではなく、継続的な取り組みが企業とユーザーを守る鍵となります。
関連記事
管理画面のセキュリティ診断で重点的に確認すべき7つのポイント
自社のWebシステムや業務アプリケーションの管理画面に、知らないうちに脆弱性が潜んでいたらどうでしょうか。管理画面は企業の重要データや顧客情報にアクセスできる「システムの心臓部」であり、攻撃者にとって最も魅力的なターゲットです。
Androidアプリのセキュリティ診断方法|モバイルアプリの脆弱性チェック
「開発ベンダーからセキュリティ対策済みと言われたが、本当に大丈夫なのだろうか」「アプリストア公開前に、何をどこまでチェックすればいいのか」このような不安を抱えている企業担当者の方は多いのではないでしょうか。
APIセキュリティ診断の12のチェックポイント|REST API保護の必須項目
近年、API経由のセキュリティインシデントが急増しています。Gartner社の調査によると、2023年時点でWebアプリケーション攻撃の83%がAPIを標的としており、2019年の約2倍に増加しました。