API atau Library tidak aman

Kategori OWASP: MASVS-CODE: Code Quality

Ringkasan

Menggunakan API atau library yang tidak aman akan mengurangi postur keamanan aplikasi secara signifikan. Pelanggaran keamanan pada salah satu dependensi ini akan memungkinkan penyerang memanfaatkan sejumlah vektor untuk melakukan berbagai serangan seperti man-in-the-middle (MitM) dan eksekusi kode jarak jauh (RCE).

Ancaman dari penerapan dependensi yang tidak aman akan muncul jika developer tidak mengintegrasikan penilaian keamanan dan pengujian kerentanan ke dalam Software Development Lifecycle (SDLC) atau, dalam beberapa kasus, tidak menerapkan kebijakan update otomatis untuk dependensi aplikasi.

Eksploitasi dependensi biasanya dimulai dengan menganalisis biner aplikasi (.apk) untuk menelusuri library yang rentan. Pada tahap ini, Open Source Intelligence (OSINT) dilakukan untuk mengungkap kerentanan yang sebelumnya berpotensi dapat dieksploitasi. Penyerang kemudian dapat memanfaatkan informasi kerentanan yang diungkapkan secara publik seperti kerentanan dan eksposur umum (CVE) untuk melakukan serangan lebih lanjut.

Dampak

Keberhasilan eksploitasi dependensi yang tidak aman dapat menyebabkan berbagai serangan seperti eksekusi kode jarak jauh (RCE), injeksi SQL (SQLi), atau pembuatan skrip lintas situs (XSS). Oleh karena itu, dampaknya secara keseluruhan terkait langsung dengan jenis kerentanan yang diperkenalkan oleh software pihak ketiga dan yang dapat dieksploitasi oleh penyerang. Kemungkinan konsekuensi dari keberhasilan eksploitasi dependensi yang rentan adalah pelanggaran data atau ketidaktersediaan layanan, yang dapat menyebabkan dampak yang signifikan terhadap reputasi dan pendapatan ekonomi.

Mitigasi

Defense in depth

Perhatikan bahwa mitigasi yang tercantum di bawah harus diterapkan bersama-sama untuk memastikan postur keamanan yang lebih kuat, dan mengurangi permukaan serangan aplikasi. Pendekatan yang tepat harus selalu dievaluasi berdasarkan kasus per kasus.

Penilaian kerentanan dependensi

Terapkan verifikasi dependensi di awal siklus proses pengembangan untuk mendeteksi kerentanan dalam kode pihak ketiga. Fase ini menguji keamanan kode yang tidak dibangun secara internal sebelum diluncurkan di lingkungan produksi. Verifikasi dapat dilengkapi dengan penerapan alat-alat pengujian keamanan aplikasi statis (SAST) dan pengujian keamanan aplikasi dinamis (DAST) dalam siklus proses pengembangan software untuk meningkatkan postur keamanan aplikasi.

Mengupdate dependensi secara berkelanjutan

Selalu berhati-hatilah saat mengupdate secara berkelanjutan dependensi yang tersemat dalam kode. Untuk tujuan ini, sebaiknya implementasikan update otomatis yang didorong ke produksi setiap kali komponen pihak ketiga merilis patch keamanan baru.

Melakukan uji penetrasi pada aplikasi

Lakukan uji penetrasi secara rutin. Pengujian semacam ini bertujuan untuk mengungkap kerentanan yang diketahui, yang dapat memengaruhi kode kepemilikan dan, atau dependensi pihak ketiga. Selain itu, penilaian keamanan sering menemukan kerentanan yang tidak diketahui (zero day). Uji penetrasi sangat membantu developer, karena uji tersebut menyediakan snapshot postur keamanan aplikasi saat ini dan membantu developer memprioritaskan masalah keamanan yang dapat dieksploitasi dan harus ditangani.

Referensi