Web security
Web Security
adalah tata cara mengamankan aplikasi web yg dikelola, biasanya yg
bertanggung jawab melakukannya adalah pengelola aplikasi web tsb.
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.
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
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.
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.
Dengan hadirnya
engine seperti WordPress, Joomla, Drupal, atau lainnya tampaknya
seringkali masalah security ini terabaikan. Yang perlu diingat adalah
fremework-framework ini memang dapat memecahkan masalah confidentiality
dan sedikit integrity. Namun prinsip availability sebagian besar
ditangani oleh server di mana website ini disimpan. Oleh karena itu,
jika ingin website kita aman (secure), pertimbangan akan pemakaian
hostingan juga perlu dilakukan dengan baik sebelum memilih hostingan
yang memang cocok untuk mengantarkan website kita ke dunia maya.
No comments:
Post a Comment