Showing posts with label umum. Show all posts
Showing posts with label umum. Show all posts

Penyerangan DNS

Sangat menarik untuk di pelajari, itu kesan pertama penulis ketika membaca beberapa artikel tentang metode penyerangan ke nameserver dengan cara poisoning (memberikan racun) kepada nameserver yang memegang otoriti terhadap sebuah domain. Bagaimana cara memberikan racun kepada nameserver? Dan bagaimana dampaknya? Dalam artikel kali ini saya akan mencoba membahas materi ini dengan beberapa visualisasi. :)


Sebelum kita masuk dalam inti permasalahan saya akan jelaskan terlebih dahulu bagaimana proses query terjadi ketika Anda melakukan request terhadap sebuah domain. Setidaknya ada tiga nameserver yang akan di kontak ketika Anda melakukan request domain yang Anda inginkan. Ketiga nameserver itu adalah:

ISP Nameserver
Root nameserver
Authoritative nameserver

Misal dalam contoh begini, ketika Anda menggunakan program nslookup untuk mencari ip dari domain google.com maka yang akan terjadi adalah program nslookup akan mengirimkan query ke nameserver ISP untuk meminta nomor ip dari domain google.com. Selanjutnya nameserver ISP akan meminta petunjuk kepada nameserver induk (root nameserver) untuk mencari di mana lokasi nameserver yang memegang otoriti domain google.com. Ketika sudah menemukan nameserver pemegang otoriti domain tersebut, kemudian root nameserver akan membalas query nameserver ISP dengan mengirimkan nama nameserver pemegang otoriti domain. Di sini nameserver ISP akan mengirimkan query ke nameserver pemegang otoriti domain dan nameserver pemegang otoriti akan mengirimkan nomor ip dari domain google.com ke nameserver ISP. Dan kemudian nameserver ISP akan mengiriman nomor ip ke program nslookup.

Okie selanjutnya bagaimana dalam konteks penyerangan terhadap nameserver? Tentu sebelumya kita akan pelajari dulu kelemahan dari program DNS server, misal kita ambil contoh BIND. Di dalam kerjanya, BIND meng-generate multi query untuk setiap domain yang sama dalam waktu yang sama juga dan BIND ketika menerima query sama sekali tidak melakukan pengecekan terhadap IP dari peminta domain tersebut tapi hanya menggunakan transaksi IDs untuk mengautentifikasi peminta domain kecuali ketika dia telah menemukan IP domain yang di cari dia akan mengirimkan informasi tersebut ke IP tujuan (peminta IP domain). Artinya dengan melihat kelemahan ini kita bisa melakukan banyak query ke nameserver dalam satu waktu sekaligus dengan menggunakan transaksi IDs yang di random agar BIND membentuk multi query. Dan bahayanya adalah dengan kelemahan BIND ini kita bisa mengirimkan sebuah fake information (informasi palsu) ke nameserver tentang informasi dari sebuah domain yang mengakibatkan nameserver salah memberikan alamat IP dari domain tersebut.


Kesimpulannya seorang attacker bisa membelokan alamat dari sebuah domain dengan menggunakan metode DNS Poisoning dan coba Anda bayangkan ketika nameserver di berikan fake information di nameserver yang akibatnya nameserver akan menerjemahkan bahwa domain itu adalah milik attacker/penyerang. Penyerang itu sendiri telah menyediakan program spoofing juga. Akibatnya bisa Anda perkirakan sendiri, setiap informasi yang di kirim ke domain tersebut akan masuk ke alamat attacker dan program spoofing yang terpasang telah membantu attacker untuk mendapatkan informasi penting seperti login, password bahkan mungkin data-data rahasia.

Apakah semudah itu nameserver bisa di manipulasi? Jawabannya tentu tidak, setidaknya ada dua model penyerangan yang bisa dilakukan. Yang pertama adalah dengan menggunakan conventional spoofing, yang kedua adalah dengan menggunkan metode birthday attack (artikel Joe Stewart, “DNS Cache Poisoning”). Lalu apa perbedaan dari kedua metode di atas? Perbedaannya terletak pada jumlah query yang di kirimkan ke nameserver. Conventional spoofing dalam melakukan penyerangan hanya mengirimkan satu informasi query ke nameserver sedangkan Birthday Attack melakukan penyerangan dengan mengirimkan beberapa ribu query agar nameserver termanipulasi ketika menjawab query tersebut dan nameserver akan mengirimkan informasi yang salah ke nameserver atau user yang merequest domain tersebut.


Coba Anda bayangkan, di sini attacker sebelumnya telah mengirimkan ribuan query dari domain yang sama ke victim nameserver (1) kemudian attacker juga mengirimkan spoofing dengan membuat replies palsu ke nameserver target (2). Yang terjadi ketika ketika ada user yang merequest domain tersebut ke nameserver korban(3), victim nameserver akan me-reply dengan alamat yang salah karena telah di poisoning oleh penyerang (4). Dalam kondisi seperti si attacker telah berhasil menghijacking owner dari domain tersebut dan memutuskan trafik ke situs sebenarnya karena informasi victim domain telah di ganti dengan IP lain.

Tingkat probabilitas (keberhasilan) antara metode spoofing cara konvensional dan birthday attack kemungkinan untuk berhasil lebih banyak di miliki oleh birthday attack tentu ini karena metode kedua mengirimkan banyak query untuk domain yang sama.

Dari informasi yang penulis baca, metode poisoning masih bisa di lakukan di BIND 8 dan 9 walaupun mungkin untuk BIND versi 9 tingkat probabilitasnya hanya 20 % dari 5000 paket/query yang di kirimkan ke victim nameserver.

Bagaimana solusi untuk mengatasi DNS poisoning?

Pertama tentu penulis menyarankan kepada Anda untuk mengganti BIND Anda ke versi 9.x (bukan 9) yang sudah mampu menangani penyerangan dengan metode ini. Atau alternatif lain Anda bisa mencoba DJBDNS buatan D.J. Bernstein (pembuat program qmail). Cara kedua adalah dengan mendisable recursive query ke nameserver dengan membuat split DNS yaitu membuat dua nameserver. Nameserver utama di gunakan untuk menangani domain name dari public domain. sedangkan nameserver kedua di yang berada di internal network bertugas sebagai cache nameserver yang bertugas menjawab query dari user yang merequest domain tersebut sehingga kalau pun di serang dengan ribuan query hal ini tidak akan meracuni informasi public domain karena sudah di tangani oleh nameserver pertama yang di lengkapi juga dengan firewall.

Di dalam konfig BIND memang ada option untuk mengatur allow-recursion untuk membatasi ip/address yang dapat mengakses nameserver, tapi perlu di ingat bahwa seorang penyerang pun bisa dengan mudah mengetahui ip mana saja yang di ijinkan untuk mengirimkan query ke nameserver. Dengan merubah source IP di query-command dengan IP yang di ijinkan untuk mengakses nameserver, penyerangan model ini akan tetap dapat di langsungkan.

Tips Membuat Situs E-Commerce yang Baik

Sering saya mengunjungi situs-situs E-Commerce untuk sekedar melihat-lihat barang yang ditawarkan. Namun dari beberapa situs E-Commerce Indonesia, kebanyakan kurang user friendly, cenderung mempersulit, useless graphic, dan lambat karena page size yang besar. Saya sendiri sangat menyukai bila berkunjung ke Amazon.com, rasanya betah sekali mengunjungi situs tersebut walau hanya melihat-lihat dan tidak pernah membeli langsung ke toko online tersebut. Situs “jualan” lain yang sering saya kunjungi adalah thinkgeek.com saya sangat suka melihat barang-barang “aneh” yang dijual di situs tersebut.

Dalam segi desain, situs diatas tersebut membuat pengunjung mudah untuk menelusuri toko online tersebut. Membicarakan mengenai situs E-Commerce, saya jadi teringat buku yang pernah saya baca. Dalam buku tersebut ada beberapa tips desain yang kurang lebih isinya sebagai berikut:

