TIPCommon.base

TIPCommon.base.action.action_parser.parse_case_attachment

TIPCommon.base.action.action_parser.parse_case_attachment(attachment: MutableMapping[str, Any]) → CaseAttachment

剖析 JSON 附件,並傳回 CaseAttachment 物件。

參數

參數
attachment 代表附件的回應 JSON 物件。

傳回

已剖析的 CaseAttachment 物件。

傳回類型

CaseAttachment

TIPCommon.base.action.action_parser.parse_case_comment

TIPCommon.base.action.action_parser.parse_case_comment(comment: MutableMapping[str, Any]) → CaseComment

剖析 JSON 註解,並傳回 CaseComment 物件。

參數

參數
comment 代表留言的回應 JSON 物件。

傳回

已剖析的 CaseComment 物件。

傳回類型

CaseComment

class TIPCommon.base.action.base_action.Action

class TIPCommon.base.action.base_action.Action(name: str)

基底:ABCGeneric[ApiClient]

Google SecOps 動作開發的統一通用基礎架構實作。

Action 基礎類別提供範本抽象方法,可在繼承的動作類別中覆寫、通用屬性,以及一般流程 (以方法形式執行,呼叫動作的執行方法時會執行)。

參數

參數
name str

動作的指令碼名稱。

屬性

屬性
_soar_action SiemplifyAction SDK 物件。

類型:SiemplifyAction

_api_client 整合作業的 API 用戶端。

類型:Apiable

_name 使用這項動作的指令碼名稱。

類型:str

_action_start_time 動作開始時間。

類型:int

_logger 用於記錄動作的記錄器物件。

類型:SiemplifyLogger

_params 這項動作的參數容器。

類型:Container

global_context 視需要儲存內容的字典。

類型:dict

_entity_types 動作支援的實體類型。

類型:list[EntityTypesEnum]

_entities_to_update 動作結束時要更新的實體。

類型:list[Entity]

json_results 動作的 JSON 結果。

類型:JSON

_attachments 要新增的案件結果附件。

類型:list[Attachment]

_contents 要新增的案件結果內容。

類型:list[Content]

_data_tables 要新增的案件結果資料表。

類型:list[DataTable]

_html_reports 要新增的案件結果 HTML 報表。

類型:list[HTMLReport]

要新增的案件結果連結。

類型:list[Link]

_entity_insights 要新增的案件實體洞察。

類型:list[EntityInsight]

_case_insights 要新增的案件洞察。

類型:list[CaseInsight]

_execution_state 動作的最終執行狀態。

類型:ExecutionState

_result_value 動作最終結果值。

類型:bool

_output_message 動作成功時的輸出訊息。

類型:str

_error_output_message 動作失敗時的輸出訊息。

類型:str

方法

- run() 執行動作。
- _get_adjusted_json_results() 將 JSON 結果調整為特定結構。

抽象方法

抽象方法
_validate_params() 驗證這項動作的參數。
_init_managers() 初始化並傳回管理員物件。
_perform_action() 執行動作的主要邏輯。

其他方法

這些方法會在動作執行期間呼叫,並影響快訊處理階段,但並非必要覆寫。

  • _get_entity_types()
  • _finalize_action_on_success()
  • _finalize_action_on_failure()
  • _on_entity_failure()
  • _handle_timeout()
  • _extract_action_parameters()
  • _finalize()

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()

範例

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()

property action_start_time

property action_start_time: int

傳回 int,代表動作的開始時間 (以 Unix 時間表示)。

property api_client

propertyapi_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

傳回 Apiable 物件。

房源附件

property attachments: list[Attachment]

根據預設,清單中的所有附件都會傳送至案件結果。

傳回 Attachment 物件清單,代表這個案件的洞察資料。

property case_insights

property case_insights: list[CaseInsight]

根據預設,清單中的所有案件洞察資料都會傳送至案件結果。

傳回 CaseInsight 物件清單,代表這個案件的洞察資料。

資源內容

property contents: list[Content]

