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 |
Objek |
_api_client |
Klien API integrasi. |
_name |
Nama skrip yang menggunakan tindakan ini. |
_action_start_time |
Waktu mulai tindakan dalam Unix. |
_logger |
Objek logger yang digunakan untuk mencatat tindakan. |
_params |
Penampung parameter untuk tindakan ini. |
global_context |
Kamus untuk menyimpan konteks, jika diperlukan. |
_entity_types |
Jenis entitas yang didukung oleh tindakan. |
_entities_to_update |
Entitas yang akan diperbarui saat tindakan berakhir. |
json_results |
Hasil JSON tindakan. |
_attachments |
Lampiran hasil kasus yang akan ditambahkan. |
_contents |
Konten hasil kasus yang akan ditambahkan. |
_data_tables |
Tabel data hasil kasus yang akan ditambahkan. |
_html_reports |
Laporan HTML hasil kasus yang akan ditambahkan. |
_links |
Link hasil kasus yang akan ditambahkan. |
_markdowns |
Markdown hasil kasus yang akan ditambahkan. |
_entity_insights |
Insight entity kasus yang akan ditambahkan. |
_case_insights |
Insight kasus yang akan ditambahkan. |
_execution_state |
Indikator status eksekusi akhir tindakan. |
_result_value |
Nilai hasil akhir tindakan. |
_output_message |
Pesan output tindakan saat berhasil. |
_error_output_message |
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 = 0ExecutionState.IN_PROGRESS = 1ExecutionState.FAILED = 2ExecutionState.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.
link
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 |
Data pengayaan untuk entity saat ini di
setiap iterasi entity. Di akhir setiap iterasi, atribut |
entity_results |
Hasil entity yang disertakan dalam output JSON untuk objek ini. |
global_context |
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
|
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
| Konstanta | Nilai |
|---|---|
BOOLEAN | 1 |
CASE_PRIORITIES | 7 |
CLOSE_CASE_REASONS | 5 |
CLOSE_ROOT_CAUSE | 6 |
CODE | 20 |
CONTENT | 11 |
DDL | 15 |
EMAIL_CONTENT | 10 |
ENTITY_TYPE | 13 |
MULTI_VALUES | 14 |
NULL | -1 |
PASSWORD | 12 |
PLAYBOOK_NAME | 2 |
STAGE | 4 |
STRING | 0 |
USER | 3 |
class TIPCommon.base.action.data_models.Attachment
class TIPCommon.base.action.data_models.Attachment(filename: str, file_contents: bytes, title: str = 'Script Result Attachment', additional_data: dict | None = None)
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 |
Judul lampiran yang ditampilkan di antarmuka platform. |
filename |
Nama spesifik file yang akan dibuat. |
file_contents |
Konten biner mentah dari file lampiran. |
additional_data |
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 |
ID unik yang ditetapkan platform untuk lampiran. |
attachment_type |
Klasifikasi atau jenis MIME lampiran (misalnya,
|
description |
Deskripsi yang ditentukan pengguna atau dibuat sistem tentang konten lampiran. |
is_favorite |
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 |
Konten teks utama komentar. |
comment_for_client |
Versi komentar opsional yang disesuaikan untuk visibilitas klien. |
modification_time_unix_time_in_ms_for_client |
Stempel waktu modifikasi untuk |
last_editor |
ID editor terakhir, seperti
|
last_editor_full_name |
Nama tampilan lengkap pengguna yang terakhir mengedit komentar, seperti
|
is_deleted |
Menunjukkan apakah komentar telah ditandai sebagai dihapus. |
creator_user_id |
ID pengguna pembuat, seperti
|
creator_full_name |
Nama tampilan lengkap kreator, seperti |
comment_id |
ID bilangan bulat unik yang ditetapkan platform untuk komentar. |
comment_type |
Klasifikasi jenis komentar. |
case_id |
ID kasus yang terkait dengan komentar ini. |
is_favorite |
Menunjukkan apakah komentar disematkan sebagai favorit. |
modification_time_unix_time_in_ms |
Waktu modifikasi terakhir komentar dalam milidetik Unix, seperti
|
creation_time_unix_time_in_ms |
Waktu pembuatan komentar dalam milidetik Unix, seperti
|
alert_identifier |
ID spesifik pemberitahuan yang terkait dengan komentar, seperti
|
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 |
Judul yang ditampilkan untuk insight di repositori kasus. |
triggered_by |
Nama integrasi atau pengguna yang menghasilkan insight. |
content |
Isi pesan atau temuan insight yang mendetail. |
severity |
Tingkat urgensi insight. Kemungkinan nilainya adalah sebagai berikut: infowarningerror |
insight_type |
Mengategorikan insight. Kemungkinan nilainya adalah sebagai berikut: generalentity |
entity_identifier |
ID spesifik untuk entitas jika insight berfokus pada entitas. |
additional_data |
Data tambahan yang terkait dengan insight. |
additional_data_type |
Klasifikasi jenis data untuk atribut |
additional_data_title |
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 |
|---|---|
CRITICAL | 100 |
HIGH | 80 |
INFORMATIONAL | 0 |
LOW | 40 |
MEDIUM | 60 |
class TIPCommon.base.action.data_models.CaseStage
class TIPCommon.base.action.data_models.CaseStage(value)
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 |
|---|---|
MALICIOUS | 0 |
NOT_MALICIOUS | 1 |
MAINTENANCE | 2 |
INCONCLUSIVE | 3 |
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 |
Judul tampilan untuk blok konten seperti yang muncul di UI hasil skrip. |
content |
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 |
Judul yang ditampilkan di atas tabel data di antarmuka platform. |
data_table |
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 |
Objek entitas yang diperkaya dengan temuan baru. |
message |
Pengamatan inti, temuan, atau pesan deskriptif untuk entitas. |
triggered_by |
Nama integrasi yang mengidentifikasi temuan. |
original_requesting_user |
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 |
|---|---|
COMPLETED | 0 |
IN_PROGRESS | 1 |
FAILED | 2 |
TIMED_OUT | 3 |
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 |
Judul tampilan untuk laporan di repositori kasus. |
report_name |
ID internal atau nama file untuk laporan. |
report_contents |
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 |
BOOLEAN | 0 |
INTEGER | 1 |
STRING | 2 |
PASSWORD | 3 |
IP | 4 |
EMAIL | 8 |
class TIPCommon.base.action.data_models.Link
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 | |
|---|---|
title |
Teks tampilan untuk hyperlink. |
link |
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 |
Judul tampilan untuk blok markdown. |
markdown_content |
Konten diformat dalam sintaksis markdown. |
markdown_name |
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 |
Kamus asli yang diterima dari respons API. |
id |
ID unik yang ditetapkan platform untuk parameter. |
creation_time |
Stempel waktu yang menunjukkan kapan parameter dibuat, dalam milidetik Unix. |
modification_time |
Stempel waktu yang menunjukkan kapan parameter terakhir diubah, dalam milidetik Unix. |
custom_action_id |
ID tindakan kustom yang terkait dengan parameter ini. |
is_mandatory |
Menunjukkan apakah parameter harus diberikan agar skrip tindakan dapat dieksekusi. |
default_value |
Nilai default parameter. Nilai ini diprioritaskan daripada |
description |
Deskripsi mendetail tentang tujuan parameter. |
name |
Nama ID internal untuk parameter. |
value |
Nilai parameter saat ini. Nilai ini diprioritaskan daripada |
type |
Klasifikasi jenis data parameter. |
optional_values |
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 |
Judul tampilan untuk blok hasil JSON. |
content |
Konten tekstual atau ringkasan yang menyertai data JSON. |
type |
Jenis klasifikasi opsional untuk output JSON. |
is_for_entity |
Menunjukkan apakah hasil JSON secara khusus dikaitkan dengan entitas. |
json_result |
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 |
Pesan ringkasan utama yang ditampilkan kepada analis. |
result_value |
Hasil logis dari tindakan (misalnya, berhasil/gagal). |
execution_state |
Status siklus proses akhir eksekusi tindakan. |
json_output |
Hasil JSON terstruktur dari tindakan. |
debug_output |
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 |
Daftar objek kasus atau pemberitahuan yang berhasil diserap. |
overflow_alerts |
Daftar pemberitahuan yang melampaui batas penyerapan dan ditangani sebagai overflow. |
log_items |
Daftar entri log terstruktur yang dibuat selama konektor berjalan. |
variables |
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 |
Hasil JSON terstruktur yang berisi data penyerapan dan log. |
debug_output |
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() |
Mengautentikasi atribut 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() |
Mencatat pesan dengan tingkat keparahan |
info() |
Mencatat pesan dengan tingkat keparahan |
warn() |
Mencatat pesan dengan tingkat keparahan |
error() |
Mencatat pesan dengan tingkat keparahan |
exception() |
Mencatat pesan dengan tingkat keparahan |
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 |
Kamus yang berisi header HTTP untuk dikirim dengan setiap permintaan dalam sesi. |
verify |
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() |
Mengambil resource dari server menggunakan permintaan HTTP GET. |
post() |
Mengirim data ke server untuk membuat resource menggunakan permintaan HTTP POST. |
put() |
Memperbarui atau membuat resource di server menggunakan permintaan HTTP PUT. |
patch() |
Menerapkan modifikasi parsial pada resource menggunakan permintaan PATCH HTTP. |
delete() |
Menghapus resource tertentu dari server menggunakan permintaan DELETE HTTP. |
request() |
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 |
Menyediakan klien API atau kumpulan klien yang diinisialisasi untuk berinteraksi dengan layanan eksternal. |
error_msg |
Menyimpan pesan error yang terjadi selama eksekusi tugas untuk pelaporan diagnostik. |
job_start_time |
Stempel waktu Unix yang menunjukkan kapan eksekusi tugas dimulai. |
logger |
Menyediakan antarmuka logging untuk merekam data informasi, peringatan, dan error selama eksekusi. |
name |
Nama terdaftar skrip tugas. |
params |
Penampung yang menyimpan parameter konfigurasi spesifik yang diberikan ke instance tugas. |
soar_job |
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: 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 |
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 |
Daftar yang berisi ID atau objek yang berhasil diproses. |
failure_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 |
Nama atau kunci parameter yang sedang divalidasi. |
param_csv_value |
String CSV mentah yang disediakan dalam konfigurasi tugas. Menampilkan
daftar kosong jika |
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 |
Kamus asli yang diterima dari API selama inisialisasi tugas. |
id |
ID unik yang ditetapkan platform untuk parameter tugas. |
is_mandatory |
Menunjukkan apakah parameter harus diberikan agar tugas dapat berjalan. |
name |
Nama ID internal untuk parameter. |
type |
Klasifikasi jenis data parameter. |
value |
Nilai default parameter; nilai ini biasanya diprioritaskan dalam eksekusi tugas otomatis. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.