本文の内容は、2025年7月29日に Christian Laffin が投稿したブログ(https://sysdig.com/blog/connecting-runtime-to-source-sysdig-and-semgrep-integration)を元に日本語に翻訳・再構成した内容となっております。
今日の複雑なクラウド環境と高まるプレッシャーの中で、セキュリティチームが最も避けたいのは、行き止まりに直面することです。しかし、重大なランタイム上の検出結果が、まさにその「行き止まり」になってしまうことは少なくありません。本番環境で実際に稼働している脆弱性を目にしても、その痕跡が途切れてしまう──そんな経験を誰もがしているはずです。「これはどこから来たのか?」「どのチームが担当なのか?」「どうやって修正すればいいのか?」
Sysdig は、アクティブな脆弱性を特定することが「戦いの半分に過ぎない」ことを理解しています。だからこそ、Semgrep とのパートナーシップが非常に重要なのです。私たちがつなげているのは、単なる2つのツールではありません。セキュリティライフサイクルにおける最も重要な2点──「ランタイムで脆弱性が検出された瞬間」と「その脆弱性が生まれた正確なコードの行」──を直接結びつけているのです。
ランタイムとソースコンテキストのブリッジ
これまで長きにわたり、ランタイムセキュリティと静的解析はまったく別の世界で機能してきました。Sysdig のランタイム脅威検知は Falco を基盤としており、ランタイムのコンテナ内におけるプロセスの動作、ネットワーク接続、ファイルシステムの操作といった比類なきランタイムコンテキストを提供します。
一方、Semgrep は、リポジトリ、依存関係マニフェスト、コード所有者といった「開発者にとっての唯一の真実(ground truth)」を示すソースコード側のコンテキストを提供します。
課題は、これらをつなぐために必要だった「手作業による相関付け」にあります。
たとえば、セキュリティエンジニアは、Sysdig から本番ポッドで利用中の重大な脆弱性に関する検出結果を受け取っても、その脆弱性の元となったソースリポジトリを手作業で探し出さなければなりません。一方、開発者は Semgrep から SCA(ソフトウェア構成解析)の結果を受け取っても、それが理論上のリスクなのか、本番環境で発火している深刻な問題なのかを判断する材料がありません。
この統合により、そうした手作業による探索は不要になります。動的かつ自動化されたデータ補完プロセスによって、ランタイムとソースコードのギャップを埋めることが可能になるのです。
強化された検出結果の構造:
データフローの全体像
Sysdig の検知結果が生成されると、ランタイムとソースのコンテキストを融合するための正確な自動化されたワークフローがトリガーされます。
- ランタイム検知: Sysdigは、コンテナ内で実行中のプロセスによって使用されている脆弱なパッケージを検出します。これにより、イメージID、パッケージ名(log4j-core)、バージョン(2.14.1)などを含む詳細なランタイム検出結果が生成されます。
- メタデータ抽出: Sysdig は標準データ収集の一環として、ソース リポジトリとコミット SHA の OCI ラベルを含むコンテナ イメージのメタデータをすでに収集しています。
- エンリッチメント: Sysdigは、抽出されたソース情報を用いて、Semgrepプラットフォームとデータを照合します。このクエリは基本的に、「
github.com/my-org/my-app
コミット のリポジトリについてa1b2c3d
、パッケージ についてどのようなことを知っていますかlog4j-core
?」という質問をしています。 - ソースコンテキストの取得: Semgrep はすでにこれをスキャンしているため、必要なデータはインデックス化されています。脆弱な依存関係の正確な位置(例:
pom.xml
52行目)と修復アドバイス(例:バージョン 2.17.1 にアップグレードする)を含むペイロードを即座に返します。 - 統合された検知結果: Sysdigは、このSemgrepペイロードを元のランタイム検知結果に統合します。セキュリティエンジニアは、Sysdig Secure UIで「何」と「どこ」の両方を含む、単一の実用的なビューを確認できます。Semgrep内では、ランタイムコンテキストでこの脆弱性を確認できます。
これは、ランタイム イベントからソース コードの場所までの直接的なプログラム パスです。
仕組み: メタデータブリッジの構築
ランタイムとソースコード間のブリッジは魔法ではありません。CI/CDパイプラインで有効にするシンプルで強力なDevOpsのベストプラクティス、つまりコンテナイメージにメタデータを直接埋め込むという手法に基づいています。この一度の設定で、ソースコードから本番環境までアプリケーションと共に移動する永続的なリンクが作成されます。
これは、標準のOpen Container Initiative(OCI)ラベルを使用して行われます。これらのキーと値のペアを追加することで、実行中のワークロードを元の場所まで接続する永続的なパンくずリストが作成されます。これは堅牢で、独自仕様ではないメカニズムです。この統合では、2つのラベルが非常に重要です。
- org.opencontainers.image.source : ソースコード リポジトリの URL。
- org.opencontainers.image.revision : イメージが構築された特定のコミット ハッシュ (SHA)。
これを実装するには、あらゆる CI/CD システムのイメージ ビルド ステップを簡単に変更します。
この方法で構築されたイメージがデプロイされると、Sysdigはこれらのラベルを自動的に検出します。埋め込まれたリポジトリとコミット情報は、Semgrepとデータを照合するための正確な座標として機能し、ループを閉じます。
結果: 単一の実用的なビュー
この統合により、セキュリティ検知の本質が根本的に変わります。単純な通知ではなく、包括的な修復チケットを単一のビューで確認できるようになります。
SysdigとSemgrepは、ランタイムとソースコードの間にシームレスな技術的橋渡しを構築することで、チームに統一されたシグナルを提供します。これにより、セキュリティ運用担当者はアラート疲れを軽減し、影響の大きい脅威に集中できるようになります。一方、開発者は平均修復時間(MTTR)の短縮に必要な正確で実用的なデータを受け取ることができます。私たちは、セキュリティのボトルネックからセキュリティのスピードへと移行し、DevSecOpsの実現を支援します。