根據預設,所有清單內容都會傳送至案件結果。

傳回代表這個案件洞察資料的內容物件清單。

房源 data_tables

property data_tables: list[DataTable]

根據預設,清單中的所有資料表都會傳送至案件結果。

傳回 DataTable 物件清單,代表這個案件的洞察資料。

property entities_to_update

property entities_to_update: list[DomainEntityInfo]

清單中的所有實體都會傳送至平台進行更新。

傳回 Entity 物件清單,代表應在案件中更新的實體。

property 實體洞察

property entity_insights: list[EntityInsight]

根據預設,清單中的所有實體洞察資料都會傳送至案件結果。

傳回 EntityInsight 物件清單,代表這個案件的洞察資料。

property 實體類型

property entity_types: list[EntityTypesEnum]

如果動作適用於實體,則只會處理類型位於 entity_types 清單中的實體。否則,動作會略過實體。

傳回 EntityTypesEnum 物件的清單,代表動作可處理的實體類型。

property error_output_message

property error_output_message: str

執行失敗時的動作輸出訊息。

如果動作執行階段發生失敗,應顯示的輸出訊息。預設值為 ActionSCRIPT_NAMEfailed

property 執行狀態

property execution_state: ExecutionState

動作的執行狀態,也就是以整數表示的狀態指標,會傳回給平台。

可能狀態如下:

  • ExecutionState.COMPLETED = 0
  • ExecutionState.IN_PROGRESS = 1
  • ExecutionState.FAILED = 2
  • ExecutionState.TIMED_OUT = 3

傳回代表目前執行狀態的 ExecutionState 物件。

property html_reports

property html_reports: list[HTMLReport]

根據預設,清單中的所有 HTML 報表都會傳送至案件結果。

傳回 HTMLReport 物件清單,代表這個案件的洞察資料。

property is_first_run

property is_first_run: bool

指出這是否為首次執行。

傳回:

如果是第一次執行,則為 True,否則為 False

property json_results

property json_results: Dict[str, Any] | List[Dict[str, Any]]

傳回要傳送至案件牆的動作 JSON 結果。

property links: list[Link]

根據預設,清單中的所有連結都會傳送至案件結果。

傳回 Link 物件清單,代表這個案件的洞察資料。

屬性記錄器

property logger: NewLineLogger

傳回動作的 NewLineLogger 物件。

房源名稱

property name: str

property output_message

property output_message: str

動作成功執行時的輸出訊息。

總結動作結果的輸出訊息。

property 參數

property params: [Container]

傳回 Container 物件,說明動作的參數,每個參數都會以 snake_case 屬性形式公開。

property result_value

property result_value: bool

要傳回給平台的值。

可能的值包括:

  • True:動作成功
  • False:操作失敗

property soar_action

property soar_action: SiemplifyAction

傳回 SDK SiemplifyAction 物件。

class TIPCommon.base.action.base_enrich_action.EnrichAction

class TIPCommon.base.action.base_enrich_action.EnrichAction(name: str)

基礎:動作

代表實體擴充動作的類別。

這個類別會繼承 TIPCommon.base.actions.base_action::Action 類別。

參數

參數
name str

動作的名稱。

屬性

屬性
enrichment_data

這個屬性會保留每個實體疊代中,目前實體的擴充資料。在每次疊代結束時,實體的 additional_properties 屬性會更新為 self.enrichment_data,也就是說,每次都會使用新值設定這個值。

類型:dict

entity_results 這個物件的 JSON 輸出內容中包含的實體結果。

類型:任意

global_context

視需要儲存情境的字典。

類型:dict

抽象方法

抽象方法
_get_entity_types() 取得動作執行的實體類型。
_perform_enrich_action() 對實體執行主要擴充邏輯。

私有方法

私有方法
_perform_action()

這個方法會將其他抽象方法與更多 OOTB 擴充邏輯合併,並傳遞至父項類別,以便在 start() 方法中使用。

class TIPCommon.base.action.data_models.ActionParamType

