このガイドではNew Relic Vulnerability Management(脆弱性管理)を Snyk Webhook と統合する方法について説明します。 Snykの Webhook は、 Snyk's Businessまたは Enterprise 顧客のみが利用できるベータ機能です。 ベータ機能であるため、 Webhook APIと構造は予告なく変更される可能性があります。セキュリティ プロセスの自動化に Webhook を使用する場合は慎重に行ってください。
Snyk Webhooksの変更に同期できるよう全力を尽くしますが、同期がとれていないことに気付いた場合はお知らせください。
これらの手順を完了すると、 Snykによって検出された新しい脆弱性が New Relic アカウントでリアルタイムに表示され、新しく検出された問題の分析ダッシュボードを構築できるようになります。
詳細については、公式のSnykドキュメントを参照してください。
前提条件
- Snyk API トークン
- ニューレリック
- API経由で Webhook を構成するには、Snyk 組織アドミニストレーターである必要があります
Webhook 構成
Webhook を構成するには、次の手順を実行します。
Snyk API トークンを取得する
Snyk UI のユーザー メニューで、 Account settingsをクリックし、 Snyk API トークン キーをコピーします。 詳細については、Snyk の公式ドキュメントをご覧ください。
ニューレリック License - Insert
New Relic アカウントでLicense - Insert を選択するか、新しいアカウントを作成してください。
重要
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 を手動でテストする
New Relic にデータを流すには、 Snyk内のプロジェクトの手動スキャンをトリガーする必要がある場合があります。 これは、 Snyk CLI または API を介して、またはプロジェクト内のスキャン ターゲットでRetest nowをクリックしてSnyk UI から実行できます。
手動テストの実行については、公式のSnykドキュメントを確認してください。
プロジェクト内のスキャン ターゲットでRetest nowをクリックします。
Snyk データが New Relic に送信されていることを確認する
New Relic のログをチェックして、 logtype:security
と入力してセキュリティ イベントをフィルター処理し、手動テストからのSnyk検出結果が正常に配信されたことを確認します。
- one.newrelic.com > All capabilities > Logsに移動します。
- 検索バーに
logtype:security
と入力し、 Query logsをクリックします。
one.newrelic.com > All capabilities > Logs
Snyk Webhook トランスポートは、各テストで発生するNew IssuesとRemoved Issuesのみを返します。 New Relic はNew Issuesのみを解析します。 手動テストで新しい問題が見つからない場合、New Relic に新しいセキュリティ ログは表示されません。 この場合、 New Relicには、成功した Webhook トランスポートに関する次のようなログメッセージが表示されます。
SnykWebhook scan reported 879 byte payload with 0 events (0 unique issue ids) from '' errors=no
New Relic で Snyk データを表示する
1 つ以上の Webhook イベントを構成すると、New Relic のセキュリティ取り込みエンドポイントに送信されているSnyk Webhook の結果を表示できます。
New Relic でSnykデータを識別するために使用できる 3 つの方法を確認してください。
脆弱性管理でのデータの表示
このページはone.newrelic.com > All capabilities > Vulnerability Managementにあります。
このビューでは、 Snyk統合から消費されたデータを含む、すべてのソフトウェアの脆弱性を俯瞰的に見ることができます。 さまざまなタブを使用して、脆弱性を特定し、優先順位付けします。
one.newrelic.com > All capabilities > Vulnerability Management。
脆弱性イベントのクエリ
Snykイベントが処理されると、 Vulnerabilityテーブルに保存されます。 このテーブルをクエリして生データを表示するには、次の手順を実行します。
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 ダッシュボード
New Relic Instant observability マーケットプレイスから、事前構築済みの Snyk ダッシュボードをインストールできます。
このダッシュボードは、脆弱性データの別のビューを提供し、グラフ ウィジェットを使用して、Snyk 統合データから独自のダッシュボード ビューを作成できます。
Instant Observability Snyk ダッシュボードをインストールします。