Skip to main content

Snykの開発者ファーストな優先順位付け機能を発表

Prioritisation header feature

2020年7月22日

0 分で読めます

Snykの開発者ファーストな優先順位付け機能を発表します。開発チームとセキュリティチームが、オープンソースの依存関係やコンテナに潜む脆弱性の修正に、より効果的に優先順位を付けられるよう支援します。

今日、組織は増え続ける脆弱性への対応に追われています。すべての問題をすぐに修正することはできないため、優先順位を付ける必要があります。効果的な優先順位付けにより、最も大きなリスクをもたらす脆弱性に集中し、時間と労力を最大限に活用しながら、組織全体のセキュリティ体制を迅速に強化できます。

しかし、効果的な優先順位付けは容易ではありません。

脆弱性はそれぞれ異なり、そのリスクの差は、客観的・主観的な多くの要因に左右されます。適切に優先順位を付けるには、詳細なコンテキストが必要です。たとえば、実際に悪用されているエクスプロイトの有無や、脆弱な関数がアプリケーションから実際に呼び出されているかどうかを把握することで、より正確なリスク評価が可能になります。時間も影響します。新たな脆弱性の公開から時間がたつにつれ、リスクは低下します。

今回の発表により、Snykは開発者に使いやすい優先順位付けツールを包括的に提供し、オープンソースの依存関係やコンテナに含まれる脆弱性の修正に効果的に優先順位を付けられるよう支援します。ツールには、即時の優先順位付け、詳細な アプリケーションのコンテキスト、そして大規模なガバナンスが含まれます。

即時の優先順位付けでトリアージを迅速化

現在、修正の優先順位付けにはCVSSを使うのが一般的です。出発点としては有効ですが、この方法には限界もあります。標準の解釈が難しく、誤解を招くスコアが算出されることもあります。深刻度で絞り込んだ後も、組織には優先順位付けが必要な脆弱性が数多く残ります。さらに根本的な問題として、深刻度はリスク、つまり特定のプロジェクトが実際にどの程度リスクにさらされているかを示すものではありません。適切に優先順位を付けるには、脆弱性がもたらすリスクを包括的に把握するための、簡単で迅速な方法がまず必要です。

Priority Score

開発者が問題にすばやく簡単に優先順位を付けられるよう支援する、高度な組み込みスコアリングシステム、Snykの新しいPriority Scoreを発表します。

SnykのPriority Scoreは、独自のアルゴリズムを使用して、CVSSスコア、修正プログラムの有無、既知のエクスプロイト、新しい脆弱性かどうか、到達可能かどうか(到達可能性については後述)など、幅広い要素を処理してスコアを算出します。スコアは1~1000の範囲で、セキュリティ脆弱性とライセンスの問題の両方に対して算出され、SnykのUIやAPIを通じてさまざまな方法で利用できます。

SnykのProjectsページでは、各問題カードの右上にスコアが表示されます。また、スコアに基づいてプロジェクトの脆弱性を絞り込む新しいオプションも追加されました。

優先度スコア順に並べ替えられた脆弱性ダッシュボード。重大度の高い問題と、スコア899の説明を示すツールチップが表示されています。

UIのReports | Issuesページでは、スコアの高い脆弱性がリストの上部に表示されるよう、問題がデフォルトで並べ替えられます。

スコア順に並べ替えられたSnykの問題一覧テーブル。スコア899、786、756の重大度の高い脆弱性が強調表示されています。

レポート内の多数の脆弱性をより簡単に確認するには、新しいPriority Scoreフィルターを使用できます。

課題ダッシュボード。Priority Scoreのフィルターに、課題タイプ、エクスプロイトの成熟度、ステータス、修正可能性、到達可能性のチェックボックスが表示されています。

Priority ScoreはすべてのSnykプランで利用でき、レポート機能とAPIはStandardプラン以上で利用できます。

Exploit Maturity

SnykのExploit Maturityは、Snyk Containerでも新たにサポートされ、効果的な優先順位付けを実現する強力なツールです。

