Gunakan skrip Python untuk memicu pemindaian kerentanan darurat Cloud Security Center secara batch di seluruh akun anggota Resource Directory (RD). Skrip ini memanggil API ModifyEmgVulSubmit dan menemukan akun secara otomatis melalui RD, sehingga menghilangkan kebutuhan daftar akun manual.
Latar Belakang
Organisasi Anda mengelola 150 akun anggota di bawah RD. Ditemukan kerentanan peningkatan hak istimewa lokal (CVE-2021-4034) pada polkit pkexec, dan tim keamanan Anda harus segera menilai dampaknya di seluruh akun.
Pendekatan manual memiliki beberapa masalah:
Respons manual yang lambat: Masuk ke 150 akun satu per satu membutuhkan waktu berjam-jam — jendela penanganan mungkin sudah tertutup sebelum Anda selesai.
Kesalahan cakupan: Daftar akun yang dikelola secara manual mudah melewatkan anggota RD baru.
Risiko otomatisasi: Skrip konkuren tanpa API throttling akan mencapai batas laju permintaan dan menyebabkan kegagalan batch.
Visibilitas terfragmentasi: Hasil pemindaian tersebar di berbagai akun tanpa tampilan terpusat mengenai status kerentanan di seluruh organisasi.
Ikhtisar Solusi
Skrip Python di mesin lokal Anda mengambil semua akun anggota dari RD dan mengirimkan tugas pemindaian kerentanan darurat melalui API Cloud Security Center. Setelah pemindaian selesai, lihat hasilnya di dasbor Agentic SOC.
Skrip ini melakukan autentikasi dengan AccessKey Pengguna RAM dan memanggil DescribeEmgVulItem untuk memvalidasi nama kerentanan. Skrip kemudian menggunakan API ListAccounts RD untuk menemukan semua akun anggota dan memanggil ModifyEmgVulSubmit untuk setiap akun guna mengirimkan tugas pemindaian. Hasilnya dialirkan ke SLS melalui Agentic SOC untuk pemantauan terpusat.
Prosedur
Langkah 1: Siapkan lingkungan dan izin
Verifikasi prasyarat berikut:
Akun Alibaba Cloud yang telah diverifikasi sebagai perusahaan dengan hak istimewa administrator.
Cloud Security Center (edisi Advanced atau lebih tinggi) diaktifkan di semua akun anggota RD, dengan konfigurasi ingest log Agentic SOC (Konfigurasi akses).
Python 3.6 atau versi lebih baru telah diinstal di mesin lokal.
Buat Pengguna RAM (misalnya,
VulnScanner) dan berikan izin berikut:AliyunYundunSASFullAccess(Wajib): Memberikan akses ke API pemindaian Cloud Security Center. Topik ini menggunakan kebijakan sistem untuk validasi cepat. Di lingkungan produksi, buat kebijakan kustom yang hanya memberikan izin ModifyEmgVulSubmit dan DescribeEmgVulItem.AliyunResourceDirectoryReadOnlyAccess(Disarankan): Memungkinkan penemuan otomatis semua akun anggota RD. Tanpa izin ini, Anda harus mencantumkan ID akun secara manual dalam file konfigurasi.
Aktifkan akses OpenAPI dan simpan AccessKey. Anda memerlukannya di Langkah 3: Jalankan pemindaian.
PentingJangan pernah menggunakan AccessKey Akun Alibaba Cloud Anda (akun root) untuk menjalankan skrip. Selalu gunakan AccessKey Pengguna RAM khusus yang dibuat di atas, dan putar secara berkala untuk meminimalkan risiko kebocoran kredensial.
Langkah 2: Unduh skrip dan konfigurasikan parameter pemindaian
Unduh tiga file berikut ke direktori kerja Anda:
scan_manager.py: Skrip utama. Melakukan iterasi melalui akun dan memanggil API pemindaian untuk masing-masing.config.ini: File konfigurasi. Menentukan titik akhir layanan, kerentanan target, dan parameter pemindaian.requirements.txt: Pustaka Python yang diperlukan.
Buka
config.inidan atur parameter berikut:endpoint: titik akhir layanan Cloud Security Center untuk wilayah tempat aset Anda berada. Skrip menargetkan satu wilayah per eksekusi — jalankan secara terpisah untuk setiap wilayah jika aset tersebar di beberapa wilayah.scan_targets: Nama kerentanan darurat yang akan dipindai, dipisahkan koma. Salin nama langsung dari halaman Urgent Vulnerability di konsol. Saat startup, skrip memanggil DescribeEmgVulItem untuk mengonversi nama tampilan menjadi nama API internal.max_qps: Laju permintaan API maksimum dalam QPS. Default: 6, cukup untuk sebagian besar skenario. Untuk laju lebih tinggi dengan jumlah akun besar, ajukan peningkatan kuota di Quota Center.member_uids: ID akun anggota yang akan dipindai, dipisahkan koma. Biarkan kosong jika Pengguna RAM memiliki izin baca RD — skrip akan menemukan semua akun secara otomatis.
Langkah 3: Jalankan pemindaian
Ekspor AccessKey Pengguna RAM (yang dibuat di Langkah 1) sebagai variabel lingkungan.
export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESSKEY_ID" export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESSKEY_SECRET"Instal dependensi.
pip3 install -r requirements.txtJalankan skrip pemindaian.
python3 scan_manager.pySkrip mencetak progres secara real-time. Contoh output:
Mengkueri daftar kerentanan darurat... ✅ 'polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034)' → emg_cve-2021-4034:EMG:AVD-2021-4034 ✅ Berhasil mencocokkan 1 kerentanan ℹ️ 'member_uids' kosong, mencoba menemukan akun anggota secara otomatis dari Resource Directory... ✅ Berhasil menemukan 150 akun anggota dari Resource Directory. Mulai memproses 1 kerentanan × 150 akun = 150 tugas pemindaian Pembatasan kecepatan QPS diatur pada 6. Perkiraan waktu penyelesaian: 25.0 detik ✅ [1/150] Berhasil: Kerentanan='polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034)', ID Akun=198XXXXXXXXXXX13 (QPS rata-rata saat ini: 5.8) ✅ [2/150] Berhasil: Kerentanan='polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034)', ID Akun=142XXXXXXXXXXX84 (QPS rata-rata saat ini: 5.9) ✅ [3/150] Berhasil: Kerentanan='polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034)', ID Akun=188XXXXXXXXXXX97 (QPS rata-rata saat ini: 5.7) ... ✅ [150/150] Berhasil: Kerentanan='polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034)', ID Akun=156XXXXXXXXXXX62 (QPS rata-rata saat ini: 5.9) ================================================== Pemrosesan selesai! Total waktu: 25.8 detik Berhasil: 150, Gagal: 0, Total: 150 QPS rata-rata aktual: 5.8 (Target QPS: 6) ==================================================
Langkah 4: Lihat hasil pemindaian
Login ke Konsol Cloud Security Center sebagai Pengguna RAM. Di panel navigasi kiri, pilih Agentic SOC > Log. Dari daftar Logstore, pilih Standardized Log > Vulnerability Activity. Atur rentang waktu yang mencakup jendela pemindaian Anda dan klik Search & Analyze.

