Senin, 28 April 2008

Macam2 Virus

Trojan horse

Trojan horse adalah program yang kelihatan seperti program yang valid atau normal, tetapi sebenarnya program tersebut membawa suatu kode dengan fungsi-fungsi yang sangat berbahaya bagi komputer Anda.

Sebagai contoh, virus DLoader-L datang dari attachment e-mail dan dianggap sebagai sebagai suatu update program dari Microsoft untuk sistem operasi Windows XP. Jika Anda menjalankannya maka dia akan mendownload program dan akan memanfaatkan komputer Anda untuk menghubungkan komputer Anda ke suatu website tertentu. Targetnya tentu saja untuk membuat website tadi menjadi overload dan akhirnya tidak bisa diakses dengan benar oleh pihak lain. Ini sering dinamakan dengan serangan denial of service atau DoS.

Trojan tidak dapat menyebar secepat virus karena trojan tidak membuat copy dari dirinya sendiri secara otomatis. Tapi sejalan dengan perkembangan virus, maka trojan horse bisa bekerjasama dengan virus dalam hal penyebarannya. Virus dapat melakukan download terhadap trojan yang merekam keystroke keyboard Anda atau mencuri informasi yang ada pada komputer Anda. Di sisi lain, trojan juga digunakan untuk menginfeksi suatu komputer dengan virus.

Worms

Worm bisa dikatakan mirip dengan virus tetapi worm tidak memerlukan carrier dalam hal ini program atau suatu dokumen. Worm mampu membuat copy dari dirinya sendiri dan mengunakan jaringan komunikasi antar komputer untuk menyebarkan dirinya. Banyak virus seperti MyDoom atau Bagle bekerja sebagaimana layaknya worm dan menggunakan e-mail untuk mem-forward dirinya sendiri kepada pihak lain.

Virus e-mail

Kebanyakan virus e-mail ini sangat tergantung dari user yang mengklik dokumen atau program yang ada pada attachment e-mail. Ini akan menimbulkan virus untuk mem-forward dokumen yang terinfeksi tadi kepada alamat e-mail yang lainnya. Virus Netsky sebagai contoh, mampu mencari file-file dalam komputer Anda yang berisi alamat e-mail (misalnya HTML file atau file dalam format EML), dan akan menggunakan program e-mail yang ada pada komputer Anda untuk mengirimkan dokumen yang terinfeksi ke alamat-alamat e-mail yang sudah didapat tadi. Beberapa virus lainnya seperti Sobig-F bahkan sudah tidak memerlukan program e-mail pada komputer Anda untuk mengirimkan e-mail, tetapi mereka memiliki SMTP engine sendiri untuk mengirimkan e-mail. E-mail virus ini bisa menguasai komputer Anda atau bahkan mencuri data. Tetapi target utama dari jenis virus e-mail ini biasanya akan menimbulkan trafik e-mail yang sangat besar dan membuat server menjadi crash.

Sekali lagi hati-hatilah terhadap attachment pada e-mail Anda. Bahkan attachment dengan ekstensi .txt juga dapat berbahaya karena seringkali dibelakangnya masih ada ekstensi lagi misalnya .vbs yang dapat berisi script dari virus.

Senin, 14 April 2008

ARP Spoofing n sniffing

Address Resolution Protocol (ARP) adalah protokol untuk mapping dari alamat IP (Internet Protocol) ke alamat fisik MAC (Media Access Control). Misal di suatu jaringan kita ingin mengirim paket ke host A 192.168.1.2, maka pertama kita harus tau sapa yg mempunyai alamat IP tsb. Maka ARP akan membroadcast pertanyaan tsb ke semua host yang ada di jaringan. Sang empunya alamat IP tsb akan menjawab kembali sahutan tsb dengan mengirimkan alamat MACnya. Alamat MAC ini akan disimpan di tabel ARP untuk memudahkan pencarian jika diperlukan pengiriman paket ke tujuan yang sama.