「実環境でエクスプロイトが確認されている」脆弱性は悪用される可能性が高いため、既知のエクスプロイトがない脆弱性より優先すべきです。ただし、悪用可能性は二択ではありません。この点を踏まえ、SnykのExploit Maturityは、エクスプロイトの有無を示すだけでなく、成熟度を次のように区別します。

  • 成熟:この脆弱性に簡単に利用できる、公開済みのコードエクスプロイトが存在します。

  • 概念実証:この脆弱性の悪用方法を示す、公開済みの理論的な概念実証や詳細な解説が存在します。

  • 既知のエクスプロイトなし:この脆弱性に対する概念実証コードやエクスプロイトが見つかっていないか、公開されていません。

では、エクスプロイトの成熟度に基づく優先順位付けはどれほど効果的でしょうか。非常に効果的です。たとえば、Javaの脆弱性の10%にはエクスプロイトがあります。しかし詳しく分析すると、実際に「成熟」していて、現実に重大な危険をもたらすエクスプロイトはそのうちわずか36%です。そのため、これらを優先リストの上位に置くべきです。

この詳細なセキュリティ情報は、前述のとおり、Snyk ContainerのLinux脆弱性でも利用でき、SnykのUIとAPIから簡単にアクセスできます。フィルターを使って問題をトリアージし、Exploit Maturityに基づいた詳細なレポートを作成できます。

「Mature」が選択されたExploit maturityフィルターと、「Mature」と表示された脆弱性の検索結果が並ぶSnykの脆弱性ダッシュボード。
Exploit Maturityは、Free、Standard、Pro、Enterpriseを含むすべてのSnykプランでご利用いただけます。

アプリケーションの実行状況を詳しく把握して優先順位付け

脆弱性のリスクは、最終的には状況によって異なります。同じ脆弱性でも、異なるアプリケーションで悪用された場合、その影響は大きく異なります。効果的な優先順位付けには、客観的な特性だけでなく、アプリケーションとその実行状況に関する詳細なコンテキストが必要です。Snykは、このコンテキストを簡単に把握し、正確な優先順位付けを判断できる方法を提供します。

Reachable Vulnerabilities

脆弱性に関するアプリケーションレベルの詳細なコンテキストを提供する、Reachable Vulnerabilitiesのベータ版を発表します。

脆弱な関数がアプリケーションの実行パスから到達可能かどうかを判断できるReachable Vulnerabilitiesは、脆弱な関数が実行時に実際に呼び出されているかどうかを確認するランタイム監視エージェントを補完します。

コードの一部に脆弱性があるからといって、ライブラリ全体が脆弱とは限りません。アプリケーションの実行フローから到達できない脆弱性は、通常、アプリケーション全体を侵害するものではないため、到達可能な脆弱性と比べてリスクは低くなります。

SnykのReachable Vulnerabilitiesは、アプリケーション独自のコードと、オープンソースの依存関係との具体的な相互作用を分析し、コールグラフを作成します。このコールグラフとSnykの脆弱性データベースを照合することで、アプリケーション内に脆弱な関数やパッケージへつながるデータフローが存在するかどうかを判定します。

Reachable Vulnerabilitiesによる分析はSnyk CLIから開始でき、到達可能と判定された脆弱性の数が結果に表示されます。脆弱性の横には到達可能性のレベルが表示され、その下にはアプリケーションのコードから脆弱な関数までの経路が示されます。

`snyk test --reachable-vulns` のターミナル出力。脆弱性が「到達可能性あり」と「到達可能」として強調表示されています。

SnykのUIでは、新しいReachable Vulnerabilitiesフィルターを使って、脆弱性が到達可能かどうかに基づいて優先順位を付けられます。また、脆弱な関数までの正確な呼び出し経路の詳細も確認できるため、より迅速に修正できます。

到達可能な問題のフィルターと、「Reachable」と表示された2件のセキュリティ問題を示す脆弱性ダッシュボード。

