Selama akhir pekan, muncul kabar bahwa seorang peretas menembus situs media sosial sayap kanan Gab dan mengunduh 70 gigabyte data dengan mengeksploitasi kelemahan keamanan menggunakan injeksi SQL.
Tinjauan singkat dari kode sumber terbuka Gab menunjukkan bahwa kerentanan kritis — atau setidaknya yang serupa — diperkenalkan oleh kepala petugas teknologi perusahaan (CTO).
Perubahan, yang dalam bahasa pengembangan perangkat lunak dikenal sebagai “git commit”, dilakukan sekitar bulan Februari dari akun Fosco Marotto, mantan insinyur perangkat lunak Facebook yang pada bulan November menjadi CTO Gab. Pada hari Senin, Gab menghapus git commit dari situsnya. Di bawah ini adalah gambar yang menunjukkan perubahan perangkat lunak bulan Februari, seperti yang ditunjukkan dari situs yang menyediakan snapshot commit yang disimpan.
Commit menunjukkan pengembang perangkat lunak yang menggunakan nama Fosco Marotto yang memperkenalkan dengan tepat jenis kesalahan pemula yang dapat menyebabkan jenis pelanggaran yang dilaporkan akhir pekan ini. Secara khusus, baris 23 menghapus kode “tolak” dan “filter”, yang merupakan fungsi API yang mengimplementasikan idiom pemrograman yang melindungi dari serangan injeksi SQL.
Idiom ini memungkinkan programmer untuk membuat kueri SQL dengan cara yang aman yang “membersihkan” masukan yang dimasukkan pengunjung situs web ke dalam kotak telusur dan bidang web lainnya untuk memastikan bahwa setiap perintah berbahaya dihapus sebelum teks diteruskan ke server backend.
Sebagai gantinya, pengembang menambahkan panggilan ke fungsi Rails yang berisi metode “find_by_sql”, yang menerima input unsanitized secara langsung dalam string kueri. Rails adalah toolkit pengembangan situs web yang banyak digunakan.
Selengkapnya: Ars Technica