Dalam skenario keamanan cyber saat ini, permintaan untuk pengujian keamanan menjadi sangat krusial untuk memastikan sistem dapat terlindungi dari berbagai serangan cyber. Pengujian keamanan manual (manual testing) adalah metode yang paling umum dan banyak digunakan, tetapi pengujian otomatis (automated testing) juga merupakan pilihan yang layak untuk dicoba. Jika Anda bingung memilih yang mana, tulisan ini akan memberikan insight atas pros dan cons atas kedua metode ini. Alih-alih membela satu metode atas yang lain, kita akan melihat bagaimana keduanya bekerja dan bagaimana mereka dapat bekerja bersama untuk menciptakan perlindungan keamanan yang lebih baik.
Apa itu Security Testing
Security testing adalah bagian dari jaminan kualitas dalam siklus pengembangan software. Testing ini bertujuan untuk memastikan bahwa produk tersebut tidak rentan terhadap ancaman keamanan seperti peretasan, virus, dan serangan cyber lainnya yang dapat merusak integritas aplikasi, data, dan penggunanya. Apalagi saat ini aplikasi seringkali menyimpan data sensitif pengguna seperti informasi pribadi, informasi keuangan, dan informasi kesehatan, membuatnya menjadi target yang menarik bagi penjahat cyber. Sehingga serangan keamanan akan dapat mengakibatkan kerugian finansial yang signifikan, serta merusak reputasi perusahaan dan mengurangi kepercayaan pengguna.
Oleh karena itu security testing dilakukan sebagai solusi atas kerentanan ancaman keamanan software. Security testing adalah istilah yang luas yang mencakup beberapa bentuk pengujian khusus, seperti pengujian penetrasi (penetration testing), yang merupakan bentuk pengujian keamanan paling populer. Pengujian penetrasi mensimulasikan serangan yang dilakukan oleh hacker untuk menemukan dan melaporkan kerentanan software.
Pengujian keamanan dilakukan untuk menguji apakah aplikasi software aman dari serangan. Hal ini penting karena akan membantu menghindari serangan yang berpotensi merugikan. Pengujian dilakukan dengan cara memeriksa aplikasi untuk melihat adanya celah dan kelemahan lainnya. Testing ini merupakan tugas yang menantang karena membutuhkan pemahaman yang mendalam tentang ancaman potensial dan cara menghindarinya.
Dua Jenis Security Testing
Security Testing adalah proses pengujian keamanan di mana sebuah sistem diuji dan dianalisis dengan bantuan penetration testing. Setiap pihak luar atau karyawan Anda dapat mengeksploitasi sistem bahkan dengan tingkat kerentanan terkecil. Ada dua jenis proses pengujian yang dapat dilakukan, yaitu secara manual maupun otomatis.
Pengujian Keamanan Manual (Manual Testing)
Pengujian keamanan manual dilakukan oleh manusia. Pengujian keamanan manual menerapkan penalaran dan evaluasi dari software tester untuk menilai keamanan suatu produk, layanan, atau sistem. Pengujian keamanan manual sering disebut sebagai pengujian penetrasi manual, peninjauan kode manual, atau pengujian kotak hitam (black box testing).
Dalam proses ini, tester secara aktif mencari celah keamanan potensial dalam aplikasi dengan melakukan serangkaian tes dan skenario yang direncanakan. Manual security testing sangat penting karena memungkinkan tester untuk melakukan evaluasi yang mendalam terhadap aplikasi dan mengidentifikasi celah keamanan yang mungkin tidak terdeteksi oleh alat otomatis. Hal ini membantu memastikan bahwa aplikasi memiliki tingkat keamanan yang optimal sebelum diluncurkan ke lingkungan produksi dan terpapar kepada pengguna yang sebenarnya.
Dalam manual testing, peran seorang tester yang memiliki pengetahuan dan pengalaman untuk mengenali kerentanan keamanan dalam sebuah sistem sangatlah penting. Tester akan melakukan serangkaian langkah yang akan mengevaluasi kerentanan tersebut dan menentukan apakah hacker dapat memanfaatkannya secara real-time. Pengujian yang dilakukan juga menentukan apakah kerentanan tersebut benar terjadi dan melaporkannya kepada orang yang tepat dalam organisasi.
Pengujian Keamanan Otomatis (Automated Testing)
Pengujian keamanan otomatis adalah proses pengujian aplikasi untuk melihat potensi kerentanan keamanan atau jika ada konfigurasi yang salah. Dalam proses ini, alat pemindaian otomatis digunakan untuk mengidentifikasi masalah keamanan potensial dan kerentanan dalam berbagai aplikasi.
Perusahaan dapat melakukan pengujian keamanan otomatis secara mandiri atau sebagai bagian dari program pengujian keamanan menyeluruh. Tentunya akan sangat bermanfaat untuk melakukan pengujian keamanan otomatis sebagai bagian dari program pengujian keamanan menyeluruh, karena automated testing ini akan melengkapi upaya pengujian manual lainnya.
Perbedaan Manual Testing dan Automated Testing
Kedua jenis metode pengujian keamanan ini memiliki manfaatnya masing-masing dan digunakan secara luas di seluruh industri. Adapun perbedaan antara kedua metode ini yaitu:
No | Manual Security Testing | Automated Security Testing |
1 | Dilakukan oleh manusia dengan pengetahuan dan pengalaman nya dalam pelakukan pengujian keamanan. | Dilakukan dengan alat pemindaian otomatis untuk menemukan kerentanan. |
2 | Membutuhkan waktu lebih lama dan biaya yang lebih besar. | Lebih cepat dan hemat biaya dibandingkan pengujian manual. |
3 | Lebih fleksibel karena tester dapat berimprovisasi dan menjelajahi area yang tidak terduga. | Kurang fleksibel karena script harus diubah untuk menguji area baru. |
4 | Rentan terhadap human eror | Kurang fleksibel dan tidak dapat mendeteksi semua jenis kerentanan. |
5 | Memerlukan penalaran dan evaluasi manusia untuk menemukan kerentanan. | Membutuhkan pengetahuan teknis untuk menginterpretasikan hasil. |
6 | Cocok untuk pengujian yang kompleks, intuitif, dan membutuhkan eksplorasi. | Cocok untuk pengujian yang berulang, terstruktur, dan membutuhkan kecepatan. |
Kenapa Manual Testing itu penting?
Pentingnya pengujian keamanan manual sering kali diabaikan. Banyak orang berpikir bahwa situs mereka pasti aman karena sudah menggunakan security scanning tools dimana hasil dari pemindaian selalu baik. Satu hal yang perlu disadari bahwa automated testing tools tidak selalu sempurna, dan alat tersebut hanya dapat memeriksa kerentanan pada level tertentu.
Masalah lain dengan pemindai keamanan otomatis adalah bahwa mereka tidak menguji dengan cara yang sama seperti yang dilakukan software tester. Pemindai keamanan otomatis bagus untuk pengujian awal, tetapi seharusnya tidak digunakan sebagai satu-satunya alat pengujian keamanan.
Pengujian Keamanan Manual adalah salah satu teknik dasar yang digunakan dalam pengujian aplikasi web. Ada banyak alasan mengapa teknik ini begitu populer. Pertama, teknik ini mudah dilakukan dan relatif murah untuk dilakukan. Pengujian Keamanan Manual juga sangat efektif, itulah sebabnya banyak perusahaan yang menggunakan teknik ini untuk memastikan bahwa situs web dan aplikasi mereka terlindungi dari berbagai jenis ancaman.
Beberapa manfaat umum dari melakukan pengujian keamanan manual adalah:
- Fleksibilitas dan Kemampuan Beradaptasi
- Software tester dapat dengan cepat berimprovisasi dan menyesuaikan pendekatan pengujian mereka.
- Mereka dapat menjelajahi area yang tidak terduga dan menemukan bug yang mungkin terlewatkan oleh skrip otomatis yang kaku.
- Sangat berguna untuk menguji user interface pengguna (UI) dan pengalaman pengguna (UX) yang memerlukan penilaian subjektif.
- Kreativitas dan Intuisi Manusia
- Software tester dapat berpikir kritis dan menggunakan intuisi mereka untuk mengidentifikasi skenario pengujian yang tidak terduga.
- Mereka dapat menemukan bug yang tidak tercantum dalam rencana pengujian formal.
- Efisiensi untuk Tugas Tertentu
- Untuk tugas-tugas tertentu seperti pengujian eksplorasi atau pengujian kegunaan, pengujian manual bisa lebih efisien daripada membuat dan memelihara skrip otomatis yang rumit.
- Pemahaman Kontekstual
- Software Tester dapat memahami konteks penggunaan software dan mengidentifikasi masalah yang mungkin tidak terdeteksi oleh alat otomatis. Misalnya, mereka dapat menilai apakah business flow dari keseluruhan aplikasi logis dan intuitif bagi pengguna.
- Biaya Awal yang Lebih Rendah
- Memulai pengujian manual biasanya membutuhkan biaya awal yang lebih rendah daripada pengujian otomatis. Anda tidak perlu investasi besar dalam alat dan pengembangan testing script.
Jenis-Jenis Manual Testing
Pengujian keamanan manual dibagi menjadi dua kategori berbeda, yaitu pengujian Keamanan Manual Terarah (Focused Manual Security Testing) dan Pengujian Keamanan Manual Komprehensif (Comprehensive Manual Security Testing)
- Focused Manual Security Testing
Metode ini berfokus pada pengujian kerentanan dan risiko tertentu. Berbeda dengan pengujian keamanan manual umum, penguji di sini memiliki gambaran jelas tentang kerentanan apa yang harus dicari dan bagaimana cara mengeksploitasinya (jika memungkinkan). Pendekatan terarah ini ideal untuk situasi di mana terdapat masalah yang sudah diketahui atau area tertentu yang menjadi perhatian.
- Comprehensive Manual Security Testing
Metode ini menggunakan pendekatan menyeluruh, dengan teliti memeriksa software, jaringan, aplikasi mobile, dan lain sebagainya untuk berbagai kerentanan, eksploitasi, dan kelemahan yang ada dalam sistem. Metode ini adalah analisis terstruktur dan mendalam yang bertujuan untuk mengidentifikasi dan memastikan keberadaan celah keamanan dalam suatu produk.
Sederhananya, focused manual security testing bertindak seperti laser yang menargetkan kerentanan tertentu, sedangkan comprehensive manual security testing adalah pemeriksaan keamanan penuh untuk mengungkap potensi kelemahan dan kerentanan sistem.
Bagaimana Melakukan Manual Testing?
Secara umum, pengujian keamanan manual dilakukan dalam 4 langkah utama:
- Pengumpulan Informasi (Information Gathering):
Langkah ini bertujuan untuk mengumpulkan sebanyak mungkin informasi mengenai sistem yang akan diuji. Metode yang dapat digunakan antara lain:
- Menyelidiki dokumentasi website dan perangkat lunak
- Menganalisis source code (jika memungkinkan)
- Penemuan Kerentanan (Discovery):
Tahap ini berfokus pada identifikasi kelemahan dalam sistem. Penemuan kerentanan dapat dilakukan secara aktif atau pasif:
- Aktif: Memindai jaringan dan berbagai layanan yang berjalan pada sistem.
- Pasif: Menganalisis log keamanan server dan pesan kesalahan untuk mencari jejak potensi kerentanan.
- Eksploitasi Kerentanan (Exploitation):
Setelah menemukan kerentanan, langkah selanjutnya adalah mencoba memanfaatkannya. Tester akan menggunakan berbagai teknik untuk melakukan eksploitasi, seperti:
- Brute-force attack: Mencoba berbagai kombinasi username dan password secara acak untuk mendapatkan akses ilegal.
- SQL injection: Menyisipkan kode berbahaya ke dalam input formulir untuk mengambil alih kontrol database.
- Cross-site scripting (XSS): Menyisipkan script berbahaya ke dalam website untuk menyerang pengunjung lain.
- Pelaporan (Reporting):
Langkah terakhir adalah membuat laporan yang mendokumentasikan keseluruhan proses pengujian. Laporan ini harus mencakup:
- Deskripsi kerentanan yang ditemukan
- Tingkat keparahan kerentanan
- Cara potensial untuk mengeksploitasi kerentanan
- Rekomendasi untuk perbaikan
Dengan mengikuti langkah-langkah ini secara menyeluruh, pengujian keamanan manual dapat membantu Perusahaan Anda mengidentifikasi dan mengatasi kelemahan dalam sistem sebelum dimanfaatkan oleh hacker.
Manual Security Testing di Badr Interactive
Berikut adalah beberapa langkah yang dilakukan dalam manual security testing aplikasi:
- Pengumpulan Informasi: Tester melakukan pengumpulan informasi tentang aplikasi yang akan diuji, termasuk arsitektur, teknologi yang digunakan, fitur dan fungsionalitas, serta kebutuhan keamanan yang telah ditentukan.
- Analisis Risiko: Tester melakukan analisis risiko untuk mengidentifikasi area-area potensial di mana aplikasi mungkin rentan terhadap serangan atau pelanggaran keamanan.
- Pencarian Celah Keamanan: Tester menggunakan berbagai teknik dan metode untuk mencari celah keamanan dalam aplikasi, termasuk pengujian input validation, pengujian SQL injection, pengujian cross-site scripting (XSS), pengujian autentikasi dan otorisasi.
- Eksploitasi Celah Keamanan: Jika tester menemukan celah keamanan, mereka dapat mencoba mengeksploitasi celah tersebut untuk melihat seberapa besar dampaknya dan apakah mereka dapat mendapatkan akses yang tidak sah ke dalam sistem atau data.
- Pemantauan dan Pemindaian Lanjutan: Tester dapat menggunakan alat pemindaian keamanan seperti Burp Suite atau OWASP ZAP untuk melakukan pemindaian lanjutan terhadap aplikasi dan menemukan celah keamanan yang lebih tersembunyi.
- Pelaporan dan Rekomendasi: Setelah selesai melakukan pengujian, tester membuat laporan yang menyatakan temuan-temuan mereka, termasuk detail tentang celah keamanan yang ditemukan, serta rekomendasi perbaikan yang dapat dilakukan untuk memperbaiki celah tersebut.
- Verifikasi dan Validasi: Setelah perbaikan telah dilakukan, tester dapat melakukan verifikasi untuk memastikan bahwa celah keamanan telah diperbaiki dan aplikasi telah aman dari serangan yang telah diidentifikasi sebelumnya.
Kesimpulan
Automated testing maupun manual testing adalah instrumen penting dalam proses pengembangan software. Keduanya memiliki kelebihan dan kekurangan yang saling melengkapi. Manual testing memiliki kelebihan yang fleksibel, mampu menangani skenario kompleks dan intuitif, dan memberikan feedback UI/UX yang berharga. Sedangkan kekurangannya adalah lebih lambat, rentan human error, dan tidak efisien untuk tugas berulang.
Sebaliknya automated testing biasanya lebih cepat, akurat, efisien untuk tugas berulang, memungkinkan eksekusi berulang. Namun kekurangannya adalah kurang fleksibel, tidak dapat meniru semua skenario pengujian, membutuhkan investasi awal untuk penggunaan testing tools dan script testing.
Pendekatan yang paling efektif adalah dengan menggunakan kombinasi automated testing dan manual testing. Gunakan automated testing untuk tugas-tugas berulang, regresi, dan pengujian yang membutuhkan kecepatan tinggi. Lalu Anda bisa gunakan manual testing untuk tugas-tugas yang kompleks, membutuhkan eksplorasi, dan memerlukan penilaian subjektif seperti UI/UX.
Dengan menggabungkan kedua pendekatan ini, Anda dapat mencapai cakupan pengujian yang lebih luas dan meningkatkan kualitas keamanan perangkat lunak secara keseluruhan.
Di Badr Interactive, kami menyediakan layanan automated testing dan manual testing untuk membantu Anda mendeteksi celah kerentanan dari software yang sedang dikembangkan. Anda bisa pesan untuk konsultasi gratis dengan kami, dan tingkatkan hasil bisnis Anda dengan menciptakan pengalaman user yang lebih baik.
FAQ
Q: Apa perbedaan antara pengujian otomatis dan pengujian manual?
A: Pengujian otomatis melibatkan penggunaan tools untuk menjalankan skrip pengujian, sementara pengujian manual melibatkan interaksi langsung dengan aplikasi oleh manusia.
Q: Kapan sebaiknya menggunakan pengujian otomatis dan kapan sebaiknya menggunakan pengujian manual?
A: Pengujian otomatis cocok untuk pengujian regresi, skenario penggunaan yang berulang, dan kasus uji yang dapat diotomatisasi, sementara pengujian manual lebih cocok untuk pengujian eksploratif, pengujian pengalaman pengguna, dan kasus uji yang kompleks.
Q: Apa keuntungan pengujian otomatis?
A: Pengujian otomatis dapat meningkatkan efisiensi dan konsistensi pengujian, mengurangi waktu yang dibutuhkan untuk melakukan pengujian berulang, dan memungkinkan untuk lebih cepat mendeteksi perubahan atau kerusakan.
Q: Apa kekurangan pengujian otomatis?
A: Pengujian otomatis memerlukan investasi awal yang signifikan dalam pembuatan skrip pengujian, mungkin tidak cocok untuk semua jenis pengujian, dan sulit untuk menangkap skenario uji yang kompleks atau tidak terduga.
Q: Apa peran manusia dalam pengujian otomatis?
A: Manusia masih diperlukan untuk merencanakan, merancang, dan memelihara skrip pengujian otomatis, serta untuk menafsirkan hasil pengujian dan mengambil tindakan yang diperlukan berdasarkan temuan.