こんにちは!イー・ガーディアンです。

ここ数年、クレジットカード情報や企業の顧客リスト、製品開発に関する機密情報などが漏えいする事故が後を絶ちません。大量の情報が流出する原因の多くは、Webサイトを構成するアプリケーションの脆弱性と運用管理上のミスによるものです。

「完全な防御」は現実的に難しく、先鋭的な攻撃者に狙われると多くのWebサイトは何らかの弱点が見つかってしまいます。こうした状況下において、サイト運営者にとって「Webアプリケーション脆弱性診断」は有効なソリューションとなります。

今回は、Webアプリケーション脆弱性診断の意義とその効果について解説していきます。

■ 脆弱性の7割はWebサイト

IPA(情報処理推進機構)とJPCERTコーディネーションセンターでは、「ソフトウェア等の脆弱性関連情報に関する届出状況」を定期的に発表していますが、2004年に調査を開始してからの累計を見てみるとソフトウェア製品5,357件に対し、Webサイトは12,488件と「Webサイトの脆弱性」が約7割を占めています。

security4_1_20230829.jpg
参照:【IPA・JPCERT/CC】ソフトウェア等の脆弱性関連情報に関する届出状況

このような状況から、大多数のサイトでは何らかの対策が必要であると考えられますが、闇雲にセキュリティ製品を導入することは得策ではありません。まず第1歩としては、自社サイトの実態を正確に把握することが重要です。

ここで有効なソリューションが、Webサイトに内在する問題を顕在化し適切な改修方法をアドバイスしてくれる「Webアプリケーション脆弱性診断」です。診断サービスを活用することによって、短期間でコストを抑えながら自社サイトのセキュリティ上の弱点を認識できます。

「Webアプリケーション脆弱性診断」サービス詳細

■ アプリケーション層の危険性

Webサイトは、OSとミドルウエア、サーバーソフトなどのプラットフォームとアプリケーションで構成されていますが、Webサイトからの機密情報の漏えいや改ざんで特に注意すべきは後者です。

企業の公式サイトやショッピング、ニュース、コンテンツ配信などのサービスには、会員登録、検索、電子決済、他サイトとの連携など、目的に応じた各種プログラムが実装されています。

Windows/LinuxなどのOSや、Apacheに代表されるWebサーバーソフトなどのプラットフォーム系は、脆弱性が発見されればパッチ(問題解消のためのプログラム)の公開と情報共有が迅速に行なわれるため比較的早く対処することができますが、オーダーメイドで開発されることの多い非汎用的なアプリケーションでは同じようにはいきません。開発者や運営側が注意深く、継続的に対応していく必要があります。

Webアプリケーションから多くの脆弱性が見つかっている現状は、冒頭でも触れた通りです。脆弱性の一般的な定義は、「プログラムの不具合や設計上のミスが原因で発生した情報セキュリティ上の欠陥」(【総務省】国民のための情報セキュリティサイト)ですが、この記事ではもう少し広義にとらえ、「攻撃者が悪用すると開発側が意図しない動きをする状態」も含むものとして進めます。

■ 脆弱性がなくならない理由は?

Webアプリケーションは企業のシステム部門やソフトウェアメーカーが開発しますが、脆弱性がなくならない主な要因として「開発コストと期間の制約」や「開発側のスキル不足」が挙げられます。さらに、製品/サービスが持つべき機能や特性などをまとめた要求仕様をシステムに落とし込む際に生じる認識のズレも軽視できません。

攻撃者はあらゆる手段を使って脆弱性を探り出し、攻撃を仕掛けてきます。時間と予算、開発要員も不足している状況では、仕様通りの動作であるか、あらゆるパターンを想定したテストを実施することは容易ではありません。これはソフトウェアから脆弱性がなくならない理由の一つにもなっており、こうした現実を加味すると「脆弱性が無くなることはない」という前提に立って対策を進めておくべきでしょう。

■ Webアプリケーション脆弱性診断のチェック項目

Webアプリケーション脆弱性診断のチェック項目を見ていきましょう。
テスト内容は多岐にわたり、診断サービスを実施するベンダーによってメニューは異なりますが、大項目は以下となります。

  • 入出力処理
  • 認証機能(ID/パスワードなど)
  • セッション管理
  • 設定/運用

● 入出力処理

Webサイトが被害を受ける要因として多くを占めるのは、SQLインジェクションやクロスサイトスクリプティング(XSS)など、Webアプリケーションとそのバックエンドのシステムに対する不正な入出力を起点とする攻撃です。SQL(データベースを操作するためのプログラミング言語)の不正操作によるデータ流出につながる脆弱性や不正なスクリプトが動作する環境の有無などを検証します。

security4_2_20230829.jpg
参照:【IPA・JPCERT/CC】ソフトウェア等の脆弱性関連情報に関する届出状況

● 認証機能(ID/パスワードなど)

ユーザー認証の機能も標的になりやすいため、IDやパスワードなどの認証情報を使うログイン機能を精査する必要があります。例えば、ログインフォームからデータが漏えいするリスク、IDの推測やパスワードの総当たり攻撃に対する強度などを診断します。

● セッション管理

クライアントとWebサイト間の接続状態を維持するセッションが不正操作されると、なりすましの被害に繋がってしまいます(セッションハイジャック)。セッションの識別方法は適切か、セッションIDが推測されやすい形式になっていないかなどを精査します。

● 設定/運用

