All Products
Search
Document Center

Security Center:Apa itu perlindungan aplikasi

Last Updated:Jun 04, 2026

Perlindungan Aplikasi didasarkan pada teknologi RASP (Runtime Application Self-Protection) yang mendeteksi dan memblokir serangan selama waktu proses aplikasi, memberikan pertahanan kuat tanpa perlu mengubah kode. Cukup deploy probe RASP pada host atau kontainer Anda untuk melindungi terhadap eksploitasi kerentanan yang belum diketahui, injeksi memory shell, serta ancaman lanjutan lainnya.

Cara kerja

Perlindungan Aplikasi menggunakan teknologi RASP untuk memantau perilaku aplikasi dari dalam. Dengan melakukan hook pada fungsi kritis di lapisan aplikasi, sistem ini mengamati interaksi antara aplikasi dan sistem lain secara real time. Ketika perilaku mencurigakan terdeteksi, sistem menganalisis konteks eksekusi saat itu untuk mengidentifikasi dan memblokir serangan.

Fitur ini melindungi proses web pada host Anda dari kerentanan aplikasi, kerentanan nol hari, dan serangan memory shell.

Skenario dan manfaat

  • Menjamin keamanan aplikasi internal: RASP tidak berfokus pada asal lalu lintas—melainkan pada perilaku aplikasi—sehingga mampu mempertahankan terhadap ancaman Utara-Selatan maupun timur-barat. RASP berjalan bersama proses aplikasi dan berperan sebagai lini pertahanan terakhir bagi aset aplikasi Anda.

  • Menangani encoding kompleks dan lalu lintas terenkripsi: RASP memiliki visibilitas penuh terhadap konteks aplikasi. Terlepas dari bagaimana permintaan ditransformasi, aksi yang diambil aplikasi tetap konsisten—sehingga RASP dapat mendeteksi anomali ketika identitas dan perilaku tidak sesuai. Berbeda dengan perangkat batas jaringan yang tidak dapat mengaudit lalu lintas terenkripsi, RASP memperoleh data permintaan terdekripsi lengkap langsung dari dalam aplikasi.

  • Tingkat false positive dan false negative rendah; melindungi terhadap kerentanan nol hari: RASP menganalisis data dari operasi fungsi kritis dalam aplikasi dan mengabaikan serangan yang sebenarnya tidak dapat dieksekusi—sehingga mengurangi false positive maupun false negative. Untuk kerentanan nol hari, tidak peduli bagaimana serangan masuk atau seberapa tersembunyi tekniknya, serangan tersebut tidak dapat melewati jalur eksekusi fungsi kritis, sehingga RASP dapat mencegatnya secara efektif.

  • Pelacakan serangan dan lokalisasi kerentanan: RASP menyediakan rantai serangan terperinci kepada tim keamanan dan pengembang, termasuk muatan serangan asli, tumpukan panggilan kode, dan informasi lainnya—memudahkan lokalisasi, reproduksi, dan perbaikan kerentanan.

  • Biaya operasional rendah: Mudah dideploy melalui Konsol—tidak perlu memelihara atau memperbarui aturan spesifik.

Prasyarat dan batasan

Perlindungan Aplikasi mendukung aplikasi Java, PHP, dan Node.js. Fitur ini berjalan pada Instance ECS Alibaba Cloud, server penyedia cloud pihak ketiga, serta server IDC on-premises yang telah menginstal agen Security Center.

Sistem operasi berikut didukung:

Sistem Operasi

Sistem Operasi yang Didukung

Windows (64-bit)

  • Windows Server 2025

  • Windows Server 2022

  • Windows Server 2019

  • Windows Server 2016

  • Windows Server 2012

  • Windows Server 2008

  • Windows 11

  • Windows 10

Linux (64-bit)

  • Alibaba Cloud Linux

  • AlmaLinux

  • Anolis OS

  • CentOS 6, 7, 8

  • CentOS Stream

  • Debian 8 dan versi lebih baru

  • Gentoo

  • OpenSUSE

  • RHEL 6, 7, 8, 9

  • Rocky Linux

  • SUSE Linux Enterprise Server

  • Ubuntu 14.04 dan versi lebih baru

  • NeoKylin V7, Kylin V10

  • TencentOS

  • Oracle Linux 7, 8, 9

  • openEuler 20.03, 22.03

  • EulerOS

  • Amazon Linux 2, 2023

Kemampuan yang didukung

Deteksi serangan (aplikasi Java)

Tabel berikut mencantumkan jenis serangan yang dapat dideteksi dan dicegat oleh Perlindungan Aplikasi, beserta rekomendasi perlindungan terkait.

Jenis Serangan

Deskripsi

Rekomendasi

JNI Injection

Injeksi JNI adalah teknik umum untuk bypass RASP. Ketika penyerang mendapatkan eksekusi kode, mereka dapat menggunakan fungsi Java Native Interface untuk memanggil library bersama eksternal berbahaya, melewati perlindungan keamanan tingkat Java dan menyembunyikan perilaku berbahaya.

