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

SiemplifyAction

SiemplifyAction SDK 객체입니다.

_api_client

Apiable

통합의 API 클라이언트입니다.

_name

str

이 작업을 사용하는 스크립트의 이름입니다.

_action_start_time

int

작업 시작 시간(Unix)입니다.

_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

list[HTMLReport]

추가할 케이스 결과 HTML 보고서입니다.

list[Link]

추가할 케이스 결과 링크입니다.

_markdowns

list[Markdown]

추가할 케이스 결과 마크다운입니다.

_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_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 객체를 반환합니다.

첨부파일

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 = 0
  • ExecutionState.IN_PROGRESS = 1
  • ExecutionState.FAILED = 2
  • ExecutionState.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 결과를 반환합니다.

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

각 매개변수가 snake_case 속성으로 노출된 작업의 입력 매개변수를 설명하는 Container 객체를 반환합니다.

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)

기본: 작업

EnrichAction은 외부 데이터로 엔티티 속성을 업데이트하는 작업을 위해 설계된 특수 기본 클래스입니다.

매개변수

다음 매개변수는 리치 작업의 초기화 및 플랫폼 내 등록에 필요합니다.

매개변수
name 강화 작업 스크립트의 고유 식별자입니다.

속성

다음 속성은 엔티티 반복 중에 사용되는 데이터를 관리하고 작업의 출력 결과에 포함된 콘텐츠를 정의합니다.

속성
enrichment_data

dict

각 항목 반복의 현재 항목에 대한 보강 데이터입니다. 각 반복이 끝나면 항목의 additional_properties 속성이 self.enrichment_data로 업데이트됩니다. 즉, 이 값은 새 값으로 매번 설정됩니다.

entity_results

Any

이 객체의 JSON 출력에 포함된 항목 결과입니다.

global_context

dict

강화 작업 실행의 여러 단계에서 컨텍스트 데이터를 저장하고 공유하는 데 사용되는 사전입니다.

추상 메서드

다음 추상 메서드는 서브클래스에서 구현되어 작업의 특정 항목 유형과 보강 로직을 정의해야 합니다.

추상 메서드
_get_entity_types() 작업이 실행되는 항목의 유형을 가져옵니다.
_perform_enrich_action() 엔티티에서 기본 보강 로직을 실행합니다.

비공개 메서드

이러한 내부 메서드는 보강 논리의 오케스트레이션을 처리하며 수정해서는 안 됩니다.

비공개 메서드
_perform_action()

이 메서드는 다른 추상 메서드를 더 많은 OOTB 보강 로직과 결합하고 start() 메서드에서 사용할 수 있도록 상위 클래스에 전달합니다.

데이터 모델 모듈

이 모듈은 교차 통합 객체, 열거형, 상수에 대한 구조화된 정의를 제공합니다.

class TIPCommon.base.action.data_models.ActionParamType

클래스 TIPCommon.base.action.data_models.ActionParamType(value)

기본: 열거형

ActionParamType은 작업 스크립트 매개변수에 지원되는 UI 데이터 유형을 정의합니다.

상수

상수
BOOLEAN1
CASE_PRIORITIES7
CLOSE_CASE_REASONS5
CLOSE_ROOT_CAUSE6
CODE20
CONTENT11
DDL15
EMAIL_CONTENT10
ENTITY_TYPE13
MULTI_VALUES14
NULL-1
PASSWORD12
PLAYBOOK_NAME2
STAGE4
STRING0
USER3

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)

기본: object

이 모델은 케이스 월에 업로드할 스크립트 결과 첨부파일을 나타냅니다.

매개변수

첨부파일 객체를 초기화하여 메타데이터와 케이스에 업로드할 바이너리 데이터를 정의하려면 다음 매개변수가 필요합니다.

매개변수
filename 케이스 결과 내에 만들 파일의 이름입니다.
file_contents 파일의 콘텐츠를 나타내는 원시 바이너리 데이터입니다.
title 플랫폼 UI에 표시되는 첨부파일의 표시 제목입니다. 기본값은 'Script Result Attachment'입니다.

속성

다음 속성은 작업 스크립트로 생성된 파일 첨부파일의 메타데이터와 바이너리 콘텐츠를 정의합니다.

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

기본: object

이 클래스는 케이스와 연결된 변경할 수 없는 첨부파일을 나타냅니다.

속성

다음 속성은 플랫폼 내에서 케이스와 이미 연결된 첨부파일의 특정 메타데이터를 나타냅니다.

속성
attachment_id

int

첨부파일의 고유 플랫폼 할당 식별자입니다.

attachment_type

str

첨부파일의 분류 또는 MIME 유형입니다 (예: txt, csv, json).

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)

기본: object

CaseComment는 케이스 또는 알림과 연결된 댓글의 변경할 수 없는 레코드를 나타내며, 작성자 세부정보와 감사 타임스탬프를 캡처합니다.

속성

다음 속성은 케이스 댓글의 콘텐츠 및 관리 메타데이터를 정의합니다.

속성
comment

str

댓글의 기본 텍스트 콘텐츠입니다.

comment_for_client

str | None

클라이언트 공개 상태에 맞게 조정된 댓글의 선택적 버전입니다.

modification_time_unix_time_in_ms_for_client

int

comment_for_client의 수정 타임스탬프(Unix 밀리초)입니다.

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

댓글의 고유한 플랫폼 할당 정수 식별자입니다.

comment_type

int

댓글의 유형 분류입니다.

case_id

int

이 댓글과 연결된 케이스의 ID입니다.

is_favorite

bool

댓글이 즐겨찾기로 고정되었는지 여부를 나타냅니다.

modification_time_unix_time_in_ms

int

댓글의 마지막 수정 시간입니다(유닉스 밀리초, 예: 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)

기본: object

CaseInsight는 케이스 월에 표시되는 변경 불가능한 구조화된 발견 항목 또는 알림 요약을 나타냅니다.

속성

다음 속성은 플랫폼 내에서 통계가 분류되고 분석가에게 표시되는 방식을 관리합니다.

속성
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 속성의 데이터 유형 분류입니다.

    additional_data_title

    str | None

    보조 데이터 블록의 표시 제목입니다.

    class TIPCommon.base.action.data_models.CasePriority

    클래스 TIPCommon.base.action.data_models.CasePriority(value)

    기본: 열거형

    CasePriority는 플랫폼 내 케이스에 할당된 정수 기반 심각도 수준을 정의합니다.

    상수

    상수
    CRITICAL100
    HIGH80
    INFORMATIONAL0
    LOW40
    MEDIUM60

    class TIPCommon.base.action.data_models.CaseStage

    클래스 TIPCommon.base.action.data_models.CaseStage(value)

    기본: 열거형

    CaseStage는 케이스가 수명 주기 동안 전환될 수 있는 운영 단계를 지정합니다.

    상수

    상수
    ASSESSMENT'평가'
    IMPROVEMENT'개선'
    INCIDENT'인시던트'
    INVESTIGATION'조사'
    RESEARCH'조사'
    TRIAGE'Triage'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses

    클래스 TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses(value)

    기본: 열거형

    CloseCaseOrAlertInconclusiveRootCauses는 명확한 결정을 내릴 수 없는 시나리오의 근본 원인 옵션을 제공합니다.

    상수

    상수
    NO_CLEAR_CONCLUSION'명확한 결론이 없음'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses

    클래스 TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses(value)

    기본: 열거형

    CloseCaseOrAlertMaintenanceRootCauses는 예약된 테스트, 시스템 유지보수 또는 규칙 개발과 관련된 근본 원인을 정의합니다.

    상수

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

    기본: 열거형

    CloseCaseOrAlertMaliciousRootCauses는 확인된 위협, 인프라 문제 또는 시스템 오작동에 대한 구체적인 카테고리를 제공합니다.

    상수

    상수
    EXTERNAL_ATTACK'외부 공격'
    INFRASTRUCTURE_ISSUE'인프라 문제'
    IRRELEVANT_TCP_UDP_PORT'관련 없는 TCP/UDP 포트'
    MISCONFIGURED_SYSTEM'잘못 구성된 시스템'
    OTHER'기타'
    SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION '유사한 케이스가 이미 조사 중입니다'
    SYSTEM_APPLICATION_MALFUNCTION '시스템/애플리케이션 오작동'
    SYSTEM_CLOCKED_THE_ATTACK'시스템에서 공격을 차단함'
    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)

    기본: 열거형

    CloseCaseOrAlertNotMaliciousRootCauses는 위협이 되지 않는 무해한 활동, 합법적인 조치 또는 오류의 카테고리를 정의합니다.

    상수

    상수
    EMPLOYEE_ERROR'직원 오류'
    HUMAN_ERROR'사람의 실수'
    LAB_TEST'실험실 테스트'
    LEGIT_ACTION'유효한 작업'
    MISCONFIGURED_SYSTEM'잘못 구성된 시스템'
    NONE'None'
    NORMAL_BEHAVIOR'정상적인 동작'
    OTHER'기타'
    PENETRATION_TEST'침투 테스트'
    RULE_UNDER_CONSTRUCTION'공사 중인 규칙'
    SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION '유사한 케이스가 이미 조사 중입니다'
    UNKNOWN'Unknown'
    USER_MISTAKE'사용자 실수'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons

    클래스 TIPCommon.base.action.data_models.CloseCaseOrAlertReasons(value)

    기본: 열거형

    CloseCaseOrAlertReasons는 케이스 또는 알림이 종료되는 이유에 관한 표준화된 상위 수준 카테고리를 제공합니다.

    상수

    상수
    MALICIOUS0
    NOT_MALICIOUS1
    MAINTENANCE2
    INCONCLUSIVE3

    class TIPCommon.base.action.data_models.Content

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

    기본: object

    Content는 케이스 벽에 추가하기 위해 스크립트로 생성된 변경 불가능한 텍스트 결과를 나타냅니다.

    속성

    다음 속성은 플랫폼의 케이스 결과 내에 표시되는 텍스트 또는 마크다운 기반 콘텐츠를 정의합니다.

    속성
    title

    str | None

    스크립트 결과 UI에 표시되는 콘텐츠 블록의 표시 제목입니다.

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

    기본: object

    DataTable은 케이스 결과에 구조화된 표로 렌더링된 CSV 형식 문자열 목록을 나타냅니다.

    속성

    다음 속성은 작업 결과 세트 내에서 표 형식 데이터의 구조와 표시를 정의합니다.

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

    기본: object

    EntityInsight는 항목과 연결된 특정 결과를 만드는 데 사용되며, 항목의 세부정보 뷰 내에 표시되는 경우가 많습니다.

    속성

    다음 속성은 항목과 통합 스크립트에서 생성된 결과 간의 관계를 정의합니다.

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

    기본: 열거형

    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)

    기본: 열거형

    ExecutionState는 작업의 성공 또는 실패를 결정하기 위해 플랫폼에 반환되는 최종 상태 표시기를 나타냅니다.

    상수

    상수
    COMPLETED0
    IN_PROGRESS1
    FAILED2
    TIMED_OUT3

    class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter

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

    기본: object

    FullDetailsConfigurationParameter는 API에서 가져온 전체 메타데이터와 함께 일반 통합 구성 매개변수를 캡슐화합니다.

    속성

    다음 속성은 매개변수 메타데이터, 식별, 구성 제약 조건을 관리합니다.

    table> Attributes 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, ...)

    기본: object

    HTMLReport는 케이스 결과에 추가할 맞춤 HTML 기반 시각화를 나타냅니다.

    속성

    속성
    title

    str | None

    케이스 월에 표시되는 보고서 제목입니다.

    report_name

    str

    보고서의 내부 식별자 또는 파일 이름입니다.

    report_contents

    str

    보고서의 콘텐츠를 정의하는 원시 HTML 문자열입니다.

    class TIPCommon.base.action.data_models.IntegrationParamType

    클래스 TIPCommon.base.action.data_models.IntegrationParamType(value)

    기본: 열거형

    IntegrationParamType은 통합 구성 설정에 지원되는 데이터 유형을 지정합니다.

    상수

    상수
    NULL-1
    BOOLEAN0
    INTEGER1
    STRING2
    PASSWORD3
    IP4
    EMAIL8

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

    기본: object

    Link는 케이스 월에 하이퍼링크로 표시할 외부 URL 결과를 나타냅니다.

    속성

    속성

    str | None

    하이퍼링크의 표시 텍스트입니다.

    str

    링크의 타겟 URL입니다.

    class TIPCommon.base.action.data_models.Markdown

    클래스 TIPCommon.base.action.data_models.Markdown(markdown_name: str, markdown_content: str, ...)

    기본: object

    마크다운은 마크다운 문법을 사용하여 서식 있는 텍스트 형식 콘텐츠를 반환하는 구조화된 방법을 제공합니다.

    속성

    속성
    title

    str | None

    마크다운 블록의 표시 제목입니다.

    markdown_content

    str

    마크다운 문법으로 형식이 지정된 콘텐츠입니다.

    markdown_name

    str

    이 마크다운 결과에 할당된 고유 이름입니다.

    class TIPCommon.base.action.data_models.ScriptParameter

    클래스 TIPCommon.base.action.data_models.ScriptParameter(input_dict: dict[str, Any])

    기본: object

    ScriptParameter는 작업 스크립트의 단일 입력 매개변수를 나타내며, 플레이북 또는 수동 작업 내에서 값, 기본 상태, 표시 상태를 관리합니다.

    속성

    다음 속성은 개별 스크립트 매개변수의 메타데이터, 값 우선순위, 데이터 제약 조건을 관리합니다.

    속성
    full_dict

    dict[str, Any]

    API 응답에서 수신된 원래 사전입니다.

    id

    int | None

    매개변수의 고유한 플랫폼 할당 식별자입니다.

    creation_time

    int

    매개변수가 생성된 시간을 나타내는 타임스탬프(Unix 밀리초)입니다.

    modification_time

    int

    매개변수가 마지막으로 수정된 시간을 나타내는 타임스탬프입니다(Unix 밀리초).

    custom_action_id

    int | None

    이 매개변수와 연결된 맞춤 작업의 식별자입니다.

    is_mandatory

    bool

    작업 스크립트가 실행되려면 매개변수를 제공해야 하는지 여부를 나타냅니다.

    default_value

    Any

    매개변수의 기본값입니다.

    이 값은 플레이북 실행에서 value보다 우선합니다.

    description

    str | None

    매개변수 목적에 대한 자세한 설명입니다.

    name

    str | None

    매개변수의 내부 식별자 이름입니다.

    value

    Any

    매개변수의 현재 값입니다.

    이 값은 수동 작업 실행 시 default_value보다 우선합니다.

    type

    ActionParamType

    매개변수의 데이터 유형 분류입니다.

    optional_values

    list

    드롭다운 목록 (DDL) 매개변수 유형에 제공되는 선택적 값 목록입니다.

    스크립트 실행 결과

    다음 클래스와 함수는 작업 및 커넥터에서 플랫폼으로 데이터를 반환하기 위한 표준화된 구조를 정의합니다.

    class TIPCommon.base.data_models.ActionJsonOutput

    클래스 TIPCommon.base.data_models.ActionJsonOutput(title='JsonResult', content='', type=None, is_for_entity=False, json_result=None)

    기본: object

    ActionJsonOutput은 작업의 구조화된 JSON 페이로드를 나타내며, 이를 통해 구체적인 분류 및 엔티티 수준 타겟팅이 가능합니다.

    속성

    속성
    title

    str

    JSON 결과 블록의 표시 제목입니다.

    content

    str

    JSON 데이터와 함께 제공되는 텍스트 콘텐츠 또는 요약입니다.

    type

    str | None

    JSON 출력의 분류 유형(선택사항)입니다.

    is_for_entity

    bool

    JSON 결과가 항목과 구체적으로 연결되어 있는지 여부를 나타냅니다.

    json_result

    JSON | None

    실제 구조화된 JSON 데이터 페이로드입니다.

    class TIPCommon.base.data_models.ActionOutput

    클래스 TIPCommon.base.data_models.ActionOutput(output_message, result_value, execution_state, json_output, debug_output='')

    기본: object

    ActionOutput은 사람이 읽을 수 있는 메시지, 상태, 구조화된 JSON을 결합하여 작업의 전체 결과 구조를 캡슐화합니다.

    속성

    속성
    output_message

    str

    분석가에게 표시되는 기본 요약 메시지입니다.

    result_value

    str | bool

    작업의 논리적 결과 (예: 성공/실패)입니다.

    execution_state

    ExecutionState

    작업 실행의 최종 수명 주기 상태입니다.

    json_output

    ActionJsonOutput | None

    작업의 구조화된 JSON 결과입니다.

    debug_output

    str

    문제 해결을 위한 선택적 진단 정보입니다.

    class TIPCommon.base.data_models.ConnectorJsonOutput

    클래스 TIPCommon.base.data_models.ConnectorJsonOutput(alerts, overflow_alerts=<factory>, log_items=<factory>, log_rows=<factory>, variables=<factory>)

    기본: object

    ConnectorJsonOutput은 수집된 알림, 오버플로 세부정보, 실행 로그 등 커넥터에서 반환된 구조화된 데이터를 정의합니다.

    속성

    속성
    alerts

    list[AlertInfo | CaseInfo]

    성공적으로 수집된 알림 또는 케이스 객체의 목록입니다.

    overflow_alerts

    list[OverflowAlertDetails]

    수집 한도를 초과하여 오버플로로 처리된 알림 목록입니다.

    log_items

    list

    커넥터 실행 중에 생성된 구조화된 로그 항목 목록입니다.

    variables

    dict

    커넥터 실행 간에 유지되는 상태 변수의 사전입니다.

    class TIPCommon.base.data_models.ConnectorOutput

    클래스 TIPCommon.base.data_models.ConnectorOutput(json_output, debug_output='')

    기본: object

    ConnectorOutput은 구조화된 JSON 데이터와 선택적 디버그 문자열을 래핑하여 커넥터 실행 결과를 위한 최상위 컨테이너를 나타냅니다.

    속성

    속성
    json_output

    ConnectorJsonOutput | None

    수집 및 로그 데이터가 포함된 구조화된 JSON 결과입니다.

    debug_output

    str

    내부 진단 추적을 위한 선택적 디버깅 문자열입니다.

    TIPCommon.base.data_models.alert_info_from_json

    TIPCommon.base.data_models.alert_info_from_json(json_) → AlertInfo

    속성 사전의 파싱을 통해 AlertInfo 객체를 만듭니다. 일반적으로 데이터 변환 또는 테스트 중에 알림 객체를 재구성하는 데 사용됩니다.

    반환

    제공된 JSON 사전에서 정의된 속성을 기반으로 완전히 초기화된 AlertInfo 객체를 반환합니다.

    인터페이스 모듈

    이 모듈은 기본 스크립트 구성요소의 표준 추상 계약을 정의합니다.

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

    authenticate_session(params: AuthParams) → None

    제공된 params (예: dataclass, TypedDict, namedtuple)을 사용하여 self.session 속성을 인증합니다.

    세션 객체가 초기화된 후 세션과 연결된 서비스와의 인증을 설정하려면 이 메서드를 사용하세요.

    class TIPCommon.base.interfaces.logger.Logger

    클래스 TIPCommon.base.interfaces.logger.Logger

    기본: ABC

    마켓 스크립트가 표준화된 진단 출력을 제공하도록 하는 Logger 인터페이스

    추상 메서드

    다양한 로깅 심각도 수준과 예외 보고를 처리하려면 다음 메서드를 구현해야 합니다.

    추상 메서드
    debug()

    debug(msg: str, *args, **kwargs) → None

    DEBUG 심각도 수준으로 메시지를 로깅합니다.

    info()

    info(msg: str, *args, **kwargs) → None

    INFO 심각도 수준으로 메시지를 로깅합니다.

    warn()

    warn(warning_msg: str, *args, **kwargs) → None

    WARNING 심각도 수준으로 메시지를 로깅합니다.

    error()

    error(error_msg: str, *args, **kwargs) → None

    ERROR 심각도 수준으로 메시지를 로깅합니다.

    exception()

    exception(ex: Exception, *args, **kwargs) → None

    예외 스택 트레이스를 포함하여 심각도 수준이 ERROR인 메시지를 로깅합니다.

    class TIPCommon.base.interfaces.session.Session

    클래스 TIPCommon.base.interfaces.session.Session

    기본: ABC, Generic[_R]

    세션 인터페이스는 다양한 HTTP 라이브러리를 사용하여 API 세션을 관리하기 위한 일관된 청사진을 제공합니다.

    속성

    다음 속성은 설정된 HTTP 통신 세션의 구성 및 보안 설정을 관리합니다.

    속성
    headers

    dict

    세션의 각 요청과 함께 전송할 HTTP 헤더가 포함된 사전입니다.

    verify

    bool

    세션에서 서버의 SSL 인증서를 확인해야 하는지 여부를 나타내는 불리언입니다.

    추상 메서드

    다음 추상 메서드는 서브클래스가 구현해야 하는 표준 HTTP 동사와 기본 요청 디스패처를 정의합니다.

    추상 메서드
    get()

    get(url: str, *args, **kwargs) → _R

    HTTP GET 요청을 사용하여 서버에서 리소스를 가져옵니다.

    post()

    post(url: str, *args, **kwargs) → _R

    HTTP POST 요청을 사용하여 리소스를 만들기 위해 서버에 데이터를 전송합니다.

    put()

    put(url: str, *args, **kwargs) → _R

    HTTP PUT 요청을 사용하여 서버에서 리소스를 업데이트하거나 만듭니다.

    patch()

    patch(url: str, *args, **kwargs) → _R

    HTTP PATCH 요청을 사용하여 리소스에 부분 수정사항을 적용합니다.

    delete()

    delete(url: str, *args, **kwargs) → _R

    HTTP DELETE 요청을 사용하여 서버에서 지정된 리소스를 삭제합니다.

    request()

    request(method: str, *args, **kwargs) → _R

    지정된 메서드로 HTTP 요청을 실행하는 데 사용되는 핵심 요청 디스패처입니다.

    작업 모듈

    이는 플랫폼 내에서 정의된 일정에 따라 실행되는 백그라운드 처리 스크립트의 프레임워크를 제공합니다.

    class TIPCommon.base.job.base_job.Job

    클래스 TIPCommon.base.job.base_job.Job(name: str)

    기본: ABC, Generic[ApiClient]

    작업은 데이터 동기화 또는 상태 확인과 같은 독립적인 백그라운드 작업을 실행하는 예약된 작업을 위해 설계된 추상 기본 클래스입니다.

    매개변수

    다음 매개변수는 작업을 초기화하고 플랫폼 내에 등록하는 데 필요합니다.

    매개변수
    name 작업 스크립트를 등록하고 식별하는 데 사용되는 고유 식별자입니다.

    속성

    다음 속성은 작업의 실행 컨텍스트, 구성, 통합 서비스 클라이언트에 대한 액세스를 제공합니다.

    속성
    api_client

    ApiClient | None

    외부 서비스와 상호작용하기 위해 초기화된 API 클라이언트 또는 클라이언트 모음을 제공합니다.

    error_msg

    str

    진단 보고를 위해 작업 실행 중에 발생한 오류 메시지를 저장합니다.

    job_start_time

    int

    작업 실행이 시작된 시간을 나타내는 Unix 타임스탬프입니다.

    logger

    ScriptLogger

    실행 중에 정보, 경고, 오류 데이터를 캡처하기 위한 로깅 인터페이스를 제공합니다.

    name

    str

    등록된 작업 스크립트의 이름입니다.

    params

    Container

    작업 인스턴스에 제공된 특정 구성 매개변수를 보유하는 컨테이너입니다.

    soar_job

    SiemplifyJob

    기본 플랫폼 작업 인스턴스를 나타내며 하위 수준 실행 후크에 대한 액세스를 제공합니다.

    메서드

    다음 메서드는 작업의 오케스트레이션 및 실행 수명 주기를 관리합니다.

    메서드
    start()

    서명: start(**kwargs) → None

    작업의 실행 로직을 트리거하는 기본 진입점입니다.

    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

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

    외부 서비스 상호작용에 사용되는 초기화된 API 클라이언트입니다.

    class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

    클래스 TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple(success_list, failure_list)

    기본: 튜플

    SuccessFailureTuple은 일괄 작업 작업의 결과를 성공과 실패로 분류하는 데 사용되는 특수 명명된 튜플입니다.

    속성

    속성
    success_list

    list

    성공적으로 처리된 식별자 또는 객체가 포함된 목록입니다.

    failure_list

    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

    str

    유효성을 검사할 매개변수의 이름 또는 키입니다.

    param_csv_value

    str | None

    작업 구성에 제공된 원시 CSV 문자열입니다. None인 경우 빈 목록을 반환합니다.

    발생 오류

    입력 문자열에 잘못된 수의 큰따옴표, 불일치하는 따옴표가 포함되어 있거나 CSV 내 개별 값이 유효성 검사에 실패하면 ValueError 예외가 발생합니다.

    반환

    입력에서 파싱된 고유하고 검증된 문자열의 list[str] 목록입니다. 유효한 값이 식별되지 않거나 입력이 None인 경우 빈 목록이 반환됩니다.

    class TIPCommon.base.job.data_models.JobParameter

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

    기본: object

    JobParameter는 작업 스크립트의 개별 구성 매개변수를 나타내며 메타데이터와 값 상태를 관리합니다.

    속성

    속성
    full_dict

    dict[str, Any]

    작업 초기화 중에 API에서 수신한 원래 사전입니다.

    id

    int | None

    작업 매개변수의 고유한 플랫폼 할당 식별자입니다.

    is_mandatory

    bool

    작업을 실행하기 위해 매개변수를 제공해야 하는지 여부를 나타냅니다.

    name

    str | None

    매개변수의 내부 식별자 이름입니다.

    type

    ActionParamType

    매개변수의 데이터 유형 분류입니다.

    value

    Any

    파라미터의 기본값입니다. 이 값은 일반적으로 자동 작업 실행에서 우선순위가 지정됩니다.

    도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.