Sekuriti - Pengenalan Keamanan Komputer

Keamanan komputer, baru-baru ini dikenal sebagai keamanan dunia maya, merupakan atribut dari sistem komputer. Atribut utama sistem itu membangun fokus pada "kebenaran'. Mereka ingin sistemnya ditentukan berlaku dalam kondisi yang diharapkan. Jika kita misalnya, mengembangkan situs web perbankan, ada kekhawatiran ketika klien menentukan transfer dana katakanlah $ 100 dari salah satu akunnya, maka $ 100 memang ditransfer jika dana tersedia. Nah, Jika saya mengembangkan pengolah kata, password, maka kekhawatiran terjadi ketika suatu file disimpan dan dimuat kembali, sehingga orang lain mendapatkan kembali file saya berdasarkan data dari tempat saya tinggalkan. Dan seterusnya.

Sistem komputer yang aman adalah salah satunya yang mencegah perilaku spesifik yang tidak diinginkan di bawah keadaan luas. Sementara 'kebenaran' sebagian besar tentang apa yang harus dilakukan sistem, 'keamanan' adalah tentang apa yang seharusnya tidak dilakukan. Bahkan ketika ada objek aktif dan ada niat 'jahat 'mencoba untuk menghindari tindakan perlindungan apa pun, maka system menerapkan 'kebenaran' sebagai perpanjangan tangan dari 'keamanan'.

Ada tiga keamanan klasik properti yang biasanya digunakan oleh sistem. Pelanggaran terhadap properti ini merupakan perilaku yang tidak diinginkan. Artinya ada objek yang mencurigakan karena ini properti yang luas. Sistem yang berbeda akan memiliki contoh spesifik dari beberapa properti tergantung pada apa yang sistem lakukan. Properti pertama adalah kerahasiaan (confidentiality). Jika seorang penyerang mampu memanipulasi sistem untuk mencuri sumber daya atau informasi seperti atribut pribadi atau rahasia perusahaan, maka dia melanggar kerahasiaan. Properti kedua adalah integritas (integrity). Jika penyerang dapat memodifikasi atau informasi yang rusak disimpan oleh suatu sistem, atau dapat disalahgunakan pada fungsionalitas sistem, maka dia melanggar integritas sistem. Contoh pelanggaran termasuk penghancuran catatan, modifikasi log sistem, instalasi yang tidak diinginkan perangkat lunak seperti spyware, dan banyak lagi. Properti terakhir adalah ketersediaan (availability). Jika penyerang merusak sistem sehingga menolak layanan untuk pengguna yang sah, misalnya, untuk membeli produk atau mengakses dana bank, maka penyerang telah melanggar ketersediaan sistem. Beberapa sistem saat ini benar-benar aman, sebagaimana dibuktikan oleh constant stream of reported security, misalnya, berita korporasi RSA yang dihack.

Para hacker mampu mencuri sensitif token terkait dengan perangkat SecureID RSA. Token ini kemudian digunakan untuk merusak dan menyusup ke perusahaan yang menggunakan SecureID. Pada akhir 2013, perusahaan Adobe yang dihack, dan kedua kode sumber dan catatan pelanggan dicuri. Di sekitar waktu yang sama, penyerang menargetkan target penjualan yang dikompromikan, dan mampu mencuri 40 juta nomor kartu kredit dan debit. Dan ini hanya beberapa contoh profil tinggi.

Lantas bagaimana para penyerang melanggar sistem ini? Banyak pelanggaran dimulai dengan eksploitasi kerentanan dalam sistem yang dimaksud. Kerentanan adalah cacat(defect) dimana para hacker dapat mengeksploitasi melalui interaksi yang dibuat dengan cermat untuk mendapatkan sistem berperilaku tidak aman. Secara umum, defect merupakan masalah dalam desain atau implementasi sistem sedemikian rupa yang gagal memenuhi persyaratannya. Dengan kata lain, gagal berperilaku dengan benar. Defect adalah cacat dalam desain sementara, bug adalah cacat dalam implementasi. Kerentanan adalah cacat yang mempengaruhi keamanan perilaku yang relevan daripada sekadar kebenaran.

Sebagai contoh, hack yang terjadi pada RSA 2011. Pelanggaran ini bergantung pada cacat di implementasi Adobe Flash player. Di mana flash player harusnya jinak menolak file input yang salah bentuk, cacat malah memungkinkan penyerang untuk memberikan file input yang dibuat dengan hati-hati yang dapat memanipulasi program untuk menjalankan kode pilihan penyerang. File input ini dapat disematkan dalam spreadsheet Microsoft Excel sehingga flash player secara otomatis dipanggil ketika spreadsheet dibuka.

Dalam serangan yang sebenarnya, hacker mengirim spreadsheet tersebut kepada seorang eksekutif di perusahaan. Email yang disamar sebagai berasal dari seorang kolega sehingga eksekutif tertipu dalam membuka file itu. Email palsu semacam ini disebut tombak serangan phishing, dan itu cukup umum. Satu spreadsheet dibuka penyerang mampu menginstal malware secara diam-diam di mesin eksekutif, dan dari sana, lakukan serangan.

Contoh ini menyoroti info penting perbedaan antara melihat perangkat lunak melalui lensa kebenaran dan melalui lensa keamanan. Dari sudut pandang kebenaran, kerentanan flash hanyalah bug, dan semua perangkat lunak non sepele memiliki bug. Perusahaan mengakui pengiriman perangkat lunak mereka dengan bug yang dikenal karena akan terlalu mahal untuk memperbaiki semuanya. Sebaliknya pengembang fokus pada bug itu akan muncul dalam situasi khas. Bug yang tersisa, seperti kerentanan flash, jarang muncul dan pengguna terbiasa

berurusan dengan mereka ketika mereka melakukannya. Jika melakukan sesuatu yang menyebabkan perangkat lunak mereka crash, pengguna dengan cepat belajar, sesuatu itu bukan sesuatu untuk dilakukan dan mereka mengatasinya.

Akhirnya, sebuah bug sangat membebani banyak pengguna yang akan diperbaiki perusahaan. Sekarang, di sisi lain, dari sudut pandang pandangan keamanan, tidak cukup untuk menilai pentingnya bug saja sehubungan dengan kasus penggunaan umum. Pengembang harus mempertimbangkan kasus penyalahgunaan atipikal, karena ini persis apa yang hacker akan lakukan. Sedangkan pengguna normal mungkin tersandung bug dan menyebabkan perangkat lunak crash, hacker akan mencoba mereproduksi crash itu, memahami mengapa itu terjadi, dan kemudian memanipulasi interaksi tersebut, ubah kecelakaan menjadi eksploitasi.

Singkatnya, untuk memastikan bahwa suatu sistem memenuhi tujuan keamanannya, kita harus berusaha menghilangkan bug dan kekurangan desain. Kita harus memikirkannya dengan cermat properti yang harus selalu dipegang tidak peduli apa pun, dan memastikan desain dan implementasi kita tidak mengandung cacat yang akan membahayakan keamanan. Kita juga harus mendesain sistem agar segala cacat yang terjadi tak terhindarkan tetap lebih sulit untuk dieksploitasi.