はじめに
「自社システムのセキュリティは完璧だ」と自信を持てる企業はどのくらいあるでしょうか。システムの一部であるソースコードのテストケースは網羅できても、外部からの脅威への備えやセキュリティ体制の強化について悩む企業の情報システム担当者やWebサービス・アプリ開発者も多いでしょう。
本記事では、セキュリティ対策にどこから手を付けるべきか迷っている方向けに、脆弱性診断の基本的なやり方と、自社に適した脆弱性診断サービスの選び方をご紹介します。
サイファー・テックでは、企業の課題にあわせたセキュリティ診断サービスを提供しています。脆弱性断では手動での診断も実施しているため、ツールを使った自動診断では見つけにくい脆弱性も発見することが可能です。
脆弱性診断とは?定義と目的
「脆弱性診断」は、システム内に存在するセキュリティ上の弱点(脆弱性)を発見し、リスクを把握するための診断です。これにより、システムがどのような攻撃に対して脆弱であるかを特定できます。診断結果を基に適切な対策を講じることで、利用者が安心してシステムを使用できる状態にすることが脆弱性診断の目的です。
脆弱性診断は、セキュリティ診断と混同されることが多くありますが、この2つには明確な違いがあります。「セキュリティ診断」は脆弱性診断を含むより広範な概念であり、システムやネットワーク、アプリケーション、プラットフォームなどの脆弱性や、組織のセキュリティポリシー、人材、業務プロセスなど、さまざまな側面のセキュリティレベルを把握する診断の総称です。両者の違いを理解しておくと、より効果的にセキュリティ対策を講じることができるでしょう。
セキュリティ診断の種類や詳細については、別の記事で詳しく解説をしています。こちらもあわせてご覧ください。
脆弱性診断の必要性
脆弱性診断を実施しなかった場合、どのようなリスクがあるのでしょうか。代表的なリスクとしては、以下のような事例が考えられます
- 脆弱性を悪用したサイバー攻撃による情報漏えい
- データの改ざんによる業務への支障
- サーバーやネットワークに負荷をかけられ、サービスが停止する など
実際、2022年には大手SNSサービスが脆弱性をついた攻撃を受け、約540万人分のユーザーデータが盗まれ、ハッカーフォーラムで販売されるという事案が発生しました。盗まれた情報には、ユーザーのアカウントID、名前、ログイン名、電話番号、メールアドレスなどが含まれており、この流出は大きなニュースとなりました(※1)。
既に問題となった脆弱性は修正されましたが、企業に対するユーザーの信頼は大きく損なわれる結果となっています。
(※1):540万件のTwitter漏えいデータが公開される 1700万件以上の新たな流出の可能性も|ITmedia NEWS
また、脆弱性を狙った攻撃、特にゼロデイ攻撃は近年増加しています。ゼロデイ攻撃とは、ソフトウェアの脆弱性が公表される前に行われる攻撃です。IPAの調査によると、ゼロデイ攻撃の脅威ランキングは2023年度は6位でしたが、2024年には5位にランクアップしました(※2)。2022年にはじめて脅威ランキングにランクインして以降、2年連続で脅威レベルが高まっています。ゼロデイ攻撃は脆弱性が修正される前に悪用されるものであるため、脆弱性診断だけで完全に防ぐことはできませんが、脆弱性診断で既知のリスクを管理し、他のセキュリティ対策と組み合わせることで、全体的なセキュリティを大幅に向上させることができます。
(※2):情報セキュリティ10大脅威 2024|IPA 独立行政法人 情報処理推進機構
このように、システムの脆弱性を放置すると、サイバー攻撃による情報漏えいや不正アクセスなどのリスクが高まります。これを防ぐためにも、脆弱性診断を早期に実施し、適切な対策を講じることが重要です。
主な脆弱性診断の種類
脆弱性診断には、「アプリケーション診断」と「プラットフォーム診断」の大きく2種類があります。ここでは、それぞれの特徴と重要性について詳しく解説します。
アプリケーション診断
アプリケーション診断とは、Webアプリケーション、スマートフォンやタブレット向けのモバイルアプリ、パソコン上で動作するデスクトップアプリなど、さまざまなアプリケーションにおける脆弱性を特定するための診断です。
アプリケーション診断を通じて見つけられる脆弱性には以下のような例があります。
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- 認証・認可の不備
データベースとのやりとりにおいて、適切な入力検証が行われていない場合、攻撃者がSQLインジェクション攻撃を仕掛け、データベースに不正アクセスする可能性があります。これにより、機密情報の漏えいや、データベースが改ざん・削除されるリスクがあります。
入力データの検証不足によって、攻撃者が悪意のあるスクリプトを挿入することが可能になります。この脆弱性は悪用されるとユーザーの個人情報が盗まれたり、セッションを乗っ取られたりされる可能性があります。
システムにアクセスするための認証(ユーザーの身元確認)や、アクセス権限に関する認可(どの情報や機能にアクセスできるかを決定する)の仕組みに欠陥がある場合、悪意のある攻撃者がシステムに不正アクセスすることを許してしまうことがあります。
アプリケーションのなかでも、特に顧客の個人情報や決済情報を扱うシステムでは、アプリケーション診断の実施がとても重要です。診断を行うことで早期に脆弱性を発見し、適切な対策を講じることができます。
プラットフォーム診断
プラットフォーム診断は、Webアプリケーションが動作するために基盤となるサーバー、データベース、ネットワーク機器の技術的な脆弱性を調査する診断です。また、これらのほかにもPCやIoT機器も対象に含まれることがあります。
プラットフォーム診断では、これらに対して単に技術的な脆弱性があるかどうかをチェックするだけでなく、それぞれのシステムや機器が適切に設定されているかどうかや、セキュリティポリシーに従って運用されているかどうかも診断します。
プラットフォーム診断を通じて見つけられる脆弱性には以下のような例があります。
- 不要なサービスやポートの開放
- 弱いパスワード設定やデフォルト設定
- 不適切な暗号化設定や証明書の使用
ネットワーク機器やサーバーにおいて、実際には使用されていないサービスやポートが開放されている場合、それらが攻撃者に悪用されると不正アクセスやリモートコード実行などのリスクが高まり、システムに不正な操作が加えられる恐れがあります。
プラットフォームの初期設定や管理者アカウントのパスワードが弱い場合、攻撃者は簡単にログインしてシステムにアクセスすることができます。デフォルトのパスワード設定が変更されていないことも同様に危険です。そのまま放置していると、管理者アカウントへの不正アクセスによる情報漏えいやシステムの乗っ取り、設定変更が発生する可能性があります。
データ通信の暗号化が不十分だったり、古い証明書や無効な証明書が使用されている場合、フィッシング攻撃が発生するリスクがあり、機密データの盗聴やデータの改ざん・漏えいなどが発生するリスクがあります。
これらの脆弱性を放置すると、攻撃者にシステムへの侵入経路を提供することになり、情報漏えいや不正操作、業務停止といった重大な問題を引き起こすリスクが高まります。特にインターネットに接続されたサーバーやネットワーク機器は24時間稼働しているため、放置された脆弱性は常に攻撃の対象となります。
どちらの診断もシステム導入時に初回診断を行うことがとても重要です。その後も可能なかぎり定期的に診断を実施し、セキュリティの向上とリスクの低減を図ることが推奨されます。また、システムやプラットフォームの変更後やアップデート後には再診断を行い、新たな脆弱性が生じていないか確認することも大切です。
脆弱性診断のやり方(手動診断と自動診断の違い)
項目 | ツール診断(自己診断) | 手動診断(マニュアル診断) |
---|---|---|
速度 | 高速で大量のデータを短時間でスキャンできる。 | 手作業のため時間がかかる。 |
精度 | 一定の精度だが、誤検出や見逃しが発生する場合がある。 | 高い精度が期待できる。ツールが検出できない脆弱性も発見可能。 |
費用 | ツールの導入費用やライセンス料がかかる場合があるが、比較的安価。 | 専門家による診断を行うため比較的高額になりやすい。 |
カスタマイズ性 | ツールに依存した診断が行われるため制限がある。 | 特定の要件に合わせて診断できるため柔軟性が高い。 |
発見できる脆弱性 | よく知られた脆弱性(既知のパターンや定義に基づく)に強い。 | 複雑で未知の脆弱性を発見することも可能。 |
運用の簡便さ | 操作が簡単で、誰でも利用可能な製品が多い。 | 専門的な知識が必要で、訓練を受けた人材による診断が必要。 |
導入までの時間 | ツールのセットアップ後、すぐに診断を開始できる。 | 診断内容のすり合わせや作業に時間がかかる場合がある。 |
脆弱性診断のやり方には「ツール診断(自動診断)」と「手動診断(マニュアル診断)」の2つの方法があります。自動診断は迅速かつ効率的に大量のデータをスキャンできる一方で、手動診断は専門的な知識と経験を活かし、ツールでは検出しきれない細かな脆弱性を発見することができます。ここでは、両者の違いを解説し、それぞれの特徴や活用方法について詳しく説明します。
ツール診断(自動診断)
「ツール診断」とは、専用のソフトウェアやプログラムを使用してシステムやアプリケーションの脆弱性を自動的にスキャンし、発見するやり方です。ツール診断のメリットは、診断が迅速に行えることや、大量のデータを効率的にチェックできる点にあります。人の手がかからない分、比較的費用も安価で、手軽に利用できるという利点もあります。しかし、ツールによる診断は機械的に行われるため、誤検出や重要な脆弱性を見逃す可能性があります。
手動診断(マニュアル診断)
「手動診断」とは、専門のセキュリティエンジニアがシステムやアプリケーションを直接操作し、脆弱性を確認するやり方です。人の手で行われるため作業に時間がかかりますが、ツールでは見逃しがちな複雑な脆弱性を発見できます。エンジニアが状況に応じて柔軟に判断しながら診断を進めるため、精度の高い診断結果を得ることができます。
どちらのやり方もそれぞれにメリットとデメリットがあります。実際に診断を行う際には、より包括的かつ効果的な脆弱性診断が実現できるよう、ツール診断と手動診断を併用することも検討に値します。
脆弱性診断の流れ
脆弱性診断は、いくつかのステップに分けて行われます。それぞれのステップをしっかりと把握し、順を追って実行することでより効果的な脆弱性対策が実現できます。ここからは、脆弱性診断の基本的な流れをステップごとに説明し、診断結果に基づいた具体的な対策方法について解説します。
STEP1:脆弱性診断の要件をまとめる
脆弱性診断を実施するにあたり、まずは自社で診断の要件を明確にまとめることが重要です。要件をしっかりと定めることで、診断を効率的かつ効果的に進めることができます。以下の項目を整理しておくことを推奨します。
- 脆弱性診断を行う対象
- 対象のシステムやネットワークが取り扱う情報の性質
- 診断基準
- 診断にかけられる期間や費用
対象となるシステムやアプリケーション、ネットワークなどを明確にします。これにより、診断範囲がはっきりし、診断計画を立てやすくなります。
診断対象が個人情報や機密データを扱っているかどうかを把握しておくことが重要です。これにより、診断の優先度や重点的に調査すべき部分が決まります。
診断の基準を定めることで、脆弱性をどの程度深刻に捉えるか、また、どのようなリスクを優先的に対策するべきかを判断できます。
診断のスケジュールや予算を設定することにより、リソースの配分や実施方法を決める際の指針になります。
診断基準は対象システムの特性に応じて異なります。たとえば、個人情報を取り扱うシステムは一般的な業務用システムと比べより厳格な基準が求められるでしょう。診断対象を明確にしたうえでそれに適した診断基準を検討することが重要です。
Webアプリケーションの診断基準
Webアプリケーションのセキュリティ基準を定めている企業や団体は複数ありますが、中でも特に広く知られているのがOWASP(Open Web Application Security Project)によって公表されている「Application Security Verification Standard(ASVS)」です。ASVSは、Webアプリケーションのセキュリティ診断において一般的に採用されており、具体的な診断基準を設けることでセキュリティレベルの評価を体系的に行えるようにしています。ASVSでは下記のように3段階のレベルが定義されています(※3)。
レベル | 詳細 |
---|---|
レベル1 | すべてのアプリケーションが満たすべき最低限のセキュリティ基準 |
レベル2 | 機密データを扱う商用アプリケーションに推奨されるセキュリティ基準 |
レベル3 | 軍事、金融、医療など、高度なセキュリティを要するアプリケーションに推奨されるセキュリティ基準 |
(※3):Application Security Verification Standard 4.0.3|OWASP
今回はASVSをご紹介しましたが、「OWASP TOP10」や「OWASP サーバレス Top 10」も参考にすることで、各種アプリケーションにおける代表的な脆弱性の把握が可能になります。あわせて参考にしてみてください。
モバイルアプリケーションの診断基準
モバイルアプリケーションはWebアプリケーションとは異なる特性を持つため、セキュリティ要件も異なります。モバイルアプリケーションのセキュリティ基準として広く認知されているのが、OWASPによって提供されている「Mobile Application Security Verification Standard(MASVS)」です。MASVSは、モバイルアプリのセキュリティ診断において一般的に使用され、アプリの安全性を確認するための基準を定義しています(※4)。以下は、MASVSで定義されている診断基準のレベルです。
レベル | 詳細 |
---|---|
MASVS-L1 | すべてのモバイルアプリケーションがクリアすべき最低限のセキュリティ基準 |
MASVS-L2 | 高度なセキュリティが必要なアプリに推奨されるセキュリティ基準(モバイルバンキングなどの機密データや個人情報を取り扱うモバイルアプリケーションなど) |
MASVS-R | アプリの改ざん防止やリバースエンジニアリング対策を含む、耐性を重視した基準 |
(※4)モバイルアプリのセキュリティ検証標準であるOWASP MASVSの日本語訳を公開 | LAC WATCH
これら3つの検証レベルを組み合わせ、MASVS-L1、MASVS-L2、MASVS-R、MASVS-L1+R、MASVS-L2+Rの5つの検証方式が利用可能です。さらに、モバイルアプリの代表的な脆弱性を理解するためには、「OWASP Mobile Top 10」も参考になります。
プラットフォームの診断基準
プラットフォームに対するセキュリティ診断を実施する際には、Center of Internet Security(CIS)が公表している「CIS Benchmarks」を参照するとよいでしょう。CIS Benchmarksは、サーバーやネットワーク機器、データベースなどのプラットフォームに対するセキュリティ基準を提供し、各種プラットフォームの安全性を保つための指針を示しています。CIS Benchmarksの診断基準レベルは下記のとおりです(※5)。
レベル | 詳細 |
---|---|
レベル1 | ビジネス機能や稼働状況に影響を与えない、基本的なセキュリティ基準 |
レベル2 | 機密性の高いデータを保護できる基準。遵守できれば規制コンプライアンスの達成にも有効なレベル。 |
STIG プロファイル | STIGという国防情報システム局の設定ベースラインを満たしているレベル。すべてのセキュリティ強化策が網羅されていて上記レベル1・2の内容も包括されている。 |
(※5)What are the Level 1, Level 2, and STIG Profiles within a CIS Benchmark?|CIS Benchmarks
STEP2:脆弱性診断の実行方法を検討
ステップ1でまとめた要件に基づいて脆弱性診断の実施方法を検討しましょう。脆弱性診断のやり方は前述したとおり、「ツール」と「手動」の2種類があります。自社の目的や必要な要件にあわせて検討することがおすすめです。
ツールによる診断は導入費用も比較的安価で取り組みやすいため、自社内で診断を実施することも可能です。ただし、ツール診断では検証できない項目もありますし、診断結果を正確に理解して対策を実施するためにはセキュリティに関する専門的な知識が必要になることもあります。複雑なシステムや高度なセキュリティが求められるシステムが対象となる場合は、誤った診断や見落としのリスクを避けるためにも専門機関に委託することを推奨します。
セキュリティ診断の専門企業を選定するときのポイントは、この後詳細を解説します。
STEP3:脆弱性診断の実行
脆弱性診断は、診断対象や診断内容、診断方法によりかかる時間が異なります。ツールを利用した自動診断の場合、比較的簡易な診断であれば即日診断結果が得られることもあります。特に標準的な診断項目に関しては、ツールを使うことで短期間で結果を得られます。しかし、ツール診断では複雑な脆弱性の見逃しや検証できない項目があるため、専門的な知識に基づいた対応が求められる場合には、手動診断や専門機関に委託する方法が適しています。
手動診断や専門企業に委託する場合は、診断内容にもよりますが、一般的には2週間から4週間程度の期間がかかります。診断が複雑な場合やシステムの規模が大きい場合はさらに時間がかかることもあります。精度の高い診断を行うためにも、余裕を持ったスケジュールを確保して、十分に時間をかけて実施することが推奨されます。
STEP4:診断結果の報告
脆弱性診断の結果は、ツールを利用した診断でも、専門機関に委託した場合でも、基本的にはレポート形式で提出されます。レポートは診断結果を体系的にまとめたもので、検知された脆弱性の詳細や推奨される対応策が記載されています。専門企業に委託した場合は、レポートの提出に加え、結果に対する説明会が実施されることもあります。この説明会では、診断結果に対する詳細な解説や実施すべき対策についてのアドバイスを受けることが可能です。
診断結果のレポートには通常、以下の要素が記載されます
- 診断対象の概要:診断を実施したシステムやネットワークの簡単な説明
- 脆弱性の詳細:検出された脆弱性のリスト、各脆弱性の影響範囲、発生した可能性のあるリスク
- 評価の優先順位:脆弱性の深刻度やリスクに基づいてどの脆弱性を優先的に対応すべきか
- 推奨される対策:各脆弱性に対する対策案や改善方法
- 証拠資料:脆弱性を証明するスクリーンショットや詳細なログ
STEP5:結果に基づく対策方法の検討と実装
脆弱性診断の結果が出たあと、次に行うべきはその後の改善方法の検討です。
診断レポートに基づき、脆弱性の詳細やリスクを考慮し、どこから着手するかを決定しましょう。すべての脆弱性対策を一度に対応するのは現実的ではないため、優先度を決めて重要度や影響範囲が大きいものから順に改善を進めていくのがおすすめです。
優先度を決定する際の基準としては、以下のポイントを考慮すると良いでしょう。
- 脆弱性の深刻度
- ビジネスへの影響度
- 修正の難易度
準備が整い次第改善策を実装していきましょう。実装の際には、必要な人員やツール、予算などのリソースを確認し、スケジュールを立てて着実に進めることが大切です。
STEP6:再診断の実施
改善策を実施したあと、その対策が効果を発揮しているかを確認するためには再診断が不可欠です。再診断は、前回の診断結果に基づいて実施した改善策が実際に脆弱性を解消できたかを検証するプロセスです。このステップでは、前回発見された脆弱性が修正されたか確認することはもちろん、新たに別の脆弱性が発生していないかもあわせて確認するのが理想的です。
また、脆弱性診断は一度きりではなく定期的に実施することを推奨します。脆弱性の管理を継続的に行うことで最新のセキュリティ脅威に適宜対応することができ、システムを安全な状態に保つことが可能です。
ただし、セキュリティ担当者のなかには要件の整理や進行が難しいと感じたり、レポートで提示された情報の扱いに困る場合もあるかと思います。そのような場合は、自社に最適な対応を提案してもらえるセキュリティの専門企業への相談も検討してみましょう。
サイファー・テックでは、企業の課題にあわせたセキュリティ診断サービスを提供しています。要件のヒアリングから実施後の改善提案まで一気通貫サポートいたします。
脆弱性診断サービス(専門企業)の選び方
脆弱性診断を実施する際、専門企業に委託することはセキュリティ対策を効果的に実行するための重要な選択肢です。しかし、専門企業にはさまざまな種類があり、どの企業に委託するべきか悩むことも少なくありません。ここでは、適切な企業を選ぶための重要なポイントを解説します。今後の企業選定の参考にしてみてください。
診断範囲と診断項目が適切か
企業によって対応可能な脆弱性診断の診断範囲や診断項目は異なります。そのため、自社システムが診断の対象になっているか、必要な診断項目が包含されているかを確認しましょう。また、ツール診断のみのサービスなのか、ツール診断と手動診断を組み合わせたサービスなのかなど、企業によって脆弱性診断の手法も異なります。自社の脆弱性診断の目的を明確にしたうえで企業選定をすることが大切です。
サイファー・テックでは、経験豊富な診断員がご要件に合った最適な診断をご提案いたします。ツールを利用した自動診断と実績のある診断員による手動診断で精度の高い脆弱性診断を提供しています。
これまでの実績
企業を選定するにあたって診断実績は重要な指標の一つになるでしょう。しかし、脆弱性診断の実績は機密性が高く表立って掲載しづらい情報です。そのため、実績に関してはWebサイトの記載有無で判断せず、直接企業に確認するようにしましょう。そうすることでより安心感をもって企業選定が行えるはずです。
サイファー・テックでは一部企業様の実績を掲載しています。
Critical Hit 導入事例:株式会社サミーネットワークス 様
Critical Hit 導入事例:株式会社CRI・ミドルウェア 様
診断後のサポート体制や対応力
脆弱性診断実施後のサポート体制や対応力も注目すべきポイントです。脆弱性診断を専門業者へ委託しても、診断後の改善提案があるかどうかはサービス内容により異なります。診断後の対応まで配慮されているかどうか選定時に確認しておくことをおすすめします。
サイファー・テックでは、診断レポートの提出だけでなく、口頭で結果を説明するご報告会も実施しています。診断後の対策提案や実装の優先順位、レポートに関する質疑応答など、安心してその後を進められるようご支援しています。
まとめ
脆弱性診断は組織のシステムやネットワークを守るために重要なプロセスです。診断範囲や診断基準、診断手法を慎重に選び、自社に適した脆弱性診断を実施しましょう。社内の専門知識が不足している、もしくは判断に不安がある場合には専門企業に相談するのも有効な手段です。
サイファー・テックでは、アプリの診断からゲームのチート対策診断まで、アプリケーションやシステムに潜むリスクを専門のセキュリティプロフェッショナルが攻撃者の視点で診断します。