Di universitas lokal saya, ada klub komputasi mahasiswa kecil sekitar 20 siswa. Klub ini memiliki beberapa tim kecil dengan area fokus tertentu, seperti pengembangan ponsel, robot, pengembangan game, dan peretasan / keamanan.
Saya memperkenalkan beberapa konsep pengembangan tangkas dasar untuk beberapa tim, seperti cerita pengguna, memperkirakan kompleksitas tugas, dan integrasi berkelanjutan untuk kontrol versi dan pembuatan / pengujian otomatis.
Saya akrab dengan beberapa siklus hidup pengembangan dasar, seperti air terjun, spiral, RUP, lincah, dll. Tapi saya bertanya-tanya apakah ada siklus hidup pengembangan perangkat lunak untuk peretasan / pelanggaran keamanan. Tentunya, peretas sedang menulis kode komputer, tetapi apa siklus hidup dari kode itu? Saya tidak berpikir bahwa mereka akan terlalu peduli dengan pemeliharaan, karena begitu pelanggaran telah ditemukan dan ditambal, kode yang mengeksploitasi pelanggaran itu tidak berguna.
Saya membayangkan siklus hidup akan seperti:
- Temukan celah keamanan
- Mengeksploitasi celah keamanan
- Muatkan muatan
- Manfaatkan payload
Apa perbedaan (jika ada) yang ada untuk pengembangan siklus hidup perangkat lunak ketika tujuan produk adalah untuk melanggar keamanan?
sumber
Jawaban:
Apa jenis kode yang Anda bicarakan?
Ada banyak alat keamanan yang digunakan dalam proses peretasan, termasuk pemindai seperti nmap , sqlmap , Nessus dan banyak lainnya. Saya akan membayangkan mereka memiliki jenis siklus hidup perangkat lunak yang sama seperti aplikasi lainnya.
Di sisi lain, ada kode exploit. Kode ditulis untuk mengambil keuntungan dari eksploitasi & situasi yang sangat spesifik. Saya sangat meragukan mereka membutuhkan siklus hidup sama sekali. Namun, banyak kode eksploitasi juga terintegrasi dengan kerangka kerja eksploitasi yang lebih besar seperti Metasploit .
Setelah berdiskusi dengan @AviD, saya ingin menambahkan beberapa poin.
Ini akan sangat berbeda untuk situasi tertentu.
Beberapa kode eksploit mungkin dilarikan keluar untuk memperhitungkan jendela sebelum hari nol ditambal. Kode mungkin dikeluarkan karena alasan lain juga. Lihat: CRIME - Bagaimana cara mengalahkan penerus BEAST? untuk contoh yang bagus tentang ini. Seseorang menulis sepotong kode PoC untuk dengan cepat membuktikan maksudnya. Tidak ada metodologi siklus hidup perangkat lunak yang diperhitungkan untuk kode-kode seperti ini.
Malware yang menggunakan persenjataan seperti stuxnet atau FLAME mungkin berhasil. Perangkat lunak terpaket seperti yang dilakukan Metasploit.
Jadi jawaban yang tepat adalah ... itu tergantung.
sumber
Saya tidak melihat mengapa harus ada siklus hidup pengembangan yang berbeda secara spesifik tergantung pada tujuan produk.
Perangkat lunak yang dikembangkan untuk menembus keamanan dapat memiliki masa pakai seumur hidup seperti jenis perangkat lunak lain dan akan membutuhkan jumlah pemeliharaan dan pekerjaan yang sama.
Pencipta perangkat lunak yang berbeda akan mengadopsi siklus hidup yang berbeda tergantung pada kebutuhan mereka.
sumber
Model pengembangan yang Anda tentukan hanya itu - model pengembangan. Mereka sangat berguna ketika Anda melakukan pengembangan teknik - ketika Anda memiliki persyaratan, ketika Anda harus membuat atau memodifikasi arsitektur sistem atau desain komponen, ketika Anda perlu membangun atau memodifikasi produk dan tes terkait, dan ketika Anda merilis ke pelanggan.
Saya tidak yakin bahwa model ini dapat langsung diterapkan ke proyek yang lebih berorientasi penelitian, di mana Anda mencoba menjawab pertanyaan atau mempelajari lebih lanjut tentang suatu sistem (atau kelemahan keamanan sistem, dalam kasus khusus Anda).
Saya menduga bahwa model iteratif / tambahan, seperti metode agile dan model Spiral akan menjadi yang paling berguna untuk membentuk basis. Dalam setiap iterasi, Anda dapat berupaya menjawab pertanyaan atau menentukan lebih banyak parameter untuk dikerjakan, yang mungkin termasuk atau tidak mungkin menulis kode apa pun. Mungkin berbagai metode penelitian ilmiah mungkin juga memberikan fondasi yang menarik.
sumber
Peretasan baru-baru ini melihat profesionalisasi yang kuat, jauh dari peretas tunggal yang melakukannya "untuk lulz" atau untuk mendapatkan ketenaran, menuju kolaborasi antara spesialis dengan tujuan menghasilkan uang. Hasilnya adalah "kit peretasan" komersial yang sepenuhnya lengkap seperti kit eksploitasi Blackhole di mana kelemahan perangkat lunak tertentu dapat dengan mudah diintegrasikan seperti plugin. Saya berasumsi bahwa produk semacam itu dikembangkan persis seperti produk perangkat lunak lain.
Tampaknya juga ada pasar yang berkembang untuk eksploitasi nol hari .
sumber
Life-Cyle tidak pernah bergantung pada kode. Ini agak tergantung pada faktor-faktor lain seperti:
Dalam skenario Anda, metodologi Agile Life Cyle akan sangat berguna. Alasannya adalah Anda harus melibatkan pelanggan selama pengembangan dan harus memverifikasi parameter kualitas yang dapat diterima dari produk Anda. Metodologi Agile akan sangat membantu Anda untuk meningkatkan Perangkat Lunak Peretasan Anda melalui mengumpulkan umpan balik pelanggan Anda dan kemudian secara bertahap bekerja secara bertahap .
sumber