このガイドでは、New Relic Vulnerability Management を Snyk Webhook と統合する方法について説明します。Snyk の Webhook は、Snyk の Business または Enterprise のお客様のみが利用できるベータ機能です。ベータ機能として、Webhook API と構造は予告なしに変更される可能性があるため、セキュリティ プロセスの自動化に Webhook を使用する場合は慎重に行ってください。
Snyk Webhook への変更と同期を保つためにあらゆる努力を払いますが、手順がずれていることに気付いた場合はお知らせください。
これらの手順が完了すると、New Relic アカウントで Snyk によって検出された新しい脆弱性がリアルタイムで表示され、新たに検出された問題の分析ダッシュボードを構築できるようになります。
詳細については、 Snyk の公式ドキュメントを参照してください。
前提条件
Snyk API トークン
ニューレリック
API 経由で Webhook を設定するには、Snyk 組織の管理者である必要があります
Webhook 構成
Webhook を構成するには、次の手順を実行します。
Snyk API トークンを取得する
Snyk UI のユーザー メニューで、 [アカウント設定] をクリックし、Snyk API トークン キーをコピーします。詳細については、 Snyk の公式ドキュメントを参照してください。
New Relic ライセンス - ライセンスキーを挿入
ライセンスを選択 - 挿入 New Relic アカウントで、または新しいアカウントを作成します。
重要
Snyk および New Relic キーに加えて、ランダムな署名シークレットを生成する必要があります。これは Snyk では必要ですが、データを受信するときに New Relic では使用されません。
Snyk 組織 ID をコンパイルする
次のコマンドを実行して、アクセスできる Snyk 組織 ID のリストを取得します。
$curl -H "content-type: application/json" \>-H "authorization: token YOUR_SNYK_API_TOKEN" \>"https://api.snyk.io/api/v1/orgs" | jq -r '.orgs[] | "\(.id)\t\(.name)"'
重要
このコマンドを実行するには、コマンドライン JSON プロセッサである jqをインストールする必要があります。
各 Snyk 組織で Webhook を作成する
Snyk 組織ごとに Webhook を個別に構成する必要があります。
次のコマンドを実行して、プロジェクトがテストされるたびに New Relic のセキュリティ インジェスト プロセッサにポストする Webhook を作成します。これは、 project_snapshot イベント タイプを通じて送信されます。
$curl -X POST -H "content-type: application/json" \>-H "authorization: token <SNYK_API_TOKEN>" \>--data '{"url": $ "https://security-ingest-processor.service.newrelic.com/v1/security/webhooks/snyk?Api-Key=YOUR_NEW_RELIC_LICENSE_KEY",$ "secret": "YOUR_SIGNING_SECRET"}' \>"https://api.snyk.io/api/v1/org/<SNYK_ORG_ID>/webhooks"
Webhook 接続をテストする
次のコマンドは、組織内で構成されている各 Webhook の Webhook ID と URL を含む結果の配列を返します。
$curl -H "content-type: application/json" \>-H "authorization: token YOUR_SNYK_API_TOKEN" \>"https://api.snyk.io/api/v1/org/YOUR_SNYK_ORG_ID/webhooks"
Webhook をテストするには、テストする Webhook から ID をコピーし、次のコマンドを実行します。
$curl -X POST --data "" -H "content-type: application/json" \>-H "authorization: token YOUR_SNYK_API_TOKEN" \>"https://api.snyk.io/api/v1/org/YOUR_SNYK_ORG_ID/webhooks/YOUR_WEBHOOK_ID/ping"
Webhook が正しく設定されている場合、コマンドは OK
を返します。
Webhook を手動でテストする
Snyk 内でプロジェクトの手動スキャンをトリガーして、データが New Relic に流れ込むようにする必要がある場合があります。プロジェクト内のスキャン ターゲットで [今すぐ再テスト] をクリックすることで、Snyk CLI または API を介して、または Snyk UI からこれを行うことができます。
手動テストの実行に関する Snyk の公式ドキュメントを確認してください。
プロジェクト内のスキャン ターゲットで [今すぐ再テスト] をクリックします。
Snyk データが New Relic に送信されていることを確認する
New Relic のログをチェックして、 logtype:security
を入力してセキュリティ イベントをフィルタリングし、手動テストからの Snyk の結果が正常に配信されたことを確認します。
- one.newrelic.com > All capabilities > Logsに移動します。
- 検索バーに
logtype:security
と入力し、 [クエリ ログ]をクリックします。
one.newrelic.com > All capabilities > Logs
Snyk Webhook トランスポートは、各テストで発生する 新しい問題 と 削除された問題 のみを返します。New Relic は New Issuesのみを解析します。手動テストで新しい問題が明らかにならない場合、New Relic に新しいセキュリティ ログは表示されません。この場合、Webhook トランスポートが成功したことを示す次のようなログ メッセージが New Relic に表示されます。
SnykWebhook scan reported 879 byte payload with 0 events (0 unique issue ids) from '' errors=no
New Relic で Snyk データを表示する
1 つ以上の Webhook イベントを構成したら、Snyk Webhook が New Relic のセキュリティ インジェスト エンドポイントに送信された結果を表示できます。
New Relic で Snyk データを識別するために使用できる 3 つの方法を確認してください。
脆弱性管理でのデータの表示
このページは、 one.newrelic.com > All capabilities > Vulnerability Managementにあります。
このビューは、Snyk 統合から消費されたデータを含む、すべてのソフトウェアの脆弱性の鳥瞰図を提供します。さまざまなタブを使用して、脆弱性を特定しトリアージします。
one.newrelic.com > All capabilities > Vulnerability Management.
脆弱性イベントのクエリ
Snyk イベントが処理されると、 脆弱性 テーブルに格納されます。このテーブルにクエリを実行して生データを表示するには、次の手順を実行します。
one.newrelic.com > All capabilities > Query your dataに移動します。
次のクエリを入力します。
FROM Vulnerability SELECT * where source = 'Snyk' since 7 days agoone.newrelic.com > All capabilities > Query your data
Snyk ダッシュボード
ビルド済みの Snyk ダッシュボードは 、New Relic Instant Observability マーケットプレイスからインストールできます。
このダッシュボードは、脆弱性データの別のビューを提供し、グラフ ウィジェットを使用して、Snyk 統合データから独自のダッシュボード ビューを作成できます。
Instant Observability Snyk ダッシュボードをインストールします。