Jumat, 15 Mei 2020

Kontrol untuk Mencapai Keamanan Aplikasi Berkelanjutan dalam Siklus Hidup Pengembangan Aplikasi Web

Diberi pilihan, setiap organisasi pasti ingin situs Web aman dan aplikasi dari fase pengembangan aplikasi Web sepanjang siklus hidup pengembangan perangkat lunak. Tetapi mengapa itu merupakan tantangan yang harus dicapai? Jawabannya ada dalam proses (atau ketiadaan) yang mereka miliki.

Sementara penilaian keamanan aplikasi Web individual dan ad hoc tentu akan membantu Anda meningkatkan keamanan aplikasi atau situs Web itu, segera setelah semuanya diperbaiki, perubahan dalam aplikasi Anda dan kerentanan yang baru ditemukan berarti masalah keamanan baru akan



muncul. Jadi, kecuali Anda menerapkan kontrol keamanan dan jaminan kualitas yang berkesinambungan di seluruh siklus hidup pengembangan perangkat lunak, dari fase awal pengembangan aplikasi Web hingga produksi, Anda tidak akan pernah mencapai tingkat keamanan

berkelanjutan yang tinggi yang Anda perlukan untuk menjaga sistem Anda aman dari serangan - dan biaya Anda yang terkait dengan memperbaiki kelemahan keamanan akan terus tinggi.

Dalam dua artikel pertama, kami membahas banyak hal penting yang perlu Anda ketahui ketika melakukan penilaian keamanan aplikasi Web, dan bagaimana cara memperbaiki kerentanan yang

ditemukan oleh penilaian tersebut. Dan, jika organisasi Anda seperti kebanyakan, pasangan pertama dari penilaian aplikasi Web adalah mimpi buruk: rim dengan kerentanan rendah, sedang, dan tinggi ditemukan dan perlu diperbaiki oleh tim pengembangan aplikasi web Anda. Proses tersebut

mengharuskan pengambilan keputusan yang sulit tentang cara memperbaiki aplikasi secepat mungkin tanpa mempengaruhi sistem dalam produksi, atau terlalu menunda peluncuran aplikasi yang dijadwalkan.

Tetapi beberapa penilaian aplikasi web yang pertama, sambil menyiksa, memberikan pengalaman belajar yang sangat baik untuk meningkatkan siklus hidup pengembangan perangkat lunak. Artikel ini menunjukkan kepada Anda bagaimana menempatkan kontrol organisasi di tempat untuk membuat

proses tanpa rasa sakit mungkin dan merupakan bagian terpadu dari upaya pengembangan aplikasi Web Anda. Ini adalah ikhtisar ringkas tentang proses dan teknologi jaminan kualitas yang diperlukan

untuk mulai mengembangkan aplikasi seaman mungkin dari awal, dan menjaganya agar tetap seperti itu. Tidak ada lagi kejutan besar. Tidak ada lagi penyebaran yang tertunda.

Pengembangan Aplikasi Web yang Aman: Orang, Proses, dan Teknologi

Membangun aplikasi yang sangat aman dimulai sejak awal dalam siklus hidup pengembangan perangkat lunak bersama pengembang Anda. Itu sebabnya menanamkan kesadaran keamanan

aplikasi melalui pelatihan pengembangan aplikasi Web adalah salah satu hal pertama yang ingin Anda lakukan. Anda tidak hanya ingin pengembang Anda dipersenjatai dengan pengetahuan terbaru

tentang cara membuat kode dengan aman - dan bagaimana penyerang mengeksploitasi kelemahan - tetapi Anda ingin mereka tahu betapa pentingnya (dan jauh lebih efisien) untuk mempertimbangkan keamanan sejak awal. Membangun kesadaran ini tidak boleh diakhiri dengan tim pengembangan

aplikasi Web Anda. Perlu menyertakan semua orang yang berperan dalam siklus hidup pengembangan perangkat lunak: tim pengujian kualitas dan jaminan Anda, yang perlu tahu cara mengidentifikasi dengan benar potensi kerusakan keamanan, dan tim manajemen TI Anda,

Dengan membangun kesadaran di seluruh siklus hidup pengembangan aplikasi Web, Anda sedang membangun salah satu kontrol paling sentral yang diperlukan untuk memastikan keamanan aplikasi

Web Anda. Dan sementara pelatihan sangat penting, Anda tidak dapat bergantung padanya untuk memastikan bahwa sistem Anda dibangun dengan aman. Itu sebabnya pelatihan perlu diperkuat dengan kontrol dan teknologi tambahan. Anda perlu mulai menempatkan elemen-elemen dari Siklus Hidup Pengembangan Perangkat Lunak, atau SDLC yang aman.

