All Products
Search
Document Center

Application Real-Time Monitoring Service:Jenis serangan dan solusi

Last Updated:Mar 12, 2026

Topik ini menjelaskan jenis-jenis serangan yang tercakup dalam statistik serangan serta solusi yang sesuai.

Ikhtisar

Tabel berikut mencantumkan semua jenis serangan beserta kategorinya.

CategoryAttack type
Injection attacksJNDI injection, SQL injection, Command injection, XXE, XSS, EL injection, Engine injection, JSTL file inclusion
Deserialization and class loadingDeserialization attack, Malicious class loading, Malicious beans binding
RASP bypass techniquesJNI injection, Malicious reflection calls, Thread injection, Malicious Attach API
File system attacksArbitrary file read, Malicious file read and write, Malicious file upload, Arbitrary file deletion, Directory traversal
Network-based attacksSSRF, Malicious DNS query, Usage of insecure protocols
Persistence techniquesMemory horse injection
Credential attacksWeak database password

Injection attacks

JNDI injection

Description

Java Naming and Directory Interface (JNDI) injection terjadi ketika aplikasi melakukan pencarian JNDI menggunakan URL yang dapat dikendalikan penyerang. Penyerang mengarahkan server untuk mengirim kueri ke titik akhir berbahaya, sehingga menyebabkan server memuat kelas berbahaya dan memungkinkan eksekusi kode arbitrer.

Solution

  • Jika kerentanan berasal dari komponen pihak ketiga, tingkatkan komponen tersebut ke versi terbaru yang telah diperbaiki.

  • Jika kerentanan berasal dari kode kueri JNDI yang ditulis sendiri, batasi URL kueri dan larang pencarian melalui protokol yang tidak aman.

SQL injection

Description

SQL injection terjadi ketika penyerang menyisipkan pernyataan SQL berbahaya ke dalam string kueri permintaan web atau input formulir. Server mengeksekusi pernyataan SQL yang disuntikkan tersebut, sehingga memungkinkan akses ke data dalam database.

Solution

SQL injection disebabkan oleh penggabungan string dalam pernyataan SQL. Gunakan kueri terparameterisasi (prepared statements) untuk mengompilasi parameter input sebelumnya. Jika penggunaan kueri terparameterisasi tidak memungkinkan, terapkan validasi daftar putih atau blacklist untuk membatasi parameter yang digabungkan.

Command injection

Description

Command injection adalah kerentanan yang memungkinkan penyerang mengeksekusi perintah sistem arbitrer pada server. Dalam kebanyakan kasus, command injection terjadi akibat adanya webshell atau kode sisi server yang tidak aman yang meneruskan input pengguna ke fungsi perintah sistem.

Solution

Identifikasi lokasi eksekusi perintah:

  • Jika eksekusi perintah disebabkan oleh webshell, segera hapus webshell tersebut.

  • Jika eksekusi perintah merupakan bagian dari fungsionalitas server yang sah, terapkan pembatasan daftar putih untuk membatasi perintah yang dapat dieksekusi.

XXE

Description

XML External Entity (XXE) injection terjadi ketika parser XML memproses dokumen XML yang mereferensikan entitas eksternal. Penyerang dapat membuat konten XML berbahaya untuk melakukan pembacaan file arbitrer, command injection, atau serangan terhadap jaringan internal.

Solution

Periksa apakah aplikasi Anda perlu menyelesaikan entitas eksternal saat mengurai dokumen XML. Jika entitas eksternal tidak diperlukan, nonaktifkan fitur tersebut dalam konfigurasi parser XML.

XSS

Description

Cross-site scripting (XSS) terjadi ketika penyerang menyuntikkan skrip berbahaya ke dalam situs web. Skrip yang disuntikkan tersebut dieksekusi di browser pengguna yang mengunjungi halaman yang terpengaruh.

Solution

Seperti serangan injeksi HTML, serangan XSS memungkinkan penyerang menyuntikkan kode HTML ke dalam halaman web. Untuk melindungi aplikasi dari serangan XSS, terapkan validasi input yang ketat dan encoding output:

  1. Filter data masukan. Periksa karakter dan pola berikut: ', ", <, >, on*, script, dan iframe. Validasi semua sumber input pengguna, termasuk bidang formulir, nilai cookie, dan Header permintaan HTTP.

  2. Validasi properti data. Periksa tipe, format, panjang, rentang, dan konten semua data masukan.

  3. Terapkan pertahanan berlapis. Lakukan validasi dan penyaringan input baik di sisi klien maupun sisi server.

  4. Encode data keluaran. Ubah data masukan menjadi representasi yang aman seperti entitas HTML atau JavaScript yang di-escape sebelum dirender di halaman web. Nilai dalam database mungkin ditampilkan beberapa kali di situs web. Bahkan jika nilai input telah di-encode saat disimpan, selalu validasi dan encode semua nilai output sebelum ditampilkan.

Expression language (EL) injection

Description

Bahasa ekspresi (expression languages) menyediakan fitur waktu proses seperti kueri data dan pemrosesan dinamis. Banyak bahasa ekspresi juga mendukung operasi lanjutan seperti pemanggilan metode Java. Jika konten ekspresi tidak dibatasi, penyerang dapat memodifikasi ekspresi tersebut untuk mengeksekusi kode arbitrer.

Solution

  • Batasi secara ketat konten ekspresi dan nonaktifkan pemanggilan fungsi Java.

  • Jika kerentanan berasal dari komponen pihak ketiga, tingkatkan komponen tersebut ke versi terbaru yang telah diperbaiki.

Engine injection

Description

Java mendukung berbagai mesin JavaScript pihak ketiga (seperti Rhino dan Nashorn) serta mesin templat (seperti Apache Velocity dan FreeMarker). Mesin-mesin ini biasanya menyediakan fitur lanjutan termasuk pemanggilan metode Java. Jika input mesin tidak dibatasi, penyerang dapat menyuntikkan konten berbahaya yang dieksekusi oleh mesin tersebut, sehingga menyebabkan eksekusi kode arbitrer.

Solution

  • Batasi secara ketat konten yang diteruskan ke mesin skrip dan mesin templat. Nonaktifkan pemanggilan fungsi Java dalam konteks mesin.

  • Jika kerentanan berasal dari komponen pihak ketiga, tingkatkan komponen tersebut ke versi terbaru yang telah diperbaiki.

JSTL file inclusion

Description

JavaServer Pages Standard Tag Library (JSTL) adalah kumpulan tag JSP yang mengenkapsulasi fitur inti umum aplikasi JSP. Jika parameter yang dapat dikendalikan pengguna langsung digabungkan ke dalam ekspresi JSTL tanpa validasi input, penyerang dapat membuat muatan berbahaya yang menyebabkan pembacaan file arbitrer atau server-side request forgery (SSRF).

Solution

Jangan langsung menggabungkan parameter yang dapat dikendalikan pengguna ke dalam ekspresi JSTL. Jika penggabungan diperlukan, terapkan validasi daftar putih yang ketat terhadap nilai parameter tersebut.

Deserialization and class loading

Deserialization attack

Description

Deserialisasi Java mengembalikan urutan byte menjadi objek Java. Jika objek yang dideserialisasi berisi kode yang dapat dieksploitasi, penyerang dapat memanipulasi variabel anggota objek tersebut untuk mengeksekusi operasi berbahaya selama proses deserialisasi.

Solution

  1. Tingkatkan komponen yang rentan ke versi terbaru yang telah diperbaiki.

  2. Jika tidak tersedia versi yang telah diperbaiki, nonaktifkan sementara fungsionalitas deserialisasi yang terdampak.

Malicious class loading

Description

Eksploitasi zero-day dan webshell bergantung pada pemuatan kelas Java berbahaya. Ketika kelas berbahaya dimuat, penyerang dapat menginisialisasinya untuk mendapatkan izin eksekusi kode dan melakukan operasi berbahaya lebih lanjut.

