fbpx

Aqua CyberCenter:NVDの枠を超えて進化する脆弱性スキャン #aqua #セキュリティ #コンテナ #CyberCenter

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本ブログは「Aqua Security」社の技術ブログで2021年3月22日に公開された「 Aqua CyberCenter: Elevating Vulnerability Scanning Beyond the NVD 」の日本語翻訳です。

Aqua CyberCenter:NVDの枠を超えて進化する脆弱性スキャン


National Vulnerability Database(NVD)は、脆弱性に関する貴重な情報源ではありますが、今日のクラウドネイティブのエコシステムとその保護を担当するチームにとっては不十分なものです。クラウドネイティブ環境では、さまざまなプラットフォーム・技術・導入方法が複雑に絡み合っているため、脆弱性(CVEなど)を検出して修正しても、潜在的な攻撃ベクトルをすべて排除することはできません。この点を考慮して、私たちは公開されている CVE だけでなく、ベンダーのセキュリティアドバイザリー、マルウェア、私たち Aqua の主要な脅威研究データをカタログ化しました。そしてそのデータから、包括的で信頼性の高いセキュリティリスク情報のソースを確立することを目的として、Aqua CyberCenter を構築しました。 

このブログでは、Aqua がどのようにして NVD の枠を超えてクラウドネイティブ DevOps のためのサイバーセキュリティ情報を強化しているのか、また、それによって可能となったプロセスについて探っていきます。まず NVD の脆弱性情報の限界を確認し、Aqua CyberCenter がより詳細で実用的なセキュリティリスク検出を行うための基準を、どのように進化させるかについて理解を深めます。

脆弱性101:入門編

脆弱性とは:

脆弱性とは、最も簡単に言えば、悪用される可能性のあるソフトウェアコードの一部分です。この定義は、悪用する人の意図や、実際に悪用されたかについては全く考慮しません。 コードの一部に不正な動作を可能とする部分(例:SQL インジェクション、DDoS 攻撃、XSS インジェクション)がシステム内にあれば、それは脆弱性とみなされます。  

さらに詳しく説明すると、弱点とはコードの分類上の誤りであり、特定の悪用可能な事例につながる可能性があります。私たちは、検出と修正を助けるために固有の識別子を付けて、脆弱性として列挙します。  

共通脆弱性識別子(CVE)とは:

CVE とは、脆弱性を一意に識別するための識別子の一例にすぎません。 CVE という名称は、米国国土安全保障省の組織である MITRE が、ソフトウェアの潜在的な脅威を示す証拠として、ソフトウェアにセキュリティのベストプラクティスを呼び込む方法として確立したものです。 これらの CVE は、NVD(National Vulnerability Database)に登録されています。 

National Vulnerability Database(NVD)とは:

NVD は、アメリカ国立標準技術研究所(NIST)が管理する、米国政府が支援する CVE データの事実上のリポジトリです。 NVD には、セキュリティチェックリスト、セキュリティ関連のソフトウェアの欠陥、設定ミス、製品名、そしてもっとも有名である標準化されたリスクの深刻度の指標など、さまざまな情報が含まれています。  

共通プラットフォーム一覧(CPE)とは:

Common Platform Enumeration は、企業のソフトウェアおよびクラウドエコシステムに存在するアプリケーション、オペレーティングシステム、ハードウェアを定義するための標準化の手法です。 これらの属性は、ソフトウェアに関連するベンダー、バージョン、エディション、言語、ハードウェアの仕様など、さまざまな情報が含まれます。 これらの情報は、脆弱性スキャナーによって生成される結果の精度と実行可能性に直接影響を与えます。このトピックについては、Aqua の脆弱性スキャナーの Red Hat 認証に関連する今後のブログで詳しくご紹介します。 

NVD の制約について

1つ目に、NVD は政府が支援するリソースであり、その維持には限られた人数の専任のセキュリティ研究者やアナリストに依存しているため、オープンソースコンポーネントの数が爆発的に増加したことで、処理が必要な脆弱性のバックログが増加しています。 これにより、脆弱性の記録に有用な情報の公開が、数週間から数ヶ月単位で遅れることになります。脆弱性の詳細や修正情報を NVD だけに頼ることは、このような情報不足の間、攻撃にさらされる可能性があることを意味します。

2つ目に、CVE のファネルを埋めるために CVE ナンバリングオーソリティ(CNA)の数が増えている一方で、CVE レコードにセキュリティ情報を追加するためにアサインされた NIST のアナリストチームは、時間とリソースが限られています。 そのため、大部分の脆弱性については説明や分析が不十分なものになってしまいます。 情報に基づいた優先順位付けと修正の決定を、貧弱な詳細情報に基づいて行うことは、セキュリティチームの考えるベストプラクティスに合致しません。 

3つ目に、発見されたすべての脆弱性が象徴的な CVE の名称で呼ばれるわけではないということです。ベンダーのセキュリティアドバイザリーや独自のセキュリティリサーチは、CVE を付与する義務はなく、NVD で追跡する必要もありません。 このようなシナリオでは NVD だけを利用すると、コードベース内のかなりの数の脆弱性が未確認のままになってしまいます。  

要するに、NVD は重要なリソースではありますが、クラウドネイティブソフトウェアのエコシステム内で検出された脆弱性を特定するための唯一のリソースとすべきではありません。もちろん、これは検出の問題にもつながります。 

検知から識別、修復までの全体像を可視化する