Kayak gimana sih bentuk format frame ARP? Terdiri dari 2 bagian, yaitu header ethernet dan paket ARP. Header ethernet berupa :
- 6 byte alamat tujuan
- 6 byte alamat pengirim
- 2 byte jenis frame ARP

Sedangkan paket ARPna berupa :
- 2 byte jenis alamat hardware (1 = ethernet)
- 2 byte jenis protokol yang di map (0800H = alamat IP)
- 1 byte ukuran alamat hardware
- 1 byte ukuran protokol
- 2 byte tipe operasi (1 = ARP request, 2=ARP reply, 3=*RARP request
,4=RARP reply)
- 6 byte alamat ethernet pengirim
- 4 byte alamat IP pengirim
- 6 byte alamat ethernet penerima
- 4 byte alamat IP penerima

*RARP (Reverse Address Resolution Protocol) digunakan untuk sistem komputer diskless, guna mendapatkan alamat IP mereka saat boot.

ARP Spoofing merupakan suatu kegiatan yang memanipulasi paket ARP. Misal paket X dari komputer A ditujukan untuk komputer B, ketika komputer A membroadcast paket ARP di jaringan, maka komputer C sang manipulator dapat "meracuni" (Posioning) paket ARP tsb agar paket X ditujukan ke komputer C terlebih dahulu baru diforward ke komputer B. Poisoning ini mengganti alamat MAC komputer B dengan alamat MAC komputer C di tabel ARP komputer A dan sebaliknya, alamat MAC komputer A diganti menjadi alamat MAC komputer C di tabel ARP komputer B. Jenis-jenis serangan yang bisa dilakukan dnegan ARP Spoofing diantarana adalah sniffing, Man in the Middle, MAC Flooding, DoS (Denial of Service), Hijacking n Cloning.

Apa ajah sih yg diperluin buat ARP Spoofing ini? Kalo aq sih pake arpspoof yang ada di paket dsniff-2.3 untuk OS Linux. Ohiya, sebelum menginstall dsniff ini perlu dicek apakah di sistem yang digunain dah terinstall libnet ma libnids. Jangan lupa untuk jenis attacking sniffing ato MIM perlu IP Forwarding diaktifkan (echo 1 > /proc/sys/net/ipv4/ip_forward).

Seperti biasa, unpack paket dsniff lalu configure n terakhir make install. Ohiya, pas saat make, aq sempet dapet error compiling module sshcrypto :

sshcrypto.c:30: error: parse error before "des_key_schedule"
....blablabla
....blablabla
*** Error code 1

Solusina kita buka n edit file sshcrypto.c di folder dsniff-2.3, tambahin :

#include
#include

di deklarasi file header yang diperlukan. Bila dah kelar n gak da error lagi, coba jalanin si dsniff ato si arpspoof :)

Yuukk kita coba meracuni n ngendus paket antara komputer A 192.168.1.1 n komputer B 192.168.1.3, komputer C (attacker) 192.168.1.6.

jalanin si arpspoof terlebih dahulu :

root@slack:~# arpspoof -t 192.168.1.1 192.168.1.3 & >/dev/null
root@slack:~# arpspoof -t 192.168.1.3 192.168.1.1 & >/dev/null

kalo dah bener nanti di console akan muncul kayak gini :

0:c:29:3e:2d:46 0:15:e9:b5:83:62 0806 42: arp reply 192.168.1.3 is-at 0:c:29:3e:2d:46
0:e0:29:63:d1:6 0:15:e9:b5:83:62 0806 42: arp reply 192.168.1.3 is-at 0:e0:29:63:d1:6

Setelah itu bisa kita endus pake dsniff ato tcpdump, misal mo pake tcpdump bisa kita capture hasilna ke file, pake :

root@slack:~# tcpdump -i eth0 -w endus.txt

dimana eth0 adalah interface card dan endus.txt adalah nama file outputna :). Kalo file tsb dibuka masi kaco isina >.<, jadi bisa kita liat pake tcpdump juga, pake :

