FritzFrog - botnet generasi berikutnya

Ringkasan



  • Guardicore menemukan botnet peer-to-peer (P2P) canggih FritzFrog , yang telah secara aktif meretas server SSH sejak Januari 2020.
  • Malware di Golang : FritzFrog menjalankan kode berbahaya modular, multi-utas, dan tanpa file di Golang yang tidak meninggalkan jejak pada hard drive perangkat yang terinfeksi.
  • Penargetan aktif pemerintah, pendidikan, keuangan, dan sumber daya lainnya : FritzFrog mencoba melakukan kekerasan dan mendistribusikan ke puluhan juta alamat IP kantor pemerintah, lembaga pendidikan, pusat kesehatan, bank, dan banyak perusahaan telekomunikasi. Di antara mereka, lebih dari 500 server berhasil diserang, termasuk universitas terkenal di AS dan Eropa, dan satu perusahaan kereta api.
  • Kompleksitas : FritzFrog sepenuhnya merupakan hak milik, implementasi P2P-nya ditulis dari awal, yang menunjukkan tingkat profesionalisme yang tinggi dari penciptanya di bidang pengembangan perangkat lunak.
  • : Guardcore Labs Golang, P2P FritzFrog .
  • : , FritzFrog, Rakos.




FritzFrog adalah botnet peer-to-peer yang sangat canggih yang secara aktif membobol server SSH di seluruh dunia. Berkat strukturnya yang terdesentralisasi, ia mendistribusikan kontrol di semua node-nya. Jaringan ini tidak memiliki satu titik kegagalan, dan rekan terus berkomunikasi satu sama lain untuk menjaganya tetap stabil, diperbarui, dan terus aktif. Koneksi P2P dibuat melalui saluran terenkripsi menggunakan AES untuk enkripsi simetris dan Diffie-Hellman untuk pertukaran kunci.



Tidak seperti botnet P2P lainnya, FritzFrog memiliki keunikan dalam serangkaian propertinya: ia tidak memiliki file karena ia mengumpulkan dan menjalankan paket secara langsung di memori; terlepas dari distribusi target yang efektif dalam jaringannya, dia dengan sangat agresif memaksa mereka; protokol P2P miliknya tidak didasarkan pada implementasi yang dikenal saat ini.



Kode berbahaya yang ditulis di Golang sangat dapat diubah dan tidak meninggalkan jejak pada hard drive. Ini membuat pintu belakang dalam bentuk kunci SSH publik dan dengan demikian memberi penyerang akses permanen ke perangkat korban. Sejak awal aktivitasnya, kami telah mengidentifikasi 20 versi berbeda dari malware yang dapat dijalankan.



Dalam posting ini, kami akan menjelaskan bagaimana FritzFrog terekspos, serta sifat jaringan P2P dan internal kode berbahaya - termasuk proses infeksi, enkripsi perintah, dan perilaku volatil.



Guardicore Labs telah menyediakan repositori Github dengan skrip untuk mendeteksi malware ini dan daftar Indicators of Compromise (IoC) untuk aktivitasnya.





Distribusi geografis dari inang yang terinfeksi. Negara yang paling rentan adalah Amerika Serikat, Cina, dan Korea Selatan.



Penelitian FritzFrog



Guardcore Labs pertama kali melihat FritzFrog dalam studi Botnet Encyclopedia . Pada 9 Januari, serangan baru dengan eksekusi proses berbahaya ifconfigdan nginx. Kami mulai melacak peningkatan yang stabil dan signifikan dalam aktivitas berbahaya, yang segera mencapai 13.000 serangan di Guardcore Global Sensors Network (GGSN). Kami melacak 20 versi berbeda dari binari FritzFrog selama bertahun-tahun.





Grafik menunjukkan jumlah serangan FritzFrog di GGSN.



Anehnya, sekilas kode berbahaya tersebut tampaknya tidak berkomunikasi dengan server perintah dan kontrol (CNC) apa pun. Hanya ketika kami mulai menyelidiki botnet dengan serius, kami menyadari bahwa tidak ada server sama sekali.



Untuk mencegat jaringan botnet, Guardcore Labs mengembangkan klien di Golang yang dapat bertukar kunci dengan malware, serta mengirim perintah dan menerima tanggapan. Program ini, yang kemudian kami sebut "Frogger", memungkinkan kami untuk menyelidiki sifat dan tujuan jaringan, dan berkat Frogger, kami "menambahkan" node kami sendiri ke jaringan, dapat terhubung ke botnet, dan berpartisipasi dalam transmisi data lalu lintas P2P aktif.



FritzFrog telah memaksa jutaan alamat IP, termasuk kantor pemerintah, lembaga pendidikan, pusat kesehatan, bank, dan banyak perusahaan telekomunikasi. Dari jumlah tersebut, lebih dari 500 server berhasil diserang, termasuk universitas terkenal di AS dan Eropa, dan satu perusahaan kereta api.



