個人の財産にも等しいクレジットカード情報や企業の顧客リスト、製品開発に関する機密情報などが漏えいする事故が後を絶ちません。大量の情報が流出する原因の多くは、Webサイトを構成するアプリケーションの脆弱性と運用管理上のミスによるものです。
現実的に“完全な防御”は難しく、先鋭的な攻撃者に狙われると、多くのWebサイトは何らかの弱点が見つかってしまいます。こうした状況下において、サイト運営者にとって「Webアプリケーション脆弱性診断」は有効なソリューションとなります。
本稿では、Webアプリケーション脆弱性診断の意義とその効果を解説します。
脆弱性の7割はWebサイト
IPA(情報処理推進機構)とJPCERTコーディネーションセンターでは、「ソフトウェア等の脆弱性関連情報に関する届出状況」を定期的に発表していますが、2020年第1四半期のデータを見ると、ソフトウェア製品62件に対しWebサイトは201件。2004年に調査を開始してからの累計でも、Webサイトの脆弱性が約7割を占めています。
出典:「ソフトウェア等の脆弱性関連情報に関する届出状況」(IPA・JPCERT/CC)
こうした現実から、大多数のサイトでは何らかのアクションが必要と考えられますが、闇雲にセキュリティ製品を導入することは得策ではありません。第1歩は自社サイトの実態を正確に把握することです。
ここで有効なソリューションが、Webサイトに内在する問題を顕在化し、適切な改修方法をアドバイスしてくれる「Webアプリケーション脆弱性診断」です。
診断サービスを活用することによって、短期間でコストを抑えて、自社サイトのセキュリティ上の弱点を認識できるのです。
アプリケーション層の危険性
Webサイトは、OSとミドルウエア、サーバーソフトなどのプラットフォームとアプリケーションで構成されていますが、Webサイトからの機密情報の漏えいや改ざんで特に注意すべきは後者のアプリケーションです。
企業の公式サイトやショッピング、ニュース、コンテンツ配信などのサービスには、会員登録、検索、電子決済、他サイトとの連携など、目的に応じた各種プログラムが実装されています。
LinuxやWindowsなどのOS、Apacheに代表されるWebサーバーなどは、脆弱性が発見されるとパッチの公開と情報共有が迅速に行なわれるため、比較的早く対処することができますが、オーダーメイドで開発されることの多い非汎用的なアプリケーションは同じようにはいきません。開発者や運営側が注意深く、継続的に対応していく必要があります。
Webアプリケーションから多くの脆弱性が見つかっている現状は、冒頭のレポートでも触れた通りです。
脆弱性の一般的な定義は、“プログラムの不具合や設計上のミスが原因で発生した情報セキュリティ上の欠陥”(「国民のための情報セキュリティサイト:総務省」から抜粋)ですが、この記事ではもう少し広義にとらえ、“攻撃者が悪用すると開発側が意図しない動きをする状態”も含むものとして進めます。
脆弱性がなくならない理由は?
Webアプリケーションは、企業のシステム部門やソフトウェアメーカーが開発しますが、脆弱性がなくならない主な要因として、開発コストと期間の制約、そして開発側のスキル不足が挙げられます。さらに、要求仕様をシステムに落とし込む際に生じる認識のズレも軽視できません。
攻撃者はあらゆる手段を使って脆弱性を探り出し、攻撃を仕掛けてきます。時間と予算、開発要員も不足している状況では、仕様通りの動作であるか、あらゆるパターンを想定したテストを実施することは容易ではありません。
これはソフトウェアから脆弱性がなくならない理由の一つにもなっており、こうした現実を加味すると、脆弱性が無くなることはないという前提に立って、対策を進めておくべきでしょう。
Webアプリケーション脆弱性診断のチェック項目
Webアプリケーション脆弱性診断のチェック項目を見ていきましょう。テスト内容は多岐にわたり、診断サービスを実施する業者によってメニューは異なりますが、大項目として以下のようになります。
- 入出力処理
- 認証機能
- セッション管理
- 設定/運用
入出力処理
Webサイトが被害を受ける要因として多くを占めるのは、SQLインジェクションやクロスサイトスクリプティング(XSS)など、Webアプリケーションとそのバックエンドのシステムに対する不正な入出力を起点とする攻撃です。
SQL(データベースのコマンド)の不正操作によるデータ流出につながる脆弱性、不正なスクリプトが動作する環境の有無などを検証します。
(参考)Webサイトの脆弱性の種類別の届出状況
出典:「ソフトウェア等の脆弱性関連情報に関する届出状況」(IPA・JPCERT/CC)
認証機能
ユーザー認証の機能も標的になりやすい部分です。この診断では、ID、パスワードなどの認証情報を使うログイン機能を精査します。
例えば、ログインフォームからデータが漏えいするリスク、IDの推測やパスワードの総当たり攻撃に対する強度などを診断します。
セッション管理
クライアント~Webサイト間の接続状態を維持するセッションが不正操作されると、なりすましの被害に結びつきます。(セッションハイジャック)
セッションの識別方法は適切か、セッションIDが推測されやすい形式になっていないかなどを精査します。
設定/運用
Webサイトが攻撃される原因の多くはWebアプリケーションの脆弱性ですが、サイトの弱点はここだけではありません。
認証を管理するアプリケーションの設定ミス、意図していない設定やファイルの公開など、運用管理上の問題もあります。管理ミスによるセキュリティホールがないかも診断項目に含まれます。
診断はツールと手動の2種類
Webアプリケーション脆弱性診断には、ツールによる診断と手動診断に大別され、それぞれの特性を生かした検査が行なわれます。
ツール診断
既知の脆弱性や初歩的な設定ミスの検出に対しては、多くのWebページを短時間で診断できるツール診断が有効です。
具体的には、データベース検索、アンケート受付、各種サービス予約などの機能を搭載したWebアプリケーションに対し、ツールから自動的にコマンドや文字列を送って、応答内容からセキュリティ上の不備を検出します。
SQLインジェクションやクロスサイトスクリプティング(XSS)、OSコマンドインジェクション、ディレクトリトラバーサルといった脆弱性がないか、ツールを活用することで、効率よく且つ短時間で診断することができます。
手動診断
ツール診断では見逃されがちな複雑な脆弱性や特定のビジネスロジックに関連する問題のほか、権限昇格や他のユーザーの情報を参照・操作できてしまう認可制御の不備などを発見するために非常に有効です。
ツール診断は、短時間で診断ができますが、すべての脆弱性や人的なミスを発見できるわけではありません。人間が対話型で操作しないと検出できない脆弱性もあるため、手動診断によって攻撃者の視点からプログラムの動きを検証するステップも欠かせません。
手動診断は、エキスパートによる知見と経験が活かされる診断手法であり、診断ベンダが提供するサービス内容や診断員のスキルが重要になります。
全ての診断を手動で実施する高度な脆弱性診断サービスもあります。
エキスパートの“知見と経験”が精度を上げる
設定ミスや運用上の不備は、OSやアプリケーションの正規の機能を用いて行われるため、診断ツールがセキュリティ上の問題として検出できるとは限りません。
そこで、手動診断の出番です。例えば、ショッピングサイトでパラメータ改ざんが可能なプロセスが見つかった場合、不正操作が会員のステータスだけでなく、決済履歴にも影響が出るようなことがないかを確認します。
一部のプログラムの振る舞いが思わぬところに影響が及ぶケースもあるため、いろいろな可能性を探っていく行動も欠かせません。こうしたエキスパートの“知見と経験”は、診断の精度という形で反映されます。
ツール診断と手動診断の併用
ツールによる診断と手動診断を併用した診断サービスが増えています。
それぞれの診断手法にメリットがあるため、それを組み合わせることで、高品質且つ短納期の脆弱性診断サービスを提供することができます。
- ツールにより、診断対象全体を網羅的に、且つ短時間で診断
- 手動診断により、ツールでは発見できない脆弱性がないかを診断し、質の高い診断サービスを提供
近年は、AIや自動化を活用した診断サービスも登場しています。
診断ツールを上手く活用して網羅的な診断を実施しつつ、レポートの精査や専門家の手が必要な部分を人で対応することで、短納期且つ質の高い脆弱性診断を実現しています。
Webアプリケーション脆弱性診断のフロー
Webアプリケーション脆弱性診断は、以下の流れで実施されます。
ヒアリング → 診断 → 解析 → 結果報告
ヒアリング
診断サービスを実施する業者がヒアリングを通じてサイトの詳細を把握し、調査の対象範囲、診断に用いる手法、診断項目、スケジュール、そして費用を提示します。
診断
対象サイトに対し、ツール診断と手動診断で述べたような診断を実施します。
解析
検出された脆弱性や設定ミスなどを列挙し、リスクを洗い出します。もし緊急性が高い脆弱性が発見された場合は、結果をまとめる前に速報として通知されます。
結果報告
文書によるレポートと報告会を通じて、ユーザー企業に結果を開示します。
診断はコストではなく投資
現在、多くの国内業者が「Webアプリケーション脆弱性診断」のサービスを提供していますが、診断項目、手法、フローに大きな違いはありません。
各社の特徴が表れる部分としては、エキスパートの能力、診断範囲・方法、そして再診断や業態に特化したオプションメニューなどが挙げられます。
診断業者によっては、セキュリティ関連資格の保有者数や診断実績を開示していますので、業者を比較する材料として参考にしても良いでしょう。
Webアプリケーションの脆弱性を狙うサイバー攻撃は、機密情報の漏えい、閲覧者をマルウェア感染させるサイト改ざん、攻撃の踏み台などの深刻な被害を与えます。損害賠償による金銭的被害や社会的信用失墜に伴う売上減少により、事業継続が困難になった企業も少なくありません。
Webサイトは企業・団体の顔ですが、そこには何らかの弱点を抱えている可能性があります。Webアプリケーション診断は“コスト”ではなく、企業活動を維持・成長させるための“投資”と考えてみてはいかがでしょうか。
EGセキュアソリューションズ株式会社では、Webアプリケーションの脆弱性診断サービスを提供しています。安全なWebアプリケーションのプロフェッショナル集団としての知見を活かし、お客様のWebサイトに最適な脆弱性診断を実施いたします。
Webサイトのセキュリティ対策に不安やお困りのことがありましたら、ぜひEGセキュアソリューションズ株式会社へお問い合わせください。
- カテゴリ:
- Webセキュリティ
- キーワード:
- セキュリティ