SHARE
Mengenal Dasar Web Application
Sumber gambar: http://kepran.com

Semakin mudahnya akses internet sekarang ini, banyak sekali manfaat yang didapatkan diantaranya untuk mendapatkan informasi melalui website-website yang memang menyediakan informasi atau berita yang terbaru. Para pengguna internet tidak dituntut untuk memahami bagaimana web tersebut dibuat, namun developer harus memahami bagaimana aplikasi tersebut dibuat dan bahasa pemrograman apa yang harus digunakan.

Menurut (Rouse, 2011) aplikasi web merupakan sebuah program aplikasi yang disimpan di server dan ditampilkan menggunakan browser melalui internet sebagai antarmuka. Bahasa pemrograman yang mendukung aplikasi web ini diantaranya, HTML, PHP, CSS, Python, .NET, Ruby, Python, dan lain sebagainya.

Secara sederhana berikut ini gambaran dari struktur aplikasi web:

Mengenal Dasar Web Application
Sumber gambar: https://mdn.mozillademos.org

Dari gambar diatas, diketahui bahwa ada 2 bagian pokok dalam aplikasi web, yaitu client dan server. Pada sisi client dalam hal ini adalah PC atau juga bisa perangkat mobile yang terhubung dengan internet dan client mengakses aplikasi web ini melalui web browser seperti internet explorer, mozila, google chrome, dan sebagainya. Sedangkan pada sisi server adalah perangkat komputer dengan spesifikasi khusus yang digunakan menyimpan semua file aplikasi web beserta database.

HTML (HyperText Markup Language) yaitu bahasa pemrograman standar yang digunakan untuk membuat sebuah halaman web. Sekarang ini HTML digunakan sebagai standar internet yang dikendalikan dan didefinisikan pemakaiannya oleh World Wide Web Consortium (W3C).

HTTP (Hypertext Transfer Protocol) adalah protokol yang digunakan untuk mengirimkan dokumen yang berformat HTML dari web server ke web browser. Dengan HTTP inilah yang memungkinkan kita dapat menjelajah internet dan melihat halaman web.

Komponen Pada Aplikasi Web

Presentation Tier merupakan bagian front-end dari aplikasi web yang berhubungan langsung dengan web client. Presentation Tier ini dikenal juga sebagai service web server, seperti IIS atau Apache. Tugas dari presentation tier ini adalah menerima inputan dari end-user dan menampilkan output ke end-user melalui webclient.

Application Tier adalah bagian logic atau proses jalannya dari aplikasi web. Pada layer ini semua instruksi pemrograman menghubungkan antara inputan yang dilakukan oleh user pada Presentation Tier dengan data yang ada pada back end untuk melakukan operasi dari aplikasi web. Bahasa pemrograman yang biasanya digunakan adalah C, Java, PHP, dan Visual Basic.

Persistent Tier disebut juga sebagai sumber data untuk aplikasi. Semua kebutuhan data yang diperlukan pada aplication tier maka akan mengambil dari persistent tier ini. Dan jika aplikasi web memerlukan penyimpanan data maka akan disimpan pada persistent storage. Pada umumnya web aplikasi yang menggunakan Persistent tier ini adalah yang menggunakan Database Management System (DBMS), seperti Ms SQL, Oracle, atau MySQL.

Arsitektur Aplikasi Web

2-Tier – Tier berarti tingkatan. Aplikasi yang menggunakan metode n-Tier akan mempunyai beberapa tingkatan. 2-tier memiliki konsep aplikasi diletakkan pada komputer client dan server. Aplikasi utama berjala pada sisi client yang biasanya mengirimkan request dalam bertuk sintak SQL ke database server yang berfungsi untuk menyimpan data. Berikut ini contoh arsitektur 2-tier web aplikasi.

Sumber gambar: https://yoir.files.wordpress.com

Untuk 2-Tier ini hanya diperuntukkan pada penggunaan web aplikasi untuk skala kecil, dikarenakan apabila digunakan untuk skala besar akan membuat kerja server menjadi berat. Selain itu faktor keamanan juga sangat lemah dikarenakan user dapat langsung melakukan query sql ke database.

3-Tier – Pada tingkatan ini merupakan inovasi dari tier sebelumnya, yaitu terdapat application server diantara client dan server database. Pada 3-tier ini menyediakan multi-user yang stabil bahkan pada saat banyak user yang mengaksesnya, bahkan dapat mendayagunakan beberapa database secara bersamaan. Berikut contoh arsitektur dari 3-tier:

Sumber gambar: http://sandyperdanabermatadewa.blogspot.co.id