root@slack:~# tcpdump -r endus.txt

hehehehe lumayan asik kan ARP Spoofing, gak hanya buat sniffing juga tapi bisa kita blok koneksi tertentu misal :

root@slack:~# tcpkill -9 host www.playboy.com

Untuk matiin proses si arpspoof n tcpdump bisa dengan cara :

root@slack:~# killall arpspoof
root@slack:~# killall tcpdump

Sabtu, 12 April 2008

Mengamankan aplikasi terhadap injeksi SQL

Injeksi SQL dapat dengan mudah diatasi dalam kebanyakan bahasa pemrograman yang menargetkan aplikasi web atau menawarkan fungsi. Dalam DBI di Perl, metode DBI::quote meloloskan karakter-karakter khusus (anggaplah variabel $sql menyimpan referensi ke sebuah obyek DBI):

$kueri = $sql->prepare
(
"select * from pengguna where nama = "
.
$sql->quote($nama_pengguna)
);

Namun begitu, secara umum ini bukan jalan yang terbaik dalam menghadapi masalah tersebut. DBI mengijinkan penggunaan placeholder, yang memperbolehkan Anda untuk mengikat data ke sebuah pernyataan secara terpisah dari pendefinisian pernyataan SQL tersebut. Untuk sistem basis data yang tidak secara asli mendukung placeholder, DBI menirukannya dengan menggunakan fungsi DBI::quote secara otomatis pada nilai-nilai. Banyak sistem basis data yang mendukung pengikatan nilai secara terpisah melalui API mereka; DBI akan menggunakan dukungan placeholder asli tersebut dalam hal ini. Sebagai contoh:

$kueri = $sql->prepare("select * from pengguna where nama = ?");
$kueri->execute($nama_pengguna);

Keuntungannya adalah Anda tidak perlu mengingat untuk menggunakan DBI::quote kepada setiap nilai. Nilai-nilai akan diikat secara terpisah, atau dikutip secara benar, tergantung pada dukungan yang ditawarkan oleh SMBD tertentu yang Anda gunakan. Anda kemudian terhindari dari masalah dasar injeksi SQL di mana nilai-nilai diinterpretasi sebagai SQL.

Bagi sistem basis data yang mendukung placeholder secara asli, seringkali ada keuntungan kinerja yang nyata untuk menggunakan placeholder, karena basis data dapat menyimpan cache dari sebuah perwakilan pernyataan yang terkompilasi dan menggunakannya secara berulang di antara pelaksanaan-pelaksanaan dengan nilai-nilai ikatan yang berbeda. Placeholder kadang-kadang juga disebut sebagai "variabel pengikat".

Dalam PHP, terdapat beberapa fungsi bawaan yang berbeda untuk digunakan pada SMBD-SMBD yang berbeda untuk meloloskan nilai-nilai yang cocok untuk diimbuhkan dalam pernyataan-pernyataan SQL harafiah. Untuk MySQL, yang serupa dengan ini adalah fungsi bawaan mysql_real_escape_string:

$hasil_kueri = mysql_query
(
"select * from pengguna where nama = '"
.
mysql_real_escape_string($nama_pengguna)
.
"'"
);

Antarmuka asli untuk sebuah SMBD tertentu dapat juga menawarkan sebuah metode untuk melakukan pengikatan placeholder secara terpisah, misalnya mysql_stmt_bind_param atau oci_bind_by_name. Selain itu, sebuah pustaka abstraksi basis data dapat digunakan untuk menirukan placeholder dalam cara yang mirip dengan DBI dari Perl. Sebuah contoh dari beberapa pustaka yang ada ialah ADOdb.

Dalam bahasa pemrograman Java, yang serupa adalah kelas PreparedStatement.

Daripada

Connection con = (peroleh koneksi)
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery("SELECT * FROM pengguna WHERE nama = '" + userName + "';");

gunakan yang berikut

Connection con = (peroleh koneksi)
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM pengguna WHERE nama = ?");
pstmt.setString(1, namaPengguna);
ResultSet rset = pstmt.executeQuery();

