Playbook adalah alur logika atau skrip yang telah ditentukan sebelumnya untuk mengidentifikasi, mengklasifikasikan, mengevaluasi, dan merespons event keamanan. Playbook mencakup serangkaian langkah untuk menjalankan operasi tertentu, menentukan apakah ancaman keamanan ada, serta memutuskan cara merespons dan menguranginya. Anda dapat menyesuaikan dan mengonfigurasi playbook untuk berbagai jenis dan tingkat event keamanan guna memenuhi berbagai kebutuhan keamanan.
Tim operasi keamanan sering menghadapi pekerjaan manual yang berulang dan memakan waktu saat merespons peringatan—seperti melakukan triase terhadap jenis ancaman yang sama, menjalankan langkah-langkah containment yang identik, dan berkoordinasi lintas berbagai alat. Menggunakan playbook untuk orkestrasi respons membantu meningkatkan efisiensi dan konsistensi respons keamanan Anda.
Bagian berikut menjelaskan cara membuat, mengonfigurasi, mendebug, dan menerbitkan playbook kustom di Security Center.
Konsep utama
Jenis playbook
Security Center menyediakan dua jenis playbook:
Predefined playbook: Playbook bawaan yang mencakup skenario ancaman keamanan umum. Gunakan langsung tanpa perlu konfigurasi. Untuk menyesuaikan predefined playbook dengan lingkungan Anda, salin playbook tersebut untuk membuat playbook kustom, lalu modifikasi sesuai kebutuhan.
Custom playbook: Untuk skenario kompleks atau sangat spesifik, buat playbook sendiri menggunakan editor alur visual. Seret, hubungkan, dan konfigurasikan komponen untuk menerapkan logika respons keamanan otomatis.
Parameter playbook
Input Parameters (Run) menentukan pemicu eksekusi playbook. Saat Anda memilih kondisi pemicu yang berbeda, contoh parameter pada panel debugging akan diperbarui secara otomatis.
Output parameters menentukan bidang yang dihasilkan playbook setelah dieksekusi. Node downstream dalam playbook yang sama dapat mereferensikan bidang-bidang ini. Playbook lain juga dapat mengaksesnya menggunakan aksi setOutput dengan sintaks ${event.parameter_path}.
Selain output parameters kustom, sistem menyediakan parameter sistem bawaan. Untuk detailnya, lihat Parameter sistem dalam playbook.
Editor alur
Editor alur adalah kanvas visual untuk membuat, memodifikasi, mendebug, dan menerbitkan alur playbook.

