GitSync
GitSync adalah integrasi andal yang dibuat oleh tim Layanan Profesional Google Security Operations SOAR dan dirancang untuk menyinkronkan komponen Google Security Operations SOAR dengan repositori git. LFS menggunakan operasi internal git untuk menulis langsung ke repositori itu sendiri, sehingga pada dasarnya menjadikannya bertindak sebagai layanan penyimpanan file. API ini menyediakan metode untuk melakukan hal berikut:
Memigrasikan Aset antar-instance Google Security Operations SOAR
Mencadangkan aset Google Security Operations SOAR
Dokumentasi Otomatis
Membuat "toko" untuk membagikan aset/pengetahuan
Kontrol Versi
Integrasi ini terdiri dari beberapa tugas SOAR Google Security Operations - tugas push dan pull untuk setiap aset yang didukung, serta tugas push/pull untuk seluruh instance SOAR Google Security Operations. Tugas ini tidak perlu dijalankan secara berkala karena dibuat untuk dijalankan secara manual dari IDE, tetapi dapat digunakan sebagai tugas reguler (Misalnya, mengupload commit harian).
GitSync akan menggunakan Google Security Operations SOAR API untuk mengambil aset yang relevan, seperti integrasi atau keluarga visual, dan mengurai semua informasi yang tersedia dari aset tersebut (Informasi ini nantinya akan dirender ke file README.md yang biasanya ditampilkan saat menjelajahi repositori). Kemudian, tulis definisi JSON aset dan README yang dirender ke repositori lokal, lalu kirimkan ke repositori jarak jauh.
Penggunaan GitSync lainnya adalah berbagi pengetahuan. Dengan integrasi ini, repositori git dapat bertindak sebagai "penyimpanan" untuk aset seperti playbook atau setelan ontologi yang dirancang sebelumnya dan memanfaatkan praktik terbaik SOAR Google Security Operations untuk mengoptimalkan platform.
Prasyarat
Mengirim/Menarik repositori yang ada:
Metode autentikasi ke Git. Kombinasi Nama Pengguna/Sandi (tidak direkomendasikan), token akses (direkomendasikan), dan kunci pribadi SSH yang dienkode base64 (direkomendasikan) didukung. Saat menggunakan dua yang terakhir, parameter username tidak diperlukan.
Pengguna Google Security Operations SOAR lokal. Digunakan untuk mengimpor aset. Pengguna ini harus memiliki izin untuk menulis modul target (Misalnya, pengguna tanpa akses ke IDE tidak akan dapat menarik integrasi).
Membuat repositori baru
Semua poin yang disebutkan di bagian Mendorong/Menarik repositori yang ada sebelumnya.
Repositori jarak jauh. Sebaiknya ada minimal 1 file di repositori. Sebagian besar layanan Git memberikan opsi untuk membuat file README saat membuat repositori.
Mengonfigurasi integrasi
Anda harus mengonfigurasi integrasi sebagai Instance Bersama. Lingkungan ini tidak dapat dihubungkan ke lingkungan yang ada di Google SecOps SOAR.
Properti Integrasi
Nama Parameter | Deskripsi |
URL Repo | URL repositori. Saat menggunakan autentikasi nama pengguna/sandi, nilai ini harus dimulai dengan https://. Jika menggunakan autentikasi SSH, nilai ini harus diawali dengan git@ atau ssh://. (Lihat Mengonfigurasi URL Repo dan Cabang di bawah). |
Cabang | Cabang di repositori yang akan disinkronkan. |
Sandi/Token/Kunci SSH Git | Metode autentikasi ke git. Nilai ini dapat berupa Sandi/Token Git/Kunci Pribadi SSH. Kunci pribadi harus dienkode ke base64. RSA dan Ed25519 didukung. |
Nama Pengguna Git | Nama pengguna Git. Nilai ini tidak wajib diisi saat menggunakan autentikasi SSH. |
Penulis Commit |
Tidak wajib. Memberikan kemampuan untuk menentukan penulis commit. Nilai ini harus dalam format berikut: Nama pengguna |
Google Security Operations SOAR Memverifikasi SSL | Memverifikasi SSL ke Google Security Operations SOAR API |
Git Memverifikasi SSL | Verifikasi SSL dengan layanan git target |
Mengonfigurasi URL Repo dan Cabang
Dalam panduan ini, kami akan menunjukkan cara mendapatkan nilai yang tepat di Bitbucket (perhatikan bahwa prosesnya sama di GitHub).
Temukan repositori di Bitbucket.
Klik tombol clone di pojok kanan atas (Code in GitHub)
Autentikasi Nama Pengguna/Sandi atau Token - URL repositori adalah https://bitbucket.org/siemplifyproserv/connectors.git . (Nama pengguna dapat diabaikan)
Periksa cabang saat ini (master pada gambar di bawah)
Contoh Penggunaan
Setiap Tugas di GitSync berisi parameter berikut:
Nama | Deskripsi |
Khusus tugas - Nama konektor, ID Integrasi, daftar yang diizinkan untuk playbook, dll. | Parameter ini digunakan untuk menentukan apa yang didorong atau ditarik ke repositori. Di GitSync, aset dirujuk berdasarkan ID-nya. Nilai ini peka huruf besar/kecil. |
URL dan Cabang Repo | Menambahkan dukungan untuk beberapa repositori dengan kredensial yang sama. Setelah parameter ini ditetapkan, repositori yang dikonfigurasi di instance integrasi akan diabaikan. |
Pesan Commit | Saat mengirimkan aset ke repositori, pesan diperlukan untuk commit. Di sini, Anda dapat menentukan alasan melakukan push, yang menunjukkan apa yang diperbaiki, diubah, atau ditambahkan ke aset. |
Add-on Readme | Menambahkan kemampuan untuk memperluas dokumentasi aset saat didorong. Dalam nilai ini, Anda dapat menggunakan:
Template ditambahkan ke akhir dokumentasi dan disimpan dalam file metadata GitSync.json di root repositori. |
Menarik Aset
Dalam contoh ini, kita akan menarik konektor dengan pemetaan dan keluarga visual yang benar.
- Pertama, pastikan aset berada di repositori yang dikonfigurasi. Cukup jelajahi direktori repositori dan salin ID aset (Biasanya berupa nama direktori atau judul file README).
Contoh dari repositori di Bitbucket, di direktori Connectors. Perhatikan bahwa direktori adalah nama integrasi, dan di dalamnya terdapat ID sebenarnya untuk konektor. Temukan pekerjaan yang sesuai di SOAR IDE Google Security Operations. Dalam contoh ini, kita akan menggunakan tugas Pull Connector.
Catatan: Saat menarik konektor, pastikan integrasi konektor juga terpasang.
Klik tab pengujian dan konfigurasi parameter. Karena kita menggunakan satu repositori dan repositori tersebut sudah dikonfigurasi di instance integrasi, kita akan membiarkan parameter URL Repo dan Cabang kosong, serta menetapkan parameter lainnya ke nilai yang kita butuhkan.
Menjalankan tugas.
Lihat Output Debug untuk log operasi. Jika semuanya berjalan lancar, log akan menunjukkannya.
- Buka Google Security Operations SOAR -> Connectors, lalu konfigurasi konektor.
Mendorong Aset
Dalam contoh ini, kita akan mengirimkan playbook dan blok ke repositori.
Identifikasi playbook yang ingin Anda kirim. Di sini, kita akan mengirimkan blok baru yang disebut Login Gagal dan playbook yang diperbarui yang disebut Aktivitas Berbahaya.
Temukan pekerjaan yang sesuai di SOAR IDE Google Security Operations. Dalam contoh ini, kita akan menggunakan Push Playbook pekerjaan.
Klik tab pengujian dan konfigurasi parameter.
- Karena keduanya berada di folder yang sama (Default), Anda juga dapat menggunakan Daftar Folder yang Diizinkan.
Menjalankan tugas.
Lihat Output Debug untuk log operasi. Jika semuanya berjalan lancar, log akan menunjukkannya.
Validasi bahwa repositori berisi playbook versi terbaru.
Membuat repositori baru
Untuk membuat repositori baru, hanya ada satu hal yang penting, yaitu menyertakan satu file dalam repositori sebelum mengonfigurasinya dengan GitSync. Hal ini dapat dilakukan dengan cepat dengan menyertakan file README di root repositori saat membuat repositori.
Bitbucket

