脆弱性診断のイメージ

脆弱性診断とは?

サーバ環境を脆弱性診断

脆弱性診断とは、ネットワーク・OS・ミドルウェアやWebアプリケーションなどに脆弱性がないか診断することです。脆弱性診断を実施し、ネットワーク/サーバ、Webアプリケーションのセキュリティの現状を確認することで、攻撃者からの悪意ある攻撃や情報漏えい事故などのリスクを未然に防ぐことができます。
個人情報やWebサービスをサイバー攻撃から守る第一歩としてセキュリティ対策をするためには、まずセキュリティの問題点(脆弱性)を見つけることが必要です。 脆弱性診断は、ウイルス対策の実施やOSやアプリケーションのバージョンアップなど基本的な対策の次に必要とされる対策であるとともに、比較的安価かつ短期間での実施、結果確認ができます。個人情報漏洩やサイバー攻撃などによる多大な被害を未然に防ぐ、非常に費用対効果の高いセキュリティ対策です。

脆弱性とは?

攻撃者は脆弱性をつき企業の機密情報や個人情報などを搾取したりWebサイトを改ざんをします

脆弱性(読み方:ぜいじゃくせい)(英語:バルネラビリティ(Vulnerability))とは、Webアプリケーション、OS、ミドルウェア、ネットワークに潜む、セキュリティ上の弱点、問題点、欠陥のことです。Webサイト、Webアプリケーション(ソフトウェア)は、人間が設計をしたものであるため欠陥や不具合があることは避けられません。また、脆弱性と似た言葉として「セキュリティホール」があります。本来できないはずの操作が出来てしまったり、見えるべきでない情報が第三者に見えてしまったりするような不具合のことを指します。悪意のある攻撃者は企業や団体が保有するITシステムやWebサイトやWebアプリケーション内の重要情報、機密情報、個人情報を搾取するために、脆弱性やセキュリティホールに対して攻撃を仕掛け盗み取る行為を実行します。情報の単価は安いですが、数百万、数千万という大規模で盗み取ることができれば、闇Web(ダークウェブ)で高額で取引されるため、金銭目的の犯行が多いことも特徴です。また近年はブロックチェーンを利用した仮想通貨が流通しているため、直接金銭に関係するデータを盗み取ってしまう大胆な犯行も実在します。

脆弱性診断の必要性と目的

サーバ環境のセキュリティ対策

脆弱性診断の目的は、脆弱性を悪用された場合にシステムを意図的または意図的ではない侵害につながる可能性のある、既知の脆弱性の特定、ランク付け、および報告をすることです。従って既知の脆弱性を把握し危険度を知ることで、講じるべき対策方法が理解できます。似たものに「ペネトレーションテスト」が存在しますがペネトレーションテストの目的は、システムに侵入し脆弱性を悪用してシステムコンポーネントのセキュリティ機能を回避または無効化の可能性の特定することです。ペネトレーションテストはシステム全体の観点で侵入できる弱点が存在し悪用できてしまうことを確認することで講じる対策方法を理解できます。以上の内容から分かるように、脆弱性診断の必要性は、診断後に発見された脆弱性の種類(カテゴリ)や危険性(重要度)を「共通脆弱性評価システム(CVSS)」というもので評価をしランク付けすることで、講じるべき対策方法が理解できるためです。ユーザに安全なWebサイト、Webアプリケーションを提供することや、情報セキュリティ対策のコスト低減、情報セキュリティインシデントの発生防止の為に、脆弱性診断は必要とされています。

脆弱性診断と情報セキュリティとアプリケーションセキュリティの関連性

企業や団体が取り組むセキュリティ対策には、情報セキュリティとアプリケーションセキュリティに大別できます。脆弱性診断には両方とも関連性があり、目的に応じた取り組むべき課題が存在します。

情報セキュリティに取り組む課題・目的

企業や団体が情報セキュリティに取り組む目的は、セキュリティにおける脅威と脆弱性が存在するためです。リスクアセスメント(特定・分析・評価)をすることで講じるべき対策が見えてきます。また情報セキュリティの可用性を意識する上で、災害に備えてシステムバックアップを実施することも必要です。

アプリケーションセキュリティの課題・目的

アプリケーションエンジニアがアプリケーションセキュリティに取り組む目的は、アプリケーションに潜む脆弱性を攻撃者が悪用し、アプリケーション内に保管されている情報資産を窃取することを防止するためです。

脆弱性を放置すると、どのようなリスクがあるのか?

悪意のある第三者から脆弱性を利用され、外部から不正アクセスされ機密情報の漏えいやパソコンがウィルスに感染するなどの深刻な事態を招くことになります。具体的に3つの代表的な例を上げてご説明します。

  • 攻撃者からのチャンスが拡大する

    玄関のドアが壊れて泥棒が侵入している

    脆弱性を知らずに放置するとどのようなリスクがあるのでしょう。例えば家で考えてみましょう。玄関のドアが壊れていて、それを知っている人なら誰でも開けて入れる状態になっているのが、脆弱性を放置しているということになります。泥棒など犯罪者が、それを知ったら、いつでも自由に侵入できることになってしまいます。家に置いてあった金品が盗まれるのですが、玄関のドアが壊れていることを知らずにいると、なぜこんなことが起こるのかわからず、犯罪者はドアを確認して、まだ侵入できると知ったら、同じようなことを何度も繰り返すことができます。脆弱性があるということは侵入をしようとする人にチャンスを与える事になります。家の玄関はもとより、どの扉もしっかり鍵をかけて、容易に侵入できないようにしておくのが当たり前のように、サイトも常に脆弱性がないことを確認しておく必要があります。

  • ウイルス感染の危険性がある

    パソコンがウィルスに感染している

    脆弱性を、家のドアが壊れていて侵入できる状態という例で説明しました。家の場合は金品の窃盗が目的の場合が多いでしょう。それではサイトやWebアプリケーションの脆弱性を狙う犯罪者はどのようなことをするのでしょうか?目的や狙いはいろいろあります。改ざんすることで自己顕示するような愉快犯から、政治的な主張をしたり、後述するような金銭目的の犯罪も増えています。イメージを傷つけるような情報やデータの改ざんという場合もありますが、多くの場合は、いわゆるマルウェアと呼ばれる、不正な動作や本来の意図とは別の有害な動作をさせるような悪意のあるソフトウェアを忍び込ませます。ワーム、トロイの木馬。スパイウェア、キーロガーなどいろいろなマルウェアがありますが、もっとも一般的なものはウイルスといわれるものです。サイトやアプリケーションにアクセスした場合に感染し、被害が拡大していきます。つまり、脆弱性があるサイトやWebアプリケーションとそれを管理、運営している会社だけでなく、そこにアクセスしたり、利用したりするお客様にも被害が広がる事になります。このような問題への対策やツールはいろいろとありますが、まず脆弱性がないか確認して、解消しておくことが第一歩になります。人間で言えば健康診断です。病気になったら薬を飲んで治すのではなく、未病の段階で早めに対策をして健康を管理することが大切です。

  • 金銭目的の犯罪発生の可能性がある

    パソコンがマルウェアに感染している

    脆弱性を利用したサイトやWebアプリケーションへの侵入は、当初は改ざん目的などが多かったのですが、近年は金銭を目的にした犯罪が多くなっています。不正アクセスによって搾取された個人情報が売買されたり、クレジットカード情報が盗まれて不正利用されたりしています。また管理者権限を乗っ取ったり、不正にダウンロードした個人情報をもとにして、身代金を要求する、ランサムウェアと呼ばれるマルウェアが増えてきています。当初は個人が対象だったランサムウェアも、近年は企業が対象になっており、WannaCryと呼ばれたマルウェアは多くの企業や公的機関が攻撃の対象になり、社会的な脅威として広く知られるようになりました。サイバー犯罪は、ビットコインなど仮想通貨の広まりとも関係し金銭がからんだビジネスの様相を呈しており、このような被害にあわないためにも、脆弱性を調べ、発見し、修正するなど対策を講じておくことが急務になっています。

脆弱性診断についてのよくある質問

初めて脆弱性診断を実施する際はイメージがつきにくく様々な疑問点が存在します。実施頻度や種類、診断箇所などをピックアップし一般的な視点や当社が提案するユースケースと合わせて解説をしてみましたのでご参考下さい。

脆弱性診断の実施頻度はどのくらいが良いのか?

年間カレンダー