| Area | Deskripsi |
|---|---|
| 1 — Menu bar | Save: Menyimpan status saat ini sebagai draft. Keluar tanpa menyimpan akan menghapus semua perubahan yang belum disimpan. Draft dapat ditimpa jika Anda melakukan rollback dari versi yang telah diterbitkan — klik Publish untuk menyimpan playbook secara permanen. Publish: Mengubah playbook menjadi versi resmi yang diterbitkan. Hanya playbook yang telah diterbitkan yang dapat digunakan dalam automatic response rules dan event handling. Debug: Membuka panel debugging di bagian bawah halaman. Breakpoint debugging: Pilih komponen pada kanvas dan klik ikon |
| 2 — Flow nodes | Tulang punggung struktural setiap alur, independen dari layanan eksternal. Setiap alur memerlukan tepat satu start node dan dapat memiliki beberapa end node. Untuk detailnya, lihat System components. |
| 3 — Components and playbooks | Basic components: Komponen IT tujuan umum seperti menulis ke database, mengirim data ke Simple Log Service (SLS), dan menjalankan skrip Python 3. Skrip Python 3 dijalankan dalam kontainer Python 3.9 bawaan dengan 0,25 vCPU dan memori 256 MB. Durasi eksekusi skrip maksimum adalah 600 detik. Security components: Komponen yang menangani ancaman keamanan secara langsung, seperti Server Guard (menghentikan proses) dan Cloud Firewall (memblokir akses). Cloud product components: Komponen yang memanggil operasi OpenAPI produk Alibaba Cloud dan mengkueri intelijen ancaman. Lihat Cloud product components (OpenAPI) dan Komponen AliyunThreatIntelligence. Third-party components: Komponen yang memanggil operasi OpenAPI produk non-Alibaba Cloud, seperti Web Application Firewall (WAF) dari Tencent Cloud dan Huawei Cloud. Lihat Third-party components (OpenAPI). Playbooks panel: Menampilkan daftar semua playbook kustom dan predefined playbook yang tersedia di akun saat ini. |
| 4 — Canvas | Ruang kerja drag-and-drop. Seret komponen ke sini dan hubungkan untuk menentukan logika respons. Klik ganda start node ( ) untuk mengonfigurasi informasi dasarnya. |
| 5 — Debugging area | Klik Debug atau ikon |
Konfigurasi playbook kustom
Sebelum mulai membangun, pertimbangkan pertanyaan berikut. Menjawabnya membantu Anda merancang alur yang lebih jelas dan mudah dipelihara:
Event atau peringatan keamanan apa yang harus memicu playbook ini?
Aksi apa saja yang perlu diambil oleh playbook? Apakah ada langkah yang bersifat kondisional?
Kapan insiden dianggap terselesaikan?
Akan dipicu secara otomatis, manual, atau keduanya?
Diagram berikut menunjukkan alur konfigurasi end-to-end:
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akses ke Konsol Security Center
Izin yang diperlukan untuk membuat dan menerbitkan playbook di modul SOAR
Langkah 1: Buat playbook
Masuk ke Konsol Security Center.Masuk ke Konsol Security Center.
Di panel navigasi kiri, pilih Agentic SOC > SOAR. Di pojok kiri atas, pilih wilayah tempat aset yang ingin Anda lindungi berada: Chinese Mainland atau Outside Chinese Mainland.
Pada tab Custom Playbook, klik Create Playbook.
Di panel Create Playbook, masukkan Playbook Name dan Playbook Description, lalu klik OK.
Sebagai alternatif, buka tab Predefined Playbook, temukan playbook yang sesuai, lalu klik Copy di kolom Actions untuk menggunakannya sebagai titik awal.
Langkah 2: Konfigurasi alur
Setelah membuat playbook, Anda akan diarahkan secara otomatis ke halaman konfigurasi alur. Untuk kembali ke halaman ini nanti, klik Edit di kolom Actions pada daftar Custom Playbook.
Tetapkan parameter input dan output
Di halaman Playbook Editing, klik Settings di pojok kanan atas.
Di panel konfigurasi, klik Input & Output Settings dan definisikan parameter input dan output. Untuk tipe dan sintaks parameter, lihat Parameter playbook.
Setiap alur harus memiliki tepat satu start node dan dapat memiliki beberapa end node.
Orkestrasikan alur respons
Kanvas adalah tempat Anda membangun logika respons inti. Seret komponen dari panel kiri, letakkan ke kanvas, lalu hubungkan sesuai urutan eksekusi yang diinginkan.
Start node menggunakan event sebagai nama nodenya. Jangan beri nama komponen lain dengan event.
Langkah-langkah berikut menggunakan komponen DataFormat sebagai contoh.
Pilih aksi komponen: Di bagian Basic components, temukan komponen DataFormat. Pilih aksi—seperti
joindataatauconvertToJSON—lalu seret ke kanvas.Konfigurasi parameter komponen: Klik komponen di kanvas untuk membuka panel konfigurasinya. Atau, di bagian Basic Information, klik
untuk membuka pengaturan parameter. Untuk detailnya, lihat Komponen DataFormat. Parameter mendukung nilai konstan, variabel, parameter sistem, dan ekspresi. Pilih parameter node dari daftar drop-down di kotak input untuk menghasilkan sintaks yang sesuai secara otomatis. Untuk referensi parameter lengkap, lihat Parameter komponen dan alur eksekusi node.
Setelah mengonfigurasi semua komponen, klik Save di menu bar.
Keluar tanpa menyimpan akan menghapus permanen semua perubahan yang belum disimpan.
Langkah 3: Debug alur
Sebelum menerbitkan, jalankan sesi debug untuk memverifikasi bahwa alur berjalan dengan benar.
Tetapkan breakpoint (opsional)
Breakpoint memungkinkan Anda memeriksa hasil antara dalam alur kompleks. Alur akan berjalan hingga—tetapi tidak termasuk—node yang diberi breakpoint, lalu berhenti.
Klik ikon
pada node untuk menetapkannya sebagai breakpoint.

