Bagaimana Memindai dan Memperbaiki Kerentanan Log4j?

Diterbitkan: 2022-05-10

Kerentanan Log4j adalah salah satu masalah keamanan paling mematikan dalam sistem modern.

Logging adalah fitur utama dalam aplikasi modern, dan library logging, Log4j, adalah yang terdepan di bidang ini.

Pustaka ini digunakan di sebagian besar aplikasi, layanan, dan sistem. Oleh karena itu, semua aplikasi yang menggunakan Log4j semuanya terpengaruh oleh kerentanan Log4j yang ditemukan tahun lalu.

Dengan meningkatnya kekhawatiran keamanan siber di seluruh dunia, organisasi dan individu mengambil langkah untuk melindungi aplikasi, sistem, dan data mereka.

Dan ketika kerentanan ini ditemukan, hal itu membuat para profesional dan bisnis semakin stres.

Oleh karena itu, mendeteksi kerentanan Log4j dan memperbaikinya sangat penting jika Anda ingin melindungi data, jaringan, reputasi, dan kepercayaan pelanggan Anda.

Pada artikel ini, saya akan membahas apa itu kerentanan Log4j, beserta langkah-langkah untuk mendeteksi dan memperbaikinya.

Mari kita mulai dengan memahami Log4j dan mengapa Anda membutuhkannya.

Apa Itu Log4j?

Log4j adalah utilitas logging open-source yang ditulis dalam Java yang terutama digunakan untuk menyimpan, memformat, dan mempublikasikan catatan logging yang dihasilkan oleh aplikasi dan sistem dan kemudian memeriksa kesalahan. Catatan dapat dari berbagai jenis, dari halaman web dan data browser hingga detail teknis sistem tempat Log4j dijalankan.

Alih-alih menulis kode dari awal, pengembang dapat menggunakan perpustakaan Log4j dengan mengintegrasikan kodenya ke dalam aplikasi mereka.

Menggunakan Log4j, pengembang dapat melacak semua peristiwa yang terkait dengan aplikasi mereka dengan informasi pencatatan yang akurat. Ini membantu mereka memantau aplikasi, menemukan masalah tepat waktu, dan memperbaiki masalah sebelum berubah menjadi masalah yang lebih besar dalam hal kinerja dan/atau keamanan.

Pustaka berbasis Java ini ditulis oleh Ceki Gulcu dan dirilis pada tahun 2001 di bawah Apache License 2.0. Ini menggunakan layanan Java naming dan Directory Interface (JNDI) untuk memungkinkan aplikasi berinteraksi dengan aplikasi lain seperti LDAP, DNS, CORBA, dll., dan mendapatkan fungsionalitas direktori dan penamaan untuk aplikasi berbasis Java. Log4j memiliki tiga komponen untuk melakukan tugasnya:

  • Logger untuk menangkap catatan logging
  • Tata letak untuk memformat catatan logging dalam gaya yang berbeda
  • Appender untuk mempublikasikan catatan logging ke berbagai tujuan

Log4j, pada kenyataannya, adalah salah satu perpustakaan logging paling terkenal di web dan digunakan oleh organisasi dari berbagai industri dan negara. Mereka telah mengintegrasikan perpustakaan logging ini di banyak aplikasi, termasuk layanan cloud teratas oleh Google, Microsoft, Apple, Cloudflare, Twitter, dll.

Pengembangnya, Apache Software Foundation, mengembangkan Log4j 2, peningkatan ke Log4j untuk mengatasi masalah yang ditemukan di rilis sebelumnya. Tahun lalu, sebuah kerentanan ditemukan di Log4j, yang jika dibiarkan tidak tertangani, dapat memungkinkan penyerang membobol aplikasi dan sistem, mencuri data, menginfeksi jaringan, dan melakukan aktivitas jahat lainnya.

Mari kita lebih memahaminya.

Apa itu Log4Shell – Kerentanan Log4j?

Log4Shell adalah kerentanan keamanan siber kritis di perpustakaan Log4j, yang memengaruhi fungsi inti perpustakaan. Ini memungkinkan penyerang untuk mengontrol perangkat atau aplikasi yang terhubung ke internet dengan melakukan eksekusi kode jarak jauh. Ketika mereka berhasil melakukannya, mereka dapat:

  • Jalankan kode apa pun di perangkat atau sistem
  • Akses semua jaringan dan data
  • Ubah atau enkripsi file apa pun di aplikasi atau perangkat yang terpengaruh

