TIPCommon.base

Modul TIPCommon.base berfungsi sebagai referensi teknis dasar untuk pengembangan integrasi dalam Google SecOps, yang menyediakan logika inti untuk tindakan, tugas latar belakang, dan normalisasi data lintas platform.

Penguraian data tindakan

Bagian ini berisi fungsi utilitas yang diperlukan untuk mengurai data kasus dari respons API mentah menjadi objek terstruktur untuk digunakan dalam tugas otomatisasi.

TIPCommon.base.action.action_parser.parse_case_attachment

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

Utilitas ini mengonversi data lampiran JSON mentah dari respons API menjadi objek CaseAttachment yang terstruktur.

Parameter

Parameter
attachment Data JSON mentah lampiran seperti yang diambil dari respons API.

TIPCommon.base.action.action_parser.parse_case_comment

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

Fungsi ini mengurai data komentar JSON mentah menjadi objek CaseComment untuk memudahkan akses ke metadata komentar.

Parameter

Parameter
comment Data JSON mentah komentar seperti yang diambil dari respons API.

class TIPCommon.base.action.base_action.Action

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

Basis: ABC, Generic[ApiClient]

Class dasar Action menyediakan infrastruktur terpadu untuk pengembangan otomatisasi, termasuk pengelolaan properti dan alur eksekusi umum.

Parameter

Parameter
name ID untuk skrip tindakan.

Atribut

Atribut berikut mengelola status internal tindakan dan memberikan akses ke resource SDK dan klien integrasi.

Atribut
_soar_action

SiemplifyAction

Objek SiemplifyAction SDK.

_api_client

Apiable

Klien API integrasi.

_name

str

Nama skrip yang menggunakan tindakan ini.

_action_start_time

int

Waktu mulai tindakan dalam Unix.

_logger

SiemplifyLogger

Objek logger yang digunakan untuk mencatat tindakan.

_params

Container

Penampung parameter untuk tindakan ini.

global_context

dict

Kamus untuk menyimpan konteks, jika diperlukan.

_entity_types

list[EntityTypesEnum]

Jenis entitas yang didukung oleh tindakan.

_entities_to_update

list[Entity]

Entitas yang akan diperbarui saat tindakan berakhir.

json_results

JSON

Hasil JSON tindakan.

_attachments

list[Attachment]

Lampiran hasil kasus yang akan ditambahkan.

_contents

list[Content]

Konten hasil kasus yang akan ditambahkan.

_data_tables

list[DataTable]

Tabel data hasil kasus yang akan ditambahkan.

_html_reports

list[HTMLReport]

Laporan HTML hasil kasus yang akan ditambahkan.

list[Link]

Link hasil kasus yang akan ditambahkan.

_markdowns

list[Markdown]

Markdown hasil kasus yang akan ditambahkan.

_entity_insights

list[EntityInsight]

Insight entity kasus yang akan ditambahkan.

_case_insights

list[CaseInsight]

Insight kasus yang akan ditambahkan.

_execution_state

ExecutionState

Indikator status eksekusi akhir tindakan.

_result_value

bool

Nilai hasil akhir tindakan.

_output_message

str

Pesan output tindakan saat berhasil.

_error_output_message

str

Pesan output tindakan saat gagal.

Metode

Metode standar yang digunakan untuk mengelola siklus proses dan pemformatan output skrip tindakan.

- run() Menjalankan eksekusi tindakan.
- _get_adjusted_json_results() Menyesuaikan hasil JSON ke struktur tertentu.

Metode abstrak

Developer harus mengganti metode ini untuk menentukan logika unik untuk tindakan kustom.

Metode abstrak
_validate_params() Memvalidasi parameter untuk tindakan ini.
_init_api_clients() Menginisialisasi klien API tindakan.
_perform_action() Menjalankan logika utama tindakan.

Metode tambahan

Metode opsional ini dipicu selama fase tertentu dari siklus proses eksekusi tindakan untuk menangani pemberitahuan atau membersihkan resource.

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

Metode wrapper SDK

Metode ini menyediakan akses mudah ke SDK yang mendasarinya, sehingga memungkinkan tindakan berinteraksi dengan kasus, pemberitahuan, dan konfigurasi platform.

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

Contoh penerapan

Contoh berikut menunjukkan cara mengimplementasikan tindakan kustom dengan mewarisi dari class dasar 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()

Properti

Properti berikut memberikan akses hanya baca atau terkelola ke metadata tindakan, hasil, dan objek SDK.

action_start_time

property action_start_time: int

Menampilkan int yang merepresentasikan waktu mulai tindakan dalam format Unix.

api_client

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

Menampilkan objek Apiable yang merepresentasikan klien API yang dikonfigurasi untuk integrasi.

lampiran

property attachments: list[Attachment]

Menampilkan daftar objek Attachment yang mewakili lampiran hasil kasus yang terkait dengan tindakan ini. Semua lampiran dalam daftar ini dikirim ke hasil kasus secara default.

