Hubungi Kami

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

Jumlah Peserta


Harga per Peserta

Testimoni (3)

Kursus Mendatang

Kategori Terkait