Kebutuhan akan membuat aplikasi yang aman (secure by design) semakin menggaung khususnya belakangan ini dengan berlakunya Undang-undang Perlindungan Data Pribadi. Hampir seluruh praktisi kini mendakwahkan pentingnya aplikasi yang aman sekaligus memberikan rekomendasi tools dan layanan untuk meningkatkan keamanan suatu aplikasi. Di luar dari produk, tools, dan layanan yang ditawarkan tulisan ini akan membedah tiga macam uji keamanan aplikasi yang penting anda ketahui untuk berikutnya anda tidak salah memilih produk layanan yang ditawarkan.
1. Static Application Security Test – SAST
Static Application Security Test (SAST) atau Pengujian Keamanan Aplikasi Statis, merupakan uji keamanan perangkat lunak melalui peninjauan kode (code review) untuk mengidentifikasi pengkodean yang tidak aman sehingga menimbulkan kerentanan. Teknik ini ramai digunakan semenjak tahun 1998 ketika aplikasi web mulai mengenal serangan SQL Injection. SAST bekerja secara statis sebelum aplikasi dijalankan, teknik ini memindai kode yang dibuat dan menganalisa kerentanan-kerentanan sesuai dengan bahasa pemrograman yang digunakan.
Dewasa ini SAST Code Review dapat diintegrasikan dengan Code Editor pilihan anda. Sebagai contoh HCL AppScan CodeSweep merupakan salah satu SAST Code Review yang dapat anda install di Visual Studio Code. Setiap anda click save, HCL App Scan akan melakukan pemindaian kode anda dan menunjukkan kesalahan anda dalam proses pengkodean untuk ditindaklanjuti.
2. Dynamic Application Security Test – DAST
Dynamic Application Security Testing (DAST) atau Pengujian Keamanan Aplikasi Dinamis, adalah proses pengujian non-fungsional (non-functional test) di mana pengujian dilakukan untuk melihat segi keamanannya tanpa memerhatikan fungsi dari fiturnya. Berbeda dengan SAST, pengujian DAST dilakukan pada saat aplikasi berjalan (running). Pengujian ini kerap akan memindai aplikasi anda untuk jalur-jalur masuk seperti form dan uploader. Kemudian form dan uploader tersebut kerap akan dikirimkan payload besar, berbahaya, dan penuh muslihat yang lazimnya digunakan untuk penyerangan. Proses pengujian ini dapat dilakukan dengan cara manual maupun otomatis. Berbagai penyedia server dan kode repositori memberikan layanan DAST baik gratis maupun berbayar seperti Gitlab, Panoptica, OWASP, Snyk dan Circle CI.
3. Penetration Testing
Penetration Testing atau Uji Pembobolan, adalah tingkatan pengujian keamanan yang paling tinggi dan lazimnya harus dilakukan oleh manusia. Banyak yang sering terkecoh dengan label penyedia layanan DAST yang menawarkan automated penetration testing sehingga dianggap sama dengan penetration testing. Kedua hal ini berbeda. Penetration Testing tidak memiliki batasan teknik dan dapat dilakukan lebih lama. Bahkan tidak menutup kemungkinan menggunakan teknik social engineering untuk mendapatkan informasi untuk dapat meretas dalam konteks pengujian.
Lantas mana yang harus dipilih ?
Secara prinsip semuanya harus dilakukan tanpa pilihan. Mulai dari pemindaian kode (SAST), uji keamanan non-fungsional (DAST), dan uji pembobolan dengan White Hat Hacker (penetration testing) secara berurutan. Karena hanya dengan ketiganya dijalankan baru dapat dibuktikan bahwa suatu aplikasi lolos uji keamanan. Tentunya hal ini tidak mudah dan tidak murah, namun hal ini kembali lagi kepada pihak pembuat aplikasi dengan risiko kebobolan dan pencurian data yang kini kian marak menghantui seluruh aplikasi di dunia.