CVE スキャンとは?

より高品質なコードを構築し、デプロイメントまでの時間を短縮するために、リスクを特定して脅威を軽減する方法をご紹介します。

 

CVE スキャンとは?

graph of vulnerabilities by year
図1:過去22年間の報告されたCVEの増加状況

CVE (Common Vulnerabilities and Exposures:共通脆弱性識別子)データベースは、報告されたセキュリティ脆弱性の公開リストです。脆弱性は継続的に増加しているため(図1参照)、安全な開発環境を管理・維持するための取り組みが遅れています。増加するエクスプロイトの監視(Linuxプラットフォームにおけるエクスプロイトの特定、分類、深刻度の評価など)は重要ですが、複雑で時間のかかる作業でもあります。

もちろん、登録されているすべての CVE が、特定の RYO で使用する Linux のバージョンに影響を与えるわけではありませんが、どのようにして確信がもてるでしょうか?使用されているリリースに影響を与えるものを見つけるためには、膨大な数の外部への露出の可能性を評価する必要があります。2018 年の Spectre と Meltdown、2017 年の WannaCry など、衝撃を与えたいくつかのエクスプロイトはまだ記憶にのこっているでしょう。これらは、開発者が直面する脆弱性やランサムウェアの課題を示すものでした。

脆弱性管理

コードスキャンを実施してCVEやライセンスコンプライアンスの問題を特定できれば、法的責任が生じる前にリスクを洗い出すことができます。コードに影響を及ぼす深刻かつ高リスクな脆弱性は必ず修正しなければなりません。また、新しい脆弱性は日々特定されているため、継続的なCVEモニタリング、優先順位付け、および緩和が必要です。

管理にはいくつかのステップがあります。

  • 監視: 信頼できる外部ソース、顧客、およびその他の外部送信者からのセキュリティアラートを積極的に監視する。
  • 評価/優先順位付け: アラートの深刻度、難度、回避の可能性に基づいて、脆弱性を評価し、優先順位付けを行います。
  • 通知: いち早く影響度のレベルを顧客と申告者に通知する。
  • 修復: 影響度の分類に基づき、できるだけ早く是正計画を提案する

優良なCVEスキャンサービスに求められる10の要素

image_seo-page_cve-scanning_vulnerability-management-lifecycle
図2:脆弱性管理のライフサイクル

脆弱性の報告が急増するにつれ、2つの点が明らかになってきました。1つ目は、増加の一歩をたどる発生頻度により、開発者は、有効なリソースのない状態で終わりのない対応が求められ、企業が重大なビジネスリスクにさらされるていることです。2つ目に、CVEの性質は白黒はっきりしたものではなく、多くはグレーで不明確であることです。

優良なCVEスキャンサービスに求められる10の要素

  1. 脆弱性管理のライフサイクルを開発する: 開発チームは、脆弱性検出をライフサイクルを通して管理する必要があります(図2参照)。ライフサイクルを通して、継続的な評価、効果的な優先順位付け、スキャン、検出、および既知の脆弱性のライブラリーを増やしていくことで、脆弱性の検出は時間とともに改善されます。スキャンは決して一度きりの作業ではありません。

  2. 常に最新の情報を提供する: 脆弱性スキャンだけでは十分ではありません。ウインドリバーが提供するCVEデータベース のようなデータベースを利用することで、変化するCVEの情報を常に最新に保つことが可能です。

  3. フォーカス:急速に増加している脅威のすべてが、組込み開発者に影響を与えるわけではありません。効果的な脆弱性管理の重要なステップは、膨大なCVEの情報から、組込み開発チームに最も影響を与える脆弱性を厳選したものをデータベースに落とし込むことです。

  4. 自動化された脆弱性診断を利用する: ウインドリバーが推奨する構造的なアプローチは、脆弱性の検出の自動化です。ソフトウェアパッケージデータエクスチェンジ(SPDX)フォーマットを使用するソフトウェア部品表(SBOM)には、記述子情報だけでなく、バージョン、名前、ライセンス、メーカーなど、特定のソフトウェアパッケージに関連するメタデータが含まれています。この情報を利用することで、開発者はLinux OSやアプリケーションを構成するソフトウェアの強力なインベントリーを作成することができます。この情報は、使用するソフトウェアに合わせたインテリジェントな脆弱性スキャンの基盤となります。

  5. 効率よくトリアージする: 最初のスキャンでは、圧倒的な結果が得られることがあります。しかし、共通脆弱性評価システム(CVSS)は、追跡されたすべてのCVEに対してランク付けを行います。ウインドリバーのCVEスキャン は、このスコアを使用して、コードに最も大きな影響を与えるCVEの優先順位付けをしたリストを提供し、 開発者がソリューションに最大のリスクをもたらす脆弱性を回避できます。

  6. 自動化されたライセンスとIPコンプライアンスを特定する: IPとライセンスのスキャンは、自動化されていない場合、時間がかかることがあります。幸い、パッケージの記述にSPDXなどのフォーマットを標準化し、規律あるSBOMを維持することで、開発者はライセンス使用とコンプライアンスの自動スキャンを実施することができます。

  7. DevOpsを開発に取り入れる: ビルドプロセスの早い段階で自動化された脆弱性とCVEスキャンを実装することで、開発者は開発フェーズの早い段階で既知のセキュリティリスクを修正する責任を持つようになります。これにより、製品ライフサイクル全体において、より高いセキュリティ体制と、特定されたセキュリティ問題に迅速に対応するモデルが実現されます。DevOpsにより、この戦略を実現するために必要なシフトレフト戦略がもたらされ、時間とコストを劇的に削減することができます。

  8. ダッシュボードとヘルスモニタを使用する: 検索エンジンや脆弱性データベースは有用ですが、開発チームやエンジニアリングリーダーは、さまざまなソースから情報を探し、収集するのではなく、プラットフォームやアプリケーションの状態を統合的かつ合理的に表示する必要があります。ダッシュボードは、ステータスのハイレベルなビューを表示し、一目で理解できるものでなければならず、必要に応じてドリルダウンや詳細なレポートも必要です。また、常に適切で最新の状態に自動的にアップデートされる必要があります。

  9. レポート作成に取り組む:ユーザは、サプライヤが既知の脆弱性に対してシステムコンポーネントを既に検証していると期待しています。 開発チームは、CVEの検出と修復にかかる時間を表示する自動化したシステムに投資する必要があると考えています。また、発見されたCVEの深刻度、特にシステム内の影響力の大きいパッケージの深刻度を示すことが求められる場合もあります。

  10. セキュリティとプライバシーを確保する:CVEスキャンの安全なソリューションを評価する際に、留意すべき3つの点があります。
  • アクセス制御: ツールは、機密情報への不正アクセスを防止するために、厳格なアクセス制御を備えている必要があります。

  • マニフェストの保護: ツールプロバイダーは、CVEをスキャンする資産(通常はソースコードやソフトウェアパッケージ)を保護する必要があります。これらのマニフェストは、SBOMやLinuxプラットフォームまたはアプリケーションのコンポーネントに関するその他の機密情報が悪意のある者の手に渡らないように保護する必要があります。

  • 顧客のプライバシーと保護: ツールは、サプライヤーと顧客との関係を損なうものであってはなりません。この関係は、暗号化、アクセス制御、または他の難読化手段などの様々なメカニズムによって、非公開のままであるべきです。