1. Desain Untuk Resolusi Monitor Yang Berbeda
Desainlah situs E-Commerce yang dapat tampil baik pada resolusi yang kini sering dipergunakan (800×600/1024×768). Anda dapat menggunakan satuan % (persen) pada tabel layout untuk tampilan situs yang resizeable pada berbagai resolusi, namun pertimbangkan juga mengenai konsekuensi perubahan layout bila dilihat pada monitor dengan resolusi yang lebih besar atau lebih kecil dari resolusi yang Anda gunakan saat mendesain. Bila tidak, gunakan satuan pixel pada tabel layout agar tampilan fixed namun optimasikan pada resolusi yang lebih kecil/sering digunakan misalnya 800X600.

2. Batasi Panjang Baris (Teks) Untuk Kemudahan Membaca
Bila situs yang Anda desain memiliki teks yang cukup panjang, batasi panjang teks Anda sekitar 70 karakter. Bila teks tersebut disimpan didalam tabel, beri tabel tersebut ukuran sekitar 480 pixel agar tidak memanjang.

3. Beri Label pada Grafis
Beri label pada setiap grafis yang Anda gunakan di situs Anda. Hal ini untuk memudahkan pengunjung yang melihat situs Anda dengan cepat (tidak mau menunggu seluruh gambar dalam situs terdownload) atau bila tampilan grafis di-disabled. Pada browser teks seperti Lynx, label akan tampil sebagai pengganti image.

4. Pergunakan URL pendek dan mudah diingat
Pergunakan URL yang pendek dan mudah diingat pada setiap seksi atau bagian dalam situs Anda, misalnya; www.berjualan.com/buku, www.berjualan.com/vcd, dan lain-lain.

5. Pergunakan Font Standar yang Terinstall di Kebanyakan Komputer
Font-font yang digunakan untuk web didesain untuk kemudahan membaca pada layar monitor. Pergunakan font-font standar agar kompatible bila digunakan pada browser yang berbeda atau bahkan pada sistem operasi yang berbeda pula.

6. Pergunakan Link Standar
Gunakan warna-warna link yang standar dan biasa digunakan. Biru untuk link yang belum dikunjungi dan ungu bila telah dikunjungi. Lebih baik pergunakan link standar dari pada beresiko membingungkan pengunjung Anda dengan mengubah warna link.( ;) Kedip)

7. Cantumkan ukuran file pada file yang dapat di download
Cantumkan ukuran file pada file-file yang di didownload oleh pengunjung, hal ini bertujuan agar pengunjung dapat memperkirakan waktu downloading pada kecepatan akses yang ia gunakan. Pengunjung biasanya kesal bila telah mendownload konten (seperti PDF) dan ternyata cukup lama untuk menunggunya terdownload.

8. Jangan buat pengunjung men-scroll halaman
Orang tidak membaca situs Web, namun hanya men-scan. Artinya, mereka akan langsung mengalihkan perhatian pada konten yang mereka lihat pertama kali menarik perhatian dan langsung mengkliknya, padahal dihalaman bawah yang tidak tampil di browser terdapat konten yang ia cari atau lebih menarik dan bermanfaat.

9. Kesederhanaan Kunci Utama
Desain yang sederhana tidak hanya cepat didownload, namun juga sangat nyaman untuk dilihat, dan yang terpenting mudah untuk digunakan. Background sebaiknya berwarna terang dan beri warna kontras dengan konten. Anda juga harus membatasi jumlah warna yang Anda gunakan untuk mempertahankan kesederhanaan. Ada pemeo yang berbunyi “Keep it simple, stupid!” dari sebuah artikel lain yang saya baca.Demikianlah, tip desain untuk situs E-Commerce. Semoga bermanfaat untuk Anda yang akan mendesain situs E-Commerce. (Pupung Budi Purnama)

Pustaka:
O’Brien, Tim, E-Commerce Handbook, Melbourne: Tri-Obi Production, 2000

Sumber: http://designworld.master.web.id/

Jenis Bilangan dalam Bahasa Assembler

