Terima kasih telah mengirimkan pertanyaan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Terima kasih telah mengirimkan pemesanan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Kerangka Materi
Hari 1
Keamanan IT dan coding yang aman
- Sifat keamanan
- Istilah-istilah terkait keamanan IT
- Definisi risiko
- Aspek-aspek berbeda dari keamanan IT
- Kebutuhan dari berbagai area aplikasi
- Keamanan IT vs. coding yang aman
-
Dari kerentanan ke botnet dan kejahatan siber
- Sifat cacat keamanan
- Alasan kesulitan
- Dari komputer yang terinfeksi ke serangan yang ditargetkan
-
Klasifikasi cacat keamanan
- Taksonomi Landwehr
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- Perbandingan OWASP Top Ten 2003 – 2013
Pengenalan terhadap Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Aplikasi di bawah serangan...
- Evolusi Kejahatan Siber
- Serangan berfokus pada aplikasi
- Kebanyakan kerentanan ada di aplikasi ISV yang lebih kecil
-
Asal usul Microsoft SDL...
- Garis waktu keamanan di Microsoft...
- Aplikasi mana yang wajib mengikuti SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Prasyarat Pra-SDL: Pelatihan Keamanan
- Fase Satu: Kebutuhan (Requirements)
- Fase Dua: Desain (Design)
- Fase Tiga: Implementasi
- Fase Empat: Verifikasi
- Fase Lima: Rilis – Rencana Respons
- Fase Lima: Rilis – Tinjauan Keamanan Akhir
- Fase Lima: Rilis – Arsip
- Kebutuhan Pasca-SDL: Respons
- Panduan Proses SDL untuk Aplikasi LOB
- Panduan SDL untuk Metodologi Agile
- Pengembangan Perangkat Lunak yang Aman Memerlukan Peningkatan Proses
Prinsip-prinsip desain yang aman
-
Permukaan serangan (Attack surface)
- Pengurangan permukaan serangan
- Permukaan serangan – sebuah contoh
- Analisis permukaan serangan
- Pengurangan permukaan serangan – contoh
-
Privasi
- Privasi
- Memahami Perilaku Aplikasi dan Kekhawatiran
-
Pertahanan berlapis (Defense in depth)
- Prinsip Inti SDL: Defense In Depth
- Pertahanan berlapis – contoh
-
Prinsip hak akses minimal (Least privilege principle)
- Hak akses minimal – contoh
-
Default yang aman (Secure defaults)
- Default yang aman – contoh
Prinsip-prinsip implementasi yang aman
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Dasar-dasar buffer overflow
- Prosesor Intel 80x86 – register utama
- Tata letak alamat memori
- Mekanisme pemanggilan fungsi dalam C/C++ di x86
- Variabel lokal dan bingkai stack (stack frame)
-
Stack overflow
- Buffer overflow di stack
- Latihan – pengenalan
- Latihan BOFIntro
- Latihan BOFIntro – menentukan tata letak stack
- Latihan BOFIntro – exploit sederhana
-
Validasi input
- Konsep validasi input
-
Masalah integer
- Representasi integer negatif
- Integer overflow
- Arithmetic overflow – tebak outputnya!
- Latihan IntOverflow
- Berapa nilai dari Math.Abs(int.MinValue)?
-
Mitigasi masalah integer
- Mitigasi masalah integer
- Menghindari arithmetic overflow – penjumlahan
- Menghindari arithmetic overflow – perkalian
- Mendeteksi overflow dengan kata kunci checked dalam C#
- Latihan – Menggunakan kata kunci checked dalam C#
- Eksepsi yang dipicu oleh overflow dalam C#
-
Studi kasus – Integer overflow di .NET
- Kerentanan integer overflow di dunia nyata
- Mengeksploitasi kerentanan integer overflow
-
Kerentanan path traversal
- Mitigasi path traversal
Hari 2
Prinsip-prinsip implementasi yang aman
-
Injection
- Metode serangan SQL Injection yang tipikal
- SQL injection buta dan berbasis waktu (Blind and time-based SQL injection)
- Metode perlindungan SQL Injection
- Command injection
-
Autentikasi yang rusak - manajemen kata sandi
- Latihan – Kelemahan kata sandi yang di-hash
- Manajemen dan penyimpanan kata sandi
- Algoritma hash khusus tujuan untuk penyimpanan kata sandi
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injection
- Eksploitasi: injeksi melalui tag HTML lainnya
- Pencegahan XSS
-
Kontrol akses tingkat fungsi yang hilang
- Memfilter unggahan file
-
Kriptografi praktis
- Menyediakan kerahasiaan dengan kriptografi simetris
- Algoritma enkripsi simetris
- Block ciphers – mode operasi
- Hash atau message digest
- Algoritma hash
- Message Authentication Code (MAC)
- Menyediakan integritas dan keaslian dengan kunci simetris
- Menyediakan kerahasiaan dengan enkripsi kunci publik
- Aturan praktis – kepemilikan kunci privat
- Kesalahan tipikal dalam manajemen kata sandi
- Latihan – Kata sandi hard coded
- Kesimpulan
Prinsip-prinsip verifikasi yang aman
- Pengujian fungsional vs. pengujian keamanan
- Kerentanan keamanan
- Prioritisasi
- Pengujian keamanan di SDLC
- Langkah-langkah perencanaan pengujian (analisis risiko)
-
Penentuan cakupan (Scoping) dan pengumpulan informasi
- Pemangku kepentingan (Stakeholders)
- Aset
- Permukaan serangan
- Tujuan keamanan untuk pengujian
-
Pemodelan ancaman (Threat modeling)
- Pemodelan ancaman
- Profil penyerang
- Pemodelan ancaman berdasarkan pohon serangan (attack trees)
- Pemodelan ancaman berdasarkan kasus penyalahgunaan (misuse/abuse cases)
- Kasus penyalahgunaan – contoh Web shop sederhana
- Pendekatan STRIDE per elemen untuk pemodelan ancaman – MS SDL
- Mengidentifikasi tujuan keamanan
- Diagram – contoh elemen DFD
- Diagram alur data – contoh
- Penumeran ancaman – STRIDE MS SDL dan elemen DFD
- Analisis risiko – klasifikasi ancaman
- Model peringkat ancaman/risiko DREAD
-
Teknik dan alat pengujian keamanan
- Pendekatan pengujian umum
- Teknik untuk berbagai langkah SDLC
-
Tinjauan kode (Code review)
- Tinjauan kode untuk keamanan perangkat lunak
- Analisis noda (Taint analysis)
- Heuristik
-
Analisis kode statis
- Analisis kode statis
- Latihan – Menggunakan alat analisis kode statis
-
Menguji implementasi
- Verifikasi waktu jalankan manual
- Pengujian keamanan manual vs. otomatis
- Pengujian penetrasi
- Tes beban (Stress tests)
-
Fuzzing
- Pengujian keamanan otomatis - fuzzing
- Tantangan fuzzing
-
Pindai kerentanan Web
- Latihan – Menggunakan pindai kerentanan
-
Memeriksa dan memperkeras lingkungan (hardening)
- Sistem Penilaian Kerentanan Umum – CVSS
- Pindai kerentanan
- Basis data publik
-
Studi kasus – Pengelakan Autentikasi Formulir (Forms Authentication Bypass)
- Kerentanan terminasi byte NULL
- Kerentanan Pengelakan Autentikasi Formulir dalam kode
- Mengeksploitasi Pengelakan Autentikasi Formulir
Sumber pengetahuan
- Sumber coding yang aman – kit starter
- Basis data kerentanan
- Pedoman coding aman .NET di MSDN
- Lembar contekan (cheat sheets) coding aman .NET
- Buku-buku yang direkomendasikan – .NET dan ASP.NET
14 Jam
Testimoni (3)
Pengalaman berbagi, pengetahuan dan pengalaman berharga dari guru.
Carey Fan - Logitech
Kursus - C/C++ Secure Coding
Diterjemahkan Mesin
pengetahuan instruktur sangat tinggi - dia tahu apa yang dia bicarakan dan mengetahui jawaban atas pertanyaan kami
Adam - Fireup.PRO
Kursus - Advanced Java Security
Diterjemahkan Mesin
Topiknya saat ini dan saya perlu diperbarui
Damilano Marco - SIAP s.r.l.
Kursus - Secure Developer Java (Inc OWASP)
Diterjemahkan Mesin