Solution

  • Jika kelas berbahaya dimuat melalui webshell, segera hapus webshell tersebut.

  • Jika kelas berbahaya dimuat akibat kerentanan framework, tingkatkan framework tersebut ke versi terbaru yang telah diperbaiki.

Malicious beans binding

Description

Beberapa framework Java mendukung pengikatan properti bean otomatis pada waktu proses. Jika tipe properti bean yang dapat diikat tidak dibatasi, penyerang dapat memodifikasi nilai properti sensitif untuk mengganggu perilaku aplikasi atau mengeksekusi kode arbitrer.

Solution

  • Batasi tipe properti bean yang dapat diikat. Cegah modifikasi properti sensitif seperti class dan properti class loader.

  • Jika kerentanan berasal dari komponen pihak ketiga, tingkatkan komponen tersebut ke versi terbaru yang telah diperbaiki.

RASP bypass techniques

JNI injection

Description

Java Native Interface (JNI) injection adalah teknik umum yang digunakan untuk melewati Runtime Application Self-Protection (RASP). Setelah penyerang mendapatkan izin eksekusi kode, penyerang dapat menggunakan fungsi JNI untuk memanggil library dinamis eksternal yang berbahaya. Hal ini melewati perlindungan keamanan di lapisan Java dan menyembunyikan perilaku berbahaya.

Solution

Server Anda mungkin memiliki kerentanan eksekusi kode. Identifikasi sumber kerentanan tersebut dan batasi izin eksekusi kode.

Malicious reflection calls

Description

Modul perlindungan diri RASP mencegah penyerang menggunakan refleksi Java untuk memodifikasi data internal RASP pada waktu proses.

Solution

Server Anda mungkin memiliki kerentanan eksekusi kode. Identifikasi sumber kerentanan tersebut dan batasi izin eksekusi kode.

Thread injection

Description

Thread injection adalah teknik umum yang digunakan untuk melewati RASP. Setelah penyerang mendapatkan izin eksekusi kode, penyerang dapat membuat thread baru untuk keluar dari konteks eksekusi yang dipantau RASP. Hal ini mengurangi kemampuan pertahanan RASP.

Solution

Server Anda mungkin memiliki kerentanan eksekusi kode. Identifikasi sumber kerentanan tersebut dan batasi izin eksekusi kode.

Malicious Attach API

Description

Attach API adalah teknologi Java yang memungkinkan modifikasi bytecode aplikasi yang sedang berjalan secara dinamis. Penyerang dapat menggunakan teknologi ini untuk menyuntikkan memory horse bertipe agen. Metode serangan ini sangat menipu.

Solution

Server Anda mungkin memiliki kerentanan eksekusi kode. Identifikasi sumber kerentanan tersebut dan batasi izin eksekusi kode.

File system attacks

Arbitrary file read

Description

Jika fitur unduh atau baca file pada situs web memungkinkan akses file melalui jalur mutlak atau penelusuran direktori, penyerang dapat mengeksploitasi kerentanan ini untuk membaca file sensitif dan memperoleh informasi rahasia.

Solution

Verifikasi bahwa operasi baca file berfungsi sesuai harapan. Jika terdeteksi perilaku anomali, tinjau kode terkait dan terapkan pembatasan blacklist untuk memblokir urutan penelusuran jalur seperti ./ dan ../.

Malicious file read and write

Description

Java menyediakan kelas RandomAccessFile untuk operasi baca dan tulis file. Jika jalur file dan konten file tidak divalidasi dengan benar, penyerang dapat membaca file sistem sensitif atau menulis file trojan ke server.

Solution

Verifikasi bahwa operasi baca dan tulis file berfungsi sesuai harapan. Jika terdeteksi perilaku anomali, tinjau kode terkait dan terapkan pembatasan blacklist untuk memblokir akses ke jalur sensitif.

Malicious file upload

Description

Jika fitur unggah file pada situs web tidak membatasi tipe file yang dapat diunggah, penyerang dapat mengunggah file yang dapat dieksekusi seperti webshell JSP untuk mendapatkan hak istimewa tingkat tinggi pada server.