1.1. BERBAGAI JENIS BILANGAN
Didalam pemrograman dengan bahasa assembler, bisa digunakan berbagai jenis bilangan. Jenis bilangan yang bisa digunakan, yaitu: Bilangan biner, oktaf, desimal dan hexadesimal. Pemahaman terhadap jenis-jenis bilangan ini adalah penting, karena akan sangat membantu kita dalam pemrograman yang sesungguhnya.

1.1.1. BILANGAN BINER
Sebenarnya semua bilangan, data maupun program itu sendiri akan diterjemahkan oleh komputer ke dalam bentuk biner. Jadi pendefinisisan data dengan jenis bilangan apapun(Desimal, oktaf dan hexadesimal) akan selalu diterjemahkan oleh komputer ke dalam bentuk biner.
Bilangan biner adalah bilangan yang hanya terdiri atas 2 kemungkinan(Berbasis dua), yaitu 0 dan 1. Karena berbasis 2, maka pengkorversian ke dalam bentuk desimal adalah dengan mengalikan suku ke-N dengan 2N. Contohnya: bilangan biner 01112 = (0 X 23) + (1 X 22) + (1 X 21) + (1 X 20) = 710.

1.1.2. BILANGAN DESIMAL
Tentunya jenis bilangan ini sudah tidak asing lagi bagi kita semua. Bilangan Desimal adalah jenis bilangan yang paling banyak dipakai dalam kehidupan sehari-hari, sehingga kebanyakan orang sudah akrab dengannya.
Bilangan desimal adalah bilangan yang terdiri atas 10 buah angka(Berbasis 10), yaitu angka 0-9. Dengan basis sepuluh ini maka suatu angka dapat dijabarkan dengan perpangkatan sepuluh. Misalkan pada angka 12310 = (1 X 102) + (2 X 101) + (1 X 100).

1.1.3. BILANGAN OKTAL
Bilangan oktal adalah bilangan dengan basis 8, artinya angka yang dipakai hanyalah antara 0-7. Sama halnya dengan jenis bilangan yang lain, suatu bilangan oktal dapat dikonversikan dalam bentuk desimal dengan mengalikan suku ke-N dengan 8N. Contohnya bilangan 128 = (1 X 81) + (2 X 80) = 1010.


1.1.4. BILANGAN HEXADESIMAL
Bilangan hexadesimal merupakan bilangan yang berbasis 16. Dengan angka yang digunakan berupa:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Dalam pemrograman assembler, jenis bilangan ini boleh dikatakan yang paling banyak digunakan. Hal ini dikarenakan mudahnya pengkonversian bilangan ini dengan bilangan yang lain, terutama dengan bilangan biner dan desimal. Karena berbasis 16, maka 1 angka pada hexadesimal akan menggunakan 4 bit.

1.2. BILANGAN BERTANDA DAN TIDAK
Pada assembler bilangan-bilangan dibedakan lagi menjadi 2, yaitu bilangan bertanda dan tidak. Bilangan bertanda adalah bilangan yang mempunyai arti plus(+) dan minus(-), misalkan angka 17 dan -17. Pada bilangan tidak bertanda, angka negatif(yang mengandung tanda '-') tidaklah dikenal. Jadi angka -17 tidak akan akan dikenali sebagai angka -17, tetapi sebagai angka lain.
Kapan suatu bilangan perlakukan sebagai bilangan bertanda dan tidak? Assembler akan selalu melihat pada Sign Flag, bila pada flag ini bernilai 0, maka bilangan akan diperlakukan sebagai bilangan tidak bertanda, sebaliknya jika flag ini bernilai 1, maka bilangan akan diperlakukan sebagai bilangan bertanda.
Pada bilangan bertanda bit terakhir (bit ke 16) digunakan sebagai tanda plus(+) atau minus(-). Jika pada bit terakhir bernilai 1 artinya bilangan tersebut adalah bilangan negatif, sebaliknya jika bit terakhir bernilai 0, artinya bilangan tersebut adalah bilangan positif.

asbag © 2008 Template by Dicas Blogger.

TOPO