3 prinsip utama Web Security
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 prosessoftware 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 DoSada 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 prinsipavailability 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.