Skip to main content

脆弱性スキャナ: その概要と動作するしくみ

著者:
0 分で読めます

脆弱性スキャナは、脆弱性管理の最前線でセキュリティを確保しています。このツールはハッカーがシステムやデータを侵害するために利用されかねない脆弱性を特定するために不可欠です。

モノリシックなオンプレミスアプリケーションの時代には、脆弱性スキャナは主に本番環境に導入され、インフラの番犬としてランタイムの脅威を警告していました。このパラダイムは、最新のクラウドベースのインフラの強力な拡張性と敏捷性を活用するクラウドネイティブアプリケーションの出現によって時代遅れとなっています。

今日の高度に自動化された CI/CD パイプラインは、セキュリティテストのボトルネックを許容できません。脆弱性の検出と対策は、成熟した DevOps プラクティスの猛烈なペースに遅れずについていく必要があります。

レガシーセキュリティパラダイムにおける別の課題は、オープンソースライブラリ、サーバーレス機能、IaC、コンテナなどの動的コンポーネントに基づく、クラウドネイティブなアプリケーションの高度な分散型アーキテクチャに対応する必要があるということです。クラウドネイティブアプリケーションには、新しいクラウドネイティブアプリケーションのセキュリティパラダイムが必要です。つまり、ソフトウェア開発ライフサイクル (SDLC) でセキュリティを重視し、開発段階で脆弱性を確実に検出し、修正する総合的なアプローチです。

この記事では、Web サイト、Web アプリケーション、ネットワーク、オープンソースコード、WordPress コンテンツ、コンテナ (Docker スキャナなど) について、クラウドネイティブなセキュリティカバレッジを提供する、様々な種類の脆弱性スキャナについて説明しています。

Capture the Flag を始める

バーチャル 101 ワークショップオンデマンドで、Capture the Flag の課題の解決方法をご覧ください。

脆弱性とは

脆弱性とは、ソフトウェアのコーディング上の欠陥やシステムの設定ミスを指し、ハッカーが直接システムやネットワークに不正にアクセスしたり、アクセス権限を取得したりできるようになっている状態を指します。脆弱性は、様々なレベルのリスクをもたらす可能性があります。脆弱性に対する攻撃が確認されている場合は、リスクが高いと判断され、対策を優先的に施す必要があります。

脆弱性スキャナの説明

脆弱性スキャナとは何ですか?

脆弱性スキャナは、サイバーセキュリティの脅威をもたらす設定ミスやコーディングの欠陥をモニタリングする自動化された脆弱性テストツールです。脆弱性スキャナは、既知の脆弱性のデータベースを調べるか、一般的な欠陥タイプを調査して未知の脆弱性を発見します。スキャナログは脆弱性を検出し、時にはリスクスコアを割り当てます。

脆弱性スキャナは、以下のような運用形態に分類されます。

wordpress-sync/vulnerability-scanners
表 1: スキャナの操作方法

最も一般的な 3 種類のスキャナ

  1. ネットワーク脆弱性スキャナ

  2. Web アプリケーション脆弱性スキャナ

  3. オープンソースの脆弱性スキャナ

1.ネットワーク脆弱性スキャナ

ネットワーク脆弱性スキャナは、Web サーバー、そのオペレーティングシステム、そのデーモン、データベースサービスなど、インターネットに公開されているあらゆるサービスをモニタリングしています。

ネットワーク脆弱性スキャナにより、既知の脆弱性のデータベースが照合されます。これらのデータベースの多くは、共通脆弱性識別子 (CVE) プログラムの既知のソフトウェアやファームウェアの脆弱性に関する無料の総合カタログに依存しています。標準化された各レコードは、一意の CVE 識別子、簡単な説明、および少なくとも 1 件の公開参照で構成されています。

さらに、共通脆弱性評価システム (CVSS) は、CVE リストに脆弱性の技術的深刻度を数値化したスコアを加えることで、一段と充実した内容になっています。ただし、最高のネットワーク脆弱性スキャンの結果は、様々なソースからの情報を継続的に集約して分析する独自の脆弱性データベースを使用することで達成されます。Snyk 脆弱性データベースはその良い例で、脅威インテリジェンスシステム、コミュニティソース、および学術機関と緊密に統合されています。Snyk の脆弱性データベースは、専門のセキュリティチームによって手作業で管理されており、ネットワーク脆弱性スキャナを最適化し、正確で実用的な知見を提供しています。

このように、ネットワークの脆弱性について最大限の知見を得られることは、運用面でも重要な意味を持ちます。非営利団体である米国 CIS (Center for Internet Security) は、組織がサイバーセキュリティのベストプラクティスを実践できるように CIS コントロールを管理しています。基本的なコントロールの一つは、スキャンを含む脆弱性管理を継続的に行うことです。ただし、ネットワーク脆弱性スキャナは混雑を引き起こす可能性があるため、スキャンは通常週に 1 回しか実施されません。そのため、既知および未知の脆弱性を包括的にカバーする充実化されたデータベースに対してスキャンを実行することが重要です。

2.Web アプリケーション/Web サイト脆弱性スキャナ

Web 脆弱性スキャナは、アプリケーション/Web サイトのコードをスキャンし、アプリケーション/Web サイト自体やそのバックエンドサービスを危険にさらす脆弱性を検出します。これらは、アプリケーションセキュリティテストに不可欠なコンポーネントです。