Kerentanan darurat hanya mendukung pemindaian — bukan remediasi otomatis. Kerentanan ini terdeteksi pada perangkat lunak yang diinstal di server Anda. Ikuti saran remediasi di detail kerentanan untuk secara manual meningkatkan atau mengonfigurasi ulang perangkat lunak yang terpengaruh.
Praktik terbaik untuk lingkungan produksi
Siapkan pemindaian rutin
Daripada hanya menjalankan skrip setelah pengungkapan kerentanan, jadwalkan skrip agar berjalan secara rutin sehingga kerentanan baru dapat terdeteksi secara otomatis:
Gunakan tugas crontab atau Windows Task Scheduler untuk menjalankan skrip setiap hari.
Sebarkan skrip sebagai fungsi Function Compute (FC) dengan pemicu berbasis waktu untuk menghindari pemeliharaan server khusus.
Perkuat manajemen AccessKey
Putar secara berkala: Putar AccessKey Pengguna RAM setiap 90 hari untuk membatasi paparan jika kunci dikompromikan.
Gunakan instance RAM role: Jika skrip dijalankan di Instance ECS, tetapkan instance RAM role alih-alih mengekspor AccessKey ke variabel lingkungan.
Batasi IP sumber: Tambahkan kondisi IP ke kebijakan RAM sehingga panggilan API hanya diterima dari jaringan operasional Anda.
FAQ
Pemindaian berhasil dikirim, tetapi tidak ada catatan yang muncul di log kerentanan Agentic SOC
Pengumpulan log tidak diaktifkan: Di Agentic SOC, verifikasi bahwa toggle pengumpulan Vulnerability Activity diaktifkan di halaman Log.
Pemindaian masih berlangsung: ModifyEmgVulSubmit hanya mengirimkan tugas pemindaian — pemindaian aktual berjalan secara asinkron dan mungkin memerlukan beberapa menit hingga puluhan menit tergantung jumlah aset.
Tidak ada kerentanan yang terdeteksi: Log Kerentanan hanya mencatat kerentanan yang terdeteksi. Jika aset akun anggota tidak terpengaruh, tidak ada entri yang dihasilkan. Untuk memverifikasi, login ke akun anggota dan periksa Risk Governance > Vulnerabilities > Urgent Vulnerability.
Log multi-akun tidak diagregasi: Log akun anggota harus diagregasi ke akun manajemen melalui Agentic SOC. Verifikasi bahwa Cloud Security Center diaktifkan di semua akun anggota dan onboarding multi-akun terpusat telah selesai.
Resolusi nama kerentanan gagal dengan pesan "No matching emergency vulnerability found"
Verifikasi bahwa nama dalam scan_targets di config.ini persis sesuai dengan halaman Urgent Vulnerability di konsol Cloud Security Center, termasuk tanda kurung dan spasi. Salin nama langsung dari konsol untuk menghindari kesalahan.
Jika nama sudah benar tetapi resolusi tetap gagal, kerentanan tersebut mungkin telah melewati periode respons daruratnya dan tidak lagi tersedia melalui DescribeEmgVulItem.