多くの企業がWebアプリケーションを運用している昨今、「Webアプリケーション診断」の重要性が高まっています。「Webアプリケーション診断」とはWebアプリケーションに脆弱性(セキュリティ上の弱み)がないか診断する脆弱性診断の一種です。
しかし、どのような項目を診断するのか、どのように診断を進めていくのかなど、不明点を抱える方も多いのではないでしょうか。
そこで今回は、Webアプリケーション診断とは何か、基本からわかりやすく解説します。
Webアプリケーション診断の重要性や実施方法についてもお伝えするため、ぜひ参考にしてください。
- もくじ
1.Webアプリケーション診断とは
Webアプリケーション診断とは、Webアプリケーションに脆弱性(セキュリティ上の弱み)がないか診断することです。プログラムコードや設定ファイルの内容を精査したり、ときには疑似的な攻撃・侵入を試行したりすることで、脆弱性を検出します。
Webアプリケーションに潜む脆弱性は、サイバー攻撃者にとって格好のターゲットとなります。脆弱性を放置したためにシステム内部への不正な侵入を許し、情報漏えいやウイルス感染といった被害を受けるケースは少なくありません。
こうしたサイバー攻撃の被害を防ぐために、重要となるのがWebアプリケーション診断です。Webアプリケーションの脆弱性を漏れなく検出することで、サイバー攻撃に対して効果的な対策が可能となります。
なお、Webアプリケーション診断は「脆弱性診断」の一種です。脆弱性診断とは何かを詳しく知りたい方は、次の記事をご覧ください。
プラットフォーム診断との違い
Webアプリケーション診断と混同されやすい言葉に「プラットフォーム診断」があります。
プラットフォーム診断とは、アプリケーションを稼働させるための土台となるプラットフォームの脆弱性を診断することです。Webアプリケーション診断は主にWebアプリケーション自体を診断しますが、プラットフォーム診断はその土台が主な診断対象となります。
それぞれの具体的な診断対象を下表にまとめました。
Webアプリケーション診断 | プラットフォーム診断 |
---|---|
|
|
ただし、どちらの言葉も明確な定義があるわけではないため、診断サービスによって解釈は変わる場合があります。たとえば、Webアプリケーション診断にOSやデータベースなどのプラットフォーム要素が含まれるケースも考えられます。大まかな違いを押さえておきましょう。
2.Webアプリケーション診断が重要な理由
Webアプリケーション診断の重要性は高まっています。なぜWebアプリケーション診断が重要なのか、その理由について見ていきましょう。
2-1 サイバー攻撃の件数が増えている
サイバー攻撃の件数は増加傾向にあり、より堅牢なセキュリティ対策が必要です。
総務省「令和5年版 情報通信白書」によれば、サイバー攻撃に関連する通信数は2015年からわずか7年で8倍以上にも増大しています。昨今ではAI(人工知能)を悪用したサイバー攻撃の手口も増えており、さらに増加しても不思議ではありません。
ユーザーとのネットワーク通信を前提とするWebアプリケーションも、当然ながらこうした脅威の矛先となり得ます。増えていくサイバー攻撃のリスクに対処するために、Webアプリケーション診断はいっそう重要となるでしょう。
2-2 Webアプリケーションは標的にされやすい
Webアプリケーションは、サイバー攻撃の標的にされやすいといえます。インターネット上で公開されるWebアプリケーションは、基本的に世界中からアクセスが可能です。
サイバー攻撃者が容易にアクセスできるため、攻撃を企てやすいのです。
インターネットにさえ接続できれば、パソコンはもちろんモバイル端末からでもサイバー攻撃は可能です。パソコンとモバイル端末を併用するサイバー攻撃も考えられます。標的となりやすいWebアプリケーションの脆弱性は、確実に検出・対策すべきです。
2-3 被害が大きくなりやすい
Webアプリケーションがサイバー攻撃を受けると、被害が大きくなりやすいといえます。
世界中のユーザーと接点を持てる性質上、多くのユーザーに被害が及ぶケースが少なくありません。事実、十万人単位のユーザー情報が漏えいした国内の事例が複数あります。
たとえば、Webアプリケーションが管理している機密情報を盗み取られ、闇サイトなどを介して競合他社に漏えいしたり、犯罪組織に悪用されたりするケースも考えられます。そうなれば、多くのユーザーに「危険なサービス」の烙印を押されてしまい、Webアプリケーションの信頼失墜は避けられません。
このような被害を防ぐためには、Webアプリケーション診断により効果的なセキュリティ対策を行うことが重要です。
3.Webアプリケーション診断の主な診断項目
具体的に、どのような項目を診断するのか疑問を抱える方は多いでしょう。ここでは、Webアプリケーション診断の主な診断項目を紹介します。
3-1 入出力
入出力は、ユーザーの入力データを受け取ったり、ユーザーへの出力データを生成したりする処理のことです。ユーザーと接点を持つ部分のため、脆弱性があると被害がユーザーへ及びやすくなります。
Webアプリケーション診断では、不正なデータが入力されても問題を起こさないか、不正なデータを出力しないかなどを診断します。具体的には、次のようなサイバー攻撃に関する脆弱性を検出可能です。
サイバー攻撃名 | 概要 |
---|---|
SQLインジェクション | データベース操作に用いる「SQL」に不正な文字列を注入し、本来の意図とは異なるSQL文と解釈させ、不正なデータベース操作を行わせる |
OSコマンドインジェクション | OSを操作する「OSコマンド」に不正な文字列を注入し、本来の意図とは異なるOSコマンドと解釈させ、サーバーを不正に操作する |
クロスサイトスクリプティング(XSS) | Webアプリケーションにおける入出力処理の不備を突いて不正なプログラムを埋め込み、ユーザーに実行させる |
クロスサイトリクエストフォージェリ(CSRF) | ユーザーがログインしているWebアプリケーションのセッション情報を悪用してリクエストを偽造し、当該ユーザーに送信させる |
3-2 認証・認可
認証は「ユーザーの正当性を確認すること」、認可は「ユーザーごとに適切な権限を与えること」です。
認証機能に脆弱性があると、ログイン認証などを不正に突破される恐れがあります。認可機能に脆弱性があると、本来許可されない機能や操作を用いられかねません。
認証・認可におけるWebアプリケーション診断の診断項目例は、次のとおりです。ただし、必ずしも全項目が実施されるとは限らず、具体的な診断内容はサービスによります。
診断項目 | 診断内容の例 |
---|---|
認証情報の扱い | パスワードなどの認証情報が暗号化されているか/意図せずに公開されるリスクはないか/パスワードの強度基準や発行プロセスに問題はないか |
アカウントロック | ログインの失敗回数に応じたアカウントロックが行われているか |
ログイン・ログアウト | ログイン者の権限に応じた機能や操作のみが許容されるか/ログアウト後に機能や操作の制限が適切にかかるか |
エラーメッセージ | ログイン失敗時などのエラーメッセージで認証情報を推測されないか |
3-3 セッション管理
セッションは、Webアプリケーションのサーバー側でユーザーとのやり取りやデータを管理する仕組みのことです。セッション管理に脆弱性があると、ユーザー情報の不正取得や、他ユーザーへのなりすましといったリスクが増大します。
セッション管理におけるWebアプリケーション診断の診断項目例は、次のとおりです。ただし、必ずしも全項目が実施されるとは限らず、具体的な診断内容はサービスによります。
診断項目 | 診断内容の例 |
---|---|
セッションの有効期限 | セッションの有効期限は長すぎないか |
セッションIDの妥当性 | セッションを識別するセッションIDが予測されやすいものでないか |
セッションハイジャック対策 | 他人のセッションを乗っ取る「セッションハイジャック」への対策が施されているか(例:セッションIDを暗号化して盗聴されにくくしているか) |
4.Webアプリケーション診断の実施方法
Webアプリケーション診断の実施方法は、大まかに「手動」「ツール」の2種類あります。それぞれ、詳しく見ていきましょう。
4-1 手動による診断
手動による診断では、セキュリティの専門家が手作業でWebアプリケーションを診断します。
専門家が疑似攻撃時の挙動をチェックするなどの診断を行うことで、Webアプリケーションの脆弱性を見つけ出します。
脆弱性診断に熟練したプロが診断するため、基本的に信頼性は高いでしょう。ただし、人力で多くの診断項目をチェックするために、手間やコストがかかりやすいのがデメリットです。
4-2 ツールによる診断
ツールによる診断では、脆弱性診断ツールなどを用いて機械的にWebアプリケーションを診断します。
ツールで不正な入力データを送って疑似攻撃を試行する、などの方法により診断を行います。
機械的に診断を実施するため、手動での診断と比べて手間やコストを抑えやすいでしょう。ただし、脆弱性診断ツールによっては精度が低かったり、診断項目が限られたりするケースもあります。
手動による診断・ツールによる診断には、それぞれメリット、デメリットがあります。それらを把握した上で診断を行いましょう。
5.Webアプリケーション診断の大まかな流れ
Webアプリケーション診断の大まかな流れは、次の3ステップです。それぞれ詳しく見ていきましょう。
5-1 診断計画の策定
まずは、Webアプリケーションの診断計画を策定します。Webアプリケーション診断には、コストや人材、時間が不可欠です。診断計画をしっかり立てずに進めると、実施途中でリソースが確保できないといった問題が生じてしまいます。
診断対象や診断方法、予算、担当者などを明確にし、Webアプリケーション診断の実施スケジュールを立てましょう。なおWebアプリケーション診断を外部の企業に依頼する場合は、専門家に要望を伝えて適切な診断方法などのアドバイスをもらうことが可能です。
5-2 診断の実施
次に、診断計画に沿ってWebアプリケーション診断を実施します。実際に疑似攻撃の試行や挙動の検証などを行うステップです。各診断項目と実態を照らし合わせ、脆弱性がないかを見つけ出します。
なお外部の企業に依頼する場合は、手動による診断とツールによる診断を組み合わせて実施するケースもあります。
5-3 診断結果の分析・報告
ひと通りの診断項目を実施した後は、診断結果を分析・報告します。各診断項目について脆弱性の有無やリスクの高さなどを分析し、セキュリティ対策の必要性や必要箇所を明確にするステップです。
脆弱性の診断結果はレポートにまとめ、社内の関係者へ展開します。診断結果をもとに、セキュリティ対策の実施方針を決めましょう。なお外部の企業に依頼する場合は、診断結果のレポートやセキュリティ対策情報を受け取ることが可能です。
6.高品質なWebアプリケーション診断を実施するためには
Webアプリケーション診断には、前述のようにさまざまな診断項目があります。専門家の力をもってしても、精度の高い診断には多くの時間が必要です。セキュリティの専門家が社内にいない場合、自社だけで高品質な診断を行うことは難しいでしょう。
高品質なWebアプリケーション診断を実施したい場合は、セキュリティのプロが実施するWebアプリケーション診断サービスの利用がおすすめです。ある程度のコストはかかりますが、サイバー攻撃による多大な被害を防ぐためには有力な選択肢といえます。
なお、当サイトを運営するバルテスでも、Web・モバイル・IoTデバイスなどの幅広いIT資産の脆弱性診断サービスを提供しています。ツールによる効率性の高い診断に、プロによる確実性の高い手動診断を組み合わせたサービスです。
「自社でWebアプリケーション診断を行えるか不安がある」「労力をかけずに高品質な診断結果を得たい」といった場合は、ぜひご利用ください。
まとめ
Webアプリケーション診断とは、Webアプリケーションに脆弱性がないか診断することです。
サイバー攻撃が増加しつつある昨今、標的にされやすいWebアプリケーションの診断は重要性を増しています。
Webアプリケーション診断を行う際には、今回の内容をぜひ参考にしてください。実施方法や正しい手順を知り、高品質なWebアプリケーション診断を実施しましょう。
Webアプリケーションの脆弱性を狙った攻撃からWebサイトを守るには、WAFの導入もおすすめです。
バルテスでは、クラウド型のWAFサービスを提供しています。良心価格で使いやすいツールとなっていますので、まずはトライアルからお試しください!