Menjelaskan Keamanan Aplikasi Web
Aplikasi web merupakan suatu lingkungan yang terstruktur dalam bentuk program komputer yang memungkinkan pengunjung website memasukkan dan menampilkan data dari dan ke suatu database server melalui internet dengan menggunakan web browser. Kemudian data ditampilkan ke pengguna sebagai informasi yang dihasilkan secara dinamis oleh aplikasi web melalui web server.
Ciri dan Sifat Aplikasi Web
Menurut Roger S. Pressman dalam bukunya Software Engineering A Practitioner’s Approach dikatakan suatu aplikasi web memiliki perbedaan dengan aplikasi lainnya, karena memiliki sifat dan ciri-ciri sebagai berikut:
1. Network Intensive
Network intensive Sifat dasar dari suatu aplikasi web adalah terletak pada suatu jaringan (internet, intranet atau extranet) dimana aplikasi web harus melayani bermacam-macam kebutuhan dari penggunanya.
Network intensive Sifat dasar dari suatu aplikasi web adalah terletak pada suatu jaringan (internet, intranet atau extranet) dimana aplikasi web harus melayani bermacam-macam kebutuhan dari penggunanya.
2. Content Driven
Fungsi utama dari aplikasi web adalah untuk menampilkan informasi berupa teks, gambar, audio, dan video kepada para penggunanya.
3. Continuous Evolution
Aplikasi web mengalami perubahan secara terus-menerus (continuous evolution), terutama pada bagian isi (informasi) dari aplikasi tersebut.
4. Document-Oriented
Halaman-halaman web yang bersifat statis akan tetap ada meskipun telah terdapat teknik pemrograman web dengan menggunakan bahasa pemrograman java atau yang lainnya.
5. Immediacy
Aplikasi web memiliki karakteristik kesiapan (immediacy), yang berarti aplikasi web tersebut harus sudah siap dan lengkap untuk ditampilkan ke publik dalam jarak waktu beberapa hari atau minggu saja, dan hal ini tidak ditemukan pada perangkat lunak lainnya.
6. Security
Berkembangnya aplikasi web dan Internet menyebabkan pergerakan sistem informasi untuk menggunakannya sebagai basis. Banyak sistem yang tidak terhubung ke Internet tetapi tetap menggunakan basis aplikasi web sebagai basis untuk sistem informasinya yang dipasang di jaringan Intranet. Untuk itu, keamanan sistem informasi yang berbasis aplikasi web dan teknologi Internet bergantung kepada keamanan sistem aplikasi web tersebut.
Keamanan dibutuhkan untuk melindungi isi dari aplikasi web yang sensitif dan menyediakan proses pengiriman data yang aman, oleh karena itu keamanan aplikasi harus diterapkan pada seluruh infrastruktur yang mendukung web aplikasi, termasuk juga web aplikasi itu sendiri.
Arsitektur sistem aplikasi web terdiri dari dua sisi: server dan klien. Keduanya dihubungkan dengan jaringan komputer (computer network). Selain menyajikan data-data dalam bentuk statis, aplikasi dapat menyajikan data dalam bentuk dinamis dengan menjalankan program. Program ini dapat dijalankan di server (misal dengan CGI, servlet) dan di klien (applet, Javascript).
7. Aesthetics
Selain sisi teknis, estetis juga merupakan suatu hal yang harus diperhatikan dalam sebuah aplikasi web, karena tampilan dan keindahan adalah salah satu hal yang utama, yang digunakan sebagai daya tarik pengunjung.
Kualitas Aplikasi Web
Kualitas yang baik dari suatu aplikasi web dapat diukur melalui beberapa karakteristik, diantaranya, usability, functionality, reliability, efficiency, dan maintainability [6]. Gambar 2 menunjukkan faktor-faktor yang membantu pengembang dalam merancang dan membangun aplikasi web yang dapat diterima dan memenuhi kebutuhan penggunanya yang begitu beragam.
Gambar Faktor Kualitas Aplikasi Web
Arsitektur Aplikasi Web
Menurut Krutchen sebuah arsitektur aplikasi web dibangun berdasarkan pada empat buah tinjauan, yaitu Logical, Process, Physical dan Development View, masing-masing tinjauan tersebut memiliki pengertian yang berbeda dan semua tinjauan tersebut harus diperiksa untuk memperoleh pemahaman yang baik mengenai aplikasi web secara keseluruhan. Untuk menambahkan sebuah kebutuhan khusus pada aplikasi web, seperti keamanan dapat ditambahkan tinjauan lainnya pada arsitektur aplikasi web.
Gambar Logical View pada Aplikasi Web
1. Logical View
Ditinjau secara logis, aplikasi web merupakan abstraksi dari sebuah sistem yang memiliki domain masalah tertentu. Sebuah aplikasi digambarkan sebagai interaksi antara komponen-komponen yang berbeda. Pada level arsitektur, sebuah aplikasi web dapat digolongkan ke dalam bentuk 2-tier atau sebagai 3-tier (seperti yang ditunjukkan pada Gambar)
Gambar Tinjauan Model Arsitektur 4+1
Presentation Logic tier bertanggung jawab untuk melakukan interaksi antara komponen-komponen untuk menghasilkan tampilan user. Komponen pada bagian ini hanya berinteraksi dengan komponen yang berada pada Business Logic tier. Komponen yang terdapat pada Business Logic tier berisi semua pengetahuan yang dibutuhkan untuk melakukan proses modifikasi komponen data yang terdapat pada Databases tier. Databases tier berisi semua komponen data yang digunakan untuk menyediakan penyimpanan data untuk data dan informasi dari suatu aplikasi web.
Arsitektur 3-tierd menyediakan perhatian lebih terhadap pembagian permasalahan. Pada arsitektur 2-tierd bagian business logic dan databases disatukan. Keuntungan dari arsitektur 3-tierd adalah sistem database dapat dengan mudah dilakukan perubahan tanpa mempengaruhi bagian business logic.
2. Development View
Development view berfokus pada pemetaan antara konsep komponen logical view ke implementasi sebenarnya. Development view pada suatu aplikasi web terdiri dari:
a. Struktur link dari halaman aplikasi
b. Teknik user session management
c. Teknologi halaman aplikasi web
3. Physical View
Physical view menggambarkan pemetaan antara komponen yang terdapat pada development view ke lingkungan aplikasi web diletakkan. Aplikasi web mempunyai lingkungan yang sangat kompleks, yang terdiri dari komponen-komponen sebagai berikut:
a. Web browsers
b. Web servers
c. Application servers
d. Database
e. Object terdistribusi (seperti, Java Beans)
Pengguna aplikasi web menggunakan web browser sebagai interface untuk dapat mengakses fungsi dari suatu aplikasi web. Sebuah browser mengirimkan permintaan (request) ke web server, mengirim-nya dengan menggunakan protokol HTTP. Sebuah web server memberikan permintaan tersebut jika permintaan tersebut dapat dipenuhi secara langsung, dengan melibatkan proses yang terdapat pada application server.
Seperti yang terlihat pada Gambar, apabila pengguna ingin mengambil data yang terdapat pada databases, maka application server harus dilibatkan. Akhirnya web server dengan hasil yang telah diperoleh dari application server menghasilkan halaman HTML dan mengembalikannya kepada pengguna aplikasi web.
Gambar Physical View dari Aplikasi Web
Protokol Web
Penetration testing merupakan teknik pengujian yang memanfaatkan kemampuan protokol di web, untuk itu perlu pengenalan terhadap protokol yang digunakan pada aplikasi web. Aplikasi-aplikasi berbasis web, umumnya menggunakan protokol: HTTP (Hyper Text Transfer Protocol) atau HTTPS (HTTP over Socket Secure Layer), dengan port yang biasa digunakan adalah port 80 (HTTP) dan port 443 (HTTPS).
HTTP
Setiap browser web dan server harus berkomunikasi melalui protokol ini,. Ada tiga versi protokol HTTP ini, dimana ketiganya memiliki kesamaan struktur dasar. HTTP merupakan protokol yang berkerja dengan metode request dan respon, yang dapat ditunjukan pada pada Gambar.
Gambar Metode Request & Respon HTTP
Untuk mengenal lebih mendalam, terdapat beberapa metode yang dapat dilakukan sebagai request dalam protocol HTTP. Metode tersebut antara lain: connect, delete, get, head, option, post, put, dan trace. Metode di atas difasilitasi oleh protokol HTTP 1.1. Untuk lebih jelas dapat dilihat dalam Tabel.
Respon HTTP
Sebuah permintaan HTTP dari sebuah klien ditangani oleh server dan direspon oleh server tersebut. Untuk merespon, server akan mengirimkan kembali serangkaian komponen pesan yang dapat dikategorikan sebagai berikut :
a. Kode respon— Angka yang bertalian pada sebuah tipe asosiasi respon.
b. Lokasi awal (Header fields)—informasi tambahan tentang respon.
c. Data—Isi dari respon.
Melalui tiga komponen tersebut, sebuah browser klien dapat memahami respon dari server dan berinteraksi dengan server tersebut.
Serangan Keamanan Aplikasi Web
Dunia internet saat ini mengenal banyak jenis serangan yang dilakukan dan sering merugikan. Jenis-jenis serangan terjadi selama ini dapat dikategorikan dalam empat kategori berdasarkan kriteria target serangan yaitu:
1. Interruption: serangan atas ketersediaan informasi. Penyerang mengganggu dengan melakukan penghentian aliran informasi kepada klien.
2. Interception: serangan atas kerahasiaan. Mengakses informasi yang bukan menjadi haknya adalah tujuan dari serangan ini. Informasi dapat digunakan untuk hal-hal yang merugikan pihak lain.
3. Modification: serangan atas integrasi suatu informasi. Mengakses informasi dan dapat juga mengubah isi informasi menjadi sasaran serangan ini.
4. Fabrication: serangan terhadap proses autentifikasi. Membangkitkan objek palsu yang dikenal sebagai bagian dari sistem merupakan tujuan dari serangan jenis.
Gambar Jenis – jenis Serangan
Dari sisi motif tindakan, serangan yang terjadi dapat dikategorikan berdasarkan jenis tindakan yang dilakukan, dan dikelompokkan menjadi sebagai berikut:
A. Ancaman Pasif
Serangan yang dilakukan lebih bersifat mengamati perilaku sasaran, pada tahap ini penyerang berusaha mengenali setiap bagian sasaran. Tindakan yang dilakukan antara lain:
a. Melepaskan serangkaian pesan ke target untuk mengetahui respon target, dan mendapatkan informasi awal tentang target. Deteksi port merupakan salah satu contohnya.
b. Analisa trafik, dilakukan untuk mengetahui pola trafik data pada target.
B. Ancaman aktif
Serangan yang dilakukan telah ditujukan untuk berdampak langsung pada target. Beberapa tindakan serangan yang banyak dikenal merugikan merupakan contoh dari tindakan ini. Berikut beberapa diantaranya:
a. Masquerade, penyerangan dikenali sebagai bagian dari alias identitas yang berwenang.
b. Reply
c. Modifikasi isi pesan (Mengubah pesan layanan yang diberikan oleh sistem)
d. Denial of service (Menghilangkan kemampuan sistem untuk memberikan layanan).
Aplikasi Web Joomla
Joomla merupakan salah satu Content Management System (CMS) yang paling populer tersedia, mudah digunakan, sehingga memiliki keuntungan, yaitu pengguna-nya tidak membutuhkan keterampilan dan kemampuan teknis yang tinggi untuk mengolah dan mengatur aplikasi web tersebut. Selain itu aplikasi web Joomla merupakan sebuah CMS yang memiliki banyak fitur, dan hal inilah yang mengakibatkan aplikasi web Joomla banyak digunakan sebagai website suatu perusahaan atau organisasi, baik yang digunakan untuk keperluan bisnis maupun pendidikan.
Joomla berdasarkan pada CMS yang bebas dan terbuka (free open source) ditulis dengan menggunakan bahasa pemrograman PHP dan basis data MySQL, untuk keperluan di internet maupun intranet. Joomla pertamakali dirilis dengan versi 1.0.0. Fitur-fitur utama Joomla diantaranya adalah manajemen pengguna, manajemen konten, layanan web (web services) dan lain sebagainya. Joomla juga menggunakan lisensi GNU General Public License (GPL).
Gambar Model View Controller (MVC) Joomla
Secara garis besar Joomla terdiri dari tiga elemen dasar, yaitu server web (web server), skrip PHP dan basis data MySQL. Server web diasumsikan terhubung dengan Internet/Intranet yang berfungsi sebagai penyedia layanan aplikasi web. Skrip PHP terdiri dari kode program dalam bahasa PHP, dan basis data merupakan tempat penyimpanan konten. Joomla menggunakan Apache dan Microsoft IIS sebagai server web, dan MySQL untuk basis datanya. Paket Joomla terdiri dari beberapa bagian yang terpisah dan dalam bentuk modul yang sangat fleksibel, yang dapat dengan mudah dikembangkan dan diintegrasikan. Gambar 8 merupakan MVC dari aplikasi web Joomla.
Threat Modeling
Threat Modeling merupakan teknik yang cukup populer digunakan untuk membantu desainer sistem mengetahui ancaman keamanan yang mungkin timbul pada suatu sistem atau aplikasi web-nya. Oleh karena itu pemodelan ancaman dapat dijadikan sebuah ukuran untuk memperkirakan resiko yang mungkin terjadi pada sebuah aplikasi web. Dalam kenyataannya pemodelan ancaman memungkinkan desainer dalam mengembangkan strategi untuk mengatasi masalah pada bagian dari aplikasi yang mudah diserang (vulnerabilities) dan membantu desainer agar tetap fokus pada pengerjaan kebutuhan sistem aplikasi web yang terbatas oleh sumber daya, dimana aplikasi web tersebut dituntut segera terselesaikan.
Selain itu terdapat pula kelebihan dan kekurangan yang dimiliki oleh teknik pengujian aplikasi web yang dilakukan dengan mengunakan teknik pemodelan ancaman, adalah sebagai berikut:
A. Kelebihan
a. Merupakan teknik yang dilihat dari perspektif seorang penyerang (attacker) sistem aplikasi web.
b. Fleksibel
c. Dilakukan pada permulaan SDLC
B. Kekurangan
a. Relatif merupakan teknik baru
b. Pemodelan ancaman yang baik tidak dilakukan secara otomatis oleh perangkat lunak
Selain itu pemodelan ancaman merupakan suatu metode yang digunakan untuk mengenali atau mengetahui ancaman (Vulnerability), serangan (attack), dan kelemahan (vulnerabilities) yang berhubungan dengan aplikasi web. Pembentukan pemodelan ancaman dibagi ke dalam beberapa tahap:
Identify Security Objectives
Tahap ke-1: identify security objectives, dilakukan untuk mengetahui tujuan/kebutuhan keamanan aplikasi web, hal ini digunakan untuk membantu menentukan aktivitas pemodelan ancaman, dan untuk menentukan berapa banyak usaha pengujian yang perlu dilakukan.
Create Application Overview
Tahap ke-2: Create Application Overview, dilakukan untuk mengetahui karakteristik dan aktor pada aplikasi web, hal ini digunakan untuk membantu mengenali ancaman yang ada.
Decompose Application
Tahap ke-3: Decompose Application, dilakukan untuk mengetahui mekanisme aplikasi web secara detail, hal ini juga digunakan untuk membantu mengenali ancaman yang ada.
Identify Threats
Tahap Ke-4: Identify Threat, dilakukan untuk mengenali ancaman yang ada, yaitu dengan menggunakan tahap ke-2 dan ke-3.
Identify Vulnerabilities
Tahap Ke-5 Identify Vulnerabilities, dilakukan untuk mengetahui kelemahan yang terdapat pada aplikasi web, hal ini digunakan untuk membantu mengenali area yang terjadi kesalahan.
Gambar Proses Pembentukan Threat Modeling
Metodologi OWASP
Open Web Application Security Project (OWASP) adalah metodologi yang digunakan untuk membantu melakukan pengukuran (assessment), audit atau penetration testing terhadap aplikasi Web. Metodologi OWASP memiliki banyak keunggulan, karena dalam perkembangannya OWASP selalu mengikuti perkembangan keamanan dari aplikasi web itu sendiri. Selain itu OWASP tidak terfokus hanya kepada perangkat bantu, sehingga memberikan kesempatan kepada pengguna untuk think out side of the box.
OWASP Testing Framework
Menurut OWASP untuk membangun aplikasi web yang aman harus dilakukan proses pengujian pada setiap tahap pengembangan perangkat lunak atau software development live cycle (SDLC) [4], yang terdiri dari:
a. Sebelum pengembangan
b. Selama tahap definisi dan desain
c. Selama pembangunan
d. Selama deployment
e. Ketika pemeliharaan dan operasional
Tahap 1: Sebelum Pengembangan
Sebelum proses pembangunan aplikasi web dimulai maka harus dilakukan hal berikut:
a. Pengujian standar, prosedur dan kebijakan keamanan yang akan digunakan selama pengembangan aplikasi web.
b. Membuat metrik dan kriteria pengukuran
c. Meninjau proses SDLC
Tahap 1A: Tinjauan Kebijakan dan Standar
Pada tahap ini pastikan bahwa kebijakan, standar dan dokumentasi yang digunakan tepat. Dokumentasi merupakan hal yang sangat penting, karena memberikan panduan kepada tim pengembang selama melakukan proses pembangunan aplikasi web.
Standar dan kebijakan yang akan digunakan tergantung pada teknologi yang akan digunakan, karena tidak ada standar dan kebijakan yang dapat menanggulangi setiap situasi pengembangan aplikasi web. Sebagai contoh, apabila aplikasi yang akan dibangun menggunakan teknologi java, maka diperlukan dokumentasi mengenai standar keamanan untuk pengkodean bahasa pemrograman java. Jika aplikasi menggunakan kriptografi maka diperlukan dokumentasi mengenai standar kriptografi.
Tahap1B: Membuat Ukuran dan Kriteria Metrik
Sebelum pembangunan aplikasi web dimulai, maka harus ditentukan dan direncanakan ukuran program. Penentuan ukuran kriteria bermanfaat untuk menentukan kualitas aplikasi web yang dibuat, dan juga dapat diprediksi dampak yang mungkin terjadi pada proses dan produk yang dihasilkan, sehingga dapat segera dibuat keputusan mengenai perubahan proses untuk meminimalkan terjadinya kerusakan yang terjadi.
Tahap 2: Selama Definisi dan Desain
Tahap 2A: Tinjauan Kebutuhan Keamanan
Kebutuhan keamanan adalah keperluan aplikasi web yang ditinjau dari perspektif keamanan. Pengujian terhadap kebutuhan keamanan sangat diperlukan untuk melihat apakah terdapat hal yang belum terpenuhi antara kebutuhan keamanan standar dengan definisi kebutuhan yang telah dibuat. Sebagai contoh kebutuhan keamanan pada aplikasi web adalah, pengunjung diharuskan terdaftar sebelum mereka dapat mengakses informasi-informasi yang tersimpan pada aplikasi web tersebut. Menurut OWASP mekanisme kebutuhan sistem keamanan pada aplikasi web terdiri dari:
a. User Management
Aspek keamanan pada aplikasi web yang mengatur pengguna dalam melakukan manajemen atau pengaturan terhadap fasilitas yang tersedia.
b. Authentication
Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang dihubungi adalah betul-betul server yang asli.
c. Authorization
Konsep keamanan dari aplikasi web yang memperbolehkan pengguna menggunakan sumber daya (resources) jika telah diizinkan oleh pemilik resources tersebut. Salah satu bagian dari otorisasi adalah akses kontrol. Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Hal ini biasanya berhubungan dengan klasifikasi data (public, private, confidential, top secret) & pengguna (guest, admin, top manager, dan sebagainya), mekanisme autentikasi dan juga privacy. Access control seringkali dilakukan dengan menggunakan kombinasi user id/password atau dengan menggunakan mekanisme lain (seperti kartu, biometrics).
d. Data Confidentiality dan Privacy
Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih ke arah data-data yang sifatnya pribadi sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu (misalnya sebagai bagian dari pendaftaran sebuah layanan) dan hanya diperbolehkan untuk keperluan tertentu tersebut. Contoh hal yang berhubungan dengan privacy adalah e-mail seorang pengguna tidak boleh dibaca oleh administrator. Contoh informasi confidential adalah data-data yang sifatnya pribadi (seperti nama, tempat tanggal lahir, number keamanan, agama, status perkawinan, penyakit yang pernah diderita, nomor kartu kredit, dan sebagainya) merupakan data-data yang ingin di proteksi penggunaan dan penyebaran-nya. Contoh lain dari confidentiality adalah daftar pelanggan dari sebuah Internet Service Provider (ISP).
Serangan terhadap aspek privacy misalnya adalah usaha untuk melakukan penyadapan (dengan program sniffer). Usaha-usaha yang dapat dilakukan untuk meningkatkan privacy dan confidentiality adalah dengan menggunakan teknologi kriptografi (dengan enkripsi dan dekripsi). Informasi mengenai privacy yang lebih rinci dapat diperoleh dari situs Electronic Privacy Information Center (EPIC) dan Electronic Frontier Foundation (EFF).
e. Integrity
Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa se-izin pemilik informasi. Adanya virus, Trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja ditangkap (intercept) di tengah jalan, diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggunaan enkripsi dan digital signature, misalnya, dapat mengatasi masalah ini.
f. Accountability
Aspek keamanan pada aplikasi web yang menekankan apakah fasilitas yang diberikan telah sesuai dengan kebutuhan pengguna.
g. Session Management
Konsep keamanan aplikasi web yang mengatasi semua masalah yang berhubungan dengan pengguna mulai dari proses autentikasi sampai dengan pengguna meninggalkan aplikasi web.
h. Transport Security
Konsep keamanan pada aplikasi web yang diterapkan untuk mengatasi masalah yang berhubungan dengan pengangkutan (transport) data yang sensitif yang disediakan oleh aplikasi web, seperti session ID.
i. Tiered System Segregation
Aspek keamanan pada aplikasi web yang menekankan pada keamanan pemisahan aset diantara penggunanya.
Tahap 2B: Tinjauan Desain dan Arsitektur
Tinjauan dokumen desain dan arsitektur aplikasi web berguna untuk memastikan bahwa desain dan arsitektur yang telah dibuat telah menerapkan dengan tepat mekanisme keamanan yang telah didefinisikan.
Tahap 2C: Membuat dan Meninjau Model UML
Setelah tahap desain dan arsitektur selesai dibuat, maka dilakukan pembuatan dan peninjauan terhadap Unified Modeling Language (UML) yang berguna untuk menggambarkan bagaimana kerja aplikasi web.
Tahap 2D: Membuat dan Meninjau Pemodelan Ancaman
Setelah proses peninjauan desain, arsitektur dan deskripsi UML dilakukan, kemudian selanjutnya dikerjakan membuat pemodelan ancaman, dengan cara membuat skenario nyata tentang pemodelan ancaman yang mungkin terjadi pada aplikasi web, menganalisis desain dan arsitektur untuk meyakinkan apakah skenario ancaman yang dilakukan dapat ditangani oleh desain dan arsitektur yang ada, apabila tidak dapat ditanggulangi maka perlu ditinjau kembali desain dan arsitektur untuk dilakukan perubahan.
Tahap 3: Selama Pengembangan
Pengembangan merupakan implementasi dari desain yang telah dibuat, maka pada tahap ini dilakukan proses pembuatan aplikasi berdasarkan pada desain yang ada dan panduan yang berisi informasi tentang standar, kebijakan, serta prosedur yang telah ditentukan sebelumnya.
Tahap 3A: Code Walkthroughs
Code Walkthroughs dilakukan oleh tim keamanan yang bermanfaat untuk memahami mekanisme, logika, layout dan struktur dari kode yang membentuk aplikasi web yang telah dibuat oleh tim pengembang.
Tahap 3B: Peninjauan Kode
Setelah diketahui struktur kode yang membangun aplikasi web, maka selanjutnya penguji membandingkan struktur kode tersebut dengan kode keamanan sebenarnya. Peninjauan kode secara statik dapat dilakukan dengan membandingkan kode yang telah dibuat dengan sekumpulan kriteria standar keamanan aplikasi web, diantaranya:
a. Kebutuhan bisnis untuk availability, confidentiality, dan integrity.
b. Kriteria OWASP Top 10
c. Permasalahan khusus yang berhubungan dengan bahasa pemrograman dan framework yang digunakan. Seperti Scarlet paper untuk PHP dan Microsoft Secure untuk ASP.NET.
d. Beberapa kebutuhan spesifik industri, seperti Sarbanes-Oxley 404, COPPA, ISO 17799, APRA, HIPAA, panduan Visa Merchant atau aturan-aturan standar industri lainnya.
Tahap 4: Selama Deployment
Tahap 4A: Application Penetration Testing
Setelah melakukan pengujian terhadap requirement, menganalisis desain dan melakukan code review, maka hal terakhir yang dilakukan adalah penetrasi testing untuk memeriksa dan meyakinkan tidak ada kesalahan yang terjadi pada aplikasi web yang telah dibuat.
Tahap 4B: Configuration Management Testing
Configuration Management Testing merupakan bagian dari penetration testing yang berguna untuk memeriksa apakah infrastruktur dan desain yang ada telah di terapkan secara aman.
Tahap 5: Maintenance dan Operations
Tahap 5A: Operational Management Reviews
Pada bagian ini dilakukan proses peninjauan terhadap manajemen operasional pada bagian aplikasi dan infrastruktur.
Tahap 5B: Periodic Health Checks
Secara berkala pemeriksaan keadaan keamanan harus dilakukan pada bagian aplikasi maupun infrastruktur untuk memastikan tidak ada resiko keamanan baru yang terjadi dan untuk memastikan apakah perlu dilakukan perubahan terhadap level keamanan yang digunakan.
Tahap 5C: Ensure Change Verification
Setelah setiap perubahan yang akan dilakukan telah disetujui, maka dilakukan verifikasi untuk memutuskan adanya perubahan terhadap level keamanan. Gambar 10 menunjukkan SDLC testing workflow menurut metodologi OWASP.
Gambar OWASP Testing Framework Work Flow