Jumat, 30 Maret 2018

Web Security


Web Security adalah keamanan untuk sebuah web atau tata cara mengamankan aplikasi web yang di kelola, biasa nya yang bertanggung jawab melakukannya adalah pengelola aplikasi web tersebut. Proses ini berupa suatu mekanisme yang bekerja untuk mencegah akses dan modifikasi oleh user yang tidak dikenal, terhadap data-data dari web yang tersimpan secara online.

Berbicara mengenai masalah yang berkaitan dengan keamanan di dalam era digital tidak lepas dari 3 prinsip utama yaitu: Confidentiality, Integrity, dan Availability atau lebih dikenal dengan nama CIA. Sama halnya ketika bergelut dengan keamanan (security) sebuah website, princip 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-data ataupun informasi-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 theme 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 theme dan/atau plugin website yang bersangkutan. Sehingga tidak mungkin pengubahan theme dilakukan oleh user selain administrator. Lebih lengkap mengenai fitur-fitur yang dapat diakses oleh role-role user dapat dilihat di artikel: Perbedaan Role pada WordPress. 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, namun tetap terjadi diakibatkan karena adanya error dalam applikasi web yang sedang digunakan. Untuk membuat website menjadi lebih aman, hal ini tentunya 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 – White box testing Secara sederhana black box testing adalah mengetes aplikasi yang diperuntukkan oleh user yang memang mengakses website tersebut (act like enduser -bertindaklah sebagai seorang user/pemakai). Sedangkan untuk whitebox testing mengkhususkan diri kepada testing fungsi-fungsi yang telah ditulis dalam bahasa pemrograman tertentu (PHP, Perl, ASP, Javascript, dan lain sebagainya). Testing-testing ini dibagi menjadi tiga test berdasarkan input aplikasi atau fungsinya, yaitu test dengan menggunakan input value: Yang memang dikehendaki Pas diperbatasan Di luar batasan Apabile memang terdeteksi error dari testing ini sebaiknya segera diperbaiki sebelum error ini ditemukan oleh hacker yang kemudian digunakannya untuk mengeksploit website kita.

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. Memang terkesan membingungkan dan tidak berbeda dengan prinsip pertama, namun kedua prinsip ini sangat jauh berbeda dikarenakan dilihat dari dua sudut pandang yang memang berbeda. 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 versi yang lebih mudahnya adalah, website harus available 24 jam 7 minggu (24/7). Website yang terkena serangan seperti DoS (Denial of Service) yang berarti menolak untuk memberikan service kembali dikarenakan traffic yang sangat padat sehingga membuat server menjadi down, memberikan bukti bahwa keamanan website tersebut telah jebol. Sebuah website yang aman haruslah dapat mengantisipasi adanya serangan-serangan yang membuat website tidak beroperasi dikarena server yang digunakan telah down. Selain DoS ada juga Buffer Overflow yang membuat applikasi web tidak dapat bekerja, atau bahkan masalah kelebihan pemakaian bandwidth yang cenderung dilupakan karena lupa untuk mengkalkulasi target user dari hadirnya sebuah wesbite. Selain itu masalah kualitas perangkat-perangkat keras yang digunakan termasuk perangkat-perangkat lunak seperti Operating System ataupun driver-driver agar perangkat keras tersebut dapat berfungsi sebagaimana mestinya, juga harus mendapatkan prioritas yang tinggi. Kegagalan sebuah perangkat lunak ataupun keras dapat membuat website tidak dapat diakses atau dipergunakan sesuai dengan yang diharapkan.


Celah Keamanan Pada Aplikasi Berbasis Web

Yang telah di sebutkan oleh (OWASP) Open Web Application Security Project adalah project open source yang dibangun untuk menemukan penyebab dari tidak amannya sebuah software dan menemukan cara menanganinya ada 9 celah keamanan aplikasi web yang ditemukan dan rekomendasi.

Diantaranya adalah:

1.       Unvalidated input