Kerentanan eksekusi kode mungkin ada di server Anda. Periksa lokasi kerentanan tersebut dan batasi fungsionalitas eksekusi kode.

SQL Injection

Serangan SQL injection bekerja dengan menyisipkan perintah SQL ke dalam permintaan halaman atau string kueri formulir web, sehingga menipu server untuk mengeksekusi pernyataan SQL sembarang. Penyerang dapat mengeksploitasi formulir web untuk mengekstraksi data dari situs web yang rentan.

SQL injection disebabkan oleh penggabungan pernyataan SQL. Gunakan prepared statements untuk menangani parameter input sedapat mungkin, atau batasi penggabungan parameter menggunakan allowlist dan blocklist.

XXE

Serangan injeksi XML External Entity (XXE) terjadi ketika parser XML memproses referensi entitas eksternal. Penyerang dapat membuat konten XML berbahaya untuk mencapai pembacaan file sembarang, eksekusi perintah, dan serangan jaringan internal.

Periksa apakah aplikasi Anda perlu memuat entitas eksternal saat mengurai XML. Jika tidak, nonaktifkan entitas eksternal dalam konfigurasi penguraian XML Anda.

Malicious DNS Query

Kueri DNS berbahaya dapat dieksploitasi dalam berbagai cara. Penyerang dapat menggunakan protokol DNS untuk melewati pembatasan jaringan internal dan mengekstraksi data sensitif, atau untuk memindai sistem internal guna mencari kerentanan seperti SSRF dan injeksi JNDI.

Kueri DNS berbahaya dipicu ketika server mengirim permintaan ke parameter yang dikontrol pengguna. Periksa parameter tersebut dan batasi menggunakan allowlist.

Malicious Reflection Call

Ini adalah modul perlindungan diri RASP yang mencegah penyerang memodifikasi data runtime RASP melalui refleksi.

Kerentanan eksekusi kode mungkin ada di server Anda. Periksa lokasi kerentanan tersebut dan batasi fungsionalitas eksekusi kode.

Malicious Outbound Connection

SSRF (Server-Side Request Forgery) adalah kerentanan di mana penyerang membuat permintaan yang diinisiasi server untuk menargetkan sistem internal.

Untuk memperbaiki kerentanan SSRF, batasi rentang alamat target yang dapat dijangkau oleh permintaan server. Gunakan allowlist untuk mengizinkan akses hanya ke sumber daya internal yang aman, dan nonaktifkan akses jaringan outbound yang tidak diperlukan.

Malicious File Read/Write

Kelas RandomAccessFile Java digunakan untuk operasi baca dan tulis file. Jika jalur dan konten file tidak dibatasi saat menggunakan kelas ini, penyerang dapat membaca file sistem sensitif atau mengunggah file trojan berbahaya.

Periksa apakah operasi baca dan unggah file normal. Jika tidak normal, periksa kode fungsi dan batasi operasi menggunakan blocklist.

Malicious File Upload

Jika fitur unggah file situs web tidak membatasi jenis file, penyerang dapat mengunggah file trojan berbahaya untuk mendapatkan akses server yang lebih luas, menyebabkan kerusakan serius.

Batasi jenis file yang dapat diunggah dan larang file dengan izin eksekusi, seperti JSP.

Command Execution

Kerentanan eksekusi perintah terjadi ketika server tidak menyaring perintah yang dapat dieksekusi pengguna, sehingga memungkinkan eksekusi perintah sistem sembarang.

Eksekusi perintah jarak jauh sering disebabkan oleh webshell atau kode berbahaya di server. Segera hapus webshell tersebut. Jika merupakan fitur normal server, batasi perintah yang dapat dieksekusi menggunakan allowlist.

Directory Traversal

Kelemahan konfigurasi di situs web dapat memungkinkan penelusuran direktori sembarang, menyebabkan kebocoran privasi yang dapat dieksploitasi penyerang.

Periksa apakah operasi penelusuran direktori normal. Jika tidak normal, periksa kode fungsi dan gunakan blocklist untuk membatasi perintah terkait seperti "./" dan "../".

Memory Shell Injection

Memory shell adalah teknik malware baru di mana penyerang menginjeksikan trojan ke memori server menggunakan metode khusus, sehingga berhasil melewati WAF dan pertahanan berbasis host.

Kerentanan eksekusi kode mungkin ada di server Anda. Periksa lokasi kerentanan tersebut dan batasi fungsionalitas eksekusi kode.

Arbitrary File Read

Jika fitur unduh dan baca file situs web menggunakan jalur mutlak atau karakter penelusuran direktori tanpa pembatasan pada jalur file, penyerang dapat memperoleh informasi sensitif dan menyerang server.

Periksa apakah operasi baca file normal. Jika tidak normal, periksa kode fungsi dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Thread Injection

Thread injection adalah teknik umum untuk bypass RASP. Ketika penyerang mendapatkan hak istimewa eksekusi kode, mereka dapat membuat thread baru sehingga RASP kehilangan konteks lingkungan runtime, memengaruhi kemampuan pertahanan RASP.