class TIPCommon.base.action.data_models.ActionParamType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • 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

class TIPCommon.base.action.data_models.Attachment(filename: str, file_contents: bytes, title: str = 'Script Result Attachment', additional_data: dict | None = None)

基底:object

動作指令碼結果附件。

這個類別不可變更,建立後就無法修改屬性。支援雜湊 (例如用於集合或做為字典鍵) 和使用 == 運算子的等式比較。

屬性

屬性
title 附件的標題。

類型:str | None

filename 附件的檔案名稱。

類型:str

file_contents 附件檔案的內容。

類型:bytes

additional_data 其他資料。

類型:dict | None

class TIPCommon.base.action.data_models.CaseAttachment

class TIPCommon.base.action.data_models.CaseAttachment(attachment_id: int, attachment_type: str, description: str, is_favorite: bool)

基底:object

保護殼。

這個類別是不可變動的,指派值並建立物件後,就無法再為屬性指派新值。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
attachment_id int

附件 ID。

attachment_type str

附件類型。

description str

附件的說明。

is_favorite bool

指出附件是否標示為「我的最愛」。

class TIPCommon.base.action.data_models.CaseComment

class 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)

基底:object

案件註解。

這個類別是不可變動的,指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
comment str

留言。

comment_for_client str | None

給用戶端的註解。

modification_time_unix_time_in_ms_for_client int

comment_for_client 的修改時間。

last_editor str

最後編輯者的 ID,例如 77bdb7a4-8484-481d-9482-2449e33f9518

last_editor_full_name str

最後編輯者的全名,例如「admin admin」

is_deleted bool

指出留言是否已刪除。

creator_user_id str

建立者使用者 ID,例如 77bdb7a4-8484-481d-9482-2449e33f9518

creator_full_name str

創作者的全名,例如「系統」

comment_id int

留言的 ID。

comment_type int

留言類型。

case_id int

案件的 ID。

is_favorite bool

指出留言是否已標示為「我的收藏」。

modification_time_unix_time_in_ms int

留言的上次修改時間 (以 Unix 時間表示),例如 1686040471269

creation_time_unix_time_in_ms int

留言的建立時間 (以 Unix 時間表示),例如 1686040471269

alert_identifier str

快訊的 ID,例如 SUSPICIOUS PHISHING EMAIL_83765943-9437-4771-96F6-BD0FB291384E

class TIPCommon.base.action.data_models.CaseInsight

class 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)

基底:object

案件洞察資料。

這個類別是不可變動的:指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
title str

洞察資料的標題。

triggered_by str

整合名稱。

content str

洞察訊息。

severity InsightSeverity

深入分析嚴重程度。可能的值包括:

  • info
  • warning
  • error
insight_type InsightType

深入分析類型。可能的值包括:

  • general
  • entity
entity_identifier str | None

實體的 ID。

additional_data Any | None

其他資料。

additional_data_type Any | None

額外資料的類型。

additional_data_title str | None

額外資料的標題。

class TIPCommon.base.action.data_models.CasePriority

