Apa yang dimaksud dengan kerentanan Log4j?

Apa yang dimaksud dengan kerentanan Log4j?

Kerentanan Log4j, juga dikenal sebagai Log4Shell, adalah kerentanan kritis yang ditemukan di pustaka pencatatan Apache Log4j pada November 2021. Log4Shell pada dasarnya memberikan peretas kendali penuh atas perangkat yang menjalankan versi Log4J yang belum ditambal.

Pelaku kejahatan siber dapat memanfaatkan kelemahan Log4j untuk menjalankan hampir semua kode yang mereka inginkan pada sistem yang rentan.

Para peneliti menganggap Log4Shell sebagai kerentanan keamanan yang sangat parah karena penyebarannya luas — Log4j adalah salah satu program sumber terbuka yang paling banyak diterapkan di dunia — dan mudah dieksploitasi. Jen Easterly, direktur Badan Keamanan Siber dan Infrastruktur AS (Cybersecurity and Infrastructure Security Agency, CISA), menyebutnya sebagai “salah satu yang paling serius yang pernah saya lihat sepanjang karier saya, jika bukan yang paling serius.”

Log4Shell memicu lonjakan serangan siber pada Desember 2021. IBM X-Force Threat Intelligence index mencatat peningkatan 34% dalam eksploitasi kerentanan antara tahun 2020 dan 2021, yang terutama disebabkan oleh Log4Shell.

Log4Shell ditambal tak lama setelah ditemukan, tetapi tetap menimbulkan risiko selama bertahun-tahun karena Log4j tertanam sangat dalam di rantai pasokan perangkat lunak. Departemen Keamanan Dalam Negeri AS memperkirakan diperlukan setidaknya satu dekade untuk menemukan dan memperbaiki setiap instans yang rentan.

Apa itu Log4J?

Log4j adalah pustaka pencatatan yang dikembangkan oleh Apache Software Foundation. Sesuai namanya, Log4j adalah sebuah logger — program ini merekam informasi penting seperti pesan kesalahan dan masukan pengguna di dalam sebuah aplikasi.

Log4j adalah pustaka perangkat lunak sumber terbuka, yaitu paket kode yang sudah ditulis sebelumnya dan dapat digunakan secara bebas oleh pengembang. Alih-alih menulis logger sendiri, pengembang dapat menyematkan pustaka Log4j ke dalam aplikasi mereka. Kemudahan ini menjadi alasan Log4j digunakan sangat luas dan tertanam di dalam produk dari organisasi besar seperti Microsoft dan Amazon, untuk menyebut beberapa di antaranya.

Cara peretas menggunakan Log4Shell

Log4Shell, yang memiliki pengidentifikasi Common Vulnerability and Exposure (CVE), CVE-2021-44228, adalah kerentanan eksekusi kode jarak jauh (RCE) yang terdapat di beberapa versi Log4j. Kelemahan ini memengaruhi Apache Log4j 2 versi 2.0-beta9 hingga 2.14.1. Log4j 2.15.0 dan yang lebih baru, serta semua versi Apache Log4j 1, tidak terpengaruh oleh CVE-2021-44228.

Log4Shell muncul dari cara versi lama Log4j 2 menangani pencarian Java Naming and Directory Interface (JNDI). JNDI adalah antarmuka pemrograman aplikasi (API) yang digunakan aplikasi Java untuk mengakses sumber daya yang di-host di server eksternal. Pencarian JNDI adalah perintah yang menginstruksikan aplikasi untuk mengakses server dan mengunduh objek tertentu, seperti sebuah data atau skrip. Versi lama Log4j 2 secara otomatis menjalankan kode apa pun yang diunduh dengan cara ini.

Pengguna dapat mengirimkan pencarian JNDI ke versi Log4j yang rentan dengan menyertakannya dalam pesan log. Caranya sangat sederhana. Misalnya, dalam versi Minecraft Java Edition lama yang menggunakan Log4j untuk merekam pesan pengguna, pengguna dapat mengetikkan pencarian JNDI di jendela obrolan publik.

Peretas dapat memanfaatkan fungsionalitas JNDI ini untuk menjalankan kode berbahaya apa pun dari jarak jauh. Pertama, peretas menyiapkan server menggunakan protokol umum seperti Lightweight Directory Access Protocol (LDAP) agar tidak menimbulkan kecurigaan. Selanjutnya, mereka menyimpan payload berbahaya di server tersebut, seperti berkas malware. Terakhir, mereka mengirimkan pencarian JNDI ke sebuah aplikasi dan memerintahkannya untuk mengakses server LDAP penyerang, mengunduh payload, lalu menjalankan kode tersebut.

Dampak dari Log4Shell

Peneliti keamanan di perusahaan teknologi Alibaba menemukan Log4Shell pada 24 November 2021. Kerentanan ini segera menerima skor Common Vulnerability Scoring System (CVSS) tertinggi: 10 dari 10. Beberapa faktor berkontribusi terhadap penilaian tersebut.