Semua aplikasi web menampikan data dari HTTP request yang dibuat oleh user dan menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi bagian-bagian pada request (query string, cookle information, header) untuk membypass mekanisme keamanan.

2.       Broken Access Control

Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori tersebut, salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role: hanya admin role yang dijinkan untuk mengakses halaman khusus atau melakukan action melakukan action administration.

3.       Broken Authentication dan session Management

Authentication dan session management menunjuk kepada semua aspek dari pengaturan user authentifikasi management of active session, ini beberapa hal yang perlu diperhatikan:
·       Password strength, Aplikasi kita harus memberikan level minimal dari keamanan sebuah password dan mendaftar
·       Password use, Aplikasi kita harus membatasi user yang mengakses aplikasi melakukan login kembali ke sistem pada tenggang waktu tertentu

·       Password storage, password tidak boleh disimpan di dalam aplikasi. Password harus disimpan dalam format terenkripsi dan disimpan di file lain seperti database atau file password

4.       Cross Site Scripting

Cross Site Script atau kependekannya XSS merupakan salah satu serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukan kode HTML (HyperText Markup Language) atau client script code lainnya kesuatu situs. Serangan ini akan seolah-olah datang dari situs tersebut akibat serangan ini antara lain penyerang dapat mem-bypass keamanan disisi klkien, mendapat informsi sensitif, atau menyimpan aplikasi berbahaya.

5.       Buffer over Flow

Kelemahan Buffer overflow adalah salah satu dari banyak kelemahan dari keamanan komputer. Kelemahan jenis ini dapat digunakan pada remote acces atau local acces atau, karena ini dapat memberikan si Attacker kesempatan untuk melancarkan jurus-jurus dengan coding di komputer target. Serangan Buffer overflow terjadi ketika si attacker emberikan input yang berlebihan pada program yang di jalankan.

6.       Injection Flows

Injection flaws, yaitu salah satu teknik hacking yang memanfaatkan celah keamanan pada basis datanya. dan yang sering digunakan adalah SQL injection dengan memasukan perintah-perintah SQL pada website yang lemah dalam membuat struktur basis data, akan memudahkan bagi hacker untuk mendapatkan informasi pribadi, seperti strukur tabel basis data, kolom-kolom yang terdapat pada tabel basis data tersebut, hingga isi record basis data tersebut. sehingga hacker bisa mengetahui username atau id dan password admin pengelola website tersebut.

7.       Insecure storage

Aplikasi web biasanya perlu menyimpan informasi yang sensitif seperti password, informasi kartu kredit, dan yang lain. Dikarenakan item-item tersebut bersifat sensitif item-item tersebut perlu dienkripsi untuk menghindari pengaksesan secara langsung. Akan tetapi beberapa metode enkrips lemah dan masih bisa diserang.

Berikut ini beberapa kesalahan yang sering terjadi:
      ·       Kesalahan untuk mengenkripsi data penting
      ·       Tidak amannya kunci, certificate, dan password
      ·       Kurang amannya tempat penyimpanan data
      ·       Kurangnya perhitungan dari rekomendasi

8.       Deniel of Service

Deniel of Service merupakan serangan yang dibuat oleh hacker yang mengirimkan request dalam jumlah yang sangat besar dan dalam waktu yang bersamaan. Dikarenakan request-request tersebut, server menjadi kelebihan beban dan tidak bisa melayani user lainnya.

Serangan DoS mampu menghabiskan bandwidth yang ada pada server. Selain itu dapat juga menghabiskan memory, koneksi database, dan sumber yang lain. Pada umumnya sangat sulit umtuk melindungi apliksi dari serangan ini. Akan tetapi masih ada cara yang dapat dilakukan seperti membatasi resource.

9.       Insecure Configuration Management

Biasanya kelompok (group) yang mengembangkan aplikasi berbeda dengan kelompok yang mengatur hosting dari aplikasi. Hal ini bisa menjadi berbahaya, dikarenakan keamanan yang diandalkan hanya dari segi aplikasi:  sedangkan dari segi server juga memiliki aspek keamanan yang perlu diperhatian, Adanya kesalahan dari konfigurasi server dapat melewati aspek keamanan dari segi aplikasi.

