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