エージェント検出スキーマ🔗
DetectionCategory🔗
Detection Categoryは、検出が属するサブシステムに基づく高レベルの分類です。
| Name | Number | 説明 |
|---|---|---|
| CATEGORY_UNSPECIFIED | 0 | |
| GENERIC | 1 | |
| PROCESS | 2 | |
| MEMORY | 3 | |
| KERNEL | 4 | |
| FILESYSTEM | 5 | |
| REGISTRY | 6 | |
| CONTAINER | 7 |
DetectionType🔗
DetectionTypeは、エージェント上で検知された正確な検出内容を示します。
| Name | Number | 説明 |
|---|---|---|
| DETECTION_UNSPECIFIED | 0 | protobufスタイルガイドに従い、enumのゼロ値はUNSPECIFIEDで終わる必要があります |
| KEY_LOGGER | 1 | キーロガー(event_name参照)が検知されました |
| RANSOMWARE_LIKE_BEHAVIOR | 2 | ランサムウェアのような挙動(暗号化と多数のファイル操作の組み合わせ)を検知しました |
| EXECUTABLE_ENTROPY | 3 | t1027.002 exeがupx等でパックされている可能性あり、acting_processが設定されます。 |
| LOCAL_PRIVILEGE_ESCALATION | 4 | LPE(ローカル権限昇格)を検知しました |
| DNS_TAMPERING | 5 | DNS / DNSキャッシュの改ざんを検知しました |
| PROTOCOL_HIJACKING | 6 | DNSなどの信頼されたプロトコルを利用した情報流出/C2通信を検知しました |
| EVENTLOG_BYPASS | 7 | ログ記録がバイパスされた(または試行されました) |
| SETTIME | 8 | システムクロックの時刻が変更されました - タイムスタンプの改ざんの可能性あり |
| INTEGRITY_DISABLED | 9 | 例:macOSでSIPが無効化されました |
| NAME_RESOLUTION_TAMPERING | 10 | リンクローカルホスト名のリダイレクトやその他のネットワーク改ざんを検知しました |
| EXECUTION_OF_MODIFIED_CODE | 20 | 割り当てられたページまたはファイルバックのページが変更され実行されました |
| EXECUTABLE_PAGE_PROTECTION_CHANGE | 21 | ページが実行可能にされた、または実行可能ページが書き込み可能にされました |
| SELF_MODIFYING_CODE | 22 | セルフモディファイング(rwx)コードを検知しました |
| WRITE_TO_EXECUTABLE_CODE | 23 | acting_processがtarget_process(同一の場合もあり)のコード(テキストセクション)ページに書き込みを行いました |
| THREAD_HIJACKING | 24 | acting_processおよびacting_thread_idによってtarget_processのtarget_threadのコンテキストが変更されました |
| RAW_SYSCALL_IN_ALLOCD_EXEC_MEM | 25 | 割り当てられた実行可能メモリで生のシステムコールが検知されました(APIフック回避等の試みの可能性) |
| NON_SYSTEM_APC_DELIVERED | 26 | システムDLLに裏付けされていないメモリでAPCが実行されました |
| PROCESS_OPENED_INTRUSIVE | 27 | acting_processがtarget_processを状態/仮想メモリの変更が可能な権限でオープンしました |
| PROCESS_OPENED_NON_INTRUSIVE | 28 | acting_processがtarget_processを読み取り専用権限でオープンしました |
| PACKET_CAPTURE | 29 | acting_processがパケットキャプチャを開始しました |
| HIGH_CPU_USAGE | 30 | acting_processが継続的に高いCPU使用率を報告しています |
| UAC_BYPASS | 31 | プロセスがUACバイパス/エクスプローラ偽装を試みました |
| PROCESS_GHOSTING | 32 | プロセスゴースティングを検知しました |
| PROCESS_HOLLOWING | 34 | プロセスホロウィングを検知しました |
| EXECUTION_PROXY | 35 | 実行プロキシを検知しました |
| INVALID_CODE_SIGNATURE | 36 | acting_processのコード署名が無効です |
| DEP_DISABLED | 37 | データ実行防止(NX)が無効化されました |
| OVERWRITE_OF_IMAGE_BACKED_CODE | 40 | ファイルバックの実行可能メモリが上書きされました(例:フック設定等) |
| OVERWRITE_OF_IMAGE_BACKED_RODATA | 41 | ファイルバックの読み取り専用メモリが上書きされました(例:iat/eatフック、.pdata等) |
| MITIGATION_DISABLED | 42 | 緩和策が無効化されました |
| LEAKED_WRITABLE_EXECUTABLE_MEMORY | 43 | 書き込み可能かつ実行可能なメモリがリークし、プロセスが脆弱になっています |
| SHELLCODE_SYMBOL_RESOLUTION | 44 | シェルコードがアンパック/復号/実行に必要なシンボル解決を試みました |
| AGENT_HOOK_TAMPERING | 45 | エージェントフックが改ざん/無効化/バイパスされました |
| BEACON_ENCRYPTION_OBFUSCATION | 46 | タイマー、暗号化、または定期/ポーリングタスクコードのページ保護変更を検知しました |
| NAMED_KERNEL_OBJECT_CREATED | 60 | 名前付きカーネルオブジェクトが作成されました(event_nameおよびkernel_object_type参照) |
| INVALID_DRIVER_SIGNATURE | 61 | 署名がない、または無効な署名のドライバがロードされました |
| KNOWN_BAD_DRIVER | 62 | 既知の脆弱性を持つ(悪用される可能性のある)ドライバがロードされました |
| KERNEL_CALLBACKS_DISABLED | 63 | ルートキット/エクスプロイトがカーネルコールバック(例:nt!PspNotifyEnableMask)を無効化しました |
| MASTER_BOOT_RECORD_MODIFIED | 80 | MBRが変更されました。新しいレコードのためにメモリを確認してください |
| VOLUME_BOOT_RECORD_MODIFIED | 81 | VBRが変更されました。新しいレコードのためにメモリを確認してください |
| ATTEMPT_TO_MODIFY_PROTECTED_FILE | 82 | 保護されたファイルの変更が試みられました |
| ATTEMPT_TO_MODIFY_PROTECTED_REG_OBJ | 100 | 保護されたレジストリキーまたは値の変更が試みられました |
| HKCU_COM_OBJECT_BYPASS | 101 | COMオブジェクトがHKLM(ローカルマシン)ではなくHKCU(現在のユーザー)からインスタンス化されました |
| CONTAINER_TYPE | 1000 | Linuxエージェントによってコンテナ内で不審なイベントが検知されました |
KernelContext🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| kernel_object_type | KernelObjectType | 存在する場合、作成されたカーネル名前付きオブジェクトのタイプ | |
| kernel_object_name | string | kernelObjectName$ | 存在する場合、作成されたカーネルオブジェクトの名前 |
KernelObjectType🔗
カーネル名前付きオブジェクトのタイプ。
| Name | Number | 説明 |
|---|---|---|
| KERNEL_OBJ_UNSPECIFIED | 0 | |
| EVENT | 1 | |
| JOB | 2 | |
| MUTEX | 3 | |
| SECTION | 4 | |
| SEMAPHORE | 5 | |
| WAITABLE_TIMER | 6 |
ExecutionContext🔗
検出が行われた時点でのプロセッサおよびメモリの現在の状態に関する詳細。
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| acting_thread_id | uint64 | actingThreadId$ | 存在する場合、acting threadのthread_id |
| target_process_correlation_id | string | targetProcessCorrelationId$ | 存在する場合、操作対象となる「他の」プロセス |
| target_thread_id | uint64 | targetThreadId$ | 存在する場合、影響を受けたスレッドのthread_id |
| cpu_context | CPUContext | 存在する場合、該当するcpuコンテキスト(例:threadhijacking) | |
| target_memory_address | uint64 | targetMemoryAddress$ | 存在する場合、発生箇所のアドレス(例:selfmodifyingcodepage, remotecodewrite) |
| symbol | string | symbol$ | 存在する場合、target_addressのシンボル+オフセット |
| memory | bytes | 存在する場合、イベントのスキャン可能なメモリ(例:selfmodifyingcodepage, remotecodewrite) | |
| return_memory_address | ReturnMemoryAddress | 存在する場合、ファイルバックのリターンロケーション | |
| stack_backtrace | string | 存在する場合、スタックバックトレースダンプ | |
| execution_offset | uint64 | executionOffset$ | 存在する場合、実行可能ファイルのオフセットアドレス |
| page_protection | uint32 | pageProtection$ | 存在する場合、target_addressの保護ビット(r/w/x等) |
| access_rights | uint32 | accessRights$ | 存在する場合、要求されたオブジェクトのアクセス権 |
| target_image_path | string | targetImagePath$ | プロセスバイナリのパス |
| memory_hash_sha256 | string | memoryHashSha256$ | メモリのSHA256ハッシュ |
CPUContext🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| architecture | string | architecture$ | |
| registers | Register[] | 可能な場合のレジスタ状態 |
Register🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| name | string | name$ | |
| value | int64 | value$ | |
| file_object_attrs | FileObjectAttrs | アドレスがマップされたファイルを指す場合、そのファイルの一意ID | |
| memory | bytes | レジスタ値が有効なアドレスの場合、そのアドレスの256バイトのデータ | |
| file_base | uint64 | fileBase$ | ファイルマッピングのベースアドレス |
| file_path | string | filePath$ | メモリからのファイルパス |
| symbol | string | symbol$ | 利用可能な場合、アドレスが指すシンボル(関数名、公開変数シンボル等) |
| page_protection | uint32 | pageProtection$ | valueのメモリページのページ保護 |
ReturnMemoryAddress🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| memory_address | uint64 | memoryAddress$ | |
| file_object_attrs | FileObjectAttrs | ||
| file_base | uint64 | fileBase$ | |
| file_path | string | filePath$ | |
| symbol | string | symbol$ |
FileObjectAttrs🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| device_id | uint64 | deviceId$ | MacOSおよびUnixで利用されます |
| inode | uint64 | inode$ | MacOSおよびUnixで利用されます |
| volume_guid | bytes | Windowsで利用されます | |
| file_guid | bytes | Windowsで利用されます |
RegistryContext🔗
特定のレジストリオブジェクトに関連する検出のためのレジストリ詳細。
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| key | Registry.RegistryKey | ||
| value | Registry.RegistryValue | ||
| event_type | Registry.RegEventType |
FileSystemContext🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| impacted_file | FileInfo | 存在する場合、影響を受けたファイル(例:overwriteofimagebackedcode, overwriteofimagebackedrodata) |
ContainerContext🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| mounts | ContainerMountInfo | ホストからコンテナへのマウント | |
| ports | ContainerPortMapping | ホストからコンテナへのポートマッピング | |
| id | string | id$ | コンテナID |
| name | string | name$ | コンテナ名 |
| image | string | image$ | イメージ名 |
| image_id | string | imageId$ | イメージID |
| image_repo | string | imageRepo$ | イメージリポジトリ |
| image_tag | string | imageTag$ | イメージタグ |
| image_digest | string | imageDigest$ | イメージダイジェスト |
| command | string | command$ | コンテナ内で実行されたコマンド |
| container_ip | string | containerIp$ | コンテナのIPアドレス |
| privileged | bool | privileged$ | コンテナが特権モードかどうか |
| env | string[] | env$ | コンテナ内の環境変数 |
| is_pod_sandbox | bool | isPodSandbox$ | コンテナがPodサンドボックス内かどうか |
| full_id | string | fullId$ | フルコンテナID |
| type | ContainerType | type$ | コンテナタイプ |
| labels | map |
labels$ | コンテナのラベル |
| container_state | ContainerState | containerState$ | コンテナの状態 |
| created_time | uint64 | createdTime$ | コンテナ作成時刻(エポックからのナノ秒) |
| user | string | user$ | コンテナを実行しているユーザー |
| cni_json | string | cniJson$ | コンテナネットワークインターフェース。k8sポッドで存在する可能性あり、詳細不明 |
| action | ContainerAction | action$ | コンテナアクション |
ContainerMountInfo🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| source | string | source$ | ホストパス |
| destination | string | destination$ | コンテナ内のマウントパス |
| mode | string | mode$ | マウントモード |
| is_read_write | bool | isReadWrite$ | コンテナがマウントに書き込み可能かどうか |
| propagation | string | propagation$ | コンテナとホスト間でバインドマウントを共有するかどうか。可能な値:"private"、"shared"、"slave" |
ContainerPortMapping🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| host_port | uint32 | hostPort$ | ホストポート |
| container_port | uint32 | containerPort$ | コンテナポート |
| host_ip_addr | string | hostIpAddr$ | ホストのIPアドレス |
ContainerType🔗
コンテナランタイムのタイプ。
| Name | Number | 説明 |
|---|---|---|
| CONTAINER_TYPE_UNSPECIFIED | 0 | |
| CONTAINER_TYPE_DOCKER | 1 | |
| CONTAINER_TYPE_LXC | 2 | |
| CONTAINER_TYPE_LIBVIRT_LXC | 3 | |
| CONTAINER_TYPE_MESOS | 4 | |
| CONTAINER_TYPE_RKT | 5 | |
| CONTAINER_TYPE_CUSTOM | 6 | |
| CONTAINER_TYPE_CRI | 7 | |
| CONTAINER_TYPE_CONTAINERD | 8 | |
| CONTAINER_TYPE_CRIO | 9 | |
| CONTAINER_TYPE_BPM | 10 | |
| CONTAINER_TYPE_STATIC | 11 | |
| CONTAINER_TYPE_PODMAN | 12 |
ContainerState🔗
コンテナの状態。
| Name | Number | 説明 |
|---|---|---|
| CONTAINER_STATE_STARTED | 1 | |
| CONTAINER_STATE_SUCCESSFUL | 2 | |
| CONTAINER_STATE_FAILED | 3 |
ContainerAction🔗
イベントをトリガーしたコンテナ上のアクション。
| Name | Number | 説明 |
|---|---|---|
| CONTAINER_ACTION_UNSPECIFIED | 0 | |
| CONTAINER_ACTION_SEEN | 1 | |
| CONTAINER_ACTION_CREATED | 2 | |
| CONTAINER_ACTION_STARTED | 3 | |
| CONTAINER_ACTION_STOPPED | 4 | |
| CONTAINER_ACTION_DELETED | 5 |
RedirectionContext🔗
| Field | Type | パーサーのフィールド | 説明 |
|---|---|---|---|
| raddr | bytes | 解決されたリモートアドレス(バイト列) | |
| raddr_str | string | raddrStr$ | 解決されたリモートアドレス(文字列) |
| ip_version | int32 | ipVersion$ | (4=IPV4 6=IPV6 0=未指定) |
| hostname | string | hostname$ | クエリされたランダム化ホスト名 |