Dalam alur dengan beberapa cabang, sistem hanya mendebug cabang yang berisi breakpoint.
Jika beberapa breakpoint ditetapkan pada cabang yang sama, hanya yang terakhir yang berlaku.
Jalankan sesi debug
Klik tombol debug
di pojok kiri atas untuk membuka panel Debug Parameters, lalu klik Debug.Muat contoh parameter dengan mengklik Example, lalu di halaman View Sample Input, klik Load Sample.
Modifikasi parameter sesuai kebutuhan, lalu klik OK.
Parameter debugging bervariasi tergantung pada tipe parameter input yang dikonfigurasi untuk playbook. Gunakan Visual Mode untuk mengedit parameter dengan cara yang lebih intuitif.
Tinjau hasilnya
Klik ikon
pada node mana pun, atau klik Run Logs di area debugging, untuk melihat input, output, dan status eksekusi detail setiap node.

Parameter output berikut muncul dalam hasil debug:
| Parameter | Deskripsi |
|---|---|
datalist | Pratinjau data keluaran. Maksimal tiga entri ditampilkan. Untuk melihat seluruh dataset, buka tab Complete Output Result. |
total_data_successful | Volume data yang berhasil diproses. |
total_data | Total volume data yang diproses. |
total_exe_successful | Jumlah kali aksi berhasil dijalankan. |
total_exe | Total jumlah kali aksi dijalankan. |
total_data_with_dup | Volume data setelah deduplikasi, dihitung dari data yang berhasil diproses. |
Langkah 4: Terbitkan
Klik Publish di menu bar untuk mengubah playbook menjadi versi yang diterbitkan, sehingga dapat digunakan dalam aturan respons dan penanganan event.
Gunakan playbook
Hanya playbook yang telah diterbitkan yang dapat digunakan untuk automatic response rules dan penanganan event keamanan.
Setelah playbook dipicu, lihat kebijakan dan tugas respons yang dihasilkan di Response Center, atau lihat catatan eksekusi di halaman detail playbook.
Security Center mendukung tiga cara menjalankan playbook:
Bind to an automatic response rule: Mengotomatiskan respons terhadap peringatan keamanan tertentu. Untuk detailnya, lihat Automatic response rules.
Manually trigger during event handling: Untuk event keamanan kompleks yang memerlukan analisis manual, picu playbook dari pusat penanganan event untuk membantu tugas respons. Untuk detailnya, lihat bagian Run Playbook dalam Evaluasi dan tangani event keamanan Agentic SOC.
Run directly: Di halaman SOAR, temukan playbook yang dituju di tab Predefined Playbook atau Custom Playbook, lalu klik Run di kolom Actions untuk menjalankan alur sekali.
Kelola playbook
Lakukan rollback playbook
Untuk mengembalikan playbook yang telah diterbitkan ke versi sebelumnya:
Di tab Custom Playbook, temukan playbook tersebut dan klik Details di kolom Actions.
Di tab Basic Information, temukan bagian riwayat penerbitan untuk melihat versi yang tersedia.
(Opsional) Klik View di samping versi untuk membukanya dan menjalankan uji coba di area Input Parameters (Run).
Klik Roll Back to Edit atau Roll Back and Publish untuk versi yang ingin Anda kembalikan:
Roll Back to Edit: Mengganti draft saat ini dengan versi yang dipilih. Playbook tidak diterbitkan.
Roll Back and Publish: Mengganti draft saat ini dengan versi yang dipilih dan langsung menerbitkannya.
Jika Anda melakukan rollback dari versi yang telah diterbitkan, versi draft yang disimpan mungkin ditimpa. Sebelum rollback, evaluasi secara cermat perbedaan alur antarversi.
Impor playbook
Hanya file JSON yang didukung.
Di menu bar editor alur, klik More, lalu pilih Import JSON.
Di halaman impor, unggah file JSON dan klik OK.

