Prinsip Keaman Web
Berikut ini ada beberapa penjelasan mengenai keamanan web.
1. Prinsip-Prinsip Keamanan
o
Prinsip pertama: tidak ada sistem yang 100%
aman. Setiap saat kita harus bersandar pada hardware, software, dan manusia
lain; padahal kita tahu bahwa semuanya memiliki bug. Hardware dapat gagal
berfungsi, software bisa memiliki bolong atau pintu belakang, manusia apa lagi.
Sebaik-baiknya usaha kita mencapai keamanan tertinggi, akan ada celah atau
peluang untuk ditembus. Dan kadang-kadang celah itu diri kita sendiri. Jadi
keamanan absolut tidak ada; yang ada melainkan adalah sistem yang cukup
aman—dalam konteks atau kebutuhan tertentu—dan sistem yang kurang/tidak aman.
Tujuan kita adalah mengetahui bagaimana membuat sistem yang cukup aman dan
menghindari lubang-lubang yang membuat sistem kita tidak aman.
o
Prinsip kedua: jangan percayai siapa/apa pun.
Pada umumnya aplikasi Web—setidaknya yang berjalan untuk situs-situs
publik—harus berurusan dengan banyak user asing. Mengasumsikan bahwa semua user
ini akan bersikap baik-baik merupakan sebuah kenaifan besar. Situs-situs di
Internet, besar kecil, diisengi orang setiap hari. Hanya mengandalkan
pengecekan masukan oleh Javascript juga kesalahan fatal. Javascript dapat
dibypass kapan saja.
o
Prinsip ketiga: kenali sistem Anda lebih dari
orang lain. Bagaimana Anda bisa menjaga rumah seandainya Anda tidak tahu
ada berapa pintu dan jendela di rumah tersebut? Dalam pemrograman Web umumnya
terdapat beberapa komponen terpisah yang bekerja sama: webserver,
aplikasi/bahasa pemrograman, dan server database. Setiap komponen ini berbeda
sifat dan
https://draft.blogger.com/blogger.g?blogID=1197037240439611525#editor/target=post;postID=4724102840529519430perlu
dikenali satu per satu. Anda harus mengerti konfigurasi masing-masing software.
o
Prinsip keempat: hanya mengandalkan
penyamaran bukanlah keamanan yang baik. Bahasa Inggrisnya, security by
obscurity is not good security. Jangan menaruh kunci rumah di pot bunga
atau celah atas pintu seperti yang Anda lakukan di dunia nyata. Akan ada banyak
orang yang melihat rumah Anda. Bagaimana Anda bisa yakin bahwa mereka tidak
akan melirik ke pot bunga atau sekitar pintu? Menyembunyikan halaman
administrasi atau informasi sensitif di alamat URL “aneh” tanpa password
bukanlah tindakan keamanan yang baik, karena “jejak” URL tersebut tercetak di
history browser, di log server-server proxy, dan mungkin juga log referrer
situs lain yang tidak pernah Anda bayangkan sebelumnya. Berpikir “orang tidak
akan kepikir sampai ke sini” adalah pikiran yang salah, karena Anda toh tidak
tahu apa yang ada di pikiran orang lain.
2. Poin-poin penting dalam keamanan web
o Remote File Inklusi (RFI)
Remote File
Inklusi (RFI) adalah jenis kerentanan paling sering ditemukan di situs Web,
memungkinkan penyerang untuk menyertakan file jarak jauh yang biasanya melalui
sebuah script di server web. Kerentanan terjadi karena penggunaan input yang
diberikan pengguna tanpa validasi yang tepat. Hal ini dapat mengakibatkan
sesuatu yang minimal keluaran isi file, tetapi tergantung pada beratnya, untuk
daftar beberapa itu bisa mengarah pada:
* Kode eksekusi pada server web
* Kode eksekusi di sisi-klien seperti Javascript yang dapat menyebabkan serangan lain seperti situs cross scripting (XSS).
* Denial of Service (DoS)
* Pencurian Data / Manipulasi
Dalam PHP penyebab utama adalah karena penggunaan unvalidated variabel eksternal seperti $ _GET, $ _POST, $ _COOKIE dengan fungsi filesystem, yang paling menonjol adalah meliputi dan membutuhkan laporan. Sebagian besar kerentanan dapat dikaitkan dengan programmer pemula tidak akrab dengan semua kemampuan bahasa pemrograman PHP. Bahasa PHP memiliki direktif allow_url_fopen dan jika diaktifkan memungkinkan fungsi filesystem untuk menggunakan URL yang memungkinkan mereka untuk mengambil data dari lokasi terpencil. Seorang penyerang akan mengubah variabel yang dilewatkan ke salah satu fungsi-fungsi ini menyebabkan itu untuk memasukkan kode berbahaya dari sumber daya remote. Untuk mengatasi ini, semua input pengguna harus divalidasi sebelum digunakan.
* Kode eksekusi pada server web
* Kode eksekusi di sisi-klien seperti Javascript yang dapat menyebabkan serangan lain seperti situs cross scripting (XSS).
* Denial of Service (DoS)
* Pencurian Data / Manipulasi
Dalam PHP penyebab utama adalah karena penggunaan unvalidated variabel eksternal seperti $ _GET, $ _POST, $ _COOKIE dengan fungsi filesystem, yang paling menonjol adalah meliputi dan membutuhkan laporan. Sebagian besar kerentanan dapat dikaitkan dengan programmer pemula tidak akrab dengan semua kemampuan bahasa pemrograman PHP. Bahasa PHP memiliki direktif allow_url_fopen dan jika diaktifkan memungkinkan fungsi filesystem untuk menggunakan URL yang memungkinkan mereka untuk mengambil data dari lokasi terpencil. Seorang penyerang akan mengubah variabel yang dilewatkan ke salah satu fungsi-fungsi ini menyebabkan itu untuk memasukkan kode berbahaya dari sumber daya remote. Untuk mengatasi ini, semua input pengguna harus divalidasi sebelum digunakan.
o
Local
File Inclusion (LFI)
Metode yang
memanfaatkan kelemahan script PHP include(), include_once(), require(),
require_once() yang variabel nya tidak dideklarasikan dengan sempurna.
Dengan LFI seorang attacker dapat menginclude kan file yang berada di dalam server yang bersangkutan.
Dengan LFI seorang attacker dapat menginclude kan file yang berada di dalam server yang bersangkutan.
o
SQL
injection
SQL Injection
adalah kode injeksi teknik yang memanfaatkan kelemahan keamanan yang terjadi
pada lapisan aplikasi database. kerentanan ini hadir ketika masukan pengguna
tidak benar baik disaring untuk menghindari karakter string literal tertanam
dalam pernyataan SQL atau masukan pengguna tidak kuat diketik dan dengan
demikian tak terduga dieksekusi. Ini adalah sebuah instance dari kelas yang
lebih umum dari kerentanan yang dapat terjadi kapan pun salah satu bahasa
pemrograman atau script yang tertanam di dalam yang lain. serangan injeksi SQL
juga dikenal sebagai serangan penyisipan SQL.
o
SQL
injection
SQL Injection
adalah kode injeksi teknik yang memanfaatkan kelemahan keamanan yang terjadi
pada lapisan aplikasi database. kerentanan ini hadir ketika masukan pengguna
tidak benar baik disaring untuk menghindari karakter string literal tertanam
dalam pernyataan SQL atau masukan pengguna tidak kuat diketik dan dengan
demikian tak terduga dieksekusi. Ini adalah sebuah instance dari kelas yang
lebih umum dari kerentanan yang dapat terjadi kapan pun salah satu bahasa
pemrograman atau script yang tertanam di dalam yang lain. serangan injeksi SQL
juga dikenal sebagai serangan penyisipan SQL.
o
Cross
Site Scripting (XSS)
Cross-site scripting (XSS) adalah
jenis kerentanan keamanan komputer biasanya ditemukan di aplikasi web yang
memungkinkan penyerang berbahaya untuk menyuntik script sisi klien ke dalam
halaman web dilihat oleh pengguna lain. Sebuah kerentanan dieksploitasi
scripting lintas situs dapat digunakan oleh penyerang untuk mem-bypass akses
kontrol seperti kebijakan asal-usul yang sama. Cross-site scripting dilakukan
di situs Web adalah sekitar 80% dari semua kerentanan keamanan didokumentasikan
oleh Symantec pada 2007. Dampak beragam, mulai dari gangguan kecil dengan
risiko keamanan yang signifikan, tergantung pada kepekaan data ditangani oleh
situs rentan, dan sifat dari setiap mitigasi keamanan dilaksanakan oleh pemilik
situs.
Lubang Cross-site scripting
adalah kelemahan aplikasi web yang memungkinkan penyerang untuk mem-bypass
mekanisme klien-sisi keamanan biasanya dikenakan pada konten web oleh browser
modern. Dengan mencari cara suntik script jahat ke dalam halaman web, penyerang
bisa mendapatkan hak akses diangkat ke konten halaman sensitif, cookie sesi,
dan berbagai informasi lainnya yang dikelola oleh browser atas nama pengguna.
serangan Cross-site scripting Oleh karena itu kasus khusus injeksi kode.
Ekspresi "cross-site scripting" pada awalnya merujuk pada tindakan
loading aplikasi, web diserang pihak ketiga dari sebuah situs serangan yang
tidak berhubungan, dengan cara yang mengeksekusi sebuah fragmen JavaScript
disusun oleh penyerang dalam konteks keamanan dari domain yang ditargetkan (a
dipantulkan atau non-persistent kerentanan XSS). Definisi ini secara bertahap
diperluas untuk mencakup modus lain injeksi kode, termasuk vektor persisten dan
non-JavaScript (termasuk Jawa, ActiveX, VBScript, Flash, HTML atau bahkan
murni), menyebabkan kebingungan untuk pendatang baru dalam bidang keamanan
informasi.
0 komentar: