Bahkan perangkat lunak yang telah dibangun dengan prosedur pengembangan yang aman mungkin masih rentan diserang, karena kekurangan bahasa pemrograman yang ditafsirkan yang mereka andalkan.
Peneliti IOActive Fernando Arnaboldi mengungkapkan pada konferensi Black Hat Europe pekan lalu bahwa kekurangan serius dalam interpreter untuk lima bahasa pemrograman populer membuat aplikasi diurai oleh mereka berisiko.
Arnaboldi menemukan, misalnya, Python memiliki "metode yang tidak terdokumentasi dan variabel lingkungan lokal yang dapat digunakan untuk eksekusi perintah OS".
NodeJS, juru bahasa JavaScript, sementara itu bisa membocorkan konten file melalui pesan kesalahan yang dihasilkannya, sementara JRuby, implementasi Java Ruby, "memuat dan mengeksekusi kode jarak jauh pada fungsi yang tidak dirancang untuk eksekusi kode jarak jauh".
Baca juga : Mirai Botnet Attacker Mengaku bersalah atas peran dalam serangan cyber
Untuk Perl, Arnaboldi mengutip kemampuan fungsi tipenya, termasuk dalam rangkaian modul standarnya, untuk mengeksekusi kode. Sementara di PHP, fungsi asli tertentu bisa melewati nama konstanta untuk melakukan eksekusi perintah jarak jauh.
Dia percaya bahwa kerentanan ini mungkin disebabkan oleh usaha untuk menyederhanakan pengembangan perangkat lunak.
"Kerentanan akhirnya mempengaruhi aplikasi reguler yang diurai oleh para juru bahasa yang terkena dampak, namun, perbaikannya harus diterapkan pada penafsir," catatnya.
"Berkaitan dengan kerentanan bahasa pemrograman yang ditafsirkan, pengembang perangkat lunak mungkin secara tidak sadar memasukkan kode ke dalam aplikasi yang dapat digunakan dengan cara yang tidak diramalkan oleh perancang. Beberapa perilaku ini menimbulkan risiko keamanan pada aplikasi yang dikembangkan dengan aman sesuai pedoman. , "tulis Arnaboldi
Peneliti menemukan kekurangan menggunakan XDiFF, 'fuzzer diferensial' yang dia buat dan targetkan pada beberapa penerjemah untuk bahasa yang berbeda.
Untuk JavaScript, target termasuk mesin JavaScript Google v8, dan setara dengan ChakraCore Microsoft, SpiderMonkey Mozilla, dan NodeJS, dan Node-ChakraCore.
Di PHP, dia mengkhianati PHP dan HHVM, sedangkan untuk Ruby targetnya termasuk Ruby dan JRuby. Dia juga fuzzed Perl, ActivePerl, CPython, PyPy, dan Jython.
Seperti yang dia katakan sebelumnya, penelitian tersebut menunjukkan bahwa aplikasi dapat mengalami masalah keamanan saat menggunakan fitur tertentu dari bahasa pemrograman.
"Ada sejumlah kemungkinan untuk disalahgunakan dalam implementasi yang berbeda yang dapat mempengaruhi aplikasi yang aman. Ada skenario tak terduga untuk bahasa pemrograman yang diinterpretasikan dalam kode JavaScript, Perl, PHP, Python dan Ruby," tulis Arnaboldi.
Author : Rama trisna pasa
Sumber : Zdnet sec
Post a Comment