Kerentanan ini pertama kali dilaporkan pada 24 November 2021 oleh Chen Zhaojun, seorang peneliti keamanan di Alibaba (raksasa eCommerce China). Kerentanan tersebut memengaruhi server Minecraft mereka, yang ditemukan oleh tim keamanan cloud Alibaba pada 9 Desember.

Selanjutnya, NIST menerbitkan kerentanan ini di Database Kerentanan Nasional dan menamakannya CVE-2021-44228. Apache Software Foundation kemudian menilai kerentanan ini 10 dalam tingkat keparahan CVSS. Ini jarang ditetapkan dan sangat parah karena berpotensi dieksploitasi secara luas dan mudah, yang menyebabkan kerusakan besar bagi organisasi dan individu.

Apache, sebagai tanggapan, mengeluarkan tambalan untuk kerentanan ini tetapi tetap saja, beberapa bagian dibiarkan tidak tertangani, yang mengarah ke kerentanan lain:

  • CVE-2021-45046 yang memfasilitasi serangan Denial of Service (DoS) melalui pencarian JNDI
  • CVE-2021-45105 untuk memungkinkan peretas mengontrol informasi Peta Konteks Utas dan menyebabkan serangan DoS dengan menafsirkan string yang dibuat
  • CVE-2021-44832 berdampak pada semua versi Log4j 2 melalui Remote Code Injection (RCE)

Bagaimana Cara Kerja Log4Shell?

Untuk memahami tingkat keparahannya dan seberapa besar kerugian yang dapat ditimbulkan oleh Log4Shell, penting untuk mempelajari cara kerja kerentanan Log4j ini.

Kerentanan Log4Shell memungkinkan penyerang menyuntikkan kode arbitrer apa pun dari jarak jauh ke dalam jaringan dan mendapatkan kendali penuh atasnya.

Urutan serangan cyber ini dimulai dengan perpustakaan logging, seperti Log4j, mengumpulkan dan menyimpan informasi log. Jika tidak ada perpustakaan logging, semua data dari server akan diarsipkan secara instan setelah data dikumpulkan.

Tetapi jika Anda ingin menganalisis data ini atau perlu mengambil beberapa tindakan berdasarkan informasi log tertentu, Anda akan memerlukan pustaka logging untuk mengurai data log sebelum diarsipkan.

Karena kerentanan Log4j, sistem atau aplikasi apa pun yang menggunakan Log4j menjadi rentan terhadap serangan siber. Pustaka logging mengeksekusi kode berdasarkan input. Seorang peretas dapat memaksa pustaka log untuk mengeksekusi kode berbahaya karena kerentanan akan memungkinkan mereka untuk memanipulasi input.

Sementara itu, banyak hal terjadi di latar belakang. Ketika Log4j melewati string yang dibuat khusus, ia akan memanggil server LDP dan mengunduh kode yang dihosting di direktorinya untuk mengeksekusi kode. Dengan cara ini, penyerang dapat membuat server LDAP untuk menyimpan kode berbahaya yang dapat membantu mereka mengontrol server tempat kode dieksekusi. Ini kemudian akan mengirim string yang mengarahkan kode berbahaya mereka ke aplikasi atau sistem yang ditargetkan dan mengambil kendali penuh atas itu.

Jadi, beginilah cara kerentanan Log4j dapat dieksploitasi:

  • Penyerang menemukan server dengan versi Log4j yang rentan.
  • Mereka akan mengirimkan permintaan get ke server yang ditargetkan dengan tautan server LDAP berbahaya mereka.
  • Server yang ditargetkan, alih-alih memverifikasi permintaan, akan langsung terhubung ke server LDAP ini.
  • Penyerang sekarang akan mengirim server yang ditargetkan dengan respons server LDAP yang berisi kode berbahaya. Karena kerentanan Log4j, yang memungkinkan menerima kode dan mengeksekusinya tanpa verifikasi, peretas dapat memanfaatkan kelemahan ini untuk membobol server target dan mengeksploitasi sistem, jaringan, dan perangkat yang terhubung.

