Jenis Dan Kelemahan Website
Dalam pemrograman PHP dan MySQL, terkadang anda sering mengabaikan
Keamanan yang harus diwaspadai terhadap orang-orang iseng yang mencoba
mengutak-atik situs dan Database anda. Padahal dalam pemrograman PHP
terdapat tingkat sekuritas dalam mengamankan data yang sangat baik
sekali, sehingga menjadi faktor PHP dan MySQL selalu diminati oleh
programer WEB. Berikut ini adalah kelemahan-kelemahan dalam keamanan WEB
dan cara-cara mengantisipasinya.
Jenis dan Penyebab Kelemahan Website.
Deface.
Seringkali anda mendengar atau bahkan melihat sebuah situs yang
mempunyai isi tidak sesuai. Contoh konkretnya ialah situs sebuah lembaga
pendidikan (ac.id) dengan halaman indeks dari website resmi yang diubah
gambar atau logonya menjadi tidak sesuai. Kejadian tersebut, dalam
dunia hacking, dinamakan deface. Deface ialah suatu teknik penyerangan
dengan mengubah gambar atau website untuk maksud tertentu. Sebenarnya,
ada banyak faktor yang menyebabkan terjadinya semua itu.
Menurut analisa penulis, faktor-faktor tersebut adalah :
1.1 Sistem Operasi.
Jika anda berniat membeli domain dan hosting, pastikan bahwa sistem
operasi yang digunakan benar-benar reliabel, misalnya seperti sistem
operasi varian Unix. Perlu diketahui bahwa hampir seluruh hosting center
yang ada menggunakan Linux Redhat.
1.2 Kesalahan Pemrograman.
Hal ini paling sering terjadi. Kewaspadaan yang rendah menjadikan
website mudah terkena deface. Misalnya, kesalahan dalam penggunaan
management user di MySQL, yaitu menampilkan data tetapi menggunakan User
yang mampu melakukan perintah SQL delete, insert atau bahkan drop.
Inilah kesalahan umum yang terkesan sebagai sebuah kebiasaan yang tidak
bisa ditinggalkan. Jika anda menyusun sebuah program berbasis web yang
menggunakan database MySQL maka anda harus mempunyai user di MySQL lebih
dari satu. Artinya, anda harus membuat user yang mampu melakukan
perintah select saja jika web anda hanya sebatas menampilkan database
MySQL kedalam web. Atau juga, jika membutuhkan halaman administrasi
untuk menambah data atau menghapus, anda bisa membuat user baru yang
hanya mampu melakukan perintah insert atau delete. Teknik deface
dilakukan dengan tindakan yang disebut SQL Injection.
Pencurian Password.
Hal lain yang harus diperhatikan adalah ketika membuat halaman web
yang mempunyai sistem autentikasi user. Anda harus membuat program
seaman mungkin dengan menyertakan enkripsi. Tanpa enkripsi password atau
data maka dengan mudah orang dapat menyadap (sniff) data Anda. Jadi,
penggunaan enkripsi juga sangat diperlukan.
Kekeliruan dalam Pembuatan Direktori.
Terkadang, dalam pembuatan website, kita membuat direktori dengan
susunan yang mudah diketahui orang. Misalnya, hampir semua website
memiliki folder bernama images, including atau folder lain yang sejenis.
Ini tentunya harus diantisipasi sehingga jika user mencoba mengakses
dengan cara menebak, kita sudah memiliki tindakan preventil.
Kesalahan dalam File Include.
Dalam PHP versi lama untuk menyisipkan sebuah file kedalam file PHP adalah dengan cara memberi perintah.
Include ("db.inc");
Sebenarnya jika file *.inc dipanggil langsung dari browser maka isi
dari file tersebut akan ditampilkan. Artinya, seseorang dapat melihat
isi file anda yang asli. Jika yang anda sisipkan hanya file berisi baris
perintah biasa maka tidak menjadi masalah. Namun, jika yang anda
sisipkan berisi file konfigurasi database maka hal ini bisa kacau.
Berikut ini contoh penggunaan file include yang salah dalam sebuah situs
:
Choose a category
Warning : Host ‘server6.shoptoday.us' is blocked because of many
connection errors. Unblock with ‘mysqladmin flush-hosts' in
/home/shop/shoptoday.us/htdocs/includes/db.inc on line 2
Warning : MySQL Connection Failed : Host ‘server6.shoptoday.us' is
blocked because of many connection errors. Unblock with ‘mysqladmin
flush-hosts' in /home/shop/shoptoday.us/htdocs/includes/db.inc on line 2
Warning : Host ‘server6.shoptoday.us' is blocked because of many
connection errors. Unblock with ‘mysqladmin flush-hosts' in
/home/shop/shoptoday.us/htdocs/includes/db.inc on line 4
Warning : MySQL Connection Failed : Host ‘server6.shoptoday.us' is
blocked because of many connection errors. Unblock with ‘mysqladmin
flush-hosts' in /home/shop/shoptoday.us/htdocs/includes/db.inc on line 4
Pesan error tersebut muncul didalam browser bila User mencoba
menyisipkan file konfigurasi Database. Secara umum, error seperti diatas
disebabkan MySQL server dalam status mati sehingga setiap koneksi yang
masuk akan menampilkan error seperti pesan diatas. Dari pesan tersebut,
terdapat 2 titik kelemahan yang menjadi masalah serius dan terkadang
tidak dapat diantisipasi.
1. Hampir semua website yang menggunakan bahasa pemrograman PHP atau
ASP mempunyai folder bernama includes atau include. Perhatikan pesan
diatas, penulis mengambil contoh satu pesan error.
Warning : Host ‘server6.shoptoday.us' is blocked because of many
connection errors. Unblock with ‘mysqladmin flush-hosts' in
/home/shop/shoptoday.us/htdocs/includes/db.inc on line 2
Dari penggalan error diatas, kita sudah mendapatkan hostname dari MySQL server yaitu server6.shoptoday.us.
2. Keberadaan file *.inc akan mempermudah browser dalam menampilkan
source code file tersebut. Dalam contoh diatas, terdapat db.inc pada
folder includer. Jika penulis ketikan di browser URL
http://shoptoday.us/includes/db.inc, maka setelah tampil lihat source
code dengan cara klik kanan -> view source.
Perhatikan masing-masing file. Pada contoh kejadian shoptoday.us
tedapat banyak kesalahan fatal. Kesalahan terjadi karena semua
konfigurasi penting dimasukan kedalam file *.inc. Untuk mengantisipasi
agar kejadian tersebut tidak terjadi pada website anda, pada setiap file
yang akan disisipkan, silahkan menggunakan folder includes. Tetapi,
untuk kasus diatas menjadi db.inc. PHP terkadang, nama file dengan kata
inc sengaja diberikan agar webmaster atau orang lain yang ingin
mengembangkan website dapat mengetahui secara mudah file yang
penggunaannya adalah untuk disisipkan pada file lain.
Lalu pengertian dari Enkripsi dan Dekripsi adalah :
1. Pengertian
Enkripsi adalah suatu metode yang digunakan untuk mengkodekan data
sedemikian rupa sehingga keamanan informasinya terjaga dan tidak dapat
dibaca tanpa di dekripsi (kebalikan dari proses enkripsi) dahulu.
Encryption berasal dari bahasa yunani kryptos yang artinya tersembunyi
atau rahasia.
2. Metode yang digunakan.
Umumnya proses enkripsi dilakukan dengan sebuah rumus dan kunci untuk
mendekripsi data. Dalam hal ini, ada beberapa cara melakukan pengamanan
data melalui saluran,salah satu diantaranya adalah kriptografi. Ketika
suatu pesan ditransfer dari suatu tempat ke tempat lain, isi pesan
tersebut kemungkinan dapat disadap oleh pihak lain. Dalam kriptografi,
untuk menjaga keamanan pesan, data/ pesan yang dikirimkan melalui
jaringan akan disamarkan (di-cramble/diacak/ diubah menjadi kode yang
tidak dimengerti oleh orang lain) sedemikian rupa sehingga walaupun data
tersebut dapat dibaca, tetapi tetap tidak akan bisa dimengerti oleh
pihak yang tidak berhak
Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plain
teks. Pesan yang sudah diacak disebut cipher teks. Proses untuk
mengkonversi plain teks menjadi cipher teks disebut enkripsi. Proses
untuk mengembalikan plain teks dari cipher teks disebut deskripsi.
Algoritma kriptografi (ciphers) adalah fungsi- fungsi matematika yang
digunakan untuk melakukan enkripsi dan deskripsi. Diperlukan kunci yaitu
kode untuk melakukan enkripsi dan deskripsi.
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
EK (M) = C (Proses Enkripsi)
DK (C) = M (Proses Dekripsi)
Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci
K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C
tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M
yang sama seperti pesan sebelumnya.
Ada dua cara yang paling dasar pada kriptografi klasik.
1. Transposisi.
Transposisi adalah mengubah susunan huruf pada plaintext sehingga
urutannya berubah. Contoh yang paling sederhana adalah mengubah suatu
kalimat dengan menuliskan setiap kata secara terbalik.
Plaintext: IBU AKAN DATANG BESOK PAGI
Ciphertext: UBI NAKA GNATAD KOSEB IGAP
Contoh transposisi yang sedikit lebih sulit adalah plaintext yang
disusun dalam kelompok huruf yang terdiri dari beberapa kolom huruf,
misalnya 5 kolom huruf :
IBUAK
ANDAT
ANGBE
SOKPA
GIAAA
ANDAT
ANGBE
SOKPA
GIAAA
Plaintext disusun dalam 5 kolom huruf kemudian dituliskan per kolom, dengan urutan kolom yang bisa berubah-ubah
IAASGBNNOIUDGKAAABPAKTEAA
Kolom huruf dituliskan berurutan dari kolom 1,2,3,4,5
2. Substitusi
Cara kedua adalah cara substitusi yaitu setiap huruf pada laintext
akan digantikan dengan huruf lain berdasarkan suatu cara atau rumus
tertentu. Ada dua macam substitusi yaitu polyalphabetic substitution
cipher dan monoalphabetic substitution cipher. Pada polyalphabetic
substitution cipher, enkripsi terhadap satu huruf yang sama bisa
menghasilkan huruf yang berbeda sehingga lebih sulit untuk menemukan
pola enkripsinya.Pada monoalphabetic substitution cipher maka satu huruf
tertentu pasti akan berubah menjadi huruf tertentu yang lain, sehingga
pola enkripsinya lebih mudah diketahui, karena satu huruf pada
ciphertext pasti merepresentasikan satu huruf pada plaintext.
Salah satu contoh cara substitusi adalah dengan dengan pergeseran
huruf.Kita lihat pada gambar 4, urutan abjad ABCD.......Z bisa digeser
sebanyak 1 huruf sehingga huruf A akan menjadi B, B akan menjadi C dan
seterusnya. Pergeserannya bisa dibuat lebih banyak yaitu 2 huruf
sehingga huruf A akan menjadi C, B akan menjadi D dan seterusnya.
Pergeseran bisa lebih banyak lagi tergantung bagaimana kita
merumuskannya. Cara pergeseran ini termasuk monoalphabetic substitution
cipher di mana satu huruf pasti akan berubah menjadi huruf tertentu yang
lain. Karena relasi antara huruf plaintext dan huruf ciphertext
satu-satu, yang artinya suatu huruf plaintext pasti menjadi suatu huruf
ciphertext tertentu, maka cara monoalphabetic substitution ciphersangat
mudah dipecahkan.
Urutan Abjad : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Pergeseran 1 huruf : BCDEFGHIJKLMNOPQRSTUVWXYZA
Pergeseran 2 huruf : CDEFGHIJKLMNOPQRSTUVWXYZAB
Pergeseran 1 huruf : BCDEFGHIJKLMNOPQRSTUVWXYZA
Pergeseran 2 huruf : CDEFGHIJKLMNOPQRSTUVWXYZAB
KRIPTOGRAFI CAESAR
Salah satu kriptografi yang paling tua dan paling sederhana adalah
kriptogtafi Caesar. Menurut sejarah, ini adalah cara Julius Caesar
mengirimkan surat cinta kepada kekasihnya Cleopatra dan pada
panglimanya. Sandi ini termasuk dalam sandi substitusi di mana setiap
huruf pada text terang atau palintext di gantikan oleh huruf lainnya
yang memiliki selisih posisi tertentu dalam alfabet. Dalam kriptografi
Caesar, maka setiap huruf akan dituliskan dalam huruf lain hasil
pergeseran 3 buah huruf. Kriptografi Caesar ini adalah kriptografi
substitusi karena setiap huruf akan digantikan huruf lain. Sebagai
contoh, huruf A akan digeser 3 huruf menjadi huruf D, B akan digeser 3
huruf menjadi E, J akan digeser menjadi M, O akan menjadi R dan
seterusnya. Pergeseran ini juga berputar kembali ke awal abjad sehingga
sesudah huruf Z diikuti kembali oleh huruf A. Kriptografi Caesar ini
dikenal sebagai monoalphabetic substitution cipher karena satu huruf
tertentu pasti akan berubah menjadi huruf tertentu yang lain.
Cara enkripsi yang paling sederhana adalah dengan mengganti suatu
alpabet dengan karakter lain. Perubahan pada kriptografi Caesar bisa
dituliskan sebagai berikut:
Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ciphertext : DEFGHIJKLMNOPQRSTUVWXYZABC
Ciphertext : DEFGHIJKLMNOPQRSTUVWXYZABC
Plaintext :KITA JUMPA BESOK PAGI
Ciphertext :NLWD MXPSD EHVRN SDJL
Ciphertext :NLWD MXPSD EHVRN SDJL
Plaintext : universitas duta wacana
Kunci : a = b, b = c, c = d, dst
Chipertext : vojwfstjubt evub xbdbob.
Kunci : a = b, b = c, c = d, dst
Chipertext : vojwfstjubt evub xbdbob.
Jika Caesar akan menuliskan kalimat ‘I LOVE YOU' maka akan dituliskan dalam kalimat ‘L ORYH BRX.
Dan contoh lainnya lagi dengan menggunakan geseran 3, maka W akan
menjadi Z, I akan menjadi L, dan K akan menjadi N, sehingga apabila text
aslinya adalah "WIKI" maka akan menjadi "ZLNL" pada text tersandi. Cara
kerja sandi caesar dapat dilihat dengan membariskan dua set alfabet,
alfabet tersebut di susun dengan cara menggeser alfabet biasa ke kanan
atau ke kiri dengan angka tertentu (angka-angka ini di sebut kunci).
Misalnya sandi caesar dengan kunci 3, adalah sebagai berikut :
Biasa : 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
Sandi : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Biasa : 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
Sandi : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Untuk menyandikan sebuah pesan, hanya cukup mencari setiap huruf yang
ingin di sandikan di alfabet biasa, lalu tuliskan huruf yang sesuai
pada alfabet sandi.Contoh penyandian sebuah pesan adalah sebagai berikut
:
Teks terang : Keamanan Jaringan Teks tersandi : NHDPDQDQ MDULQJD
Teks terang : Keamanan Jaringan Teks tersandi : NHDPDQDQ MDULQJD
Coding program untuk enkripsi dan deskripsi dengan metode caesar dan
bahasa pemrograman yang di gunakan adalah bahasa phyton 2.6 adalah
sebagai berikut :
z=['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','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',' ']
'd','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ']
print "Enkripsi"
a = raw_input("\nMasukkan kata = ")
b = ""
geser = 7
for x in range(len(a)):
temp = z.index(a[x])+geser
b=b+z[temp%53]
print " "
print "PlainText = "+a
print "ChiperText = "+b
a = raw_input("\nMasukkan kata = ")
b = ""
geser = 7
for x in range(len(a)):
temp = z.index(a[x])+geser
b=b+z[temp%53]
print " "
print "PlainText = "+a
print "ChiperText = "+b
Coding program di atas adalah procedure enkripsi, dalam z tersimpan
karakter yaitu karakter huruf besar, kecil dan spasi, lalu memesukkan
kata atau kalimat yang akan di jadikan sebagai pesan asli, pesan
tersebut akan tersimpan ke dalam plaintext, kemudian geser = 7 adalah
kunci untuk pergeseran huruf yang akan di lakukan dan akan di simpan
dalam variabel kunci, setelah itu akan akan di lakukan pengulangan, pada
pengulangan ini lah akan di lakukan pergeseran huruf, dan hasil
pergeseran tersebut akan di tampilkan oleh perintah print "ChiperText =
"+b
Dan untuk coding program deskripsi adalah sebagai berikut :
Dan untuk coding program deskripsi adalah sebagai berikut :
z=['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','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',' ']
print "\nDeskripsi"
a = raw_input("\nMasukkan kata = ")
b = ""
geser = 7
for x in range(len(a)):
temp = z.index(a[x])-geser
b=b+z[temp%53]
print " "
print "ChiperText = "+a
print "PlainText = "+b
'd','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ']
print "\nDeskripsi"
a = raw_input("\nMasukkan kata = ")
b = ""
geser = 7
for x in range(len(a)):
temp = z.index(a[x])-geser
b=b+z[temp%53]
print " "
print "ChiperText = "+a
print "PlainText = "+b
Coding program di atas adalah procedure deskripsi, penjelasan untuk
procedure deskripsi ini hampir sama dengan procedure enkripsi, yang
membedakannya hanya lah pada pengulangan yang di lakukan pada program
tersebut, pada baris perintah temp = z.index(a[x])-geser.
3. Manfaat dan kerugian
Beberapa manfaat yang bisa didapatkan dari enkripsi ini adalah:
a. Kerahasiaan suatu informasi terjamin
b. Menyediakan authentication dan perlindungan integritas pada algoritma checksum/hash
c. Menanggulangi penyadapan telepon dan email
d. Untuk digital signature.
b. Menyediakan authentication dan perlindungan integritas pada algoritma checksum/hash
c. Menanggulangi penyadapan telepon dan email
d. Untuk digital signature.
Digital signature adalah menambahkan suatu baris statemen pada suatu
elektronik copy dan mengenkripsi statemen tersebut dengan kunci yang
kita miliki dan hanya pihak yang memiliki kunci dekripsinya saja yang
bisa membukanya.
e. Untuk digital cash
Penyalahgunaan dan kerugian dari enkripsi adalah:
Penyalahgunaan dan kerugian dari enkripsi adalah:
a. Penyandian rencana teroris
b. Penyembunyian record criminal oleh seorang penjahat
c. Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci (decryptor).
b. Penyembunyian record criminal oleh seorang penjahat
c. Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci (decryptor).
4. Kesimpulan
Sama seperti teknologi canggih lainnya, enkripsi dapat digunakan
untuk mengamankan data bagi perusahaan, militer, pemerintahan, individu
untuk tujuan yang baik. Namun enkripsi juga dapat digunakan untuk
menyembunyikan informasi bagi para penjahat.
sumber: http://www.klatenweb.com/article-881-Jenis-dan-Penyebab-Kelemahan-Website.html
Label: TIK, TIPS DAN TRIK
0 Komentar:
Posting Komentar
Berlangganan Posting Komentar [Atom]
<< Beranda