Webアプリケーションの脆弱性診断は必要?必要な理由と紹介

2022.08.19

Webアプリケーションとは、Webページに構築されるアプリケーションソフトを指します。Webアプリケーションは、多くの団体や企業、個人が提供しております。利用にあたっては、アプリケーションやネットワークの脆弱性を無視することができません。セキュリティ対策を十分に講じる必要があります。セキュリティ対策を十分に企業が講じないまま、アプリケーションをリリースしたり悪用されることで、個人情報の漏洩や企業の秘密情報が洩れることになります。そのため、企業が開発したアプリケーションに対して、脆弱性診断を行いユーザーに届けることは、義務だと言えます。この記事では、Webアプリケーションで生じる脆弱性の特徴・理由や診断方法について紹介します。

Webアプリケーションの脆弱性

Webアプリケーションの脆弱性とは、アプリケーションに関連する動作や挙動の不備を突いたサイバー攻撃になります。Webアプリケーションが目立つサイトを長期間運営すると、悪意のある第三者に攻撃される可能性があり、企業や個人にとって大きな損失が出る可能性もあります。近年、Webアプリケーションの脆弱性を突いたことにより個人情報の漏洩は後を絶ちません。例えば、2022年8月に起きた株式会社ベクトルが運営する「ベクトルパーク」で外部からサイバー攻撃を受けたことによりユーザーのカード情報が1万8,136件流出した可能性があると表明しました。(※1)株式会社ベクトルによると、システムに内在する脆弱性を利用して顧客のカード情報を盗んでいたとされています。このように脆弱性対応をしていないと企業の信頼や裁判にまで発展する可能性があります。

※1参考記事:株式会社ベクトル「公人情報漏洩に関するお詫びとお知らせ」

Webアプリケーションに脆弱性が生じる3つの理由

Webアプリケーションに脆弱性が生じる理由としては、次の3つが挙げられます。

  • アプリケーション開発時の人的ミス
  • Webアプリケーションを収納しているサーバーの脆弱性
  • Webアプリケーションを収納しているサーバーの設定

これらの脆弱性は、本来設計する際に解消すべきバグやエラーになります。バグやエラーが生じた際は、アップデートを行うかセキュリティパッチを更新して対策を講じる必要があります。

アプリケーション開発時の人的なミス

Webアプリケーションの脆弱性が発生する理由として、コードのミスが挙げられます。Webアプリケーションは、複数の言語やモジュール、システムで動作しているため連携やモジュール単位でミスがある場合は、予期せぬエラーが起きる場合があります。エラーとして表示されている場合は修正が可能ですが、表示されない場合は気づくのに時間がかかる場合があります。Webアプリケーションで脆弱性が発見された場合は、修正・単体テスト・結合テストまで行い対策をしましょう。ユーザー側でエラーやバグを発見したら、制作者に状況を報告して、脆弱性に対する修正を行ってもらいましょう。ITエンジニア未経験であれば、脆弱性を見つけることは容易ではありませんが、利用しているプラグインやアプリケーションに脆弱性が発見されたりネットで公開されていたら、すぐに対応をしましょう。

Webアプリケーションを収納しているサーバーの脆弱性

Webサーバーとは、大まかに説明するとWebページを保管しているコンピュータのことです。ユーザーがパソコンでWebサイトを閲覧する場合、ブラウザが目的のWebサイトを保管しているWebサーバーを検索し、見つけたWebサーバーに対して閲覧のリクエストを送ります。Webサーバーは閲覧のリクエストを受け取った場合、自身の中から該当する情報を検索して応答を返すことで、ユーザーのパソコンの画面に目的のWebサイトが表示される仕組みになっています。

このとき、Webサーバーに脆弱性があった場合、悪意のある攻撃者の標的となってしまい、さまざまな危険が考えられます。ここで言う脆弱性とは、Webサーバーを動かしているソフトウェアの設計上のミスやプログラムのミスが原因で生まれた、情報セキュリティに関する欠陥のことを指します。例えば、本来ならブロックしないといけない不正アクセスなどを受け入れてしまった場合、Webサイトの情報が改ざんされる可能性が出てきます。また、部外者が自身のWebサーバーを踏み台にして他のサーバーに攻撃を仕掛けるということも可能となるため、意図せず攻撃に加担したことになってしまうケースも考えられます。Webサーバーに脆弱性がある場合、さまざまな問題が引き起る可能性があります。

