Software Security Design

Rangkuman

Masalah Desain

  • Terkait bisnis logic flaw

  • Memperbaiki masalah security yang terjadi di production 100x lebih mahal daripada ketika pada fase desain

  • Specification -> architectural blueprint -> code


Ex :

  • Banyak aplikasi tidak melakukan verifikasi email untuk pembuatan akun,reset password

  • Akibat kesalahan yang berakit fatal

    • Org lain dapat membuat akun kita dengan alamat email tsb

    • Reset password ke akun org tsb

Yang harus dilakukan adalah harus membuat verifikasi email


Security itu bukan hanya fitur tapi concern

  • User authentication pada website penyimpanan foto


Architectural Risk Analyst

  • Sangat perlu dilakukan

  • Memberikan jaminan desain diidentifikasi dan ditangani sedini mungkin dalam life cycle

  • Tanpa analsis ini kelemahan arsitektural akan tetap tidak tertangani life cycle


Architectural Risk Analyst Activity :

  1. Software characterization

    • Memahami software dan cara kerjanya

  2. Threat analysis

    • Agen yang melanggar perlindungan aset informasi dan kebijakan keamanan situs

  3. Architectural vulnerability assessment

    • Penilaian kerentanan memeriksa prasyarat yang harus ada agar kerentantan dapat dieksploitasi dan menilai status yang mungkin dimasuki perangkat lunak saat dieksploitasi

  4. Risk likelihood determination 

    • Setelah menentukan ancaman mana yang penting dan kerentanan mana yang mungkin ada untuk dieksploitasi, akan berguna untuk memperkirakan kemungkinan berbagai kemungkinan risiko.

  5. Risk impact determination

    • Identify threatened asset

    • Identify bisnis impact

    • Risk imposure statement

  6. Risk mitigation planning

    • Mitigasi resiko memerlukan perubahan arsitektur perangkat lunak



Desain adalah panduan prinsip bagaimana sebuah sistem dibangun dan dapat diterapkan disemua tingkatan, mulai dari kode sehingga arsitektur.

Bentuk seperti:

  • Flowchart

  • DFD

  • UML

  • Deskriptif (teks dan gambar) dengan bahasa natural


  • Requirement

    • Pengguna tidak boleh login dari dua (2) tempat yang berbeda (parallel/concurrent login)

      • Ada skenario pengujian login dari 2 IP yang berbeda pada saat yang bersamaan

Confidentiality Design

  • Menggunakan kriptografi

Integrity Design

  • Hash function (MD5.SHA)

Availability Design

  • Menghindari DOS

Authentication Design

  • SSO

Authorization Design

  • Roles, separation of duty, least priviledge


Contoh Architectural Risk Analyst

  1. Software characterization

    • Membutuhkan deskripsi minimal menggunakan diagram yang menghasilkan gambaran yang komprehensif, namun ringkas secara jelas menggambarkan sifat sebenarnya dari perangkat lunak

  2. Threat analysis

    • Mengidentifikasi ancaman yang relevan untuk arsitektur, fungsionalitas, dan konfigurasi tertentu. Ini mungkin mengasumsikan tingkat akses dan tingkat keterampilan tertentu yang mungkin dimiliki penyerang.

  3. Architectural vulnerability assessment

    • Ada 3 kegiatan membentuk penilaian kerentanan arsitektur: analisis resistensi serangan, analisis ambiguitas, analisis ketergantungan

  4. Risk likelihood determination 

  5. Risk impact determination

  6. Risk mitigation planning

Comments