脆弱性診断(セキュリティ診断)とは?
関連サービスについて
脆弱性とは
上記の定義において「脅威」とは、情報漏洩や資産の喪失、業務停止などのインシデントの原因になりうる人物やイベントを意味します。具体的には、インターネット上の攻撃者や停電、地震などのことです。
「資産又は管理策」とは、具体的にWebアプリケーションのような情報システムやそれが保持する情報資産、それに関わる業務プロセスなどを指します。
要約すると、脆弱性とは「インターネット上の攻撃者や地震などに対して、情報漏洩や資産の喪失につながる可能性のある情報システムや業務プロセスにおける弱点である」といえます。
よく知られる脆弱性としては、Webアプリケーションにおける「SQLインジェクション脆弱性」や「クロスサイトスクリプティング脆弱性」などがあります。 また、容易にオフィスに侵入されて情報資産を持ち出されるような場合も、「入退室管理の脆弱性」や「オフィスでの情報保管の脆弱性」があるといえるでしょう。
脆弱性に関してはこちらの記事もご覧ください。
>>脆弱性とは?その種類や放置する危険性、正しいセキュリティ対策について解説のページへ
脆弱性管理についてはこちらもご覧ください。
>>脆弱性管理とは?脆弱性診断との違いや必要性、プロセスについて解説のページへ
脆弱性診断とペネトレーションテストの違い
脆弱性診断と同様、システムの安全性を確認する方法に、ペネトレーションテストというものがあります。
脆弱性診断が特定の基準をもとにテストを実施して判定するのに対して、ペネトレーションテストではシステムにあわせた攻撃シナリオを用いてシステムに侵入できるかどうかを検証します。双方の違いは、調査対象と目的、方法に表れており、目的に応じて使いわける必要があるでしょう。
たとえば、システムへの侵入に影響しないクロスサイトスクリプティングのような項目は、ペネトレーションテストでは重要視されないなど、チェックするポイントが異なります。
また、従業員の内部犯行によるデータの流出などは脆弱性診断では検出できないため、ペネトレーションテストが必要です。
このように、それぞれ目的が異なるため、自社システムの状態やどのような問題を把握したいのかなどをよく考えて選ぶ必要があります。
ペネトレーションテストついてはこちらもご覧ください。
>>ペネトレーションテストとは?脆弱性診断との違いやメリット・注意点、手法について解説のページへ
脆弱性診断とペネトレーションテストの違いや選び方についてはこちらもご覧ください。
>>脆弱性診断とペネトレーションテストの違いとは?自社に必要なのはどちらか、選び方を解説のページへ
脆弱性診断を行う目的
脆弱性診断を行う目的は、セキュリティのリスクを可視化し、管理することです。セキュリティのリスクとは、サイバー犯罪者が「脆弱性」を利用して、重要情報の漏洩やシステムを停止させるなどの悪い影響を、ビジネスに対して与える可能性を意味します。
脆弱性を放置してしまうと、たとえば不正アクセスによってシステムの乗っとりや情報漏洩などが発生するおそれがあります。また、ほかのシステムを攻撃するための踏み台に利用されるなど、攻撃者に悪用される危険性も十分に考えられるのです。いずれの場合も、社会的な信頼を失ってしまうことが、何よりも大きなリスクといえるでしょう。
近年、脆弱性を悪用したサイバー攻撃は多様化・複雑化し、攻撃の頻度が急激に増えています。また、IT技術の進化によりシステムの複雑化が進んだことで、脆弱性の数自体も増加しており、脆弱性を悪用しやすくもなっています。そのため、脆弱性を放置することによるリスクがますます高まっているのです。
脆弱性診断を行えば、システムや機器にひそむ脆弱性の有無を確認でき、脆弱性を突き止めて対策を行うことが可能です。診断で発見した脆弱性を、種類、危険性などで分類する共通脆弱性評価システム(CVSS)で評価し、適切に対策します。脆弱性を放置することで生じるリスクをつみとり適切に対策するために、脆弱性診断は必要とされているのです。
▽あわせて読みたい▽
>>脆弱性診断の適切な頻度とは?項目ごとの違いやタイミングについて解説のページへ
脆弱性診断を行わずに放置するリスク
脆弱性診断を行わずに放置すると、具体的にどのようなリスクが生じるのでしょうか。
悪意のある者に攻撃されやすくなる
脆弱性を放置すると、サイバー犯罪を起こそうとたくらむ悪意ある者から攻撃されやすくなります。
脆弱性を家でたとえると、ドアや窓の鍵を開けたままにする、防犯装置が壊れたままの状態にするなどということです。その状態だと、泥棒はやすやすと家に侵入して大事なものを盗んでいってしまうでしょう。
脆弱性とは、通信時にデータを暗号化せずにやりとりしてしまう箇所がある、Webサイトの入力フォームにデータを破壊するSQL文を入力して実行できてしまうなどの不具合のことです。サイバー犯罪者はこのような不具合をかぎつけ、悪用して不正アクセスし情報を盗んだり権限を奪ったりします。
ウイルスに感染する危険性が高まる
脆弱性を放置すると、ウイルスに感染する危険性も高まります。
ウイルスからパソコンなどを防御するためにセキュリティソフトを利用することがあります。このとき、新種のウイルスが次々と出現するため、つねにソフトを最新の状態に更新しなければなりません。また、アプリケーションやOSなどの脆弱性をついたウイルスが出現する可能性もあるため、それらの更新も必要です。
セキュリティソフトやOS、アプリケーションなどにつねに最新のパッチをあてないと、脆弱性をついてウイルス感染する可能性が高まります。
会社全体へのダメージにつながる
脆弱性を放置した結果、ウイルス感染したり不正アクセスを受けたりして、機密情報の漏洩やサイトの改ざんなどが起きる可能性があります。そのようなセキュリティインシデントが発生した場合は、業務を停止し事態の収拾のために対応する必要があり、その費用や業務を停止したことによる売上の減少などの損害が生じるでしょう。
また、このような直接的な損害以上に、企業の社会的信用が失墜してしまうことによる損害の方が大きい場合もあります。「あの企業に個人情報を預けると流出してしまうかも」、「危なそうだしあの企業は使いたくない」などの悪いイメージがついてしまい、顧客離れや従業員離れにつながるかもしれません。
このように、会社全体に大きなダメージを受けてしまうリスクがあるでしょう。
脆弱性診断や情報セキュリティに関連するガイドライン
脆弱性診断の種類
脆弱性診断は「検査する対象」ごとにさまざまな種類が存在します。
「検査する対象」とそれに対応する脆弱性診断の例をあげると以下のようになります。
・Webアプリケーション → Webアプリケーション脆弱性診断
・クラウド基盤 → クラウド診断
・ネットワーク/サービス基盤 → プラットフォーム診断/ペネトレーションテスト
・ソースコード → ソースコード診断
SHIFTの脆弱性診断サービスはこちらをご覧ください。
>>脆弱性診断(セキュリティ診断)サービスページへ
また、Webアプリケーションのフレームワーク(StrutsやRailsなど)やCMS製品(WordPressやEC-CUBEなど)ごとにも、発生しやすい脆弱性が異なるため、それに応じた診断が必要になる場合もあります。
ここで注意すべき点として、「WebシステムのセキュリティはWebアプリケーションへの脆弱性診断だけでは診断できない」ということがあげられます。Webシステムの構築では、Webアプリケーションを稼働するためのさまざまな基盤・関連製品が必要になります。たとえば、「AWS上にEC2サーバーとDB(RDS)・データストア(S3)を構築し、EC2サーバー上のTomcatでWebアプリケーションを稼働する」というシステムを構築した場合、 Webアプリケーションだけを診断しても以下のような観点が十分に検査されません。
・WebサーバーやDB(RDS)サーバーの管理用ポートへのアクセス(プラットフォーム診断/ペンテスト)
・データストア(S3)に保存したデータへのアクセス(クラウド診断)
・AWS管理コンソールへのアクセス(クラウド診断)
以上のことから、システムの構成要素に応じて脆弱性診断を使いわけ、リスクをコントロールすることが重要になります。
Webアプリケーション脆弱性診断
Webアプリケーション脆弱性診断では、WebアプリケーションやWebサイトのセキュリティの診断を行います。WebアプリケーションやWebサイトは、日常業務でも利用する機会が多く、サイバー攻撃の標的にされやすいソフトウェアです。
主にパラメータ改ざんやSQLインジェクションなどの項目を診断します。これらの脆弱性を放置しておくと、サイトの乗っとりや情報漏洩などの被害にあう可能性が高くなります。
サイバー攻撃についてはこちらもご覧ください
>>サイバー攻撃とは?種類や日本での被害事例、対策について解説しますのページへ
SQLインジェクションについてはこちらをご覧ください
>>SQLインジェクションとは?手口や被害事例、対策をわかりやすく解説のページへ
クラウド診断
クラウド診断では、AmazonやGoogleなどが提供しているようなクラウドサービスの設定状況をセキュリティの観点からチェックして診断を行います。
クラウドサービスでは、さまざまなサービスが提供されており、設定内容も多岐にわたります。仮に、社内向けに公開しているストレージ情報を誤って外部公開に設定した場合、情報漏洩などの危険があります。
▼あわせて読みたい▼
>>クラウドのセキュリティで知っておくべきリスクと対策についてのページへ
関連サービスについて
プラットフォーム診断/ペネトレーションテスト
プラットフォーム診断では、システムの基盤となるOSやミドルウェアの診断を行います。主に、インターネットなど外部からのネットワークアクセスや、社内で構築されたネットワークに対するセキュリティの診断です。
インターネットなど外部からのネットワークに接続するサーバーの脆弱性を診断することを「リモート診断」、社内で構築されたネットワークに対するセキュリティの診断を「オンサイト診断」といい、サーバーの脆弱性やアクセス権限などを診断します。
ソースコード診断
ソースコード診断では、アプリケーションやシステムなどを動かしているプログラムを解析し問題がないか診断を行います。内部構造や動作ロジック、脆弱性などの診断をツールや目視などにより確認します。
ソースコード診断を「ホワイトボックステスト」と呼ぶのに対して、ソースコードを参照せずにアプリケーションやシステムの脆弱性を検証する方法を「ブラックボックステスト」と呼びます。ソースコード診断では、ブラックボックステストによる検出がむずかしい脆弱性などを検知することが可能であり、開発プロセスのなかで手戻りを減らす手段として用いられています。
脆弱性診断には2種類のやり方がある
脆弱性診断のやり方(方法)には、以下の2種類があります。
・ツール診断
・手動診断
|
メリット |
デメリット |
ツール診断 |
・広範囲を一度に診断できる
・短時間、低コストで活用できる |
・システムが複雑だと細部まで診断できない
・診断結果を読むには専門知識が必要になる |
手動診断 |
・精度が高い
・複雑なシステムにも対応できる |
・作業時間を要する
・コストが高い |
ツール診断は専用のツールを用いて脆弱性を診断する方法です。広範囲を一度に診断でき、短時間かつ低コストであることがメリットですが、使いこなすために専門知識を要します。
セキュリティ診断サービスなどを提供する専門家が手動で脆弱性を診断してくれる方法もあり、こちらは高精度で複雑なシステムでも対応可能です。しかし、ツール診断よりも時間がかかり、コストもかかることがデメリットといえるでしょう。
1.ツール診断
ツール診断では、専用の診断ツールを用いて脆弱性を診断するため、決められた項目を自動で検査することができます。コストや時間を多く必要とせず、ツールを購入すれば自社で運用することもできます。具体的には、機械的に疑似攻撃を行うことで見つけ出す仕組みです。
メリットとしては、以下のようなものがあります。
・システムの広範囲を一度に診断できる
・機械的だが大量のパターン診断が短時間、低コストで可能
一方で、以下のようなデメリットも考えられるので、注意が必要です。
・システムが複雑だと適用できない場合がある
・診断結果を読むためには専門的な知識が必要となる
脆弱性診断ツールについてはこちらをご覧ください。
>>脆弱性診断ツールとは?種類や導入するメリット・デメリット、選定ポイントを解説のページへ
2.手動診断
手動診断は、セキュリティ診断サービスなどを提供する専門家が手動で脆弱性を診断する方法です。具体的には、専門知識のある技術者が対象のアプリケーションなどにアクセスし、攻撃者の視点から脆弱性を判断します。
人の手による柔軟な対応が可能なため、複雑なシステムでも対応できます。ただし、技術スキルの高いエンジニアが行うため、コストが高い傾向です。
主な、メリットとしては以下のようなものがあげられます。
・複数のツールによる診断で精度が高く、ツール診断では対応できない脆弱性も検知できる
・複雑なシステムにも柔軟に対応できる
一方で、以下のようなデメリットもあります。
・人手となるため検査できる範囲が狭く、診断に時間を要する
・技術スキルが高いエンジニアが実施するのでコストが高い
脆弱性診断の流れ
脆弱性診断は診断対象ごとに内容はさまざまです。
たとえば、Webアプリケーションを対象とする場合は、ブラウザで発行するHTTP/HTTPSのリクエスト/レスポンスを解析したり、改ざんしたりします。また、クラウド診断では、クラウド基盤上の設定が適切であるかを確認します。
ただし、どの診断においても重要なのは「基準を定め、網羅的に検査を行う」ことです。脆弱性診断と聞くと、「ハッカーのような人がハッカーのように攻撃してみる」ことを想像するかもしれません。たしかに、ペネトレーションテストなどではそのような検査も実施しますが、
このような検査は「基本的な脆弱性」の有無を確認したうえで行われます。脆弱性診断はソフトウェアテストとして重要な役割を担っているため、ひととおり脆弱性診断を行ったうえでペネトレーションテストを実施するべきです。
脆弱性診断を実施するには、具体的に以下の手順で進めていきます。
1.事前準備
事前準備として、脆弱性診断を行う対象を明確にする必要があります。プラットフォームを診断するのか、Webアプリケーションを診断するのかによって手順が異なります。Webアプリケーションの診断基準としては OWASP ASVS や OWASP Top 10などがあげられます。また、クラウド基盤や各種製品の設定の基準としては CISベンチマーク などがあります。診断を行う際には、診断対象の性質(個人情報を扱うか、業務へどのような影響があるかなど)に応じて診断基準・項目を選択します。また、ツール診断、手動診断などの実施方法によっても診断内容が大きく異なるため、留意しましょう。
2.脆弱性診断の実施
ツール診断の場合は短期間で済みますが、手動診断の場合は時間を要するケースもあります。業務に支障がないよう、あらかじめスケジュールを立てておくことが必要です。Webアプリケーションのように検査対象機能が膨大である場合には、ソフトウェアテストの手法を活用して網羅性を担保することが重要になります。ソフトウェアテストでは因子水準などに基づいて網羅的なテストケースを準備しますが、脆弱性診断でも同様の技術により、網羅的なテストケースを準備してテストのカバレッジを管理します。
3.レポートの確認
ツール診断であれば、すぐにレポート結果を確認することが可能です。一方で手動診断の場合は、実施者から報告を受けとります。その際、重要度や対策についての説明を受けられるケースもあります。レポートを確認後、発見した脆弱性に対して対策を行います。
SHIFTの脆弱性診断サービスはこちらをご覧ください。
>>脆弱性診断(セキュリティ診断)サービスページへ
脆弱性診断ツールの選び方
脆弱性診断を行うためには、それぞれの環境やニーズにあった脆弱性診断ツールを選ぶ必要があります。ここでは、脆弱性診断ツールの選び方について解説します。
専門家からのサポートを受けられるサービスを選ぶ
脆弱性診断を行うためには、専門的なセキュリティに関する知識や最新の情報を熟知している必要があります。また、脆弱性を特定した後にどのような対策が適切かを判断する必要もあり、専門家のサポートが欠かせません。そのため、ただ脆弱性診断を受けられるだけでなく、専門家による充実したサポートを受けられるサービスを選ぶことがもっとも重要です。
それぞれの環境にあったツールや診断項目・診断方法を選定し、診断結果を分析した後、適切な対応をアドバイスしてくれるサービスを選びましょう。
診断する範囲・深度で選ぶ
一口に脆弱性診断といっても、診断範囲やどこまで診断するかという診断の深度にもさまざまなものがあります。どのような切り口で診断するのか、どのシステムの脆弱性を診断したいのか、診断項目数はどれくらいかなどを検討しなければなりません。
それぞれの環境やニーズによって診断する範囲や深度は異なるため、適切な診断を実施してくれるサービスを選ぶようにしましょう。
診断費用で選ぶ
サポート内容や診断範囲、診断の深度、手動診断かツール診断かなどによって、診断費用が異なります。費用には幅があり、数十万円で実施できるサービスから数百万円かかるサービスもあります。
診断を受けるシステムの規模、診断内容、手段、サポート内容などによって費用が変わるため、費用内訳を確認して適切な費用設定のサービスを選びましょう。
同業他社での導入実績の多さで選ぶ
システムの診断を行う際には業種による特性を考慮する必要があるため、同業他社を数多く扱った実績がある会社の方が診断の質が高いことが多いです。選定の際には、同業他社の導入実績が多い会社を選ぶのも重要な観点のひとつといえるでしょう。
脆弱性診断に関するよくある質問
脆弱性診断が必要になるのはどんなケース?
社内システムやネットワーク、Webサイトなどを最初に構築した際には、一度脆弱性診断を行って脆弱性の有無を確認しておく必要があるでしょう。その後は、定期的に診断を行うことで、新たに発見された脆弱性の対策を行うことが可能です。
脆弱性診断はどの程度の頻度で実施すればよい?
脆弱性診断を行う箇所はどこ?
社内ネットワーク、サーバーや端末などの機器類、Webアプリケーションなどに対して診断を行います。
脆弱性診断の費用については?
SHIFTの脆弱性診断サービスについて
SHIFTでは、セキュリティ基準の高い金融業界の実績が豊富であり、高品質・低価格・短納期の診断サービスを実施しています。診断基準はASVSやOWASP TOP10などの国際基準に準拠しており、第三者検証としても最適です。常時250名以上のリソースを抱え、年間を通してスムーズに案件対応が可能です。
高度な知識をもつ専門家集団が、それぞれの環境やニーズにあったセキュリティソリューションの導入支援を行います。
関連サービスについて
まとめ
今回は、「脆弱性診断」について概要を説明してきました。システムを構成するOSやソフトウェアは、脆弱性を根絶することが困難であり、新たな脆弱性が次々と発見されているというのが今日の状況です。
サイバー攻撃によるインシデントでは、脆弱性に対する対策が不十分だったために被害の発生や拡大につながるケースがあります。そのため、「脆弱性診断」を効果的に活用し、セキュリティ対策を行っていきましょう。
SHIFTの脆弱性診断サービスはこちらをご覧ください。
>>脆弱性診断(セキュリティ診断)サービスページへ
ご相談はこちらから
>>お問い合わせページへ
>>料金についてページへ
資料ダウンロード/動画視聴