Elemen-elemen Penting dari Proses Siklus Hidup Pengembangan Perangkat Lunak yang Aman

Siklus hidup pengembangan perangkat lunak yang aman berarti memiliki kebijakan dan prosedur yang mempertimbangkan - dan menegakkan - pengembangan aplikasi Web yang aman dari konsepsi melalui penentuan persyaratan fungsional dan teknis, desain, pengkodean, pengujian kualitas, dan

selama aplikasi masih dalam produksi. Pengembang harus dilatih untuk memasukkan praktik terbaik keamanan dan daftar periksa dalam pekerjaan mereka: Sudahkah mereka memeriksa pemfilteran basis data, atau memvalidasi penanganan input yang tepat? Apakah aplikasi sedang dikembangkan

agar sesuai dengan praktik pemrograman terbaik? Apakah aplikasi akan mematuhi peraturan, seperti HIPAA atau PCI DSS? Menempatkan jenis prosedur ini pada tempatnya akan secara dramatis meningkatkan keamanan selama proses pengembangan aplikasi Web.

Sementara pengembang perlu menguji dan menilai keamanan aplikasi mereka saat mereka sedang dikembangkan, tes utama berikutnya dari proses siklus hidup pengembangan perangkat lunak datang setelah pengembangan aplikasi Web selesai. Ini adalah saat seluruh aplikasi, atau modul, siap dikirim

ke fase pengujian formal yang akan dilakukan oleh penilai kualitas dan keamanan. Selama fase siklus hidup pengembangan perangkat lunak inilah para penguji jaminan kualitas, di samping tugas khas mereka untuk memastikan kinerja dan persyaratan fungsional terpenuhi, mencari kemungkinan masalah keamanan.

Perusahaan melakukan kesalahan, selama fase ini, tidak termasuk anggota tim keamanan TI dalam proses ini. Ini pendapat kami bahwa keamanan TI harus memiliki input sepanjang siklus hidup

pengembangan perangkat lunak, jangan sampai permukaan masalah keamanan nanti dalam proses pengembangan aplikasi Web - dan apa yang bisa menjadi masalah kecil sekarang menjadi masalah besar.

Menempatkan jenis proses ini pada tempatnya adalah pekerjaan yang sulit, dan mungkin tampak sulit pada awalnya. Tetapi kenyataannya adalah bahwa hasilnya bisa sangat besar: aplikasi Anda akan lebih aman dan penilaian keamanan Anda di masa depan tidak akan terasa seperti latihan kebakaran.

Ada model dan metodologi siklus hidup pengembangan perangkat lunak yang dapat membantu mengarahkan Anda, seperti Program Jaminan Keamanan Aplikasi (ASAP), yang menempatkan

sejumlah prinsip panduan yang diperlukan untuk membangun kode aman, termasuk komitmen eksekutif, mempertimbangkan keamanan sejak awal. pengembangan aplikasi Web, dan adopsi metrik untuk mengukur pengkodean dan perbaikan proses dari waktu ke waktu. Primer yang baik adalah The Security Development Lifecycle oleh Michael Howard dan Steve Lipner (Microsoft Press, 2006).

Bagaimana Teknologi Membantu Menegakkan dan Memelihara SDLC yang Aman

Menjadi manusia seperti apa adanya, orang cenderung untuk kembali ke cara lama mereka yang ceroboh jika perilaku baru (proses siklus hidup pengembangan perangkat lunak yang kita bahas sebelumnya) tidak ditegakkan. Di situlah teknologi dapat berperan. Alat yang tepat tidak hanya

membantu mengotomatiskan penilaian keamanan dan mengamankan proses pengkodean; mereka juga dapat membantu menjaga kerangka pengembangan aplikasi Web yang diperlukan untuk keberhasilan.

Sebagaimana dibahas dalam artikel pertama seri ini, paling tidak Anda memerlukan pemindai keamanan aplikasi Web untuk menilai perangkat yang Anda buat sendiri dan juga perangkat lunak yang dibeli secara komersial. Bergantung pada ukuran tim pengembangan aplikasi Web Anda, dan

berapa banyak aplikasi yang sedang Anda kerjakan pada waktu tertentu, Anda akan ingin mempertimbangkan alat lain yang akan meningkatkan proses siklus hidup pengembangan perangkat lunak Anda juga. Misalnya, alat kualitas dan jaminan tersedia yang mengintegrasikan langsung ke

dalam kinerja aplikasi dan program pengujian kualitas yang sudah banyak organisasi gunakan, seperti yang dari IBM dan HP. Dengan integrasi keamanan ini ke dalam pengujian kualitas dan kinerja, tim jaminan kualitas dapat secara bersamaan mengelola pengujian fungsional dan keamanan dari satu platform.

Masukkan Baselines di Tempat (Tapi Tetap Sederhana di Dini Hari)

Sekarang setelah pelatihan keamanan tersedia, dan Anda memiliki metodologi pengembangan aplikasi Web yang konsisten dan aman, bersama dengan alat penilaian dan pengembangan yang Anda butuhkan, ini adalah saat yang tepat untuk mulai mengukur kemajuan Anda.

Pada awalnya, semua perubahan ini dalam proses siklus hidup pengembangan perangkat lunak Anda akan terasa mengganggu dan menghabiskan waktu. Jadi, para eksekutif dan manajer, serta tim pengembangan technicaltalk Web dan auditor, tentu ingin melihat hasil dari semua pekerjaan baru yang telah mereka lakukan. Semua orang akan menginginkan metrik dan baseline: Apakah aplikasi kita lebih aman? Apakah pengembang mengkodekan lebih baik? Satu-satunya cara untuk menjawab pertanyaan-pertanyaan ini adalah mulai mengukur kemajuan. Tapi, pada awalnya, jangan jatuh ke dalam perangkap terlalu banyak mengukur.

Pada hari-hari awal menempatkan proses siklus hidup pengembangan perangkat lunak di tempat, kami sangat menyarankan agar Anda menjaga pengukuran sederhana. Jangan kewalahan dengan melacak terlalu banyak jenis kerentanan. Bahkan, Anda mungkin tidak ingin mencoba melacak dan memadamkan setiap kelas kerentanan sekaligus. Kami telah melihat kesalahan ini berkali-kali: perusahaan mencoba untuk memperbaiki kerentanan yang ditemukan di setiap bagian siklus hidup pengembangan perangkat lunak dalam sebuah big bang. Kemudian, pada akhir tahun, mereka berakhir dengan selusin aplikasi yang benar-benar rentan, dan tanpa uang untuk memperbaiki semua yang perlu diperbaiki. Mereka akhirnya berebut, berkecil hati, dan tidak berhasil. Itu bukan cara untuk melakukannya.

Itulah sebabnya, pada awalnya, kami telah belajar bahwa pendekatan yang masuk akal - dan dapat dicapai - untuk mengamankan proses pengembangan aplikasi Web adalah memutuskan mana yang merupakan kerentanan Anda yang paling umum dan parah. Jika mereka menyertakan SQL Injection atau kesalahan logika yang dapat memberikan akses tidak sah ke suatu aplikasi, maka itulah fokus awal Anda. Pilih kerentanan paling kritis yang akan membuat perbedaan signifikan, berdasarkan penilaian Anda dan sifat sistem dan bisnis Anda. Ini akan menjadi kerentanan pertama yang ingin Anda lacak selama perjalanannya menuju kepunahan (setidaknya dari dalam aplikasi Anda).

Setelah tim pengembangan aplikasi Web Anda terbiasa dengan proses memperbaiki kelas kerentanan tertentu, Anda dapat menambahkan kelas kerentanan paling mendesak berikutnya (atau dua) ke dalam campuran. Dengan memperlambat menambahkan kelas kerentanan baru ke dalam proses siklus hidup pengembangan perangkat lunak formal Anda, Anda akan memiliki kesempatan untuk memuluskan masalah atau kekusutan dalam proses tersebut. Dan tim pengembangan aplikasi Web Anda akan semakin terbiasa dengan proses tersebut. Tidak akan ada kejutan besar, dan selama berbulan-bulan, dan bertahun-tahun, Anda akan melihat peningkatan dramatis selama beberapa baseline pertama Anda.

Dengan menerapkan kontrol dan teknologi penting yang diuraikan dalam artikel ini, Anda sekarang berada di jalur pengembangan aplikasi Web yang aman secara konsisten. Hadiah Anda akan menjadi proses siklus hidup pengembangan perangkat lunak yang akan mengalir jauh lebih lancar dan hemat biaya; Anda akan mengalami masalah di awal proses pengembangan, sehingga audit peraturan Anda akan mengalir lebih lancar. Dan Anda akan sangat mengurangi kemungkinan serangan yang berhasil terhadap situs Web Anda.

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.