Security Implementation On Mission Critical Applications - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Security Implementation On Mission Critical Applications

Description:

Merupakan aplikasi yang sangat penting sehingga kegagalan aplikasi dapat menimbulkan masalah ... Sistem menjadi tidak reliable, rusak, hang, crash. ( Availability) ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 21
Provided by: BudiRa
Category:

less

Transcript and Presenter's Notes

Title: Security Implementation On Mission Critical Applications


1
Security Implementation On Mission Critical
Applications
  • Budi Rahardjo
  • INDOCISC.com
  • http//budi.insan.co.id
  • Developers Day Jakarta, 3 Maret 2005

2
Mission Critical Applications
  • Merupakan aplikasi yang sangat penting sehingga
    kegagalan aplikasi dapat menimbulkan masalah
  • Ketidak-nyamanan
  • Kerugian finansial
  • Hilangnya nyawa

3
Its All Software
  • Semua aplikasi sekarang bergantung kepada
    software
  • Fly by wire
  • Peluru kendali
  • Consumer electronics
  • Meskipun aplikasi dan software dapat dipisahkan,
    materi presentasi ini mencoba memfokuskan kepada
    sisi softwarenya. Aplikasi biasanya lebih
    berfokus kepada pengoperasian software yang sudah
    jadi (misalnya sandboxing).

4
Software User Experience
  • Apples core strength is to bring very high
    technology to mere mortals in a way that
    surprises and delights them and that they can
    figure out how to use. Software is the key to
    that. In fact, software IS the user
    experience.(Steve Jobs)

5
Security Issues
  • Masih kurang pengetahuan mengenai masalah
    security
  • Akibatnya
  • Kerahasiaan informasi tidak terjaga.
    (Confidentiality)
  • Informasi tidak terjaga integritasnya.
    (Integrity)
  • Sistem menjadi tidak reliable, rusak, hang,
    crash. (Availability)
  • Orang yang tidak berhak dapat menyisipkan program
    dan menjalankannya, mengakses informasi yang
    seharusnya tidak diperkenankan. (Authentication
    Authorization)

6
Quotes
  • Bruce Schneier (in Preface of Building Secure
    Software Viega McGraw)
  • We wouldnt have to spend so much time, money,
    and effort on network security if we didnt have
    such bad software security.Think about the
    most recent security vulnerability youve read
    about. Maybe its a killer packet, which allows
    an attacker to crash some server by sending it a
    particular packet. Maybe its one of the
    gazillions of buffer overflows, which allow an
    attacker to take control of a computer by sending
    it a particular malformed message. Maybe its an
    encryption vulnerability, which allows an
    attacker to read an encrypted message or fool an
    authentication system. These are all software
    issues.

7
Software Problems
  • Trinity of Trouble (Hoglund McGraw)
  • Complexity
  • Semakin banyak jumlah kode, semakin banyak
    kemungkinan adanya bugs
  • Extensibility
  • Java, .NET, dll, modules, virtual machine, mobile
    code
  • Tidak tahu kode yang akan datang. Sulit
    menjaganya
  • Connectivity
  • Aplikasi banyak yang terhubung ke jaringan
  • Meningkatkan jumlah potensi penyerang

8
Kompleksitas Terlalu Tinggi
  • There are two ways of constructing a software
    design. One way is to make it so simple that
    there are obviously no deficiencies. And the
    other way is to make it so complicated that there
    are no obvious deficiencies. (C.A.R. Hoare)

9
Contoh Kompleksitas Software
Sumber Hoglund McGraw, Exploiting Software,
2004
10
What To Do
  • Meningkatkan wawasan security dari para
    pengembang software dan management
  • Meningkatkan akurasi dari asumsi
  • Memberikan lebih banyak perhatian (time, money,
    effort) kepada security
  • Meningkatkan pengetahuan (skill) security
    pengembang software
  • Kuliah tentang secure software

11
Asumsi Pengembang
  • Pengguna software adalah orang yang paham
    menggunakan software. Tidak benar.
  • Kesalahan urutan dan penggunaan dapat berakibat
    fatal
  • Kesalahan memasukkan kata / memberikan perintah
    dapat menimbulkan masalah.
  • Biasanya menggunakan filter apa-apa yang tidak
    dikehendaki.
  • Cara lain adalah dengan membuat whitelist (yang
    diperbolehkan)
  • Bagaimana agar software tidak rentan terhadap
    kesalahan?

12
Asumsi Pengembang (2)
  • Pengguna software adalah orang yang baik. Tidak
    benar.
  • Adanya pengguna yang sengaja mencoba-coba,
    mencari kelemahan software (misal mengedit URL)
  • Software sekarang umumnya berada di hostile
    environment
  • Bagaimana agar software tidak rentan terhadap
    penyerangan?

13
Beberapa masalah teknis
  • Buffer Overflow
  • Race Condition
  • Weak encryption
  • ACL

14
Buffer Overflow
  • Merupakan salah satu kesalahan yang sering
    terjadi
  • Keterbatasan memory membatasi ukuran dari buffer
    (array)
  • char userid20char password20
  • Seringkali pembuat software
  • Lupa menguji batas buffer/array
  • Bagaimana jika userid atau password di atas
    diberi masukan lebih dari 20 karakter?

15
Mengatasi Buffer Overflow
  • Ada beberapa tools / library yang dapat digunakan
    untuk membantu mencari potensi buffer overflow
  • Ada juga library yang mencoba memproteksi buffer
    overflow tanpa turut campurnya sang programmer
    (misalnya selalu menguji batas dari buffer,
    menandai batas akhir dari buffer, dsb.)
  • Tapi, tetap pengetahuan akan buffer overflow
    lebih baik lagi

16
Race Condition
  • Ada hal-hal tertentu yang jika urutannya tidak
    tepat maka bisa terjadi masalah
  • Membuat berkas dengan tingkat admin (root)
    kemudian menghapusnya setelah selesai. Namun di
    tengah perjalanan berkas tersebut berhasil
    dieksploitasi (diubah isinya, diarahkan ke tempat
    lain) sebelum dihapus.
  • Variabel yang sedang digunakan oleh sebuah
    thread, ternyata diubah isinya oleh thread lain
    sehingga menjadi tidak benar

17
Mengatasi Race Condition
  • Beberapa alternatif
  • Membuat beberapa transaksi menjadi atomic
    (terlihat sebagai satu eksekusi)
  • Melakukan sinkronisasi dengan misalnya membuat
    sebuah mutual exclusion (mutex), semaphore,
    locking
  • Membatasi dan mengecilkan window dari race
    condition
  • Membatasi level otorisasi pada bagian yang
    berpotensi dieksploitasi

18
Weak Encryption
  • Penggunaan enkripsi (penyandian) yang lemah
    memberikan perasaan aman, padahal tidak. (False
    sense of security.)
  • Ada yang merasa sudah pandai membuat enkripsi,
    padahal lemah.
  • Lebih baik menggunakan algoritma yang sudah
    terbukti kuat
  • Salah menggunakan algoritma juga dapat berdampak
    menjadi tidak aman

19
Penutup
  • Mudah-mudahan tingkat wawasan dan kemampuan
    (skill) security di antara para pengembang
    software makin meningkat
  • Harus ada pendidikan mengenai bagaimana cara
    membuat software yang aman
  • Kuliah? Training? Workshop? Tutorial?

20
Lain-Lain
  • Bidang ilmu lain yang terkait Metoda Formal
    (Formal Methods), yaitu menggunakan matematik di
    setiap tahapan desain dan implementasihttp//budi
    .insan.co.id/courses/ec7030Namun bidang ini
    masih kurang populer
  • 1 April 2004. National Cyber Security Partnership
    (NCSP) di Amerika mengeluarkan dokumen Improving
    Security Across The Software Development
    Lifecyclehttp//www.cyberpartnership.org/init-so
    ft.html
  • Saat ini mulai muncul buku dan referensi tentang
    bagaimana caranya mengembangkan software yang aman
Write a Comment
User Comments (0)
About PowerShow.com