Skip to main content

プルリクエストでの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)を対象にセキュリティテストを実行します。変更によって脆弱性が持ち込まれなければ、テストは問題なく成功します。

すべてのチェックに合格し、ライセンスの問題やベースブランチとの競合がなく、セキュリティテストが成功したことを示すGitHubのプルリクエストのステータス

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

GitHubのプルリクエストのステータス。セキュリティチェックは1件失敗、ライセンスチェックは1件成功し、マージのオプションが表示されている

リポジトリ内のプロジェクト(および関連するマニフェストファイル)の数にかかわらず、表示されるSnykのステータスチェックはセキュリティテストとライセンスチェックの2つだけです。統合されたプロジェクトに対するSnykからのステータスチェック数を減らせるため、特にモノレポで役立ちます。

管理者は、プルリクエスト向けのSnykセキュリティテストを厳格にも寛容にも設定できます。たとえば、リポジトリに既存の脆弱性が1つでもある場合、または重大度の高い脆弱性が新たに持ち込まれた場合に、テストを失敗させるよう設定できます。

プルリクエストのセキュリティテスト設定。依存関係と問題の修正に関する有効なチェック項目と、設定可能な失敗条件を表示

失敗したセキュリティテストをスキップする

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

プルリクエストがSnykのテストに失敗した場合、失敗したチェックのステータスの横に表示される詳細リンクをクリックすると、その理由を確認できます。リンク先のSnykアプリでは、統合ステータスページにテストが失敗した理由の詳細が表示されます。

プロジェクトの失敗したチェックとセキュリティテストの結果を表示するSnykダッシュボード。矢印で失敗チェックの通知を示しています。

プロジェクトに対して実行された関連チェックが、それぞれの結果と状態とともに表示されます。テストを完了できなかった場合は「エラー」、問題が見つかりテストに失敗した場合は「失敗」、テスト中の場合は「進行中」、テストに合格した場合は「成功」と表示されます。

コラボレーターとして登録されたユーザーは、このページに表示された1つ以上のテストを強制的に成功扱いにするよう、Snyk管理者に依頼できます。

danielberman79/mono-repo の Snyk セキュリティチェック結果。8個のファイルと、32件の新たな脆弱性を含む1件の失敗が表示されています。

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

danielbernan79/mono-repoのSnykセキュリティチェック結果。チェックが1件失敗しており、「SCMで成功としてマーク」ボタンが表示されています。

失敗したセキュリティテストを強制的に成功扱いにするためにスキップした操作はすべて、後から確認できるよう記録されます。操作を実行したユーザーと日時の監査情報に加え、統合ステータスページへのリンクも記録されます。

適切に管理されたシフトレフト

セキュリティのシフトレフトは、DevSecOps戦略を成功させるための重要な柱ですが、責任を持って進める必要があります。開発者が既存の開発ワークフローにセキュリティを無理なく、妨げなく組み込めるよう支援し、適切なレベルで管理することが大切です。

プルリクエスト向けに強化されたSnykのセキュリティテストにより、開発者はプルリクエストに対して実行された自動セキュリティテストの結果を早期にすべて把握でき、テストが失敗した場合は強制的に成功扱いにするよう依頼できます。さらに、セキュリティチームは安全な方法でブロックを解除するために必要な制御を維持できます。

試してみませんか?これらの機能はFreeプランを含むすべてのSnykプランでご利用いただけます。

Capture the Flagを始めよう

オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。

カテゴリー:

続きを読む

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSecのご紹介:AI開発のスピードに対応するセキュリティ

AI駆動型開発のスピードに、従来のセキュリティワークフローは追いついていません。SnykのAgentic AppSecは、セキュリティエージェントが脆弱性を継続的に検出、修正、検証し、人が基準を定められるようにします。

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

Blog

AIコーディングエージェントが不適切なアクセス制御を繰り返し実装する理由

AIコーディングエージェントは、コンパイルが通りレビューも通過する一方で、あるテナントのデータを別のテナントに公開してしまう認可ロジックを生成することがあります。不適切なアクセス制御が検出しにくい理由と、その防止策をご紹介します。