GitHub

Masalah umum dan batasan
Setelah repositori disetel untuk pertama kalinya, repositori akan menggunakan struktur direktori yang telah ditentukan sebelumnya untuk memastikan bahwa repositori mengetahui lokasi setiap aset. Jika gagal mengikuti struktur direktori dengan commit kustom atau perubahan pada repositori, integrasi akan mengalami malfungsi. Anda dapat menemukan skema struktur direktori repositori di akhir dokumen ini.
Berhati-hatilah saat menggunakan integrasi ini dengan repositori publik. Aset SOAR Google Security Operations menggunakan parameter yang menyimpan ID Aplikasi, ID Klien, Nama Pengguna, dan informasi sensitif lainnya. GitSync tidak dapat mengetahui apakah parameter bersifat sensitif atau tidak, sehingga setiap parameter yang bukan berjenis "Password" akan diupload ke repositori. Selain itu, saat mengirimkan instance SOAR Google Security Operations (pekerjaan Push Environment), ada opsi untuk Commit Passwords. Opsi ini memberi tahu GitSync untuk mencoba mengekspor semua parameter sandi dari konfigurasi integrasi. Jangan setel nilai ini ke benar (true) jika repositori bersifat publik, atau semua kredensial akan bocor secara online.
Saat menarik instance SOAR Google Security Operations (tugas Pull Environment), penginstalan semua integrasi mungkin memerlukan waktu lebih dari 5 menit, dan tugas akan gagal karena waktu tunggu habis. Sebaiknya instal semua integrasi komersial dari Google Security Operations Marketplace secara manual terlebih dahulu untuk menghindari masalah. Namun, Anda juga dapat menjalankan ulang tugas jika gagal karena waktu tunggu habis.
Integrasi komersial dan integrasi kustom ditangani secara berbeda. Integrasi kustom akan didorong sebagai seluruh ekspor zip integrasi, untuk operasi impor/ekspor. Integrasi komersial akan didorong hanya dengan kode kustom. Setelah ditarik, GitSync akan menginstal integrasi versi terbaru dari Google SecOps Marketplace, dan menyimpan kode kustom dalam integrasi resmi.
Saat menarik pemetaan, pemetaan tidak akan muncul di tabel Setelan -> Ontologi -> Status Ontologi hingga peristiwa benar-benar dimasukkan ke dalam SOAR Google Security Operations, karena belum diindeks.
Repositori lokal disimpan di /opt/siemplify/siemplify_server/GitSyncFiles/{RepoName}. Karena integrasi menulis objek Git, bukan file, folder ini tidak merepresentasikan repositori dan ditimpa dengan perubahan apa pun yang dilakukan setiap kali tugas dijalankan. Sebaiknya gunakan clone repositori lain, bukan yang dibuat oleh GitSync.
Playbook dengan izin terbatas (misalnya, izin default ditetapkan ke Dapat Melihat) memerlukan konfigurasi izin tertentu pada sistem sumber agar sinkronisasi berhasil melalui GitSync. Untuk mengetahui informasi selengkapnya, lihat Menangani izin playbook.
Google SecOps mendukung penggunaan GitSync untuk mencadangkan aset SOAR. Namun,Google SecOps tidak mendukung penggunaan GitSync untuk *mendistribusikan* aset SOAR antar-sistem. Hal ini dapat menyebabkan hasil yang tidak terduga karena objek database mungkin tidak unik.
Bekerja dengan izin playbook
Saat menggunakan GitSync untuk menyinkronkan playbook dengan izin terbatas (misalnya, izin default ditetapkan ke Dapat Melihat, atau setelan non-default lainnya), Anda mungkin mengalami error di sistem tujuan jika sistem tersebut tidak memiliki otorisasi untuk mengubah playbook. Hal ini terjadi karena GitSync menggunakan kunci API Sistem internal dengan peran SOC Administrator
untuk melakukan tindakan. Untuk memastikan sinkronisasi playbook berhasil dengan izin yang dibatasi, berikan izin Dapat Mengedit untuk Administrator
peran SOC di sistem sumber untuk playbook tersebut.
Mengaktifkan GitSync untuk menarik playbook dengan izin terbatas
- Di sistem sumber:
- Buka playbook yang ingin Anda sinkronkan dengan GitSync.
- Buka setelan izin playbook.
- Pastikan peran SOC
Administrator
ditambahkan ke daftar entitas dengan izin Dapat Mengedit.
- Setelah menyesuaikan izin di sistem sumber, jalankan tindakan Push Playbook di GitSync untuk memperbarui repositori Git dengan playbook dan izinnya.
- Di sistem tujuan, jalankan tindakan Pull Playbook di GitSync.
Membuat Kunci SSH untuk digunakan dengan GitSync
Pertama, buat pasangan kunci. Saat diminta frasa sandi, tekan enter:
ssh-keygen -b 2048 -t rsa -f ./id_rsa
Dua file akan dibuat, id_rsa (kunci pribadi) dan id_rsa.pub (kunci publik). Simpan kunci pribadi di lokasi yang aman.
Tetapkan kunci publik di repositori. Misalnya, di Bitbucket, masukkan setelan repositori, lalu klik Access Keys. Klik Tambahkan Kunci dan tempel konten id_rsa.pub di parameter Kunci.
Sebelum kunci pribadi dapat ditambahkan ke konfigurasi integrasi, kunci tersebut harus dienkode ke Base64.
Gunakan perintah berikut untuk mengenkode file:
- Linux:
cat id_rsa | base64 -w 0
- Windows:
Buka PowerShell tempat id_rsa berada dan tempelkan (Ini adalah satu baris):
Write-Output [System.Text.Encoding]::ASCII.GetString([convert]::ToBase64String(([IO.File]::ReadAllBytes((Join-Path (pwd) 'id_rsa')))))
- Linux:
- Salin nilai yang dicetak ke properti integrasi Password/Token/SSH Key dan uji konektivitas integrasi.
Struktur Direktori repositori GitSync
Berikut adalah struktur direktori yang diharapkan di repositori jarak jauh.
* Ini adalah output perintah tree untuk contoh repositori. Komentar berwarna merah.


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