Bagaimana Kerentanan Log4j Dapat Membahayakan Pengguna?

Kerentanan Log4j mengkhawatirkan karena digunakan dalam berbagai aplikasi dan sistem perangkat lunak.

Karena logging adalah fitur penting di sebagian besar aplikasi perangkat lunak dan Log4j adalah solusi terdepan, Log4j menemukan aplikasi di berbagai sistem perangkat lunak.

Beberapa layanan dan aplikasi populer yang menggunakan Log4j adalah Minecraft, AWS, iCloud, Microsoft, Twitter, router internet, alat pengembangan perangkat lunak, alat keamanan, dan sebagainya. Oleh karena itu, penyerang dapat menargetkan sejumlah besar aplikasi, layanan, dan sistem dari pengguna rumahan, pengembang kode, penyedia layanan, dan profesional serta individu terkait lainnya.

Selain itu, kerentanan Log4j sangat mudah dieksploitasi oleh penyerang. Proses keseluruhan membutuhkan lebih sedikit keahlian, bukan tingkat ahli, untuk melakukan serangan. Inilah sebabnya mengapa jumlah serangan yang mengeksploitasi kerentanan ini meningkat.

Dampak dari kerentanan Log4j adalah:

  • serangan DoS
  • Serangan rantai pasokan
  • Penambangan koin
  • Suntikan malware seperti ransomware dan trojan horse
  • Injeksi kode sewenang-wenang
  • Eksekusi kode jarak jauh

Dan banyak lagi.

Sebagai akibat dari serangan ini, Anda dapat kehilangan kendali atas aplikasi, sistem, dan perangkat Anda, dan data Anda dapat menjadi mangsa penyerang yang mungkin menjual data Anda, memanipulasinya, atau mengeksposnya ke dunia luar. Oleh karena itu, bisnis Anda dapat dirugikan dalam hal privasi data pelanggan, kepercayaan, rahasia organisasi, dan bahkan penjualan dan pendapatan Anda, apalagi risiko kepatuhan.

Menurut sebuah laporan, lebih dari 40% jaringan perusahaan global telah mengalami serangan karena kerentanan ini.

Jadi, bahkan jika Anda tidak menggunakan versi Log4j yang rentan di aplikasi Anda, integrasi pihak ketiga Anda mungkin menggunakannya, yang membuat aplikasi Anda rentan terhadap serangan.

Perhatikan bahwa semua versi Log4j sebelum Log4j 2.17.0. terkena dampak; karenanya, Anda harus meng-upgrade logger jika Anda menggunakannya. Juga, vendor terkenal yang terpengaruh oleh kerentanan Log4j ini adalah Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, dll. Jika Anda menggunakan salah satu dari mereka, pantau aplikasi Anda secara terus menerus dan gunakan sistem keamanan untuk memperbaiki masalah segera setelah itu muncul.

Cara Mendeteksi Program yang Terkena Log4j dan Memperbaiki Masalah

Kerentanan Log4Shell memiliki 10 dalam skor CVSS. Oleh karena itu, semua masalah di Log4j belum ditambal. Tetapi kemungkinan Anda atau vendor pihak ketiga Anda menggunakan Log4j, yang telah Anda gunakan di aplikasi Anda.

Karenanya, jika Anda ingin melindungi data, sistem, dan jaringan Anda, pastikan Anda mengikuti beberapa langkah perbaikan.

#1. Perbarui Versi Log4j Anda

Memperbarui versi Log4j Anda saat ini ke Log 4j 2.17.1 adalah teknik perbaikan yang paling efektif jika Anda ingin melindungi perangkat dan aplikasi Anda dari serangan sebagai akibat dari kerentanan Log4j.

Log4Shell adalah jenis serangan zero-day yang berpotensi memengaruhi ekosistem perangkat lunak Anda. Apache telah memperbaiki beberapa kerentanan di versi terbaru, tetapi jika sistem Anda disusupi sebelum peningkatan, Anda masih berisiko.

Oleh karena itu, dengan asumsi ini, Anda tidak hanya harus memutakhirkan versi tetapi juga segera memulai prosedur respons insiden untuk memastikan tidak ada kerentanan di sistem dan aplikasi Anda dan mengurangi serangan. Anda juga harus meninjau semua log server Anda untuk menemukan Indikator Kompromi (IOC) dan terus memantau sistem dan jaringan Anda.

