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

TIPCommon.base.action.base_action.Action

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

基类:ABCGeneric[ApiClient]

适用于 Google SecOps 操作开发的统一通用基础架构实现。

操作基类提供可在继承的操作类中替换的模板抽象方法、通用属性,以及在调用操作的 run 方法时执行的通用流程(以方法的形式)。

参数

参数
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]

默认情况下,所有列表内容都会发送到测试用例结果。

返回一个 Content 对象列表,表示相应支持请求的分析洞见。

媒体资源 data_tables

property data_tables: list[DataTable]

默认情况下,列表中的所有数据表都会发送到案例结果。

返回一个 DataTable 对象列表,表示相应支持请求的分析数据。

媒体资源实体的 entities_to_update

property entities_to_update: list[DomainEntityInfo]

列表中的所有实体都会发送到平台以进行更新。

返回一个 Entity 对象列表,表示应在相应情形下更新的实体。

property 实体 entity_insights

property entity_insights: list[EntityInsight]

默认情况下,列表中的所有实体洞见都会发送到支持请求结果。

返回一个 EntityInsight 对象列表,表示相应支持请求的分析数据。

属性 entity_types

property entity_types: list[EntityTypesEnum]

如果操作适用于实体,则只会处理类型在 entity_types 列表中的实体。否则,该操作会跳过相应实体。

返回一个 EntityTypesEnum 对象列表,表示操作可处理的实体类型。

属性 error_output_message

property error_output_message: str

运行失败时的操作输出消息。

在操作运行时发生故障时应显示的一条输出消息。默认值为 ActionSCRIPT_NAMEfailed

property execution_state

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

属性 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

属性 output_message

property output_message: str

成功运行时的操作输出消息。

总结操作结果的输出消息。

property 参数

property params: [Container]

返回一个 Container 对象,用于描述操作的参数,每个参数都以 snake_case 属性的形式公开。

属性 result_value

property result_value: bool

要传递回平台的操作的结果值。

可能的值:

  • True:操作成功
  • False:操作失败

property soar_action

property soar_action: SiemplifyAction

返回 SDK SiemplifyAction 对象。

TIPCommon.base.action.base_enrich_action.EnrichAction

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

基类:Action

表示实体丰富操作的类。

此类继承自 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()

此方法将其他抽象方法与更多开箱即用的丰富逻辑相结合,并将其传递给父类以在 start() 方法中使用。

class TIPCommon.base.action.data_models.ActionParamType

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

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

代码库:对象

操作脚本结果附件。

此类是不可变的:一旦创建,其属性便无法修改。它支持哈希处理(例如,在集合中使用或用作字典键),并支持使用 == 运算符进行等值比较。

属性

属性
title 附件的标题。

类型:str | None

filename 附件的文件名。

类型:str

file_contents 附件文件的内容。

类型:bytes

additional_data 其他数据。

类型:dict | None

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 int

附件 ID。

attachment_type str

附件的类型。

description str

附件的说明。

is_favorite bool

指示附件是否标记为收藏。

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)

代码库:对象

支持请求评论。

此类是不可变的;在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
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

创建者的全名,例如 System

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

相应提醒的标识符,例如 SUSPICIOUS PHISHING EMAIL_83765943-9437-4771-96F6-BD0FB291384E

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)

代码库:对象

支持请求分析。

此类是不可变的:在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
title str

数据分析的标题。

triggered_by str

集成名称。

content str

数据分析消息。

severity InsightSeverity

数据分析的严重程度。可能的值包括:

  • info
  • warning
  • error
insight_type InsightType

数据分析类型。可能的值包括:

  • general
  • entity
entity_identifier str | None

实体的标识符。

additional_data Any | None

其他数据。

additional_data_type Any | None

其他数据的类型。

additional_data_title str | None

其他数据的标题。

class TIPCommon.base.action.data_models.CasePriority

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

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

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

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

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

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

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

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

代码库:对象

操作脚本结果内容。

此类是不可变的:在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
title str | None

内容的标题。

content str

要添加到脚本结果中的内容。

class TIPCommon.base.action.data_models.DataTable

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

代码库:对象

操作脚本结果数据表。

此类是不可变的;在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
title str | None

表格的标题。

data_table list[str]

用于构建表格的 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)

代码库:对象

实体分析。

此类是不可变的:在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
entity Entity

实体对象。

message str

数据洞见的讯息。

triggered_by str | None

集成的名称。

original_requesting_user str | None

原始用户。

class TIPCommon.base.action.data_models.EntityTypesEnum

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

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

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

代码库:对象

常规脚本参数对象。

属性

属性
full_dict dict[str, Any]

从 API 收到的原始字典。

id int | None

参数的 ID。

integration_identifier str

集成标识符,例如 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

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

代码库:对象

操作脚本-结果链接。

此类是不可变的:在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
title str | None

链接的标题。

report_name str

报告的名称。

report_contents str

报告的 HTML 内容。

class TIPCommon.base.action.data_models.IntegrationParamType

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

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

代码库:对象

操作脚本-结果链接。

此类是不可变的:在分配值并创建对象后,无法为属性分配新值。该类支持哈希处理(存储在集合中或作为字典键)和 == 运算符。

属性

属性
title str | None

链接的标题。

link str

链接。

class TIPCommon.base.action.data_models.ScriptParameter

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

代码库:对象

常规脚本参数对象。

属性

属性
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。

TIPCommon.base.interfaces.apiable.Apiable

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

代码库:ABCGeneric[ApiParams]

用于管理对外部服务的 API 调用的类的接口。

TIPCommon.base.interfaces.authable.Authable

TIPCommon.base.interfaces.authable.Authable

代码库:ABCGeneric[AuthParams]

用于管理与外部服务进行身份验证的类的接口。

抽象方法

抽象方法
authenticat_session(params: Authparams) → None 使用 params 对类的 self.session 属性进行身份验证。

此方法用于向会话所交互的服务进行身份验证,前提是已使用该会话创建对象。

属性

属性
params objectdataclassTypedDictnamedtuple 或包含所有身份验证参数的任何内容。

身份验证参数。

TIPCommon.base.interfaces.logger.Logger

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 记录警告消息。

TIPCommon.base.interfaces.session.Session

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 向服务器发出请求。

TIPCommon.base.job.base_job.Job

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

包含提供给作业的配置参数。

属性 soar_job

property soar_job: SiemplifyJob

表示底层 Google Security Operations SOAR 作业实例。

TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob

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 客户端。

TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

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

基础:元组

属性

属性
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

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

代码库:对象

常规脚本参数对象。

属性

属性
full_dict dict[str, Any]

从 API 收到的原始字典。

id int | None

参数的 ID。

is_mandatory bool

定义参数是否为必需参数。

注意:在剧本中,此属性的优先级高于 value

name str | None

参数的名称。

type ActionParamType

参数的类型。

value Any

参数的默认值。

注意:在手动操作中,此属性的优先级高于 default_value

class TIPCommon.base.data_models.ActionJsonOutput

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

代码库:对象

表示操作的结构化 JSON 输出。

class TIPCommon.base.data_models.ActionOutput

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

代码库:对象

表示操作的完整输出结构。

class TIPCommon.base.data_models.ConnectorJsonOutput

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

代码库:对象

表示连接器的结构化 JSON 输出。

class TIPCommon.base.data_models.ConnectorOutput

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

代码库:对象

表示连接器的完整输出结构。

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 专业人士那里获得解答。