P2P generasi berikutnya



Mengapa Generasi Baru?



FritzFrog , :



  • : FritzFrog , (BLOB).
  • : .
  • : . , P2P DDG «root».
  • : .
  • : P2P - P2P , μTP.


Segera setelah korban berhasil diretas, kode berbahaya yang dikemas UPX diluncurkan di atasnya, yang kemudian segera menghapus dirinya sendiri. Untuk meminimalkan kecurigaan, proses berbahaya dijalankan dengan nama ifconfig dan nginx. Pada awal kerjanya, kode berbahaya mendengarkan pada port 1234, menunggu perintah. Perintah pertama yang diterima menyinkronkan korban dengan database rekan jaringan dan target brute force.





Kluster host FritzFrog. Setiap node adalah server SSH yang terinfeksi. Ukuran node menunjukkan konektivitas mereka ke seluruh jaringan.



Lalu lintas pada port non-standar, misalnya 1234, dapat dengan mudah diketahui dan diblokir oleh firewall atau sistem keamanan lainnya. Oleh karena itu, pengembang FritzFrog mendekati masalah secara kreatif dan alih-alih mengirimkan perintah secara langsung melalui port 1234, penyerang menghubungkan ke korban melalui SSH dan meluncurkan klien pada perangkat netcat, yang kemudian terhubung ke server botnet. Dengan demikian, setiap perintah akan melewati SSH sebagai masukan netcat dan dengan mudah mencapai kode berbahaya.





FritzFrog menyalurkan perintah P2P melalui port SSH klasik menggunakan klien netcat lokal dari perangkat yang terinfeksi.



Penyerang FritzFrog telah menyebarkan saluran perintah terenkripsi dengan lebih dari 30 perintah berbeda. Parameter perintah dan respons diteruskan dalam struktur data yang ditentukan dan dirilis ("dimobilisasi") dalam format JSON. Data dienkripsi dengan enkripsi AES simetris dan dikodekan dalam Base64 sebelum dikirim. Node yang terlibat dalam transfer data menggunakan protokol Diffie-Hellman untuk bertukar kunci.







Node dalam jaringan FritzFrog mempertahankan kontak dekat, terus-menerus melakukan ping satu sama lain untuk memverifikasi konektivitas, pertukaran peer dan target, serta sinkronisasi timbal balik. Node juga terlibat dalam proses pemilihan yang cerdas yang memengaruhi distribusi target kekerasan di seluruh jaringan. Pengamatan Guardcore Labs mengonfirmasi bahwa target didistribusikan secara merata di seluruh jaringan dan tidak ada dua node yang akan mencoba meretas target yang sama.



Menyelam ke dalam kode berbahaya



Biner FritzFrog adalah kode berbahaya tingkat lanjut di Golang. Ia bekerja sepenuhnya di memori, setiap node dengan kode berbahaya menyimpan seluruh database target dan rekan di memori. Kode berbahaya membuat beberapa utas untuk memproses berbagai tugas secara bersamaan, seperti yang ditunjukkan pada tabel di bawah ini.



FritzFrog mendefinisikan status kontrol perangkat korban dan target sebagai berikut:



  1. Target : Perangkat dari permintaan target kemudian akan diteruskan ke modul Cracker, yang pada gilirannya akan mencoba memindai dan memecahkannya.
  2. Terapkan : Perangkat yang berhasil disusupi mengantre untuk infeksi malware melalui modul DeployMgmt.
  3. Owned (): P2P Owned.






Setiap node dengan kode berbahaya memiliki thread pekerja yang bertanggung jawab untuk menerima perintah, menguraikannya, dan meneruskannya ke fungsi yang sesuai dalam kode.





Fungsi kerja dalam pembongkaran. Setiap cabang sesuai dengan fungsionalitas P2P yang didukung.



Kode berbahaya bersifat sementara: meskipun mencoba bertahan dari sistem reboot, untuk akses masa depan ke target yang diretas, backdoor disimpan, yang login dan kata sandinya disimpan oleh rekan-rekan di jaringan. Kode berbahaya menambahkan kunci SSH-RSA publik ke file authorized_keys. Pintu belakang sederhana ini memungkinkan penyerang - dengan kunci pribadi dan pribadi - untuk mengotentikasi tanpa kata sandi, jika kata sandi asli diubah. Satu-satunya kunci publik yang digunakan FritzFrog ditunjukkan di bawah ini.



ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJYZIsncBTFc+iCRHXkeGfFA67j+kUVf7h/IL+sh0RXJn7yDN0vEXz7ig73hC//2/71sND+x+Wu0zytQhZxrCPzimSyC8FJCRtcqDATSjvWsIoI4j/AJyKk5k3fCzjPex3moc48TEYiSbAgXYVQ62uNhx7ylug50nTcUH1BNKDiknXjnZfueiqAO1vcgNLH4qfqIj7WWXu8YgFJ9qwYmwbMm+S7jYYgCtD107bpSR7/WoXSr1/SJLGX6Hg1sTet2USiNevGbfqNzciNxOp08hHQIYp2W9sMuo02pXj9nEoiximR4gSKrNoVesqNZMcVA0Kku01uOuOBAOReN7KJQBt