Dalam bahasa pemrograman "C#" .NET atau Mono, yang serupa adalah obyek-obyek ADO.NET SqlCommand (untuk Microsoft SQL Server) atau OracleCommand (untuk server basis data Oracle). Contoh di bawah ini memperlihatkan bagaimana mencegah serangan injeksi menggunakan obyek SqlCommand. Kode untuk penyedia ADO.NET lainnya sangat mirip, tetapi dapat sedikit berbeda tergantung pada implementasi khusus yang dibuat oleh vendor penyedia tersebut.

Daripada

using( SqlConnection con = (peroleh koneksi) ) {
con.Open();
using( SqlCommand cmd = new SqlCommand("SELECT * FROM pengguna WHERE nama = '" + namaPengguna + "'", con) ) {
using( SqlDataReader rdr = cmd.ExecuteReader() ) {
...
}
}
}

gunakan yang berikut

using( SqlConnection con = (peroleh koneksi) ) {
con.Open();
using( SqlCommand cmd = new SqlCommand("SELECT * FROM users WHERE name = @namaPengguna", con) ) {

cmd.Parameters.AddWithValue("@namaPengguna", namaPengguna);

using( SqlDataReader rdr = cmd.ExecuteReader() ) {
...
}
}
}

Sabtu, 05 April 2008

Struktur Registry

Struktur registry agak mirip dengan struktur direktori dalam sistem berkas. Selain itu, registry juga dapat diakses dengan menggunakan sintaksis yang sama dengan cara mengakses berkas, dengan menggunakan karakter garis miring terbalik (backslash) untuk menandakan tingkatan hierarkis. Susunannya adalah seperti \\. Sebagai contoh, My Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows, yang merujuk kepada sebuah subkey yang memiliki nama "Windows" yang terdapat di dalam subkey Microsoft, yang terdapat di dalam key dengan nama Software, yang terdapat di dalam subtree HKEY_LOCAL_MACHINE.

Setiap key dan subkey tersebut dapat memiliki nilai yang dapat ditentukan atau nilai default, yang disebut sebagai Value. Akan tetapi, cara mengakses value tidaklah sama dengan cara mengakses berkas dalam sistem berkas, mengingat nama value dapat mengandung karakter backslash yang dapat menjadi ambigu ketika menggunakan cara baca seperti halnya mengakses sistem berkas. Adalah fungsi-fungsi dalam Windows 32-bit Application Programming Interface/API (Win32 API) yang dapat melakukan query dan manipulasi terhadap value-value registry, yang dilakukan dengan cara mengambil nama value secara terpisah dari path key yang merupakan parent key

Register Windows

Registry, dalam platform sistem operasi Microsoft Windows 32-bit, merupakan sebuah basis data yang disusun secara hierarkis yang mengandung informasi mengenai konfigurasi sebuah sistem, mulai dari konfigurasi perangkat keras, perangkat lunak, asosiasi ekstensi berkas dengan aplikasinya hingga preferensi pengguna. Registry merupakan pengganti berkas-berkas konfigurasi *.INI yang digunakan dalam sistem Windows 16-bit (Windows 3.x dan Windows for Workgroups). Registry, pertama kali diperkenalkan di dalam sistem Windows 16-bit sebagai penampung informasi mengenai pemetaan/asosiasi ekstensi berkas dengan aplikasinya, dan kemudian dikembangkan menjadi basis data dengan cakupan yang luas pada sistem-sistem operasi keluarga Windows NT. Registry juga kemudian digunakan pada sistem operasi kelas rumahan: Windows 95, Windows 98 dan Windows ME, tapi memang implementasi yang cukup bagus dari registry terdapat di dalam keluarga sistem operasi Windows NT.

Yang Dimaksud Dengan Apache

Server HTTP Apache atau Server Web/WWW Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini mengunakan HTTP.

Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigur, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah.

Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache Software Foundation.

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes