Penjelasan obfuscation pada tahap Bash
- Sebuah backdoor ditemukan di xz/liblzma. Ini memengaruhi server OpenSSH.
- Alih-alih berfokus pada biner yang berisi backdoor, perhatian diarahkan pada bagian bash awal dan metode obfuscation sederhana namun cerdik yang digunakan.
- Artikel ini menjelaskan bagaimana tahap bash di-obfuscate dan diekstrak.
Sebelum memulai
- Dua versi xz/liblzma (5.6.0 dan 5.6.1) terdampak. Ada sedikit perbedaan.
- Bagian bash dibagi menjadi tiga tahap (atau empat tahap?), dan tiap tahap dinamai dari Stage 0 hingga Stage 2.
- "Stage 3" juga akan dibahas, tetapi mungkin belum sepenuhnya diimplementasikan.
- Tahap yang di-obfuscate/dienkripsi dan backdoor biner setelahnya disembunyikan di dalam dua file uji.
Stage 0
- Dimulai dari file
m4/build-to-host.m4. Kode ini dieksekusi di suatu titik selama proses build untuk mengekstrak skrip Stage 1.
- Membaca byte dari file uji dan meneruskannya ke keluaran standar, lalu menggunakan perintah
tr untuk memetakan karakter ke karakter lain.
Stage 1
- File bash yang dimulai dengan "####Hello####". Dibuat agar hanya berjalan di Linux.
- Menggunakan
eval untuk mengekstrak srcdir dari config.status, dan mencakup rangkaian perintah head yang rumit untuk melewati byte tertentu lalu mencetak output.
- Menggunakan perintah
tr untuk menerapkan sandi substitusi sederhana, lalu mendekompresi dengan perintah xz dan menjalankannya.
Stage 2
- Stage 2 adalah skrip bash yang memodifikasi proses kompilasi yang sebenarnya.
- Tampaknya ada sistem "ekstensi/patch", yang memungkinkan skrip baru dijalankan tanpa harus terus memodifikasi file uji.
- Berisi kode untuk mengekstrak file
.o dan mengintegrasikannya ke proses kompilasi/linking.
Ringkasan
- Proses ini sangat tersembunyi dan dirangkai secara kompleks hanya dengan menggunakan alat command line standar.
- Dengan eksekusi tiga tahap dan sistem "ekstensi", ini dirancang untuk mengantisipasi masa depan dan menghindari kebutuhan mengubah ulang file uji biner.
- Fakta bahwa serangan seperti ini ditemukan secara kebetulan menyisakan banyak pertanyaan bagi komunitas keamanan.
Opini GN⁺
- Artikel ini menekankan pentingnya keamanan perangkat lunak dan serangan supply chain. Ini membantu menyadarkan adanya celah yang dapat muncul dalam proses build perangkat lunak, serta mengingatkan pentingnya peninjauan kode dan audit keamanan.
- Teknik obfuscation dan metode serangan multi-tahap menunjukkan betapa canggihnya penyerang dapat menyusup ke dalam sistem. Teknik seperti ini juga memiliki nilai edukatif bagi para profesional keamanan.
- Alat atau proyek keamanan lain dengan fungsi serupa mencakup OWASP Dependency-Check dan Nexus Platform dari Sonatype. Keduanya membantu mengidentifikasi kerentanan keamanan pada dependensi perangkat lunak.
- Saat mengadopsi pendekatan pencegahan semacam ini, keamanan perlu diperkuat di setiap tahap supply chain perangkat lunak. Keuntungannya adalah meningkatnya keamanan sistem, tetapi risikonya adalah metode seperti ini bisa sulit dideteksi bila digunakan oleh penyerang.
- Insiden ini menyoroti sekaligus kekuatan dan kelemahan komunitas open source. Peninjauan dan kontribusi berbasis komunitas penting bagi pertumbuhan dan keamanan proyek, tetapi pada saat yang sama juga ada risiko dari kontributor yang berniat jahat.
Belum ada komentar.