Mengembangkan cara yang lebih baik untuk mengatasi kerentanan di tingkat kode sumber
Computer

Mengembangkan cara yang lebih baik untuk mengatasi kerentanan di tingkat kode sumber


Kredit: LILLIAN MCKINNEY

Kebutuhan untuk menambal masalah dalam program yang tertanam dalam sistem yang ada, mungkin untuk memperkenalkan atau meningkatkan keamanan, adalah hal yang umum, menurut profesor ilmu komputer UC Santa Barbara, Giovanni Vigna. “Tapi, kenapa kamu melakukan itu?” dia bertanya secara retoris. “Mengapa tidak menulis program yang berbeda?”

“Karena terkadang tidak memungkinkan, atau membutuhkan usaha yang sangat besar,” jawabnya. “Kadang-kadang, Anda diberi program untuk ditambal, dan Anda tidak memiliki kode sumber untuk memodifikasinya pada tingkat itu dan mengkompilasinya ulang.”

“Banyak sistem komputer yang disematkan, seperti yang ada di truk, pesawat terbang, dan perangkat medis, berjalan pada perangkat lunak yang kode sumber dan toolchain kompilasi aslinya tidak tersedia,” kata Antonio Bianchi, asisten profesor di Universitas Purdue yang belajar di lab Vigna. mengejar gelar doktornya di UCSB. “Banyak komponen perangkat lunak lama yang berjalan di sistem ini diketahui mengandung kerentanan, tetapi menambalnya tidak selalu mudah atau bahkan memungkinkan.”

Vigna, direktur Center for CyberSecurity di UCSB, dan Bianchi adalah di antara sekelompok peneliti di UCSB, Purdue dan Institut Teknologi Federal Swiss Lausanne (EPFL) yang telah menerima Badan Proyek Penelitian Lanjutan Pertahanan senilai $ 3,9 juta ( DARPA) hibah untuk mendanai proyek yang disebut “Assured Micropatching,” yang bertujuan meningkatkan proses kode patching dalam sistem tertanam yang rentan.

“Tanpa kode sumber, menambal kerentanan memerlukan pengeditan kode biner secara langsung,” kata Bianchi. Selain itu, bahkan dalam sistem yang telah di-patch, tidak ada jaminan bahwa patch tersebut tidak akan mengganggu fungsionalitas asli perangkat. Karena kesulitan tersebut, kata dia, kode yang berjalan di sistem yang tertanam sering dibiarkan tanpa patch, bahkan ketika diketahui rentan. “

Mengingat situasi itu, Vigna menjelaskan, “Anda perlu melihat program dengan cara yang berbeda; Anda perlu melihat kode biner, kode mesin, angka satu dan nol yang benar-benar menentukan perilaku suatu program. Namun hingga saat ini, program biner sebagian besar dianggap statis; yaitu, setelah Anda memiliki program yang dikompilasi, pemikirannya pergi, program tidak dapat diubah. Yang cukup menarik, di masa lalu, seringkali hanya aktor jahat yang akan fokus pada memodifikasi biner untuk menginfeksi jinak program biner. “

Namun dalam evolusi lapangan, teknik telah dikembangkan yang memungkinkan untuk mempertimbangkan program biner sebagai entitas yang dapat dibentuk, sesuatu yang dikatakan Vigna, “Anda dapat memodifikasi, memisahkan, dan menyatukan kembali.”

“Banyak penelitian yang telah keluar dari UCSB,” tambahnya, “telah difokuskan pada manipulasi biner ini, yang memiliki sejumlah aplikasi berbeda, dari melindungi binari hingga menghapus bagian biner yang tidak Anda perlukan atau inginkan. karena mereka mungkin menyertakan kerentanan atau meningkatkan pemaparan terhadap serangan penggunaan ulang kode, di mana bagian dari kode jinak yang ada digunakan kembali untuk melakukan tindakan jahat. “

Menambal biner, level kode mesin sangat sulit, karena di sana, Vigna berkata, “Anda tidak memiliki abstraksi tingkat tinggi yang Anda miliki di kode sumber, yang memungkinkan Anda untuk lebih memahami properti tertentu dari program. “

Sebaliknya, jelasnya, menambal kode biner mirip dengan memperbaiki rumah tanpa cetak biru atau denah seluruh rumah, jadi Anda hanya melihat kotak kecil, mungkin pintu, dan hanya bisa membuatnya biru atau putih. “Anda melihat sepotong kecil granular, dan dari sana, Anda harus merekonstruksi visi tingkat tinggi dari segala sesuatu yang terjadi dan kemudian memastikan bahwa perilakunya sama,” kata Vigna. “Anda berada di urutan nol-satu, mencoba mencari tahu ke mana tambalan itu harus pergi. Ini menambah kerumitan yang sangat besar tetapi juga membuat pendekatan itu dapat diterapkan untuk semuanya, karena semuanya biner. Pemanas Anda, oven microwave Anda —Mereka semua dikendalikan oleh mikroprosesor yang menjalankan kode biner. “

Secara alami, ilmuwan komputer ingin menghindari keharusan mengkompilasi ulang seluruh sistem untuk memperbaiki satu kerentanan. “Saya hanya ingin dapat membuat perubahan ini ke biner yang akan memperbaiki kemungkinan kerentanan dan tidak perlu memikirkannya lagi,” kata Vigna. “Dan saya ingin jaminan formal bahwa saya tidak membuat kesalahan dan memperkenalkan beberapa kerentanan baru, atau membuat program yang tidak stabil. Banyak upaya untuk dapat menunjukkan kepada Anda bahwa modifikasi saya telah memperbaiki masalah tanpa mengubah perilaku dari program. “

Kunci lain untuk sistem penambalan yang diinginkan adalah bahwa ia tidak perlu diuji ulang setelah tambalan dibuat. “Jika saya dapat membuktikan kepada Anda bahwa kerentanan telah diperbaiki tetapi sistem akan beroperasi dengan cara yang persis sama seperti biasanya, maka Anda tidak perlu mengujinya lagi,” kata Vigna. “Itu menghemat waktu, meningkatkan keamanan, dan menggunakan sistem yang membuat kode biner dapat ditempa.”

Vigna, bekerja dengan sesama profesor ilmu komputer Christopher Kruegel dan dengan Aravind Machiry, Ph.D. dari UCSB dan calon profesor di Purdue, telah mengembangkan teknologi baru untuk memverifikasi patch keamanan, tetapi teknik yang diusulkan hanya berlaku untuk kode sumber. Proyek DARPA baru difokuskan pada perluasan pendekatan kode biner untuk meningkatkan efektivitas dan memperluas penerapannya pada perangkat lunak yang berjalan pada jutaan perangkat yang mengelilingi kita setiap hari.


Alat-alat baru dapat memberikan kepastian yang kokoh bahwa bug komputer adalah sesuatu dari masa lalu


Disediakan oleh University of California – Santa Barbara

Kutipan: Mengembangkan cara yang lebih baik untuk mengatasi kerentanan di tingkat kode sumber (2020, 18 Desember) diambil pada 18 Desember 2020 dari https://techxplore.com/news/2020-12-vulnerabilities-source-code.html

Dokumen ini memiliki hak cipta. Selain dari transaksi yang adil untuk tujuan studi atau penelitian pribadi, tidak ada bagian yang boleh direproduksi tanpa izin tertulis. Konten disediakan untuk tujuan informasi saja.




Halaman Ini Di Persembahkan Oleh : Pengeluaran HK