#2. Gunakan Firewall dan Sistem Keamanan Terbaru

Firewall seperti Web Application Firewall (WAF) dan firewall generasi berikutnya dapat membantu mengamankan perimeter jaringan Anda dari penyerang dengan memindai paket data yang masuk dan keluar dan memblokir yang mencurigakan. Jadi, gunakan firewall terbaru di jaringan Anda dan tetapkan aturan keluar yang ketat di server Anda untuk membantu mencegah serangan yang terkait dengan kerentanan Log4j.

Meskipun penyerang dapat melewati firewall, Anda masih akan mendapatkan beberapa tingkat keamanan dengan firewall yang dapat memblokir permintaan penyerang.

Selain itu, perbarui semua sistem keamanan Anda, seperti Sistem Deteksi Intrusi (IDS), Sistem Pencegahan Intrusi (IPS), dll., dengan tanda tangan dan aturan terbaru. Sistem ini akan membantu memblokir atau memfilter lalu lintas RMI dan LDAP agar tidak terhubung ke server LDAP yang berbahaya.

#3. Terapkan MFA

Menyiapkan otentikasi multi-faktor (MFA) di aplikasi dan sistem Anda akan memberikan keamanan yang lebih baik dari penyerang. Ini akan memberikan lapisan keamanan kedua bahkan jika penyerang berhasil menembus lapisan pertama. Anda dapat melakukannya melalui biometrik seperti sidik jari, pemindaian iris mata, dll., menyetel pertanyaan keamanan, atau mengaktifkan PIN keamanan.

Menggunakan MFA akan meningkatkan kesulitan dan waktu penyerang untuk melakukan serangan besar-besaran. Sementara itu, itu juga dapat memberi tahu Anda tentang kejadian itu segera sehingga Anda dapat mengambil langkah-langkah perbaikan yang diperlukan ketika Anda masih punya waktu.

Selain itu, Anda juga harus menerapkan kebijakan VPN yang ketat untuk mengurangi pelanggaran data. Ini akan memungkinkan pengguna untuk mengakses sistem Anda dengan aman dari mana saja tanpa takut akan penyerang.

#4. Ubah Properti Sistem

Jika Anda tidak dapat memutakhirkan ke versi terbaru perpustakaan Log4j, Anda harus segera mengubah properti sistem Java jika Anda menggunakan versi mulai dari Log4j 2.10 hingga Log4j 2.14.1.

Anda harus mengaturnya sedemikian rupa untuk mencegah pencarian yang digunakan penyerang untuk mendeteksi kerentanan dan kemudian menemukan cara untuk mengeksploitasinya.

#5. Hapus JNDI

Alasan kerentanan keamanan kritis ini terletak pada desainnya. Plugin JNDI Lookup memiliki cacat desain di mana penyerang dapat melakukan serangan.

JNDI digunakan untuk eksekusi kode berdasarkan data input dalam lognya, yang dapat dimanipulasi oleh siapa saja dengan mudah karena logger menerima permintaan apa pun tanpa verifikasi.

Peneliti keamanan telah menemukan bahwa plugin ini selalu mengizinkan data yang tidak diuraikan sejak dirilis pada tahun 2013 dan mengirimkannya ke perpustakaan Log4j.

Oleh karena itu, kerentanan Log4j rentan terhadap eksploitasi dengan injeksi string sederhana. Setelah penyerang menyuntikkannya, logger akan menerima operasi yang diminta dalam string dan menjalankannya secara instan tanpa verifikasi.

Jadi, jika Anda ingin mengamankan sistem dan aplikasi Anda, Anda harus menonaktifkan kelas – JndiLookup. Ini akan mencegah logger mengambil tindakan berdasarkan data log.

Faktanya, pencarian JNDI sudah dinonaktifkan di Log4j 2.16.0 secara default dalam upaya untuk mengamankan aplikasi dan sistem Anda.

Jadi, jika Anda menggunakan versi Log4j lebih rendah dari 2.16.0, pastikan Anda telah menonaktifkan Pencarian JNDI.

#6. Bicaralah dengan Vendor Anda

Jika Anda sudah melakukan semuanya dengan benar, firewall dan sistem keamanan Anda diperbarui, versi Log4j diperbarui, Pencarian JNDI dinonaktifkan, dll., jangan santai dulu.

