Skip to main content

Snykのセキュリティポリシーで修正の優先順位付けを効率化

blog feature snyk security policies

2021年8月11日

0 分で読めます

新しいアクションと2つの条件が加わり、Snykのセキュリティポリシーがさらに強力になりました。開発チームとセキュリティチームがリスクを評価し、リソースをより効率的に集中できるよう支援します。

開発者にとって、「ノイズ」は少ないほどよいものです。重要でも関連性もない問題への対応を求められるのは、貴重な開発時間の浪費であり、フラストレーションや不信感を招きかねません。組織内で開発者がセキュリティに対する責任感や当事者意識を高める助けにも、決してなりません。

セキュリティポリシーを活用すれば、どの問題に優先して対処し、重大な問題を解決するまでどの問題を無視できるかを効果的に判断できます。SDLCのさまざまな段階にポリシーを適用することで、脆弱なコンポーネントやコンプライアンスに準拠しないコンポーネントを見落とさないようにすることもできます。ポリシーは組織のガバナンスフレームワークに不可欠な要素であり、社内で認められたセキュリティおよびコンプライアンス基準に沿って運用されます。

Snykのセキュリティポリシーに導入された強化版ルールエンジンには、新しいIgnoreアクションと新たな条件(CVEおよびSnyk ID)が追加されました。これにより、ガバナンスをより柔軟かつきめ細かく制御でき、組織全体でより効果的な優先順位付け戦略を実現できます。

脆弱性をまとめて無視する

Snykのセキュリティポリシーには、セキュリティ脆弱性への対処方法を正確に定めるルールが1つ、または複数含まれます。ルールは、1つまたは複数の条件に基づいてアクションを実行します。これまでは、脆弱性の深刻度を調整するアクションのみがサポートされていました。脆弱性のCWEや、エクスプロイトの有無に基づいて、深刻度を変更できました。

今回、特定の脆弱性を完全に無視するオプションが加わりました。これまでサポートされていた条件に加え、新たに導入されたCVEとSnyk IDの条件も使用できます。脆弱性のバックログをさまざまな方法で整理するのに役立ちます。

たとえば、既知のエクスプロイトがない脆弱性を無視するセキュリティポリシーを設定できます。

内部プロジェクト向けSnykセキュリティポリシーのフォーム。開発ポリシーの属性と、「脆弱性ではない」とマークされたCWE-400ルールを表示

新しいCVE条件をプロジェクト属性と組み合わせれば、特定の種類のアプリケーションには関係ないと分かっている脆弱性を無視することもできます。

中程度の重大度のフロントエンドプロジェクト向け開発ポリシーを定義するSnykのセキュリティポリシーフォーム。CVEルールは「脆弱性なし」に設定されています。

同様に、CWE条件を使って脆弱性のカテゴリー全体を無視できます。

社内開発プロジェクト向けのSnykセキュリティポリシーフォーム。「社内」が選択され、CWE-400のルールが「脆弱性なし」と表示されています

きめ細かなポリシー管理

プロジェクトごとに状況は異なり、セキュリティやコンプライアンスの境界もそれぞれ異なるでしょう。たとえば、ビジネスに不可欠なプロジェクトには、社内向けでテスト開発環境に隔離されたプロジェクトよりも、厳格な管理が求められます。

Snykでは、組織内でポリシーをどのように適用するかを正確に決めるための、きめ細かな制御が可能です。プロジェクトタグや属性を使って、単一または複数のプロジェクトにポリシーを適用できます。これら2種類のメタデータは、手動またはSnyk API経由で自動的にプロジェクトに追加でき、共通の特性に基づいてプロジェクトをグループ化できます。また、Snykグループ内の特定の組織にポリシーを適用することもできます(グループ、組織、プロジェクトの階層について詳しくはドキュメントをご覧ください)。

今度はSnykのライセンスポリシーを使った例を見てみましょう。

組織Xの法務チームは、本番環境で稼働するビジネスクリティカルなフロントエンドサービスに対して、非常に厳格なコンプライアンス境界を適用する必要があると判断しました。一方、開発中の社内プロジェクトについては、コンプライアンスへの準拠をそれほど重視していません。

まず組織Xは、該当するSnykのプロジェクトにCritical、Production、Frontendの属性を追加します。