Kendala pada implementasi 3-tier ini biasanya pada network, bandwidth, dan biaya yang lebih mahal. Namun ada juga keuntungan ketika mengimplementasikan arsitektur ini, diantaranya independensi (apabila terjadi kesalahan pada satu layer baik server maupun client, komunikasi web server dan database server tetap optimal), mudah dalam melakukan perubahan bussiness logic pada masa yang akan datang, dari segi skalabilitas dapat dikembangkan tanpa perlu banyak mengubah inti dari program tersebut, dan dari segi probabilitas dapat berjalan pada banyak sistem tanpa harus banyak mengubah program tersebut.

Hardening Pada Arsitektur Aplikasi Web

Menerapkan Defense-in-Depth Pada Arsitektur Web

Aplikasi Web rentan menjadi target untuk diserang daripada sistem lain yang ada pada jaringan. Karena banyaknya celah keamanan yang ada pada aplikasi web dan seringnya terjadi kesalahan konfigurasi bahkan kurangnya perhatian terhadap maintenance terhadap aplikasi web tersebut menjadi salah satu alasan aplikasi web menjadi salah satu target utama. Oleh karena itu perlu di implementasikan defense-in-depth.

Secara garis besar defense-in-depth merupakan perlindungan terhadap suatu sistem yang berlapis. Dengan menerapkan tingkat security yang berlapis maka ketika terjadi serangan yang mengarah ke sistem, serangan tersebut tidak langsung menuju ke pusat data namun ada lapisan-lapisan yang melindunginya, yaitu Perangkat perimeter (IDS/IPS), lapisan Sistem operasi, lapisan aplikasi, dan data (critical asset).

Penempatan Database dan Application Logic dari Presentation Layer

Dalam mendesain arsitektur aplikasi web, 3-tier akan menjadi pilihan dengan alasan keamanan yang lebih kompleks. Sedikit pembahasan ulang, pada arsitektur 3-tier ini lapisan presentation (web server) terpisah dengan lapisan application (berisi source code yang mengandung alur logika bisnis) dan lapisan data (database). Jadi ketika attacker menyerang atau membuat web server compromise, attacker akan membutuhkan cara lain dan waktu lebih untuk mendapatkan data dari web aplikasi dikarenakan setiap lapisan pada arsitektur ini terpisah.

Mengimplementasikan Firewall dan DMZ

Cara yang paling tepat untuk menempatkan web server yaitu pada Demilitarized Zone (DMZ). DMZ ini merupakan segmentasi yang terpisah antara jaringan private (LAN) dengan jaringan publik (internet). DMZ menempatkan firewall di depan web server, dan juga diantara web server dan back-end server pada jaringan private.

Dengan arsitektur 3-tier, dapat di implementasikan dengan menempatkan firewall dan IDS pada setiap lapisan. Selain itu juga dapat menambahkan Web Application Firewall (WAF). WAF ini dapat menginspeksi setiap trafik protokol HTTP dan memastikan permintaan yang dilakukan oleh user itu tidak mengandung malicious trafik.

Server Hardening

Hal yang paling penting adalah melakukan hardening terhadap server. Berikut ini hal-hal yang dapat dilakukan untuk meminimalisir adanya serangan yang mengarah ke server:

  • Menutup port yang memang tidak digunakan
  • Menghapus aplikasi yang tidak digunakan
  • Disable user default pada server dan setiap user yang ada harus menggunakan standar password yang kompleks
  • Tidak menggunakan password yang sama pada sistem untuk user

Antivirus dan HIDS

Pada web server dan server database perlu dilakukan antisipasi agar tidak terinfeksi oleh virus/malware. Untuk mengantisipasi perlu diimplemtasikan HIDS, antivirus, dan integrity software yang dapat mendeteksi dan memberikan alert ketika ada perubahan yang ilegal pada konfigurasi file.

Melakukan Backup

Pastikan untuk melakukan backup secara teratur, meskipun tidak menjadi pilihan untuk mengembalikan server dari gangguan dengan menggunakan file backup. Dalam banyak kasus proses restore ini biasanya melibatkan membangun kembali dari awal sistem operasi dan web server, kemudian membuat kembali website denga versi yang terbaru (telah diperbaiki). Selain itu backup secara teratur dapat digunakan untuk melacak aktivitas yang dilakukan attacker jika attacker itu telah menghapus log file atau jejaknya.

Referensi:

WebApplication | Aplikasi Web | Hypertext Transfer Protocol

Tinggalkan komentar

Berikan komentar