Kategori
Security

Keamanan Web (Web Security)

Pendahuluan

Dengan perkembangan website-website yang semakin hari semakin kompleks dan semakin banyak pula pihak yang menggunakan internet, amatlah penting bagi kita semua untuk semakin memperbekali diri dengan pengetahuan mengenai bagaimana kita bisa mengamankan diri (dan website kita) dari berbagai ancaman digital yang ada.

web-security

Sebuah laporan yang diterbitkan berkala oleh Whitehat Security menunjukkan bahwa setidak-tidaknya 86% website di dunia memiliki satu atau lebih celah keamanan yang tergolong serius.  Hal ini bukan hanya berlaku untuk website-website berukuran kecil (personal), namun juga berlaku untuk website-website perusahaan besar (corporate).  Website penukaran Bitcoin terbesar di China yakni BTER berhasil di hack oleh pihak-pihak yang tidak bertanggung jawab dan membawa lari Bitcoin senilai 1,75 juta dolar Amerika.  Pada tahun 2012, salah satu website penyedia jasa hosting dan domain yang populer di Amerika yakni Godaddy juga berhasil di hack dan dirusak.

Majunya teknologi internet ternyata juga memiliki dampak dan potensi risiko. Terutama website dan layanan internet lain yang memiliki potensi besar diserang oleh para hacker. Di tahun 2017, website di Indonesia tercatat mendapat sekitar 1.225 miliar serangan cyber setiap harinya.

Ancaman Web Application

Dahulu sering kali kita bicara ancaman-ancaman di level Infrastruktur, di bagian network, perangkat, system operasi, service dan server. Dari ancaman-ancaman tersebut pada akhirnya diciptakan perangkat-perangkat yang khusus dirancang sebagai bentuk pengamanan terhadap infrastruktur IT. Perangkat-perangkat seperti Firewall, IDS, IPS, IPtables, bisa dijadikan pilihan untuk mencegah, mengidentifikasikan, bahkan sampai menangkal serangan hacker.

Tetapi seiring dengan perkembangan teknologi informasi dan komunikasi yang tak pernah berhenti, telah menjadikan dunia web sebagai platform di jaringan internet yang sangat populer. Dengan semakin populernya dunia web ini maka secara tidak langsung akan semakin besar pula resiko dan ancaman keamanannya.

Para Hacker mulai mencari celah keamanan dan membuat tools untuk memudahkan apabila mereka ingin melakukan aksinya kembali. Tetapi pada praktiknya tools-tools tersebut dapat dengan mudah di download di Internet, dibuat agar mudah digunakan bahkan untuk seorang yang awam di dunia hacking. Sehingga menjadikan resiko digital semakin tinggi.

Di level Infrastruktur kita mengenal serangan-serangan seperti DOS, DDOS, DNS poisoning, Worm dan Trojan Horse. Sedangkan serangan-serangan di level aplikasi ini seperti SQL Injection, File Injection dan XSS. Metode hacking tersebut akan mencari kelemahan pada sistem walaupun secara logic bisnis dapat diterima.

Mayoritas serangan aplikasi web terjadi melalui cross-site scripting (XSS) dan injeksi SQL serangan yang biasanya hasil dari coding cacat, dan kegagalan untuk membersihkan masukan ke dan output dari aplikasi web. Ini peringkat di 2009 CWE / SANS Top 25 Kesalahan Pemrograman Paling Berbahaya.

Phishing adalah ancaman umum lain untuk aplikasi Web dan kerugian global dari jenis serangan pada 2012 diperkirakan mencapai $ 1,5 miliar.

Definisi

Website atau situs adalah kumpulan halaman yang menampilkan informasi data teks, data animasi, suara, dan video atau gabungan dari semuanya, baik yang bersifat statis maupun dinamis. Yang membentuk satu rangkaian yang saling terkait dimana masing-masing dihubungkan dengan jaringan – jaringan halaman (hyperlink).

Bersifat statis apabila isi informasi website tetap, jarang berubah, dan isi informasinya searah hanya dari pemilik website. Contoh website statis adalah berisi profil perusahaan. Bersifat dinamis apabila isi informasi website selalu berubah-ubah, dan isi informasinya interaktif dua arah berasal dari pemilik serta pengguna website. Contoh website dinamis adalah seperti Facebook, twitter, dll. Dalam sisi pengembangannya, website statis hanya bisa diupdate oleh pemiliknya saja, sedangkan website dinamis bisa diupdate oleh pengguna maupun pemilik.

