公開:
脆弱性診断の復習~その必要性と選び方
近年、システムにおける個人情報などの重要な情報の取り扱いが増加しており、システムを運用・管理する側である企業・官公庁のセキュリティ対策の重要性が増しています。その一方、”脆弱性診断”という言葉のみが先行し、内容をあまり理解しないまま脆弱性診断を利用したことで十分な効果が得られない事例も散見されます。そこで、脆弱性診断とはどのようなものかを改めておさらいし、今後の脆弱性診断に役立つ情報をご紹介します。
脆弱性とリスク
「脆弱性」とは、システム設定の誤りやソフトウェア自体の欠陥により発生する、情報セキュリティ上の欠陥を指します。不正アクセスなどの脅威に利用される弱点となるもので、セキュリティホールとも呼ばれます。脆弱性を放置し悪意のある攻撃者に悪用された場合、システムに侵入され重要情報が漏洩する、改ざんされる、はたまたシステムが停止に追い込まれるなどのリスクにさらされます。
損害は自社が被るだけとは限りません。場合によっては自社のシステムが踏み台として利用され、攻撃された側が加害者となるリスクもあります。そうなった場合、社会的信頼の失墜やそれに伴う機会損失、二次被害者からの損害賠償請求など、企業経営にとってさらに大きなダメージとなります。
脆弱性への攻撃によるこのようなリスクを完全にゼロにすることはできません。しかし、守るべきデータを保有する以上は、可能な限りリスクが低くなるよう対策しておかねばなりません。
脆弱性診断の必要性とその効果
「脆弱性診断」は、脆弱性を可視化するサービスです。脆弱性が可視化されれば、セキュリティリスクに対して具体的な対策を講じることができ、セキュリティリスクを低減させることが可能になります。
脆弱性診断を実施して対策することが提供するサービスの安全性を高めることになります。サービス利用者の安全性も高めることにつながり、仮にセキュリティインシデントが発生した場合でも、脆弱性対策をあらかじめ行っておけば被害を最小限に抑えられる可能性があります。
また、システム開発の早い段階で脆弱性診断を実施し、見つかった脆弱性に対する対策を講じることで、サービスイン直前やサービスイン後に問題が発覚した場合よりも少ない工数で対策することができます。
さらには、脆弱性診断の対象を選定することが、守るべき情報資産の洗い出しをするきっかけとなることもあるなど、様々な効果が期待できます。
脆弱性診断の選び方
脆弱性診断は、セキュリティベンダーを筆頭に様々な企業からサービス提供されており、その診断対象は多岐にわたります。
- OSやミドルウェアを対象としたネットワーク/プラットフォーム診断
- Webアプリケーションを対象としたWebアプリケーション診断
- スマートフォンアプリを対象としたスマートフォンアプリケーション診断
- クラウド(AWS、GCP、Azure)診断など
また、近年では従来の脆弱性診断よりも多くの攻撃者視点や観点でのテスト実施への期待から世界中のエシカルハッカー達に診断を依頼する”バグバウンティ”という脆弱性報奨金制度の使用例も多くみられるようになってきました。
エシカルハッカーとは
エシカルハッカーとは、高い倫理観と道徳⼼を兼ね備え、コンピュータやネットワークに関する⾼度な技術や知識⽤いて悪意を持つハッカー(クラッカー)からの攻撃を防ぐ活動等を行う技術者を指します。
脆弱性診断を利用するには、事前にそれぞれの診断内容を把握し、適切な診断サービスを選択する必要があります。
例えば、脆弱性診断ツールによるツール診断は幅広い対象をローコストでテスト実施する際には有効ですが、誤報精査などを実施するための専門知識が必要となります。その場合は、ツールの結果をきちんと精査するサービスを行っているベンダーを選択すべきです。
また、サービスや仕様などに関わる人間の思考が必要なロジカルな脆弱性を検出するには、攻撃者視点での手動による診断を実施しているサービスを選択する必要があります。
脆弱性診断で十分な効果を得るために、診断サービスを提供するベンダーを以下のような基準で選ぶと良いでしょう。
- 顧客に診断の選定や診断対象の選定について適切なアドバイスができる
- 検出された脆弱性への適切な対策方法を明示できる
- セキュリティ向上の為に適切なアドバイス(脆弱性診断の頻度、DevSecOpsの提案など)が明示できる
- ツールのみではなく手動による診断を実施している
DevSecOpsとは
「DevSecOps(デブセックオプス)」は、開発(Development)と運用(Operations)が協調しあいながらシステムの価値を向上させる開発体制「DevOps(デブオプス)」に、セキュリティ(Security)を融合させた開発スタイルです。システム開発のプロセスにセキュリティ対策を組み込み、開発の各工程で脆弱性を作りこむリスクを低減します。