Serangan Keamanan yang Umum
Untuk mengerti tipe-tipe ancaman atau serangan
keamanan pada sistem, kita membutuhkan definisi dari pernyataan kebutuhan
terhadap keamanan (security requirements). Keamanan komputer dan jaringan harus
memenuhi 4 requirements :
1.
Confidentiality : Informasi yang ada pada sistem komputer hanya dapat diakses atau dibaca
oleh pihak-pihak yang berhak. Jenis akses termasuk menampilkan, mencetak, dan
bentuk lain pengungkapan informasi.
2.
Integrity : Aset-aset sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang
berwenang. Jenis – jenis modifikasi termasuk menulis, mengubah, mengubah
status, menghapus dan membuat.
3.
Availability : Aset – aset sistem komputer hanya tersedia untuk pihak-pihak yang
berwenang.
4.
Authenticity : Sistem komputer mampu untuk
memverifikasi identitas dari user.
Cara yang biasa digunakan untuk mengetes keamanan
suatu sistem adalah dengan menyewa group yang terdiri dari para pakar, yang
sering dikenal dengan sebutan tiger teams
atau penetration teams, untuk mencoba
menyusup masuk ke dalam sistem kita. Tim
penetrasi ini telah menemukan beberapa area dengan keamanan yang lemah dari
sistem. Jenis – jenis serangan yang dilakukan diantaranya :
1.
Meminta memory pages, disk space, atau tape ,
dan kemudian membacanya. Banyak sistem yang tidak menghapus memory pages, disk space dan tape
sebelum mengalokasikan mereka dan didalamnya terdapat informasi dari pemilik
sebelumnya.
2.
Mencoba
system call yang ilegal, atau system call yang legal dengan parameter yang
ilegal, atau system call yang legal dengan parameter yang legal namun
memasukkan parameter yang tidak masuk akal, seperti nama file yang berisi
ribuan karakter. Pada banyak sistem, cara seperti ini akan membingungkan.
3.
Mulai masuk (log in) dan menekan tombol DEL, RUBOUT,
atau BREAK ditengah-tengah proses login. Pada sebagian sistem, program untuk
mengecek password akan selesai dan proses login akan dianggap selesai.
4.
Mencoba
memodifikasi struktur sistem operasi yang kompleks yang disimpan di user space.
5.
Lihat manual
yang berkata “jangan lakukan X”. Kemudian, lakukan ‘X’ dan sebanyak mungkin
variasinya .
6.
Yakinkan system programmer untuk menambahkan
pintu jebakan (trap door) sebagai jebakan setiap ada user yang melewatkan
pemeriksaan keamanan yang vital.
7.
Jika
serangan-serangan lain gagal, tim dapat menemui administrator sistem dan
berpura-pura sebagai user yang lupa password
dan membutuhkannya cepat.
Skema Keamanan Sistem Komputer
Skema keamanan sistem komputer berikut adalah hal-hal yang perlu
diperhatikan dalam mengamankan suatu sistem komputer, yakni :
·
File Security
(Keamanan File)
·
Proteksi Data
·
Autentikasi
User
Ancaman terhadap keamanan dan aset sistem komputer
|
Aset Komputer
|
Availability
|
Secrecy
|
Integrity / Authenticity
|
|
Hardware
|
Komponen dicuri atau dibuat tidak
berfungsi sehingga menghilangkan servis (denying
service).
|
|
|
|
Software
|
Program dihapus, mengakibatkan
kehilangan akses ke user.
|
Copy program yang belum
diautorisasi.
|
Program yang berjalan di modifikasi
sehingga mengakibatkan kegagalan pada saat eksekusi atau mengakibatkan
program melakukan sesuatu yang tidak diinginkan.
|
|
Data
|
File dihapus, sehingga user tidak
dapat mengakses file tersebut.
|
Aksi membaca file yang belum
terautorisasi. Dan, Analisis data statistik yang membuka data-data
tersembunyi.
|
File yang sudah ada dimodifikasi
atau file baru dibuat.
|
|
Jalur komunikasi
|
Pesan dirusak atau dihapus. Jalur
komunikasi dirusak sehingga tidak dapat digunakan
|
Pesan dibaca tanpa izin. Traffic
dari jaringan diamati
|
Pesan dimodifikasi, tertunda
atau diduplikasi.
|
Celah keamanan yang Populer
Definisi security flaws
System
security flaws – lubang sekuritas
sistem merupakan kondisi apapun yang dapat mengakibatkan penolakan layanan,
pembukaan informasi yang tidak diinginkan, perusakan data tanpa persetujuan,
maupun modifikasi data. Medapatkan jawaban ini, seringkali ditanyakan kembali
oleh banyak orang, “kalau begitu, apakah security flaw itu adalah bug?”. Jawaban dari pertanyaan ini
adalah ya, security flaw memang merupakan hal yang baisa disebut
dengan istilah bug. Secara umum,
security flaw adalah bagian dari suatu program yang dapat menyebabkan
pelanggaran pada requirements keamanan sistem itu sendiri. Oleh sebab itu,
untuk menemukan security flaw dibutuhkan pengetahuan yang luas dalam hal
requirements keamanan – security
requirements. Requirements ini tentunya bervariasi untuk sistem dan
aplikasi yang berbeda.
Menurut IEEE Standard Glossary of Software
Engineering Terminology, berikut merupakan beberapa definisi dari istilah
‘flaw’:
·
Error : aksi manusia yang memberikan hasil yang
tidak benar (seperti software yang mengandung kesalahan).
·
Fault : kesalahan langkah, proses, ataupun
definisi data pada program komputer.
·
Failure : ketidakmampuan sistem atau komponen untuk
menjalankan fungsinya
Dari glossary ini, bug atau security failure
termasuk sebagai sinonim dari error
dan fault. Dalam hal ini, flaw
memiliki definisi dengan fault, dengan kemungkinan bahwa fault bisa didapatkan
secara insidental ataupun dengan sengaja.
Mengapa dilakukan pencarian security flaws
Pekerjaan awal pada bidang keamanan komputer
berdasar pada pola “penetrate and patch” – melubangi dan menutup; para analis
mencari-cari security flaws dari sistem dan berusaha untuk menghilangkannya.
Namun sayangnya, flaws ini seperti tidak pernah berakhir, selalu muncul yang
baru. Terkadang perbaikan dari security flaws menyebabkan terbentuknya flaws
yang baru, namun tidak dapat diperbaiki karena sistem operasi tersebut masih
bergantung kepada perbaikan tadi.
Pengalaman ini membawa para researcher untuk
mencari cara pembangunan sistem yang berorientasi pada keamanan dari awal, dibandingkan mencoba untuk memperbaiki sistem
ter-install yang berlubang.
Kategori flaws
US Naval Research Laboratory telah melakukan riset mengenai sekuritas
komputer sejak tahun 1993. Berikut merupakan klasifikasi security flaws dair
hasil riset tersebut.
Bagan 1Flaw dari segi Bagaimana flaw ditemukan
Bagan 2Flaw dari segi Waktu flaw ditemukan
Bagan 3 Flaw dari segi Lokasi flaw ditemukan
Flaw pada sistem operasi yang ada sekarang
Setiap perancang sistem operasi pasti telah
melakukan yang pekerjaan yang maksimal untuk menghasilkan sistem operasi yang
terbaik yang pernah ada. Namun pada sistem operasi-sistem operasi yang ada
sekarang, masih dapat ditemukan lubang di
segi keamanan yang bahkan datng dari fitur sistem itu sendiri. Berikut
merupakan beberapa contoh kekurangan sekuritas yang terkenal oleh komunitas
pengguna dan pengembang di beberapa sistem operasi yang ada sekarang.
UNIX
·
Utilitas lpr pada UNIX
Perintah lpr yang dimiliki oleh UNIX adalah
perintah yang berfungsi untuk mencetak file ke line printer, dengan opsi untuk menghapus file tersebut dari
direktori setelah file tersebut dicetak. Hal
ini memungkinkan pengguna untuk menghapus file apapun, termasuk file yang
berisikan password yang disimpan oleh pengguna lain.
·
Core file linking
Pengguna yang telah
mengenal sistem UNIX dengan baik akan mampu untuk memecahkan keamanan UNIX
dengan cara menghubungkan file yang dinamakan dengan nama core, yang disimpan di direktori kerja dengan suatu file yang
berisikan password. Lalu pengguna ini akan memaksa melakukan core damp pada suatu program yang
memerlukan user ID dan password (program SETUID). Maka program tersebut akan
menulis file core yang tadi, yang
sekarang berada di atas file password. Dengan cara ini, pengguna tadi bisa mengganti file password dengan file yang berisikan
string apapun yang dibuat olehnya (argumen perintah, dll)
·
Perintah mkdir
Perintah mkdir yang merupakan sebuah program
SETUID yang dimiliki oleh root. Pada operasinya, mkdir akan membentuk i-node untuk direktori tertentu (yang
diikutsertakan saat penulisan perintah) dengan system call mknod, dan kemudian mengganti owner dari direktori tadi dari root
menjadi UID seorang pengguna. Saat sistem itu lambat, seorang pengguna akan
mampu untuk dengan cepat menghapus
i-node direktori tadi dan membuat link dengan file password atas nama direktori
tadi – setelah perintah mknod, tetapi
sebelum penggantian owner dilakukan (perintah chown). Saat mkdir
melakukan chown, pengguna tadi telah menjadi owner dari file password tersebut.
Dengan beberapa perintah di script shell, hal ini dapat dicoba berulang-ulang
hingga berhasil dilakukan.
OS/360
Pada OS/360, salah satu lubang sekuritas yang
terkenal dari sistem operasi ini ditemukan dari fiturnya yang mampu melakukan
pembacaan tape sambil terus melanjutkan komputasi. Hal ini memungkinan pengguna
yang cerdik untuk melakukan start up pembacaan tape, lalu melakukan system call
yang membutuhkan struktur data user; contohnya adalah file untuk dibaca beserta
passwordnya.
Sistem operasi pertama-tama akan mem-verifikasi
apakah password tadi merupakan password yang tepat untuk file yang dimaksud.
Lalu sistem operasi akan kembali membaca nama file lagi untuk mengakses (akses
data sungguhan). Sayangnya, tepat sebelum sistem mengambil nama file untuk
kedua kalinya, nama file tadi sudah tergantikan dengan tape drive
(ter-overwrite oleh pembacaan tape drive ke user space). Maka nama file yang
akan dibaca oleh sistem adalah nama file yang baru, yang dengan catatan file
tersebut tidak memerlukan password. Hal
ini mengakibatkan file yang diproteksi oleh password jadi dapat diakses tanpa
otorisasi user.
Celah keamanan populer di TENEX
Sistem operasi
TENEX dahulu populer digunakan pada DEC-10 Computer. Saat ini TENEX tidak lagi
digunakan, namun celah keamanannya telah menjadi salah satu sejarah dalam dunia
keamanan komputer.
TENEX mendukung metode paging. Untuk memungkinkan pengguna untuk memantau perilaku program mereka,
dimungkinkan untuk menginstruksikan sistem untuk memanggil pengguna fungsi pada
setiap page fault. TENEX juga menggunakan password untuk
memproteksi files, sehingga untuk
mengakses file tersebut program harus
memiliki kata kunci yang sesuai. Cara kerja sistem operasi dalam mengecek
password adalah sebagai berikut :
- Mengiterasi karakter per karakter rangkaian password dimulai dari karakter pertama
- Apabila karakter sesuai dengan karakter pada password sebenarnya, maka sistem operasi akan melanjutkan pengecekan ke karakter berikutnya.
- Apabila karakter tidak sesuai dengan karakter pada password sebenarnya, maka sistem operasi akan memberikan peringatan bahwa password salah.
Karakteristik TENEX inilah yang
memberi celah kepada para intruder untuk memasuki celah keamanannya. Mereka
mensiasatinya dengan mengatur posisi password
secara hati-hati seperti pada gambar di bawah ini :
Para intruder menempatkan
karakter pertama di akhir page yang
ada pada memori dan sisanya di page selanjutnya
(kita sebut page 2) yang ada di luar
memori dengan cara mereferensi ke banyak page
lainnya sehingga page 2 terpaksa
harus berada di luar memori. Selanjutnya kembali ke cara kerja pengecekan password tadi, dimana ketika ditemukan
ada password yang tidak sesuai, maka
program akan mengeluarkan peringatan ILLEGAL PASSWORD. Pada contoh (a) terlihat
bahwa intruder mencoba memasukkan karakter ‘A’, namun karena tidak sesuai
dengan password sebenarnya, ia
menggantinya dengan ‘B ‘seperti pada contoh (b). Hal ini terus berulang hingga
ditemukan karakter yang pas. Ketika karakter yang sesuai ditemukan, pengecekan
akan dilanjutkan ke karakter berikutnya seperti pada contoh (c). Pada kasus ini
karakter pertama password sebenarnya adalah ‘F’, kemudian intruder melakukan
hal yang sama untuk karakter selanjutnya. Dari cara pengecekan ini maka
terdapat 128n kemungkinan,
sesuai dengan jumlah karakter ASCII.
Prinsip Desain untuk Keamanan
1. Desain sistem sebaiknya
diketahui oleh publik (Open Design)
Suatu desain sistem yang dibuat rahasia atau tertutup belum tentu menjamin keamanan dari sistem.
2. Default awal dari sistem
adalah no access
Hal ini memudahkan untuk mengetahui jika terjadi error yang disebabkan oleh penolakan
terhadap orang yang tidak berhak mengakses.
3. Selalu periksa current authority
Karena default awal adalah no
access, maka untuk melakukan akses terhadap sistem, file atau data harus
selalu dilakukan pemeriksaan otoritas, apakah orang yang sedang atau akan
mengakses sistem adalah orang yang memang mempunyai hak.
4. Setiap proses harus
diberikan privilege sesedikit mungkin
Suatu proses yang sedang berjalan hanya diberikan akses secukupnya
yang akan digunakan untuk menyelesaikan tugasnya. Setelah suatu akses terhadap file atau data telah selesai, hak akses
tersebut harus segera dihilangkan. Hal ini dilakukan agar tidak banyak terjadi
banyak kerusakan bila muncul “serangan” terhadap komputer kita.
5. Mekanisme proteksi
haruslah sederhana, seragam, dan dibangun di dalam layer terbawah dari sistem
6. Harus bisa diterima secara
psikologi
Mekanisme untuk menjaga keamanan dari suatu sistem jangan dibuat
semakin rumit, terutama dari sisi user.
Sebisa mungkin kerumitan dalam mekanisme tersebut disembunyikan dan yang
ditampilkan kepada user hanya hal-hal
yang diperlukan saat instalasi,
konfigurasi dan penggunaan dari suatu sistem.
Hal tambahan yang harus diperhatikan:
Keep the design
simple
Dari segi keamanan, semakin sederhana desain sistem yang
dibuat makan semakin besar kemungkinannya untuk memiliki tingkat keamanan yang
tinggi.




Tidak ada komentar:
Posting Komentar