USING COMPONENT WITH KNOWN VULNERABILITIES
Penulis: Andi Muh. Mulki Febrianto, Venta Adrian Ahnaf, Michael Simon
Pembimbing : Nico Surantha
Beberapa orang yang berpengalaman dengan IT Security mungkin sudah mengenal dengan beberapa hal yang disebut sebagai resiko keamanan pada aplikasi. Berdasarkan yang dipaparkan dalam penjelasan suatu website yang mengulas mengenai keamanan dalam teknologi informasi, OWASP, dijelaskan terdapat 10 jenis resiko keamanan aplikasi web yang paling kritis. Salah satunya adalah Using Component with Known Vulnerabilities.
Kerentanan suatu komponen yang masuk ke dalam celah “Vulnerability” ini disebabkan oleh pihak ketiga dari komponen tersebut yang menyerang library suatu aplikasi baik dari webbase ataupun platform lainnya. Sehingga komponen pihak ketiga ini dengan kerentanan/celah yang diketahui bisa menyerang sistem operasi itu sendiri, seperti framework yang telah disediakan (CMS), web server dan beberapa plugin atau komponen yang diketahui oleh developer yang telah terinstal atau telah masuk dalam library tersebut di dalam sistem aplikasi.
Bagaimana Celah Komponen yang Diketahui tersebut Bekerja?
Yang pertama melalui Threat Agent/Pengancaman, dimana ancaman ini masuk melalui library salah satu framework yang bisa diidentifikasi dan dieksploitasi menggunakan tools automatis.
Yang Kedua melalui Attacker Approach/Pendekatan Penyerang, yaitu si penyerang melakukan identifikasi untuk mencari kelemahan komponen melalui scanning atau analisis manual, sehingga dia mendapatkan hasil dari identifikasi komponen yang telah terpakai di library tersebut.
Yang ketiga melalui Security Weakness/Kelemahan dari Keamanan, secara aplikasi ini telah menjadi isu yang sangat lazim karena kebanyakan dari tim pengembang tidak fokus untuk memastikan apakah komponen/library tersebut aman terhadap aplikasi yang up-to-date.
Yang keempat Bagaimana Spotnya, cukup mudah si penyerang melihat celah tersebut, yaitu ketika file tersebut disimpan di library pada layer yang paling top atau yang paling krusial sehingga menjadi susah ditembus dan diserang lebih dalam.
Yang kelima adalah Technical Impact/Dampak Teknis, yaitu berbagai kelemahan memungkinkan masuk melalui Injection, Merusak akses control, XSS dan lain-lain.
Mekanisme Penyerangan
- Skenario 1 : Penyerang/Attacker langsung menginfeksi celah suatu server lokal, dengan mengacak-acak akses kontrol file lokal dengan menyertakan SQL Injection dan juga melalui XSS vs CSRF Vulnerable pada serangan seperti Brute Force
- Skenario 2 : Pada skenario dua ini dapat dilakukan 2 cara yaitu dengan menginfeksi langsung ke server (via server lokal/cloud) dan yang kedua melalui web service / aplikasi web. Yang pertama langsung ke server yaitu, si attacker melakukan request dengan komponen/library, setelah itu membuka komponen tersebut dan menidentifikasinya, lalu server tersebut berhasil di serang. Lalu yang kedua melalui web service / aplikasi web yaitu, dengan melakukan scanning/proses searching celah yang diketahui sehingga web service tersebut dapat dieksploitasi dengan resiko yang signifikan.
Cara Memperbaikinya
Bagi aplikasi yang telah diserang melalui komponen/library dapat diperbaiki dengan melakukan penghapusan semua komponen yang terinfeksi oleh celah attacker, lalu harus memiliki kontrol keamanan konfigurasi pada semua library dengan menggunakan versi komponen tersebut dan meng updatenya dengan cara yang benar dan mengidentifikasi apakah komponen tersebut benar atau tidak, lalu tetap melakukan pembaruan komponen secara berkala, terutama pembaruan keamanan yang dirilis oleh komponen tersebut bukan hanya pembaruan dengan komponen yang lain yang mengancam pada celah aplikasi tersebut.
Mekanisme Pencegahan
Yaitu dengan terus melakukan update versi terbaru komponen tersebut dari sisi klien, server dan dependensinya, harus mengetahui vulnerability nya, setelah itu melakukan security assessment test, lalu analisis komponen/library tersebut benar-benar pada saat runtime tidak ada perubahan atau sesuatu hal yang aneh, setelah itu mengidentifikasi semua library dan versi yang digunakan pada aplikasi web tidak hanya database dan versi framework saja, lalu jauhkan semua komponen seperti database publik, mailing list dan lain-lain. Lalu berikan training untuk developer supaya lebih tahu vulnerability tersebut dari si attacker.
Video berikut menunjukkan contoh demo dari Using Component with Known Vulnerabilities
http://bit.ly/2z2vDlD