TIPCommon.base
TIPCommon.base モジュールは、Google SecOps 内の統合開発の基礎となる技術リファレンスとして機能し、アクション、バックグラウンド ジョブ、クロスプラットフォーム データ正規化のコアロジックを提供します。
アクション データの解析
このセクションには、自動化タスクで使用するために、API の未加工のレスポンスからケースデータを解析して構造化されたオブジェクトに変換するために必要なユーティリティ関数が含まれています。
TIPCommon.base.action.action_parser.parse_case_attachment
TIPCommon.base.action.action_parser.parse_case_attachment(attachment: MutableMapping[str, Any]) → CaseAttachment
このユーティリティは、API レスポンスから未加工の JSON 添付ファイル データを構造化された CaseAttachment オブジェクトに変換します。
パラメータ
| パラメータ | |
|---|---|
attachment |
API レスポンスから取得された添付ファイルの未加工の JSON データ。 |
TIPCommon.base.action.action_parser.parse_case_comment
TIPCommon.base.action.action_parser.parse_case_comment(comment: MutableMapping[str, Any]) → CaseComment
この関数は、コメント メタデータに簡単にアクセスできるように、未加工の JSON コメントデータを CaseComment オブジェクトに解析します。
パラメータ
| パラメータ | |
|---|---|
comment |
API レスポンスから取得されたコメントの未加工の JSON データ。 |
class TIPCommon.base.action.base_action.Action
クラス TIPCommon.base.action.base_action.Action(name: str)
ベース: ABC、Generic[ApiClient]
Action ベースクラスは、プロパティ管理や一般的な実行フローなど、自動化開発のための統合インフラストラクチャを提供します。
パラメータ
| パラメータ | |
|---|---|
name |
アクションのスクリプトの識別子。 |
属性
次の属性は、アクションの内部状態を管理し、SDK リソースと統合クライアントへのアクセスを提供します。
| 属性 | |
|---|---|
_soar_action |
|
_api_client |
統合の API クライアント。 |
_name |
このアクションを使用するスクリプトの名前。 |
_action_start_time |
アクションの開始時刻(Unix)。 |
_logger |
アクションのロギングに使用されるロガー オブジェクト。 |
_params |
このアクションのパラメータ コンテナ。 |
global_context |
必要に応じてコンテキストを保存するディクショナリ。 |
_entity_types |
アクションでサポートされているエンティティ タイプ。 |
_entities_to_update |
アクションが終了したときに更新するエンティティ。 |
json_results |
アクションの JSON 結果。 |
_attachments |
追加するケース結果の添付ファイル。 |
_contents |
追加するケース結果の内容。 |
_data_tables |
追加するケース結果データテーブル。 |
_html_reports |
追加するケース結果の HTML レポート。 |
_links |
追加するケース結果へのリンク。 |
_markdowns |
追加するケース結果のマークダウン。 |
_entity_insights |
追加するケース エンティティの分析情報。 |
_case_insights |
追加するケースの分析情報。 |
_execution_state |
アクションの最終実行状態インジケーター。 |
_result_value |
アクションの最終結果の値。 |
_output_message |
アクションが成功した場合の出力メッセージ。 |
_error_output_message |
アクションが失敗した場合の出力メッセージ。 |
メソッド
アクション スクリプトのライフサイクルと出力形式の管理に使用される標準メソッド。
- run() |
アクションの実行を実行します。 |
- _get_adjusted_json_results() |
JSON の結果を特定の構造に調整します。 |
抽象メソッド
デベロッパーは、これらのメソッドをオーバーライドして、カスタム アクションの固有のロジックを定義する必要があります。
| 抽象メソッド | |
|---|---|
_validate_params() |
このアクションのパラメータを検証します。 |
_init_api_clients() |
アクションの API クライアントを初期化します。 |
_perform_action() |
アクションのメインロジックを実行します。 |
その他の方法
これらの省略可能なメソッドは、アクション実行ライフサイクルの特定のフェーズでトリガーされ、アラートの処理やリソースのクリーンアップを行います。
_get_entity_types()_finalize_action_on_success()_finalize_action_on_failure()_on_entity_failure()_handle_timeout()_extract_action_parameters()_finalize()
SDK ラッパー メソッド
これらのメソッドは、基盤となる SDK に簡単にアクセスできるようにします。これにより、アクションはケース、アラート、プラットフォーム構成を操作できます。
_add_attachment_to_current_case()_get_current_case_attachments()_add_comment_to_case()_get_current_case_comments()_assign_case_to_user()_add_tag_to_case()_attach_playbook_to_current_alert()_get_similar_cases_to_current_case()_get_alerts_ticket_ids_from_cases_closed_since_timestamp()_change_current_case_stage()_change_current_case_priority()_close_current_case()_close_alert()_escalate_case()_mark_case_as_important()_raise_incident()_add_entity_to_case()_update_alerts_additional_data()_get_current_integration_configuration()_any_alert_entities_in_custom_list()_add_alert_entities_to_custom_list()_remove_alert_entities_from_custom_list()
実装例
次の例は、Action ベースクラスから継承してカスタム アクションを実装する方法を示しています。
from TIPCommon.base.actions.action_base import Action
from TIPCommon.validation import ParameterValidator
SOME_ACTION_SCRIPT_NAME = 'Some Integration - Some Action'
class SomeAction(Action):
def _validate_params(self) -> None:
validator = ParameterValidator(self.soar_action)
... # validation logic
def _perform_action(self, entity: Entity) -> None:
try:
self.logger.info('Querying Api client')
data = self.api_client.do_something(
param=self.params.query,
entity=entity.original_identifier
)
... # Some logic to process the data
except SomeCustomException as err:
self.error_output_message = (
"Action wasn't able to successfully do its thing."
)
raise err from err
def main() -> None:
SomeAction(SEARCH_GRAPHS_SCRIPT_NAME).run()
if __name__ == '__main__':
main()
プロパティ
次のプロパティは、アクション メタデータ、結果、SDK オブジェクトへの読み取り専用アクセスまたは管理アクセスを提供します。
action_start_time
property action_start_time: int
アクションの開始時刻を Unix 形式で表す int を返します。
api_client
property api_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None
インテグレーション用に構成された API クライアントを表す Apiable オブジェクトを返します。
attachments
property attachments: list[Attachment]
このアクションに関連付けられたケース結果の添付ファイルを表す Attachment オブジェクトのリストを返します。このリスト内のすべての添付ファイルは、デフォルトでケースの結果に送信されます。
case_insights
property case_insights: list[CaseInsight]
このアクションに関連付けられた高レベルの検出結果を表す CaseInsight オブジェクトのリストを返します。このリストのすべてのケース分析情報は、デフォルトでケース結果に送信されます。
contents
property contents: list[Content]
ケースのテキスト結果を表す Content オブジェクトのリストを返します。このリストのすべてのコンテンツは、デフォルトでケースの結果に送信されます。
data_tables
property data_tables: list[DataTable]
ケースの表形式データの分析情報を表す DataTable オブジェクトのリストを返します。このリスト内のすべてのデータテーブルは、デフォルトでケース結果に送信されます。
entities_to_update
property entities_to_update: list[DomainEntityInfo]
アクションが完了したときにプラットフォームで更新する Entity オブジェクトのリストを返します。
entity_insights
property entity_insights: list[EntityInsight]
特定のエンティティに関連付けられた検出結果を表す EntityInsight オブジェクトのリストを返します。このリストのすべてのエンティティ分析情報は、デフォルトでケース結果に送信されます。
entity_types
property entity_types: list[EntityTypesEnum]
アクションが処理するように設計されているエンティティ タイプを表す EntityTypesEnum オブジェクトのリストを返します。アクションがエンティティに対して実行される場合、このリストに表示されているタイプのみが処理されます。
error_output_message
property error_output_message: str
実行が失敗した場合にプラットフォームに表示されるメッセージを取得または設定します。デフォルト値は Action ACTION_NAME failed です。
execution_state
property execution_state: ExecutionState
最終的な処理ステータス インジケーターを表す ExecutionState オブジェクトを返します。ステータスには次のものがあります。
ExecutionState.COMPLETED = 0ExecutionState.IN_PROGRESS = 1ExecutionState.FAILED = 2ExecutionState.TIMED_OUT = 3
global_context
global_context: dict
アクションの実行中にコンテキスト情報を保存して取得するために使用される辞書。
html_reports
property html_reports: list[HTMLReport]
ケース結果のビジュアル レポートを表す HTMLReport オブジェクトのリストを返します。このリストのすべての HTML レポートは、デフォルトでケース結果に送信されます。
is_first_run
property is_first_run: bool
アクションの初回実行の場合は true、それ以外の場合は false を返します。
json_results
property json_results: Dict[str, Any] | List[Dict[str, Any]]
ケースウォールに表示し、ダウンストリームのハンドブック ロジックで使用するために、フォーマットされた JSON 結果を返します。
links
property links: list[Link]
ケース結果の外部参照 URL を表す Link オブジェクトのリストを返します。このリスト内のすべてのリンクは、デフォルトでケース結果に送信されます。
logger
property logger: NewLineLogger
スクリプト固有のロギングに使用される NewLineLogger インスタンスを返します。
マークダウン
property markdowns: list[Markdown]
フォーマットされたテキスト分析情報を表す Markdown オブジェクトのリストを返します。このリストのすべてのマークダウンは、デフォルトでケース結果に送信されます。
name
property name: str
アクション スクリプトの文字列名を返します。
output_message
property output_message: str
プラットフォームに表示される、アクションの実行が成功したことを示すメッセージを取得または設定します。
params
property params: Container
アクションの入力パラメータを記述する Container オブジェクトを返します。各パラメータは snake_case 属性として公開されます。
result_value
property result_value: bool
プラットフォームに返される成功インジケーターを取得または設定します。
True: アクションは成功しました。False: アクションは失敗しました。
run
run(**kwargs)
アクション実行ロジックをトリガーする標準メソッド。
soar_action
property soar_action: SiemplifyAction
プラットフォームとの直接のやり取りに使用される基盤となる SDK SiemplifyAction オブジェクトを返します。
class TIPCommon.base.action.base_enrich_action.EnrichAction
クラス TIPCommon.base.action.base_enrich_action.EnrichAction(name: str)
ベース: Action
EnrichAction は、外部データでエンティティ プロパティを更新するアクション用に設計された特殊なベースクラスです。
パラメータ
エンリッチメント アクションを初期化してプラットフォームに登録するには、次のパラメータが必要です。
| パラメータ | |
|---|---|
name |
エンリッチメント アクション スクリプトの固有識別子。 |
属性
次の属性は、エンティティの反復処理で使用されるデータを管理し、アクションの出力結果に含まれるコンテンツを定義します。
| 属性 | |
|---|---|
enrichment_data |
エンティティの各イテレーションにおける現在のエンティティの拡充データ。各イテレーションの最後に、エンティティの |
entity_results |
このオブジェクトの JSON 出力に含まれるエンティティ結果。 |
global_context |
拡充アクションの実行のさまざまなフェーズでコンテキスト データを保存して共有するために使用される辞書。 |
抽象メソッド
次の抽象メソッドは、アクションの特定のエンティティ タイプとエンリッチメント ロジックを定義するために、サブクラスで実装する必要があります。
| 抽象メソッド | |
|---|---|
_get_entity_types() |
アクションが実行されるエンティティのタイプを取得します。 |
_perform_enrich_action() |
エンティティに対してメインの拡充ロジックを実行します。 |
プライベート メソッド
これらの内部メソッドは、拡充ロジックのオーケストレーションを処理するため、変更しないでください。
| プライベート メソッド | |
|---|---|
_perform_action() |
このメソッドは、他の抽象メソッドをより多くの OOTB 拡充ロジックと組み合わせて、親クラスに渡して |
Data Models モジュール
このモジュールは、クロス インテグレーション オブジェクト、列挙型、定数の構造化された定義を提供します。
class TIPCommon.base.action.data_models.ActionParamType
クラス TIPCommon.base.action.data_models.ActionParamType(value)
ベース: Enum
ActionParamType は、アクション スクリプト パラメータでサポートされる UI データ型を定義します。
定数
| 定数 | 値 |
|---|---|
BOOLEAN | 1 |
CASE_PRIORITIES | 7 |
CLOSE_CASE_REASONS | 5 |
CLOSE_ROOT_CAUSE | 6 |
CODE | 20 |
CONTENT | 11 |
DDL | 15 |
EMAIL_CONTENT | 10 |
ENTITY_TYPE | 13 |
MULTI_VALUES | 14 |
NULL | -1 |
PASSWORD | 12 |
PLAYBOOK_NAME | 2 |
STAGE | 4 |
STRING | 0 |
USER | 3 |
class TIPCommon.base.action.data_models.Attachment
クラス TIPCommon.base.action.data_models.Attachment(filename: str, file_contents: bytes, title: str = 'Script Result Attachment', additional_data: dict | None = None)
ベース: オブジェクト
このモデルは、ケースウォールにアップロードするスクリプト結果の添付ファイルを表します。
パラメータ
添付ファイル オブジェクトを初期化し、そのメタデータとケースにアップロードするバイナリデータを定義するには、次のパラメータが必要です。
| パラメータ | |
|---|---|
filename |
ケースの結果内に作成するファイルの名前。 |
file_contents |
ファイルの内容を表す未加工のバイナリデータ。 |
title |
プラットフォーム UI に表示されるアタッチメントの表示タイトル。デフォルトは 'Script Result Attachment' です。 |
属性
次の属性は、アクション スクリプトによって生成されたファイル添付ファイルのメタデータとバイナリ コンテンツを定義します。
| 属性 | |
|---|---|
title |
プラットフォームのインターフェースに表示される添付ファイルのタイトル。 |
filename |
作成するファイルの名前。 |
file_contents |
添付ファイルの未加工のバイナリ コンテンツ。 |
additional_data |
添付ファイルに関連付けられた補足データを含む辞書。 |
class TIPCommon.base.action.data_models.CaseAttachment
クラス TIPCommon.base.action.data_models.CaseAttachment(attachment_id: int, attachment_type: str, description: str, is_favorite: bool)
ベース: オブジェクト
このクラスは、ケースに関連付けられた不変の添付ファイルを表します。
属性
次の属性は、プラットフォーム内のケースにすでに関連付けられている添付ファイルの特定のメタデータを表します。
| 属性 | |
|---|---|
attachment_id |
プラットフォームによって割り当てられた添付ファイルの一意の識別子。 |
attachment_type |
添付ファイルの分類または MIME タイプ( |
description |
添付ファイルのコンテンツに関するユーザー定義またはシステム生成の説明。 |
is_favorite |
ケースウォールでアタッチメントがクイック アクセス用のお気に入りとしてマークされているかどうかを示します。 |
class TIPCommon.base.action.data_models.CaseComment
クラス TIPCommon.base.action.data_models.CaseComment(comment: str, creator_user_id: str, comment_id: int, comment_type: int, case_id: int, is_favorite: bool, modification_time_unix_time_in_ms: int, creation_time_unix_time_in_ms: int, alert_identifier: str, creator_full_name: str | None = None, is_deleted: bool | None = None, last_editor: str | None = None, last_editor_full_name: str | None = None, modification_time_unix_time_in_ms_for_client: int | None = None, comment_for_client: str | None = None)
ベース: オブジェクト
CaseComment は、ケースまたはアラートに関連付けられたコメントの不変のレコードを表し、作成者の詳細と監査タイムスタンプをキャプチャします。
属性
次の属性は、ケース コメントのコンテンツと管理メタデータを定義します。
| 属性 | |
|---|---|
comment |
コメントの主なテキスト コンテンツ。 |
comment_for_client |
クライアントに表示されるように調整されたコメントのオプション バージョン。 |
modification_time_unix_time_in_ms_for_client |
|
last_editor |
最終編集者の ID( |
last_editor_full_name |
コメントを最後に編集したユーザーのフルネーム( |
is_deleted |
コメントが削除済みとしてマークされているかどうかを示します。 |
creator_user_id |
作成者のユーザー ID( |
creator_full_name |
作成者の完全な表示名( |
comment_id |
プラットフォームによって割り当てられたコメントの一意の整数識別子。 |
comment_type |
コメントのタイプ分類。 |
case_id |
このコメントに関連付けられているケースの ID。 |
is_favorite |
コメントがお気に入りとして固定されているかどうかを示します。 |
modification_time_unix_time_in_ms |
コメントの最終更新日時(Unix ミリ秒単位)。例: |
creation_time_unix_time_in_ms |
コメントの作成時間(Unix ミリ秒単位)。例: |
alert_identifier |
コメントに関連するアラートの特定の識別子( |
class TIPCommon.base.action.data_models.CaseInsight
クラス TIPCommon.base.action.data_models.CaseInsight(triggered_by: str, title: str, content: str, severity: InsightSeverity, insight_type: InsightType, entity_identifier: str = '', additional_data: Any | None = None, additional_data_type: Any | None = None, additional_data_title: str | None = None)
ベース: オブジェクト
CaseInsight は、ケースウォールに表示される不変の構造化された検出結果またはアラートの概要を表します。
属性
次の属性は、プラットフォーム内でアナリストに分析情報がどのように分類され、表示されるかを管理します。
| 属性 | |
|---|---|
title |
ケースウォールの分析情報に表示される見出し。 |
triggered_by |
分析情報を生成した統合またはユーザーの名前。 |
content |
インサイトの詳細なメッセージ本文または検出結果。 |
severity |
分析情報の緊急度。 値は次のいずれかになります。 infowarningerror |
insight_type |
分析情報を分類します。 値は次のいずれかになります。 generalentity |
entity_identifier |
分析情報がエンティティに焦点を当てている場合、エンティティの特定の識別子。 |
additional_data |
分析情報に関連付けられた補足データ。 |
additional_data_type |
|
additional_data_title |
補足データブロックの表示タイトル。 |
class TIPCommon.base.action.data_models.CasePriority
クラス TIPCommon.base.action.data_models.CasePriority(value)
ベース: Enum
CasePriority は、プラットフォーム内のケースに割り当てられた整数ベースの重大度レベルを定義します。
定数
| 定数 | 値 |
|---|---|
CRITICAL | 100 |
HIGH | 80 |
INFORMATIONAL | 0 |
LOW | 40 |
MEDIUM | 60 |
class TIPCommon.base.action.data_models.CaseStage
クラス TIPCommon.base.action.data_models.CaseStage(value)
ベース: Enum
CaseStage は、ケースのライフサイクル中にケースが移行できる運用フェーズを指定します。
定数
| 定数 | 値 |
|---|---|
ASSESSMENT | 'Assessment' |
IMPROVEMENT | 「改善」 |
INCIDENT | インシデント |
INVESTIGATION | 調査 |
RESEARCH | 'Research' |
TRIAGE | 'Triage' |
class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses
クラス TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses(value)
ベース: Enum
CloseCaseOrAlertInconclusiveRootCauses は、明確な判断を下せないシナリオの根本原因オプションを提供します。
定数
| 定数 | 値 |
|---|---|
NO_CLEAR_CONCLUSION | 「明確な結論が得られなかった」 |
class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses
クラス TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses(value)
ベース: Enum
CloseCaseOrAlertMaintenanceRootCauses は、定期的なテスト、システム メンテナンス、ルール開発に関連する根本原因を定義します。
定数
| 定数 | 値 |
|---|---|
LAB_TEST | 'Lab test' |
OTHER | その他 |
RULE_UNDER_CONSTRUCTION | 「ルールは作成中です」 |
class TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses
クラス TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
ベース: Enum
CloseCaseOrAlertMaliciousRootCauses は、確認済みの脅威、インフラストラクチャの問題、システム障害の特定のカテゴリを提供します。
定数
| 定数 | 値 |
|---|---|
EXTERNAL_ATTACK | 'External attack' |
INFRASTRUCTURE_ISSUE | インフラストラクチャの問題 |
IRRELEVANT_TCP_UDP_PORT | 「Irrelevant TCP/UDP port」 |
MISCONFIGURED_SYSTEM | 「システムが正しく構成されていません」 |
OTHER | その他 |
SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION | 「類似のケースはすでに調査中です」 |
SYSTEM_APPLICATION_MALFUNCTION | 'System/application malfunction'(システム / アプリケーションの誤動作) |
SYSTEM_CLOCKED_THE_ATTACK | 「システムが攻撃をブロックしました」 |
UNFORESEEN_EFFECTS_OF_CHANGE | 「変更の予期せぬ影響」 |
UNKNOWN | '不明' |
class TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses
クラス TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
ベース: Enum
CloseCaseOrAlertNotMaliciousRootCauses は、脅威とならない正常なアクティビティ、正当なアクション、エラーのカテゴリを定義します。
定数
| 定数 | 値 |
|---|---|
EMPLOYEE_ERROR | 「従業員エラー」 |
HUMAN_ERROR | 「人為的ミス」 |
LAB_TEST | 'Lab test' |
LEGIT_ACTION | 'Legit action' |
MISCONFIGURED_SYSTEM | 「システムが正しく構成されていません」 |
NONE | [なし] |
NORMAL_BEHAVIOR | 「通常の動作」 |
OTHER | その他 |
PENETRATION_TEST | 「ペネトレーション テスト」 |
RULE_UNDER_CONSTRUCTION | 「ルールは作成中です」 |
SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION | 「類似のケースはすでに調査中です」 |
UNKNOWN | '不明' |
USER_MISTAKE | 「ユーザーのミス」 |
class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons
クラス TIPCommon.base.action.data_models.CloseCaseOrAlertReasons(value)
ベース: Enum
CloseCaseOrAlertReasons は、ケースまたはアラートが閉じられる理由に関する標準化された上位レベルのカテゴリを提供します。
定数
| 定数 | 値 |
|---|---|
MALICIOUS | 0 |
NOT_MALICIOUS | 1 |
MAINTENANCE | 2 |
INCONCLUSIVE | 3 |
class TIPCommon.base.action.data_models.Content
クラス TIPCommon.base.action.data_models.Content(content: str, title: str = 'Script Result Content')
ベース: オブジェクト
Content は、ケースウォールに追加するスクリプトによって生成された不変のテキスト結果を表します。
属性
次の属性は、プラットフォームのケース結果に表示されるテキストまたはマークダウン ベースのコンテンツを定義します。
| 属性 | |
|---|---|
title |
スクリプト結果の UI に表示されるコンテンツ ブロックの表示タイトル。 |
content |
コア メッセージのコンテンツ。未加工のテキスト文字列として指定するか、マークダウンとしてフォーマットできます。 |
class TIPCommon.base.action.data_models.DataTable
クラス TIPCommon.base.action.data_models.DataTable(data_table: list[str], title: str = 'Script Result Data Table')
ベース: オブジェクト
DataTable は、CSV 形式の文字列のリストを表します。このリストは、ケース結果で構造化された表としてレンダリングされます。
属性
次の属性は、アクションの結果セット内の表形式データの構造と表示を定義します。
| 属性 | |
|---|---|
title |
プラットフォーム インターフェースのデータテーブルの上に表示される見出し。 |
data_table |
各要素がテーブルを構成する CSV 形式の行を表す文字列のリスト。 |
class TIPCommon.base.action.data_models.EntityInsight
クラス TIPCommon.base.action.data_models.EntityInsight(entity: DomainEntityInfo, message: str, triggered_by: str | None = None, original_requesting_user: str | None = None)
ベース: オブジェクト
EntityInsight は、エンティティに関連付けられた特定の検出結果を作成するために使用されます。多くの場合、エンティティの詳細ビューに表示されます。
属性
次の属性は、エンティティと統合スクリプトによって生成された検出結果の関係を定義します。
| 属性 | |
|---|---|
entity |
新しい検出結果で拡充されるエンティティ オブジェクト。 |
message |
エンティティの主な観察結果、検出結果、説明メッセージ。 |
triggered_by |
検出結果を特定した統合の名前。 |
original_requesting_user |
リクエストを最初に開始したユーザーの固有識別子。 |
class TIPCommon.base.action.data_models.EntityTypesEnum
クラス TIPCommon.base.action.data_models.EntityTypesEnum(value)
ベース: Enum
EntityTypesEnum は、Google SecOps で認識されるすべてのエンティティ型の定数を提供します。
定数
次の定数は、エンリッチメント タスクと自動化タスク用にプラットフォームでサポートされている標準化されたエンティティ タイプを定義します。
| 定数 | 値 |
|---|---|
ADDRESS | 'ADDRESS' |
ALERT | 'ALERT' |
APPLICATION | 'APPLICATION' |
CHILD_HASH | 'CHILDHASH' |
CHILD_PROCESS | 'CHILDPROCESS' |
CLUSTER | 'CLUSTER' |
CONTAINER | 'CONTAINER' |
CREDIT_CARD | 'CREDITCARD' |
CVE | 'CVE' |
CVE_ID | 'CVEID' |
DATABASE | 'DATABASE' |
DEPLOYMENT | 'DEPLOYMENT' |
DESTINATION_DOMAIN | 'DESTINATIONDOMAIN' |
DOMAIN | 'DOMAIN' |
EMAIL_MESSAGE | 'EMAILSUBJECT' |
EVENT | 'EVENT' |
FILE_HASH | 'FILEHASH' |
FILE_NAME | 'FILENAME' |
GENERIC | 'GENERICENTITY' |
HOST_NAME | 'HOSTNAME' |
IP_SET | 'IPSET' |
MAC_ADDRESS | 'MacAddress' |
PARENT_HASH | 'PARENTHASH' |
PARENT_PROCESS | 'PARENTPROCESS' |
PHONE_NUMBER | 'PHONENUMBER' |
POD | 'POD' |
PROCESS | 'PROCESS' |
SERVICE | 'SERVICE' |
SOURCE_DOMAIN | 'SOURCEDOMAIN' |
THREAT_ACTOR | 'THREATACTOR' |
THREAT_CAMPAIGN | 'THREATCAMPAIGN' |
THREAT_SIGNATURE | 'THREATSIGNATURE' |
URL | 'DestinationURL' |
USB | 'USB' |
USER | 'USERUNIQNAME' |
class TIPCommon.base.action.data_models.ExecutionState
クラス TIPCommon.base.action.data_models.ExecutionState(value)
ベース: Enum
ExecutionState は、アクションの成功または失敗を判断するためにプラットフォームに返される最終ステータス インジケーターを表します。
定数
| 定数 | 値 |
|---|---|
COMPLETED | 0 |
IN_PROGRESS | 1 |
FAILED | 2 |
TIMED_OUT | 3 |
class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter
クラス TIPCommon.base.action.data_models.FullDetailsConfigurationParameter(input_dict: dict[str, Any])
ベース: オブジェクト
FullDetailsConfigurationParameter は、API から取得された完全なメタデータを含む一般的な統合構成パラメータをカプセル化します。
属性
次の属性は、パラメータのメタデータ、識別、構成制約を管理します。
table>
属性
full_dict
dict[str, Any]
API レスポンスから受信した元の辞書。
id
int | None
プラットフォームによって割り当てられたパラメータの一意の識別子。
integration_identifier
str
このパラメータに関連付けられたインテグレーションの識別子(VirusTotalV3 など)。
creation_time
int
パラメータが作成された日時を示すタイムスタンプ(UNIX ミリ秒単位)。
modification_time
int
パラメータが最後に変更された日時を示すタイムスタンプ(Unix ミリ秒単位)。
is_mandatory
bool
統合が機能するためにパラメータが必要かどうかを定義します。
description
str | None
パラメータの目的の詳細な説明。
name
str
パラメータの内部識別子名。
display_name
str
プラットフォーム インターフェースに表示されるパラメータ名(人が読める形式)。
value
Any
パラメータに割り当てられたデフォルト値。
type
IntegrationParamType
パラメータのデータ型分類。
optional_values
list
プルダウン リスト(DDL)パラメータ型に指定されたオプション値のリスト。
class TIPCommon.base.action.data_models.HTMLReport
クラス TIPCommon.base.action.data_models.HTMLReport(report_name: str, report_contents: str, ...)
ベース: オブジェクト
HTMLReport は、ケース結果に追加するカスタム HTML ベースの可視化を表します。
属性
| 属性 | |
|---|---|
title |
ケースウォールに表示されるレポートのタイトル。 |
report_name |
レポートの内部識別子またはファイル名。 |
report_contents |
レポートのコンテンツを定義する未加工の HTML 文字列。 |
class TIPCommon.base.action.data_models.IntegrationParamType
クラス TIPCommon.base.action.data_models.IntegrationParamType(value)
ベース: Enum
IntegrationParamType は、統合構成設定でサポートされているデータ型を指定します。
定数
| 定数 | 値 |
|---|---|
NULL | -1 |
BOOLEAN | 0 |
INTEGER | 1 |
STRING | 2 |
PASSWORD | 3 |
IP | 4 |
EMAIL | 8 |
class TIPCommon.base.action.data_models.Link
クラス TIPCommon.base.action.data_models.Link(link: str, title: str = 'Script Result Link')
ベース: オブジェクト
Link は、ケースウォールにハイパーリンクとして表示する外部 URL の結果を表します。
属性
| 属性 | |
|---|---|
title |
ハイパーリンクの表示テキスト。 |
link |
リンクのターゲット URL。 |
class TIPCommon.base.action.data_models.Markdown
クラス TIPCommon.base.action.data_models.Markdown(markdown_name: str, markdown_content: str, ...)
ベース: オブジェクト
Markdown は、マークダウン構文を使用してリッチテキスト形式のコンテンツを返す構造化された方法を提供します。
属性
| 属性 | |
|---|---|
title |
マークダウン ブロックの表示タイトル。 |
markdown_content |
マークダウン構文でフォーマットされたコンテンツ。 |
markdown_name |
このマークダウン結果に割り当てられた一意の名前。 |
class TIPCommon.base.action.data_models.ScriptParameter
クラス TIPCommon.base.action.data_models.ScriptParameter(input_dict: dict[str, Any])
ベース: オブジェクト
ScriptParameter は、アクション スクリプトの単一の入力パラメータを表し、プレイブックまたは手動アクション内での値、デフォルトの状態、可視性を管理します。
属性
次の属性は、個々のスクリプト パラメータのメタデータ、値の優先順位付け、データ制約を管理します。
| 属性 | |
|---|---|
full_dict |
API レスポンスから受信した元の辞書。 |
id |
プラットフォームによって割り当てられたパラメータの一意の識別子。 |
creation_time |
パラメータが作成された日時を示すタイムスタンプ(UNIX ミリ秒単位)。 |
modification_time |
パラメータが最後に変更された日時を示すタイムスタンプ(Unix ミリ秒単位)。 |
custom_action_id |
このパラメータに関連付けられたカスタム アクションの ID。 |
is_mandatory |
アクション スクリプトを実行するためにパラメータを指定する必要があるかどうかを示します。 |
default_value |
パラメータのデフォルト値。 この値は、ハンドブックの実行で |
description |
パラメータの目的の詳細な説明。 |
name |
パラメータの内部識別子名。 |
value |
パラメータの現在の値。 この値は、手動アクションの実行で |
type |
パラメータのデータ型分類。 |
optional_values |
プルダウン リスト(DDL)パラメータ タイプに指定されたオプション値のリスト。 |
スクリプト実行の結果
次のクラスと関数は、アクションとコネクタからプラットフォームにデータを返すための標準化された構造を定義します。
class TIPCommon.base.data_models.ActionJsonOutput
クラス TIPCommon.base.data_models.ActionJsonOutput(title='JsonResult', content='', type=None, is_for_entity=False, json_result=None)
ベース: オブジェクト
ActionJsonOutput は、アクションの構造化された JSON ペイロードを表し、特定のカテゴリ分けとエンティティ レベルのターゲティングを可能にします。
属性
| 属性 | |
|---|---|
title |
JSON 結果ブロックの表示タイトル。 |
content |
JSON データに付随するテキスト コンテンツまたは概要。 |
type |
JSON 出力のオプションの分類タイプ。 |
is_for_entity |
JSON の結果がエンティティに特に関連付けられているかどうかを示します。 |
json_result |
実際の構造化 JSON データ ペイロード。 |
class TIPCommon.base.data_models.ActionOutput
クラス TIPCommon.base.data_models.ActionOutput(output_message, result_value, execution_state, json_output, debug_output='')
ベース: オブジェクト
ActionOutput は、人間が読めるメッセージ、状態、構造化された JSON を組み合わせて、アクションの完全な結果構造をカプセル化します。
属性
| 属性 | |
|---|---|
output_message |
アナリストに表示されるメインの概要メッセージ。 |
result_value |
アクションの論理結果(成功/失敗など)。 |
execution_state |
アクション実行の最終ライフサイクル状態。 |
json_output |
アクションの構造化された JSON 結果。 |
debug_output |
トラブルシューティング用の診断情報(省略可)。 |
class TIPCommon.base.data_models.ConnectorJsonOutput
クラス TIPCommon.base.data_models.ConnectorJsonOutput(alerts, overflow_alerts=<factory>, log_items=<factory>, log_rows=<factory>, variables=<factory>)
ベース: オブジェクト
ConnectorJsonOutput は、取り込まれたアラート、オーバーフローの詳細、実行ログなど、コネクタから返される構造化データを定義します。
属性
| 属性 | |
|---|---|
alerts |
正常に取り込まれたアラート オブジェクトまたはケース オブジェクトのリスト。 |
overflow_alerts |
取り込み上限を超え、オーバーフローとして処理されたアラートのリスト。 |
log_items |
コネクタの実行中に生成された構造化ログエントリのリスト。 |
variables |
コネクタの実行間で永続化される状態変数のディクショナリ。 |
class TIPCommon.base.data_models.ConnectorOutput
クラス TIPCommon.base.data_models.ConnectorOutput(json_output, debug_output='')
ベース: オブジェクト
ConnectorOutput は、コネクタ実行結果の最上位コンテナを表し、構造化された JSON データとオプションのデバッグ文字列をラップします。
属性
| 属性 | |
|---|---|
json_output |
取り込みデータとログデータを含む構造化された JSON 結果。 |
debug_output |
内部診断トラッキング用のデバッグ文字列(省略可)。 |
TIPCommon.base.data_models.alert_info_from_json
TIPCommon.base.data_models.alert_info_from_json(json_) → AlertInfo
属性のディクショナリを解析して AlertInfo オブジェクトを作成します。これは通常、データ変換またはテスト中にアラート オブジェクトを再構築するために使用されます。
戻り値
指定された JSON 辞書で定義されたプロパティに基づいて、完全に初期化された AlertInfo オブジェクトを返します。
Interfaces モジュール
このモジュールは、基盤となるスクリプト コンポーネントの標準抽象コントラクトを定義します。
class TIPCommon.base.interfaces.apiable.Apiable
クラス TIPCommon.base.interfaces.apiable.Apiable(authenticated_session: AuthenticatedSession, configuration: ApiParams)
ベース: ABC、Generic[ApiParams]
Apiable は、API 通信ロジックをカプセル化するクラスの抽象基本インターフェースであり、外部サービスとのやり取りの一貫した構造を保証します。
class TIPCommon.base.interfaces.authable.Authable
クラス TIPCommon.base.interfaces.authable.Authable
ベース: ABC、Generic[AuthParams]
Authable は、認証ワークフローを管理するクラスの抽象基本インターフェースです。外部サービスとの安全なセッションを確立するための標準化されたブループリントを提供します。
抽象メソッド
次の抽象メソッドは、ターゲット サービスに必要な特定の認証ロジックを定義するために、サブクラスで実装する必要があります。
| 抽象メソッド | |
|---|---|
authenticate_session() |
指定された このメソッドは、セッション オブジェクトの初期化後に、セッションに関連付けられたサービスとの認証を確立するために使用します。 |
class TIPCommon.base.interfaces.logger.Logger
クラス TIPCommon.base.interfaces.logger.Logger
ベース: ABC
マーケットプレイス スクリプトが標準化された診断出力を提供することを保証する Logger インターフェース。
抽象メソッド
さまざまなロギングの重大度レベルと例外レポートを処理するには、次のメソッドを実装する必要があります。
| 抽象メソッド | |
|---|---|
debug() |
重大度レベル |
info() |
重大度レベル |
warn() |
重大度レベル |
error() |
重大度レベル |
exception() |
例外スタック トレースを含む、重大度レベル |
class TIPCommon.base.interfaces.session.Session
クラス TIPCommon.base.interfaces.session.Session
ベース: ABC、Generic[_R]
Session インターフェースは、さまざまな HTTP ライブラリを使用して API セッションを管理するための整合性のあるブループリントを提供します。
属性
次の属性は、確立された HTTP 通信セッションの構成とセキュリティ設定を管理します。
| 属性 | |
|---|---|
headers |
セッション内の各リクエストとともに送信する HTTP ヘッダーを含むディクショナリ。 |
verify |
セッションでサーバーの SSL 証明書を検証するかどうかを示すブール値。 |
抽象メソッド
次の抽象メソッドは、標準の HTTP 動詞と、サブクラスが実装する必要があるプライマリ リクエスト ディスパッチャーを定義します。
| 抽象メソッド | |
|---|---|
get() |
HTTP GET リクエストを使用してサーバーからリソースを取得します。 |
post() |
HTTP POST リクエストを使用して、リソースを作成するためにサーバーにデータを送信します。 |
put() |
HTTP PUT リクエストを使用して、サーバー上のリソースを更新または作成します。 |
patch() |
HTTP PATCH リクエストを使用して、リソースに部分的な変更を適用します。 |
delete() |
HTTP DELETE リクエストを使用して、指定されたリソースをサーバーから削除します。 |
request() |
指定されたメソッドで HTTP リクエストを実行するために使用されるコア リクエスト ディスパッチャ。 |
求人情報モジュール
これにより、プラットフォーム内で定義されたスケジュールで実行されるバックグラウンド処理スクリプトのフレームワークが提供されます。
class TIPCommon.base.job.base_job.Job
クラス TIPCommon.base.job.base_job.Job(name: str)
ベース: ABC、Generic[ApiClient]
Job は、データ同期やヘルスチェックなどの独立したバックグラウンド オペレーションを実行するスケジュール設定されたタスク用に設計された抽象基本クラスです。
パラメータ
ジョブを初期化してプラットフォームに登録するには、次のパラメータが必要です。
| パラメータ | |
|---|---|
name |
ジョブ スクリプトの登録と識別に使用される一意の識別子。 |
属性
次のプロパティは、ジョブの実行コンテキスト、構成、統合サービス クライアントへのアクセスを提供します。
| 属性 | |
|---|---|
api_client |
外部サービスとやり取りするための初期化された API クライアントまたはクライアントのコレクションを提供します。 |
error_msg |
診断レポート用に、ジョブの実行中に発生したエラー メッセージを保存します。 |
job_start_time |
ジョブの実行が開始された時刻を表す Unix タイムスタンプ。 |
logger |
実行中に情報、警告、エラーデータをキャプチャするためのロギング インターフェースを提供します。 |
name |
ジョブ スクリプトの登録名。 |
params |
ジョブ インスタンスに提供される特定の構成パラメータを保持するコンテナ。 |
soar_job |
基盤となるプラットフォーム ジョブ インスタンスを表し、低レベルの実行フックへのアクセスを提供します。 |
メソッド
次のメソッドは、ジョブのオーケストレーションと実行のライフサイクルを管理します。
| メソッド | |
|---|---|
start() |
署名: ジョブの実行ロジックをトリガーするプライマリ エントリ ポイント。 |
class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob
クラス TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob(name: str, integration_identifier: str)
ベース: Job、Generic[ApiClient]
RefreshTokenRenewalJob は、トークン メンテナンスのジョブ処理に影響するライフサイクル メソッドを提供します。サブクラスはこれらのメソッドをオーバーライドする必要はありません。
属性
| 属性 | |
|---|---|
api_client |
外部サービスとのやり取りに使用される初期化された API クライアント。 |
class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple
クラス TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple(success_list, failure_list)
ベース: tuple
SuccessFailureTuple は、バッチジョブ オペレーションの結果を成功と失敗に分類するために使用される特殊な名前付きタプルです。
属性
| 属性 | |
|---|---|
success_list |
正常に処理された識別子またはオブジェクトを含むリスト。 |
failure_list |
処理に失敗した識別子またはオブジェクトを含むリスト。 |
TIPCommon.base.job.base_job_refresh_token.validate_param_csv_to_multi_value
TIPCommon.base.job.base_job_refresh_token.validate_param_csv_to_multi_value(param_name, param_csv_value, delimiter=',') → list[str]
この関数は、カンマ区切り(CSV)のパラメータ文字列を検証して解析し、一意の要素のリストに変換します。単一の値、引用符付きの文字列、混合入力など、複雑な形式を処理するように設計されています。
パラメータ
| パラメータ | |
|---|---|
param_name |
検証されるパラメータの名前またはキー。 |
param_csv_value |
ジョブ構成で指定された未加工の CSV 文字列。 |
発生
入力文字列に無効な数の二重引用符が含まれている場合、引用符が一致しない場合、または CSV 内の個々の値のいずれかの検証に失敗した場合、ValueError 例外が発生します。
戻り値
入力から解析された一意の検証済み文字列の list[str] リスト。有効な値が特定されない場合、または入力が None の場合は、空のリストが返されます。
class TIPCommon.base.job.data_models.JobParameter
クラス TIPCommon.base.job.data_models.JobParameter(input_dict: MutableMapping[str, Any])
ベース: オブジェクト
JobParameter は、ジョブ スクリプトの個々の構成パラメータを表し、そのメタデータと値の状態を管理します。
属性
| 属性 | |
|---|---|
full_dict |
ジョブの初期化中に API から受け取った元の辞書。 |
id |
ジョブ パラメータのプラットフォーム割り当ての固有識別子。 |
is_mandatory |
ジョブを実行するためにパラメータを指定する必要があるかどうかを示します。 |
name |
パラメータの内部識別子名。 |
type |
パラメータのデータ型分類。 |
value |
パラメータのデフォルト値。通常、この値は自動ジョブ実行で優先されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。