特定のパッケージ内の脆弱性を「発見する」という議論は、本質的に2つの異なるトピックについて議論することになります。脆弱性の「検出」と脆弱性の「識別」です。  

識別の部分では、特定の脆弱性を識別・分類に役立つ、特定の基準に一致する技術的な詳細を提供する NVD およびその他のセキュリティリソースが関係します。検出の部分は、使用しているセキュリティソリューションや、コードや成果物をふるいにかけて、アプリケーションの構造、コード、コンテナ内に含まれる脆弱性を明らかにするため使用される分析方法によって異なります。 

このことを考慮すると、正確で信頼性のある検出と、その後の脆弱性を識別する能力によって、そのツールが提供できるセキュリティソリューションの範囲が決まります。さらに、あらゆる修復活動(トリアージ、パッチ適用、補償的制御など)は、このような検出と識別に直接影響されます。現時点では、どのようなセキュリティツールを導入しているかに関わらず、脆弱性の特定と対応の優先順位付けのための唯一の情報源として NVD を使用することは、どのようなセキュリティツールであれ、不必要な制限を課すことになります。多くのオープンソースパッケージが定期的に使用され、頻繁に更新されるクラウドネイティブの領域では特に当てはまります。

Aquaによるクラウドネイティブセキュリティの強化について

Aqua社のCyberCenterは、Aqua社の専門のサイバーセキュリティ研究チームが提供するデータで構成された独自のデータベースです。このデータベースは、クラウドネイティブのセキュリティリスクの優先順位付けと修正に役立つ詳細で実用的な情報を提供します。このアプローチにより Aqua は、サポートされる言語、フレームワーク、アーティファクトについて、NVD よりも優れた洞察力と幅広いカバー範囲を提供できます。

精選された情報からなる、信頼できる唯一の情報源(Single Source of Truth)

Aqua CyberCenter は、複数のデータソースを1つの脆弱性情報に集約します。このように広範な脆弱性とリスクを取り揃えているため、関連する CVE が存在しない、CVE の公開が遅れている、セキュリティ記録に実用的な知見がないなどの理由で、組織が潜在的なリスクを特定できないことはありません。以下の図は、Aqua CyberCenter のデータベースとサイバーセキュリティ研究チームの分析と修正のプロセスを概念的に示したものです。

リサーチに基づいたオープンソースのセキュリティリスクの洞察

オープンソースコンポーネントの人気と数の増加に伴い、コードの品質とセキュリティ基準も多様化しています。高いセキュリティ基準を守る開発者やコミュニティグループもあれば、そうでないグループもあります。また、多くの開発者は、NVD や関連する CNA に脆弱性を開示するという習慣を実践していません。Aqua の CyberCenter では、これらのデータがセキュリティチームや開発チームから失われないように、オープンソースプロジェクトが自ら発行したセキュリティ勧告や問題履歴を調査し、脆弱性を特定しています。

このような潜在的な矛盾を説明するために、一例を挙げます。


上のキャプチャ図では、NVD に記載の通り、CVE-2012-2098 は Apache Common Compress のみが検出されたことがわかります。しかし Aqua の検出アルゴリズムは、NVD では検出されていない別のソフトウェア(Plexus-Archiver など)でも脆弱であると検出できました。

脆弱性の正確な分類

NVD による脆弱性の分類と、ベンダーによる分類との間に相違があることはよくあります。これは、NVD が特定の脆弱性に対処するための既知のパッチを文書化する前に、ソフトウェアベンダーが「バックポート」による修正を行い、その後 NVD が脆弱性を再分類している場合があるからです。このような場合、NVD は深刻度を「high」と報告し、ベンダーは深刻度を「Negligible」と報告することがあります。Aqua の CyberCenterは、これらの情報を集約することでセキュリティリスクをより正確に表現し、優先順位付けやトリアージを支援します。

多様なセキュリティリスク情報

Aqua CyberCenter には、カタログに掲載されているセキュリティリスクの詳細な説明、セキュリティリスク情報、リスク分類、エクスプロイトの詳細、および修正ガイダンスが含まれています。NVD とは対照的に、Aqua CyberCenter は、一般に公開されている脆弱性(CVE)、ベンダーが発行したセキュリティアドバイザリー、マルウェア、Aqua が独自に行った調査や脅威情報についても提供しています。

正確なリスクの検出と識別

Aqua のユニークなパッケージ検出方法は、スキャン結果を改善し、Aqua CyberCenter の価値を最大限に引き出します。Aqua は、パッケージ名と特定のバージョンを正確に検出・識別し、識別されたパッケージの脆弱性に関連する誤検知や見逃しを最小限に抑えます。以下の表は、Aqua のサイバーセキュリティ研究チームが正確性を確保するために調査するファイルのいくつかの例を示しています。

Language

Files Examined

Java

JAR files (pom.properties or MANIFEST.MF within the jars).
Note: jars can be extracted from other JAR, WAR, or EAR files.

Python

METADATA or pkg-info files

Php

composer.lock files

Ruby

gemspec files

NPM

package.json files

Nuget

.csproj or .config or project.json or .deps.json files

結論として、脆弱性の検出、識別、評価、修正に対する Aqua 社のアプローチは、最新のクラウドネイティブアプリケーションエコシステムのリスク情報の唯一無二のソースとして、NVD の枠を超えるセキュリティ基準への進化を実現します。

New call-to-action

新規CTA