Lihat catatan eksekusi
Di daftar playbook, klik ID playbook atau Details di kolom Actions. Di tab Historical Execution Records, lihat catatan eksekusi dasar untuk playbook tersebut.
Sistem secara otomatis membuat catatan eksekusi setiap kali playbook digunakan untuk menangani event atau peringatan keamanan.
Ubah nama playbook
Di daftar playbook, klik ID playbook atau Details di kolom Actions. Di tab Basic Information, klik Edit di samping nama playbook.
Nama playbook yang telah ditentukan sebelumnya tidak dapat diubah.
Nama playbook harus unik.
Pemecahan masalah
Kode error dibagi menjadi dua kategori: error dari orkestrasi playbook dan error dari eksekusi komponen.
Error orkestrasi
| Pesan error | Penyebab | Perbaikan |
|---|---|---|
| Kondisi filter untuk node [%s] tidak valid. Harus menyertakan data dari daftar data node [%s]. | Kondisi node filter tidak mereferensikan data node target. | Sertakan variabel data dari node yang ingin difilter beserta kondisi yang sesuai. |
| Start node tidak memiliki konfigurasi downstream. | Tidak ada node yang terhubung setelah start node. | Hubungkan minimal satu node downstream ke start node. |
| Node [nodeName] tidak memiliki node downstream yang ditentukan. | Node non-terminal tidak memiliki koneksi keluar. | Hubungkan node downstream ke node yang ditunjuk. |
| Resource di node [node] tidak ada. | Instans resource yang dikonfigurasi tidak lagi ada. | Pilih instans resource yang masih ada. |
| Resource di node [node] wajib tetapi tidak dikonfigurasi. | Tidak ada instans resource yang dikonfigurasi untuk node tersebut. | Pilih dan konfigurasikan instans resource. |
| Beberapa node memiliki nama yang sama [nodeName]. | Dua atau lebih node memiliki nama yang sama. | Ubah nama node agar setiap nama unik. |
Path [path] yang ditentukan di node [node1] tidak valid karena child flow hanya mendukung format ${<subTask>.curLoop} dan ${<subTask>.curIndex}. | Variabel di child flow menggunakan format yang tidak didukung. | Perbarui variabel agar menggunakan ${<subTask>.curLoop} atau ${<subTask>.curIndex}. |
| Path [node2.path] yang ditentukan di node [node1] tidak valid karena node [node2] tidak ada. | Variabel mereferensikan node yang telah dihapus atau tidak pernah dibuat. | Konfigurasi ulang variabel atau tambahkan node yang hilang. |
| Path [node2.path] yang ditentukan di node [node1] tidak valid karena node [node2] bukan node leluhur dari node saat ini. | Variabel mereferensikan node yang tidak berada di hulu node saat ini. | Referensikan hanya variabel dari node leluhur. |
Error eksekusi komponen
| Kode error | Pesan error | Perbaikan |
|---|---|---|
sophon.Internal.Error | Terjadi error sistem internal. | Periksa parameter dan konfigurasi resource Anda. Jika masalah berlanjut, hubungi dukungan. |
component.Internal.ParamError | Error parameter komponen. | Verifikasi bahwa semua parameter yang dikonfigurasi untuk komponen sudah benar. |
component.Abnormal.InvokeError | Error eksekusi komponen. | Periksa pesan error untuk detailnya. Hubungi dukungan jika diperlukan. |
filter.Abnormal.Fail | Data tidak memenuhi kondisi filter. | Verifikasi bahwa kondisi filter telah didefinisikan dengan benar. |
securityGroup.Internal.HostIsOutside | Host di luar cloud tidak dapat menggunakan security group untuk memblokir alamat IP. | Pastikan host target adalah host berbasis cloud. |
securityGroup.Internal.NumberExceedLimit | Jumlah security group atau aturan grup keamanan melebihi batas. | Periksa apakah security group atau aturan yang terkait dengan host melebihi batas yang diizinkan. |
sts_openapi.Internal.ParamError | ParamError: Parameter permintaan Anda tidak valid. | Periksa parameter input aktual yang diteruskan ke komponen. |
sts_openapi.Internal.WafRuleError | VerifyRuleCountExceed: Jumlah aturan melebihi batas. | Batas aturan kustom WAF telah tercapai. Hapus aturan yang tidak digunakan. |
sts_openapi.Internal.DefenseTemplateNotExist | Defense.Control.DefenseTemplateNotExist: Template perlindungan tidak ada. | Periksa apakah template WAF tidak sengaja dihapus. |
sts_openapi.Internal.DefenseTemplateBindUnbindResourceInvalid | Defense.Control.DefenseTemplateBindUnbindResourceInvalid: Resource yang akan di-bind template tidak tersedia. | Periksa apakah resource yang terkait dengan template WAF tersedia. |
sts_openapi.Internal.DefenseResourceRelationExist | Defense.Control.DefenseResourceRelationExist: Resource yang akan di-bind template sudah di-bind ke template lain. | Periksa apakah resource sudah di-bind ke template WAF lain. |
sts_openapi.Info.DefenseSceneNotSupported | Defense.Control.DefenseSceneNotSupported: Skenario perlindungan ini tidak didukung. | Versi WAF saat ini tidak mendukung aturan kustom. Tingkatkan ke edisi WAF yang lebih tinggi. |
sts_openapi.Internal.ErrorAddressGroupExist | ErrorAddressGroupExist: Grup alamat sudah ada. | Nama grup alamat Cloud Firewall bentrok dengan yang sudah ada. Gunakan nama berbeda. |
sts_openapi.Internal.PermissionError | NoPermission: Pemanggil tidak memiliki izin. | Berikan izin yang diperlukan untuk memodifikasi resource terkait. |
sts_openapi.Internal.CFWRuleError | acl atau expand acl count exceed. | Batas aturan Cloud Firewall telah tercapai. Hapus aturan yang tidak digunakan. |
sts_openapi.Internal.InvalidSecurityGroupId | InvalidSecurityGroupId.NotFound: SecurityGroupId yang ditentukan tidak ada. | Periksa apakah security group tidak sengaja dihapus. |
sts_openapi.Internal.ErrorParametersGroupAddress | ErrorParametersGroupAddress: Alamat IP dalam grup alamat tidak valid. | Buku alamat IP saat ini tidak tersedia. Verifikasi konfigurasinya. |
sts_openapi.Internal.notBuyUser | not buy user: Pengguna belum membeli produk. | Beli Cloud Firewall untuk menggunakan komponen ini. |
sts_openapi.Internal.Throttling | throttling atau Throttling | Pemanggilan OpenAPI dibatasi lajunya. Kurangi frekuensi permintaan dan coba lagi. |
python.Info.aegis2 | Proses tidak ada. | Proses target tidak lagi ada. |
python.Internal.aegis3 | PID proses dan path tidak cocok. | Verifikasi bahwa PID dan path file sesuai dengan proses yang sama. |
python.Internal.aegis4 | Izin proses ditolak. | Izin tidak mencukupi untuk menangani proses. |
python.Info.aegis5 | File tidak ada. | File target tidak lagi ada. |
python.Internal.aegis6 | Nilai MD5 file tidak konsisten. | MD5 input tidak cocok dengan file aktual. Verifikasi integritas file. |
python.Internal.aegis7 | Izin file ditolak. | Izin tidak mencukupi untuk menangani file. |
python.Internal.aegis8 | File objek ada dan nilai MD5-nya tidak konsisten. | File objek ada tetapi memiliki MD5 berbeda. Verifikasi file tersebut. |
python.Internal.aegis9 | File backup tidak ada. | File backup untuk file target tidak ada. |
python.Internal.aegis10 | Catatan pemagaran tidak ditemukan. | Tidak ada catatan pemagaran file terkait untuk target. |
python.Internal.aegis11 | Proses AliYunDun tidak dapat dihentikan atau dipagari. | Proses AliYunDun dilindungi dan tidak dapat dihentikan atau dipagari. |
python.Internal.aegis91 | Informasi host tidak ada. | Informasi host tidak tersedia. Verifikasi bahwa host telah terdaftar di Security Center. |
python.External.Fail | Error skrip Python. | Terjadi error selama eksekusi skrip. Tinjau pesan error atau hubungi dukungan. |
python.External.Data | Error format input komponen Python. | Format input yang diteruskan ke komponen Python tidak valid. Tinjau pesan error atau hubungi dukungan. |
) untuk mengonfigurasi informasi dasarnya.