case_insights

property case_insights: list[CaseInsight]

Menampilkan daftar objek CaseInsight yang merepresentasikan temuan tingkat tinggi yang terkait dengan tindakan ini. Semua insight kasus dalam daftar ini dikirim ke hasil kasus secara default.

Isi

property contents: list[Content]

Menampilkan daftar objek Content yang merepresentasikan hasil teks untuk kasus tersebut. Semua konten dalam daftar ini dikirim ke hasil kasus secara default.

data_tables

property data_tables: list[DataTable]

Menampilkan daftar objek DataTable yang merepresentasikan insight data tabel untuk kasus ini. Semua tabel data dalam daftar ini dikirim ke hasil kasus secara default.

entities_to_update

property entities_to_update: list[DomainEntityInfo]

Menampilkan daftar objek Entity yang akan diperbarui di platform setelah tindakan selesai.

entity_insights

property entity_insights: list[EntityInsight]

Menampilkan daftar objek EntityInsight yang mewakili temuan yang terkait dengan entitas tertentu. Semua insight entitas dalam daftar ini dikirim ke hasil kasus secara default.

entity_types

property entity_types: list[EntityTypesEnum]

Menampilkan daftar objek EntityTypesEnum yang merepresentasikan jenis entity yang dirancang untuk diproses oleh tindakan. Jika tindakan dijalankan pada entitas, tindakan tersebut hanya memproses jenis yang muncul dalam daftar ini.

error_output_message

property error_output_message: str

Mendapatkan atau menetapkan pesan yang ditampilkan di platform jika terjadi kegagalan eksekusi. Nilai defaultnya adalah Action ACTION_NAME failed.

execution_state

property execution_state: ExecutionState

Menampilkan objek ExecutionState yang merepresentasikan indikator status pemrosesan akhir. Status yang mungkin adalah:

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

global_context

global_context: dict

Kamus yang digunakan untuk menyimpan dan mengambil informasi konteks selama eksekusi tindakan.

html_reports

property html_reports: list[HTMLReport]

Menampilkan daftar objek HTMLReport yang merepresentasikan laporan visual untuk hasil kasus. Semua laporan HTML dalam daftar ini dikirim ke hasil kasus secara default.

is_first_run

property is_first_run: bool

Menampilkan true jika ini adalah eksekusi awal tindakan, atau false jika tidak.

json_results

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

Menampilkan hasil JSON yang diformat untuk ditampilkan di dinding kasus dan digunakan dalam logika playbook hilir.

property links: list[Link]

Menampilkan daftar objek Link yang merepresentasikan URL referensi eksternal untuk hasil kasus. Semua link dalam daftar ini dikirim ke hasil kasus secara default.

logger

property logger: NewLineLogger

Menampilkan instance NewLineLogger yang digunakan untuk logging khusus skrip.

markdown

property markdowns: list[Markdown]

Menampilkan daftar objek Markdown yang merepresentasikan insight teks yang diformat. Semua markdown dalam daftar ini dikirim ke hasil kasus secara default.

nama

property name: str

Menampilkan nama string skrip tindakan.

output_message

property output_message: str

Mendapatkan atau menetapkan pesan yang ditampilkan di platform yang merangkum tindakan yang berhasil dijalankan.

params

property params: Container

Menampilkan objek Container yang menjelaskan parameter input tindakan, dengan setiap parameter diekspos sebagai atribut snake_case.

result_value

property result_value: bool

Mendapatkan atau menetapkan indikator keberhasilan yang ditampilkan ke platform.

  • True: Tindakan berhasil.
  • False: Tindakan gagal.

run

run(**kwargs)

Metode standar untuk memicu logika eksekusi tindakan.

soar_action

property soar_action: SiemplifyAction

Menampilkan objek SiemplifyAction SDK pokok yang digunakan untuk interaksi platform langsung.

class TIPCommon.base.action.base_enrich_action.EnrichAction

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

Dasar: Tindakan

EnrichAction adalah class dasar khusus yang dirancang untuk tindakan yang memperbarui properti entitas dengan data eksternal.

Parameter

Parameter berikut diperlukan untuk menginisialisasi tindakan pengayaan dan mendaftarkannya dalam platform.

Parameter
name ID unik untuk skrip tindakan pengayaan.

Atribut

Atribut berikut mengelola data yang digunakan selama iterasi entitas dan menentukan konten yang disertakan dalam hasil output tindakan.

Atribut
enrichment_data

dict

Data pengayaan untuk entity saat ini di setiap iterasi entity. Di akhir setiap iterasi, atribut additional_properties entitas diperbarui dengan self.enrichment_data, yang berarti nilai ini ditetapkan setiap kali dengan nilai baru.

entity_results

Any

Hasil entity yang disertakan dalam output JSON untuk objek ini.

global_context

dict

