構造化エンティティ🔗
構造化エンティティ機能は、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:自律システム番号(ASN)hostname:関連するホスト名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'
構造化エンティティでのピボット🔗
detection details で虫眼鏡アイコンをクリックすることで、構造化エンティティでピボットできます。ピボット機能は複数のエンティティプロパティを用いてエンティティを一意に特定します。
ピボット例🔗
ユーザーピボット:
ユーザー 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ジオロケーションプロパティを活用して地理的な脅威ハンティングを行いましょう。
- 管理者アクティビティの監視:管理者ユーザーやプロセスのアクティビティを定期的に検索しましょう。
- ファイルハッシュの追跡:ファイルハッシュプロパティを活用して脅威インテリジェンスと相関させましょう。
- 検索条件の緩和:ピボット時には詳細検索で一部条件を外し、結果を広げることも可能です。