プルリクエストでのSnykセキュリティゲート強化により、責任あるシフトレフトを実現
2020年3月31日
0 分で読めますこのたび、シフトレフトセキュリティとセキュアな開発ワークフローをさらに支援するため、Snykのプルリクエスト向けセキュリティ・ライセンステストを強化しました。
GitHubベースの開発ワークフローの要となるプルリクエストを活用すると、プロジェクトでの共同作業が容易になります。各コントリビューターは、リポジトリ内のブランチにプッシュした変更を共有し、ほかのメンバーと検討したうえで、ベースブランチにコミットしてマージできます。
こうしたワークフローにセキュリティテストを組み込み、SDLCのできるだけ早い段階で開発者とセキュリティチームが実施できるように設計されたSnykは、プルリクエストに含まれる変更を自動でテストし、セキュリティ上の脆弱性やライセンスの問題を検出します。問題が見つかるとSnykのテストは失敗し、対応するステータスチェックを通じて開発者に通知されます。プルリクエスト向けのSnykセキュリティテストが開発パイプラインを妨げないよう、ユーザーはステータスチェックを失敗させる条件を細かく設定できます。たとえば、重大度の高い問題がある場合や修正が可能な場合に限って失敗させることができます。
プルリクエスト向けのSnykセキュリティテストに加えられた最新の機能強化により、こうした対応がさらに充実しました。開発パイプラインが不必要に止まるのを防ぎ、Snykのセキュリティテスト結果を開発者がすべて把握できるよう、プルリクエストが失敗した理由の詳細を確認し、管理者にテストのスキップを依頼して、プルリクエストを「強制的に成功扱い」にできるようになりました。
簡単な例をいくつか見てみましょう。
プルリクエストのSnykステータスチェック
GitHubで競合のチェックが完了すると、Snykはプロジェクト内のマニフェストファイル(例: package.json / package.lock、requirements.txt、Gemfile.lock / Gemfile)を対象にセキュリティテストを実行します。変更によって脆弱性が持ち込まれなければ、テストは問題なく成功します。

一方、変更によって脆弱性が持ち込まれた場合は、Snykのステータスチェックでプルリクエストが失敗します。以下の例では、依存関係を追加したためにSnykのセキュリティテストが失敗しています。

リポジトリ内のプロジェクト(および関連するマニフェストファイル)の数にかかわらず、表示されるSnykのステータスチェックはセキュリティテストとライセンスチェックの2つだけです。統合されたプロジェクトに対するSnykからのステータスチェック数を減らせるため、特にモノレポで役立ちます。
管理者は、プルリクエスト向けのSnykセキュリティテストを厳格にも寛容にも設定できます。たとえば、リポジトリに既存の脆弱性が1つでもある場合、または重大度の高い脆弱性が新たに持ち込まれた場合に、テストを失敗させるよう設定できます。

失敗したセキュリティテストをスキップする
プルリクエストのステータスチェックが失敗すると、特に失敗の理由が分からない場合、開発者は対応に困ることがあります。Snykでは、テストで検出された脆弱性やライセンスの問題を確認できるだけでなく、失敗したテストを回避して強制的に成功扱いにすることもできます。
プルリクエストがSnykのテストに失敗した場合、失敗したチェックのステータスの横に表示される詳細リンクをクリックすると、その理由を確認できます。リンク先のSnykアプリでは、統合ステータスページにテストが失敗した理由の詳細が表示されます。

プロジェクトに対して実行された関連チェックが、それぞれの結果と状態とともに表示されます。テストを完了できなかった場合は「エラー」、問題が見つかりテストに失敗した場合は「失敗」、テスト中の場合は「進行中」、テストに合格した場合は「成功」と表示されます。
コラボレーターとして登録されたユーザーは、このページに表示された1つ以上のテストを強制的に成功扱いにするよう、Snyk管理者に依頼できます。

管理者はSCMで成功としてマークボタンをクリックして、依頼に応じることができます。ステータスはGitHub上で自動的に更新されます。

失敗したセキュリティテストを強制的に成功扱いにするためにスキップした操作はすべて、後から確認できるよう記録されます。操作を実行したユーザーと日時の監査情報に加え、統合ステータスページへのリンクも記録されます。
適切に管理されたシフトレフト
セキュリティのシフトレフトは、DevSecOps戦略を成功させるための重要な柱ですが、責任を持って進める必要があります。開発者が既存の開発ワークフローにセキュリティを無理なく、妨げなく組み込めるよう支援し、適切なレベルで管理することが大切です。
プルリクエスト向けに強化されたSnykのセキュリティテストにより、開発者はプルリクエストに対して実行された自動セキュリティテストの結果を早期にすべて把握でき、テストが失敗した場合は強制的に成功扱いにするよう依頼できます。さらに、セキュリティチームは安全な方法でブロックを解除するために必要な制御を維持できます。
試してみませんか?これらの機能はFreeプランを含むすべてのSnykプランでご利用いただけます。
Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。


