Standar Teknis Keamanan Aplikasi Berbasis Web

Badan Siber dan Sandi Negara (BSSN) telah menerbitkan standar teknis keamanan aplikasi berbasis web yang tertuang dalam Peraturan BSSN Nomor 4 Tahun 2021 tentang Pedoman Manajemen Keamananan Informasi Sistem Pemerintahan Berbasis Elektronik dan Standar Teknis dan Prosedur Keamanan Sistem Pemerintahan Berbasis Elektronik.

a. Autentikasi

Autentikasi dilakukan dengan:

  1. menggunakan manajemen kata sandi untuk proses autentikasi;
  2. menerapkan verifikasi kata sandi pada sisi server;
  3. mengatur jumlah karakter, kombinasi jenis karakter, dan masa berlaku dari kata sandi;
    •  jumlah karakter minimal 12 karakter;
    • kombinasi jenis karakter minimal terdiri dari huruf besar, huruf kecil, simbol dan angka, tidak ada perulangan karakter;
    • masa berlaku dari kata sandi minimal 6 bulan, dan tidak ada perulangan kata sandi
  4. mengatur jumlah maksimum kesalahan dalam pemasukan kata sandi;
  5. mengatur mekanisme pemulihan kata sandi;
  6. menjaga kerahasiaan kata sandi yang disimpan melalui mekanisme kriptografi; dan
  7. menggunakan jalur komunikasi yang diamankan untuk proses autentikasi.

b. Manajemen Sesi

Manajemen sesi dilakukan dengan:

  1. menggunakan pengendali sesi untuk proses manajemen sesi;
  2. menggunakan pengendali sesi yang disediakan oleh kerangka kerja aplikasi;
  3. mengatur pembuatan dan keacakan token sesi yang dihasilkan oleh pengendali sesi;
  4. mengatur kondisi dan jangka waktu habis sesi;
  5. validasi dan pencantuman session id;
  6. pelindungan terhadap lokasi dan pengiriman token untuk sesi terautentikasi; dan
  7. pelindungan terhadap duplikasi dan mekanisme persetujuan pengguna.

c. Persyaratan Kontrol Akses

Persyaratan kontrol akses dilakukan dengan prosedur:

  1. menetapkan otorisasi pengguna untuk membatasi kontrol akses;
  2. mengatur peringatan terhadap bahaya serangan otomatis apabila terjadi akses yang bersamaan atau akses yang terus-menerus pada fungsi;
  3. mengatur antarmuka pada sisi administrator; dan
  4. mengatur verifikasi kebenaran token ketika mengakses data dan informasi yang dikecualikan

d. Validasi Input

Validasi input dilakukan dengan prosedur:

  1. menerapkan fungsi validasi input pada sisi server;
  2. menerapkan mekanisme penolakan input jika terjadi kesalahan validasi;
  3. memastikan runtime environment aplikasi tidak rentan terhadap serangan validasi input;
  4. melakukan validasi positif pada seluruh input;
  5. melakukan filter terhadap data yang tidak dipercaya;
  6. menggunakan fitur kode dinamis;
  7. melakukan pelindungan terhadap akses yang mengandung konten skrip; dan
  8. melakukan pelindungan dari serangan injeksi basis data.

e. Kriptografi pada Verifikasi Statis

Kriptografi pada verifikasi statis sebagaimana dilakukan dengan prosedur:

  1. menggunakan algoritma kriptografi, modul kriptografi, protokol kriptografi, dan kunci kriptografi sesuai dengan ketentuan peraturan perundang-undangan;
  2. melakukan autentikasi data yang dienkripsi;
  3. menerapkan manajemen kunci kriptografi; dan
  4. membuat angka acak yang menggunakan generator angka acak kriptografi.

f. Penanganan Eror dan Pencatatan Log

Penanganan eror dan pencatatan log dilakukan dengan prosedur:

  1. mengatur konten pesan yang ditampilkan ketika terjadi kesalahan;
  2. menggunakan metode penanganan eror untuk mencegah kesalahan terprediksi dan tidak terduga serta menangani seluruh pengecualian yang tidak ditangani;
  3. mengatur cakupan log yang dicatat untuk mendukung upaya penyelidikan ketika terjadi insiden;
  4. mengatur pelindungan log aplikasi dari akses dan modifikasi yang tidak sah;
  5. melakukan enkripsi pada data yang disimpan untuk mencegah injeksi log; dan
  6. melakukan sinkronisasi sumber waktu sesuai dengan zona waktu dan waktu yang benar.c. tidak mencantumkan informasi yang dikecualikan dalam pencatatan log;
  7. mengatur cakupan log yang dicatat untuk mendukung upaya penyelidikan ketika terjadi insiden;
  8. mengatur pelindungan log aplikasi dari akses dan modifikasi yang tidak sah;
  9. melakukan enkripsi pada data yang disimpan untuk mencegah injeksi log; dan
  10. melakukan sinkronisasi sumber waktu sesuai dengan zona waktu dan waktu yang benar.