例えば自社のWebアプリケーションの設定や脆弱性が無いか確認をする場合は1年に1回程度と機能追加などの変更が実装された場合に脆弱性診断を実施すると良いでしょう(※参考情報:JPCERT/CC「Webサイトへのサイバー攻撃に備えて」

サイバー攻撃、標的型攻撃は、新たな、高度かつ革新的手法が使われ、攻撃対象も日々変化しています。サイバー犯罪者たちが、シンプルなツールやクラウドサービスなどを使い、重大な脆弱性を悪用してWebサイトへ攻撃することによってもたらされる被害が急増しています。Webサイトのセキュリティを守るためには、常に外部からの脅威に備えておく必要があります。定期的に脆弱性診断を実施することで情報漏えい事故などのリスクを未然に回避することができます。
またECサイトなど大量の個人情報を扱っている企業にとって、不正アクセスなどによる情報漏えいは、ビジネスに致命的な影響を及ぼします。自社サイトに直接的な被害はなくても、脆弱性が悪用されてWebサイトを攻撃の踏み台にされる場合もあります。常に外部からの脅威に備え、定期的な脆弱性診断を実施することで、自社だけでなくサプライチェーン全体のセキュリティを守ることができます。

脆弱性診断には、どのような種類があるのか?

脆弱性診断には診断の深さによって2種類ある

脆弱性診断には「ツール診断」と「手動診断」があります。ツール診断はコーポレートサイトを費用を抑えて診断する場合やWebアプリケーションを開発時に手早く検査したい場合におすすめです。また、手動診断はECサイトのセキュリティ検査や個人情報を大量に取り扱っているWebアプリケーションを診断する際に適しており、箇所によって深く、精度の髙い診断が可能です。ツール診断と手動診断の見分け方の例は以下のページをご参考ください。

脆弱性診断の診断箇所はどこなのか?

脆弱性診断の診断箇所はサーバとクライアントで大きく2つに分けられます。具体的な該当する箇所は次の説明を御覧ください。また、当社はWebサイト/Webアプリケーションのタイプやサーバやネットワーク機器で構成されているシステム構成によって異なるという考え方でご提案をさせていただいており、「脆弱性診断のユースケース一覧」としてまとめておりますので、合わせてご参考下さい。

サーバサイド

サーバサイドとはサーバに保存しているWebアプリケーション全体を示すことや、Webアプリケーションの機能を追加する際に用いるWeb APIを示したり、サーバOSやネットワーク、ミドルウェアなどプラットフォームを示す3種類に分類されます。それぞれ脆弱性診断の方法は大きく分かれますので、利用するツールやエンジニアの手動診断の方法も変わります。また一般的に脆弱性診断と言えばサーバサイドの診断と捉えて置くと間違い有りません。次で説明をするクライアントサイドはWebアプリケーションの中でもjavascriptなど部分的に特定した箇所だったり、近年利用されてきたモダンWebであるSPAやPWAといった特殊なWebアプリケーションやスマートフォンにインストールをするモバイルアプリを対象としたものです。

クライアントサイド

クライアントサイドの脆弱性はパソコンやスマートフォンのブラウザで動作をする言語javascriptに関連しています。javascriptはWebページの動作(振る舞い)を制御するためにscript言語というもので命令文を書きます。主にhtml5とjavascriptで作られたWebページで、javascriptの使い方を誤ったり、過去の古い方式の書き方を多用しているとWebサイトの脆弱性が見つかってしまうため気をつけなければいけません。主に代表的な例として以下2つ挙げます。

Type0:DOM based XSS(htmlを直接操作する古いjavascriptメソッドを多用し続けるのは危険)
※ クロスサイトスクリプティング(XSS)

html内のDOM(Document Object Model)とは、htmlマークアップがなされた資源をリソース要素の木構造で表現し操作可能にする仕組みのことです。DOMはHTML文書やXML文書をオブジェクトの木構造モデルで表現することで、javascriptのようなプログラムで制御することができhtmlの内容を書き換えるような事もできます。
脆弱性の例は以下の3つに分類されると言われています。

  1. リンク情報を動的に出力する処理に問題がある
  2. アクセス解析用のタグの設置方法に問題がある
  3. javascriptライブラリに問題がある

例えば、javascript内にURLのアドレスが書かれている場合は、javascript内のURLを書き換えてしまうことでユーザが意図しないWebサイトに誘導し騙すこともできます。このような攻撃方法を「クロスサイトスクリプティング(XSS)」と呼び、偽造したサイトに誘導することでユーザが入力した個人情報を盗み取ることを目的とした攻撃を実行します。

【出典】独立行政法人情報処理推進機構 技術本部セキュリティセンター(IPA):IPAテクニカルウォッチ「DOM Based XSS」に関するレポート〜 javascriptでHTMLを操作するアプリは要注意 〜

javascriptでリダイレクトやフォワードを多用し続けるのも危険
※ 未検証のリダイレクトとフォワード

リダイレクトやフォワードといったURLの向きを変えたり転送させたりしユーザを別のURLに強制移動させることをjavascriptで多用することは推奨されていません。リダイレクトやフォワードは一般的には不特定多数のユーザが見ることの出来ない「.htaccess」ファイルに記述するか管理者のみアクセスができるディレクトリに保存されているプログラムで制御するなどの方法で行われます。これらをあえてjavascriptで記述をする場合には以下のように書かれます。

・リダイレクト(向きを変える)
response.sendRedirect("移動先のページ");
・フォワード(転送)
application.getRequestDispatcher("転送先のページ").forward(request,response);

javascriptファイルは不特定多数のユーザがアクセスできるディレクトリに保存されているため、悪意のある攻撃者から標的型攻撃を受けてしまいjavascript内のページのURLを書き換えられてしまうとユーザは気が付かず意図しないサイトへ誘導されてしまいます。この事も上記の例と同様に「クロスサイトスクリプティング(XSS)」と呼ばれます。Webアプリケーションの構造上、javascriptでページ強制移動を行わなければいけない場合は主に以下の内容に気をつけて記述をすることで対策できます。

  • オープンリダイレクターを作り込まない(あるURLを開くと自動的に他のページにジャンプするリダイレクト機能が、攻撃者によって任意の外部ページへのリダイレクターとして利用可能になっている問題)
  • 任意の場所へ遷移(移動)可能なフォワーダーを作り込まない
  • リダイレクトやフォワードの使用をできる限り避ける
  • ユーザパラメータで移動先を決定しない
  • 移動先のパラメータが必要な場合、提供された値の検証を行う
  • 移動先を限定する(移動先のドメインのリスト化)

【出典】独立行政法人情報処理推進機構 技術本部セキュリティセンター(IPA):IPAテクニカルウォッチ「DOM Based XSS」に関するレポート〜 javascriptでHTMLを操作するアプリは要注意 〜

脆弱性診断サービスの実施費用

アイティーエムの脆弱性診断サービスは、サーバ、ネットワーク、Webアプリケーション、モバイルアプリなど様々な箇所に対応しています。費用は1回の診断から年間無制限プラン、毎月お支払い頂く定額制で運用サポートを含めたサービスなど様々な形態でご提供しております。

セキュリティ診断・脆弱性診断サービス

お客さまのネットワーク/サーバー、Webアプリケーションの脆弱性を洗い出し、攻撃者からの悪意のある攻撃や情報漏えい事故などのリスクを未然に回避するためのセキュリティ診断サービスです。他社が設計・構築したシステムでも診断可能ですので、システムの懸念点を抱えているお客さまに広くご提供可能です。お客さまが抱えている課題に合わせて、 SiteScan2.0WebSiteScanWebSiteScanProの3つのシリーズよりお選びいただけます。

モバイルアプリ向けセキュリティサービス

モバイルアプリ向け脆弱性診断サービス Appchecker」は、手間のかからないツール診断と専門家の手動分析の組み合わせによる高品質ですばやい分析レポートをリーズナブルな価格で提供します。「モバイルアプリ向け脆弱性手動診断サービス AppChecker Pro」は、実際にハッカーが用いる攻撃手法を用い、高い技術力をベースにしたワールドクラスの手動診断です。「次世代型モバイルアプリ保護サービス AppProtect(DxShieid/LxShield)」次世代型モバイルアプリ保護技術でモバイルアプリをハッキングから守ります。

セキュリティ運用サービス

セキュリティ運用サービスは、お客様と予め設定したスケジュールに沿って、当社が定期的な脆弱性診断を実施し、その結果をご報告いたします。また、お客様側でのシステムの構成変更等があった際には、ご要望に応じて都度診断も承ります。診断結果レポートに基づく対策支援や運用代行も当社エンジニアが対応いたしますので、安心・安全なシステム運用が効率的に実施可能です。また、他のセキュリティサービスと組み合わせ、年間を通してセキュリティコンサルやアセスメントも承ります。