Kerentanan eksekusi kode mungkin ada di server Anda. Periksa lokasi kerentanan tersebut dan batasi fungsionalitas eksekusi kode.

Malicious Attach

API Attach adalah teknologi yang disediakan Java untuk memodifikasi bytecode secara dinamis pada waktu proses. Penyerang sering menggunakannya untuk menginjeksikan memory shell berjenis agent dengan tingkat stealth tinggi.

Kerentanan eksekusi kode mungkin ada di server Anda. Periksa lokasi kerentanan tersebut dan batasi fungsionalitas eksekusi kode.

JNDI Injection

Ketika aplikasi melakukan lookup JNDI, jika URL lookup dapat dikontrol oleh penyerang, penyerang dapat membuat server mengkueri tautan berbahaya, sehingga server memuat kelas berbahaya dan mencapai eksekusi kode sembarang.

  • Jika kerentanan berasal dari komponen pihak ketiga, segera tingkatkan versi komponen tersebut.

  • Jika berasal dari kode lookup JNDI kustom, batasi URL yang dapat dikueri dan larang protokol berbahaya.

Dangerous Protocol Usage

Jika URL yang dapat diakses server dikontrol pengguna dan aplikasi tidak membatasi protokol, penyerang dapat menggunakan protokol berbahaya seperti file dan netdoc untuk membaca file sensitif di server.

Batasi protokol yang dapat diakses oleh URL.

Deserialization Attack

Deserialisasi Java adalah proses mengembalikan urutan karakter menjadi objek Java. Jika objek yang dihasilkan berisi kode berisiko tinggi, penyerang dapat mengeksploitasi kontrol variabel anggota selama deserialisasi untuk melakukan serangan berbahaya.

  • Segera tingkatkan versi komponen yang rentan.

  • Jika vendor belum merilis versi yang telah diperbaiki, nonaktifkan sementara fitur tersebut.

Arbitrary File Deletion

Jika fitur penghapusan file situs web tidak membatasi jalur file, penyerang dapat menghapus file sembarang menggunakan jalur mutlak atau karakter penelusuran direktori, sehingga mengganggu server.

Periksa apakah operasi penghapusan file normal. Jika tidak normal, periksa kode fungsi dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Expression Injection

Komponen ekspresi menyediakan fungsionalitas kaya, termasuk kueri dan pemrosesan data waktu proses. Namun, banyak komponen ekspresi juga mendukung operasi berhak istimewa tinggi seperti pemanggilan fungsi. Jika tidak dibatasi dan dapat dikontrol penyerang, penyerang dapat mengeksekusi kode sembarang melalui evaluasi ekspresi.

Batasi secara ketat apa yang dapat masuk ke evaluasi ekspresi, blokir sebagian besar pemanggilan fungsi Java. Jika disebabkan oleh kerentanan komponen pihak ketiga, segera tingkatkan versi komponen tersebut.

Engine Injection

Java mendukung banyak komponen engine pihak ketiga (seperti engine JS Rhino, Nashorn, dan engine templat Velocity, FreeMarker). Engine ini biasanya menyediakan operasi berhak istimewa tinggi seperti pemanggilan fungsi. Jika tidak dibatasi dan dapat dikontrol penyerang, penyerang dapat mengeksekusi kode sembarang melalui engine.

Batasi secara ketat apa yang masuk ke file engine, blokir sebagian besar pemanggilan fungsi Java. Jika disebabkan oleh kerentanan komponen pihak ketiga, segera tingkatkan versi komponen tersebut.

Malicious Beans Binding

Beberapa framework Java mendukung binding parameter Beans waktu proses. Jika jenis Beans yang dapat di-bind tidak dibatasi, penyerang dapat mengganggu operasi aplikasi atau bahkan mencapai eksekusi kode sembarang dengan memodifikasi nilai Beans sensitif.

Batasi jenis Beans yang dapat di-bind, dan larang modifikasi nilai Beans yang mirip dengan tipe Class dan ClassLoader. Jika disebabkan oleh kerentanan komponen pihak ketiga, segera tingkatkan versi komponen tersebut.

Malicious Class Loading

Banyak eksploitasi nol hari dan webshell mengandalkan pemuatan kelas berbahaya. Setelah kelas berbahaya dimuat, penyerang dapat memperoleh hak istimewa eksekusi kode melalui inisialisasi kelas tersebut, memungkinkan operasi berbahaya lebih lanjut.

  • Jika pemuatan kelas berbahaya dikontrol oleh webshell, segera hapus webshell tersebut.

  • Jika pemuatan kelas berbahaya disebabkan oleh framework, segera tingkatkan versi framework tersebut.

JSTL Arbitrary File Inclusion

JSTL (JSP Standard Tag Library) adalah kumpulan tag JSP yang mengenkapsulasi fungsionalitas inti umum untuk aplikasi JSP. Ketika parameter yang dikontrol pengguna langsung digabungkan ke dalam tag JSTL tanpa pembatasan, penyerang dapat membuat skrip serangan khusus untuk mencapai pembacaan file sembarang dan serangan SSRF.

Hindari menggabungkan langsung parameter yang dikontrol pengguna ke dalam tag JSTL. Jika diperlukan, terapkan kontrol allowlist ketat pada konten parameter.

Deteksi serangan (aplikasi PHP)

Jenis Serangan

Deskripsi

Rekomendasi

Malicious File Inclusion

Kerentanan inklusi file di PHP adalah masalah keamanan umum yang memungkinkan penyerang mengikutsertakan dan mengeksekusi file sembarang dengan memanipulasi input. Kerentanan ini biasanya terjadi saat menggunakan fungsi include(), require(), include_once(), atau require_once().

Validasi dan batasi jalur file input pengguna, hanya mengizinkan file yang telah ditentukan sebelumnya dalam direktori aplikasi untuk mencegah penyerang menyuntikkan jalur berbahaya.

Malicious Outbound Connection

SSRF (Server-Side Request Forgery) adalah kerentanan di mana penyerang membuat permintaan yang diinisiasi server untuk menargetkan sistem internal.

Untuk memperbaiki kerentanan SSRF, batasi rentang alamat target yang dapat dijangkau oleh permintaan server. Gunakan allowlist untuk mengizinkan akses hanya ke sumber daya internal yang aman, dan nonaktifkan akses jaringan outbound yang tidak diperlukan.

Deserialization

Kerentanan deserialisasi PHP adalah masalah keamanan serius yang memungkinkan penyerang mengeksekusi fungsi sembarang dengan memanipulasi data serialisasi. Hal ini biasanya terjadi saat menggunakan fungsi unserialize().

Hindari langsung mendeserialisasi data yang tidak tepercaya. Gunakan json_decode() atau alternatif aman lainnya, atau validasi dan filter secara ketat sumber data yang dideserialisasi jika diperlukan.

Callback Function Execution

Fungsi callback di PHP, seperti array_map() dan array_filter(), dapat menjadi berbahaya ketika parameternya dikontrol dari luar, berpotensi memberikan penyerang kemampuan untuk mengeksekusi fungsi sembarang dan mengendalikan seluruh sistem.

Untuk mencegah penyalahgunaan fungsi callback PHP, pastikan nama fungsi callback yang diteruskan ke array_map(), array_filter(), dan fungsi serupa tidak dikontrol oleh input pengguna, dan validasi semua fungsi callback yang diizinkan melalui allowlist.

Malicious File Read/Write

Ketika fungsi baca/tulis file dipanggil tanpa pembatasan pada jalur dan konten file, penyerang dapat membaca file sistem sensitif atau mengunggah file trojan berbahaya.

Untuk mencegah kerentanan keamanan terkait file, validasi dan batasi secara ketat jalur file agar hanya mengizinkan akses ke direktori yang telah ditentukan, dan lakukan pemeriksaan keamanan pada konten file untuk mencegah unggahan kode berbahaya.

Arbitrary Code Execution

Kerentanan eksekusi kode sembarang memungkinkan penyerang mengeksekusi cuplikan kode sembarang di server, berpotensi mengambil alih kendali atau membaca dan memodifikasi data sensitif. Hal ini biasanya terjadi ketika program tidak memvalidasi input pengguna secara memadai, sehingga memungkinkan injeksi kode berbahaya. Eksploitasi yang berhasil dapat menyebabkan kebocoran data, perusakan situs web, atau instalasi malware.

Gunakan validasi input dan encoding output yang ketat. Hindari menggunakan eval(), include(), dan fungsi serupa untuk memproses langsung input pengguna, serta selalu perbarui semua library dan framework.

Arbitrary File Read

Tanpa penyaringan dan pembatasan yang tepat pada antarmuka baca file, penyerang dapat menggunakan jalur mutlak atau karakter penelusuran direktori untuk membaca dan mengunduh file, memperoleh informasi sensitif dan menyerang server.

Terapkan validasi input dan pembatasan jalur yang ketat pada antarmuka baca file untuk memastikan hanya file yang ada dalam allowlist yang dapat diakses, dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Arbitrary File Deletion

Tanpa pembatasan jalur file yang tepat pada antarmuka penghapusan file, penyerang dapat menggunakan jalur mutlak atau karakter penelusuran direktori untuk menghapus file secara sembarang dan menyerang server.

Terapkan validasi input dan pembatasan jalur yang ketat pada antarmuka penghapusan file untuk memastikan hanya file yang telah diverifikasi yang dapat dihapus, dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Command Execution

Kerentanan eksekusi perintah memungkinkan penyerang menyuntikkan perintah atau kode sistem operasi ke server backend dari jarak jauh, sehingga mengambil alih kendali sistem backend.

Validasi dan filter semua input pengguna. Hindari menggunakan input yang tidak diproses untuk menyusun perintah sistem operasi, dan gunakan API aman untuk menggantikan eksekusi perintah sistem jika memungkinkan.