cve funnel diagram
図3:精選されたデータベースを構築するために必要なCVEリソース

開発チームにとって、セキュリティ保護対策は今や最重要課題となっています。しかし、セキュリティの脆弱性を修正するためのリソースや時間、適切なコンプライアンス分析ツールの使用経験をお持ちでない開発チームもいらっしゃるのではないでしょうか。

複雑な組込みソフトウェアシステム向けに調整された自動セキュリティおよびコンプライアンススキャンを活用することで、開発者はソリューションに潜在する脆弱性やライセンス問題を迅速に特定することができます。
プロフェッショナルグレードのセキュリテスキャンは、CVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)やコンプライアンス問題に対する潜在的なリスクの徹底的な評価をします。脆弱性スキャンの評価では、より詳細な分析が必要なCriricalityの高い脆弱性を特定し、その影響度と修復のリソースを判断し、是正計画に活用することが可能です。ウインドリバーは、Yocto Project、NIST、その他の公開ソース、Wind River LinuxのCVEデータベースの情報を分類、整理してスキャンに活用しています。

ウインドリバーのアプローチ

Wind River Studio Linux Services

セキュリティスキャニング

ウインドリバーのセキュリティスキャニングは、お客様のSBOMまたはマニフェストを使用して、重要なCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)を特定します。その結果を利用したより深い分析によって、脆弱性の影響と緩和するために必要な労力を決定することができます。

Yocto Project、NIST、その他のパブリックソース、ウインドリバーのCVEデータベースを含む精選されたデータソースを使用します。

ハードウェア、カーネル、ユーザ空間、ライブラリ、その他のシステムコンポーネントなど、特定のプラットフォームのレイヤを分析します。すべての脆弱性はCVSS v3スコアリングシステムに従ってランク付けされ、グラフィカルで読みやすいフォーマットで表示されます。

» セキュリティスキャニングサービスの詳細はこちら

 

セキュリティの解析とレメディエーション

当社のグローバルエンジニアチームと連携し、共通脆弱性評価システム(CVSS)の閾値、影響の深刻度 、攻撃および防御の難度をもとに脆弱性をいち早く特定して優先度別に分類します 。高優先CVEに対処するための緩和計画を提案します。

  • お客様のLinuxプラットフォーム上で未対応のCVEを特定した詳細なセキュリティレポートの提供
  • 新たに特定されたCVSSv3が7以上のCriticalおよびHighに分類されるCVEに対する修正
  • オンラインサポートよりnon criticalのCVE(CVSSv3 < 7)の修正依頼が可能
  • 当社エンジニアへのレビュー依頼にも迅速に対応
  • プロジェクトに精通した専任エンジニアによるサポートをご希望のお客様向けにはプレミアムサポートオプションをご用意

» セキュリティの解析とレメディエーションサービスの詳細はこち

 

ライフサイクルセキュリティ

ウインドリバーはソフトウェアの開発からデプロイまでのライフサイクル全体にわたって、組込みLinuxプラットフォームの共通脆弱性識別子(CVE)を継続的に監視、緩和、管理し、新たなCVEが公開される都度、すみやかにアラートを送信します。お客様のLinuxプラットフォームに存在するCVEの影響度をウインドリバーのエンジニアチームにて詳細分析し、修正オプションや修正タイミングの優先順位付けを支援します。コミュニティに公開されているパッチをお客様のコードに適用する際は、あらかじめ当社にてバックポート、妥当性確認、検証を行います。コミュニティベースのソリューションが利用できない場合は、お客様側の開発チームと連携し、技術的ソリューションを考案します。

» ライフサイクルセキュリティサービスの詳細はこちら