SECURITY PADA WEB SCIENCE
WS-Security atau
juga dikenal sebagai Web Service Security Core Language (WSS-Core) merupakan
spesifikasi keamanan Web Service yang mendefinisikan mekanisme pengamanan pada
level pesan SOAP untuk menjamin message integrity & confidentiality.
Standard
WS-Security saat ini dikembangkan secara resmi oleh OASIS berdasarkan
spesifikasi yang diusulkan oleh Microsoft, IBM, dan VerySign pada 11 April
2002. Selanjutnya, OASIS melalui Web Service Security Technical Committee (WSS)
melanjutkan pengembangan WS-Security dengan menetapkan beberapa spesifikasi
teknis terpisah, seperti Core Specification, SAML Profile, XMrL Profile, X.509
Profile, dan Karberos Profile.
Spesifikasi
WSS-Core versi terbaru menyediakan 4 mekanisme untuk memproteksi pesan dari
ancaman terhadap upaya gangguan keamanan pesan SOAP, yaitu:
1. Kemampuan
untuk mengirim security token sebagai bagian dari pesan SOAP,
2. Message confidentiality,
3. Message integrity,dan
4. Message
Availability.
- 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.
-
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.
-
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).
Namun demikian, mekanisme tersebut tidak memberikan solusi
keamanan yang lengkap untuk Web Service. Spesifikasi ini merupakan building
block yang digunakan untuk mengakomoda- sikan berbagai variasi model keamanan
dan teknologi kemanan. Dengan kata lain, WS-Security tidak menspesifikasikan
suatu mekanisme keamanan baru, tetapi menyediakan fleksibilitas untuk
menggunaan teknologi keamanan yang sudah ada (X.509, Karberos, XML Encryption),
sehingga dapat mengakomodasi berbagai pendekatan keamanan secara umum. Hal baru
yang ditambahkan oleh WS-Security adalah suatu spesifikasi untuk menerapkan
mekanisme keamanan yang sudah ada (existing) tersebut kedalam pesan SOAP.
Poin-poin penting dalam keamanan web
1. 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.
2. 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.
3. 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.
4. 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.
* 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.
2. 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.
3. 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.
4. 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.