File berbahaya menjalankan semua jenis perintah shell di perangkat lokal, beberapa kali, untuk memantau status sistem. Misalnya, ini berjalan free –muntuk memeriksa RAM yang tersedia uptime, journalctl –s @0 –u sshduntuk melacak login SSH, dan perintah lain untuk menampilkan statistik beban CPU. Statistik ini tersedia untuk node lain di jaringan dan digunakan untuk membuat berbagai keputusan, misalnya, apakah akan menjalankan cryptominer di perangkat atau tidak. Jika keputusan dibuat, kode berbahaya meluncurkan proses terpisah libexecuntuk menambang Monero. Penambang ini didasarkan pada penambang XMRig yang populer dan berkomunikasi dengan kumpulan publik web.xmrpool.eumelalui port 5555.



Jaringan seperti torrent yang ganas



FritzFrog mengandalkan kemampuan untuk berbagi file di seluruh jaringan, baik untuk menginfeksi perangkat baru maupun untuk meluncurkan elemen berbahaya seperti cryptominer Monero.



Untuk bertukar file antar node, FritzFrog menggunakan pendekatan tanpa file yang tersembunyi: file dibagi menjadi array data biner yang disimpan dalam memori, dan kode berbahaya memantau array yang tersedia dengan menyimpannya di peta bersama dengan nilai hash dari setiap array.



Ketika node A ingin menerima file dari peer-nya, node B, ia dapat mengirim permintaan getblobstatske node B untuk mengetahui array yang dimilikinya. Kemudian, node A bisa mendapatkan array tertentu melalui hash-nya, baik menggunakan perintah P2P getbinatau menggunakan HTTP di alamatnya http://1234/. Setelah node A menerima semua array, ia membangun file melalui modul Assemble dan menjalankannya.





getblolbstats. , .





Melacak operasi botnet P2P itu sulit. Karena sifat jaringan yang terdistribusi, perintah di dalamnya dapat dikirim dari node mana pun ke node mana pun. Namun, kami mencoba membandingkan botnet P2P ini dengan ancaman serupa sebelumnya.



Bahkan jika dibandingkan dengan botnet P2P lainnya, FritzFrog tetap unik: FritzFrog tidak menggunakan IRC seperti yang dilakukan IRCflu , tidak seperti DDG, ia berjalan langsung di memori, dan berjalan pada perangkat Unix yang bertentangan dengan botnet InterPlanetary Storm. Jika terlihat seperti orang lain, terutama dalam hal penamaan fitur dan penomoran versi, itu ada di Rakos , botnet P2P di Golang yang dianalisis oleh ESET pada tahun 2016.



Pelacakan & Mitigasi Aktivitas



Guardcore Labs menyediakan skrip pelacakan FritzFrog untuk dijalankan di server SSH. Itu mencari indikator botnet berikut:



  • Proses peluncuran nginx, ifconfigatau libexecfile yang dapat dieksekusi tidak lagi ada di sistem (seperti yang Anda lihat di bawah).
  • Mendengarkan di port 1234.


Selain itu, lalu lintas TCP pada port 5555 dapat menunjukkan lalu lintas jaringan ke kumpulan Monero.



ubuntu@ip-111-11-11-11:~$ ./detect_fritzfrog.sh
FritzFrog Detection Script by Guardicore Labs
=============================================
 
[*] Fileless process nginx is running on the server.
[*] Listening on port 1234
[*] There is evidence of FritzFrog's malicious activity on this machine.


FritzFrog memanfaatkan fitur pemaksaan port dan protokol dari kebanyakan sistem firewall. Anda dapat menghilangkan ancaman tersebut dengan menggunakan aturan segmentasi berbasis proses.



Kata sandi yang lemah terbukti menjadi kerentanan utama untuk serangan FritzFrog. Kami merekomendasikan penggunaan kata sandi yang kuat dan kunci otorisasi publik, yang jauh lebih aman. Selain itu, sangat penting untuk mengecualikan kunci publik FritzFrog dari file authorization_keysuntuk mencegah penyerang mendapatkan akses ke perangkat. Router dan perangkat IoT biasanya mengekspos SSH mereka dan karenanya menjadi rentan terhadap serangan FritzFrog; kami menyarankan untuk mengubah port SSH untuk perangkat tersebut atau, jika fungsinya tidak digunakan, nonaktifkan SSH sepenuhnya.



All Articles