Webアプリケーションを収納しているサーバーの設定

Webサーバーのソフトウェアにミスが無くても、Webサーバーの設定によっては脆弱性が生まれる可能性があります。例えば、設定しているパスワードが簡単に割り出せるような内容であったり、不要なアカウントが残ったままになっていたりすると、外部からWebサーバー内に侵入されてしまう可能性が出てきます。

また、公開してはいけないファイルを公開していたり、不要になったWebページが公開されたままになっていたりすると、情報漏洩や改ざんに繋がるケースも考えられます。

セキュリティを強化するためには、Webサーバの設定を常に正しい状態に保つ必要があります。

Webアプリケーションにおける脆弱性診断の必要性

脆弱性診断とは、Webアプリケーションの業務プロセスや環境などに脆弱性がないかどうかを診断することです。近年ではサイバー攻撃やランサムウェアの攻撃など、攻撃のレベルが高度化、巧妙化しており、セキュリティ対策も常に進化させていく必要があります。

そのため、自身のWebアプリケーションにどのような脆弱性があるのか客観的に診断し、セキュリティ対策に反映していく必要があります。Webアプリケーションにおける脆弱診断のメリットは、次の2つが挙げられます。

  • 攻撃による被害の発生を未然に防げる
  • 修正コストを下げることができる

攻撃による被害の発生を未然に防げる

Webアプリケーションの脆弱性診断を行うことで、実際に攻撃者に狙われやすいポイントが明確になり、攻撃を未然に防ぐことが可能となります。脆弱性診断では、診断対象を複数に細分化し、それぞれの診断対象において脆弱性のチェックを行います。したがって、自身のWebアプリケーションの強い部分と弱い部分が明確になります。弱い部分に対してセキュリティ対策を行っておけば、攻撃による被害を未然に防ぐことが可能となります。

修正コストを下げることができる

Webアプリケーションの脆弱性診断を行わない状態で運用し続け、攻撃者に脆弱性を突かれて情報漏洩やデータ改ざんなどの被害を受けてしまった場合、Webアプリケーションの修正だけでなく被害に対しての損害も発生する可能性があり、多額の費用が必要になってくることも考えられます。

事前に脆弱性診断を行い、弱い部分に対してセキュリティ対策を行っておけば、後から発覚するよりコストを抑えることが可能となります。

Webアプリケーション脆弱性診断を行う手順

ここでは、Webアプリケーションの脆弱性診断を行う手順について3つ紹介します。

  • システム構成の把握
  • 脆弱性診断ツールの実行と手動検査によるチェック
  • 脆弱性対策の優先順位策定

1.システム構成の把握

Webアプリケーションの脆弱性診断を行うには、システム全体の構成を把握する必要があります。システム全体を把握した上で脆弱性診断を行う範囲を決定します。

やみくもに広範囲にするとコストがかかります。企業にとって重要度が高い部分や、サイバー攻撃されると致命的となる部分を脆弱性診断の範囲として決定する必要があります。

2.脆弱性対策ツールの実行と手動検査によるチェック

脆弱性診断には、大きく分けて脆弱性を診断する「脆弱性診断ツール」を用いる方法と、技術者がWebブラウザでサイトにアクセスして脆弱性を確認する「手動診断」の2つの方法があります。

脆弱性診断ツール

脆弱性診断ツールでのチェックは、機械的に不正なアクセスやリクエストを作り出し、疑似攻撃を仕掛けることでチェックします。疑似攻撃はシステムを破壊することが目的ではなく、あくまでも脆弱性のチェックであるため、実際にシステムを破壊することはありません。

機械的に疑似攻撃を仕掛けて、その結果を機械的に収集するため、ツールの誤検知なども含まれてきます。したがって脆弱性診断ツールの結果は、担当者が後から修正したり補正したりする必要が出てきます。

