Senin, 26 Oktober 2015

Materi Mata Kuliah Keamanan Sistem dan Jaringan Komputer "URL, DNS, HTTP dan HTTPS"



URL, DNS, HTTP dan HTTPS

URL (Uniform Resource Locator)
URL merupakan sebuah pathname yang mengidentifikasi sebuah dokumen di dalam web. URL bukan hanya berisikan informasi dokumen web saja, melainkan informasi host yang akan diakses serta protokol yang digunakan untuk akses web. Dapat dikatakan URL adalah sebuah format penulisan yang harus dipenuhi ketika ingin mengakses sebuah dokumen di dalam web.
Beberapa fungsi dan kegunaan URL
·           Sebagai pengidentifikasi sebuah dokumen di dalam web
·           Memudahkan mengakses sebuah dokumen suatu website
·           Memudahkan mengingat suatu alamat website

DNS (Domain Name System)
DNS adalah sebuah sistem  yang dibangun dan bertujuan untuk menyimpan informasi tentang nama host dan nama domain dalam bentuk database tersebar di dalam internet. DNS menyediakan IP address untuk setiap nama host yang diakses di dalam internet.
Keberadaan DNS sangat penting karena protokol-protokol jaringan tidak mengerti dengan tipe data string. Oleh karena itu komputer tidak tahu dengan namanya www.google.com, www.facebook.com dan lain-lain karena di dalam jaringan, ia hanya dapat mencari host lain menggunakan IP address. Tapi mengapa browser mengerti URL yang kita tuliskan? Padahal yang kita tuliskan sebagai ID sebuah host berbentuk string.
Disinilah fungsi penting sebuah DNS, ketika kita menuliskan www.google.com, browser akan menghubungi DNS server lalu bertanya “berapakah IP address dari www.google.com?” . DNS server kemudian mencari informasi IP address dari www.google.com di dalam database yang tersebar di internet. Setelah menemukan informasi yang dicari, DNS server kemudian mengirimkannya kembali ke browser. Dengan informasi IP address yang diperoleh, browser dapat melakukan koneksi ke web server dari google.
DNS tidak hanya diperuntukkan terhadap jaringan internet, namun dapat juga diimplementasikan di dalam jaringan internal yang berskala sedang maupun kecil seperti WAN atau LAN. DNS dapat diibaratkan seperti sebuah buku telepon, untuk mencari alamat seseorang.

HTTP (Hypertext Transfer Protocol)
HTTP adalah sebuah protokol jaringan yang terimplementasi pada layer aplikasi dan termasuk ke dalam sistem informasi hypermedia. HTTP memfasilitasi transfer informasi melalui internet.
HTTP biasa disebut juga protokol request-renponse antara client dengan server. Yang menjadi client adalah web browser dari pengguna dan server dapat berupa web server. Disebut dengan request-renponse karena melalui protokol inilah web browser dapat mengirimkan request sebuah dokumen hypertext kepada web server lalu web server memberikan tanggapan dengan mengirimkan dokumen hypertext yang diminta oleh web browser client. Inilah mengapa web browser dapat menampilkan suatu halaman website.
·           Mekanisme HTTP
Ketika melakukan browsing internet di komputer, contoh menggunakan google chrome sebagai browser. Ketika ingin mengakses website www.sesuatu.com, kita akan menuliskan URL di browser dengan http://www.sesuatu.com.
Dengan infor URL yang diberikan, browser kemudian menghubungi DNS server untuk menanyakan IP address dari www.sesuatu.com. DNS akan mencari informasi yang browser butuhkan kemudian memberikannya kembali pada browser.
Dengan informasi IP address yang diperoleh dari DNS server, browser kini dapat membuat hubungan ke webserver dari www.sesuatu.com melalui protokol HTTP menggunakan koneksi TCP maka dilakukan three-way handshake terlebih dahulu. Jika sudah terhubung, maka browser dapat mengirimkan request untuk meminta file index.html dari web server.
Request yang dikirim memiliki aturan penulisan tersendiri, contohnya ketika browser ingin me-request file index.html dari www.sesuatu.com maka penulisannya menjadi
GET/HTTP/1.1\nHost:www.sesuatu.com
Namun kita tidak perlu menuliskannya secara manual, browser akan secara otomatis mengirimkan paket berisi request dengan contoh penulisan lengkap sebagai berikut :
Web server kemudian akan mengirimkan response yang berisi
ISI FILE berisikan data dari file tersebut. Contoh jika file yang diminta adalah index.html, maka yang dikirimkan berupa text html dan akan langsung ditampilkan oleh browser di layar monitor.


