Sekuriti - Sistem Kemanan Software

Beberapa web banyak berbicara tentang keamanan komputer umumnya, sedangkan kali ini, kami secara khusus ingin membahas keamanan software atau perangkat lunak. Keamanan software adalah cabang dari keamanan komputer yang berfokus pada desain dan keamanan implementasi perangkat lunak. Dengan kata lain, materi ini berfokus pada menghindari kerentanan perangkat lunak, kelemahan, dan bug.

Sementara diketahui, keamanan perangkat lunak tumpang tindih dan saling melengkapi bidang keamanan komputer lainnya, cuma dibedakan oleh fokusnya pada kode sistem yang aman. Fokus bisa dilihat dari pendekatan pengujian white box, sehingga bisa menjadi petunjuk untuk memperoleh program yang benar 100%, sedangkan pendekatan lain lewat black box. Dan itu cenderung mengabaikan internal perangkat lunak.

Karena pendekatan black box hanya menganalisa dari hasil eksekusi data yang di uji serta memeriksa fungsional dari perangkat lunak. Nah sekarang, Mengapa keamanan perangkat lunak fokus pada kode penting? Jawaban singkatnya adalah perangkat lunak itu cacat, ada celah, sering menjadi penyebab utama masalah keamanan, dan keamanan perangkat lunak bertujuan untuk mengatasi cacat ini secara langsung. Bentuk keamanan lain cenderung mengabaikan perangkat lunak dan membangun pertahanan di sekitarnya.

Sama seperti dinding kastil, pertahanan ini penting dan bekerja sampai batas tertentu. Tetapi ketika cacat perangkat lunak tetap, hacker sering menemukan cara untuk melewati dinding-dinding itu. Kami sekarang akan mempertimbangkan beberapa metode standar untuk penegakan keamanan dan melihat bagaimana black box memperlihatkan keterbatasan teknik keamanan perangkat lunak dalam mengatasinya.

Contoh pertama kami adalah penegakan keamanan oleh sistem operasi atau OS. Ketika keamanan komputer tumbuh sebagai bidang pada awal 1970-an, sistem operasi adalah fokusnya. Untuk sistem operasi, kode a, menjalankan program bukanlah hal yang penting. Sebaliknya, OS peduli apa yang dilakukan oleh program, yaitu tindakannya saat dijalankan. Tindakan ini, disebut panggilan sistem, termasuk membaca atau menulis file, mengirim paket jaringan dan menjalankan program baru. Sistem operasi memberlakukan keamanan kebijakan yang membatasi ruang lingkup panggilan sistem.

Misalnya, OS dapat memastikan bahwa program Alice tidak dapat mengakses file Bob. Atau program pengguna yang tidak dipercaya tidak dapat mengatur layanan tepercaya pada port jaringan standar. Keamanan sistem operasi sangat penting, tetapi itu tidak selalu cukup. Khususnya, beberapa tindakan keamanan yang relevan dari suatu program terlalu halus untuk dimediasi sebagai panggilan sistem.

Dan sebagainya perangkat lunak itu sendiri perlu dilibatkan. Misalnya, manajemen basis data sistem atau DMBS adalah server yang mengelola data yang kebijakan keamanannya khusus untuk aplikasi yang menggunakan data itu. Untuk toko online, misalnya, database dapat berisi informasi akun sensitif keamanan untuk pelanggan dan vendor bersama catatan lain seperti deskripsi produk yang tidak sensitif terhadap keamanan sama sekali.

Terserah DBMS untuk menerapkan keamanan kebijakan yang mengontrol akses ke data ini, bukan OS. Sistem operasi juga tidak dapat untuk menegakkan beberapa jenis kebijakan keamanan tertentu. Sistem operasi biasanya bertindak sebagai monitor pelaksanaan yang menentukan apakah akan mengizinkan atau melarang tindakan program berdasarkan konteks eksekusi saat ini dan tindakan sebelumnya dari program.

Namun, ada beberapa jenis kebijakan, seperti kebijakan arus informasi, yang tidak bisa ditegakkan tepatnya tanpa pertimbangan untuk tindakan potensial di masa depan, atau bahkan nonaksi. Mekanisme tingkat perangkat lunak dapat dibawa menanggung dalam kasus ini, mungkin bekerja sama dengan OS. Kami akan mempertimbangkan Jenis keamanan populer lainnya dari mekanisme penegakan adalah monitor jaringan seperti firewall atau sistem deteksi intrusi atau IDS. Firewall umumnya berfungsi dengan memblokir koneksi dan paket dari memasuki jaringan. Misalnya, firewall mungkin memblokir semua upaya untuk terhubung ke server jaringan kecuali pada port yang ditunjuk. Seperti port TCP 80, port standar untuk server web.

Firewall sangat bermanfaat ketika ada perangkat lunak yang berjalan di jaringan lokal itu saja, dimaksudkan untuk digunakan oleh pengguna lokal. Sistem deteksi intrusi memberikan kontrol yang lebih baik dengan memeriksa isi jaringan paket, mencari pola yang mencurigakan. Sebagai contoh, untuk mengeksploitasi server yang rentan, penyerang dapat mengirim dibuat dengan hati-hati, masukan ke server itu sebagai paket jaringan. IDS dapat mencari paket-paket seperti itu dan memfilternya mencegah serangan terjadi.

Firewall dan IDS pandai mengurangi jalan untuk serangan dan mencegah vektor serangan yang diketahui. Tetapi kedua perangkat dapat dikerjakan. Misalnya, kebanyakan firewall akan memungkinkan lalu lintas di port 80, karena mereka menganggapnya adalah lalu lintas web yang tidak berbahaya. Namun tidak ada jaminan itu port 80 hanya menjalankan server web, meskipun biasanya demikian. Bahkan, pengembang telah menemukan SOAP, yang merupakan singkatan dari protokol akses objek sederhana, untuk mengatasi firewall, memblokir port selain port 80. SOAP memungkinkan lebih umum terjadi pertukaran pesan tujuan, tetapi juga menyandikannya menggunakan protokol web. Sekarang, pola IDS lebih halus dan lebih bisa melihat detailnya dari apa yang terjadi selain firewall kami. Tetapi IDS dapat tertipu juga oleh perbedaan tidak penting dalam pola serangan.

Mencoba mengisi celah itu dengan menggunakan filter yang lebih canggih dapat memperlambat lalu lintas, dan penyerang bisa mengeksploitasi perlambatan tersebut dengan mengirimkan banyak lalu lintas bermasalah, membuat penolakan layanan, yaitu hilangnya ketersediaan (availability) Akhirnya, mempertimbangkan pemindai anti-virus.

Ini adalah alat yang memeriksa isi file, email, dan lalu lintas lainnya di mesin host, mencari tanda-tanda serangan. Ini sangat mirip dengan IDS, tetapi mereka beroperasi pada file dan memiliki kinerja yang kurang ketat persyaratan sebagai hasilnya. Tetapi mereka juga sering dapat dilewati dengan membuat perubahan kecil untuk menyerang vektor. Sekarang kami menyimpulkan perbandingan kami antara keamanan perangkat lunak ke keamanan black box dengan contoh. bug Heartbleed.

Heartbleed adalah nama yang diberikan untuk bug di versi 1.0.1 dari implementasi OpenSSL dari protokol keamanan layer transport atau TLS. Bug ini dapat dieksploitasi dengan mendapatkan server buggy yang menjalankan OpenSSL untuk mengembalikan sebagian memorinya. Bug adalah contohnya dari buffer overflow, maka mari kita lihat black box dengan mekanisme keamanannya, dan bagaimana cara mereka melawan Heartbleed. Penegakan sistem operasi dan pemindai anti-virus tidak banyak membantu.

Untuk yang pertama, eksploitasi yang mencuri data melakukannya dengan menggunakan hak istimewa secara normal diberikan ke server yang mendukung TLS. Jadi OS tidak bisa melihat kesalahan. Untuk yang terakhir, eksploitasi terjadi sementara server TLS mengeksekusi, oleh karena itu tidak meninggalkan jejak yang jelas dalam sistem file. Filter paket dasar yang digunakan oleh IDS dapat mencari tanda-tanda paket eksploit.

FBI mengeluarkan signature untuk mendengus IDS segera setelah Heartbleed diumumkan. Signature ini harus bekerja terhadap dasar eksploitasi, tetapi eksploit mungkin dapat menerapkan variasi dalam format paket tersebut sebagai chunking untuk mem-bypass signature. Bagaimanapun, konsekuensi dari serangan yang berhasil tidak mudah ditentukan, karena ada data yang disaring akan kembali pada saluran terenkripsi.

Sekarang, dibandingkan dengan ini, metode keamanan perangkat lunak akan bertujuan untuk langsung menuju sumber masalah dengan mencegah atau mengurangi secara lebih lengkap kerusakan pada perangkat lunak.