Directory Traversal

Kelemahan konfigurasi di situs web dapat memungkinkan penelusuran direktori sembarang, menyebabkan kebocoran privasi yang dapat dieksploitasi penyerang.

Gunakan pengaturan izin server yang tepat dan file seperti .htaccess untuk membatasi akses direktori, memastikan direktori sensitif tidak dapat dijelajahi oleh pengguna yang tidak sah.

Malicious File Upload

Jika fitur unggah file tidak membatasi jenis file, penyerang dapat mengunggah file trojan berbahaya untuk mendapatkan akses server yang lebih luas, menyebabkan kerusakan serius.

Batasi dan validasi secara ketat jenis file yang diunggah, hanya mengizinkan jenis file yang aman, memblokir ekstensi file yang dapat dieksekusi seperti .php, dan memeriksa ulang konten file di sisi server untuk memastikan keamanan.

Deteksi serangan (aplikasi Node.js)

Tabel berikut mencantumkan jenis serangan yang dapat dideteksi dan dicegat oleh Perlindungan Aplikasi untuk aplikasi Node.js, beserta rekomendasi perlindungan terkait.

Jenis Serangan

Deskripsi

Rekomendasi

Command Execution

Kerentanan eksekusi perintah memungkinkan penyerang menyuntikkan perintah atau kode sistem operasi ke server backend dari jarak jauh, sehingga mengambil alih kendali sistem backend.

Hindari menggunakan fungsi exec, spawn, dan serupa untuk mengeksekusi input yang dikontrol pengguna. Jika diperlukan, batasi perintah yang dapat dieksekusi menggunakan allowlist.

Malicious File Read/Write

Ketika fungsi baca/tulis file dipanggil tanpa pembatasan pada jalur dan konten file, penyerang dapat membaca file sistem sensitif atau mengunggah file trojan berbahaya.

Validasi dan batasi secara ketat jalur file agar hanya mengizinkan akses ke direktori yang telah ditentukan, dan lakukan pemeriksaan keamanan pada konten file.

Arbitrary File Read

Tanpa penyaringan dan pembatasan yang tepat pada antarmuka baca file, penyerang dapat menggunakan jalur mutlak atau karakter penelusuran direktori untuk membaca dan mengunduh file, memperoleh informasi sensitif dan menyerang server.

Terapkan validasi input dan pembatasan jalur yang ketat pada antarmuka baca file untuk memastikan hanya file yang ada dalam allowlist yang dapat diakses, dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Arbitrary File Write

Jika aplikasi tidak memvalidasi dan membatasi dengan benar jenis, ukuran, dan konten file yang ditulis, penyerang dapat mengeksploitasi hal ini untuk menulis file berbahaya ke lokasi yang ditentukan pada sistem target, menanamkan skrip atau trojan berbahaya. Hal ini dapat menyebabkan kompromi server secara penuh.

  • Normalisasi dan validasi semua jalur penulisan file. Gunakan path.resolve atau realpath untuk memastikan target berada dalam direktori yang diizinkan aplikasi.

  • Jangan gunakan input pengguna langsung sebagai jalur file lengkap. Lebih baik gunakan nama file yang dihasilkan server dan direktori tetap.

  • Larang menulis ke direktori sistem, skrip startup pengguna, konfigurasi SSH, pekerjaan cron, unit systemd, konfigurasi manajer paket, dan key file aplikasi.

  • Gunakan filesystem root read-only, izin file minimal, dan direktori sementara terisolasi di kontainer dan lingkungan produksi.

  • Untuk fitur unggah, ekspor, dan caching, tetapkan allowlist ekstensi, ukuran, dan direktori berdasarkan jenis bisnis, serta simpan log audit.

Arbitrary File Deletion

Tanpa pembatasan jalur file yang tepat pada antarmuka penghapusan file, penyerang dapat menggunakan jalur mutlak atau karakter penelusuran direktori untuk menghapus file secara sembarang.

Terapkan validasi input dan pembatasan jalur yang ketat pada antarmuka penghapusan file untuk memastikan hanya file yang telah diverifikasi yang dapat dihapus, dan gunakan blocklist untuk membatasi parameter input seperti "./" dan "../".

Malicious File Link

Jika aplikasi tidak memvalidasi dengan benar jalur target dan objek tautan saat membuat tautan file, penyerang dapat menggunakan tautan simbolik atau hard link untuk memetakan file yang dilindungi ke lokasi yang dapat diakses, melewati kontrol akses untuk membaca, memodifikasi, atau menghancurkan file sistem sensitif.

Jangan izinkan input eksternal mengontrol langsung target tautan atau jalur tautan. Lakukan normalisasi, validasi jalur riil, dan pemeriksaan allowlist direktori pada sumber dan target tautan. Gunakan lstat pada direktori unggah, sementara, dan ekstraksi untuk mengidentifikasi tautan simbolik. Gunakan pengguna berhak istimewa rendah yang independen untuk direktori berisiko tinggi agar proses aplikasi tidak memiliki akses baca/tulis ke konfigurasi sistem, direktori kredensial, dan direktori mount host.

Malicious Outbound Connection

SSRF (Server-Side Request Forgery) adalah kerentanan di mana penyerang membuat permintaan yang diinisiasi server untuk menargetkan sistem internal.

Untuk memperbaiki kerentanan SSRF, batasi rentang alamat target yang dapat dijangkau oleh permintaan server. Gunakan allowlist untuk mengizinkan akses hanya ke sumber daya internal yang aman, dan nonaktifkan akses jaringan outbound yang tidak diperlukan.

Malicious Process Creation

Node.js fork() dapat digunakan untuk membuat proses Node baru yang mengeksekusi file JS. Jika aplikasi tidak membatasi secara ketat skenario pemanggilan, logika eksekusi, atau parameter input, penyerang dapat menggunakan kemampuan ini untuk membuat subproses berbahaya, melakukan operasi tidak sah, atau lebih lanjut mengompromikan server melalui pemuatan skrip atau eksekusi perintah.

Jangan biarkan input pengguna langsung menentukan jalur modul dan parameter startup untuk fork(). Gunakan enumerasi tetap atau allowlist sisi server untuk skrip yang dapat difork. Selesaikan dan pastikan skrip berada dalam direktori aplikasi tepercaya menggunakan jalur absolut sebelum menjalankan. Hanya teruskan bidang bisnis sebagai parameter, bukan fragmen shell, jalur file, argumen interpreter, atau penggantian variabel lingkungan. Gunakan hak istimewa minimal, direktori kerja terisolasi, dan variabel lingkungan terbatas untuk subproses. Untuk skenario yang memerlukan eksekusi tugas pengguna, lebih baik gunakan worker terbatas, antrian, atau sandbox daripada memuat dinamis skrip lokal sembarang.

Malicious Process Binding

Node.js process.binding() dapat digunakan untuk mengakses modul tingkat rendah internal. Jika aplikasi tidak membatasi pemanggilan tersebut, penyerang dapat menggunakan kemampuan ini untuk mengakses antarmuka tingkat rendah, melewati kontrol keamanan lapis atas, dan melakukan operasi tak terduga, menyebabkan kebocoran informasi sensitif, penyalahgunaan hak istimewa, atau eksploitasi sistem lebih lanjut.

Jangan ekspos process.binding dan process._linkedBinding dalam kode bisnis, plugin, templat, atau lingkungan eksekusi skrip. Larang meneruskan parameter eksternal ke antarmuka ini. Untuk aplikasi yang mendukung plugin, aturan, templat, atau Agent Skills, hapus atau bekukan kemampuan process berisiko tinggi di sandbox. Aktifkan hook dan peringatan binding proses RASP di produksi. Evaluasi kebutuhan pemanggilan binding native langsung dalam paket dependensi dan batasi sumber pemanggilan. Gunakan isolasi kontainer, pengguna berhak istimewa minimal, dan pembatasan akses panggilan sistem/jaringan untuk lingkungan runtime berisiko tinggi.

Malicious MCP Call

Dalam skenario AI Agent, MCP (Model Context Protocol) dapat digunakan untuk mengakses sumber daya eksternal, layanan, atau kemampuan. Jika aplikasi tidak memvalidasi secara ketat cakupan pemanggilan, parameter permintaan, dan konten respons layanan MCP, penyerang dapat menginduksi Agent untuk melakukan pemanggilan MCP berbahaya, mengakses data sensitif, melakukan operasi berisiko tinggi, atau berinteraksi dengan layanan yang tidak tepercaya.

Perlakukan MCP Server sebagai komponen eksternal yang tidak tepercaya. Hanya izinkan koneksi ke sumber tepercaya dengan versi tetap dan konfigurasi terkontrol. Buat allowlist untuk nama tool MCP, nama server, parameter, URL, direktori kerja, dan perintah startup. Aktifkan konfirmasi manual atau kebijakan tingkat risiko lebih tinggi untuk tool yang memodifikasi file, mengeksekusi perintah, mengakses jaringan, atau membaca kredensial. Jangan ekspos kunci produksi langsung ke MCP Server. Jalankan MCP Server di kontainer terisolasi atau akun berhak istimewa rendah. Lakukan validasi format, validasi keamanan URL, dan catatan audit pada metadata OAuth, URL jarak jauh, dan konten respons tool. Perilaku dasar child_process, fs, http, dan net yang dihasilkan oleh pemanggilan tool tetap harus dicegat oleh RASP.

Malicious Tool Call

Dalam skenario AI Agent, Tool dapat digunakan untuk melakukan operasi eksternal atau memanggil kemampuan pihak ketiga. Jika aplikasi tidak membatasi secara efektif cakupan yang tersedia, parameter pemanggilan, dan hasil eksekusi Tool, penyerang dapat menggunakan injeksi prompt atau input berbahaya yang dibuat khusus untuk menginduksi Agent memanggil Tool berisiko tinggi, melakukan operasi tidak sah, mengakses sumber daya sensitif, atau bahkan memengaruhi keamanan host atau sistem bisnis.

Rancang izin Tool menggunakan prinsip hak istimewa minimal. Tolak tool berisiko tinggi secara default dan berikan otorisasi eksplisit berdasarkan skenario bisnis. Kategorikan tool ke dalam tingkat risiko: read-only, write, jaringan, dan eksekusi perintah. Butuhkan konfirmasi atau persetujuan kebijakan untuk Tool write, eksekusi perintah, dan outbound. Terapkan validasi kuat dan batasan allowlist pada setiap parameter Tool, seperti templat perintah, direktori yang dapat diakses, domain yang diizinkan, dan metode HTTP yang diizinkan. Perlakukan hasil Tool sebagai input yang tidak tepercaya dan lakukan deteksi injeksi prompt dan data sensitif sebelum memasukkan ke konteks LLM. Simpan catatan audit untuk nama tool, parameter, rantai pemanggilan, runId/toolCallId, dan ringkasan hasil. Blokir atau tingkatkan peringatan saat mendeteksi urutan berbahaya seperti membaca file sensitif diikuti koneksi outbound, atau eksekusi perintah diikuti penulisan item startup.

Perlindungan kerentanan aplikasi

Perlindungan Aplikasi dapat secara efektif mempertahankan terhadap kerentanan aplikasi, kerentanan nol hari, dan serangan memory shell. Prinsip perlindungan kerentanan ditunjukkan pada gambar berikut. Selama respons insiden kerentanan aplikasi, memanfaatkan kemampuan perlindungan serangan RASP dapat dengan cepat memblokir serangan, memberikan lebih banyak waktu untuk memperbaiki kerentanan aplikasi. Perlindungan Aplikasi juga dapat membantu dalam melokalisasi sumber risiko dan menentukan cakupan dampak dengan cepat. Untuk informasi lebih lanjut tentang kerentanan aplikasi, lihat Kelola kerentanan.

image

Jika Anda tidak dapat segera memperbaiki kerentanan aplikasi, Anda dapat menghubungkan proses aplikasi ke RASP untuk perlindungan terlebih dahulu. Langkah-langkah berikut menunjukkan cara menambahkan perlindungan RASP untuk aplikasi yang telah terdeteksi kerentanannya.

  1. Masuk ke Konsol Security Center.

  2. Di panel navigasi kiri, pilih Risk Governance > Vulnerabilities. Di pojok kiri atas konsol, pilih wilayah tempat aset yang akan dilindungi berada: Chinese Mainland atau Outside Chinese Mainland.

  3. Pada tab Application Vulnerability, kerentanan dengan tag RASP supports real-time protection. didukung oleh Perlindungan Aplikasi. Klik Enable Protection Now di kolom Actions untuk kerentanan yang sesuai.

    image.png

  4. Di panel Access Management, pilih kelompok aplikasi yang akan dihubungkan dari dropdown Application Group Name, pilih aset yang sesuai, lalu klik Confirm.

    Jika kelompok aplikasi yang diperlukan belum ada, Anda dapat mengklik Create Application Group di dropdown, masukkan nama kelompok aplikasi, lalu klik OK untuk membuat kelompok aplikasi secara cepat. Protection Mode dari kelompok aplikasi yang dibuat di sini adalah Block, dan Protection Policy Group adalah Group Name.

    Setelah aplikasi dengan kerentanan terdeteksi dihubungkan ke Perlindungan Aplikasi, daftar Unhandled Vulnerabilities di halaman detail kerentanan akan menampilkan kolom Actions server sebagai Protected hanya setelah pemindaian kerentanan selesai dilakukan untuk kerentanan aplikasi tersebut.

Analisis perilaku aplikasi

Fitur Analisis Perilaku Aplikasi memantau, mengumpulkan, dan menganalisis data perilaku aplikasi secara real time untuk aplikasi yang terhubung, menghasilkan laporan dan tampilan visual. Hal ini membantu Anda memahami detail serangan dan pertahanan aplikasi serta memperkuat keamanan sistem. Untuk informasi lebih lanjut, lihat Analisis perilaku aplikasi.

Perlindungan memory shell (hanya untuk aplikasi Java)

Teknologi RASP Perlindungan Aplikasi dapat mendeteksi memory shell secara real time dengan menganalisis data memori, serta mendukung pencegatan proses injeksi dan eksekusi memory shell. Untuk informasi lebih lanjut, lihat Perlindungan malware resident-memori.

Deteksi kelemahan (hanya untuk aplikasi Java)

Tabel berikut mencantumkan jenis kelemahan aplikasi yang dapat dideteksi oleh Perlindungan Aplikasi, beserta rekomendasi perbaikan terkait.

Jenis Kelemahan

Tingkat Risiko

Deskripsi

Rekomendasi

Insecure Fastjson Configuration

High

Fastjson dalam aplikasi telah mengaktifkan deserialisasi, yang dapat dieksploitasi penyerang untuk mencapai eksekusi kode jarak jauh. Nonaktifkan fitur ini jika tidak diperlukan.

Atur safemode Fastjson ke true, atau atur autotype ke false.

Insecure log4j Configuration

High

Komponen log4j telah mengaktifkan fungsionalitas lookup, yang dapat dieksploitasi penyerang untuk injeksi JNDI, mengakibatkan eksekusi kode jarak jauh.

Tingkatkan log4j ke versi terbaru, atau hapus file org/apache/logging/log4j/core/lookup/JndiLookup.class dari paket JAR.

Insecure Startup Parameters

High

Ketika penyerang dapat mengakses port debugging JDWP, mereka dapat mengeksekusi kode sembarang melalui fitur ini, menyebabkan eksekusi kode jarak jauh.

Tutup port JDWP atau hindari mengekspos port JDWP ke jaringan publik jika tidak ada skenario yang memerlukannya. Berhati-hatilah terhadap Aplikasi jangka panjang yang mengaktifkan port JDWP.

Shiro Weak Key

High

Shiro menggunakan kunci enkripsi lemah, yang dapat dipecahkan penyerang untuk melakukan serangan deserialisasi lebih lanjut, mengakibatkan eksekusi kode jarak jauh.

Segera perbarui kunci enkripsi Shiro dalam aplikasi Anda.

Insecure JMX Configuration

Medium

Akses jarak jauh JMX diaktifkan tanpa otentikasi yang memadai. Penyerang dapat menghubungkan secara jarak jauh ke layanan JMX aplikasi dan mencapai eksekusi perintah.

Nonaktifkan koneksi JMX jarak jauh, atau gunakan kredensial otentikasi yang aman.

Insecure Rhino Configuration

Medium

Framework Rhino berisi properti berbahaya yang dapat dieksploitasi penyerang untuk eksekusi kode jarak jauh.

Tingkatkan Rhino ke versi terbaru, lalu gunakan SafeStandardObjects untuk mendefinisikan konteks Rhino guna mencegah mesin JavaScript memanggil kode Java.

Berikut adalah contoh penggunaan SafeStandardObjects untuk mendefinisikan konteks Rhino:

 package com.aliyun.sample;

  import org.mozilla.javascript.Context;
  import org.mozilla.javascript.Scriptable;

  public class RhinoSecurityExample {
      public static void main(String[] args) {
          Context ctx = Context.enter();
          // Scriptable scope = ctx.initStandardObjects(); // Unsafe
          Scriptable scope = ctx.initSafeStandardObjects(); // Safe
          ctx.setOptimizationLevel(-1);
          String str = "var test={};";
          str += "test.call=function(){return 'Successful!';};";
          str += "test.call()";  // Returns only JavaScript result, no Java call
          try {
              // Pass in and execute JavaScript code
              Object result = ctx.evaluateString(scope, str, "", 1, null);
              System.out.println("JavaScript execution result: " + result);
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              Context.exit();
          }
      }
  }

Insecure Spring Configuration

Medium

Spring Actuator telah mengaktifkan titik akhir tertentu: heapDump, env, restart, refresh, trace, jolokia, h2-console, dll., yang dapat menyebabkan kebocoran informasi sensitif atau eksekusi kode jarak jauh.

Nonaktifkan fitur-fitur ini jika tidak ada skenario khusus yang memerlukannya.

Weak Login Credentials

Medium

Aplikasi memiliki kata sandi login lemah, yang dapat di-brute-force oleh penyerang untuk mengakses sistem dan memperoleh informasi sensitif atau bahkan akses server.

Segera ubah kata sandi aplikasi menjadi kata sandi yang kompleks.

Insecure JNDI Configuration

Low

Aplikasi memiliki pengaturan parameter useCodebaseOnly/rmi-trustURLCodebase/ldap-trustURLCodebase yang tidak aman, yang dapat rentan terhadap injeksi JNDI.

Tingkatkan JDK ke versi terbaru. Jika tidak dapat ditingkatkan, tambahkan parameter startup berikut saat menjalankan aplikasi:

-Djava.rmi.server.useCodebaseOnly=true -Dcom.sun.jndi.rmi.object.trustURLCodebase=false -Dcom.sun.jndi.ldap.object.trustURLCodebase=false

Insecure XML Entity Configuration

Low

Penguraian entitas eksternal XML diaktifkan, yang dapat membuat aplikasi rentan terhadap serangan XXE.

Nonaktifkan entitas eksternal jika tidak ada skenario khusus yang memerlukannya.

Database Weak Password

Low

Aplikasi menggunakan kata sandi lemah untuk menghubungkan ke database, yang dapat dieksploitasi penyerang untuk menghubungkan ke database dan menyebabkan kebocoran informasi sensitif atau eksekusi kode jarak jauh.

Segera ubah kata sandi koneksi database menjadi kata sandi yang kompleks.