これらのスキャナは、OWASP やその他の団体によって管理されている、一般的な攻撃の既知のリストを照合します。これらの攻撃は、様々なインジェクションや回避技術を使用して、Web アプリケーションや Web サイトを「乗っ取り」、データを流出させ、ユーザーやシステムをだまして機密情報を提供させたり、アプリケーションのパフォーマンスを低下させたりします。有名な攻撃には、SQL インジェクション、クロスサイトスクリプティング (XSS)、中間者 (MITM) 攻撃、悪意のあるコードなどがあります。

Web アプリケーションに関して言えば、唯一の効果的な脆弱性管理戦略は、シフトレフトの DevSecOps アプローチを採用し、セキュア SDLC (ソフトウェア開発ライフサイクル) 全体でスキャナを導入することです。この一連のスキャナには、コンパイルされていないコードの脆弱性を自動的にスキャンする静的アプリケーションセキュリティツール (SAST) と、テスト環境から本番環境まで、コンパイル済みコードを自動的にスキャンする動的アプリケーションセキュリティツール (DAST) が含まれています。

もう一つの重要なツールは、ペネトレーションテストで、これはハッカーを想定して、Web アプリケーションや Web サイトが悪意のある攻撃に対して脆弱であるかどうかを調べるものです。また、サードパーティによるペネトレーションテストを行う Web サイトのための脆弱性スキャナのオンラインサービスもあります。

Snyk SAST ソリューションは、スキャンの完了までに数時間から数日間もかかる、誤検知率が高い、問題を解決するのに豊富なセキュリティ知識が必要といった、従来の SAST ツールで生じていた課題を克服するために開発者やホワイトハッカーがゼロから設計したものです。Snyk Code を導入すると、SAST を開発プロセスにシームレスに組み込めるため、開発者やセキュリティチームがコードの脆弱性とその修正方法をリアルタイムで正確に把握するのに役立ちます。

3.オープンソースの脆弱性スキャナ

オープンソースの脆弱性スキャナは、ソフトウェアコンポジション解析 (SCA) ツールで、アプリケーションをスキャンして、すべてのオープンソースのフレームワークとライブラリ (直接および間接のすべての依存関係を含む) を検出し、脆弱性を特定します。また、一部のオープンソースの脆弱性スキャナは、開発者がコードベースの中から脆弱なコードを正確に探し出すという重要なタスクを実施する際にも役立ちます。

既知の脆弱性を持つコンポーネントを使用することは、OWASP トップ 10 脆弱性 の一つであることから、組織は最新のオープンソースの脆弱性スキャナを使用していることを確認する必要があります。Snyk オープンソース脆弱性スキャナには、以下のようなメリットがあります。

  • Web アプリケーションや Web サイトが不正アクセスを受ける前に、オープンソースコードの脆弱性を早期に検出できます。

  • 検出されたオープンソースコードの脆弱性の影響を受けるすべてのインスタンスをすばやく発見することで、ハッカーを締め出し、問題をすばやく修正できます。

  • アプリケーションで使用されるすべてのオープンソースフレームワークとライブラリを明確に文書化できます。

  • オープンソースライセンスの要件への準拠が保証されます。

脆弱性スキャナの評価方法

幸いにも、現在は市販および無料の多数の脆弱性スキャナを入手可能です。その反面、選択肢が多すぎるために、どのスキャナスタックが最適なのかを判断することが難しくなっています。

まずは、脆弱性スキャナについて詳しく知ることが大切です。OWASP は、商用および無償の脆弱性スキャナの包括的なリストを管理していますが、ランキングは控えています。他の信頼できるインフルエンサーは、推奨スキャナのランキングを発表しています。

脆弱性スキャナの候補をいくつか選んだら、実際に試してみることができます。市販の脆弱性スキャナも、最終的な決定を下す前に試せるよう、試用版を無料で提供しています。あらゆる環境でエンドツーエンドでカバーするためには、様々な種類の脆弱性スキャナを導入する必要があります。また、すべてのスキャナを統合し、その出力を脆弱性管理について信頼できる唯一の情報源に登録できる、脆弱性管理プラットフォームについても検討できるでしょう。

脆弱性の自動検出および修正

Snyk は、コード、依存関係、コンテナ、およびクラウドインフラのワンクリック修正 PR と対策アドバイスを提供します。

脆弱性スキャナに関するよくある質問

脆弱性スキャンが重要となる理由

脆弱性スキャンは、あらゆる脆弱性管理プログラムの重要なフロントエンドになっています。現在、Web アプリケーションやインタラクティブな Web サイトを運営する企業にとって、脆弱性管理はあると便利な機能ではなく、ビジネスに必須の要件になっています。一般にシステムやデータに不正にアクセスしようとするハッカーは、攻撃ベクトルとして公開されたアセットを使用します。

脆弱性スキャンにはどのような種類がありますか?

脆弱性スキャンは、導入方法やスキャン対象によって異なります。スキャンは内部または外部、認証を使用してまたは認証を使用せずに、包括的または機器ごとに実行できます。最適な動作モードは、ネットワーク、安全なソフトウェア開発ライフサイクルを通じた Web アプリケーション、オープンソースのコードやライブラリなど、スキャン対象によって異なります。

無料の脆弱性スキャナはありますか?

ライセンス料がかからないオープンソースの脆弱性スキャナがあります。ほとんどすべての商用脆弱性スキャナには、無料で脆弱性スキャンの基本機能を利用できるコミュニティ版も用意されています。Snyk の開発者ファーストのクラウドネイティブアプリケーションセキュリティソリューションについての詳細をご覧ください。