Perancangan dan Implementasi Sistem Keamanan Jaringan
dengan Metode Port Knocking untuk Mencegah Http Attack
Vulnerability
Artikel Ilmiah
Peneliti :
Ruben Adi Wijaya (672010275) Irwan Sembiring, S.T., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi Sistem Keamanan Jaringan
dengan Metode
Port Knocking
untuk Mencegah
Http Attack
Vulnerability
1) Ruben Adi Wijaya, 2)Irwan Sembiring
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. DIPonegoro 52-60, Salatiga 50771, Indonesia Email: 1) [email protected], 2) [email protected]
Abstract
With the development of today's world, a website is already popular in cyberspace. It makes the website become the target of hackers that may be detrimental to the exploitation of the website itself. To secure the website and database from hackers then be made system to protect communication between client and server is called Port Knocking. Port Knocking is a method of network security to open a closed port or to open firewall acces and allow the knocker through designated port by sending certain packets to the destination port. In this study, to protect communication between client with server and database webserver on port 80 (http), there is a shadow port that is useful to move database residing on the webserver that hackers can not find the location of the database from the webserver on port 80 (http). So the client who wants to open a database of webserver must do a combination of knock in the shadow ports contained within port 80 (http) to open the database safely unnoticed by hackers. This method can reduce the vulnerabilities that becomes the target of hackers.
Keywords : Website, Hacker, Port Knocking, Network Security, Port, Http
Abstrak
Dengan berkembangnya dunia saat ini, sebuah website sudah populer di dunia maya. Hal itu membuat website menjadi sasaran peretas untuk melakukan tindakan pengeksploitasian yang dapat merugikan website itu sendiri. Untuk mengamankan website dan databasenya dari peretas dibuatlah sistem untuk melindungi komunikasi antara client dengan server yang dinamakan Port Knocking. Port Knocking merupakan metode keamanan jaringan untuk membuka sebuah port yang tertutup atau membuka akses firewall dan mengizinkan knocker masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke port tujuan. Dalam penelitian ini untuk melindungi komunikasi antara client dengan server dan database webserver pada port 80 (http), terdapat port bayangan yang berguna untuk memindahkan database yang berada di webserver agar peretas tidak bisa menemukan lokasi database dari webserver yang berada di port 80 (http). Karena itu client yang ingin membuka database dari webserver harus melakukan kombinasi ketukan pada port bayangan yang terdapat di dalam port 80 (http) untuk dapat membuka database secara aman tanpa diketahui oleh peretas. Metode ini dapat mengurangi kelemahan pada webserver yang menjadi incaran peretas.
Kata Kunci : Website, Peretas, Port Knocking, Keamanan Jaringan, Port, Http 1)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
2)
1
1. Pendahuluan
Pada saat ini dunia maya sudah berkembang pesat disegala bidang khususnya di bidang website. Dengan berbagai macam website saat ini, informasi apapun yang diperlukan untuk pengembangan bisnis maupun pendidikan sangat mudah didapatkan. Namun ada kelemahan yang membuat sebuah website menjadi incaran para peretas yaitu keamanannya dalam menjaga database pada webserver sehingga saat seorang client ingin mengolah databasenya dari jarak jauh kadang seorang peretas dapat meretas jaringannya dan hal itu dapat membuat kerugian pada client itu sendiri. Komunikasi antara client dengan server haruslah aman dari orang-orang yang ingin mengeksploitasi tanpa izin.
Http (port 80) merupakan port yang sering diakses oleh banyak user untuk mengakses sebuah alamat dan port ini juga yang sering menjadi incaran setiap peretas untuk mengeksploitasi sebuah webserver. Membiarkan port terbuka merupakan masalah yang serius untuk keamanan jaringan itu sendiri. Hal ini membuat port 80 kurang aman dalam menjaga data-data yang penting yang terdapat di dalam databasenya dari para peretas yang tidak bertanggung jawab.
Port Knocking merupakan merupakan metode keamanan jaringan untuk membuka sebuah port yang tertutup atau membuka akses firewall dan mengijinkan knocker masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke port tujuan[1]. Metode ini digabungkan dengan virtualhost di dalam webserver untuk menciptakan port bayangan yang tertutup dan di dalamnya juga terdapat database sehingga hanya bisa diakses oleh client dengan kombinasi ketukan. Metode ini menjadi solusi dari komunikasi antara client dengan server di port 80 yang menjadi aman.
Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian untuk merancang suatu keamanan jaringan untuk melindungi kelemahan (vulnerability) webserver dari peretas (Http Attack). Metode yang akan digunakan adalah Port Knocking yang berguna untuk mengamankan komunikasi antara client dengan server dalam mengelola databasenya melalui port bayangan yang tertutup di port 80. Penelitian ini menghasilkan keamanan komunikasi antara client dengan server dalam mengelola database di dalam webservernya.
2. Kajian pustaka
2
Berdasarkan penelitian terdahulu tentang “Pengujian dan Analisa Keamanan Website Terhadap Serangan SQL Injection”, bahwa penelitian serangan SQL Injection yang dilakukan peretas pada website membuat celah keamanan jaringan di database webserver terbuka, sehingga dibutuhkan langkah untuk menanggulangi celah kelemahan yang terdapat di sebuah webserver melalui port [3].
Berdasarkan pada penelitian yang terkait dengan Port Knocking dan kelemahan (vulnerability) webserver, maka dilakukan pengembangan penelitian yang membahas Perancangan dan Implementasi Sistem Keamanan jaringan dengan Metode Port Knocking untuk mencegah Http Attack Vulnerability. Penelitian ini menghasilkan keamanan dalam berkomunikasi antara client dengan server untuk mengelola database yang berada di dalam webserver. Penelitian ini menggunakan sistem operasi Ubuntu dan penyerangan menggunakan tools dari BackTrack.
Keamanan jaringan adalah proses untuk mencegah dan mengidentifikasi penggunaan yang tidak sah dari jaringan komputer. Langkah-langkah pencegahan membantu menghentikan pengguna yang tidak sah yang disebut penyusup untuk mengakses setiap bagian dari sistem jaringan komputer. Tujuan keamanan jaringan komputer adalah untuk mengantisipasi resiko jaringan komputer berupa bentuk ancaman fisik maupun logik baik langsung ataupun tidak langsung mengganggu aktivitas yang sedang berlangsung dalam jaringan komputer [4]. Saat keamanan suatu jaringan selalu mengalami peningkatan, maka ancaman serangan ke port 80 pun semakin banyak seperti, Back Door merupakan suatu serangan yang dengan sengaja membuka suatu “pintu belakang” bagi pengunjung tertentu, tanpa disadari oleh orang yang meng-instal software, sehingga mereka dengan mudah masuk kedalam sistem jaringan. Port Scanning merupakan usaha pelacakan port yang terbuka pada suatu sistem jaringan sehingga dapat dimanfaatkan oleh hacker untuk melakukan serangan. XSS merupakan semacam cross site scripting, serangan melalui port 80 yang memanfaatkan kelemahan aplikasi pada situs web sehingga isi-nya bisa diubah (deface). Serangan - serangan ini dapat memungkinkan data yang berada di port 80 terancam dieksploitasi.
Port Knocking merupakan salah satu cara berkomunikasi pada jaringan komputer, cara yang umum digunakan adalah melalui port yang tertutup. Dalam sebuah jurnal tentang metode Port Knocking menjelaskan bahwa metode ini merupakan metode keamanan jaringan untuk membuka sebuah port yang tertutup atau membuka akses firewall dan mengijinkan knocker masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke port tujuan. Cara yang digunakan adalah dengan melakukan telnet ke port yang tertutup pada server dengan tujuan untuk membuka port yang dituju[1].
3
sampai 4000, maka didapat nomor port ketukan 2000+a, 3000+b, 4000+c (abc merupakan port tujuan). Port ketukan tersebut merupakan port tujuan pengiriman paket data yang berfungsi sebagai port ketukan. Nomor tersebut menunjukkan port tujuan yang akan dibuka atau ditutup, sehingga ketukan yang dilakukan oleh user jika ingin membuka port 80 adalah seperti 2000, 3008, 4000 sedangkan untuk menutup port 80 maka ketukan yang dilakukan user adalah 3008, 4000, 2000. Proses pengetukan port dilakukan dengan cara mengirimkan paket data alamat sumber menuju alamat tujuan. Header pada paket data tersebut akan diperiksa terutama header control SYN yang digunakan untuk mensikronisasi sequence number. Apabila nomor port yang digunakan sebagai sequence ketukan sesuai dengan nomor tujuan yang telah di tentukan sebagai nomor port ketukan, maka port yang dituju akan membuka atau menutup sesuai dengan format ketukan yang digunakan[5].
4
Tahap 1 Tahap 2
Tahap 3 Tahap 4
Gambar 1 Gambaran Umum Sistem Port Knocking,
Sumber: Port Knocking.org
Hypertext Transfer Protocol (HTTP) merupakan sebuah protocol jaringan lapisan aplikasi yang sering digunakan untuk mengawali menuju sebuah website serta untuk system informasi terdistribusi, dan kolaboratif. Penggunaanya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dokumen hypertexts, yang kemudian membentuk World Wide Web pada tahun 1990 oleh Fisikiawan Inggris yaitu Tim Berners-Lee. Sampai saat ini protocol HTTP mempunyai dua versi yang berbeda, yaitu HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang menggunakan koneksi yang sama untuk melakukan transaksi sehingga HTTP/1.1 bisa lebih cepat karena memang tidak perlu membuang waktu untuk membuat koneksi secara berulang-ulang[7].
5
Ketika Knoppix mencapi versi 3.0 maka dinamakan dengan whax. Whax dapat digunakan untuk melakukan tes security dari berbagai jaringan di mana saja. Max Mosser merupakan auditor security collection yang mengkhususkan dirinya untuk melakukan penetrasi keamanan di Linux. Gabungan dari auditor dan Whax ini sendiri menghasilkan 300 tool yang digunakan untuk testing security jaringan. Auditor security collection juga terdapat pada knoppix. Namun sejak rilis ke-4 hingga rilis yang terbaru ini, BackTrack sudah tidak lagi menggunakan basis Knoppix. BackTrack kini menggunakan basis Ubuntu. BackTrack telah memasuki versi 5 R3 dengan kernel 3.2.6.[4].
3. Metode Perancangan Sistem
Berdasarkan pada tujuan yang ingin dicapai, penelitian ini dirancang dengan pendekatan “Penelitian dan Pengembangan”, artinya suatu program penelitian ditindaklanjuti dengan program pengembangan untuk perbaikan atau penyempurnaan. Metode yang digunakan yaitu model waterfall disebut juga dengan classic life cycle dengan terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan sistem, (2) Perancangan sistem dan perangkat, (3) Implementasi sistem, dan (4) Pengujian sistem dan analisis hasil pengujian. Adapun tahapan yang dilakukan ditunjukkan pada Gambar 2.
Gambar 2 Tahapan Penelitian
6
tahap kedua, yaitu misalnya bagaimana aplikasi atau program berjalan saat Port Knocking dijalankan pada komunikasi client dan webserver; Tahap keempat : pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian dengan cara membandingkan sistem tanpa metode Port Knocking dengan yang menggunakan metode Port Knocking untuk mengetahui seberapa aman database dilindungi dari peretas menggunakan tools dari BackTrack.
Pada tahap perancangan sistem terdapat dua pengguna sistem untuk dapat menjalankan sistem ini, pertama adalah client dan kedua adalah admin. Client dapat melakukan aktivitas sebagai berikut : 1) Client mengelola sistem Port Knocking di komputernya untuk dapat melakukan ketukan ke webserver di admin; 2) Client melakukan ketukan yang sesuai dengan kombinasi yang sudah diatur di webserver; 3) Client dapat membuka dan mengelola database di webserver saat ketukan berhasil. Admin dapat melakukan aktivitas berikut : 1) Admin mengelola sistem Port Knocking di komputernya untuk mengkonfigurasi ketukan saat client mengetuk; 2) Admin membangun dan mengelola webserver serta databasenya; 3) Admin membangun sebuah web untuk dapat diuji oleh peretas; 4) Admin mengelola port bayangan serta menempatkan folder database phpmyadmin kedalam direktori port 99 (port bayangan); 5) Admin dapat memonitoring client yang sedang melakukan ketukan.
Hardware dan software yang digunakan dalam membangun sistem ini memiliki spesifikasi : 1) CPU Intel Core i3-2350M., 2.3Ghz, memory RAM 4GB; 2) Wi-fi speedy; 3) Software Port Knocking, Apache2; 4) Database yang digunakan phpmyadmin, mysql; 5) Web browser yang digunakan Mozilla Firefox; 6) Bahasa pemrograman dalam membuat web adalah php5 dan html.
Dalam perancangan sistem keamanan ini, dibutuhkan sistem operasi Ubuntu 12.04 serta untuk penetrasi ke webserver menggunakan tools dari BackTrack.
7
ketukanya yang dibalik, fungsinya agar dapat menutup kembali port yang tadi dibuka, yang membedakan adalah perintah –D pada perintah Iptables yang mempunyai arti menghapus satu baris aturan yang sudah dibuat, sehingga dapat menutup port yang terbuka tadi.
Ketukan yang digunakan dalam program ini menggunakan dynamically Assigned Port yang berkisar 1024 sampai 65536 sehingga dapat digunakan sesuai kebutuhan. Untuk mengaktifkan program Port Knocking, komputer server harus merubah setingan di dalam program Port Knocking dan set nama interfacenya sesuai koneksi internet dan restart program Port Knockingnya. Untuk komputer client proses install sama persis dengan komputer server.
Dalam program Port Knocking format ketukan yang digunakan dalam perancangan sistem adalah format port tunggal dengan pemetaan tetap, dan menggunakan tiga port ketukan sebagai tujuan koneksi data untuk melakukan ketukan. Dalam konfigurasi yang telah dibuat, dipilih tiga nomor port yang termasuk dalam kategori dynamically assigned port dan port yang dipilih merupakan port yang jarang digunakan di jaringan internet. Nomor yang digunakan untuk membuka port 99 adalah 2099, 3099, 4099. Untuk menutup kembali port yang terbuka adalah 4099, 3099, 2099. Kombinasi ketukan ini dapat dibuat rumit atau mudah tergantung client yang bisa mengingatnya. Aturan kombinasi ketukan ini merupakan aturan yang sudah dikenal lama oleh Sebastian Jeanquier yaitu menggunakan tiga buah port di mana masing-masing digit terakhir port menunjuk ke nomor port tujuan [5].
8
Gambar 3 Alur Proses Utama Pada Sistem
9
Gambar 4 Tampilan Beberapa Contoh Web di Port 80
Pada perancangan selanjutnya agar sistem berjalan lancar, maka diperlukan untuk membuat virtualhost pada port 99 yang tertutup di dalam webserver apache yang terinstall agar dapat dipakai untuk menempatkan folder phpmyadmin yang hanya terbuka bila diketuk oleh client.
4. Hasil dan Pembahasan
10
Gambar 5 Topologi Sistem Port Knocking Pada Webserver
Gambar 5 merupakan topologi sistem yang dibuat dengan menganalogikan bahwa saat client melakukan ketukan, peretas berusaha melakukan scanning terhadap database tetapi yang dihasilkan, peretas tidak menemukan tempat di mana database berada. Dalam implementasi sistem ini komputer client harus mengetahui alamat IP komputer webserver terlebih dahulu (karena pada perancangan ini menggunakan jaringan localhost) dan pada port 80 dibiarkan terbuka agar peretas masuk melalui port tersebut. Komputer client memulai kombinasi pengetukan untuk berkomunikasi dengan server dan masuk ke database melalui port 99 yang tertutup dengan maksud membuka port 99 yang ditunjukkan pada Gambar 5.
Gambar 6 Perintah Port Knocking Untuk Membuka Port 99 Dari Client
Setelah melakukan ketukan, server akan melakukan monitoring port untuk mengetahui apakah ketukan berhasil atau tidak dengan mengetikkan perintah pada komputer server yang ditunjukkan pada Gambar 7.
Gambar 7 Monitoring Dari Port Knocking daemon di Webserver Untuk Membuka Port 99
11
Jika ketukan yang dilakukan komputer client benar, maka Port Knocking daemon akan menjalankan perintah Iptables untuk membuka port 99 (port bayangan yang berada di dalam port 80) sehingga orang lain tidak bisa mengakses port bayangan ini selain client. Setelah berhasil akan muncul tampilan login masuk ke database phpmyadmin dari virtualhost yang dibuat di dalam webserver dengan mengetikkan 192.168.5.10:99 di browser client yang ditunjukkan pada Gambar 8, hal ini bertujuan untuk membedakan akses client ke server internal serta database dari webserver.
Gambar 8 Login Phpmyadmin Saat Setelah Ketukan Dari Client
Gambar 8 merupakan tampilan antarmuka saat client selesai melakukan ketukan pada webserver dan client bisa mengolah databasenya secara aman. Setelah client selesai dalam mengakses port 99 (port bayangan yang berada di port 80) di komputer server, maka langkah selanjutnya adalah client melakukan ketukan port kembali dengan format ketukan yang digunakan untuk menutup kembali port 99 pada komputer webserver,Perintah yang digunakan dapat dilihat pada Gambar 9.
Gambar 9 Perintah Untuk Menutup Kembali Port 99 Yang Terbuka root@ubuntu:~# knock -v 192.168.5.10 4099
3099 2099
hitting tcp 192.168.5.10:4099
hitting tcp 192.168.5.10:3099
12
Gambar 10 Proses Dari Ketukan Untuk Menutup Port 99
Ketika client melakukan ketukan, maka program Port Knocking daemon akan melakukan monitoring kembali apakah port yang diketuk sesuai dengan format ketukan CloseHTTP. Jika ketukan benar, maka Port Knocking daemon akan menjalankan perintah Iptables untuk menutup port 99 yang ada di dalam port 80, sehingga tidak ada satu komputer serta client yang bisa mengakses kembali port 99. Untuk mengetahui proses monitoring, komputer server melakukan perintah yang sama untuk menampilkan hasil monitoring sehingga akan tertampil pada Gambar 10.
5. Hasil Pengujian
Hasil pengujian dilakukan dengan membandingkan dua buah sistem yang berbeda yaitu :
1. Sistem Keamanan dengan Firewall pada Webserver tanpa metode Port Knocking
13
Gambar 11 Topologi Dimana Peretas Melakukan Aksinya Saat Sistem
Keamanan Jaringan yang Dibangun hanya Menggunakan Firewall
Gambar 11 menunjukkan bahwa sistem memakai firewall sebagai keamanan jaringan pada webserver beserta databasenya yang ddapat dijelaskan sebagai berikut :
14
Gambar 12 Hasil Serangan dengan Websploit Sebelum Memakai Metode Port
Knocking
Gambar 13 Hasil Serangan Peretas yang Meretas Login Page Name dari Server sehingga
Peretas dapat masuk ke Phpmyadmin
15
2. Sistem Keamanan menggunakan Metode Port Knocking pada Webserver
Sistem yang dibangun dengan menggunakan metode Port Knocking lebih aman karena disertakan juga virtualhost sebagai port bayangan agar admin bisa mengakses database phphmyadmin tanpa melalui port 80 sehingga peretas tidak akan mengetahui bahwa databasenya berada di port 99 yang dalam keadaan port tertutup ataupun filtered. Adapun topologi serta proses peretas melakukan scanning menggunakan tools websploit pada Gambar 14 dan Gambar 15.
Gambar 14 Topologi Sistem Keamanan Jaringan Menggunakan Metode Port Knocking
Untuk Melindungi Webserver dan Database
Pada Gambar 14 menunjukkan sistem keamanan jaringan dengan menggunakan metode Port Knocking untuk melindungi webserver serta databasenya yang akan dijelaskan sebagai berikut :
16
Gambar 15 Hasil Proses Serangan yang Dilakukan Peretas Setelah Webserver
Menggunakan Metode Port Knocking
Gambar 16 Hasil Saat Metode Port Knocking Diterapkan di port 80, dimana
17
Gambar 17 Hasil Saat Metode Port Knocking Dapat Melindungi Database
Phpmyadmin
 Kemudian admin akan melakukan ketukan pada port 99 yang berada didalam webserver sehingga admin dengan leluasa akan bisa mengakses database tanpa terdeteksi oleh peretas yang sedang melakukan scanning dengan tools websploit pada BackTrack dengan masuk ke webrowser dan mengetikkan alamat IP server dan menambahkan :99 dibelakang alamat IP server yang ditunjukkan pada Gambar 16.
 Admin kembali melakukan pengetukan ke port 99 untuk menutup port tersebut dan peretas tidak bisa masuk ataupun melacak port 99 serta databasenya, seperti yang ditunjukkan pada Gambar 17.  Hanya admin yang dapat mengetahui format ketukan port dan
