福岡ラボのくろきです。今回は、SSTのWebサイトの脆弱性診断(以下、脆弱性診断)の際に重要となる、診断対象の単位についてお伝えしたいと思います。
はじめに
この記事は、初めて脆弱性診断をご検討される方向けのものです。
- そもそも脆弱性診断はどのようなものなのか
- どのような単位で行うのか
- なぜその単位なのか
など、脆弱性診断をご検討される際の不安が少しでも解消できればと思います。
本編は以下の流れで説明します。
そもそも脆弱性診断って?
脆弱性診断とは、お客様のWebサイトに潜むセキュリティ上の脆弱性(弱点)を攻撃者の立場で診断し検出するものです。Webアプリケーションのセキュリティ問題に精通した技術者がWebサイトの問題点を隅々まで診断し、情報漏えい等重大事件の発生防止をサポートします。
脆弱性診断の単位について
「脆弱性診断の単位」と言っても、分かりにくいですよね。脆弱性の診断を行う際に確認する対象物と考えると分かりやすいかもしれません。
Webサイトにまつわる単位(確認する対象物)にはいろいろなものがあります。
- 画面数(画面の数)
- 画面遷移数(ある画面が別の画面に遷移する数…画面遷移図でいう矢印の数)
- リクエスト数(下記で説明)
など。
SSTで実施している脆弱性診断はリクエスト単位です。
リクエストとは?
クライアントからサーバーに対して送信される、データの提供や所定の処理などを要求するためのメッセージのこと。 Webへ接続する際、WebブラウザがWebサイトを閲覧するためにWebサーバーに対して行う投げ掛け。 (weblio辞書より一部を抜粋)
つまり、SSTの脆弱性診断は、Webサーバへの一つ一つの通信を診断(確認)するということです。
画面数と画面遷移数とリクエスト数
画面数、画面遷移数、リクエスト数には違いがあります。
この場合、画面数(2)=リクエスト数(2)となっています。場合によっては、画面遷移数=リクエスト数となることもあります。ですが、全てのWebサイトで毎度それらの数がすべて一致するというわけではありません。
以下、具体的な例を見ていきましょう。
画面数が1でもリクエスト数は異なることがある
下記のイメージ図のように、検索結果が同一画面に表示されたり、「もっと見る…」ボタンを使って同一画面内で情報取得を行ったりした場合、画面数は増えませんがリクエストは増えていきます。
画面遷移数が1でもリクエスト数は異なることがある
下記のイメージのように、画面遷移数は1ですが遷移先の画面の中にフレームがあることでリクエストが複数回行われていることがあります。
また、フレームがない場合でも、情報取得処理があったり、APIの通信があったりして、複数のリクエストが発生することもあります。
なぜ脆弱性診断はリクエスト単位なのか
それは、リクエスト単位で脆弱性診断をしなければ発見できない脆弱性が存在するからです。
一言で「脆弱性」といっても、以下のような種類があります。
- 画面の入力に対して、サーバが返すHTML情報などがサイトに影響を及ぼすもの
- 画面の入力に対して、サーバが返すHTML情報などがサイトに影響を及ぼすものではないものの、その情報の中に漏洩してはいけないデータを含むもの
- 画面の入力にかかわらず、サーバが返すHTML情報などの中に漏洩してはいけないデータを含むもの
- 画面の入力にかかわらず、非公開データが閲覧・操作できてしまうもの
など。
リクエスト単位で脆弱性診断を行うことで、
画面の入出力だけでは確認することのできない脆弱性も診断が可能
となるのです。
実際の診断は?
実際に脆弱性診断を行う際は、SSTで事前調査を行い発生しているリクエストをすべて手作業にて洗い出します。 そのうえで、お客さまと一緒に相談しながら、診断すべきリクエストについてご提案させていただきます。
おわりに
今回、SSTの脆弱性診断時の単位となるリクエストについて書きました。SSTの脆弱性診断の場合、リクエスト数がお見積もりの単位にもなってきますので、リクエストがどんなものなのかが少しでも伝わればいいなぁと思っております。また、今後も初めて脆弱性診断をご検討される方が分かりにくい内容などをお伝えできればと思います。ちなみに、SSTではお客様に寄り添い導入サポート等を行う調整員がおりますので、お気軽にお問い合わせいただいても大丈夫です。
調整員ってなに?と思った方はこちらの記事をぜひご覧ください。
おまけ:あわせて読みたい脆弱性診断の関連記事
脆弱性診断をご検討中の方は、下記の記事もぜひご覧ください。