Sebagai salah satu bahasa pemrograman yang sering digunakan oleh programer, Java maupun Python diketahui memiliki kerentanan keamanan yang sama persis, keduanya memiliki lubang yang sangat mungkin dimanfaatkan penjahat siber untuk melakukan bypass terhadap firewall dengan menyuntikkan perintah berbahaya dalam FTP URL.
Masalah timbul dari cara Java dan Python melalui library urllib2 di Python 2 dan library urllib di Python 3 menangani link FTP, yang memungkinkan penyerang untuk menyuntikkan baris (CRLF) karakter di dalam URL, membuat kode Java dan Python berpikir bahwa beberapa bagian dari URL adalah perintah baru. Hal ini menyebabkan cacat yang disebut Protocol Injection.
Masalah protocol injection FTP sebenarnya sudah dideteksi sejak tahun 2014 , namun tidak pernah mendapat perhatian publik, sehingga laporan tersebut lambat laun tenggelam seiring dengan waktu dan dianggap tidak ada sampai kasus ini muncul di permukaan dan membuat semua mata terbelalak.
Dari laporan terakhir diketahui adanya dua skenario eksploitasi baru, yang perlu dijadikan perhatian, yaitu:
- Kerentanan pada FTP Protocol Injection bisa digunakan untuk mengirim email dengan Java FTP URL handler.
- Ini yang paling berbahaya, FTP URL handler di Java dan Python dapat digunakan untuk melakukan bypass terhadap firewall.
Kerentanan di jantung FTP protocol injection sudah ada masalah yang jauh lebih lama dalam protokol FTP itu sendiri, yaitu classic mode FTP. Mode ini adalah mekanisme yang lebih tua digunakan untuk mengatur bagaimana FTP Client dan server berinteraksi, yang kemudian menjadi masalah timbulnya kerentanan.
Modus klasik FTP telah diganti dengan metode yang lebih aman dari client-server FTP dikenal sebagai pasif mode FTP. Namun demikian, sebagian besar produk firewall masih mendukung koneksi dengan classic mode FTP..
Masalah protocol injection FTP di Java dan Python dapat dimanfaatkan untuk membuat sambungan ke classic mode FTP, dan ini dapat dimanfaatkan oleh penjahat siber untuk mengakali sebagian besar firewall dengan tujuan jahat.
Serangan
Seluruh serangan bypass firewall bergantung pada cara meyakinkan pengguna untuk mengakses aplikasi Java atau Python berbahaya yang terinstal pada sebuah server. Untuk serangan Java, pengguna harus memiliki Java diinstal secara lokal, tetapi serangan itu akan tetap bekerja bahkan jika Java applet dinonaktifkan di browser pengguna. Hal ini karena klien Java akan membaca file JNLP (Jaringan Java Launch Protocol) sebelum melakukan apapun.
Java akan mengurai file JNLP sebelum menyajikannya ke pengguna dengan peringatan keamanan. Dan serangan akan berhasil tanpa menunjukkan indikasi apa pun kepada pengguna kecuali browser itu sendiri memperingatkan pengguna tentang Java Web Start yang diluncurkan.
Pelaku hanya perlu menempatkan URL FTP berbahaya di dalam file JNLP dikirim ke pengguna ketika mereka mengakses aplikasi web Java. Beberapa URL FTP memang dapat ditempatkan di dalam file JNLP untuk memungkinkan penyerang mengeksekusi sebuah atau beberapa serangan sekaligus.
Serangan ini terbukti berhasil dilakukan terhadap firewall berbasis Linux, termasuk produk komersial yang dijual oleh Cisco dan Palo Alto Networks. Sehingga kemungkinan besar bahwa banyak produk firewall lainnya yang bekerja pada OS Linux derivate rentan juga.
Masalahnya sampai sekarang Oracle dan tim Python belum juga memperbaiki masalah kerentanan ini, karena itu ada beberapa langkah yang bisa dilakukan untuk mengatasinya:
- Hapus Java dari semua sistem desktop. Jika hal ini tidak mungkin karena persyaratan aplikasi warisan, maka nonaktifkan Java plugin browser dari semua browser dan pisahkan ekstensi file .jnlp dari binary Java Web Start.
- Lakukan update untuk memperbaiki masalah ini dari Oracle dan Python Software Foundation. Pastikan untuk menerapkan pembaruan keamanan untuk semua versi Java dan Python, termasuk yang berjalan pada server aplikasi dan appliances.
- Admin jaringan harus menonaktifkan classic mode FTP di semua firewall, sehingga hanya menggunakan pasif mode FTP.
- Vendor firewall harus menonaktifkan classic mode FTP sehingga produk tidak dikirimkan dengan opsi diaktifkan secara default.
Sumber berita:
www.bleepingcomputer.com