Kamus yang digunakan untuk menyimpan dan membagikan data konteks di berbagai fase eksekusi tindakan pengayaan.

Metode abstrak

Metode abstrak berikut harus diterapkan di subclass untuk menentukan jenis entity dan logika pengayaan tertentu untuk tindakan.

Metode abstrak
_get_entity_types() Mendapatkan jenis entitas yang menjalankan tindakan.
_perform_enrich_action() Lakukan logika pengayaan utama pada entity.

Metode pribadi

Metode internal ini menangani orkestrasi logika pengayaan dan tidak boleh diubah.

Metode pribadi
_perform_action()

Metode ini menggabungkan metode abstrak lainnya dengan logika pengayaan OOTB lainnya dan meneruskannya ke class induk untuk digunakan dalam metode start().

Modul Model Data

Modul ini memberikan definisi terstruktur untuk objek, enum, dan konstanta integrasi silang.

class TIPCommon.base.action.data_models.ActionParamType

class TIPCommon.base.action.data_models.ActionParamType(value)

Dasar: Enum

ActionParamType menentukan jenis data UI yang didukung untuk parameter skrip tindakan.

Konstanta

KonstantaNilai
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

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

Dasar: object

Model ini merepresentasikan lampiran hasil skrip yang akan diupload ke dinding kasus.

Parameter

Parameter berikut diperlukan untuk menginisialisasi objek lampiran, yang menentukan metadata dan data biner yang akan diupload ke kasus.

Parameter
filename Nama file yang akan dibuat dalam hasil kasus.
file_contents Data biner mentah yang merepresentasikan konten file.
title Judul tampilan untuk lampiran seperti yang muncul di UI platform; defaultnya adalah 'Script Result Attachment'.

Atribut

Atribut berikut menentukan metadata dan konten biner lampiran file yang dihasilkan oleh skrip tindakan.

Atribut
title

str | None

Judul lampiran yang ditampilkan di antarmuka platform.

filename

str

Nama spesifik file yang akan dibuat.

file_contents

bytes

Konten biner mentah dari file lampiran.

additional_data

dict | None

Kamus yang berisi data tambahan yang terkait dengan lampiran.

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)

Dasar: object

Class ini merepresentasikan lampiran tetap yang terkait dengan kasus.

Atribut

Atribut berikut mewakili metadata spesifik lampiran yang telah dikaitkan dengan kasus dalam platform.

Atribut
attachment_id

int

ID unik yang ditetapkan platform untuk lampiran.

attachment_type

str

Klasifikasi atau jenis MIME lampiran (misalnya, txt, csv, atau json).

description

str

Deskripsi yang ditentukan pengguna atau dibuat sistem tentang konten lampiran.

is_favorite

bool

Menunjukkan apakah lampiran telah ditandai sebagai favorit untuk akses cepat di dinding kasus.

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)

Dasar: object

CaseComment merepresentasikan catatan komentar yang tidak dapat diubah yang terkait dengan kasus atau pemberitahuan, yang mencatat detail kreator dan stempel waktu audit.

Atribut

Atribut berikut menentukan konten dan metadata administratif komentar kasus.

Atribut
comment

str

Konten teks utama komentar.

comment_for_client

str | None

Versi komentar opsional yang disesuaikan untuk visibilitas klien.

modification_time_unix_time_in_ms_for_client

int

Stempel waktu modifikasi untuk comment_for_client dalam milidetik Unix.

last_editor

str

ID editor terakhir, seperti 77bdb7a4-8484-481d-9482-2449e33f9518.

last_editor_full_name

str

Nama tampilan lengkap pengguna yang terakhir mengedit komentar, seperti admin admin.

is_deleted

bool

Menunjukkan apakah komentar telah ditandai sebagai dihapus.

creator_user_id

str

ID pengguna pembuat, seperti 77bdb7a4-8484-481d-9482-2449e33f9518.

creator_full_name

str

Nama tampilan lengkap kreator, seperti System.

comment_id

int

ID bilangan bulat unik yang ditetapkan platform untuk komentar.

comment_type

int

Klasifikasi jenis komentar.

case_id

int

ID kasus yang terkait dengan komentar ini.

is_favorite

bool

Menunjukkan apakah komentar disematkan sebagai favorit.

modification_time_unix_time_in_ms

int

Waktu modifikasi terakhir komentar dalam milidetik Unix, seperti 1686040471269.

creation_time_unix_time_in_ms

int

Waktu pembuatan komentar dalam milidetik Unix, seperti 1686040471269.

alert_identifier

str

ID spesifik pemberitahuan yang terkait dengan komentar, seperti 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)

Dasar: object

CaseInsight merepresentasikan ringkasan temuan atau pemberitahuan terstruktur yang tidak dapat diubah yang ditampilkan di dinding kasus.

Atribut

Atribut berikut mengelola cara pengelompokan dan penyajian insight kepada analis dalam platform.

Atribut
title

str