Log4Shell adalah kerentanan zero-day, yang berarti belum ada tambalan (patch) yang tersedia saat kerentanan itu ditemukan. Pelaku ancaman diperkirakan telah mengeksploitasi Log4Shell saat Apache masih mengerjakan perbaikan.

Log4j juga merupakan salah satu pustaka pencatatan yang paling banyak digunakan dan tertanam di dalam titik akhir konsumen, aplikasi web, serta layanan cloud perusahaan. Menurut Wiz dan EY, 93% dari semua lingkungan cloud berisiko ketika Log4Shell ditemukan.

Perusahaan pun tidak selalu dapat segera mengetahui apakah sistem mereka rentan. Log4j sering kali hadir di dalam jaringan sebagai dependensi tidak langsung; artinya, aset perusahaan mungkin tidak menggunakan Log4j secara langsung, tetapi aset tersebut bergantung pada aplikasi dan layanan lain yang menggunakannya.

Terakhir, Log4Shell sangat mudah dieksploitasi. Peretas tidak memerlukan izin maupun autentikasi khusus. Mereka dapat menimbulkan kerusakan besar hanya dengan mengetikkan perintah berbahaya ke dalam formulir publik seperti kotak obrolan dan halaman login. Selain itu, karena Log4j dapat berkomunikasi dengan layanan lain di sistem yang sama, peretas dapat memanfaatkan Log4j untuk mengirimkan payload ke bagian lain dalam sistem tersebut.

Pada 9 Desember 2021, kode bukti konsep (proof of concept) tentang cara mengeksploitasi Log4Shell diunggah di GitHub, dan para peretas meningkatkan intensitas serangan. Perusahaan dan layanan besar seperti Minecraft, Twitter, dan Cisco terkena dampaknya. Pada puncak aktivitas Log4Shell, Check Point mengamati lebih dari 100 serangan setiap menit yang memengaruhi lebih dari 40% semua jaringan bisnis secara global.

Serangan paling awal menyebarkan malware botnet dan penambangan kripto. Beberapa peretas memanfaatkan kelemahan ini untuk melancarkan serangan tanpa berkas dan mengirimkan skrip berbahaya ke komputer Windows serta Linux agar sistem tersebut membocorkan kata sandi dan informasi sensitif lainnya.

Beberapa kelompok ransomware juga memanfaatkan Log4Shell. Sebagai contoh, para peretas menyebarkan varian ransomware Khonsari melalui Minecraft, sementara ransomware Night Sky menargetkan sistem yang menjalankan VMware Horizon.

Bahkan aktor negara pun ikut ambil bagian. Peretas yang terkait dengan Tiongkok, Iran, Korea Utara, dan Turki terpantau memanfaatkan kerentanan tersebut.

Respons terhadap Log4Shell

Apache merilis tambalan pertama (Log4j versi 2.15.0) pada 10 Desember 2021. Namun, tambalan tersebut menyisakan kerentanan lain, yaitu CVE-2021-45046, yang memungkinkan peretas mengirim perintah berbahaya ke log pada konfigurasi tertentu yang bukan bawaan (non-default).

Apache merilis tambalan kedua (Log4j versi 2.16.0) pada 13 Desember 2021. Versi ini pun masih memiliki kelemahan, yaitu CVE-2021-45105, yang memungkinkan peretas melancarkan serangan denial-of-service (DoS).

Tambalan ketiga, Log4j versi 2.17.0, memperbaiki kelemahan DoS namun menyisakan satu kerentanan, yaitu CVE-2021-44832, yang memungkinkan peretas mengambil alih kendali komponen Log4j yang disebut appender untuk menjalankan kode jarak jauh — jika penyerang sudah memiliki izin untuk mengubah berkas konfigurasi Log4j. Apache mengatasi masalah ini melalui tambalan keempat sekaligus terakhir, yaitu Log4j versi 2.17.1.

 

Mengapa Log4Shell masih bertahan

Meskipun Log4j 2.17.1 menutup Log4Shell dan semua kerentanan terkait di sisi Apache, pelaku ancaman siber masih mengeksploitasi kelemahan tersebut. Bahkan pada Mei 2023, Log4Shell masih menjadi salah satu kerentanan yang paling umum digunakan.

Log4Shell bertahan karena beberapa alasan.

Alasan pertama adalah Log4j tertanam sangat dalam di supply chain perangkat lunak banyak perusahaan. Saat ini, banyak aplikasi dibangun dengan merakit pustaka perangkat lunak sumber terbuka yang sudah ada. Proses ini memang praktis, tetapi juga berarti organisasi memiliki visibilitas terbatas terhadap semua komponen yang membentuk aplikasi mereka. Versi lama Log4j dapat dengan mudah luput dari perhatian.

Selain itu, ketika versi Log4j yang rentan berhasil ditambal, tambalan tersebut tidak selalu bertahan. Pada November 2022, Tenable melaporkan bahwa 29% aset yang masih rentan terhadap Log4Shell merupakan kemunculan kembali (recurrences). Aset tersebut sudah pernah ditambal, tetapi kelemahannya muncul kembali. Skenario ini terjadi karena saat membuat atau memperbarui aplikasi, pengembang terkadang secara tidak sengaja menggunakan pustaka perangkat lunak yang masih memuat versi Log4j yang belum ditambal.

