Top Banner
Secure So(ware Design Budi Rahardjo budiatindocisc.com 2013
22

Secure Software Design

May 27, 2015

Download

Technology

budi rahardjo

Secure Software Design (in Bahasa Indonesia)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Secure Software Design

Secure  So(ware  Design  

Budi  Rahardjo  budi-­‐at-­‐indocisc.com    

2013  

Page 2: Secure Software Design

Desain  

•  Merupakan  kelanjutan  setelah  spesifikasi  

2013   BR  -­‐  Secure  So(ware  Design   2  

Page 3: Secure Software Design

Desain  

•  Masalah  desain  terkait  business  logic  flaw  (bukan  bugs  karena  kode  belum  dibuat)  

•  Memperbaiki  masalah  (security)  yang  terjadi  di  producFon  100x  lebih  mahal  daripada  keFka  pada  fasa  desain  

specifica+on    architectural  blueprint  code  

2013   BR  -­‐  Secure  So(ware  Design   3  

Page 4: Secure Software Design

Desain  

•  Bentuknya  seperF  apa?  – Flowchart  – DFD  – UML  – DeskripFf  (teks  dan  gambar)  dengan  bahasa  natural  

2013   BR  -­‐  Secure  So(ware  Design   4  

Page 5: Secure Software Design

Desain  

•  Mendefinisikan  sesuatu  yang  harusnya  terjadi  •  Kondisi  normal  

Spesifikasi    Implementasi  MulFplier  (spec.)    MulFplier  (impl.)  

(tes/ng?  verifica/on?)  

2013   BR  -­‐  Secure  So(ware  Design   5  

Page 6: Secure Software Design

Security  Desain  

•  Mendefinisikan  sesuatu  yang  Fdak  boleh  terjadi  (dari  kacamata  security)  – Safety?  

– Abuse  |  misuse  |  pelanggaran  kebijakan  – Kendali  (control)  yang  diterapkan  terhadap  hal  di  atas  

2013   BR  -­‐  Secure  So(ware  Design   6  

Page 7: Secure Software Design

Contoh  #1  

•  Contoh  yang  Fdak  boleh  terjadi  – Pengguna  login  dari  dua  (2)  tempat  yang  berbeda  (parallel  login)  •  Ada  skenario  pengujian  login  dari  2  IP  yang  berbeda  •  Bagaimana  caranya?  Manual?  OtomaFs?  

– Bagaiman  kendalinya?  •  Cookies  +  nomor  IP  +  jenis  browser  +  idenFtas  komputer  lainnya  

2013   BR  -­‐  Secure  So(ware  Design   7  

Page 8: Secure Software Design

Contoh  #2  

•  Password  recovery  – Pertanyaan  yang  sudah  dipersiapkan  • Warna  favorit?  •  Nama  binatang  peliharaan  (pets)?  

–  Jawaban  yang  terbatas  jumlahnya  atau  mudah  ditebak  •  Tebak  warna:  merah,  biru,  hijau,  ...  •  Kasus  Paris  Hilton,  nama  pets  diketahui  (via  media  entertainment)  •  Data  via  faceboook  (social  media  lainnya)  

2013   BR  -­‐  Secure  So(ware  Design   8  

Page 9: Secure Software Design

Desain  Kendali  

•  Bagaimana  mendeskripsikannya?  – Sama  dengan  metoda  yang  digunakan  untuk  mendeskripsikan  desain  •  Use  case  

2013   BR  -­‐  Secure  So(ware  Design   9  

Page 10: Secure Software Design

So(ware  Security  Design  ConsideraFons  •  Confiden'ality  Design  – Menggunakan  kriptografi  

•  Integrity  Design  – Menggunakan  hash  funcFons  

•  Availability  Design  –  Data  replicaFon?  

•  AuthenFcaFon  Design  –  SSO?  

•  AuthorizaFon  Design  –  Roles,  separaFon  of  duty,  least  priviledge  

•  AudiFng/Logging  Design  

2013   BR  -­‐  Secure  So(ware  Design   10  

Page 11: Secure Software Design

Secure  Design  Principles  

•  Least  privilege  •  SeparaFon  of  duFes  •  Defense  in  Depth  •  Fail  Secure  •  Economy  of  Mechanism  •  Complete  MediaFon  

Source:  Mano  Paul,  “Official  (ISC)2  Guide  to  the  CSSLP”,  CRC  Press,  2011  

•  Open  Design  •  Least  Common  Mechanism  

•  Psychological  Acceptability  

•  Leveraging  ExisFng  Components  

2013   BR  -­‐  Secure  So(ware  Design   11  

Page 12: Secure Software Design

Least  Privilage  

•  Gunakan  access  rights  (privilage)  se-­‐minimal  mungkin  

•  Terkait  dengan  konfigurasi  bukan  so(warenya  •  Modular  programming  •  Contoh  – Database:  Fdak  menggunakan  “sa”  (admin)  untuk  aplikasi  

– Web:  apache  menggunakan  “www-­‐data”  bukan  “root”  – Mail:  posjix  menggunakan  user  yang  berbeda  untuk  menerima  email  dan  menulis  mailbox  

2013   BR  -­‐  Secure  So(ware  Design   12  

Page 13: Secure Software Design

SeparaFon  of  Duty  

•  Fungsionalitas  dipisahkan  (compartementalize)  – Memisahkan  kunci  kriptografi  (spliCng  keys)  

2013   BR  -­‐  Secure  So(ware  Design   13  

Page 14: Secure Software Design

Defense  in  Depth  

•  Layered  defense  •  Masalah  (vulnerability)  di  satu  tempat  Fdak  menjadikan  total  compromise  

•  Contoh  – Menggunakan  zona  security  yang  berbeda  

– Menggunakan  input  validaFon,  stored  procedures,  Fdak  memperkenankan  dynamic  query  construcFon  

2013   BR  -­‐  Secure  So(ware  Design   14  

Page 15: Secure Software Design

Fail  Secure  

•  Bila  gagal,  masuk  ke  zona  secure  •  Contoh  – Gagal  login  beberapa  kali,  account  dikunci  – Pesan  kesalahan  (error  messages)  Fdak  mengungkapkan  rahasia  (non-­‐verbose)  •  Error  ...  /to/some/path/file  

•  HaF-­‐haF  untuk  Fdak  menjadi  DoS  (bergantung  kepada  kebijakan)  

2013   BR  -­‐  Secure  So(ware  Design   15  

Page 16: Secure Software Design

Economy  of  Mechanism  

•  “the  more  complex  the  design  of  the  soGware,  the  more  likely  there  are  vulnerabili/es”  

•  Fungsi  dan  pengamanan  yang  Fdak  dibutuhkan  (berlebihan)  harus  dihindari  

•  Simplicity  ...  Zen  ...  

•  Kemudahan  

2013   BR  -­‐  Secure  So(ware  Design   16  

Page 17: Secure Software Design

Complete  MediaFon  

•  Access  request  harus  diuji  seFap  saat  •  Contoh  – URL  dengan  user=budi  diganF  menjadi  rahardjo  ternyata  menampilkan  data  “rahardjo”  tanpa  harus  login  

– Tidak  boleh  bergantung  hanya  kepada  client-­‐side,  cookie-­‐based  caching  of  authen/ca/on  creden/als  

–  Instruksi  “jangan  tekan  tombol  lebih  dari  sekali”  Fdak  efekFf  

2013   BR  -­‐  Secure  So(ware  Design   17  

Page 18: Secure Software Design

Open  Design  

•  Pisahkan  kerahasiaan  dengan  desain  –  Contoh  algoritma  kriptografi  yang  memisahkan  antara  algoritma  dan  kunci-­‐nya  

– Algoritma  dapat  direview  tanpa  merisikokan  kerahasiaan.  (Contoh  algoritma  yang  terbuka  AES,  RSA,  dll.)  

•  Lawannya  adalah  security  through  obscurity  –  Tingkat  kerahasiaan  so(ware  bergantung  kepada  kerahasiaan  desain.  Harus  dihindari.  Bocornya  desain  berdampak  kepada  gagalnya  keamanan  

– Desain  harus  terbuka  untuk  review  (scruFny)  – Hard  coding  informasi  yang  sensiFf  berbahaya  

2013   BR  -­‐  Secure  So(ware  Design   18  

Page 19: Secure Software Design

Least  Common  Mechanism  

•  Mekanisme  yang  sama  (common)  untuk  pengguna  /  proses  dengan  Fngkat  otoritas  yang  berbeda  Fdak  boleh  digunakan  bersama  (shared)  

•  Potensi  terjadinya  kebocoran  informasi  

•  Harus  dikotak-­‐kotakkan  

2013   BR  -­‐  Secure  So(ware  Design   19  

Page 20: Secure Software Design

Psychological  Acceptability  

•  Security  mechanism  should  be  designed  to  maximize  usage,  adop/on,  and  automa/c  applica/on  

•  Penerapan  pengamanan  diusahakan  Fdak  menyulitkan  pengguna.  Jika  Fdak,  akan  terjadi  masalah  keamanan  di  tempat  lain  – Aturan  /  desain:  “password  harus  kompleks  dan  sering  diubah”  

–  Pengguna  kesulitan  mengingat  password  (yang  selalu  berubah)  

–  Pengguna  menuliskan  password  tersebut  di  kertas  dan  menyimpannya  dekat  kompyter  

2013   BR  -­‐  Secure  So(ware  Design   20  

Page 21: Secure Software Design

Psychological  Acceptability  (cont.)  

•  Penerapan  pengamanan  harus  – Mudah  digunakan  – Tidak  mengubah  accessibility  – Transparan  terhadap  pengguna  

2013   BR  -­‐  Secure  So(ware  Design   21  

Page 22: Secure Software Design

Leveraging  ExisFng  Components  

•  Menggunakan  komponen  /  layanan  yang  sudah  tersedia  (daripada  membuat  sendiri)  – Menggunakan  algoritma  kriptografi  yang  sudah  terbukF  aman  

– Menggunakan  library  yang  banyak  digunakan  

2013   BR  -­‐  Secure  So(ware  Design   22