Judul yang ditampilkan untuk insight di repositori kasus.

triggered_by

str

Nama integrasi atau pengguna yang menghasilkan insight.

content

str

Isi pesan atau temuan insight yang mendetail.

severity

InsightSeverity

Tingkat urgensi insight.

Kemungkinan nilainya adalah sebagai berikut:

  • info
  • warning
  • error
  • insight_type

    InsightType

    Mengategorikan insight.

    Kemungkinan nilainya adalah sebagai berikut:

  • general
  • entity
  • entity_identifier

    str | None

    ID spesifik untuk entitas jika insight berfokus pada entitas.

    additional_data

    Any | None

    Data tambahan yang terkait dengan insight.

    additional_data_type

    Any | None

    Klasifikasi jenis data untuk atribut additional_data.

    additional_data_title

    str | None

    Judul tampilan untuk blok data tambahan.

    class TIPCommon.base.action.data_models.CasePriority

    class TIPCommon.base.action.data_models.CasePriority(value)

    Dasar: Enum

    CasePriority menentukan tingkat keparahan berbasis bilangan bulat yang ditetapkan ke kasus dalam platform.

    Konstanta

    Konstanta Nilai
    CRITICAL100
    HIGH80
    INFORMATIONAL0
    LOW40
    MEDIUM60

    class TIPCommon.base.action.data_models.CaseStage

    class TIPCommon.base.action.data_models.CaseStage(value)

    Dasar: Enum

    CaseStage menentukan fase operasional yang dapat dilalui kasus selama siklus prosesnya.

    Konstanta

    Konstanta Nilai
    ASSESSMENT'Penilaian'
    IMPROVEMENT'Peningkatan'
    INCIDENT'Insiden'
    INVESTIGATION'Investigasi'
    RESEARCH'Riset'
    TRIAGE'Triase'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses

    class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses(value)

    Dasar: Enum

    CloseCaseOrAlertInconclusiveRootCauses memberikan opsi penyebab utama untuk skenario yang tidak dapat ditentukan secara pasti.

    Konstanta

    Konstanta Nilai
    NO_CLEAR_CONCLUSION'Tidak ada kesimpulan yang jelas'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses

    class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses(value)

    Dasar: Enum

    CloseCaseOrAlertMaintenanceRootCauses menentukan penyebab utama yang terkait dengan pengujian terjadwal, pemeliharaan sistem, atau pengembangan aturan.

    Konstanta

    Konstanta Nilai
    LAB_TEST'Uji lab'
    OTHER'Lainnya'
    RULE_UNDER_CONSTRUCTION'Aturan dalam proses pembuatan'

    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)

    Dasar: Enum

    CloseCaseOrAlertMaliciousRootCauses menyediakan kategori tertentu untuk ancaman yang telah dikonfirmasi, masalah infrastruktur, atau malfungsi sistem.

    Konstanta

    Konstanta Nilai
    EXTERNAL_ATTACK'Serangan eksternal'
    INFRASTRUCTURE_ISSUE'Masalah infrastruktur'
    IRRELEVANT_TCP_UDP_PORT'Port TCP/UDP yang tidak relevan'
    MISCONFIGURED_SYSTEM'Sistem salah dikonfigurasi'
    OTHER'Lainnya'
    SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION 'Kasus serupa sedang dalam penyelidikan'
    SYSTEM_APPLICATION_MALFUNCTION 'Malfungsi sistem/aplikasi'
    SYSTEM_CLOCKED_THE_ATTACK'Sistem memblokir serangan'
    UNFORESEEN_EFFECTS_OF_CHANGE'Efek perubahan yang tidak terduga'
    UNKNOWN'Unknown' (Tidak diketahui)

    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)

    Dasar: Enum

    CloseCaseOrAlertNotMaliciousRootCauses menentukan kategori untuk aktivitas tidak berbahaya, tindakan yang sah, atau error yang tidak menimbulkan ancaman.

    Konstanta

    Konstanta Nilai
    EMPLOYEE_ERROR'Kesalahan karyawan'
    HUMAN_ERROR'Kesalahan manusia'
    LAB_TEST'Uji lab'
    LEGIT_ACTION'Tindakan yang sah'
    MISCONFIGURED_SYSTEM'Sistem salah dikonfigurasi'
    NONE'Tidak ada'
    NORMAL_BEHAVIOR'Perilaku normal'
    OTHER'Lainnya'
    PENETRATION_TEST'Uji penetrasi'
    RULE_UNDER_CONSTRUCTION'Aturan dalam proses pembuatan'
    SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION 'Kasus serupa sedang dalam penyelidikan'
    UNKNOWN'Unknown' (Tidak diketahui)
    USER_MISTAKE'Kesalahan pengguna'

    class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons

    class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons(value)

    Dasar: Enum

    CloseCaseOrAlertReasons menyediakan kategori tingkat tinggi standar untuk alasan kasus atau pemberitahuan ditutup.

    Konstanta

    Konstanta Nilai
    MALICIOUS0
    NOT_MALICIOUS1
    MAINTENANCE2
    INCONCLUSIVE3

    class TIPCommon.base.action.data_models.Content

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

    Dasar: object

    Content merepresentasikan hasil teks yang tidak dapat diubah yang dihasilkan oleh skrip untuk ditambahkan ke dinding kasus.

    Atribut

    Atribut berikut menentukan konten berbasis teks atau markdown yang ditampilkan dalam hasil kasus di platform.

    Atribut
    title

    str | None

    Judul tampilan untuk blok konten seperti yang muncul di UI hasil skrip.

    content

    str

    Konten pesan inti, yang dapat diberikan sebagai string teks mentah atau diformat sebagai markdown.

    class TIPCommon.base.action.data_models.DataTable

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

    Dasar: object

    DataTable menampilkan daftar string berformat CSV yang dirender sebagai tabel terstruktur dalam hasil kasus.

    Atribut

    Atribut berikut menentukan struktur dan tampilan data tabel dalam kumpulan hasil tindakan.

    Atribut
    title

    str | None

    Judul yang ditampilkan di atas tabel data di antarmuka platform.

    data_table

    list[str]

    Daftar string dengan setiap elemen mewakili baris berformat CSV yang membentuk tabel.

    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)

    Dasar: object

    EntityInsight digunakan untuk membuat temuan spesifik yang terkait dengan entity, yang sering ditampilkan dalam tampilan detail entity.

    Atribut

    Atribut berikut menentukan hubungan antara entity dan temuan yang dihasilkan oleh skrip integrasi.

    Atribut
    entity

    Entity

    Objek entitas yang diperkaya dengan temuan baru.

    message

    str

    Pengamatan inti, temuan, atau pesan deskriptif untuk entitas.

    triggered_by

    str | None

    Nama integrasi yang mengidentifikasi temuan.

    original_requesting_user

    str | None

    ID unik pengguna yang awalnya memulai permintaan.

    class TIPCommon.base.action.data_models.EntityTypesEnum

    class TIPCommon.base.action.data_models.EntityTypesEnum(value)

    Dasar: Enum

    EntityTypesEnum menyediakan konstanta untuk semua jenis entity yang dikenali oleh Google SecOps.

    Konstanta

    Konstanta berikut menentukan jenis entity standar yang didukung oleh platform untuk tugas pengayaan dan otomatisasi.

    Konstanta Nilai
    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' (PENYEBARAN)
    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'LAYANAN'
    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)

    Dasar: Enum

    ExecutionState merepresentasikan indikator status akhir yang ditampilkan ke platform untuk menentukan keberhasilan atau kegagalan suatu tindakan.

    Konstanta

    Konstanta Nilai
    COMPLETED0
    IN_PROGRESS1
    FAILED2
    TIMED_OUT3

    class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter

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

    Dasar: object

    FullDetailsConfigurationParameter mengenkapsulasi parameter konfigurasi integrasi umum dengan metadata lengkapnya seperti yang diambil dari API.

    Atribut

    Atribut berikut mengelola metadata parameter, identifikasi, dan batasan konfigurasi.

    table> Atribut full_dict

    dict[str, Any]

    Kamus asli yang diterima dari respons API.

    id

    int | None

    ID unik yang ditetapkan platform untuk parameter.

    integration_identifier

    str

    ID untuk integrasi yang terkait dengan parameter ini, seperti VirusTotalV3.

    creation_time

    int

    Stempel waktu yang menunjukkan kapan parameter dibuat, dalam milidetik Unix.

    modification_time

    int

    Stempel waktu yang menunjukkan kapan parameter terakhir diubah, dalam milidetik Unix.

    is_mandatory

    bool

    Menentukan apakah parameter diperlukan agar integrasi dapat berfungsi.

    description

    str | None

    Deskripsi mendetail tentang tujuan parameter.

    name

    str

    Nama ID internal untuk parameter.

    display_name

    str

    Nama parameter yang dapat dibaca manusia seperti yang ditampilkan di antarmuka platform.

    value

    Any

    Nilai default yang ditetapkan ke parameter.

    type

    IntegrationParamType

    Klasifikasi jenis data parameter.

    optional_values

    list

    Daftar nilai opsional yang diberikan untuk jenis parameter daftar drop-down (DDL).

    class TIPCommon.base.action.data_models.HTMLReport

    class TIPCommon.base.action.data_models.HTMLReport(report_name: str, report_contents: str, ...)

    Dasar: object

    HTMLReport merepresentasikan visualisasi berbasis HTML kustom untuk ditambahkan ke hasil kasus.

    Atribut

    Atribut
    title

    str | None

    Judul tampilan untuk laporan di repositori kasus.

    report_name

    str

    ID internal atau nama file untuk laporan.

    report_contents

    str

    String HTML mentah yang menentukan konten laporan.

    class TIPCommon.base.action.data_models.IntegrationParamType

    class TIPCommon.base.action.data_models.IntegrationParamType(value)

    Dasar: Enum

    IntegrationParamType menentukan jenis data yang didukung untuk setelan konfigurasi integrasi.

    Konstanta

    Konstanta Nilai
    NULL-1
    BOOLEAN0
    INTEGER1
    STRING2
    PASSWORD3
    IP4
    EMAIL8

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

    Dasar: object

    Link merepresentasikan hasil URL eksternal untuk ditampilkan sebagai hyperlink di dinding kasus.

    Atribut

    Atribut

    str | None

    Teks tampilan untuk hyperlink.

    str

    URL target untuk link.

    class TIPCommon.base.action.data_models.Markdown

    class TIPCommon.base.action.data_models.Markdown(markdown_name: str, markdown_content: str, ...)

    Dasar: object

    Markdown menyediakan cara terstruktur untuk menampilkan konten yang diformat teks kaya menggunakan sintaksis markdown.

    Atribut

    Atribut
    title

    str | None

    Judul tampilan untuk blok markdown.

    markdown_content

    str

    Konten diformat dalam sintaksis markdown.

    markdown_name

    str

    Nama unik yang ditetapkan untuk hasil markdown ini.

    class TIPCommon.base.action.data_models.ScriptParameter

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

    Dasar: object

    ScriptParameter merepresentasikan satu parameter input untuk skrip tindakan, mengelola nilai, status default, dan visibilitasnya dalam playbook atau tindakan manual.

    Atribut

    Atribut berikut mengelola metadata, prioritas nilai, dan batasan data untuk setiap parameter skrip.

    Atribut
    full_dict

    dict[str, Any]

    Kamus asli yang diterima dari respons API.

    id

    int | None

    ID unik yang ditetapkan platform untuk parameter.

    creation_time

    int

    Stempel waktu yang menunjukkan kapan parameter dibuat, dalam milidetik Unix.

    modification_time

    int

    Stempel waktu yang menunjukkan kapan parameter terakhir diubah, dalam milidetik Unix.

    custom_action_id

    int | None

    ID tindakan kustom yang terkait dengan parameter ini.

    is_mandatory

    bool

    Menunjukkan apakah parameter harus diberikan agar skrip tindakan dapat dieksekusi.

    default_value

    Any

    Nilai default parameter.

    Nilai ini diprioritaskan daripada value dalam eksekusi playbook.

    description

    str | None

    Deskripsi mendetail tentang tujuan parameter.

    name

    str | None

    Nama ID internal untuk parameter.

    value

    Any

    Nilai parameter saat ini.

    Nilai ini diprioritaskan daripada default_value dalam eksekusi tindakan manual.

    type

    ActionParamType

    Klasifikasi jenis data parameter.

    optional_values

    list

    Daftar nilai opsional yang diberikan untuk jenis parameter daftar drop-down (DDL).

    Hasil eksekusi skrip

    Class dan fungsi berikut menentukan struktur standar untuk mengembalikan data dari tindakan dan konektor ke platform.

    class TIPCommon.base.data_models.ActionJsonOutput

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

    Dasar: object

    ActionJsonOutput merepresentasikan payload JSON terstruktur untuk tindakan, sehingga memungkinkan penargetan tingkat entitas dan kategorisasi tertentu.

    Atribut

    Atribut
    title

    str

    Judul tampilan untuk blok hasil JSON.

    content

    str

    Konten tekstual atau ringkasan yang menyertai data JSON.

    type

    str | None

    Jenis klasifikasi opsional untuk output JSON.

    is_for_entity

    bool

    Menunjukkan apakah hasil JSON secara khusus dikaitkan dengan entitas.

    json_result

    JSON | None

    Payload data JSON terstruktur yang sebenarnya.

    class TIPCommon.base.data_models.ActionOutput

    class TIPCommon.base.data_models.ActionOutput(output_message, result_value, execution_state, json_output, debug_output='')

    Dasar: object

    ActionOutput merangkum struktur hasil lengkap untuk suatu tindakan, menggabungkan pesan yang dapat dibaca manusia, status, dan JSON terstruktur.

    Atribut

    Atribut
    output_message

    str

    Pesan ringkasan utama yang ditampilkan kepada analis.

    result_value

    str | bool

    Hasil logis dari tindakan (misalnya, berhasil/gagal).

    execution_state

    ExecutionState

    Status siklus proses akhir eksekusi tindakan.

    json_output

    ActionJsonOutput | None

    Hasil JSON terstruktur dari tindakan.

    debug_output

    str

    Informasi diagnostik opsional untuk pemecahan masalah.

    class TIPCommon.base.data_models.ConnectorJsonOutput

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

    Dasar: object

    ConnectorJsonOutput menentukan data terstruktur yang ditampilkan oleh konektor, termasuk pemberitahuan yang diserap, detail overflow, dan log eksekusi.

    Atribut

    Atribut
    alerts

    list[AlertInfo | CaseInfo]

    Daftar objek kasus atau pemberitahuan yang berhasil diserap.

    overflow_alerts

    list[OverflowAlertDetails]

    Daftar pemberitahuan yang melampaui batas penyerapan dan ditangani sebagai overflow.

    log_items

    list

    Daftar entri log terstruktur yang dibuat selama konektor berjalan.

    variables

    dict

    Kamus variabel status yang dipertahankan di antara eksekusi konektor.

    class TIPCommon.base.data_models.ConnectorOutput

    class TIPCommon.base.data_models.ConnectorOutput(json_output, debug_output='')

    Dasar: object

    ConnectorOutput merepresentasikan penampung tingkat teratas untuk hasil eksekusi konektor, yang membungkus data JSON terstruktur dan string debug opsional.

    Atribut

    Atribut
    json_output

    ConnectorJsonOutput | None

    Hasil JSON terstruktur yang berisi data penyerapan dan log.

    debug_output

    str

    String proses debug opsional untuk pelacakan diagnostik internal.

    TIPCommon.base.data_models.alert_info_from_json

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

    Membuat objek AlertInfo dengan mengurai kamus atribut. Hal ini biasanya digunakan untuk merekonstruksi objek pemberitahuan selama transformasi data atau pengujian.

    Hasil

    Menampilkan objek AlertInfo yang sepenuhnya diinisialisasi berdasarkan properti yang ditentukan dalam kamus JSON yang diberikan.

    Modul Antarmuka

    Modul ini mendefinisikan kontrak abstrak standar untuk komponen skrip dasar.

    class TIPCommon.base.interfaces.apiable.Apiable

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

    Dasar: ABC, Generic[ApiParams]

    Apiable adalah antarmuka dasar abstrak untuk class yang merangkum logika komunikasi API, sehingga memastikan struktur yang konsisten untuk interaksi layanan eksternal.

    class TIPCommon.base.interfaces.authable.Authable

    class TIPCommon.base.interfaces.authable.Authable

    Dasar: ABC, Generic[AuthParams]

    Authable adalah antarmuka dasar abstrak untuk class yang mengelola alur kerja autentikasi, yang menyediakan cetak biru standar untuk membuat sesi yang aman dengan layanan eksternal.

    Metode abstrak

    Metode abstrak berikut harus diterapkan di subclass untuk menentukan logika autentikasi spesifik yang diperlukan oleh layanan target.

    Metode abstrak
    authenticate_session()

    authenticate_session(params: AuthParams) → None

    Mengautentikasi atribut self.session menggunakan params yang diberikan (seperti dataclass, TypedDict, atau namedtuple).

    Gunakan metode ini untuk melakukan autentikasi dengan layanan yang terkait dengan sesi setelah objek sesi diinisialisasi.

    class TIPCommon.base.interfaces.logger.Logger

    class TIPCommon.base.interfaces.logger.Logger

    Dasar: ABC

    Antarmuka Logger memastikan skrip marketplace memberikan output diagnostik standar.

    Metode Abstrak

    Metode berikut harus diterapkan untuk menangani berbagai tingkat keparahan logging dan pelaporan pengecualian.

    Metode abstrak
    debug()

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

    Mencatat pesan dengan tingkat keparahan DEBUG.

    info()

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

    Mencatat pesan dengan tingkat keparahan INFO.

    warn()

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

    Mencatat pesan dengan tingkat keparahan WARNING.

    error()

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

    Mencatat pesan dengan tingkat keparahan ERROR.

    exception()

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

    Mencatat pesan dengan tingkat keparahan ERROR, termasuk stack trace pengecualian.

    class TIPCommon.base.interfaces.session.Session

    class TIPCommon.base.interfaces.session.Session

    Dasar: ABC, Generic[_R]

    Antarmuka Session memberikan cetak biru yang konsisten untuk mengelola sesi API menggunakan berbagai library HTTP.

    Atribut

    Atribut berikut mengelola setelan konfigurasi dan keamanan sesi komunikasi HTTP yang dibuat.

    Atribut
    headers

    dict

    Kamus yang berisi header HTTP untuk dikirim dengan setiap permintaan dalam sesi.

    verify

    bool

    Boolean yang menunjukkan apakah sesi harus memverifikasi sertifikat SSL server.

    Metode abstrak

    Metode abstrak berikut menentukan kata kerja HTTP standar dan pengirim permintaan utama yang harus diimplementasikan oleh subclass.

    Metode abstrak
    get()

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

    Mengambil resource dari server menggunakan permintaan HTTP GET.

    post()

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

    Mengirim data ke server untuk membuat resource menggunakan permintaan HTTP POST.

    put()

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

    Memperbarui atau membuat resource di server menggunakan permintaan HTTP PUT.

    patch()

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

    Menerapkan modifikasi parsial pada resource menggunakan permintaan PATCH HTTP.

    delete()

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

    Menghapus resource tertentu dari server menggunakan permintaan DELETE HTTP.

    request()

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

    Pengirim permintaan inti yang digunakan untuk melakukan permintaan HTTP dengan metode yang ditentukan.

    Modul pekerjaan

    Hal ini menyediakan framework untuk skrip pemrosesan latar belakang yang dijalankan sesuai jadwal yang ditentukan dalam platform.

    class TIPCommon.base.job.base_job.Job

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

    Dasar: ABC, Generic[ApiClient]

    Job adalah class dasar abstrak yang dirancang untuk tugas terjadwal yang melakukan operasi latar belakang independen, seperti sinkronisasi data atau pemeriksaan kondisi.

    Parameter

    Parameter berikut diperlukan untuk menginisialisasi tugas dan mendaftarkannya dalam platform.

    Parameter
    name ID unik yang digunakan untuk mendaftarkan dan mengidentifikasi skrip tugas.

    Atribut

    Properti berikut memberikan akses ke konteks eksekusi tugas, konfigurasi, dan klien layanan terintegrasi.

    Atribut
    api_client

    ApiClient | None

    Menyediakan klien API atau kumpulan klien yang diinisialisasi untuk berinteraksi dengan layanan eksternal.

    error_msg

    str

    Menyimpan pesan error yang terjadi selama eksekusi tugas untuk pelaporan diagnostik.

    job_start_time

    int

    Stempel waktu Unix yang menunjukkan kapan eksekusi tugas dimulai.

    logger

    ScriptLogger

    Menyediakan antarmuka logging untuk merekam data informasi, peringatan, dan error selama eksekusi.

    name

    str

    Nama terdaftar skrip tugas.

    params

    Container

    Penampung yang menyimpan parameter konfigurasi spesifik yang diberikan ke instance tugas.

    soar_job

    SiemplifyJob

    Mewakili instance tugas platform yang mendasarinya, yang menyediakan akses ke hook eksekusi tingkat rendah.

    Metode

    Metode berikut mengelola orkestrasi dan siklus proses eksekusi tugas.

    Metode
    start()

    Tanda Tangan: start(**kwargs) → None

    Titik entri utama yang memicu logika eksekusi tugas.

    class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob

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

    Dasar: Job, Generic[ApiClient]

    RefreshTokenRenewalJob menyediakan metode siklus proses yang memengaruhi pemrosesan tugas untuk pemeliharaan token. Subclass tidak perlu mengganti metode ini.

    Atribut

    Atribut
    api_client

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

    Klien API yang diinisialisasi atau klien yang digunakan untuk interaksi layanan eksternal.

    class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

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

    Dasar: tuple

    SuccessFailureTuple adalah tuple bernama khusus yang digunakan untuk mengategorikan hasil operasi tugas batch menjadi keberhasilan dan kegagalan.

    Atribut

    Atribut
    success_list

    list

    Daftar yang berisi ID atau objek yang berhasil diproses.

    failure_list

    list

    Daftar yang berisi ID atau objek yang gagal diproses.

    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]

    Fungsi ini memvalidasi dan mengurai string parameter yang dipisahkan koma (CSV) menjadi daftar elemen unik. Dirancang untuk menangani format yang kompleks, termasuk nilai tunggal, string yang dikutip, dan input campuran.

    Parameter

    Parameter
    param_name

    str

    Nama atau kunci parameter yang sedang divalidasi.

    param_csv_value

    str | None

    String CSV mentah yang disediakan dalam konfigurasi tugas. Menampilkan daftar kosong jika None.

    Meningkatkan

    Pengecualian ValueError akan muncul jika string input berisi jumlah tanda kutip ganda yang tidak valid, tanda kutip yang tidak cocok, atau jika nilai individual dalam CSV gagal divalidasi.

    Hasil

    Daftar list[str] string unik dan tervalidasi yang diuraikan dari input. Jika tidak ada nilai valid yang diidentifikasi atau jika inputnya adalah None, daftar kosong akan ditampilkan.

    class TIPCommon.base.job.data_models.JobParameter

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

    Dasar: object

    JobParameter merepresentasikan parameter konfigurasi individual untuk skrip tugas, yang mengelola metadata dan status nilainya.

    Atribut

    Atribut
    full_dict

    dict[str, Any]

    Kamus asli yang diterima dari API selama inisialisasi tugas.

    id

    int | None

    ID unik yang ditetapkan platform untuk parameter tugas.

    is_mandatory

    bool

    Menunjukkan apakah parameter harus diberikan agar tugas dapat berjalan.

    name

    str | None

    Nama ID internal untuk parameter.

    type

    ActionParamType

    Klasifikasi jenis data parameter.

    value

    Any

    Nilai default parameter; nilai ini biasanya diprioritaskan dalam eksekusi tugas otomatis.

    Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.