package.jsonのメタデータと、Frontendが選択された状態で開いているEnvironmentドロップダウンを表示するSnykのプロジェクト設定画面。

次に、新しいライセンスポリシーを作成します。追加した属性を使って、該当するプロジェクトにポリシーを割り当てます。ポリシー内では、プロジェクトで特定されたコピーレフトライセンス(GPL-3.0やAGPL-3.0ライセンスなど)に高い深刻度を設定できます。

プロジェクト属性とソフトウェアライセンス、重要度レベル、コンプライアンス警告が表示されたSnykのライセンスポリシーフォーム

SDLC全体に適用

作成したSnykのセキュリティポリシーとライセンスポリシーは、該当するすべてのプロジェクトに適用され、SDLCの各段階で徹底されます。開発者のローカル開発環境にあるIDEやCLIから始まり、Gitベースのワークフロー、CI/CDを経て、本番環境まで適用されます。こうした複数のセキュリティおよびコンプライアンスのゲートにより、修正のコストと時間を抑えられる開発の早い段階で問題を検出できます。

たとえば、Snykが監視するGitHubプロジェクトでは、コントリビューターが新しいプルリクエストを作成すると、そのプロジェクトに割り当てられたセキュリティポリシーとライセンスポリシーに照らしてチェックされます。これにより、組織の社内基準に沿って、脆弱なコードやコンプライアンスに準拠しないコードがリポジトリにコミットされるのを防げます。

以下の例では、JavaScriptアプリケーションに全画面スクロール機能を追加するため、fullpage.jsパッケージを追加しようとしています。セキュリティチェックには合格しました(このパッケージの最新バージョンに既知の脆弱性はありません)が、ライセンスポリシーに違反するGPLv3ライセンスが含まれていたため、ライセンスチェックには失敗しました。

package.jsonを更新するGitHubプルリクエスト。ライセンステストは失敗、セキュリティテストは合格、マージコンフリクトはなし

Detailsリンクをクリックすると、テストに失敗した詳しい情報と背景を確認できます。

Snykのライセンステスト結果。fullpage.js@3.1.2でテストが失敗し、重大度の高いGPL-3.0ライセンスの問題が示されています

同様に、CI/CDでもポリシーが適用され、ビルドがセキュリティおよびコンプライアンスの境界を守っているか確認できます。以下の例では、Snykのテストで重大度の高い脆弱性が見つかったため、GitHub Actionsのビルドワークフローが失敗しました。

Snykの脆弱性チェックが失敗し、コマンドログが展開されたGitHub Actionsのセキュリティジョブ

セキュリティとスピードは両立できる

アプリケーションセキュリティにおいて、ポリシーは、迅速な開発と安全性の維持のバランスを取るうえで重要な役割を果たします。最適なバランスは組織ごとに異なりますが、ポリシーを適切に導入すれば、開発チームとセキュリティチームは組織が定めるセキュリティおよびコンプライアンスの境界内で業務を進めながら、生産性を最大限に高められます。

そのために、ポリシーには次の要件が求められます。

  • 柔軟性があり、組織内でルールをきめ細かく設定・適用できること

  • 摩擦を生むのではなく、開発プロセスやワークフローを補完すること

  • 問題の優先順位を効果的に決め、効率とセキュリティを最大化できること

  • 管理を担う個人やチームが、どのルールがどこに適用されているかを明確に把握できること

  • コンプライアンスを確保するために、ポリシーを一元管理できる十分なガバナンスが整っていること

これらはすべて、Snykのポリシーの中核となる機能です。Snykのポリシーとその使い方について詳しくは、技術ドキュメントをご覧ください。

オープンソースの依存関係を安全に

開発者を第一に考えたSnykのツールなら、脆弱なオープンソースの依存関係やその推移的依存関係を、ワンクリックで修正するプルリクエストを作成できます。

続きを読む

Blog

フロンティアモデルは脆弱性を発見した。攻撃者だけがエクスプロイトチェーンを見つけた。

静的解析で欠陥は見つかりましたが、ライブ攻撃テストで侵害につながる連鎖を実証できたのは唯一でした。Evo COS、Claude Security、Claude Code Securityを比較します。

feature insights context
Blog

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

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

Blog

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

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