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)
基类:ABC、Generic[ApiClient]
适用于 Google SecOps 操作开发的统一通用基础架构实现。
操作基类提供可在继承的操作类中替换的模板抽象方法、通用属性,以及在调用操作的 run 方法时执行的通用流程(以方法的形式)。
参数
参数 | |
---|---|
name |
str
操作的脚本名称。 |
属性
属性 | |
---|---|
_soar_action |
SiemplifyAction SDK 对象。
类型: |
_api_client |
集成的 API 客户端。
类型: |
_name |
使用此操作的脚本的名称。
类型: |
_action_start_time |
操作开始时间。
类型: |
_logger |
用于记录操作的记录器对象。
类型: |
_params |
相应操作的参数容器。
类型: |
global_context |
用于存储上下文的字典(如果需要)。
类型: |
_entity_types |
相应操作支持的实体类型。
类型: |
_entities_to_update |
操作结束时要更新的实体。
类型: |
json_results |
操作的 JSON 结果。
类型: |
_attachments |
要添加的支持请求结果附件。
类型: |
_contents |
要添加的案例结果内容。
类型: |
_data_tables |
要添加的病例结果数据表。
类型: |
_html_reports |
要添加的测试用例结果 HTML 报告。
类型: |
_links |
要添加的案例结果链接。
类型: |
_entity_insights |
要添加的支持请求实体数据洞见。
类型: |
_case_insights |
要添加的支持请求数据分析。
类型: |
_execution_state |
操作的最终执行状态。 |
_result_value |
操作的最终结果值。
类型: |
_output_message |
操作成功时的输出消息。
类型: |
_error_output_message |
操作失败时的输出消息。
类型: |
方法
- 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
运行失败时的操作输出消息。
在操作运行时发生故障时应显示的一条输出消息。默认值为 Action
SCRIPT_NAME
failed
。
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 |
此属性在每次实体迭代中都包含当前实体的丰富数据。在每次迭代结束时,实体的 类型: |
entity_results |
相应对象的 JSON 输出中包含的实体结果。
类型:任意 |
global_context |
一个用于存储上下文(如果需要)的字典。 类型: |
抽象方法
抽象方法 | |
---|---|
_get_entity_types() |
获取操作所针对的实体类型。 |
_perform_enrich_action() |
对实体执行主要丰富逻辑。 |
私有方法
私有方法 | |
---|---|
_perform_action() |
此方法将其他抽象方法与更多开箱即用的丰富逻辑相结合,并将其传递给父类以在 |
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 |
附件的标题。 类型: |
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 |
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
|
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 数据分析的严重程度。可能的值包括:
|
insight_type |
InsightType 数据分析类型。可能的值包括:
|
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
class TIPCommon.base.action.data_models.Link
类 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 参数的默认值。 在剧本中,此参数的优先级高于 |
description |
str | None 参数说明。 |
name |
str | None 参数名称。 |
value |
Any 参数值。 此值的优先级高于人工操作中的 |
type |
ActionParamType 参数的类型。 |
optional_values |
list 类型 DDL 的可选值 DDL。 |
类 TIPCommon.base.interfaces.apiable.Apiable
类 TIPCommon.base.interfaces.apiable.Apiable(authenticated_session: AuthenticatedSession, configuration: ApiParams)
代码库:ABC、Generic[ApiParams]
用于管理对外部服务的 API 调用的类的接口。
类 TIPCommon.base.interfaces.authable.Authable
类 TIPCommon.base.interfaces.authable.Authable
代码库:ABC、Generic[AuthParams]
用于管理与外部服务进行身份验证的类的接口。
抽象方法
抽象方法 | |
---|---|
authenticat_session(params: Authparams) → None |
使用 params 对类的 self.session 属性进行身份验证。
此方法用于向会话所交互的服务进行身份验证,前提是已使用该会话创建对象。 |
属性
属性 | |
---|---|
params |
object 、dataclass 、TypedDict 、namedtuple 或包含所有身份验证参数的任何内容。身份验证参数。 |
类 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
基类:ABC、Generic[_R]
此类使用会话对象管理 API 会话。它支持各种会话类型,并可使用 requests
或 httpx
等库进行模拟。
属性
属性 | |
---|---|
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)
基类:ABC、Generic[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)
基类:Job、Generic[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 定义参数是否为必需参数。 注意:在剧本中,此属性的优先级高于 |
name |
str | None 参数的名称。 |
type |
ActionParamType 参数的类型。 |
value |
Any 参数的默认值。 注意:在手动操作中,此属性的优先级高于 |
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 专业人士那里获得解答。