コンテンツにスキップ

Webhookの稼働時のフィールド

このページでは、汎用Webhookのペイロードに含まれるトップレベルのruntimeとfindings[].runtimeのフィールドを説明します。 ペイロード全体の構造はペイロードの全体像、表の読み方と複数のフィールドで使う値はレポートのフィールドを参照してください。

稼働時のフィールドは、次の3か所に出力します。

場所 内容
トップレベルのruntime Sensorの状態と使用状況の件数
findings[].runtime パッケージグループごとの使用状況
差分のruntime_usage 変化があったパッケージの使用状況

稼働時の使用状況が無効の場合は、これらのフィールドをすべて省略します。 判定方法と観測の限界は、稼働時の使用状況を参照してください。

Sensorの情報

トップレベルのruntimeは、Sensorの状態、使用中と判定する条件、使用状況の件数を示します。 フィールドは次のとおりです。

フィールド名 型 意味 値がないとき
sensor_status string Sensor全体の状態 —
heartbeat_at string RFC 3339形式のSensorの最終報告時刻 報告時刻がなければ省略
interval_seconds integer 秒単位のサンプリング間隔 0なら省略
rules object 使用中と判定する条件を示す固定の値 —
rules.os_packages string OSパッケージの判定条件 —
rules.lang_packages_binary string 実行ファイルに組み込まれた言語パッケージの判定条件 —
rules.lang_packages_runtime string ランタイムが読み込む言語パッケージの判定条件 —
events_status string eBPFによるイベント観測の状態 Sensorの報告を読めなければ""
events_reason string eBPFによるイベント観測を利用できない理由 理由がなければ省略
counts object 使用状況の件数 —

sensor_statusの値は次のとおりです。

値 意味
ok Sensorが正常に動作している
degraded 処理の停滞などにより、観測や結果の保存に支障がある
stale Sensorの最後の報告から時間が経ち、観測結果の新しさを確認できない
not_reporting Sensorの観測結果を保存したファイルがまだない
permission_denied Sensorがコンテナのプロセス情報などを読み取る権限を利用できない
evidence_invalid KestreLynxが観測結果のファイルを読み取れないか、内容の検証を通らない
isolation_failed 読み取り以外の操作の制限を設定できず、Sensorが観測を始めていない
isolation_degraded Sensorによる読み取り以外の操作の制限が一部効いていない

rulesの各フィールドの固定値は次のとおりです。

フィールド名 値 意味
os_packages executed_or_loaded_by_running_process パッケージのファイルの実行やライブラリとしての読み込みを、定期的な確認またはeBPFのイベントで確認した場合に使用中と判定
lang_packages_binary in_running_binary パッケージを組み込んだ実行ファイルが動いていることを定期的な確認で見つけた、またはeBPFでその起動を観測した場合に使用中と判定
lang_packages_runtime runtime_process_running パッケージに対応するランタイムのプロセスが動いていることを定期的な確認で見つけた、またはeBPFでその起動を観測した場合に使用中と判定

events_statusは、sensor_statusとは別にeBPFによるイベント観測の状態を示します。 値は次のとおりです。

値 意味
ok eBPFによるイベント観測を利用できる
unavailable eBPFによるイベント観測を利用できず、サンプリングだけで観測する

events_reasonの値は次のとおりです。

値 意味
kernel_unsupported カーネルがイベント観測に対応していない
btf_missing イベント観測に必要な、カーネルの型情報を読み取れない
permission eBPFによる観測に必要な権限を利用できない
attach_failed イベント観測の準備や開始に失敗した
cgroup_v1 ホストのコンテナ管理の仕組みが、観測に必要なcgroup v2ではない

次の例は、Sensorが正常に動作している場合のトップレベルのruntimeです。

{
  "sensor_status": "ok",
  "heartbeat_at": "2026-06-24T09:00:00Z",
  "interval_seconds": 30,
  "rules": {
    "os_packages": "executed_or_loaded_by_running_process",
    "lang_packages_binary": "in_running_binary",
    "lang_packages_runtime": "runtime_process_running"
  },
  "events_status": "ok",
  "counts": {
    "in_use": 2,
    "not_observed": 2,
    "unavailable": 1,
    "muted": 0
  }
}

使用状況の件数

runtime.countsは、actionable、watch、wont_fix、eol_packagesに含まれるすべてのパッケージグループを、使用状況ごとに数えます。 フィールドは次のとおりです。

フィールド名 型 意味 値がないとき
in_use integer 使用中のパッケージグループ数 0
not_observed integer 使用が確認されないパッケージグループ数 0
unavailable integer 使用状況を判定できないパッケージグループ数 0
muted integer 通知オフのパッケージグループ数 0

mutedは、使用が確認されないパッケージグループだけを数えるため、not_observedの内数です。

使用状況の意味は、使用状況の値を参照してください。

パッケージグループの使用状況

findings[].runtimeは、パッケージグループの使用状況と、その判定に使った観測結果を示します。 フィールドは次のとおりです。

フィールド名 型 意味 値がないとき
usage string パッケージグループの使用状況 —
reason string 使用状況を判定できない理由 usageがunavailable以外なら省略
evidence_kinds stringの配列 使用を確認した観測の種類 usageがin_use以外なら省略
events_coverage string eBPFによるイベント観測の範囲 usageがin_use、対象のコンテナがない、またはSensorの報告を使えない場合は省略
exposure string 使用を確認したプロセスのポートの公開範囲 Sensorの報告を使えない場合、またはusageがin_useでcontainers[0].processがない場合は省略
high_privilege boolean 高い権限で動いている場合にtrue 該当しなければ省略
containers objectの配列 コンテナごとの観測結果 対象のコンテナがないか、Sensorの報告を使えなければ省略
muted boolean 通知オフの場合にtrue 通知オフでなければ省略
muted_reason string 通知オフの理由 通知オフでなければ省略

evidence_kindsのうち、OSパッケージに使う値は次のとおりです。

値 意味
exe 定期的な確認で、パッケージのファイルが実行中だった
mapped_library 定期的な確認で、パッケージのライブラリを読み込んだプログラムが動いていた
exec_event eBPFで、パッケージのファイルが実行される出来事を捉えた
library_load_event eBPFで、パッケージのライブラリが読み込まれる出来事を捉えた

evidence_kindsのうち、言語パッケージに使う値は次のとおりです。

値 意味
binary_running 定期的な確認で、パッケージを組み込んだ実行ファイルが動いていた
binary_executed eBPFで、パッケージを組み込んだ実行ファイルが起動する出来事を捉えた
runtime_running 定期的な確認で、パッケージに対応する実行環境が動いていた
runtime_executed eBPFで、パッケージに対応する実行環境が起動する出来事を捉えた

events_coverageの値は次のとおりです。

値 意味
since_start コンテナの起動前からeBPFによるイベント観測を開始し、イベントの欠落を記録していない
partial コンテナの起動後にイベント観測を開始した、またはイベントの一部が欠落した
none eBPFによるイベント観測なし

exposureの値は次のとおりです。

値 意味
host_published_all ホストのすべてのインターフェースに公開
host_published_loopback ホストのループバックだけに公開
container_listening 待ち受けているがホストには公開していない
unknown 公開範囲を判定できない、または使用中でない

muted_reasonの値は次のとおりです。

値 意味
no_fix_not_in_use_7d 修正版がなく、7日以上使用が確認されない

次のフィールドには補足があります。

  • usage
    • コンテナや言語パッケージの場所ごとの判定に、次の条件を上から順に適用
      1. 1つでも使用中ならin_use
      2. 判定できないものがあればunavailable
      3. 判定対象がすべて使用未確認ならnot_observed
  • events_coverage
    • コンテナや言語パッケージの場所ごとの値を、none、partial、since_startの順で優先し、最も観測が不十分な値を採用
  • high_privilege
    • 次のいずれかに該当するとtrue
      • privilegedコンテナで実行
      • 危険なcapabilityを持つ
      • user namespaceの外で実効UID 0として実行
    • usageがin_useの場合、exposureとともに先頭のcontainers[0]の観測から採用
    • exposureと同じプロセスについての値で、採用したプロセスの情報はcontainers[0].processに出力
  • containers
    • このイメージを動かしている観測対象のコンテナごとに1要素を含める
    • そのパッケージを使用中でないコンテナも含める

次の例は、使用中のパッケージグループのruntimeです。

{
  "usage": "in_use",
  "evidence_kinds": [
    "exe"
  ],
  "exposure": "host_published_all",
  "high_privilege": true,
  "containers": [
    {
      "name": "web-1",
      "container_id": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
      "generation_started_at": "2026-06-24T08:00:00Z",
      "usage": "in_use",
      "last_seen": "2026-06-24T09:00:00Z",
      "ports": [
        "0.0.0.0:443/tcp"
      ],
      "process": {
        "exe": "/usr/sbin/nginx",
        "effective_uid": 0,
        "userns": false,
        "privileged": false
      }
    }
  ]
}

usageの意味は、使用状況の値を参照してください。 通知オフの条件は、修正版がない所見の通知オフを参照してください。

コンテナの証拠

findings[].runtime.containers[]は、コンテナごとの使用状況と、観測したプロセスや言語パッケージの場所ごとの判定を示します。 コンテナは次の順に並べます。

  1. 使用中のコンテナが先
  2. 使用中のコンテナ同士は、全インターフェースに公開、ループバックだけに公開、ホストに公開せず待ち受け、公開範囲不明の順
  3. 公開範囲が同じ使用中のコンテナ同士は、高い権限のものが先
  4. 使用状況、公開範囲、権限で順序が決まらない場合は、コンテナIDの順

コンテナ自体のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
name string コンテナ名 ""
container_id string 64桁の16進数のコンテナID ""
generation_started_at string Sensorが、今動いているそのコンテナを最初に観測した時刻 省略
usage string このコンテナでのパッケージの使用状況 —
reason string 使用状況を判定できない理由 usageがunavailable以外なら省略
last_seen string 最後に観測した時刻 省略
ports stringの配列 コンテナ側でprocessのプロセスが待ち受けるアドレスとポート 省略
kinds_ambiguous boolean OSパッケージの観測の種類を個々のプロセスに対応付けられない場合にtrue falseなら省略
process_exes stringの配列 観測した実行ファイルの重複を除いた一覧 kinds_ambiguousがfalseなら省略
process object 使用の根拠となったプロセスの情報 プロセスの観測がなければ省略
instances objectの配列 言語パッケージの場所ごとの使用状況 OSパッケージなら省略

processのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
exe string 実行ファイルのパス 省略
effective_uid integer プロセスの実効UID —
userns boolean user namespaceを使用している場合にtrue false
dangerous_caps stringの配列 プロセスが持つ危険なcapabilityの一覧 省略
privileged boolean privilegedコンテナで動いている場合にtrue false

instances[]の各要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
type string パッケージの種類 省略
target string 検出対象のファイルのパスやランタイム名 省略
pkg_path string 個々のパッケージの所在を示すファイルのパス 省略
usage string この場所でのパッケージの使用状況 —
reason string 使用状況を判定できない理由 usageがunavailable以外なら省略

次のフィールドには補足があります。

  • generation_started_at
    • RFC 3339形式の時刻
  • last_seen
    • RFC 3339形式の時刻
    • 使用中なら、出力した使用の根拠を最後に観測した時刻
    • 使用中でなければ、コンテナを最後に確認した時刻
  • ports
    • アドレス:ポート/プロトコルの形式で、例は0.0.0.0:443/tcp
    • ホスト側の公開アドレスや公開ポートへの変換はしない
  • kinds_ambiguous
    • trueのときは、evidence_kindsの種類とprocess.exe・process_exesの実行ファイルを1対1に対応させて読まない
  • process
    • 複数のプロセスを観測した場合は、公開範囲が最も広く、公開範囲が同じなら権限が最も高いプロセス1つの情報
  • process.dangerous_caps
    • 対象はCAP_SYS_ADMIN、CAP_SYS_PTRACE、CAP_SYS_MODULE、CAP_NET_ADMIN、CAP_DAC_READ_SEARCH、CAP_DAC_OVERRIDE、CAP_SETUID、CAP_SETGID
  • instances
    • 同じ言語パッケージがコンテナの中の複数の場所にある場合の、場所ごとの判定
    • 場所には、パッケージを組み込んだ実行ファイルや、パッケージのパスがある
  • instances[].type
    • python-pkgやnode-pkgなどのパッケージの種類
  • instances[].target・instances[].pkg_path
    • Trivyの値の先頭に/がある場合、その1文字を取り除いて出力
    • KestreLynxが追加するNode.js・Python本体の検出結果では、KestreLynxが求めた本体の実行ファイルのパスを両方のフィールドに出力

次の例は、Pythonの言語パッケージを使用中と判定したコンテナ1つの情報です。

{
  "name": "api-1",
  "container_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
  "generation_started_at": "2026-06-24T08:00:00Z",
  "usage": "in_use",
  "last_seen": "2026-06-24T09:00:00Z",
  "process": {
    "exe": "/usr/bin/python3.11",
    "effective_uid": 1000,
    "userns": false,
    "privileged": false
  },
  "instances": [
    {
      "type": "python-pkg",
      "usage": "in_use"
    }
  ]
}

コンテナとinstances[]のusageの意味は、使用状況の値を参照してください。

判定できない理由

パッケージグループ、コンテナ、言語パッケージの場所ごとのreasonは、usageがunavailableのときに出力します。 使用状況を判定できない理由を、次の値で示します。

Sensorからの情報の取得と、観測の準備・継続に関する値は次のとおりです。

値 意味
sensor_not_reporting Sensorの観測結果のファイルがまだない
sensor_stale Sensorの報告や対象コンテナの確認から時間がたち、使用が確認されないと判断できない
evidence_invalid Sensorの観測結果を読み取り、内容を検証する処理に失敗している
isolation_failed Sensorに読み取り以外の操作を制限する設定ができず、観測を始めていない
permission_denied Sensorがコンテナのプロセス情報やファイルを読む操作を拒否されている
initializing パッケージとファイルを対応付けるための準備ができていない
stalled 対象コンテナを調べる処理が制限時間内に終わっていない
truncated 読み取り量などの上限に達し、観測に必要な情報の一部を取得できていない
incomplete 観測結果の一部を利用できず、その部分での使用を確認できない

コンテナと観測結果の対応に関する値は次のとおりです。

値 意味
generation_unverified 観測結果が、現在のコンテナの起動状態とスキャン対象のイメージに対応するか確認できない
container_not_observed 対象コンテナについて、判定に使える観測結果がない

パッケージの管理情報や、そのファイルとの対応に関する値は次のとおりです。

値 意味
parse_failed コンテナのパッケージ管理情報を解析する処理が失敗している
db_absent コンテナ内に、利用できるパッケージ管理情報が見つかっていない
db_error 対応するパッケージ管理情報は見つかったが、読み取りまたは解析に失敗している
db_unsupported コンテナ内のパッケージ管理情報が、Sensorの対応していない形式
no_file_list パッケージ管理情報から、そのパッケージに属するファイルの一覧を取得できない
attribution_ambiguous 観測したファイルが複数のパッケージに属し、どのパッケージの使用か特定できない
file_replaced 観測したファイルが削除・置換され、パッケージとの対応を確定できない
version_mismatch Sensorが使用を確認したパッケージの版が、スキャンで検出した同名のパッケージの版と異なる

言語パッケージとの対応に関する値は次のとおりです。

値 意味
ecosystem_unmapped その言語パッケージの種類について、使用判定に使う実行環境が対応付けられていない
binary_path_unknown パッケージの使用判定に必要な実行ファイルの場所が、スキャン結果にない

次の例は、Sensorからの報告がなく、使用状況を判定できないパッケージグループのruntimeです。

{
  "usage": "unavailable",
  "reason": "sensor_not_reporting"
}