到達可能性に関する情報は、Reports -> Issuesタブでも確認できます。新たに追加されたフィルターを使ってリストを絞り込んだり、到達可能性のレベルに基づいて問題を並べ替えたりできます。

Reachable Vulnerabilitiesの詳細は、近日公開予定の記事で紹介します。ぜひご期待ください。

Reachable Vulnerabilitiesは、Standard、Pro、Enterpriseのすべての有料Snykプランでベータ版として利用でき、Java(Maven)プロジェクトのみをサポートします。

Kubernetesの優先順位付け

Kubernetesワークロードの設定が不適切だとリスクにさらされる可能性があるため、修正の優先順位付けで考慮する必要があります。Snykは、Kubernetesに特化した優先順位付けを提供します。

SnykとKubernetesのインテグレーションにより、実行中のワークロードをインポートしてテストし、関連するイメージや設定に含まれる脆弱性を特定できます。これらの脆弱性は、ワークロードのセキュリティを低下させる可能性があります。インポート後もSnykはワークロードの監視を続け、新しいイメージのデプロイやワークロード設定の変更に伴って、新たなセキュリティ上の問題を特定します。

Snykが追跡するKubernetesワークロードの設定(CPUやメモリの制限、権限、無効化された機能など)は、脆弱性データと合わせて処理され、SnykのPriority Scoreの算出に反映されます。これにより、ワークロードで検出された問題のコンテキストをより詳しく把握し、状況に即した優先順位付けが可能になります。

Kubernetes設定は、Standard、Pro、Enterpriseのすべての有料Snyk Containerプランで利用できます。

組織全体で優先順位付けを自動化

大規模な環境では、さまざまなプロジェクトやチームにわたる優先順位付けの管理が難しくなります。開発者は、セキュリティチームが定めた枠組みの中で、できれば自動化され、負担の少ない方法で、修正の優先順位を簡単に決められる必要があります。

組織全体で脆弱性の優先順位を自動的に上げたり下げたりできるようにする、Security Policiesのベータ版を発表します。

組織は、セキュリティポリシーで優先順位付けの戦略を定義し、必要に応じてさまざまなチームやプロジェクトに適用できるようになりました。各ポリシーには、脆弱性の具体的な対処方法を定める1つ以上のルールが含まれます。

選択した組織と、悪用成熟度の深刻度を「高」に変更するルールが表示されたSnykのセキュリティポリシーフォーム

ルールは、条件に基づいてアクションを実行します。現在、脆弱性の種類(共通の特性に基づいて脆弱性を分類する標準であるCWEを使用)やExploit Maturityに応じて、脆弱性の深刻度を変更できます。たとえば、成熟したエクスプロイトがあるすべてのXSS(クロスサイトスクリプティング)脆弱性の深刻度を引き上げ、RCE(リモートコード実行)脆弱性の深刻度を引き下げるルールを、それぞれポリシーに設定できます。

今後、ルールの粒度を段階的に高め、より多くのアクションや条件に対応するとともに、タグや属性を使って特定のプロジェクトにポリシーを割り当てられるようにする予定です。

Security Policiesは、Snyk ProおよびEnterpriseプランでベータ版として利用できます。

適切な優先順位付けを簡単に

理想的な「リスクゼロ」の世界なら、組織にはバックログにあるすべての脆弱性を修正する時間とリソースがあるでしょう。しかし、現実には不可能です。修正に優先順位を付けることが唯一の解決策ですが、それ自体が難しい課題です。効果的に優先順位を付けるには、正確な判断に役立つセキュリティの専門知識と詳細なコンテキストが必要です。

トリアージを迅速化する即時の優先順位付け、データに基づく判断を支える詳細なアプリケーションのコンテキスト、そして組織全体の優先順位付け管理を支援する大規模なガバナンスを提供するSnykの開発者ファーストな機能により、開発チームとセキュリティチームは適切に優先順位を付け、最終的にリスクをより効果的に低減できます。

今すぐSnykの優先順位付け機能をお試しください。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。

カテゴリー: