構造化エンティティ🔗
構造化エンティティ機能は、Secureworks® Taegis™ XDR におけるエンティティの取り扱い方法を大幅に強化するものです。従来の文字列ベースのエンティティとは異なり、構造化エンティティはオブジェクトとして表現され、豊富なメタデータやプロパティを持つことができ、より高度な分析、検索、ピボット機能を実現します。
概要🔗
構造化エンティティには以下の利点があります。
- 豊富なメタデータを保持: エンティティは単なる文字列値を超えた詳細なプロパティを含みます。
- 高度な検索が可能: 詳細検索構文を用いて特定のエンティティプロパティで検索できます。
- 複雑なピボットをサポート: 複数のエンティティプロパティでピボットし、正確な特定が可能です。
- エンティティグラフとの統合: 構造化エンティティはエンティティグラフと同じ型を使用し、一貫性を保ちます。
エンティティ構造🔗
構造化エンティティは、検出の source_entities および target_entities プロパティに存在し、その視点に応じて格納されます。各エンティティは以下を含みます。
- 識別子: エンティティを一意に識別するためのコア情報
- プロパティ: エンティティの追加メタデータや特性
- 視点: エンティティがソースかターゲットか、または両方か
すべてのエンティティ型とそのプロパティの技術的な詳細については、Entity v2 Protocol Buffer Reference を参照してください。
一般的なエンティティ型と例🔗
このセクションでは、一般的なエンティティ型とその例、プロパティを紹介します。全エンティティ型の一覧は Entity v2 Protocol Buffer Reference を参照してください。
ユーザーエンティティ🔗
ユーザーエンティティは構造化されたコンポーネントに分解され、より詳細な分析や検索が可能になりました。たとえば、ユーザー foo@bar.com は次のように表現されます。
user.user_name = "foo"user.domain_name = "bar.com"user.original_user_name = "foo@bar.com"
利用可能なプロパティは以下の通りです。
user_name: ユーザー名部分domain_name: ドメイン部分original_user_name: 元の完全なユーザー文字列user_is_admin: ユーザーが管理者権限を持つかどうかのブール値cloud_user_type: クラウドユーザーの種類(Regular, Application, ServicePrincipal, System, Admin など)group: グループプレフィックス(例: "SYS\j.doe@scwx.com" の "SYS")computer_name: 関連付けられたコンピューター名host_id: 関連付けられたホスト識別子user_id: 一意のユーザー識別子
ファイルエンティティ🔗
ファイルエンティティは、パス、ハッシュ、メタデータなど包括的なファイル情報を提供します。たとえば、ファイル /usr/bin/malware.exe は次のように表現されます。
file.file_name = "malware.exe"file.file_path = "/usr/bin/malware.exe"file.file_type = "application/pdf"file.hash_sha256 = "a1b2c3d4e5f6..."
利用可能なプロパティは以下の通りです。
file_name: ファイル名file_path: ファイルのフルパスfile_type: 検出されたファイルタイプfile_type_detected: 分析によって検出されたファイルタイプfile_size: ファイルサイズ(バイト単位)file_owner: ファイルの所有者file_group_owner: ファイルのグループ所有者file_create_time: ファイル作成タイムスタンプfile_modified_time: ファイル変更タイムスタンプhash_md5: ファイルのMD5ハッシュhash_sha1: ファイルのSHA1ハッシュhash_sha256: ファイルのSHA256ハッシュhash_sha512: ファイルのSHA512ハッシュhost_id: 関連付けられたホスト識別子email_attachment_sandbox_status: Email添付ファイルのサンドボックス分析ステータス
プロセスエンティティ🔗
プロセスエンティティは、実行中プロセスの詳細情報や特性を含みます。たとえば、管理者権限で実行されているプロセス notepad.exe は次のように表現されます。
process.process_name = "notepad.exe"process.process_id = "1234"process.process_is_admin = trueprocess.process_image_path = "C:\\Windows\\System32\\notepad.exe"
利用可能なプロパティは以下の通りです。
process_name: プロセス名process_id: プロセスID(PID)process_uuid: 一意のプロセス識別子process_correlation_id: プロセストラッキング用の相関IDprocess_image_path: プロセス実行ファイルのフルパスprocess_is_admin: プロセスが管理者権限で実行されているかどうかのブール値process_create_time: プロセス作成タイムスタンプhost_id: 関連付けられたホスト識別子hash_md5: プロセス実行ファイルのMD5ハッシュhash_sha1: プロセス実行ファイルのSHA1ハッシュhash_sha256: プロセス実行ファイルのSHA256ハッシュhash_sha512: プロセス実行ファイルのSHA512ハッシュ
IPアドレスエンティティ🔗
IPアドレスエンティティは、ジオロケーションデータ、ネットワーク分類、ASN情報を含みます。たとえば、IPアドレス 192.168.1.100 は次のように表現されます。
ip_address.ip_address = "192.168.1.100"ip_address.ip_classification = "PRIVATE"ip_address.asn = 12345ip_address.ip_geo_country_code = "US"
利用可能なプロパティは以下の通りです。
ip_address: IPアドレスip_address_type: IPアドレスタイプ(IPv4/IPv6)ip_classification: 分類(LOCAL, PRIVATE, PUBLIC)is_nat_ip: NAT配下のIPかどうかのブール値asn: Autonomous System Numberhostname: 関連付けられたホスト名host_id: 関連付けられたホスト識別子ip_geo_city_name: ジオロケーションによる都市名ip_geo_country_code: ジオロケーションによる国コードip_geo_continent_code: ジオロケーションによる大陸コードip_geo_latitude: 緯度座標ip_geo_longitude: 経度座標ip_geo_auto_system_org: ASNデータによる組織名ip_geo_country_geoname_id: GeoNames国ID
ファイルハッシュエンティティ🔗
ファイルハッシュエンティティは、ファイルの暗号学的ハッシュとその関連メタデータを表します。たとえば、SHA256ハッシュは次のように表現されます。
filehash.hash_value = "a1b2c3d4e5f6789..."filehash.hash_type = "SHA256"
利用可能なプロパティは以下の通りです。
hash_value: ハッシュ値hash_type: ハッシュの種類(MD5, SHA1, SHA256, SHA512)
詳細検索の例🔗
構造化エンティティにより、特定のエンティティプロパティを用いた強力な詳細検索が可能です。
基本的なプロパティ検索🔗
-- Search for detections with admin users
from detection where source_entities.user.user_is_admin = true
-- Search for processes running with admin privileges
from detection where source_entities.process.process_is_admin = true
-- Find detections with specific IP classifications
from detection where source_entities.ip_address.ip_classification = 'PUBLIC'
ジオロケーション検索🔗
-- Search for detections from specific countries
from detection where source_entities.ip_address.ip_geo_country_code = 'CN'
-- Find detections from specific cities
from detection where source_entities.ip_address.ip_geo_city_name = 'Beijing'
-- Search for detections from specific ASNs
from detection where source_entities.ip_address.asn = 12345
-- Find detections from specific geographic regions
from detection where source_entities.ip_address.ip_geo_continent_code = 'AS'
ハッシュベースの検索🔗
-- Search for specific file hashes
from detection where source_entities.file.hash_sha256 = 'a1b2c3d4e5f6789...'
-- Search for process executables with specific hashes
from detection where source_entities.process.hash_sha256 = 'b2c3d4e5f6789a1...'
ユーザードメイン検索🔗
-- Search for users from specific domains
from detection where source_entities.user.domain_name = 'company.com'
-- Find admin users connecting to specific domains
from detection where target_entities.user.domain_name = 'company.com' and source_entities.user.user_is_admin = true
-- Search for specific usernames across domains
from detection where source_entities.user.user_name = 'admin'
複数プロパティを用いた複雑な検索🔗
-- Find detections with admin processes to specific countries
from detection where source_entities.process.process_is_admin = true and target_entities.ip_address.ip_geo_country_code = 'RU'
-- Find detections involving specific file paths and admin processes
from detection where target_entities.file.file_path contains 'C:\\Windows\\System32' and source_entities.process.process_is_admin = true
サイバーセキュリティのユースケース🔗
脅威ハンティング🔗
権限昇格のハンティング:
-- Find processes running with admin privileges
from detection where source_entities.process.process_is_admin = true
ラテラルムーブメントの追跡:
-- Find authentication events from external IPs
from detection where source_entities.ip_address.ip_classification = 'PUBLIC' and target_entities.user.user_name is not null
インシデント対応🔗
地理的分析:
-- Identify detections from specific geographic regions
from detection where source_entities.ip_address.ip_geo_country_code in ('CN', 'RU', 'IR', 'KP')
ASNベースの調査:
-- Find detections from specific ASNs (e.g., known malicious hosting providers)
from detection where source_entities.ip_address.asn in (12345, 67890, 11111)
ファイルハッシュの相関:
-- Search for known malicious file hashes
from detection where target_entities.file.hash_sha256 in ('hash1', 'hash2', 'hash3')
コンプライアンスと監査🔗
管理者アクティビティの監視:
-- Monitor all admin user activity
from detection where source_entities.user.user_is_admin = true or target_entities.user.user_is_admin = true
ネットワークセグメンテーションの検証:
-- Verify no cross-segment communication
from detection where source_entities.ip_address.ip_classification = 'PRIVATE' and target_entities.ip_address.ip_classification = 'PUBLIC'
構造化エンティティでのピボット🔗
検出詳細で構造化エンティティの横にある虫眼鏡アイコンをクリックすることで、ピボットが可能です。ピボット機能は複数のエンティティプロパティを用いてエンティティを一意に特定します。
ピボット例🔗
ユーザーピボット:
ユーザー foo@bar.com は次の条件で特定できます。
user.user_name = 'foo'ANDuser.domain_name = 'bar.com'
詳細検索で user.user_name = 'foo' のみで検索条件を緩和することも可能です。
ファイルピボット:
ファイルは次の条件で特定できます。
file.file_name = 'malware.exe'ANDfile.host_id = host123
プロセスピボット:
プロセスは次の条件で特定できます。
process.process_id = '1234'ANDprocess.host_id = 'host123'
IPアドレスピボット:
ローカルIPアドレスは次の条件で特定できます。
ip_address.ip_address = '127.0.0.1ANDip_address.host_id = 'host123'
エンティティグラフとの統合🔗
構造化エンティティはエンティティグラフと同じエンティティ型を使用し、XDR 全体で一貫性を確保します。これにより、以下の利点があります。
- エンティティ間の関係性が保持される
- エンティティプロパティが一貫している
- 検出とエンティティグラフ間でシームレスにピボットできる
- プラットフォーム全体で検索機能が統一される
ベストプラクティス🔗
- 特定のプロパティを使用する: 検索時は、利用可能な中で最も特定的なプロパティを使用し、誤検知を減らしましょう。
- 複数の条件を組み合わせる: 複数のエンティティプロパティを組み合わせて、より精度の高い検索を行いましょう。
- ジオロケーションデータを活用する: IPジオロケーションプロパティを活用して地理的な脅威ハンティングを行いましょう。
- 管理者アクティビティを監視する: 管理者ユーザーやプロセスのアクティビティを定期的に検索しましょう。
- ファイルハッシュを追跡する: ファイルハッシュプロパティを活用して脅威インテリジェンスと相関させましょう。
- 検索条件を緩和する: ピボット時には、詳細検索で一部の条件を外して結果を広げることができます。