Bahkan jika Anda tidak menggunakan versi Log4j yang rentan di aplikasi Anda, vendor pihak ketiga Anda mungkin menggunakannya. Jadi, Anda tidak akan pernah tahu bagaimana aplikasi atau sistem Anda diretas karena masalah sebenarnya adalah integrasi pihak ketiga Anda.

Oleh karena itu, bicarakan dengan vendor Anda dan pastikan mereka juga telah memutakhirkan Log4j ke versi terbaru dan menerapkan praktik keamanan lain yang dibahas di atas.

#7. Gunakan Pemindai Kerentanan Log4j

Ada banyak alat pemindaian kerentanan Log4j yang tersedia di pasar untuk memudahkan Anda mendeteksi kerentanan Log4j di sistem dan aplikasi Anda.

Jadi, ketika Anda mencari alat-alat ini, periksa tingkat akurasinya karena banyak di antaranya menghasilkan kesalahan positif. Juga, temukan alat yang dapat memenuhi kebutuhan Anda karena mereka mungkin berfokus pada mengidentifikasi kerentanan Log4j, melaporkan paparan, dan memulihkan kerentanan.

Jadi, jika fokus Anda adalah deteksi, temukan pemindai kerentanan Log4j yang dapat mendeteksi masalah atau gunakan yang dapat mendeteksi dan memperbaiki masalah.

Beberapa alat pemindaian Log4j terbaik adalah:

  • Microsoft 365 Defende r: Microsoft menawarkan berbagai solusi dan alat keamanan untuk membantu Anda mendeteksi dan mencegah eksploitasi Log4j di jaringan Anda. Anda akan dapat melihat upaya eksekusi dan eksploitasi kode jarak jauh, melindungi Anda dari kerentanan Log4j di perangkat Windows dan Linux.
  • Amazon Inspector dan AWS: Amazon telah membuat alat pemindaian untuk menemukan kerentanan Log4j di instans Amazon EC2 dan Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike juga telah menciptakan alat pemindaian yang sangat baik untuk mendeteksi kerentanan Log4j untuk membantu Anda memperbaiki masalah tepat waktu sebelum penyerang dapat mengeksploitasinya.
  • Deteksi Google Cloud Logging: Solusi deteksi cloud logging Google memungkinkan Anda mendeteksi eksploitasi Log4j menggunakan Logs Explorer. Anda dapat membuat kueri log di alat ini dan memindai string eksploitasi potensial.
  • Google juga telah membuat log4jscanner, pemindai sistem file sumber terbuka untuk mendeteksi kerentanan Log4j.
  • BurpSuite Log4j Scanner: Ini adalah plugin keamanan bagi para profesional dan perusahaan untuk membantu mereka mendeteksi kerentanan Log4j.
  • Huntress Log4Shell Vulnerability Tester: Alat ini menghasilkan pengenal unik secara acak yang dapat Anda gunakan saat menguji bidang input Anda. Setelah menemukan kerentanan di bidang aplikasi atau input, server LDAP yang aman akan menghentikan koneksi berbahaya secara instan dan membuat Anda tetap aman.
  • WhiteSource Log4j Detect: WhiteSource telah membuat alat CLI gratis, WhiteSource Log4j Detect, yang dihosting di GitHub untuk membantu Anda mendeteksi dan memperbaiki kerentanan Log4j – CVE-2021-445046 dan CVE-2021-44228.
  • Alat Pemindaian Sumber Terbuka JFrog untuk Log4j: JFrog telah menciptakan berbagai solusi dan alat sumber terbuka untuk menemukan kerentanan Log4j dalam binari dan kode sumber Anda.

Kesimpulan

Kerentanan Log4j adalah masalah keamanan yang kritis. Karena pustaka logging ini digunakan secara luas di berbagai aplikasi dan sistem, kerentanan Log4j telah menyebar luas, memungkinkan penyerang untuk mengeksploitasi berbagai sistem dan aplikasi.

Jadi, jika Anda ingin melindungi sistem dan aplikasi Anda dari kerentanan ini, pastikan Anda memutakhirkan pustaka Log4j ke versi terbaru dan menerapkan praktik keamanan terbaik yang dibahas di atas.