1 / 20

Security Implementation On Mission Critical Applications

Security Implementation On Mission Critical Applications. Budi Rahardjo INDOCISC.com http://budi.insan.co.id Developers Day – Jakarta, 3 Maret 2005. Mission Critical Applications. Merupakan aplikasi yang sangat penting sehingga kegagalan aplikasi dapat menimbulkan masalah Ketidak-nyamanan

Download Presentation

Security Implementation On Mission Critical Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Budi Rahardjo

  3. It’s 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). Budi Rahardjo

  4. Software & User Experience • “Apple’s 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) Budi Rahardjo

  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) Budi Rahardjo

  6. Quotes • Bruce Schneier (in Preface of “Building Secure Software” – Viega & McGraw) “We wouldn’t have to spend so much time, money, and effort on network security if we didn’t have such bad software security.…Think about the most recent security vulnerability you’ve read about. Maybe it’s a killer packet, which allows an attacker to crash some server by sending it a particular packet. Maybe it’s 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 it’s an encryption vulnerability, which allows an attacker to read an encrypted message or fool an authentication system. These are all software issues.” Budi Rahardjo

  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 Budi Rahardjo

  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) Budi Rahardjo

  9. Contoh Kompleksitas Software Sumber: Hoglund & McGraw, “Exploiting Software”, 2004 Budi Rahardjo

  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 Budi Rahardjo

  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? Budi Rahardjo

  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? Budi Rahardjo

  13. Beberapa masalah teknis • Buffer Overflow • Race Condition • Weak encryption • ACL • … Budi Rahardjo

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

  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 Budi Rahardjo

  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 Budi Rahardjo

  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 Budi Rahardjo

  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 Budi Rahardjo

  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? Budi Rahardjo

  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 Lifecycle”http://www.cyberpartnership.org/init-soft.html • Saat ini mulai muncul buku dan referensi tentang bagaimana caranya mengembangkan software yang aman Budi Rahardjo

More Related