「自社のWebアプリケーションを安全に提供するには、脆弱性診断が有効なの?」
「手間をかけず、簡単に脆弱性診断する方法はある?」
脆弱性診断とは、Webアプリケーションやネットワーク・OS・ミドルウェアに攻撃がつけ込める弱点がないか検証を行う診断のことです。情報漏えいなどのリスクを防ぎ、サービスを安全に提供するには、脆弱性診断を実施する必要があります。
本記事では、以下の内容を詳しく解説します。
- 脆弱性診断とは
- 脆弱性診断の必要性
- 診断対象について
- ツール診断と手動診断の違い
- 脆弱性診断を選ぶときのポイント
本記事を読むことで、脆弱性診断の重要性や、手間をかけずに脆弱性診断ができる方法が分かります。
サイバー攻撃の手法が多様化しており、セキュリティ対策の重要性がますます高まっている今、セキュリティを強化したいと考えている企業の方は、ぜひご一読ください。
脆弱性診断に課題を抱えている企業の方、必見!
手間をかけず簡単に脆弱性診断を実施するには、どうすべき?
手動とツールなど診断方法の違いとそれぞれの特徴を理解し、自社に合う最適な方法を見つけましょう。専門知識がなくてもスピーディーに検査が行える方法はこちらです。
脆弱性診断(セキュリティ診断)とは
脆弱性診断とは、脆弱性を突いた攻撃を受けたとき、被害につながる可能性がないか検証することです。診断結果をもとにセキュリティ対策をすれば、サイバー攻撃による不正アクセスや情報漏えいを未然に防ぐことが可能です。
脆弱性診断を実施せずにいると、セキュリティの欠陥を突いたサイバー攻撃を受けるリスクが非常に高まります。
サイバー攻撃によって企業の機密情報や個人情報が漏えいすれば、企業イメージや信頼が低下し、大きな損害を被るでしょう。攻撃の手口は多様化・巧妙化しているため、脆弱性診断を行い、対策を施すことはとても重要です。
脆弱性診断とペネトレーションテストの違い
脆弱性診断と似たサービスにペネトレーションテストがあります。ペネトレーションテストとは、サイバー攻撃を疑似的に実行し、Webシステムなどの攻撃耐性をチェックすることです。
脆弱性診断は「Webアプリケーションやネットワークなどにおける脆弱性の検出が目的」であることに対して、ペネトレーションテストは「攻撃者に悪用される可能性のある脆弱性を、攻撃者の視点で検証することが目的」という違いがあります。
例えば、自社の脅威を「機密情報の窃取と外部への持ち出し」と定めた場合、ペンテスター(攻撃者役)にとってそれは「目的」となります。ペンテスターはその目的を達成するための攻撃シナリオを作成し、そのシナリオに基づいて疑似的な攻撃を行い、攻撃者の視点で検証を行う点がペネトレーションテストの特徴です。
脆弱性診断 | ペネトレーションテスト |
---|---|
攻撃の入口になる可能性のある箇所(脆弱性)を検査 | 網羅性を重視せず、機密情報へのアクセスや権限奪取などが可能か攻撃者の視点で検証 |
ツールまたは技術者が手動で診断 | 技術者が手動で診断 |
Webアプリケーションやネットワークなどを対象とする脆弱性の検出が目的 | 攻撃者に悪用される可能性があるセキュリティの脆弱性を攻撃者の視点で検証することが目的 |
2つの診断方法は役割が異なり、セキュリティ強化のためにはどちらも大切な診断です。
たとえば脆弱性診断においてリスクが低いと評価された問題が、ペネトレーションテストでは攻撃の起点として使われることが考えられます。
また、ペネトレーションテストでは攻撃シナリオに含まれておらず見逃した脆弱性が、脆弱性診断によって検出できることもあります。
脆弱性診断とペネトレーションテストは、診断の目的に応じて選ぶとよいでしょう。
脆弱性診断とASMの違い
脆弱性管理ができるセキュリティ対策には、ASM(Attack Surface Management)もあります。ASMとは、インターネットからアクセス可能なIT資産を見つけ出し、そこに潜む脆弱性を継続的に検出・評価するプロセスのことです。
脆弱性診断とASMは似ていますが、調査するIT資産の範囲、情報の確度、IT資産への影響に違いがあります。
違い | 脆弱性診断 | ASM |
---|---|---|
IT資産の範囲 | 企業が把握しているIT資産 | 未把握のものを含む、インターネットからアクセス可能なIT資産 |
情報の確度 | IT資産に模擬攻撃を仕掛け、その応答を評価して脆弱性を特定する | IT資産に含まれる可能性のある脆弱性の示唆にとどまる |
IT資産への影響 | 調査時の模擬攻撃が、IT資産の動作に影響を与える可能性がある | 調査する際、IT資産への影響はほとんどない |
ASMの大きなメリットは、企業が把握していないIT資産も調査対象になる点です。脆弱性診断では対応しきれない部分をASMで補完すれば、より包括的なセキュリティ対策が可能になります。
▼関連記事
ASM(Attack Surface Management)とは|必要性と生成AIを活用した最新アプローチを解説
脆弱性は完全に無くなることはない
脆弱性とは、Webシステム・アプリケーション/OS/ネットワークなどに潜むセキュリティ上の欠陥のことです。悪意ある第三者は企業が持つ機密情報などを盗むために、脆弱性を突いた攻撃を仕掛けてきます。
脆弱性が生じる原因は、設計ミスや検証不足、Webシステム・アプリケーション/ネットワークなどの連携の複雑さなどです。大事なことは、どれほど気を付けていても脆弱性は発生してしまうものであるため、リスクにいち早く気付くためにも定期的に脆弱性診断を行う必要があります。
脆弱性診断が必要な4つの理由
脆弱性が放置されていると大きな事故につながる可能性が高まります。安全のためには定期的に脆弱性診断を実施することが重要です。
他にも、「顧客からの信頼獲得」や「コストの削減」などが挙げられます。脆弱性診断が必要な理由を理解して、より安全な自社サービスの提供を目指しましょう。
1. サイバー攻撃を未然に防ぐため
脆弱性診断で問題を早期発見できれば、攻撃を受ける前に対策を講じることが可能です。
脆弱性を放置してしまうと、攻撃を受けるリスクが高まります。
リスクの大きさを算定する方法にはいくつかありますが、分かりやすいものとして「脅威」と「脆弱性の対策状況」から被害が発生する可能性を計算する方法があります。
以下の例をもとに、脅威の発生回数と脆弱性の対策状況をかけ合わせることで、いつ発生してもおかしくない状況なのか、それとも通常起こりえないと判断できるレベルのリスクなのかを確認します。
意図的脅威 盗聴、ウイルス感染、不正アクセス、改ざんなど、悪意ある攻撃者が原因の脅威
偶発的脅威 USBの紛失、PCの盗難、設定ミスなど、ヒューマンエラーが原因の脅威
環境的脅威 地震、落雷、火災など、災害が原因の脅威
意図的脅威として挙げられる不正アクセス、改ざんなどは、インターネット経由で誰でも簡単に攻撃できてしまうという背景もあり、最も対策すべきリスクです。
攻撃者に脆弱性を突かれる前に脆弱性診断の実施など対策をとることで、さまざまなセキュリティリスクを防ぐことができます。
2. 安全な自社サービスを提供するため
脆弱性診断でセキュリティ上の問題点をなくすことで、サービス利用者に安心してWebシステム・アプリケーションを利用してもらえます。顧客からの信頼獲得にもつながるでしょう。サービスを提供する側として、顧客が不利益を被るリスクを減らすことは非常に重要です。
実際、セキュリティ事故が発生すれば情報漏えいなどの多大な被害が出るため、セキュリティ対策が万全か気にする顧客は増えています。脆弱性診断によってリスクを早期発見することは、安全に自社サービスを利用し続けてもらう上でとても大切です。
ECサイトのセキュリティ対策の甘さが大きな問題に
ECサイトへのサイバー攻撃によって発生する「個人情報やクレジットカード情報の漏えい」が近年多発し深刻な問題になっているため、注意喚起がたびたび行われています。
事態の深刻度から、2023年6月30日には経済産業省と警察庁がサイバー攻撃によるクレジットカード番号等の漏えい事案に関する対策の推進に関する覚書を締結しました。
2023年 ECサイトの脆弱性・クレジットカード情報保護のための注意喚起
”ECサイトの公開前に脆弱性診断を行い、見つかった脆弱性を対策する” 区分:必須
引用:IPA|ECサイト構築・運用セキュリティガイドライン「表2 EC サイトの構築時におけるセキュリティ対策要件一覧」2023年3月策定
“加盟店は、カード情報を保持しない非保持化(非保持と同等/相当を含む)、又はカード情報を保持する場合は PCI DSS に準拠する”
引用:一般社団法人日本クレジット協会|クレジットカード・セキュリティガイドライン【4.0版】2023年3月改定
自社が抱える情報資産を攻撃から守るためには、定期的に脆弱性診断を実施し、適切なセキュリティ対策を講じることが重要です。
「ECサイトのセキュリティ|重要な対策方法をわかりやすく解説」では、ECサイトを安全に構築・運用するためのポイントを紹介しています。ECサイトのセキュリティ対策について、更に詳しく知りたい方は、ぜひご一読ください。
また、「EC-CUBEの脆弱性|リスクを最小限にするための簡単な方法」では、EC構築システムのEC-CUBEで実際にあった攻撃事例や、OSS(オープンソースソフトウェア)でECサイトを運用する時に発生しやすい脆弱性、対策などを解説しています。OSSでECサイトを構築している方は、ご一読いただく事をおすすめします。
3. 効率的にセキュリティ対策を実施するため
診断によって脆弱性を把握して優先的に修正すべき部分が分かれば、効率的にセキュリティ対策できる上にコストも抑えられます。
全体像が把握できないまま重要度の低い部分から修正すると、別の箇所で重大な問題が見つかった際に工数の手戻りが発生してしまい、無駄な時間やコストを消費する可能性があります。
脆弱性診断で問題点の本質が理解できれば、改善すべき点を洗い出して効率的に修正作業を進められ、結果的にコストも安くなります。
4. 開発手法の多様化に対応するため
セキュリティを意識した開発はもちろん重要ですが、開発が高速化し、リリース頻度が増えているなかで、開発者が本来の業務と並行してセキュリティ対策を行うことが今までになく難しくなっています。
脆弱性診断は開発とは別でセキュリティに特化した診断を実施するので、開発者に負担をかけない効率的かつ効果的なセキュリティ対策と言えます。
脆弱性診のやり方|手動診断、ツール診断
脆弱性診断のやり方には、手動診断とツール診断があります。それぞれ特徴やメリットが異なり、2つの手法を組み合わせることでセキュリティをより強化できます。診断の目的や予算に合わせて使い分けるとよいでしょう。
手動診断のメリット・デメリット
手動診断は、セキュリティの専門知識を持つ技術者がWebシステム・アプリケーション上の欠陥を検知するやり方です。細やかな検査が可能で精度も高く、複雑な構造の場合やWebシステム・アプリケーション内で権限昇格が可能かなど人の知見を必要としたり、細部まで診断する必要があるような、ツール診断では見逃してしまう脆弱性を見つけられます。
ただし、人の手で一つひとつチェックするため診断料が高く、依頼する検査対象が広いと、費用も時間もふくれ上がる面もあります。その結果、一部の画面しか診断できない、Webサイトの画面数を絞らざるを得ない場合も多く見られます。手動診断のみの場合、診断を受けていない画面に残る脆弱性が攻撃の引き金になる可能性があります。
また、結果が出るまでに時間がかかるため、急を要する場合に対応できないこともあるでしょう。
基本的なチェックはツール診断を活用し、気になる部分だけ手動診断を依頼するのがおすすめです。
ツール診断のメリット・デメリット
ツール診断は、脆弱性診断ツールを使ってWebシステム・アプリケーション上の欠陥を検知するやり方です。チェックしたいサーバー情報やWebページのURLなどを登録して診断を実行すると、自動で脆弱性を検知します。スピーディーに脆弱性を見つけるにはツール診断がおすすめです。
ツール診断のメリットは、脆弱性診断のために割く手間や時間を大幅にカットでき、均一な診断を簡単に実行できることです。また、開発の途中で定期的にツール診断を実行すれば問題点を把握した上で開発できるため、手戻り工数が減ってコストの削減にもつながります。
一方で、サービスとして提供を受けるか、自分たちで製品を使うのか熟考し、自社に合う診断タイプを選択する必要があります。SQLやXSSなど「主要項目に絞った診断」で良いのか、OWASPやIPAなど「標準的な診断項目を満たしている診断」を必要とするのかも考慮する必要があるでしょう。
自社独自の結論をしっかり出すことができれば、適切なセキュリティ対策になりますが、「選ぶこと」が難しいため、注意が必要です。
また、ツールでは対応できない診断対象があることも留意しておく必要があるでしょう。ツールは標準化された診断手法を用いているので、独自に作り込んだWebアプリケーションや、人の知見が必要とされる複雑な画面操作などは、手動診断でしか脆弱性を検知できないことがあります。
近年の脆弱性診断ツールは進化している
近年はJVNやCVEなどで採番され、既知の脆弱性として報告された翌日には検出可能になっているような高機能のツールもあります。
今やツールは「とりあえず」というレベルではなく、きちんと選べば適切なセキュリティ対策になります。一方で「選ぶ難しさ」が課題になっています。
さまざまなツールの中から自社に合うものを選ぶには、まず脆弱性診断ツールについて理解を深めることが重要です。「脆弱性診断ツール(サービス)|無料・有料の違いと5つの選定ポイント」を参考に、ツールの選び方について知ることをおすすめします。
現在において「最も望ましいアプローチ」は、一般的な診断方法で見つかる脆弱性はツール診断で定期的に対処し、独自の作りに起因する脆弱性は手動診断で確認するという組み合わせでしょう。
脆弱性診断の費用
脆弱性診断の費用は、数十万から数百万円とサービスによって幅広くなっています。診断範囲が広く精度が高いほど、費用が高くなるのが一般的です。
また、ツール診断と手動診断では、同じ予算でも検査できる範囲や深度が異なります。例えばツール診断の場合、100万円の予算である程度まとまった画面数や、2~3個の一連の機能を診断可能です。手動診断の場合は、100万円あると数画面を深くチェックできます。
脆弱性診断サービスの提供会社によってはプランを複数用意しているため、予算に合わせて診断内容を選択することも可能です。
脆弱性診断の種類
脆弱性診断は、アプリケーション診断とネットワーク診断の2種類があります。
ここでは、アプリケーション診断とネットワーク診断の特徴、診断できる項目を詳しく解説します。
ネットワーク診断
ネットワーク診断は、OS/ネットワーク機器/サーバーなどを対象とした脆弱性診断です。
「既知の脆弱性に対応できているか」「機器の設定状態に問題はないか」などを検査します。ネットワーク診断で検査する主な項目は、以下の通りです。
- ポートスキャン
- Web・メール・DNSサーバーの脆弱性診断
- 権限・設定の適正チェック
- アカウント検査
なお、ネットワーク診断にはインターネット経由で診断する「リモート診断」と、社内ネットワーク経由で診断する「オンサイト診断」の2つがあります。
リモート診断ではファイアウォールのアクセス権限の適正チェック、サーバーなどの脆弱性診断を実施します。オンサイト診断ではエンジニアがクライアント企業の内部ネットワークに接続し、脆弱性診断を実施します。
アプリケーション診断
アプリケーション診断とは、インターネットを介して使用するWebアプリケーションを対象とした脆弱性診断です。ログイン機能や入力フォームの処理など、Webアプリケーションの機能に対して幅広く診断を実施します。
診断を実施するタイミングはサービスのリリース前が多く、情報漏えいや不正アクセスにつながるような脆弱性はないかなどを検査します。
アプリケーション診断で検査する主な項目は、以下の通りです。
- クロスサイトスクリプティング
- SQLインジェクション
- OSコマンドインジェクション
- ディレクトリリスティング
- パラメータの改ざん
- パストラバーサル
代表的なWebアプリケーションの脆弱性
ここでは、発生頻度が比較的高い脆弱性について紹介します。脆弱性の種類とその被害を知ることは、自社のニーズに合う脆弱性診断を検討する上での判断材料になりますので、ご一読いただくことをおすすめします。
クロスサイトスクリプティング
クロスサイトスクリプティング(XSS)はWebアプリケーションに限らず、総合的な脆弱性の中でも最も件数の多い脆弱性です。
個人情報を奪うことを目的とした悪意のあるスクリプトが多く、なりすましの被害に遭ったり、偽のページを表示される可能性があるため危険視されています。
▼関連記事
クロスサイトスクリプティング(XSS)|影響と対策をわかりやすく解説
SQLインジェクション
Webアプリケーションの脆弱性の中でも、SQLインジェクションは広く知られています。攻撃された場合、データベースの不正な操作を許してしまい、情報漏えいのリスクが想定されるため非常に危険です。
▼関連記事
SQLインジェクションの対策|被害事例と攻撃が起こる仕組みを解説
Javaの脆弱性
近年の開発手法を導入する企業は増えていますが、依然としてJavaやJavaベースのフレームワークによる開発も行われています。Javaの脆弱性を突かれると、不正にデータを操作・閲覧されたり、システムの乗っ取りによって踏み台にされる可能性もあります。このような攻撃を受けると、さまざまな犯罪に悪用されるため注意が必要です。
▼関連記事
Javaの脆弱性|攻撃による影響や被害事例を元に2つの有効な対策を紹介
WAF(Webアプリケーションファイアフォール)
Webアプリケーションに潜む脆弱性を狙った攻撃を防ぐためのセキュリティ製品として、WAF(ワフ)があります。WAFは、Webアプリケーションに見つかった脆弱性が修正されるまでの予防壁として有効です。詳しくは「WAFとは|どこまで守れる?セキュリティ対策の効果をわかりやすく解説」にて解説していますので、脆弱性診断と併せてご検討ください。
脆弱性診断を選ぶときにおさえたい4つのポイント
脆弱性診断を提供している会社は多いため、自社にはどこが合うのか判断が難しいと感じることもあるでしょう。
選定時に失敗しないためには、4つのポイントに注目することが大切です。
- 診断水準は高いか
- 診断結果を元に対策ができるか
- 診断結果を元に対策ができるか
- 診断の提供形態は柔軟か
1. 診断水準は高いか
脆弱性の診断結果はセキュリティ対策の質に影響を与えるため、診断水準の高さは重要なポイントになります。診断水準を測る基準として、ASVS(Application Security Verification Standard/アプリケーションセキュリティ検証標準)を参考にするのがおすすめです。
ASVSとはOWASPが策定したセキュリティガイドラインで、安全なWebアプリケーション開発をする上で重要となる要件を定めています。利用したい脆弱性診断サービスが、以下の内容に準拠しているかを確認するとよいでしょう。
レベル | 対象のアプリケーション |
---|---|
Level 1(最低保障レベル) | 重要なデータを取り扱わないアプリケーション |
Level 2(推奨保障レベル) | 機密データなど情報の保護が必要なアプリケーション |
Level 3(最高保障レベル) | インフラ・医療・金融など重要度の高い取引が含まれるアプリケーション |
また、脆弱性診断サービスを選ぶ際には、自社が診断を受けたい項目が含まれてるかという点も重要です。サービスの利用料が安くても、検査できない項目が多いとセキュリティ対策としては意味がありません。費用だけで判断せず、診断項目の豊富さや水準の高さを加味してサービスを選びましょう。
2. 診断結果を元に対策ができるか
適切なセキュリティ対策を講じるには、診断結果が分かりやすく記載されているかどうかも重要です。診断結果の内容を理解できなければ、どのようなセキュリティ対策をするべきか判断しにくくなります。
検知した脆弱性の概要だけでなく、「対策方法まで記載されているか」「図や表を用いて見やすい工夫がされているか」などのポイントを確認しておきましょう。
3. 信頼できる提供会社か
脆弱性診断を検討する際に、信頼のおける提供会社であることは重要です。
おすすめは、認証を取得している企業です。企業ホームページに情報セキュリティマネジメントシステム(ISMS)が表示されているか、担当者がCISSP(Certified Information Systems Security Professional)を取得しているかなど確認してみるのもよいでしょう。
4. 診断の提供形態は柔軟か
脆弱性診断サービスを選ぶ際は、ツール診断と手動診断の両方を利用できるか確認するのがおすすめです。ツール診断しか提供していない会社もあるため、手動診断も利用できるか事前にサービス内容を確認しておきましょう。
手軽に検査できるツール診断と精度の高い手動診断を組み合わせれば、お互いの弱点を補いあってセキュリティをより強固にできます。
まとめ|自社サービスに最適な脆弱性診断を導入しセキュリティを強化しよう
脆弱性診断とは、脆弱性を突いた攻撃を受けたとき、被害につながる可能性がないか検証を行い、攻撃による被害を未然に防ぐためのものです。
脆弱性診断を実施すると、以下のようなメリットが得られます。
- サイバー攻撃を未然に防ぐことができる
- 安全な自社サービスを提供できる
- 効率的にセキュリティ対策を実施できる
- 開発手法の多様化に対応できる
脆弱性に素早く対応することで重大な事故を防ぎ、より安全なサービスの提供が可能です。
脆弱性診断を実施する方法には以下の2つがあります。
- 手動診断
- 精度が高く、細部までしっかり診断できる
- ツール診断
- 網羅的でスピーディーにWebの安全性を確認できる
- 比較的早く導入でき、診断を開始できる
- 手動診断より低コストである
一般的な診断方法で見つかるような脆弱性にはツール診断を、Webシステムの構成が複雑である、または独自の作りに起因した脆弱性がないか確認したい場合には手動診断を実施するというのが最も望ましい組み合わせになり、セキュリティをより強固なものに出来るでしょう。
脆弱性診断の重要性を理解し、効果的なセキュリティ対策を実施しましょう。