Sementara definisi dari web security sendiri adalah

Web Security adalah tata aturan atau cara mengamankan aplikasi web yg dikelola, biasanya yg bertanggung jawab melakukannya adalah pengelola aplikasi web tersebut.”

Terdapat 3 prinsip utama mengenai masalah keamanan web yaitu Confidentiality, Integrity, dan Availability atau lebih dikenal dengan nama CIA. Sama halnya ketika bergelut dengan keamanan (security) sebuah website, prinsip CIA sudah selayaknya dijadikan pedoman yang harus dipahami apabila ingin website kita lebih aman dan sulit untuk diserang.

  1. Confidentiality
    Confidentiality memiliki makna bahwa data atau informasi yang berada di dalam sebuah website hanya dapat di baca atau di akses oleh orang-orang yang memang memiliki kewenangan untuk mengaksesnya. Dalam era konsep Web 2.0 yang sedang berkembang beberapa tahun belakangan ini, sangat memungkinkan sebuah website untuk dapat memiliki lebih dari satu administrator. Contohnya adalah WordPress engine. Idealisme Web 2.0 yang dapat mengajak siapa pun menjadi kontributor artikel-artikel di dalam sebuah website, membuat siapa pun dapat mengakses halaman administrator untuk memberikan kontribusinya baik dalam bentuk artikel maupun manajemen. Hal ini sangat berbahaya mengingat pada halaman administrator kita dapat mengedit file-file yang menjadi tema dari website yang bersangkutan.
    Dalam kasus WordPress, untuk mengantisipasi tangan-tangan jahil orang yang tak dikenal, developer WordPress sendiri telah mengantisipasi hal ini dengan cara membuat role-role dari setiap user yang dimiliki. Sebagai contoh, Role selain administrator tidak dapat mengubah tema atau plugin website yang bersangkutan. Sehingga tidak mungkin pengubahan tema dilakukan oleh user selain administrator. Dengan pembagian Role seperti ini data ataupun informasi seperti list user-user hanya akan dapat dilihat oleh sang administrator sedangkan profile user dapat di akses oleh masing-masing user. Dengan demikian tingkat keamanan dapat dikatakan semakin tinggi.
  2. Integrity
    Integrity memiliki pengertian data-data yang berada didalam server atau website hanya dapat diubah ataupun di delete oleh orang yang memiliki kewenangan untuk melakukan hal itu.
    Sebagai contoh proses transfer dari server ke client atau sebaliknya (dapat berupa upload maupun download), ternyata mengubah file yang sedang di transfer tersebut. Hal ini mengindikasikan bahwa sebuah aplikasi website yang sedang digunakan tidak aman (insecure).
    Sama halnya jika ada serangan sebuah virus yang dapat mengubah sebuah file, entah itu mengubah nama ataupun isinya. Terkadang user dengan role yang lebih rendah dari administrator dapat dengan cara tertentu (termasuk didalamnya karena ketidaksengajaan) melakukan hal ini sekalipun ia tidak dapat mengakses data yang sedang diubah ataupun dihancurkan itu.
    Tindakan ini terkadang adalah tindakan yang memang tidak di sengaja oleh user tersebut. Di akibatkan karena adanya error dalam aplikasi web yang sedang digunakan. Untuk membuat website menjadi lebih aman, hal ini harus dihindari. Salah satunya adalah dengan mengaplikasikan salah satu proses yang wajib ada dalam sebuah proses software engineering yaitu proses testing. Proses testing ini dibagi menjadi dua yaitu, Black box testing dan White box testing.
    Secara sederhana black box testing adalah mengetes aplikasi yang diperuntukkan oleh user yang memang mengakses website. Sedangkan untuk whitebox testing mengkhususkan diri kepada testing fungsi-fungsi yang telah ditulis dalam bahasa pemrograman tertentu (PHP, Perl, ASP, Javascript, dan lain sebagainya).
  3. Availability Jika confidentiality bermakna hanya user yang memiliki kewenangan yang dapat melihat data tertentu yang tersimpan didalam sebuah server atau website, availability memiliki makna bahwa website harus dapat diakses jika user ingin meggunakannya. Availability hanya menekankan kepada dapat diaksesnya sebuah website. Mengenai siapa yang dapat mengaksesnya itu telah dicover oleh prinsip confidentiality. Jika sebuah website dapat diakses tanpa adanya error, itu berarti website tersebut telah memenuhi prinsip availability ini. Hal ini memiliki makna bahwa sebuah website haruslah dapat diakses apabila memang dibutuhkan, dengan kata lain, website harus selalu.

Jenis Serangan pada Website

Serangan yang dilakukan oleh para hacker memiliki berbagai macam cara. Target mereka biasanya website dengan reputasi terpercaya yang berpotensi menghasilkan keuntungan besar. Contohnya adalah website milik lembaga pemerintahan, perbankan, atau lembaga keuangan serta perusahaan besar. Motif hacker ini tidak lain adalah untuk mencari keuntungan dengan aksi kejahatan di dunia maya (cyber crime). Beberapa aksi kejahatan dalam dunia maya yang kerap dilakukan hacker antara lain adalah:

  • Malware

Jenis serangan berupa malware sering terjadi pada website tertentu melalui perangkat lunak berbahaya. Jenis malware berbahaya yang terdapat dalam software biasanya adalah ransomware. Serangan ini muncul saat kamu mengklik pada link yang dianggap berbahaya atau membuka attachment yang bisa menginstal aplikasi berbahaya secara otomatis.

Bila serangan malware ini berhasil, maka semua data penting dari perangkat maupun website akan mudah diretas. Dampak buruknya, tidak hanya data yang bisa diretas, tapi para hacker pun bisa menggunakan datamu untuk bertindak kejahatan lain.

Salah satu jenis malware yang digunakan adalah Trojan Horse yang dapat merusak sebuah sistem. Trojan ini dapat digunakan untuk memperoleh informasi dari target seperti password, system log dll, dan dapat memperoleh hak akses dari target. Trojan merupakan software yang berbeda dengan virus atau worm karena trojan ini bersifat stealth dalam beroperasi dan seolah-olah seperti program biasa yang tidak mencurigakan dan trojan juga bisa dikendalikan dari komputer lain (attacker). ada beberapa jenis trojan dan 3 diantaranya yaitu:

  1. Pencuri Password -> jenis trojan ini dapat mencuri password yang disimpan didalam sistem dengan cara membuat tampilan seolah-olah tampilan login dengan menunggu host memasukan passwordnya pada saat login kemudian password tersebut akan dikirimkan ke attacker
  2. Keylogger -> Jenis Trojan akan merekam semua yang diketikan oleh host dan mengirimkanya ke attacker.
  3. RAT (Remote Administration Tools)-> Jenis trojan ini mampu mengambil alih kontrol secara penuh terhadap sistem dan dapat melakukan apapun yang attacker mau dari jarak jauh seperti memformat hardisk, mengedit dan menghapus data dll
  • Pharming

Serangan ini merupakan pengalihan situs dari situs resmi ke situs palsu dengan tujuan untuk mendapatkan data pengunjung. Biasanya korban serangan ini merasa tidak sadar dan tidak mengetahui jika situs yang dikunjungi sedang dibajak. URL di mesin pencarian kamu menampilkan website yang sah, tapi sebenarnya yang terjadi tidaklah demikian.

Teknik pharming banyak menyerang website lembaga keuangan dan bank dengan membuat tampilan website yang mirip dengan website bank si pengunjung website. Korban akan mengetahui dirinya sebagai korban kejahatan siber ini ketika uang dalam rekening berkurang drastis karena data-data perbankan itu sudah dibobol hacker saat membuka website.

  • Denial of Service

Berikutnya yang perlu diwaspadai dari serangan cyber crime para hacker pada website kamu adalah Denial of Service (DoS). United States Computer Emergency Readiness Team mendefinisikan serangan ini sebagai serangan yang mengganggu server tertentu dan para penyerang ini akan membanjiri situs hosting yang bertujuan meningkatkan traffic, sehingga pengguna resmi tidak dapat mengaksesnya.

Serangan DoS ini mampu melumpuhkan sebuah website dan menimbulkan kerugian yang tidak sedikit. Terlebih lagi bila situs atau website yang diserang merupakan website milik lembaga pemerintahan atau layanan perbankan.

  • Man in the Middle

Seperti namanya, jenis cyber crime ini merupakan serangan yang menempatkan hacker di antara jalur komunikasi dua pengguna. Hacker tersebut akan mengetahui seluruh informasi yang dilakukan oleh kedua pengguna tersebut. Kemudian hacker akan mencegat dan mengalihkan informasi yang mengalir tersebut, lalu memodifikasinya.

Tidak jarang pula mereka juga menyisipkan malware dan berbagai virus berbahaya lainnya. Bila kamu menjadi korbannya, bisa jadi jalur komunikasi yang kamu lakukan dengan pengguna lainnya akan terganggu bahkan tidak bisa diakses sama sekali. Sementara datamu perlahan diretas oleh hacker. Oleh karena itu, enkripsi di website adalah hal penting yang perlu kamu perhatikan ketika mengutak-atik website. Salah satu contoh yang digunakan dalam MITM adalah sniffer

Sniffer Paket atau penganalisa paket (arti tekstual: pengendus paket — dapat pula diartikan ‘penyadap paket’) yang juga dikenal sebagai Network Analyzers atau Ethernet Sniffer ialah sebuah aplikasi yang dapat melihat lalu lintas data pada jaringan komputer. Dikarenakan data mengalir secara bolak-balik pada jaringan, aplikasi ini menangkap tiap-tiap paket dan kadang-kadang menguraikan isi dari RFC(Request for Comments) atau spesifikasi yang lain. Sniffer paket dapat dimanfaatkan untuk hal-hal berikut:

  1. Mengatasi permasalahan pada jaringan komputer.
  2. Mendeteksi adanya penyelundup dalam jaringan (Network Intusion).
  3. Memonitor penggunaan jaringan dan menyaring isi isi tertentu.
  4. Memata-matai pengguna jaringan lain dan mengumpulkan informasi pribadi yang dimilikanya (misalkan password).
  5. Dapat digunakan untuk Reverse Engineer pada jaringan.

Paket-paket yang terkenal WireShark, tcpdump, Ethereal, Ettercap, dSniff, EtherPeek dan AiroPeek

  • Cross-Site Scripting (XSS)

Cross-Site Scripting sekilas tidak jauh berbeda dengan Man in the Middle yang dilakukan para hacker. Hacker akan menyerang sebuah situs atau website dengan menyelipkan kode-kode tertentu. Setelah memasukkan kode ke dalam website tersebut, nantinya data pengguna akan tertuju pada hacker, mulai dari username, password, dan data lainnya.

Tidak hanya korban yang merasa dirugikan, namun serangan ini juga akan membuat reputasi website semakin buruk sehingga perlahan akan ditinggalkan oleh pengunjung. Website dengan sistem keamanan yang buruk biasanya akan menjadi sasaran bagi para hacker untuk melakukan aksi kejahatan ini.

web-security

  • Phishing

Para berandalan digital ini memanfaatkan halaman aplikasi web tiruan yang mirip dengan aplikasi web kita dan membuat user terjebak dengan halaman yang salah dan dikira adalah halaman asli kita. Selain halaman web yang hampir serupa, nama domain pun hampir serupa karena biasanya ada saja user yang kedapatan salah ketik saat mengakses aplikasi web kita.

Misal ketika seseorang ingin mengakses http://www.facebook.com ternyata ada nama domain lain yang serupa misalnya http://www.facebooks.com atau http://www.facebok.com, lalu apa yang terjadi? Ketika user ingin melakukan pembayaran untuk kursus online menjadi web programmer ternyata nama domain yang diakses salah dan malah memasukkan informasi penting seperti no kartu kredit kepada halaman salah tersebut.

Baca juga : Keamanan Jaringan

Kerugian yang dialami selain suatu layanan menjadi tidak kredibel, data pengguna pun dapat dimanfaatkan untuk kepentingan yang tidak baik. Misal dengan informasi kartu kredit yang sudah diketahui, pelaku phising dapat memanfaatkan informasi kartu kredit tersebut untuk membeli kebutuhan atau barang yang diinginkannya dengan menggunakan nomor kartu kredit dan secret code yang sudah ditangkap dari user yang terjebak phising tersebut.

web-security

  • Bruteforce Attack

Hampir sama dengan denial of service, hanya saja yang diserang misalnya adalah form login, apa akibatnya? dengan sejumlah tebakan dalam jumlah masif, account user atau account admin dapat diketahui oleh penyerang. Karena bentuk password yang terlalu sederhana atau mungkin trivial digunakan (misal username: admin, password: admin atau password), sehingga dengan mudah penyerang dapat menguasai sistem admin aplikasi web.

Selain mengambil alih aplikasi web, penyerang bisa saja mengambil data – data confidential seperti jumlah transaksi ataupun data sensitif lainnya yang berarti bagi penyerang. Karena saking sensitifnya, data tersebut bisa mendatangkan sejumlah keuntungan seperti menjual kepada kriminal lainnya, menjual kepada kompetitor bisnis, atau untuk kejahatan pribadi yang merupakan kelanjutan dari penyerangan ini.web-security

  • Lemahnya Security Policy

Penyerangan lain dapat terjadi karena lemahnya security policy. Karena pemilik aplikasi web tidak perhatian terhadap bagian utama dari aplikasi web yaitu manusia yang berinteraksi dengannya. Sehingga aplikasi web dapat diserang dari sisi penggunanya atau pengelolanya. Masalah ini lebih berat kepada masalah perilaku manusia yang lalai dan berujung pada penyerangan aplikasi web.

Dapat kita bagi menjadi dua seperti berikut:

  1. Operasional, ada saja perilaku lalai dari pihak operasional, misal password halaman admin atau server yang dipasang di sticky note, atau juga ada saja pihak operasional yang dengan bangganya membagikan informasi confidential, kepada grup Whatsapp atau Facebook. Tentu hal tersebut keren bagi orang yang mengunggahnya, namun orang jahat bisa saja memanfaatkan keadaan seperti itu. Atau ada juga developer yang tak sengaja membagikan konfigurasi database ke grup lain karena salah upload.
  2. User, misal di sebuah bank mereka memiliki layanan internet banking karena kurangnya security policy, pihak bank tidak memperingatkan nasabahnya untuk selalu menjaga account internet banking miliknya kepada orang lain. Kerugian yang didapatkan bisa jadi user tersebut kehilangan uang karena lalai memberikan account-nya kepada orang lain yang tidak dipercaya. Atau juga ketika kartu kredit hilang, nasabah tidak cepat – cepat memblokir kartu SIM dan kartu kredit sehingga orang yang menemukannya malah memanfaatkan informasi penting tersebut.
  • Defacing

Penyerangan ini lebih mengakibatkan kepada jatuhnya reputasi pemiliki aplikasi web atau seuatu website. Penyebabnya adalah terlalu sering menggunakan default setting dari suatu CMS tanpa mengganti ke settingan yang lebih aman dan eksklusif, selain itu sering mengabaikan update dari penyedia aplikasi web yang digunakan.

Defacing biasanya dilakukan dengna mengubah atau menambah konten menjadi kurang indah dipandang atau berisi informasi provkatif dari penyerang. Ada pelaku defacing yang meminta jaminan ada juga yang hanya ingin menjadi ajang pembuktian diri.

  • DNS Poisoning

Merupakan Jenis serangan dengan cara memberikan informasi IP address yang palsu untuk mengalihkan trafik pada paket data dari tujuan yang sebenarnya. biasanya cara ini dipakai attacker untuk menyerang situs-situs ecommerce dan banking. attacker juga dapat membuat server palsu yang memiliki tampilan yang sama dengan situ yg sebenarnya. oleh karena itu diperlukan adanya digital certificate untuk mengamankanya agar server palsu tersebut dapat dibedakan dengan server aslinya yang memiliki digital certificate

  • SQL Injection

Sebuah teknik serangan yang memanfaatkan celah keamanan dimana website mengijinkan user untuk menginput data tetapi tanpa adanya filter terhadap malicious character sehingga attacker bisa mendapatkan akses kedalam basis data sebuah aplikasi. inputan tersebut biasanya dimasukan kedalam bagian-bagian tertentu pada website yang berhubungan dengan database dari situs tersebut. attacker biasanya memasukan data link yang mengarahkan korban menuju website yang digunakan attacker untuk mengambil informasi/data pribadi dari korban. Untuk mempermudah dalam praktek SQL Injection ini, maka bisa menggunakan tools berikut:

  1. BSQL Hacker
  2. The Mole
  3. Pangolin
  4. SQLMap
  5. Havij
  6. Enema SQLi
  7. SQL Ninja
  8. SQL Sus
  9. Safe SQL Injector
  10. SQL Poizon
  • Credential Reuse

Jenis ini biasanya memanfaatkan kelemahan dari konsumen, jika memiliki usernam dan password dan PIN yang sama di beberapa akun, maka itu menjadi makanan empuk dari Credential Reuse. Hal ini karena dari jenis cyber attack ini yang menggunakan ulang beragam infomrasi penting yang sudah mereka dapatkan sebelumnya. Ketika hacker sudah mendapatkan informasi penting itu, mereka segera menyerang akun-akun korban lainnya. Untuk mencegah serangan jenis ini sebaiknya perlu mengganti password akun secara berkala dan berbeda password dari satu akun ke akun lainnya, agar tidak lupa menggunakan password manager.

  • PHP Injection

Script php merupakan salah satu script yang sampai saat ini banyak digunakan oleh seorang webmaster, disamping rival nya Java. Script php ini begitu ‘Powerfull’, mengapa dikatakan demikian karena dalam script php ini kita bisa melakukan banyak hal. Mulai dari membuat file, membuat counter, membuat date, membuat bukutamu, membuat forum (salah satunya PhpBB), mengakses database secara langsung maupun juga membuat gambar dan animasi. Kesemuanya itu sudah terdapat dalam fungsi dari script php ini.

Nah karena hal itu lah maka masih banyak orang yang menggunakannya untuk membangun sebuah website, selain karena cukup mudah dipelajari.

Jadi PHP Injection adalah mencari bugs pada script php yang ada yang dilakukan oleh sebagian hacker.

Web Application Security

Seorang developer dapat meminimalisir celah keamanan aplikasi dengan cara memaksimalkan tugas-tugas QA (Quality Assurance). Memastikan aplikasi lolos testing di unit test, functional test UAT (user acceptance test), Blackbox dan Whitebox testing, sehingga dapat mengurangi kemungkinan-kemungkinan dari input dan behaviour yang diluar skenario.

Tetapi metode dan teknik hacker semakin hari semakin canggih. Dibutuhkan layer pertahanan tambahan untuk menangkal serangan di level ini. Dan salah satu cara untuk meng-implementasi web application security adalah dengan menggunakan Web Application Firewall atau disingkat menjadi WAF.

Seperti halnya dengan firewall yang sudah kita kenal selama ini, WAF memiliki bentuk hardware dan perangkat lunak, dan juga dalam bentuk layanan Cloud. Untuk yang hardware biasanya fitur ini sudah ter-bundling dengan perangkat Network Firewall. Ada yang bisa langsung digunakan, ada juga yang harus membayar subscription atau sebagai module tambahan.

Tidak hanya di perangkat keras, WAF tersedia juga sebagai aplikasi yang dapat di install di sistem kita. Dengan beberapa settingan dan kita sudah bisa mendapatkan proteksi dari WAF ini. List beberapa aplikasi WAF yang populer bisa dilihat disini. Yang biasa diketemui di beberapa infrastruktur, biasanya mereka menggunakan mod_security yang bisa dipasang di Nginx dan Apache, atau Naxsi (Nginx Anti XSS and SQL Injection).

Dan hadir pula WAF berbasis cloud seperti Akamai, Cloudflare dan Amazon WAF. Akamai dan Cloudflare merupakan penyedia layanan khusus CDN, dan Amazon mengkhususkan pada layanan Cloud. Disini terlihat bahwa WAF melengkapi layanan cloud yang diberikan oleh mereka.

Cara WAF Bekerja

Serupa dengan firewall jenis proteksi network, WAF bekerja berdasarkan pola-pola transaksi web yang dianggap mencurigakan. Dari pola-pola tersebut dijadikan aturan-aturan yang menjadi dasar penilaian (scoring) seberapa besar resiko atau ancaman yang sedang terjadi.

Aturan-aturan tersebut terdiri dari aturan SQL injection, aturan File injection, XSS, Directory Traversal dan lainnya. Setiap pola yang terdeteksi melanggar aturan tersebut akan diberikan score atau nilai. Dari nilai tersebut lah WAF akan menilai tingkat ancaman yang  selanjutnya akan diambil tindakan yang diperlukan. Apakah akan men-drop transaksi tersebut, atau mengirim peringatan ke sistem notifikasi internal IT kita.

Contoh aturan untuk SQL Injection seperti mengamati pola-pola yang mencurigakan pada request seperti penggunaan kata-kata DATABASE, DROP, TABLE, UNION, CONCAT, /*, */ atau encoding yang menggunakan hex. Untuk file injection memiliki aturan-aturan seperti mengawasi penggunaan file extension dan mime type yang tidak diharapkan oleh aplikasi. Dan untuk aturan-aturan XSS contohnya seperti mencurigai penggunaan request yang terdapat karakter <, >, :, ~, ; dan lainnya.

Aturan-aturan yang terdapat di WAF sebagian besar dari referensi Open Web Application Security Project (OWASP). Dari web tersebut kita bisa lihat bagaimana teknik dan metode yang digunakan untuk hacking aplikasi web. Dengan mempelajari cara kerjanya, akan memudahkan pada saat implementasi WAF di internal IT. Karena akan berhubungan dalam menentukan aturan-aturan yang akan digunakan, skoring, dan bagaimana desain dan flow aplikasi web yang kita miliki.