Kelemahan Protokol HTTP
Paket – paket data berupa paket requestdan responseyang dikirimkan melalui protokol HTTP masih berupa plain text, artinya tidak terjadi pengenkripsian terhadap paket-paket data tersebut. Disitulah letak kelemahan dari protokol HTTP. Ketika hacker melakukan serangan MITM, dengan mudah ia dapat membaca paket yang dikirim melalui protokol HTTP.
Hacker dapat mengetahui website apa saja yang kita kunjungi, cookies yang kita miliki, bahkan sampai username dan password dari akun pribadi kita. Semua itu terjadi karena hacker dapat membaca paket request dan responsedengan mudah.

HTTPS (HyperText Transfer Protocol Secure)
Para pengembang protokol HTTP melihat bahwa celah keamanan tersebut mengharuskan adanya peningkatan aspek keamanan dari protokol HTTP. Oleh karena itu munculah protokol baru dengan nama HTTPS.
HTTPS adalah protokol yang lebih aman dibanding dengan HTTP karena menerapkan pengenkripsian terhadap paket-paket datanya. HTTPS merupakan gabungan dari HTTP dan SSL (SecureSocketLayer). SSL lah yang berperan mengatur pengenkripsian data.
SSL digunakan hampir di semua transaksi penting melalui internet. SSL bekerja sebagai protokol transport layer seperti TCP dan UDP. Hal tersebut membuat HTTPS sering digunakan oleh website-website penyedia akses online terhadap akun-akun penting seperti perbankan dan media sosial.
SSL menyediakan jasa authenticationkepada sisi client dan sisi server sehingga antar kedua pihak tersebut dapat berkomunikasi dengan  aman. Jasa autentikasi tersebut masuk ke dalam mekanisme yang dibuat SSL yaitu SSL handshake.


SSL Handshake
SSL memiliki mekanisme agar antara browser dan web server dapat berbagi data secara aman. Mekanisme tersebut berada di bagian authenticationketika browser dan web server ingin berhubungan, sering disebut dengan SSL handshake.
SSL handshakemerupakan mekanisme yang diterapkan SSL untuk memastikan bahwa hubungan yang dibangun oleh browser dan web server aman. Dimulai dari pembuatan SSLcertificate. SSLcertificateterdiri dari sepasang kunci (pairkey). Pair key ini digunakan sebagai identitas untuk memverifikasi komunikasi data yang terjadi antar dua mesin. Pair key terdiri dari privatkey(diletakkan di bagian server) dan public key (diletakkan di bagian client).
SSL certificatebersifat komersil dan ketika sebuah web server diberi SSL certificatemaka client dengan web browser yang termasuk dalam versi terbaru dari Firefox, Chrome atau Opera akan melihat address bar berwarna hijau di area URL navigator.
Ketika browser menghubungi sebuah web server yang menggunakan SSL, maka web server tersebut akan mengirimkan publickey kepada browser. Browser kemudian mengecek kevalidan dari publickey yang diperoleh ke TrustedAuthoritiesDatabase. Jika sertifikat yang terdaftar sesuai dengan yang diperoleh dari web server, maka hubungan antar browser dan web server dapat dibentuk.  Namun jika sertifikat berdasarkan publickey yang diperoleh tidak terdaftar di trustedAuthorities DB Server, maka browser akan mengirimkan pesan ke web server yang berisikan pemberitahuan bahwa SSL certificatetidak dapat diverifikasi kebenarannya, sehingga muncul pesan peringatan di browser seperti ini:
Setelah menerima pesan tidak dapat terverifikasi dari browser, web server akan mengirimkan bukti pengakuan yang telah ditandatangani secara digital bahwa SSL certificateyang diberikan sebelumnya valid. Karena bisa saja terjadi error pada jaringan sehingga browser kita tidak dapat memverifikasi ke trusted authorities dengan benar. Browser akan meminta persetujuan kita terlebih dahulu untuk mempercayai bukti pengakuan yang diberikan atau tidak. Jika iya, maka browser akan mengkoneksikan ke web server yang bersangkutan. Jika tidak, maka browser membatalkan proses koneksi.

Downgrade the HTTPS
Penggunaan SSSL terhadap protokolHTTP yang dilakukan web server tertentu terkadang membuat kesal hacker yang melakukan MITM attack karena tidak ada celah keamanan pada protokol SSL, kecuali kita ingin mendeskripsikan setiap data yang melaluinya, dan hal tersebut pasti memakan waktu yang tidak sebentar.
Sulitnya menembus pengenkripsian SSL membuat hacker mencari cara lain agar dapat mambaca paket request dan response. Cara tersebut yaitu mencegah browser mengakses SSL.
Jarang sekali ornag mengunjungi website tertentu dengan menuliskan secara lengkap URL-nya, apalagi menuliskan protokol http:// atau https://. Secara default ketika pada URL tidak disertakan informasi https://, browser akan berasumsi bahwa pengunjung ingin menggunakan protokol HTTP.
Website yang menggunakan HTTPS di web servernya, harus tetap mengaktifkan protokol HTTP untuk menerima request dan mengirimkan response. Karena HTTPS hanyalah HTTP yang mengirimkan paketnya melalui protokol SSL. Jadi, yang bertugas mengirimkan paket responsetetaplah HTTP, SSL hanya menjadi saluran yang mengenkripsi paket - paket yang melaluinya.




Materi Mata Kuliah Keamanan Sistem dan Jaringan Komputer "Nmap"

NMAP



Network Scanning
            Network scanning adalah salah satu strategi yang dilakukan hacker untuk mencari tahu jaringan mana yang aktif dan innformasi-informasi apa saja yang dapat ia peroleh dari suatu jaringan. Seperti di dalam peperangan, anda mencari tahu lokasi target atau musuh berada dimana, lalu di daerah tersebut ada apa saja, berapa banyak pasukan musuh, senjata apa yang mereka miliki, dll.
            Network Scanner adalah alat yang digunakan untuk melakukan network scanning. Alat ini bias berupa hardware atau software, tapi masih kebanyakan tool yang digunakan untuk melakukan scanning berupa software.
            Pengertian network scanning serta netwok scanner masih sangat luas. Network scanning dapat dibagi menjadi beberapa bagian seperti port scanning, host scanning, dan masih banyak lagi dimana suatu tool network scanner dapat memiliki semua fitur tersebut. Salah satunya yaitu NMAP.
Network MAPper


 






      Gambar XI.1 Nmap
Network MAPper atau Nmap adalah security scanner/network scanner yang ditemukan oelh Gordon Lyon. Nmap yang digunakan untuk menemukan hosts serta services yang aktif didalam jaringan komputer, jadi akan terbentuk “map” atau peta dari jaringan tersebut. Peta disini bukan berarti peta secara fisik melainkan logika. Misal dengan melakukan scanning maka anda mengetahui yang mana router dan mana client
Untuk mengetahui host mana yang aktif serta service apa saja yang dijalankan maka Nmap akan mengirimkan paket-paket data special ke target lalu menganalisa respon yang diberikan oleh target tersebut.
Banyak feature yang ditawarkan oleh Nmap. Bukan hanya untuk mencari host atau service saja, tetapi juga operating system yang digunakan, versi keberapa, dll yang akan mempermudah anda untuk melakukan fingerprinting.
Fingerprinting adalah tahap di dalam ethical hacking yang bertujuan untuk mengumpulkan informasi sebanyak-banyaknya mengenai suatu target. Fingerprinting berguna saat hacker ingin melakukan penetrasi ke dalam system atau mengeksploitasi target.
Nmap juga dapat beradaptasi dengan kondisi jaringan yang dinamis seperti perubahan latency atau terjadinya network congestion (kemacetan pada jaringan) selama melakukan proses scan.
Nmap awalnya dikembangkan hanya untuk lingkungan Linux. Tetapi seiring bertambah popularitasnya, maka dikembangkan juga Nmap yang dapat beroperasi di lingkungan Windows, Solaris, Hp-UX, BSD variant (termasuk MAC OS X), AmigaOS, dan SGI IRIX. Nmap bersifat Open Source dan free untuk didistribusikan sehingga anda tidak perlu pusing-pusing membeli lisensi untuk tool yang satu ini.
Hingga saat ini Nmap memiliki dua interface yang dapat digunakan, anda dapat mengoperasikannya dalam versi CLI (Command Line Interface) dan dengan menggunakan GUI (Graphics User Interface). Nmap dalam mode GUI bernama Zenmap. Secara umum tidak ada perbedaan antara Zenmap dengan Nmap, hanya Zenmap memanjakan anda dengan tampilan yang menarik dan pengoperasian Nmap yang mudah, sedangkan dengan versi CLI anda harus menghafal perintah-perintah/command sebagai parameter di dalam terminal.
Di dalam chapter ini saya akan lebih berfokus kepada CLI dari Nmap. Kenapa? Karena anda seorang hacker. Tidak ada hacker yang ketergantungan dengan GUI dari suatu aplikasi.

Apa Yang Nmap Lakukan

            Ping adalah salah satu network tool yang digunakan untuk mengecek suatu host dengan IP address tertentu apakah aktif atau tidak. Ping juga menghitung round-trip time untuk pesan yang dikirim dari sember ke computer tujuan. Round-trip time itu sendiri adalah waktu yang dibutuhkan oleh suatu pesan saat dikirim host hingga sampai ke tujuannya dengan selamat. Cara kerja ping sama seperti cara kerja sonar radar dalam menangkap sinyal, yaitu dengan cara mengirimkan bunyi dengan frekuensi tertentu kemudian menunggu sampai menabrak benda dan kemudian benda tersebut memantulkan kembali bunyi yang diterimanya.
            Ping beroperasi dengan mengirimkan paket ICMP (internet Control Message Protocol) echo request ke target dan menunggu datangnya ICMP response berupa ICMP echo reply.




         
            Di dalam prosesnya, akan dihitung waktu saat awal mentransmisikan paketnya sampai paket tersebut diterima oleh target serta menghitung berapa banyak packet loss yaitu paket data yang hilang. Lalu ada juga Ping6 yaitu ping yang dikhususkan untuk jaringan yang menggunakan IPv6 (Internet Protocol version 6).
            Masalah muncul ketika setiap target memiliki OS yang masing-masingdapat mengkonfigurasi ICMP agar tidak dapat melakukan ping atau merespon echo request yang diterimanya, hasilnya teknik ping untuk mengetahui suatu host apakah aktif atau sudah tidak berlaku lagi.
Jadi ketika anda mengirimkan echo request ke target, anda tidak akan pernah mendapatkan echo replay sehingga target tersebut terlihat selalu dalam keadaan tidak aktif padahal mungkin saja target dalam keadaan aktif namun ICMP-nya tidak mengirimkan echo replay.
Disinilah Nmap menunjukkan kemampuannya. Nmap memiliki fitur port scanning, yaitu fitur yang membuat anda dapat melakukan scanning terhadap logical port yang dimiliki oleh setiap computer.
Logical port adalah port logis yang dimiliki komputer sebanyak 65.536 buah dimana setiap port dapat dihuni atau digunakan oleh service-service tertentu. Oleh karena itu dengan menggunakan port scanning anda dapat mengetahui service mana yang sedang aktif dari suatu target. Lalu apa hubungannya dengan menjawab masalah ping? Anda dapat melogikakan sendiri, jika pada target terdapat service yang aktif, itu artinya target tersebut juga aktif karena service tidak dapat aktif dengan sendirinya.
Salah satu tehnik port scanning yaitu mengirimkan paket TCP (Transmission Control Protocol) SYN request kepada target. Di dalam mekanisme three-way-handshake yang dilakukan oleh protocol TCP untuk menciptakan sebuah koneksi, jika anda menerima SYN request maka sebagai feedback anda harus membalas dengan SYN/ACK, tentang three-way-handshake ini akan saya jelaskan lebih dalam pada bagian selanjutnya. Dengan begitu, jika target menjawab dengan SYN/ACK setelah anda kirimkan SYN maka dapat dipastikan bahwa target dalam keadaan aktif/up.

 