Solution

Batasi tipe file yang dapat diunggah. Larang pengunggahan file dengan izin eksekusi, seperti file JSP.

Arbitrary file deletion

Description

Jika fitur penghapusan file pada situs web memungkinkan penghapusan file melalui jalur mutlak atau penelusuran direktori, dan jalur file tersebut tidak divalidasi dengan benar, penyerang dapat mengeksploitasi kerentanan ini untuk menghapus file penting atau memperoleh informasi sensitif.

Solution

Verifikasi bahwa fungsi penghapusan file berfungsi sesuai harapan. Jika terdeteksi perilaku anomali, tinjau kode terkait dan terapkan pembatasan blacklist untuk memblokir urutan penelusuran jalur seperti ./ dan ../.

Directory traversal

Description

Penelusuran direktori terjadi ketika struktur direktori situs web dapat ditelusuri secara sembarang akibat cacat konfigurasi. Hal ini dapat menyebabkan pengungkapan informasi sensitif yang dapat digunakan penyerang untuk lebih lanjut merusak situs web.

Solution

Verifikasi bahwa akses direktori berfungsi sesuai harapan. Jika terdeteksi perilaku anomali, tinjau kode terkait dan terapkan pembatasan blacklist untuk memblokir urutan penelusuran seperti ./ dan ../.

Network-based attacks

SSRF

Description

Server-side request forgery (SSRF) adalah kerentanan yang memungkinkan penyerang menginduksi aplikasi sisi server untuk mengirim permintaan HTTP ke tujuan arbitrer. Penyerang dapat menggunakan SSRF untuk mengakses sistem internal yang tidak dapat dijangkau langsung dari internet.

Solution

SSRF terjadi ketika server mengirim permintaan berdasarkan parameter input yang diberikan pengguna. Validasi nilai parameter tersebut dan terapkan pembatasan daftar putih untuk tujuan yang diizinkan.

Malicious DNS query

Description

Penyerang dapat mengeksploitasi kueri DNS dengan berbagai cara. Penyerang dapat menggunakan protokol DNS untuk mengekstraksi data sensitif dari jaringan internal (teknik tunneling DNS). Penyerang juga dapat menggunakan kueri DNS untuk memeriksa kerentanan pada sistem internal, seperti SSRF dan JNDI injection.

Solution

Kueri DNS berbahaya terjadi ketika server mengirim permintaan berdasarkan parameter yang dikendalikan pengguna. Validasi nilai parameter tersebut dan terapkan pembatasan daftar putih.

Usage of insecure protocols

Description

Jika URL yang diakses server dapat dikendalikan pengguna dan aplikasi tidak membatasi protokol URL, penyerang dapat menggunakan protokol tidak aman seperti file:// dan netdoc:// untuk membaca file sensitif di server.

Solution

Batasi protokol URL yang boleh digunakan oleh aplikasi. Izinkan hanya protokol tepercaya seperti HTTP dan HTTPS.

Persistence techniques

Memory horse injection

Description

Memory horse adalah teknik trojan tanpa file (fileless) yang sedang berkembang. Penyerang menyuntikkan kode berbahaya langsung ke dalam ruang memori aplikasi, sehingga trojan dapat beroperasi tanpa menulis file ke disk. Teknik ini dapat melewati Web Application Firewall (WAF) dan mekanisme deteksi berbasis host.

Solution

Server Anda mungkin memiliki kerentanan eksekusi kode. Identifikasi sumber kerentanan tersebut dan batasi izin eksekusi kode.

Credential attacks

Weak database password

Description

Jika database menggunakan kata sandi yang lemah, penyerang dapat memperoleh kata sandi tersebut melalui serangan brute-force. Penyerang kemudian dapat mengakses database untuk mencuri data atau meningkatkan hak istimewa guna mendapatkan izin tingkat sistem.

Solution

Gunakan kata sandi yang kuat dan kompleks untuk semua akun database.