Skip to main content

脆弱性修 remediation プロセス:Snykの自動バックログPRで脆弱性の滞留を解消

2020年10月22日

0 分で読めます

Backlog Managementの提供を開始しました。これは、Snykの自動脆弱性修復機能を強化し、開発チームとセキュリティチームが無理のないペースで脆弱性の滞留を解消できる新機能です。

Snykで初めてスキャンすると、ほとんどのプロジェクトで20件を超える脆弱性が見つかります。脆弱性が積み重なり、手に負えないほどのバックログになりがちなのも無理はありません。どれだけ意欲的に取り組んでも、バックログには数百、場合によっては数千もの脆弱性が含まれることがあります。一つ残らず修正するのは不可能に思えるうえ、おそらくその必要もありません。優先順位を付ける必要がありますが、どこから始めればよいのでしょうか?

CTFを始めよう

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

今年初め、開発者を第一に考えた脆弱性の優先順位付け機能を発表しました。開発者に使いやすい包括的なツール群で、リスクを正確に評価し、修正作業の優先順位を付けられます。発表した機能の一つであるPriority Scoreは、すでに多くの開発者がバックログをすばやく絞り込み、組織にとって最もリスクの高い問題に時間と労力を集中させることで、脆弱性修復プロセスの改善に役立っています。

Backlog Managementは、このインテリジェントでコンテキストを考慮した優先順位付けをさらに進化させ、自動でアクションを実行します。優先度スコアに基づいてバックログ内の脆弱性を修正する、対象を絞った修正プルリクエストを作成します。 

基礎から解説:Snykの自動脆弱性修復

Snykを初めてお使いの方にも、Snykを長くお使いで自動脆弱性修正機能を忘れてしまった方にも、Snykがどのように脆弱性の自動修正を支援するのか、改めてご紹介します。

GitHubやBitbucketなど、広く利用されているソースコード管理システムとのインテグレーションを活用し、Snykは実行可能な脆弱性修正を含むさまざまな種類のプルリクエストを自動で作成します。プルリクエストのペースや範囲を調整できるため、多数のリクエストに追われることもありません。

Snykはどのような場合にプルリクエストを作成するのでしょうか?

Snykが作成するプルリクエストには、主にアップグレードプルリクエストと修正プルリクエストの2種類があります。どちらもパッケージをアップグレードできますが、目的が異なるため、仕組みも異なります。前者のアップグレードPRは、依存関係の新しいバージョンが存在し、特定の条件を満たす場合に限り作成されます(条件の一覧はドキュメントをご覧ください)。最新の状態を保つことで、新たな脆弱性を回避し、将来の修正を容易にすることが目的です。後者の修正PRは、新たに修正可能な脆弱性が見つかった場合、または既存の脆弱性に対する新しい修正が利用可能になった場合に作成されます。

さらに、SnykのPR Test機能は、自分やコントリビューターが新たに作成したプルリクエストを自動でテストし、コードベースに新たな脆弱性やライセンス上の問題が持ち込まれないよう支援します。

SnykのBacklog Managementは既存の機能を補完し、バックログにある修正可能な脆弱性に対して、優先順位に沿ってプルリクエストを自動で作成します。

Backlog Managementは脆弱性修復プロセスにどのように役立つのでしょうか?

簡単に言えば、Snykの定期テスト(デフォルトでは毎日。変更可能です)のたびに、プロジェクトごとに1件、Snyk Priority Scoreが最も高い修正可能な脆弱性を解決するプルリクエストを作成します。

バックログプルリクエストは、インテグレーション単位(そのインテグレーションを通じて監視されるすべてのプロジェクトに適用)またはプロジェクト単位で有効にできます。

インテグレーション単位で有効にするには、インテグレーションページで対象のインテグレーションにある歯車アイコンから設定を開きます。

ソース管理インテグレーションが表示されたSnykのインテグレーションページ。赤い矢印でGitHubの設定ギアが強調されています。

次に、Automatic fix pull requestsの設定を探し、該当する項目をオンにします。

「すべての脆弱性」を対象とする自動修正プルリクエストのオプションが強調表示された、SnykのGitHubインテグレーション設定。

特定のプロジェクトで有効にするには、プロジェクトごとにインテグレーション設定を編集します。設定はプロジェクトページの右上から開けます。

赤い矢印で「Settings」タブが強調表示された、todolist-core/pom.xml の Snyk プロジェクトページ。

プロジェクトの設定ページで、左側のGitHub Integrationをクリックし、Automatic fix pull requestsセクションで該当する設定をオンにします。

「すべての脆弱性」が選択された、自動修正プルリクエストのオプションを示すSnykのプロジェクト設定。

これで完了です。設定を更新すると、上記のとおり、Snykのスキャンごとにバックログプルリクエストが作成されます。

ほかの種類の修正プルリクエストと同様、リポジトリにすでにいくつプルリクエストが開いていても作成されます。ただし、Snykの無視機能を使って無視するよう設定したバックログ内の脆弱性については、作成されません。

HibernateのSQLインジェクション脆弱性の詳細。「この問題を無視」を選択するダイアログが開いており、一時的に無視するオプションが表示されています

さっそく始めましょう!

前述のとおり、Snykで初めてスキャンするプロジェクトでは、脆弱性が平均20件以上見つかります。バックログを減らすための対象を絞ったプルリクエストを提供できることをうれしく思います。これは、新たな脆弱性の混入を防ぎ、新たに開示された脆弱性を修正する既存機能を補完するものです。

Snykのバックログプルリクエストは、Free、Standard、Pro、Enterpriseのすべてのプランでご利用いただけます。また、GitHub、GitHub Enterprise、Bitbucket Cloudに対応しています。

キャプチャー・ザ・フラッグを始めよう

オンデマンドのバーチャル入門ワークショップを視聴して、キャプチャー・ザ・フラッグの課題の解き方を学びましょう。