OWASP adalah badan standar muncul untuk keamanan aplikasi Web. Secara khusus mereka telah menerbitkan OWASP Top 10 yang menjelaskan secara rinci ancaman utama terhadap aplikasi web. The Web Consortium Keamanan Aplikasi (WASC) telah menciptakan Web Hacking Insiden database dan open source dokumen praktek terbaik juga diproduksi pada keamanan aplikasi Web.

Dengan semakin tingginya resiko dan ancaman pada aplikasi web maka kesadaran kita akan bahaya ini sudah seharusnya dirubah menjadi sebuah aksi. Siapapun yang akan memangku tanggung jawab pada web application security ini pada akhirnya akan membutuhkan kordinasi antara tim developer dan tim infrastruktur.

Yang perlu digaris bawahi disini adalah, ancaman pada aplikasi web sedang menjadi trend di dunia hacking. Tempatkanlah area IT kita ke dalam zone aman dari semua resiko tersebut.

Dasar-dasar Menjaga Keamanan Web

Penjagaan keamanan termasuk hal yang penting dilakukan dalam web maintenance. Menjadi penting, jangan sampai kejadian dulu dan menyesal karena kehilangan banyak hal, baru sadar akan pentingnya hal itu. Beberapa hal dasar yang dapat kita lakukan untuk mencegah terjadinya hal-hal yang tidak diinginkan, serta untuk berjaga-jaga kalau kemungkinan terburuk menyerang, adalah sebagai berikut:

  1. Backup rutin Ini yang paling wajib untuk dilakukan. Backup file-file dan database-nya secara berkala, sesuai dengan frekuensi pembaruan (update) isi website. Kalau websitenya diperbarui setiap hari, backup-lah setiap hari, begitu seterusnya. Backup ini penting, untuk mencegah kemungkinan terburuk yang bisa terjadi. Kalau website kita diserang dan hancur-hancuran, kita masih bisa mengembalikan website-nya dari backup ini. Kita bisa melakukan backup secara manual lewat server, namun beberapa Content Management System (CMS) punya plugin untuk melakukan backup secara otomatis. Jasa backup pihak ketiga seperti Carbonite dan Mozy, walau mungkin relatif mahal namun bisa membantu Anda dan perusahaan tempat Anda bekerja untuk melakukan backup website/data.
  2. Gunakan Strong password yang kuat dan tidak pasaran. Yang paling kuat, sebaiknya gunakan password lebih dari 8 karakter, dan merupakan perpaduan dari huruf, angka, dan karakter (seperti ! @ # . , dsb). Hal ini untuk mencegah password kita dibongkar dengan praktek bruteforce (membongkar password dengan mencoba semua kemungkinan). Sama seperti saran password untuk semua hal, jangan gunakan password yang gampang ditebak seperti tanggal lahir, nomer telepon, nomor rumah, dsb. Kalau tetep mau pake itu, pastikan dikombinasikan juga dengan huruf, angka, dan karakter.
  3. Cek Akses Server Website. Apabila kita punya akses pada server website kita, cek apakah software-software yang digunakan di server seperti sistem operasi, web server, PHP, MySQL, mail server, versi cPanel, dsb, selalu yang paling baru. Kalau tidak punya akses ke server, silakan tanya ke penyedia web hostingnya untuk mengetahuinya. Seperti poin poin b, penjahat Internet biasanya sudah mengetahui kelemahan-kelemahan software versi lama.
  4. Cek dan cegah adanya malware atau program jahat bercokol di website kita. Google punya alat untuk mendeteksi itu. Namanya Google Webmaster Tools (walaupun fungsinya tidak cuma untuk keamanan). Lihat menu Labs > Malware details untuk mengetahui apakah ada malware yang ditemukan oleh Google di website kita.
  5. Enkripsi pada halaman sensitif, halaman sensitif yang dimaksud adalah halaman-halaman website Anda dimana kita akan memasukkan data-data sensitif seperti misalnya username dan password.  Sebagai contoh, halaman login WordPress (dashboard), yakni pada folder wp-admin.  Atau contoh lain, halaman login administrator pada Joomla yakni pada folder administrator.  Contoh lainnya, adalah halaman untuk mengakses email Anda dll. Halaman-halaman ini, jika tidak menggunakan jalur komunikasi data yang aman, akan sangat mudah bagi seorang hacker dalam mencuri data-data sensitif kita tersebut.  Pengamanan halaman-halaman semacam ini bisa kita lakukan dengan mudah sebenarnya, yakni dengan menggunakan SSL.
  6. Batasi Penyebaran Informasi Sensitif, Terkadang kita tidak bisa menghindari penyebaran informasi-informasi sensitif yang kita miliki, misalnya username dan password untuk login ke cPanel dan lain sebagainya.  Informasi-informasi semacam ini suka tidak suka, terpaksa harus kita berikan kepada rekan kerja kita misalnya.  Batasi jumlah orang yang mengetahui informasi semacam ini, dan jangan sebarluaskan jika memang bisa.
    Untuk login ke website perusahaan Anda misalnya, sebisa mungkin setiap staff memiliki username dan password mereka masing-masing (dan jangan gunakan 1 username dan password secara bersama-sama).  Jika staff bersangkutan sudah tidak lagi bekerja di perusahaan Anda, segera ganti password nya dan atau non-aktifkan account staff tersebut sehingga Anda tetap bisa menjamin keamanan website perusahaan Anda.
  7. Gunakan koneksi jaringan yang aman, Hindari untuk terhubung (konek) ke internet pada jaringan yang tidak aman atau settingan keamanannya tidak jelas, misalnya pada tempat-tempat umum/cafe/restoran/lounge dll.  Jika Anda terpaksa harus terhubung ke internet melalui tempat-tempat semacam ini, gunakanlah jasa web proxy yang terpercaya seperti misalnya OpenVPN.
  8. Selalu Update, Para pengembang software/website pada saat mengembangkan software mereka, belum tentu tahu akan setiap celah keamanan dan kekurangan dari software yang mereka kembangkan tersebut.  Oleh karena itu, dari waktu ke waktu, mereka akan “menambal” celah keamanan yang mungkin mereka temukan pada software mereka dengan update-update.  Jika Anda mendapatkan pemberitahuan/notifikasi mengenai hal ini, segera update software/website Anda tersebut.
  9. Pahami Tentang Link Website, Pernahkah Anda meng-klik suatu link yang Anda kira akan menuju ke halaman website yang memang ingin Anda tuju, namun Anda malah diarahkan ke halaman-halaman website porno/judi/obat-obatan?  Sekarang bayangkan jika link semacam itu ada pada salah satu atau beberapa halaman website Anda.  Orang-orang yang sering melakukan spamming, akan memanfaatkan link milik Anda yang “polos”, dengan suatu teknik yang dinamakan open redirect.  Dengan teknik ini, mereka bisa “mencuri” traffic website Anda dengan mengalihkan mereka ke halaman-halaman website yang mereka kehendaki (dalam hal ini, halaman-halaman website porno/judi/obat-obatan tadi). Periksalah apakah website Anda termasuk salah satu dari korban teknik open redirect ini, dengan melakukan pencarian sederhana di Google.  Ketikkan “site: namawebsiteanda.com” di kotak pencarian Google.  Tentu Anda harus mengganti namawebsiteanda.com dengan nama website Anda.  Lihat hasilnya, apakah ada halaman-halaman website yang mencurigakan/tidak lazim.
  10. Tetap Waspada, Salah satu aspek sederhana namun juga tidak kalah pentingnya dalam pengamanan website Anda adalah dengan selalu tahu apa yang terjadi dengan website Anda.  Hindari untuk meng-install themes/plugins/extentions hasil bajakan atau yang terlihat mencurigakan.

Dunia internet mungkin memang memiliki banyak sekali potensi bahaya, namun website Anda tidak perlu menjadi salah satu dari korban kejahatan digital yang memang selalu mengancam.  Walau mungkin topik tentang keamanan digital dan website termasuk topik yang serius dan bersifat teknis, namun hambatannya bukan terletak dari seberapa kompleks topik tentang keamanan digital ini melainkan dari seberapa seriusnya diri kita untuk senantiasa melakukan edukasi bagi diri kita sendiri.

Hal-hal di atas adalah hal-hal dasar dan minimal yang bisa dilakukan untuk mengamankan website. Masih ada beberapa hal lain yang lebih teknis dan detail untuk jauh lebih memperkuat keamanan website Anda. Semakin besar website Anda, semakin besar pula seharusnya upaya-upaya penjagaan keamanannya.

Semua hal yang kita lakukan untuk mengamankan website kita memang tidak bisa menjamin 100% website kita aman. Setidaknya, hal-hal dasar ini akan mempersulit langkah-langkah penjahat dunia maya untuk merusak website kita.

Baca juga : Cyber Security

Ref : [1][2][3][4][5][6]