g. Proteksi Data

Proteksi data dilakukan dengan prosedur:

  1. melakukan identifikasi dan penyimpanan salinan informasi yang dikecualikan;
  2. melakukan pelindungan dari akses yang tidak sah terhadap informasi yang dikecualikan yang disimpan sementara dalam aplikasi;
  3. melakukan pertukaran, penghapusan, dan audit informasi yang dikecualikan;
  4. melakukan penentuan jumlah parameter dengan meminimalkan parameter yang di butuhkan untuk request kepada server
  5. memastikan data disimpan dengan aman;
  6. menentukan metode untuk menghapus dan mengekspor data sesuai permintaan pengguna; dan
  7. membersihkan memori setelah tidak diperlukan.

h. Keamanan Komunikasi

Keamanan komunikasi dilakukan dengan prosedur:

  1. menggunakan komunikasi terenkripsi;
  2. mengatur koneksi masuk dan keluar yang aman dan terenkripsi dari sisi pengguna;
  3. mengatur jenis algoritma yang digunakan dan alat pengujiannya; dan
  4. mengatur aktivasi dan konfigurasi sertifikat elektronik yang diterbitkan oleh penyelenggara sertifikasi elektronik.

i. Pengendalian Kode Berbahaya

Pengendalian kode berbahaya dilakukan dengan prosedur:

  1. menggunakan analisis kode dalam kontrol kode berbahaya;
  2. memastikan kode sumber aplikasi dan pustaka tidak mengandung kode berbahaya dan fungsionalitas lain yang tidak diinginkan;
  3. mengatur izin terkait fitur atau sensor terkait privasi;
  4. mengatur pelindungan integritas; dan
  5. mengatur mekanisme fitur pembaruan.

j. Logika Bisnis

Logika bisnis dilakukan dengan prosedur:

  1. memproses alur logika bisnis dalam urutan langkah dan waktu yang realistis;
  2. memastikan logika bisnis memiliki batasan dan validasi;
  3. memonitor aktivitas yang tidak biasa;
  4. membantu dalam kontrol antiotomatisasi; dan
  5. memberikan peringatan ketika terjadi serangan otomatis atau aktivitas yang tidak biasa.

k. Keamanan File

Keamanan file  dilakukan dengan prosedur:

  1. mengatur jumlah file untuk setiap pengguna dan kuota ukuran file yang diunggah;
  2. melakukan validasi file sesuai dengan tipe konten yang diharapkan;
  3. melakukan pelindungan terhadap metadata input dan metadata file;
  4. melakukan pemindaian file yang diperoleh dari sumber yang tidak dipercaya; dan
  5. melakukan konfigurasi server untuk mengunduh file sesuai ekstensi yang ditentukan.

l. Keamanan API dan Web Service

Keamanan API dan web service dilakukan dengan prosedur:

  1. melakukan konfigurasi layanan web;
  2. memverifikasi uniform resource identifier API tidak menampilkan informasi yang berpotensi sebagai celah keamanan;
  3. membuat keputusan otorisasi;
  4. menampilkan metode RESTful hypertext transfer protocol apabila input pengguna dinyatakan valid;
  5. menggunakan validasi skema dan verifikasi sebelum menerima input;
  6. menggunakan metode pelindungan layanan berbasis web; dan
  7. menerapkan kontrol antiotomatisasi.

m. Keamanan Konfigurasi

Keamanan konfigurasi dilakukan dengan prosedur:

  1. mengonfigurasi server sesuai rekomendasi server aplikasi dan kerangka kerja aplikasi yang digunakan;
  2. mendokumentasi, menyalin konfigurasi, dan semua dependensi;
  3. menghapus fitur, dokumentasi, sampel, dan konfigurasi yang tidak diperlukan;
  4. memvalidasi integritas aset jika aset aplikasi diakses secara eksternal; dan
  5. menggunakan respons aplikasi dan konten yang aman.