脆弱性診断ツールによるチェックは、比較的手軽に行えるため、定期的な簡易診断という位置づけや、システム開発時の簡易チェックとして用いられるケースが多くあります。コストをかけずに安全な状態を保つことができるメリットがあります。ただし、設定や操作に関する学習が必要であったり、脆弱性に関する専門的な知識が無いと使いこなせないといったデメリットもあります。

手動診断

一方、手動診断は、専門知識を持った経験豊富な技術者によって実施される脆弱性診断です。脆弱性診断ツールではチェックできない分岐条件や画面遷移にも対応します。見つかった脆弱性の問題を再現させる手順や、その対策方法なども助言してもらえる点が手動診断の特徴です。柔軟性やカスタマイズ性、診断後のフォローなどがメリットと言えます。

ただし、脆弱性診断ツールに比べるとコストがかかるため、手動診断を短いスパンで実施することは難しいかもしれません。また技術者のスキルによってバラツキがあったりする点がデメリットと言えます。

脆弱性診断ツールと手動診断それぞれの特長を考慮し、予算に合わせて双方を組み合わせながら脆弱性診断を実施していくことが良い方法でしょう。

3.脆弱性対策の優先順位策定

脆弱性診断の結果、明らかになった脆弱性に対して対策を講じていく必要があります。ただし、脆弱性には「攻撃者に悪用されそうな危険なタイプ」や「攻撃者に悪用されにくいタイプ」、「深刻度が低いタイプ」など、さまざまな種類が存在します。

これらすべての脆弱性に対策を講じていくのではなく、自社にとって危険度が高い脆弱性、深刻度が高い脆弱性に対策を講じていく方法が望ましいです。そのため、明らかになった脆弱性を分析し、それぞれに優先順位を設定していく必要があります。脆弱性の優先順位を設定する際、脆弱性の汎用的な評価手法である「CVSS」を取り入れる方法があります。

CVSS(Common Vulnerability Scoring System)とは

CVSS(Common Vulnerability Scoring System)を用いることで、各脆弱性の深刻度を定量的に比較できるようになるため、優先順位を設定する上での1つの指標となります。(※2)CVSSでは、「基本評価基準」「現状評価基準」「環境評価基準」の3つの基準で脆弱性を評価します。基本評価基準では、脆弱性の特性を攻撃の難易度や攻撃による影響度などで評価し、CVSS基本値を算出します。現状評価基準では、脆弱性を取り巻く現状を評価するため、攻撃コードの可能性や利用可能な対策、脆弱性情報の信頼性などを考慮し、CVSS現状値として算出します。環境評価基準では、脆弱性のあるシステムを利用するユーザーの深刻度を評価し、CVSS環境値を算出します。

それぞれの基準において算出した値から最終的に脆弱性の深刻度を算出します。各脆弱性に対して脆弱性の深刻度を算出しておけば、優先順位を決定する際の指標として利用することができます。

※2参考記事:IPA「共通脆弱性評価システムCVSS概説」

Liberusの脆弱性診断なら

Liberusの脆弱診断では、侵入テストやパスワード特化型診断など必要な機能だけを利用したい方におすすめです。企業がアプリケーションを開発した際に脆弱性診断を行いたい場合や脆弱性診断サービスを導入したい場合は、Librusの脆弱性診断をご検討ください。

参考記事:Librusサイバーセキュリティ事業

【セキュリティソリューションのご紹介】

Librus株式会社では企業のサイバー攻撃被害に備え、毎月10万円でホワイトハッカー、弁護士、ブランドコンサルタントをまとめてアサインできる 「セキュアナイト」というサービスを提供しております。
https://secureknight.jp/

またサイバーセキュリティに関するアドバイザリーやセキュリティ診断(脆弱性診断、侵入テスト)、デジタルフォレンジック(システム復旧支援中心)においても豊富な実績がございます。

ご相談は無料ですので、いつでもお気軽にお問い合わせください。


問い合わせフォーム
https://librus.co.jp/contact

メール
info@librus.jp

資料請求
https://tayori.com/form/bcca83c49d8fd253395a909cb8cfcb899d32af72/

VIEW ALL
© 2020 LIBRUS Co., Ltd All rights Reserved .