Saya seorang mahasiswa IT dan saya sekarang memasuki tahun ke 3 di universitas. Hingga saat ini kami telah mempelajari banyak mata pelajaran yang terkait dengan komputer secara umum (pemrograman, algoritma, arsitektur komputer, matematika, dll).
Saya sangat yakin bahwa tidak ada yang bisa mempelajari segala sesuatu tentang keamanan tetapi yakin ada "minimum" pengetahuan yang harus diketahui oleh setiap programmer atau mahasiswa IT dan pertanyaan saya adalah apakah pengetahuan minimum ini?
Bisakah Anda menyarankan beberapa buku elektronik atau kursus atau apa pun yang dapat membantu memulai dengan jalan ini?
Jawaban:
Prinsip yang perlu diingat jika Anda ingin aplikasi Anda aman:
Ada beberapa buku bagus dan artikel online tentang cara membuat aplikasi Anda aman:
Latih pengembang Anda tentang praktik terbaik keamanan aplikasi
Codebashing (berbayar)
Inovasi Keamanan (berbayar)
Kompas Keamanan (berbayar)
OWASP WebGoat (gratis)
sumber
Aturan # 1 keamanan untuk programmer: Jangan menggulung sendiri
Kecuali jika Anda sendiri seorang pakar keamanan dan / atau ahli kriptografi, selalu gunakan platform, kerangka kerja, atau perpustakaan keamanan yang dirancang dengan baik, dan matang untuk melakukan pekerjaan untuk Anda. Hal-hal ini telah bertahun-tahun dipikirkan, ditambal, diperbarui, dan diperiksa oleh para ahli dan peretas. Anda ingin mendapatkan keuntungan itu, tidak mengabaikannya dengan mencoba menciptakan kembali roda.
Sekarang, itu tidak berarti Anda tidak perlu belajar apa pun tentang keamanan. Anda tentu perlu cukup tahu untuk memahami apa yang Anda lakukan dan pastikan Anda menggunakan alat dengan benar. Namun, jika Anda menemukan diri Anda akan mulai menulis algoritma kriptografi Anda sendiri, sistem otentikasi, pembersih input, dll, berhentilah, mundur selangkah, dan ingat aturan # 1.
sumber
Setiap programmer harus tahu cara menulis kode exploit.
Tanpa mengetahui bagaimana sistem dieksploitasi, Anda secara tidak sengaja menghentikan kerentanan. Mengetahui cara menambal kode sama sekali tidak ada artinya kecuali Anda tahu cara menguji tambalan Anda. Keamanan bukan hanya sekelompok eksperimen pikiran, Anda harus ilmiah dan menguji eksperimen Anda.
sumber
Keamanan adalah proses, bukan produk.
Banyak yang tampaknya melupakan fakta yang jelas ini.
sumber
Saya sarankan meninjau CWE / SANS TOP 25 Kesalahan Pemrograman Paling Berbahaya . Itu diperbarui untuk 2010 dengan janji pembaruan reguler di masa depan. The 2009 Revisi juga tersedia.
Dari http://cwe.mitre.org/top25/index.html
sumber
Kursus pemula yang baik mungkin kursus MIT di Jaringan Komputer dan Keamanan . Satu hal yang saya sarankan adalah untuk tidak melupakan privasi. Privasi, dalam beberapa hal, sangat mendasar untuk keamanan dan tidak sering dibahas dalam kursus teknis tentang keamanan. Anda mungkin menemukan beberapa materi tentang privasi dalam kursus ini tentang Etika dan Hukum yang berkaitan dengan internet.
sumber
Tim Keamanan Web di Mozilla menyusun panduan hebat , yang kami patuhi dalam pengembangan situs dan layanan kami.
sumber
Pentingnya default aman dalam kerangka kerja dan API:
sumber
Anda harus tahu tentang tiga A. Otentikasi, Otorisasi, Audit. Kesalahan klasik adalah untuk mengotentikasi pengguna, sementara tidak memeriksa apakah pengguna berwenang untuk melakukan beberapa tindakan, sehingga pengguna dapat melihat foto pribadi pengguna lain, kesalahan yang dilakukan Diaspora. Banyak, lebih banyak lagi orang yang lupa tentang Audit, Anda perlu, dalam sistem yang aman, untuk dapat mengetahui siapa melakukan apa dan kapan.
sumber
sumber
Saya akan menambahkan yang berikut ini:
Memahami bagaimana berbagai vektor serangan bekerja:
Anda dapat dengan mudah google untuk semua ini. Ini akan memberi Anda dasar yang baik. Jika Anda ingin melihat kerentanan aplikasi web, ada proyek bernama google gruyere yang menunjukkan kepada Anda cara mengeksploitasi aplikasi web yang berfungsi.
sumber
ketika Anda sedang membangun perusahaan atau perangkat lunak Anda sendiri, Anda harus berpikir seperti seorang peretas. Seperti kita tahu peretas juga tidak ahli dalam semua hal, tetapi ketika mereka menemukan kerentanan mereka mulai menggali ke dalamnya dengan mengumpulkan informasi tentang semua hal-hal dan akhirnya menyerang perangkat lunak kami. jadi untuk mencegah serangan seperti itu kita harus mengikuti beberapa aturan terkenal seperti:
Anda dapat menemukan lebih banyak sumber daya keamanan di tautan berikut:
untuk informasi lebih lanjut google tentang alur keamanan vendor aplikasi Anda.
sumber
sumber
Untuk informasi umum tentang keamanan, saya sangat merekomendasikan membaca Bruce Schneier . Dia punya situs web, buletin crypto-gram-nya , beberapa buku , dan telah melakukan banyak wawancara .
Saya juga akan terbiasa dengan rekayasa sosial (dan Kevin Mitnick ).
Untuk buku yang bagus (dan sangat menghibur) tentang bagaimana keamanan bermain di dunia nyata, saya akan merekomendasikan yang sangat baik (walaupun agak ketinggalan jaman) 'The Cuckoo's Egg' oleh Cliff Stoll.
sumber
Pastikan juga untuk memeriksa Daftar Top 10 OWASP untuk kategorisasi semua vektor / kerentanan serangan utama.
Hal-hal ini menarik untuk dibaca. Belajar berpikir seperti seorang penyerang akan melatih Anda tentang apa yang harus dipikirkan saat Anda menulis kode Anda sendiri.
sumber
Garam dan hash kata sandi pengguna Anda. Jangan pernah menyimpannya dalam plaintext di basis data Anda.
sumber
Hanya ingin membagikan ini untuk pengembang web:
panduan keamanan untuk pengembang
https://github.com/FallibleInc/security-guide-for-developers
sumber