CTO Gab Memperkenalkan Kerentanan Kritis ke Situs


Selama akhir pekan, muncul kabar bahwa seorang peretas menembus situs web media sosial sayap kanan Gab dan mengunduh 70 gigabyte data dengan mengeksploitasi kelemahan keamanan berbagai taman yang dikenal sebagai injeksi SQL. Tinjauan singkat terhadap kode sumber terbuka Gab menunjukkan bahwa kerentanan kritis — atau paling tidak yang serupa — diperkenalkan oleh kepala petugas teknologi perusahaan.

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. Bayangan di situs yang menyediakan snapshot komit yang disimpan menunjukkan perubahan perangkat lunak bulan Februari.

Komit 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 mengupas kode “tolak” dan “filter”, yang merupakan fungsi API yang mengimplementasikan idiom pemrograman yang melindungi dari serangan injeksi SQL.

Idiom ini memungkinkan pemrogram 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.

“Sayangnya, dokumentasi Rails tidak memperingatkan Anda tentang jebakan ini, tetapi jika Anda mengetahui apa pun tentang penggunaan database SQL di aplikasi web, Anda pasti pernah mendengar tentang injeksi SQL, dan tidak sulit untuk menemukan peringatan bahwa metode find_by_sql tidak aman, ”tulis Dmitry Borodaenko, mantan insinyur produksi di Facebook yang menyampaikan komitmen tersebut kepada saya dalam email. “Tidak 100% dikonfirmasi bahwa ini adalah kerentanan yang digunakan dalam pelanggaran data Gab, tapi pasti bisa terjadi, dan perubahan kode ini dikembalikan dalam komit terbaru yang ada di repositori GitLab mereka sebelum mereka mengambilnya offline. ”

Ironisnya, Fosco pada tahun 2012 memperingatkan sesama pemrogram untuk menggunakan kueri berparameter untuk mencegah kerentanan injeksi SQL. Marotto tidak menanggapi email yang meminta komentar untuk postingan ini. Upaya untuk menghubungi Gab secara langsung tidak berhasil.

Selain komitmen yang menimbulkan pertanyaan tentang proses Gab untuk mengembangkan kode aman, situs media sosial tersebut juga menghadapi kritik karena menghapus komitmen tersebut dari situs webnya. Para kritikus mengatakan langkah itu melanggar persyaratan Lisensi Publik Umum Affero, yang mengatur penggunaan kembali Mastodon oleh Gab, sebuah paket perangkat lunak sumber terbuka untuk menghosting platform jejaring sosial.

Kata kritikus penghapusan tersebut melanggar persyaratan yang mengharuskan kode sumber bercabang ditautkan langsung dari situs. Persyaratan tersebut dimaksudkan untuk memberikan transparansi dan untuk memungkinkan pengembang open source lainnya mendapatkan keuntungan dari pekerjaan rekan-rekan mereka di Gab.

Gab sudah lama memberikan komitmen di https://code.gab.com/. Kemudian, pada hari Senin, situs tersebut tiba-tiba menghapus semua commit — termasuk yang membuat dan kemudian memperbaiki kerentanan injeksi SQL yang kritis. Sebagai gantinya, Gab memberikan source code berupa file arsip Zip yang diproteksi dengan password “JesusChristIsKingTrumpWonTheElection” (tanpa tanda petik).

Perwakilan dari proyek Mastodon tidak segera menanggapi email yang menanyakan apakah mereka berbagi kekhawatiran tentang kritik tersebut.

Selain pertanyaan tentang pengodean aman dan kepatuhan lisensi, komitmen Gab git juga tampaknya menunjukkan kesulitan bagi pengembang perusahaan perbaiki kode rentan mereka.

Pelanggaran keamanan Gab dan penanganan kode di belakang layar sebelum dan sesudah insiden memberikan studi kasus bagi pengembang tentang caranya tidak untuk menjaga keamanan dan transparansi kode situs web. Pelajaran ini menjadi lebih berbobot mengingat bahwa pengajuan menggunakan akun CTO Gab, yang di antara semua orang seharusnya lebih tahu.

Cerita ini pertama kali tayang di Ars Technica.


Lebih Banyak Kisah WIRED Hebat


Diposting oleh : SGP Prize