class TIPCommon.base.action.data_models.CasePriority(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • CRITICAL = 100

  • HIGH = 80

  • INFORMATIONAL = 0

  • LOW = 40

  • MEDIUM = 60

class TIPCommon.base.action.data_models.CaseStage

class TIPCommon.base.action.data_models.CaseStage(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • ASSESSMENT = 'Assessment'

  • IMPROVEMENT = 'Improvement'

  • INCIDENT = 'Incident'

  • INVESTIGATION = 'Investigation'

  • RESEARCH = 'Research'

  • TRIAGE = 'Triage'

class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • NO_CLEAR_CONCLUSION = 'No clear conclusion'

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • LAB_TEST = 'Lab test'

  • OTHER = 'Other'

  • RULE_UNDER_CONSTRUCTION = 'Rule under construction'

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • EXTERNAL_ATTACK = 'External attack'

  • INFRASTRUCTURE_ISSUE = 'Infrastructure issue'

  • IRRELEVANT_TCP_UDP_PORT = 'Irrelevant TCP/UDP port'

  • MISCONFIGURED_SYSTEM = 'Misconfigured system'

  • OTHER = 'Other'

  • SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION = 'Similar case is already under investigation'

  • SYSTEM_APPLICATION_MALFUNCTION = 'System/application malfunction'

  • SYSTEM_CLOCKED_THE_ATTACK = 'System blocked the attack'

  • UNFORESEEN_EFFECTS_OF_CHANGE = 'Unforeseen effects of change'

  • UNKNOWN = 'Unknown'

class TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • EMPLOYEE_ERROR = 'Employee error'

  • HUMAN_ERROR = 'Human error'

  • LAB_TEST = 'Lab test'

  • LEGIT_ACTION = 'Legit action'

  • MISCONFIGURED_SYSTEM = 'Misconfigured system'

  • NONE = 'None'

  • NORMAL_BEHAVIOR = 'Normal behavior'

  • OTHER = 'Other'

  • PENETRATION_TEST = 'Penetration test'

  • RULE_UNDER_CONSTRUCTION = 'Rule under construction'

  • SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION = 'Similar case is already under investigation'

  • UNKNOWN = 'Unknown'

  • USER_MISTAKE = 'User mistake'

class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons

class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

### 常數

  • INCONCLUSIVE = 3

  • MAINTENANCE = 2

  • MALICIOUS = 0

  • NOT_MALICIOUS = 1

class TIPCommon.base.action.data_models.Content

class TIPCommon.base.action.data_models.Content(content: str, title: str = 'Script Result Content')

基底:object

動作指令碼結果內容。

這個類別是不可變動的:指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
title str | None

內容標題。

content str

要新增至指令碼結果的內容。

class TIPCommon.base.action.data_models.DataTable

class TIPCommon.base.action.data_models.DataTable(data_table: list[str], title: str = 'Script Result Data Table')

基底:object

動作指令碼結果資料表。

這個類別是不可變動的,指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
title str | None

表格標題。

data_table list[str]

建構表格的 CSV 列清單。

class TIPCommon.base.action.data_models.EntityInsight

class TIPCommon.base.action.data_models.EntityInsight(entity: DomainEntityInfo, message: str, triggered_by: str | None = None, original_requesting_user: str | None = None)

基底:object

實體洞察資料。

這個類別是不可變動的:指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
entity Entity

實體物件。

message str

洞察資料的訊息。

triggered_by str | None

整合的名稱。

original_requesting_user str | None

原始使用者。

class TIPCommon.base.action.data_models.EntityTypesEnum

class TIPCommon.base.action.data_models.EntityTypesEnum(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • 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

class TIPCommon.base.action.data_models.ExecutionState(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • COMPLETED = 0

  • FAILED = 2

  • IN_PROGRESS = 1

  • TIMED_OUT = 3

class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter

class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter(input_dict: dict[str, Any])

基底:object

一般指令碼參數物件。

屬性

屬性
full_dict dict[str, Any]

從 API 收到的原始字典。

id int | None

參數的 ID。

integration_identifier str

整合 ID,例如 VirusTotalV3

creation_time int

參數的建立時間。

modification_time int

參數上次修改時間。

is_mandatory bool

定義參數是否為必要。

description str | None

參數說明。

name str

參數名稱。

display_name str

參數的顯示名稱。

value Any

參數的預設值。

type IntegrationParamType

參數類型。

optional_values list

類型 DDL 的選用值 DDL。

class TIPCommon.base.action.data_models.HTMLReport

class TIPCommon.base.action.data_models.HTMLReport(report_name: str, report_contents: str, title: str = 'Script Result HTML Report')

基底:object

動作指令碼結果連結。

這個類別是不可變動的:指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
title str | None

連結標題。

report_name str

報表名稱。

report_contents str

報表的 HTML 內容。

class TIPCommon.base.action.data_models.IntegrationParamType

class TIPCommon.base.action.data_models.IntegrationParamType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

常數

  • BOOLEAN = 0

  • EMAIL = 8

  • INTEGER = 1

  • IP = 4

  • NULL = -1

  • PASSWORD = 3

  • STRING = 2

class TIPCommon.base.action.data_models.Link(link: str, title: str = 'Script Result Link')

基底:object

動作指令碼結果連結。

這個類別是不可變動的:指派值並建立物件後,就無法再將新值指派給屬性。這個類別支援雜湊 (儲存在集合中或做為字典鍵) 和 == 運算子。

屬性

屬性
title str | None

連結標題。

link str

連結。

class TIPCommon.base.action.data_models.ScriptParameter

class TIPCommon.base.action.data_models.ScriptParameter(input_dict: dict[str, Any]

基底:object

一般指令碼參數物件。

屬性

屬性
full_dict dict[str, Any]

從 API 接收的原始字典。

id int | None

參數的 ID。

creation_time int

參數的建立時間。

modification_time int

上次修改參數的時間。

custom_action_id int | None

動作 ID。

is_mandatory bool

指出參數是否為必要。

default_value Any

參數的預設值。

這個參數的優先順序高於應對手冊中的 value 參數。

description str | None

參數說明。

name str | None

參數名稱。

value Any

參數值。

在手動動作中,這個值的優先順序高於 default_value 參數。

type ActionParamType

參數類型。

optional_values list

類型 DDL 的選用值 DDL。

class TIPCommon.base.interfaces.apiable.Apiable

class TIPCommon.base.interfaces.apiable.Apiable(authenticated_session: AuthenticatedSession, configuration: ApiParams)

基底:ABCGeneric[ApiParams]

這個介面適用於管理外部服務 API 呼叫的類別。

class TIPCommon.base.interfaces.authable.Authable

class TIPCommon.base.interfaces.authable.Authable

基底:ABCGeneric[AuthParams]

管理外部服務驗證的類別介面。

抽象方法

抽象方法
authenticat_session(params: Authparams) → None 使用 params 驗證類別的 self.session 屬性。

使用這個工作階段建立物件後,這個方法會向工作階段互動的服務驗證您的身分。

屬性

屬性
params objectdataclassTypedDictnamedtuple 或任何包含所有驗證參數的項目。

驗證參數。

class TIPCommon.base.interfaces.logger.Logger

class TIPCommon.base.interfaces.logger.Logger

基地:ABC

專為 Marketplace 指令碼設計的記錄器介面,可在傳遞的記錄器遭到取代或模擬時驗證相容性。

抽象方法

抽象方法
debug(msg: str, *args, **kwargs) → None 記錄偵錯訊息。
error(error_msg: str, *args, **kwargs) → None 記錄錯誤訊息。
exception(ex: Exception, *args, **kwargs) → None 記錄例外狀況訊息。
info(msg: str, *args, **kwargs) → None 記錄資訊訊息。
warn(warning_msg: str, *args, **kwargs) → None 記錄警告訊息。

class TIPCommon.base.interfaces.session.Session

class TIPCommon.base.interfaces.session.Session

底座:ABCGeneric[_R]

這個類別會使用工作階段物件管理 API 工作階段。支援各種工作階段類型,並透過 requestshttpx 等程式庫模擬。

屬性

屬性
headers dict
verify bool

抽象方法

抽象方法
delete(url: str, *args, **kwargs)→ _R 從伺服器刪除資源。
get(url: str, *args, **kwargs)→ _R 從伺服器取得資源。
patch(url: str, *args, **kwargs) → _R 修補伺服器上的資源。
post(url: str, *args, **kwargs) → _R 將資源發布至伺服器。
put(url: str, *args, **kwargs) → _R 在伺服器上放置 (更新或建立) 資源。
request(method: str, *args, **kwargs) → _R 向伺服器發出要求。

class TIPCommon.base.job.base_job.Job

class TIPCommon.base.job.base_job.Job(name: str)

基底:ABCGeneric[ApiClient]

這個類別代表 Google Security Operations SOAR 中的工作指令碼。

方法

  • start(**kwargs) → None

property api_client

property api_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

提供 API 用戶端,與外部服務互動。

property error_msg

property error_msg: str

儲存工作執行期間發生的任何錯誤訊息。

property job_start_time

property job_start_time: int

代表工作開始的時間戳記。

屬性記錄器

property logger: ScriptLogger

為工作指令碼提供記錄功能。

房源名稱

property name: str

保留工作指令碼的名稱。

property 參數

property params: Container

包含提供給工作的設定參數。

property soar_job

property soar_job: SiemplifyJob

代表基礎 Google Security Operations SOAR 工作執行個體。

class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob

class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob(name: str, integration_identifier: str)

基礎:JobGeneric[ApiClient]

本節說明會影響工作處理作業的生命週期方法。子類別不必覆寫這些方法。

property api_client

property api_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

保存用於外部服務互動的 API 用戶端。

class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple(success_list, failure_list)

基底:tuple

屬性

屬性
success_list 欄位編號 0 的別名。
failure_list 欄位編號 1 的別名。

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: str, param_csv_value: str | None, delimiter: str = ',') → list[str]

驗證並剖析以逗號分隔的參數值,然後轉換為不重複元素清單。這個函式可處理單一值、加上引號的字串和混合格式。

參數

參數
param_name 參數鍵。
param_csv_value job 參數中提供的參數值。 如果 None,則會傳回空白清單。

發出

ValueError - 雙引號數量無效、部分值無效,或部分值的雙引號不相符。

傳回

工作參數中提供的唯一值清單。 如果找不到任何有效值,系統就會傳回空白清單。

傳回類型

list[str]

class TIPCommon.base.job.data_models.JobParameter

class TIPCommon.base.job.data_models.JobParameter(input_dict: MutableMapping[str, Any])

基底:object

一般指令碼參數物件。

屬性

屬性
full_dict dict[str, Any]

從 API 收到的原始 dict。

id int | None

參數的 ID。

is_mandatory bool

定義參數是否為必要。

注意:在劇本中,這項屬性的優先順序高於 value

name str | None

參數的名稱。

type ActionParamType

參數類型。

value Any

參數的預設值。

注意:在手動操作中,這個屬性的優先順序高於 default_value

class TIPCommon.base.data_models.ActionJsonOutput

class TIPCommon.base.data_models.ActionJsonOutput(title: 'str' = 'JsonResult', content: 'str' = '', type: 'str | None' = None, is_for_entity: 'bool' = False, json_result: 'JSON | None' = None)

基底:object

代表動作的結構化 JSON 輸出。

class TIPCommon.base.data_models.ActionOutput

class TIPCommon.base.data_models.ActionOutput(output_message: 'str', result_value: 'str | bool', execution_state: 'ExecutionState', json_output: 'ActionJsonOutput | None', debug_output: 'str' = '')

基底:object

代表動作的完整輸出結構。

class TIPCommon.base.data_models.ConnectorJsonOutput

class TIPCommon.base.data_models.ConnectorJsonOutput(alerts: 'list[AlertInfo | CaseInfo]', overflow_alerts: 'list[OverflowAlertDetails]' = <factory>, log_items: 'list' = <factory>, log_rows: 'list[str]' = <factory>, variables: 'dict' = <factory>)

基底:object

代表連接器的結構化 JSON 輸出。

class TIPCommon.base.data_models.ConnectorOutput

class TIPCommon.base.data_models.ConnectorOutput(json_output: 'ConnectorJsonOutput | None', debug_output: 'str' = '')

基底:object

代表連接器的完整輸出結構。

TIPCommon.base.data_models.alert_info_from_json

TIPCommon.base.data_models.alert_info_from_json(json_: MutableMapping[str, Any])→ AlertInfo

從屬性的 JSON 建立 AlertInfo 物件。

傳回

建立的 AlertInfo 物件。

傳回類型

AlertInfo

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。