webserver akan mengabaikan ketukan yang salah.
6. Simpulan
18
sangat sederhana, sehingga perlu dikembangkan lagi dengan cara penambahan sistem one time password atau ketukan yang terus diganti saat client melakukan komunikasi sehingga dapat mempersulit peretas untuk dapat meretas kombinasi ketukan; 2) Bisa dikembangkan lagi pada service port yang lain sehingga tidak hanya di webserver saja tapi metode ini dapat melindungi komunikasi pada service apapun; 3) Dalam hal ketukan dapat ditambahkan dengan pemilihan port yang rumit karena dalam perancangan ini hanya dibuat secara permanen untuk memudahkan dalam mengingat; 4) Metode ini bisa dikembangkan dan diuji tidak hanya di sistem operasi Ubuntu namun bisa coba diuji di berbagai sistem operasi.
6. Daftar Pustaka
[1]. Dwianto, Dedi., 2007, Membuka Akses Firewall Melalui Network, Echozine, 5(7), http://www.echo.or.id. (Diakses tanggal 17 September 2014).
[2]. Danu, Sujiwo, 2009, Analisa dan Implementasi Sistem Keamanan Jaringan dengan IPtables sebagai Firewall Menggunakan Metode Port Knocking, Jurnal Informatika, 5(2):1-15.
[3]. Dahlan, Moh., 2014, Pengujian dan Analisa Keamanan Website Terhadap Serangan SQL Injection, 8(4):1-17.
[4]. Andi, 2012, Network Hacking dengan Linux BackTrack, Semarang: Wahana Komputer.
[5]. Jeanquier, Sebastian, 2006, An Analysis of Port Knocking and Single Packet Authorization, Information Security Group : Royal Holloway College, University of London.
Fakultas Ilmu Komputer Universitas Petra, VirtualBook,
http://faculty.petra.ac.id/dwikris/docs/desgrafisweb/www/4-apaitu_www.html, (Diakses tanggal 12 Oktober 2014).
Anastasia, Melan, M., 2013, Trik Menguasai PHP + JQuery Berbasis Linux & Windows, Yogyakarta: Lokomedia.