Terakhir, peretas mengembangkan cara cerdas untuk menutupi jejak mereka. Menurut CISA, beberapa peretas memanfaatkan Log4Shell untuk masuk ke jaringan, lalu menambal aset tersebut. Perusahaan pun mengira sistemnya sudah aman, padahal para peretas sudah berada di dalam sistem.

Mitigasi dan remediasi

Versi terbaru Log4j bebas dari Log4Shell. Pakar keamanan siber merekomendasikan agar tim keamanan berfokus pada upaya memastikan semua instans Log4j dalam sistem mereka selalu diperbarui.

Memperbarui Log4j bisa menjadi proses yang lambat karena perusahaan kerap perlu menelusuri aset mereka secara mendalam untuk menemukan pustaka tersebut. Sementara itu, tim keamanan dapat menggunakan pemindaian kerentanan berkelanjutan serta alat deteksi ancaman seperti platform manajemen permukaan serangan (ASM) serta deteksi dan respons titik akhir (EDR) untuk memantau aset yang terhubung ke internet. Para pakar juga merekomendasikan agar tim respons insiden menyelidiki secara menyeluruh setiap indikasi aktivitas Log4Shell.

Setelah Log4Shell diketahui publik, banyak firewall, sistem deteksi intrusi (IDS) dan sistem pencegahan intrusi (IPS) menambahkan aturan untuk mendeteksi eksploitasi Log4Shell. Alat ini dapat membantu tim keamanan mendeteksi dan memblokir lalu lintas dari server yang dikendalikan penyerang.

Garis waktu Log4Shell

  •  
  • 18 Juli 2013: Apache merilis Log4j 2.0-beta9, versi pertama yang mendukung plug-in JNDI. Meskipun kerentanannya baru ditemukan bertahun-tahun kemudian, Log4Shell sudah hadir sejak versi ini.

  • 24 November 2021: Peneliti keamanan dari Alibaba menemukan Log4Shell dan melaporkannya ke Apache. Apache mulai mengerjakan tambalan, tetapi belum merilis peringatan keamanan publik.

  • 9 Desember 2021: Peneliti keamanan dari Alibaba menemukan bukti bahwa Log4Shell sudah diperbincangkan secara terbuka, dan kode eksploitasi bukti konsep diunggah ke GitHub.

  • 10 Desember 2021: Apache merilis tambalan pertama, dan pengembang Minecraft menemukan Log4Shell di Minecraft Java Edition. Komunitas keamanan siber dengan cepat menyadari tingkat keparahan situasi ini, dan organisasi mulai berupaya keras mengamankan sistem mereka.

  • 11 Desember 2021: Cloudflare menemukan bukti bahwa pelaku ancaman telah mengeksploitasi Log4Shell lebih awal dari perkiraan semula, yakni sejak 1 Desember.

  • 13 Desember 2021: Apache merilis Log4j 2.16.0 untuk mengatasi CVE-2021-45046, yang dipublikasikan pada 14 Desember. ← date corrected

  • 17 Desember 2021: CVE-2021-45105 ditemukan, dan Apache merilis Log4j 2.17.0 untuk mengatasinya.

  • 28 Desember 2021: CVE-2021-44832 ditemukan, dan Apache merilis tambalan terakhir. Sejak Log4j versi 2.17.1 dan seterusnya, Log4Shell telah sepenuhnya diperbaiki.

  • 4 Januari 2022: Komisi Perdagangan Federal AS (FTC)mengumumkan bahwa pihaknya akan menindak setiap perusahaan yang membiarkan data konsumen terekspos kepada peretas karena gagal mengatasi Log4Shell.

  • Mei 2023: Check Point menemukan bahwa Log4Shell masih menjadi kerentanan paling sering dieksploitasi kedua di dunia.

Solusi terkait
Guardium Vulnerability Assessment

Pindai database dan infrastruktur data untuk mendeteksi celah keamanan dan merekomendasikan tindakan untuk memperkuat dan melindungi lingkungan Anda.

    Jelajahi Guardium Vulnerability Assessment
    Solusi penilaian kerentanan

    Mengidentifikasi dan memprioritaskan kerentanan untuk memperkuat keamanan dan mengurangi risiko di seluruh sistem Anda.

      Jelajahi solusi penilaian kerentanan
      Layanan manajemen kerentanan

      Identifikasi, prioritaskan, dan kelola remediasi kelemahan keamanan untuk mengurangi paparan, memperkuat pertahanan, dan mendukung kepatuhan.

      Jelajahi layanan manajemen kerentanan
      Ambil langkah selanjutnya

      Memindai dan deteksi kerentanan di seluruh database dan sistem TI, kemudian memprioritaskan dan memandu remediasi untuk mengurangi risiko dan memperkuat postur keamanan.

      1. Jelajahi Guardium Vulnerability Assessment
      2. Jelajahi solusi penilaian kerentanan