フィンガープリントと CVE のフィールド(レスポンススキーマ を参照)に加えて、各 target-intel レコードにはホスト自体から導出されたエンリッチメントが含まれます。具体的には、ホストがネットワーク上のどこに位置するか、どのような種類のインフラストラクチャであるか、そしてサービスのバナー取得時に捕捉されたプロトコルレベルの詳細情報です。
エンリッチメントフィールドは標準の omitempty の規約に従います。フィールドは、その観測で値が設定されている場合にのみレコードに存在します。
| フィールド | 型 | 説明 |
|---|---|---|
asn | string | ホストの IP が属する自律システム番号(例:AS64500) |
as_name | string | その自律システムを運用する組織の名前 |
as_domain | string | その自律システムを運用する組織のドメイン |
country | string | 国名(例:United States) |
country_code | string | ISO 3166-1 alpha-2 国コード(例:US) |
asn、country、country_code はすべてクエリ可能です。as_name と as_domain はコンテキストとして返されますが、検索対象では ありません。ネットワーク運用組織のインフラストラクチャ上にあるすべてのホストを見つけるには、asn または cidr でクエリしてください。
classifications は、ホストがどのソフトウェアを実行しているかとは無関係に、そのホストがどのような種類のインフラストラクチャであるかを示す type:value 形式の文字列のフラットな配列です。1 つのホストが複数の分類を持つこともあります。分類は、製品を特定するのと同じスキャンルールに由来するほか、VulnCheck のカナリアネットワークから算出される 1 つのラベルがあります。
| タイプ | 意味 | 値の例 |
|---|---|---|
c2 | 既知の攻撃フレームワークまたはマルウェアファミリーのコマンド&コントロールサーバー | cobalt-strike、sliver、mythic、adaptixc2、msfconsole、gophish |
attack-infrastructure | それ自体は C2 ではないものの、攻撃を支えるインフラストラクチャ(フィッシングキット、インフォスティーラーのパネル、スキャンツール、ボットネットノードなど) | interactsh、acunetix、iptv-streamer、63256-botnet、slowtempest |
honeypot | 脆弱なシステムを模倣したデセプションホスト | conpot、qbittorrent、frankenpot、zyxel、screenconnect、elasticpot |
proxy | プロキシ、VPN エンドポイント、またはトンネリングサービス | squid、xray、traefik、softether、gost、tor-exit-node、ngrok |
scanner | インターネットスキャンまたは偵察ツールを実行しているホスト | rengine、qingscan、asset-reconnaissance-lighthouse |
cdn | コンテンツデリバリーネットワークを前段に置いている、またはコンテンツデリバリーネットワークに属するホスト | cloudflare、akamai、fastly、imperva、cloudfront |
ics | 産業用制御システム/OT デバイス。使用する産業用プロトコルでラベル付けされます | modbus |
mcp | 公開されている Model Context Protocol サーバー | mcp-sdk、model-context-protocol |
sector | HTTP および証明書の証拠から導出された、資産が属する業種 | government、healthcare、education、energy |
canary-attacker | ホストの IP が VulnCheck のカナリアを攻撃していることが観測されている。値は常にリテラルの true | true |
上記の値は例であり、すべてを網羅したものではありません。各タイプにはさらに多くの値があり、新しいフレームワークやマルウェアファミリーがフィンガープリントされるにつれてライブラリは拡大していきます。また、値ごとのカバレッジはインターネットの状況に応じて変動します。運用者がインフラストラクチャを入れ替えるフレームワークでは、ある週には多数のホストが一致し、翌週には 1 件も一致しないこともあります。そのため、値に対して結果が返されなくても、それは値が誤っていることを示すものではなく、正常な状態です。
canary-attacker は、Target Intelligence と Canary Intelligence をつなぐものです。脆弱なサービスを公開しつつ、カナリアを能動的に攻撃しているホストは、通常、侵害されて他者への攻撃に利用されているインフラストラクチャです。
cdn と proxy は圧倒的に多い分類であり、どちらも絞り込みに使うのと同じくらい 除外 するのにも役立ちます。CDN を前段に置いたホストのフィンガープリントは、オリジンではなく CDN エッジを表していることが多いためです。
これらでフィルタリングする方法(type:value を組み合わせた形式を classifications パラメータに指定すべきでない理由を含む)については、クエリパラメータ を参照してください。
metadata オブジェクトには、バナー取得時にサービスから捕捉されたすべての情報が格納されます。その構造はレコードの protocol フィールドによって異なります。 サポートされるプロトコルごとに 1 つ、約 48 種類の異なる構造があります。利用側は、metadata を読む前に protocol で分岐する必要があります。
以下はいくつかの例で、いずれも実際のレスポンスの構造です。
protocol: "ssh"
{
"raw": "SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u10",
"hassh": "425d29fe50d8e4f5e37efb6e24bcf660",
"host_key_algorithm": "ssh-rsa",
"ja4ts": "42340_2-1-1-4-1-3_1460_9"
}
protocol: "modbus"
{
"function_code": 43,
"length": 8,
"unit_id": 0,
"response": "DgGDAAAA",
"mei_response": {
"conformity_level": 131,
"mei_objects": [],
"next_object_id": 0,
"object_count": 0
},
"ja4ts": "64240_2-1-1-4-1-3_1460_10"
}
protocol: "http" — 最も情報量の多い構造で、大半のレコードがこの構造を持ちます。
| フィールド | 型 | 説明 |
|---|---|---|
status_code | integer | 返された HTTP ステータスコード |
status | string | HTTP ステータスライン |
title | string | ページの <title> 要素の内容 |
body | string | レスポンスボディ(base64 エンコード) |
body_sha_256 | string | レスポンスボディの SHA-256。同一のページをクラスタリングするのに有用 |
content_length | integer | レスポンスのコンテンツ長 |
server | string | Server レスポンスヘッダー |
headers | array | すべてのレスポンスヘッダー({key, value[]} オブジェクト) |
robots_txt | string | /robots.txt の内容(提供されている場合) |
security_txt | string | security.txt の内容(提供されている場合) |
favicon_sha_256 | string | サイトのファビコンの SHA-256 |
http_header_order_hash | string | レスポンスヘッダーの順序のハッシュ。ヘッダーの値が変わっても維持される、サーバー実装のフィンガープリント |
http_misconfigurations | array | レスポンスで検出された HTTP の設定ミス |
used_quic / used_dtls | boolean | 観測が QUIC または DTLS 経由で行われたかどうか |
TLS に対応するすべてのプロトコル(HTTP、FTP、SMTP、IMAP、POP3、RDP など)には、TLS ハンドシェイクと証明書に関する共通のフィールド群も含まれます。
| フィールド | 型 | 説明 |
|---|---|---|
tls_version / tls_selected_version | string | 提示および合意された TLS バージョン |
tls_ciphersuite / tls_ciphersuite_name | integer / string | 合意された暗号スイート |
tls_extension_identifiers | array | ハンドシェイクに含まれる TLS 拡張 |
cert_common_name | string | 証明書のサブジェクトのコモンネーム |
cert_issuer_common_name | string | 証明書の発行者のコモンネーム |
cert_subject_dn / cert_issuer_dn | string | サブジェクトおよび発行者の完全な識別名 |
subject_alternative_names | array | 証明書の SAN |
cert_not_before / cert_not_after | integer | 証明書の有効期間(Unix ミリ秒) |
cert_chain_fingerprints | array | 提示された証明書チェーンの SHA-256 フィンガープリント |
jarm | string | TLS サーバーの JARM フィンガープリント |
ja3s / ja4s | string | JA3S/JA4S のサーバー側 TLS フィンガープリント |
ja4x_fingerprints | array | JA4X 証明書フィンガープリント |
misconfigurations | array | ハンドシェイクで検出された TLS の設定ミス |
証明書と TLS フィンガープリントのフィールドには、分析上の価値が多く含まれています。jarm、ja4s、ja4x_fingerprints はバナーとは独立してサーバー実装を識別します。c2 分類のカバレッジの多くはこの方法で構築されています。C2 フレームワークの中には、HTTP レスポンスでは決して識別できず、TLS 証明書やハンドシェイクによってのみ識別できるものがいくつかあります。
TCP レベルのフィンガープリントである ja4ts は、TLS をまったく使用しないものも含め、事実上すべてのプロトコルの構造に存在します。
証明書の識別情報に関する注意: cert_common_name、cert_subject_dn、cert_issuer_dn、subject_alternative_names は返されますが、検索対象ではありません。hostname および domain パラメータは逆引き DNS のみを検索するため、証明書に自社の組織名が記載されているホストであっても、この API で証明書の識別情報から見つけることはできません。
意図的に空になっているフィールドに関する注意: metadata スキーマには存在するものの、このエクスポートでは値が設定されないフィールドがいくつかあります。HTTP の body_shodan_hash、favicon_shodan_hash、favicon_md5、redirects、および SSH の host_key / host_key_fingerprint_sha256 です。これらは「データが観測されなかった」ではなく、予約済みのフィールドとして扱ってください。