Webサイトが攻撃される原因の多くはWebアプリケーションの脆弱性ですが、サイトにおける脆弱点はここだけではありません。認証を管理するアプリケーションの設定ミスや意図していない設定、ファイルの公開など運用管理上の問題もあります。このような管理ミスによるセキュリティホールがないかどうかのチェックも診断項目に含まれています。

「Webアプリケーション脆弱性診断」サービス詳細

■ 診断は “ツール” と “手動” の2種類

Webアプリケーション脆弱性診断は「ツール診断」と「手動診断」に大別され、それぞれの特性を生かした検査が行なわれます。

● ツール診断

既知の脆弱性や初歩的な設定ミスの検出に対しては、多くのWebページを短時間で診断できるツールが有効です。具体的には、データベース検索/アンケート受付/各種サービス予約などの機能を搭載したWebアプリケーションに対しツールから自動的にコマンド(指示/命令)や文字列を送り、その応答内容からセキュリティ上の不備を検出します。

SQLインジェクションやクロスサイトスクリプティング(XSS)などの脆弱性がないか、ツールを活用することで効率的且つ短時間で診断することができます。

● 手動診断

手動診断は、権限昇格(付与されていないアクセス権限を不当に得る攻撃)や他のユーザーの情報を参照・操作できてしまう認可制度の不備などを発見するために有効です。

ツール診断は短時間で診断ができますが、すべての脆弱性や人的なミスを発見できるわけではありません。人間が対話型で操作しないと検出できない脆弱性もあるため、手動診断によって攻撃者の視点からプログラムの動きを検証するステップも欠かせません。

また、手動診断はエンジニアの知見と経験が活かされる診断手法であり、診断ベンダが提供するサービス内容や診断員のスキルが重要になります。

全ての診断を手動で実施する高度な脆弱性診断サービスもあります。

■エンジニアの “知見と熱意” が精度を上げる

設定ミスや運用上の不備は、OSやアプリケーションの正規の機能を用いて行われるため、診断ツールがセキュリティ上の問題として検出できるとは限りません。

そこで、手動診断の出番です。

例えば、ショッピングサイトでパラメータ改ざんが可能なプロセスが見つかった場合、不正操作が会員のステータスだけでなく、決済履歴にも影響が出るようなことがないかを確認します。一部のプログラムの振る舞いが思わぬところに影響が及ぶケースもあるため、様々な可能性を探っていく必要があります。こうしたエンジニアの “知見と熱意” は、診断の精度という形で反映されます。

■ 近年の診断は、ツールと手動を併用したサービスが増加

昨今は、ツール診断と手動診断を併用した診断サービスが増えています。それぞれの診断手法にメリットがあるため、それを組み合わせることで高品質且つ短納期の脆弱性診断サービスを提供することができるのです。

また、AIや自動化を活用した診断サービスも続々と登場してきています。診断ツールを上手く活用して網羅的な診断を実施しつつ、レポートの精査や専門家の手が必要な部分を人で対応することで、短納期且つ質の高い脆弱性診断を実現できます。

security4_3_20230829.png

「Webアプリケーション脆弱性診断」サービス詳細

■ Webアプリケーション脆弱性診断のフロー

Webアプリケーション脆弱性診断は、以下の流れで実施されます。

  1. ヒアリング
  2. 診断
  3. 解析
  4. 結果報告

1. ヒアリング

診断サービスを実施するベンダーがヒアリングを通じてサイトの詳細を把握し、調査の対象範囲、診断に用いる手法、診断項目、スケジュール、そして費用を提示します。

2. 診断

対象サイトに対し、手動もしくはツールを活用して脆弱性診断を実施します。

3. 解析

検出された脆弱性や設定ミスなどを列挙し、リスクを洗い出します。緊急性が高い脆弱性が発見された場合は、結果をまとめる前に速報として通知されます。

4. 結果報告

文書によるレポート提出と報告会の実施を通じて結果を開示します。

■ 診断費用はコストではなく “投資”

現在、多くのベンダーが「Webアプリケーション脆弱性診断」のサービスを提供していますが、診断項目・手法・フロー等に大きな違いはありません。

各社の特徴が表れる部分としては、「エンジニアの能力」や「診断範囲/方法」、再診断や業態に特化した「オプションメニュー」などが挙げられます。ベンダーによってはセキュリティ関連資格の保有者数や診断実績を開示していますので、比較する材料として参考にしても良いでしょう。

Webアプリケーションの脆弱性を狙うサイバー攻撃は、機密情報の漏えいや閲覧者をマルウェア感染させるサイト改ざんなどの深刻な被害を与えます。損害賠償による金銭的被害や社会的信用失墜に伴う売上減少により事業継続が困難になった企業も少なくありません。

Webサイトは企業・団体の顔ですが、そこには何らかの弱点/リスクを抱えている可能性があります。Webアプリケーション脆弱性診断をコストではなく、企業活動を維持・成長させるための「投資」と考えてみてはいかがでしょうか。

■ さいごに

イー・ガーディアングループでは、サイバーセキュリティ対策のプロフェッショナル集団としての知見を活かし、お客様のWebサイトに最適な脆弱性診断を実施いたします。

Webサイトのセキュリティ対策に不安やお困りのことがありましたら、イー・ガーディアングループへお気軽にお問い合わせください。

イー・ガーディアンの「サイバーセキュリティサービス」詳細はこちら