Teknik port scanning dengan TCP SYN reguest dapat diterapkan kepada semua logical port yang menggunaan protokol TCP. Untuk melakukan scan terhadap logical port yang menggunakan protokol UDP (User Datagram Protocol), digunakan teknik yang berbeda.
Gambaran diatas adalah contok kenapa Nmap menjadi tool favorite di kalangan hacker karena memiliki banyak fitur yang membantu untuk melakukan fingerprinting dari target mereka. Dan juga bersifat open source sehingga pengembangan Nmap bukan berasal dari satu perusahaan atau lembaga saja namun semua orang dari seluruh dunia dapat berkontribusi dalam mengembangkan tool ini. Oleh karena itu fitur - fitur dari Nmap hampir selalu up-to-date seiring berkembangnya teknologi.
Nmap juga memiliki database mengenai service dan vendor yang sangat banyak. Nmap dapat mengetahui brand dari komputer atau network adapter yang anda pakai setelah ia melakukan scanning.
Misalnya anda menggunakan apple computer, setelah Nmap selesai melakukan scanning terhadap komputer anda maka ia dapat mengetahui bahwa komputer yang anda gunakan adalah apple computer.

Getting Started with Nmap
Pada bagian ini anda akan menggunakan dasar-dasar dari Nmap untuk melakukan fingerprinting suatu sistem. Anda tidak hanya mencari apakah target aktif apa tidak, tetapi anda juga melakukan port scanning, mencari tahu OS apa yang digunakan oleh target, versi berapa OSnya, dan masih banyak lagi.
Manual Pages of Nmap
Nmap menyediakan manual pages atau petunjuk penggunaan Nmap agar anda tidak kebingungan menentukan parameter apa saja yang akan saya gunakan atau input apa saja yang dibutuhkan untuk melakukan scanning. Untuk mengakses manual pages dari Nmap, buka terminal lalu tuliskan man nmap atau nmap--help.
Basic Syntax
Sintaks paling dasar dari Nmap adalah nmap (IP_addres). Nmap akan melakukan scanning terhadap IP addres yang diberikan dengan menggunakan mekanisme default scanning.
Penjelasan singkat dari hasil scaning nmap :
l  Nmap melakukan proses scaning hingga selesai selama 25.17 detik.
l  Nmap melakukan port scaning terhadap 1000 well-know port awal. Dengan hasil 4 port terbuka, masing-masing adalah port 22-service SSH (secure Shell), port 23-service telnet, dan port 80-service HTTP (Hypertext Transver Protocol)
l  Nmap mendapatkan informasi MAC address diketahui bahwa target berasal dari vendor D-Link.
(IP address 192.168.1.12 adalah IP addres router)

Anda juga dapat melakukan scanning terhadap networkrange dalam satu waktu. Artinya anda melakukan scan ke banyak target di dalam satu jaringan secara bersama.

Misalnya anda melakukan scan terhadap target mulai dari IP addres 192.168.1.20 sampai dengan 192.168.1.100 parameter nmap adalah nmap 192.168.1.20-100 atau jika ingin menscan terhadap keseluruhan host didalam jaringan, tambahkan CIDR (Classless Inter-Domain Routing) dibelakang subnet contonya nmap 192.168.1.0/24.

Ping only Scan

Nmap menyediakan fitur ping scan. Mekanisme sama dengan ping yang ada di CMD (Command Prompt) wi ndows. Jika anda sudah memastikan bahwa target tidak memblok ICMP alias tidak menghalangiping dan anda hanya ingin mengetahui apakan target aktif atau tidak, maka opsi ping only scan bisa anda gunakan.

Untuk menggunakan fitur ping only scan, tambahkan parameter-sP. Contoh ping scan ke seluruh host dalam subnet 192.168.1.0/24, maka command menjadi nmap-sP 192.168.1.0/24, nmap sP 192.168.1* atau nmap-sP 192.168.1.0-254

TCP SYN scan, protocol Number scan, Version Scan, Operating System Scan

TCP SYN Scan menggunakan mekanisme three-way handshake yang dilakukan oleh Protocol TCP untuk membuat koneksi atar dua host. Ilustrasi mekanisme three-way handshake adalah sebagai berikut :
Ketika protokol TCP ingin membuat koneksi antar dua host selalu melakukan mekanisme diatas. Mekanisme three-way-handshake dilakukan agar paket-paket yang dikirim dapat dipastikan sampai ke tujuan dengan selamat.