contoh:
·    File-file backup atau file contoh (sample dile), file-file script, file konfigurasi yang tertinggal/tidak perlu
·       Hak akses atau file yang salah

·   Adanya service yang seperti remote administration dan content management yang masih aktif


Mencegah Dan Mengamankan Website/Situs Dari Hack

Untuk mengamankan sebuah website, perhatian besar perlu kita berikan pada banyak hal, mulai dari komputer tempat kita membangun website, tingkat keamanan web server tempat hosting situs, teknologi yang digunakan untuk membangun dan melindungi sebuah website, hingga kemampuan "tim security" dari penyedia webhosting untuk menjaga file-file situs yang dihostingkan di perusahaannya.

1.       Mengamankan Server

Pada umumnya, hosting websites dilakukan pada ISP (Internet Service Provider) dengan space tertentu, lalu kita melakukan upload website via FTP atau via CPANEL (Control Panel). Webhosting inilah yang rawan dan mudah sekali dibobol oleh Hacker di antaranya mengunakan teknik SQL Injection.

Saran, jika memang anda atau lembaga anda berkenan sebaiknya gunakan Server sendiri dan mengunakan VPS (Virtual Private Server). Dengan Server sendiri atau Virtual Private Server bisa mengunakan berbagai proteksi terhadap kita secara Customized dan optimal.

2.       Gunakan sistem yang sudah terpercaya

Mengunakan system yang Stable yang sudah perfect systemnya (termasuk dalam memilih CMS untuk membangun sebuah website) merupakan suatu keharusan. Jangan mengandalkan paket CMS atau Web Builder dan langsung percaya dengan keamanannya, pelajari sistemnya termasuk bagaimana mengcustomisasi seputar keamanannya. Dengan begitu kemungkinan adanya celah keamanan juga dapat diminimalkan.

3.       Audit Server

Web Administrator/ System Administrator harus melakukan Review, Testing, Simulasi secara berkala terhadap keamanan pada Server yang dikelolanya. Bahkan bisa bekerja sama dengan Hacker (White Hacker yang dapat dipercaya reputasinya) untuk melakukan Audit terhadap implementasi Security.

4.       Teknologi Terbaik

Teknologi dalam dunia webserver terus berkembang, saran saya pilihlah web server yang mengunakan Hardware Security yang powerfull diantaranya yang memiliki fitur Firewall, IDS (Intrusion Detection System) dan IPS (Intrusion Prevention System). Contohnya mengunakan Fortigate, Cisco Series Security, 3Com Tipping Point, dan lainnya. Dapat juga mengunakan software IDS seperti Black ICE Countermeasures ataupun Distro Linux untuk security system seperti Smootwall, Monowall, Customized Distro Linux, dan lainnya.


Penerapan Dalam Codeigniter(Framework) Untuk Mencegah Hacking

1.       htaccess security
File .htaccess adalah file teks ASCII sederhana yang terletak di direktori www atau di sebuah sub direktori, folder www
2.       Meningkatkan Keamanan URL Codeigniter
3.       CAPTCHA


Fungsi Dari Htaccess

1.       Mencegah Akses
2.       Mencegah Akses Ke File Tertentu
3.       Mencegah Akses Ke Banyak File
4.       Mencegah User Melakukan Browsing
Pada Setiap Direktori Server Kita
4.1. Mengijinkan User Melakukan Browsing
4.2. Mencegah User Melakukan Browsing Tanpa Pesan Error 403 IndexIgnore *
4.3. Mengijinkan User Melakukan Browsing
4.4. Mengubah index web
5.       Membatasi Akses Ke LAN (Local Area Network)
6.       Melindungi Dari Serangan DOS (Denial Of Service) Dengan Membatasi Upload File















0 komentar:

Posting Komentar