Keamanan Aplikasi Berbasis Web

Aplikasi berbasis web memiliki sejumlah kerentanan umum yang dapat di eksploitasi. Open Web Application Security Project (OWASP) Foundation telah merilis sepuluh jenis kerentanan keamanan aplikasi web paling kritis dan umum terjadi. Daftar ini dibuat berdasarkan penelitian dan analisis mendalam terhadap data yang dikumpulkan dari berbagai sumber di seluruh dunia.

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

Website Vulnerability

Open Web Application Security Project (OWASP) Foundation telah merilis daftar kerentanan umum pada aplikasi berbasis web Top 10 adalah daftar yang dibuat oleh Open Web Application Security Project (OWASP) yang berisi sepuluh jenis kerentanan keamanan aplikasi web paling kritis dan umum terjadi. Daftar ini dibuat berdasarkan penelitian dan analisis mendalam terhadap data yang dikumpulkan dari berbagai sumber di seluruh dunia. Dari daftar ini, kita bisa mengetahui ancaman yang paling memiliki dampak besar atau serius pada keamanan aplikasi web. 

Referensi: 

https://www.owasp.org.

Website Vulnerability

A01:2021-Broken Access Control

Deskripsi

Broken Access Control adalah salah satu ancaman keamanan aplikasi/web yang paling serius dan menduduki peringkat pertama dalam OWASP Top 10. Kontrol akses adalah proses yang menentukan siapa yang memiliki hak untuk melihat atau menggunakan sumber daya dalam sistem. Kerentanan ini umumnya terjadi ketika sistem gagal menerapkan mekanisme kontrol akses yang memadai diantaranya:

Dampak

Mitigasi

Website Vulnerability

A02:2021 - Cryptographic Failures

Deskripsi

Cryptographic Failures, atau kegagalan kriptografi terjadi ketika mekanisme kriptografi yang digunakan untuk melindungi data tidak berfungsi dengan baik. Kegagalan kriptografi disebabkan antara lain:

Dampak

Kegagalan kriptografi dapat menimbulkan risiko keamanan siber yang serius, seperti kebocoran data sensitif, manipulasi data, kerugian finansial, dan kerusakan reputasi bisnis

Mitigasi

Website Vulnerability

A03:2021 - Injection

Deskripsi

Kerentanan muncul ketika data yang tidak terpercaya dikirimkan ke interpreter, yang dapat menyebabkan eksekusi perintah yang tidak diinginkan. Kerentanan disebabkan antara lain:

Dampak

Mitigasi

Website Vulnerability

A04:2021 - Insecure Design Vulnerabilities

Deskripsi

Insecure design vulnerabilities adalah celah keamanan yang muncul akibat kurangnya perhatian atau perencanaan yang memadai pada aspek keamanan selama fase desain aplikasi atau sistem. Kerentanan ini terjadi ketika arsitektur dan perencanaan sistem tidak memperhitungkan ancaman potensial atau tidak mengikuti praktik keamanan yang terbaik.

Terdapat perbedaan antara desain tidak aman dan implementasi tidak aman. Sebuah desain aman masih bisa memiliki kerusakan implementasi yang mengarah ke kerentanan yang dapat dieksploitasi. Suatu desain tidak aman tidak dapat diperbaiki oleh sebuah implementasi yang sempurna . Satu dari faktor yang berkontribusi terhadap desain tidak aman adalah ketiadaan pembuatan profil risiko bisnis yang inheren dalam perangkat lunak atau sistem yang sedang dikembangkan, maka menjadi kegagagalan untuk menentukan desain keamanan level yang diperlukan.

Dampak

Sistem menjadi rentan terhadap eksploitasi bahkan sebelum proses implementasi dan pengujian dimulai.

Mitigasi

Website Vulnerability

A05:2021 - Security Misconfiguration

Deskripsi

Security misconfiguration merupakan kondisi  sistem komputer, aplikasi, atau infrastruktur IT tidak dikonfigurasi dengan baik untuk melindungi informasi sensitif dan sumber daya organisasi dari ancaman keamanan. Konfigurasi yang salah atau kurangnya pembaruan pada sistem dan aplikasi dapat menciptakan celah keamanan yang dapat dimanfaatkan oleh penyerang. Hal ini sering disebabkan oleh:

Dampak

Ekploitasi terhadap celah konfigurasi.

Mitigasi

Website Vulnerability

A06:2021 - Vulnerable and Outdated Components

Deskripsi

Vulnerable and Outdated Components merupakan kerentanan perangkat lunak dalam aplikasi web yang memiliki celah keamanan atau tidak lagi mendapatkan dukungan berupa pembaruan atau patch dari pengembangnya. Komponen dapat mencakup library, framework, modul, atau bagian lain dari perangkat lunak yang digunakan dalam pengembangan aplikasi web.

Komponen yang tidak diperbarui dapat menjadi sasaran potensial bagi penyerang yang mencari celah keamanan untuk dieksploitasi. Kejadian ini terjadi antara lain karena:

Dampak

Terdapat kerentanan/bug pada komponen yang dapat dieksploitasi

Mitigasi

 

Website Vulnerability

A07:2021 - Identification and Authentication Failures

Deskripsi

Identification and authentication failures merupakan kelemahan atau kegagalan dalam sistem identifikasi dan autentikasi yang dapat menyebabkan akses tidak sah atau kebocoran informasi sensitif. Hal ini dapat terjadi ketika aplikasi tidak berhasil memverifikasi identitas pengguna atau tidak mengelola akses dengan efektif. Kerentanan ini disebabkan antara lain karena:

Dampak

Kegagalan dalam aspek ini dapat menciptakan celah bagi penyerang untuk mendapatkan akses yang tidak sah, menyusup ke dalam sistem, atau mengeksploitasi data pribadi.

Mitigasi

Website Vulnerability

A08:2021 - Software and Data Integrity Failures

Deskripsi

Software and Data Integrity Failures merupakan kondisi keaslian, konsistensi, dan keamanan perangkat lunak serta data tidak dapat dipastikan. Kegagalan integritas ini dapat disebabkan oleh berbagai faktor diantaranya:

Dampak

Akses illegal/tidak sah, kode yang berbahaya, atau kerusakan sistem.

Mitigasi

Website Vulnerability

A09:2021 - Security Logging and Monitoring

Security Logging and Monitoring Failures terjadi ketika sistem tidak mampu mencatat (logging) dan memantau (monitoring) aktivitas keamanan dengan efektif

Dampak

Mitigasi

Website Vulnerability

A10:2021 - Server-Side Request Forgery

Deskripsi

Server-Side Request Forgery (SSRF) adalah jenis kerentanan keamanan yang terjadi ketika aplikasi web mengambil remote resource tanpa memvalidasi URL yang disediakan pengguna. Hal ini memungkinkan penyerang untuk memaksa aplikasi mengirimkan permintaan yang telah dimanipulasi ke tujuan yang tidak diharapkan, bahkan ketika aplikasi telah dilindungi oleh firewall, VPN, atau access control list (ACL) lainnya.

Dampak

Mitigasi

Pengukuran Tingkat Kerentanan (Severity)

Kerentanan yang telah diidentifikasi perlu dinilai dan dikelompokkan tingkat kerentanannya (severity). Kerentanan ditangani secara priotitas berdasarkan tingkat kerentanannya.

Referensi:

https://www.first.org/

Pengukuran Tingkat Kerentanan (Severity)

Common Vulnerability Scoring System (CVSS)

Common Vulnerability Scoring System (CVSS) adalah standar industri yang bebas dan terbuka untuk menilai tingkat keparahan (severity) kerentanan keamanan sistem. CVSS menetapkan skor severity dari sebuah kerentanan, memungkinkan responden untuk memprioritaskan object mana yang harus diperbaiki terlebih dahulu sesuai dengan tingkat resikonya. CVSS dikembangkan dan dikelola oleh FIRST.Org, organisasi yang bertujuan membantu Tim Tanggap Insiden Siber (Computer Security Incident Response Team /CSIRT).

CVSS terdiri dari 4 (empat) metric grup berikut:

Keempat metric tersebut dapat digambarkan sebagai berikut.

metrics.png

Gambar 1. CVSS Metrics

CVSS adalah representasi numerik dari tingkat keparahan kerentanan yang juga dikenal sebagai " Skor dasar (base score) " dengan nilai skor dasar bervariasi dari 0 sampai 10. CVSS base score harus dilengkapi dengan analisis lingkungan (environmental metric) dan atribut yang dapat berubah dari waktu ke waktu (threat metric).

Versi terakhir yang dirilis adalah CVSS v.4.0.

Tingkat keparahan (severity) kerentanan dikelompokkan menjadi 4 (empat) sebagaimana ditunjukkan pada tabel berikut.

Tabel 1. CVSS V 3.x dan 4.0 Severity Rating

Kategori Kerentanan Nilai CVSS
Kritikal (Critical) 9.0  s.d 10.0
Tinggi (High) 7.0 s.d. 8.9
Sedang (Medium) 4.0 s.d 6.9
Rendah (Low)  0.1 s.d. 3.9
None* 0.0

Pengukuran Tingkat Kerentanan (Severity)

Metrik Eksploitasi (Exploitation Metrics)

Vektor Serangan (Attack Vector / AV)

Vektor serangan menggambarkan konteks kemungkinan eksploitasi serangan. Asumsinya, serangan melalui jaringan kemungkinannya lebih besar dari pada serangan yang memerlukan akses fisik terhadap perangkat sehingga juga akan berdampak lebih besar. Distribusi metrik vektor serangan ditunjukkan pada Tabel 2 berikut.

Tabel 1. Matrik Vektor Serangan

Nilai  Deskripsi
Network (N) Sistem yang rentan terhubung dengan jaringan, sehingga dapat dieksploitasi dari jarak jauh
Adjacent (A) Sistem yang rentan dibatasi pada protokol tertentu, sehingga serangan harus dilakukan pada jaringan yang sama (misal bluetooth, NFC, wifi),  jaringan logic lainnya (satu subnet) atau dari dalam domain yang terbatas.
Local (L) Sistem yang rentan terhubung pada jaringan lokal, sehingga serangan harus dilakukan pada sistem target secara lokal (keyboard, konsol) atau  atau melalui emulasi terminal (SSH), atau menggunakan teknis social engineering untuk mengelabui pengguna agar membuka dokumen yang telah disisipi malware.
Physical (P) Serangan mengharuskan adanya akses secara fisik terhadap sistem yang rentan, misalnya serangan harus dilakukan menggunakan USB.

Kompleksitas Serangan (Attack Complexity / AC)

Matrik menggambarkan tindakan yang harus dilakukan penyerang agar eksploitasi berhasil dilakukan.

Tabel 2. Kompleksitas Serangan

Nilai Deskripsi
Low (L) Penyerang tidak perlu melakukan tindakan tertentu untuk melakukan eksploitasi terhadap sistem yang rentan. Serangan dapat dilakukan secara berulang.
High (H) Serangan bergantung pada keamanan pada pertahanan  sistem yang rentan. Penyerang harus melakukan metode tambahan untuk melewati keamanan yang ada. Penyerang harus memiliki informasi kredensial sistem.

Persyaratan Serangan (Attack Requirement / AT)

Matrik menggambarkan persyaratan pengembangan dan eksekusi atau variabel yang diperlukan untuk menjalankan serangan.

Tabel 3. Persyaratan Serangan

Nilai Deskripsi
None (N) Keberhasilan serangan tidak bergantung pada kondisi pengembangan dan eksekusi pada sistem yang rentan. Eksploitasi terhadap kerentanan dapat dilakukan pada kondisi apapun.
Present (PR) Keberhasilan serangan bergantung pada kondisi implementasi dan eksekusi tertentu dari sistem yang rentan untuk menjalankan serangan.

Hak Akses yang Diperlukan (Privileges Required/ PR)

Privileges Required menggambarkan tingkat kewenangan yang harus dimiliki oleh penyerang sebelum mengeksploitasi kerentanan, misalnya harus memperoleh kredensial sistem sebelum melakukan serangan. Nilai tertinggi adalah ketika penyerang tidak memerlukan hak akses tertentu untuk mengeksploitasi sistem.

Tabel 4. Matrik Kebutuhan Hak Akses

Nilai Deskripsi
None (N) Penyerang tidak diotentikasi sebelum melakukan serangan, sehingga tidak memerlukan akses tertentu terhadap konfigurasi / file pada sistem yang rentan.
Low (L) Penyerang memerlukan hak akses dengan kemampuan minimal yang dimiliki oleh user biasa yang dapat mengakses file tidak sensitif.
High (H) Penyerang memerlukan hak akses yang memiliki kontrol signifikan (misal admin) yang memungkinkan akses ke seluruh konfigurasi dan file pada sistem.

Interaksi Pengguna (User Interaction / UI)

Matrik menggambarkan persyaratan interakasi pengguna selain penyerang untuk berhasil melakukan serangan ke sistem yang rentan.

Tabel 5. Interaksi Pengguna

Nilai Deskripsi
None (N) Sistem yang rentan dapat dieksploitasi tanpa interaksi pengguna, selain penyerang. Misalnya penyerang dari jarak jauh dapat mengirimkan eksploit pada sistem dan mengekseskui kode untuk meningkatkan hak akses.
Passive (P) Serangan memerlukan interaksi terbatas dari pengguna untuk melakukan eksploitasi.
Active (A) Serangan memerlukan interaksi pengguna tertentu untuk melakukan eksploitasi, misal pengguna harus menyetujui peringatan terhadap tindakan tertentu.
Pengukuran Tingkat Kerentanan (Severity)

Metrik Dampak (Impact Metrics)

Metrik menggambarkan dampak kerentanan yang berhasil dieksploitasi. Namun demikian, analis harus dapat menentukan batasan terhadap dampak akhir yang dapat dicapai oleh penyerang. Ketika mengidentifikasi nilai metrik dampak, perlu diperhitungkan dampak terhadap sistem yang rentan (vulnerable system impact) dan dampak diluar sistem yang rentan (subsequent system impact) yang ditentukan oleh dua hal yaitu dampak sistem rentan dan dampak selanjutnya yang muncul. Jika kerentanan tidak mempunyai dampak yang terjadi diluar sistem yang rentan, maka subsequent metric akan memiliki nilai NONE (N).

Metrik dampak terdiri atas beberapa kategori berikut.

Kerahasiaan / Confidentiality (VC/SC)

Metrik mengukur dampak kerahasiaan terhadap informasi karena keberhasilan eksploitasi kerentanan. Nilai dampak terhadap kerahasiaan ditunjukkan pada Tabel berikut.

Tabel. Metrik Dampak Kerahasiaan

Nilai Metrik Dampak pada Vulnerable System (VC) Dampak pada Subsequent System (SC)
High (H) Semua informasi didalam sistem dapat diakses penyerang, atau akses terhadap informasi yang terbatas namun berdampak serius, misalnya kredensial sistem. Semua informasi didalam subsequent system dapat diakses penyerang, atau akses terhadap informasi yang terbatas namun berdampak serius, misalnya kredensial sistem.
Low (L) Penyerang dapat mengakses terhadap informasi terbatas, namun tidak memiliki kendali atas informasi tersebut sehingga tidak berdampak serius atau tidak menimbulkan kerugian secara langsung terhadap sistem. Penyerang dapat mengakses terhadap informasi terbatas, namun tidak memiliki kendali atas informasi tersebut sehingga tidak berdampak serius atau tidak menimbulkan kerugian secara langsung terhadap subsequent system.
None (N) Tidak terdapat informasi yang terungkap / hilang Tidak terdapat informasi yang terungkap / hilang pada subsequent system.

Integritas / Integrity (VI/SI)

Metrik mengukur dampak integritas terhadap informasi karena keberhasilan eksploitasi kerentanan. Integritas sistem terdampak ketika penyerang dapat melakukan modifikasi terhadap data / informasi di dalam sistem. Nilai dampak terhadap integritas sistem ditunjukkan pada Tabel berikut. 

Tabel. Metrik Dampak Integritas

Nilai Metrik Dampak pada Vulnerable System (VC) Dampak pada Subsequent System (SC)
High (H) Hilangnya perlindungan integritas sistem. Penyerang dapat memodifikasi seluruh file yang dilindungi didalam sistem, atau hanya dapat melakukan modifikasi pada file tertentu, namun modifikasi yang berbahaya dapat berdampak serius pada sistem. Hilangnya perlindungan integritas sistem. Penyerang dapat memodifikasi seluruh file yang dilindungi didalam sistem, atau hanya dapat melakukan modifikasi pada file tertentu, namun modifikasi yang berbahaya dapat berdampak serius pada subsequent system.
Low (L) Penyerang dapat melakukan modifikasi, namun tidak memiliki kendali atas akibat dari modifikasi tersebut atau jumlah modifikasi dibatasi sehingga tidak berdampak serius atau tidak menimbulkan kerugian secara langsung terhadap sistem. Penyerang dapat melakukan modifikasi, namun tidak memiliki kendali atas akibat dari modifikasi tersebut atau jumlah modifikasi dibatasi sehingga tidak berdampak serius atau tidak menimbulkan kerugian secara langsung terhadap subsequent system.
None (N) Tidak terdapat integritas sistem yang hilang. Tidak terdapat integritas subsequent system yang hilang.

Ketersediaan / Availability (VA/SA)

Metrik mengukur dampak ketersediaan terhadap informasi karena keberhasilan eksploitasi kerentanan. Ketersediaan sistem terdampak ketika penyerang dapat mengganggu ketersediaan akses / membuat sistem tidak dapat diakses oleh pengguna. Nilai dampak terhadap ketersediaan sistem ditunjukkan pada Tabel berikut. 

Tabel. Metrik Dampak Ketersediaan

Nilai Metrik Dampak pada Vulnerable System (VC) Dampak pada Subsequent System (SC)
High (H) Hilangnya perlindungan ketersediaan sistem. Penyerang dapat menolak seluruh akses kedalam sistem, baik bersifat sementara maupun terus menerus (persistent). Atau penyerang dapat menolak beberapa akses, namun berdampak serius terhadap ketersediaan sistem. Hilangnya perlindungan ketersediaan layanan subsequent system. Penyerang dapat menolak seluruh akses kedalam subsequent system, baik bersifat sementara maupun terus menerus (persistent). Atau penyerang dapat menolak beberapa akses, namun berdampak serius terhadap ketersediaan subsequent system.
Low (L) Terdapat gangguan terhadap ketersediaan sistem, namun  tidak dapat sepenuhnya menolak layanan kepada pengguna yang sah. Terdapat gangguan terhadap ketersediaan layanan subsequent system, namun  tidak dapat sepenuhnya menolak layanan kepada pengguna yang sah.
None (N) Tidak terdapat gangguan terhadap ketersediaan sistem . Tidak terdapat gangguan terhadap ketersediaan subsequent system
Pengukuran Tingkat Kerentanan (Severity)

Metrik Ancaman (Threat Metrics)

Metrik ancaman (threat metrics) mengukur kondisi  teknik eksploitasi / ketersediaan kode untuk mengeksploitasi kerentanan.

Metrik ancaman diukur berdasarkan kematangan eksploit / exploit maturity (E)

Kematangan Eksploit / Exploit Maturity (E)

Metrik mengukur kemungkinan serangan terhadap kerentanan berdasaekan kondisi eksploit saat ini, ketersediaan kode eksploit, atau aktif "in the wild". Ketersediaan eksploit untuk publik atau kemudahan instruksi penggunaan meningkatkan kemungkinan serangan, termasuk bagi penyerang yang tidak terampil. Ketersediaan eksploit atau instruksi juga dapat berkembang bergantung pada tingkat keberhasilan pembuktian eksploitasi kerentanan (proof of concept). Pada beberapa kasus, eksploitasi dapat dijalankan otomatis menggunakan tools serangan tertentu. Informasi terkait teknik eksploitasi / instruksi teknis lainnya selanjutnya akan disebut dengan intelijen ancaman (threat intelligence). Pada operasional organisasi disarankan menggunakan banyak sumber threat intelligence.

Daftar kemungkinan nilai kematangan eksploit ditunjukkan pada Tabel berikut.

Tabel. Kematangan Eksploit (Exploit Maturity)

Nilai Metrik Deskripsi
Not Defined (X) Threat intelligence yang handal tidak tersedia untuk menentukan karakteristik kematangan eksploitasi. Not Defined (X) merupakan nilai default.
Attacked (A) Tersedia threat intelligence: melaporkan serangan terhadap percobaan / keberhasilan eksploitasi, atau terdapat tools untuk memudahkan eksploitasi kerentanan.
Proof of Concept (P) Terdapat threat intelligence: pembuktian eksploitasi (proof of concept) dapat diakses publik, tidak terdapat laporan percobaan eksploitasi kerentanan, tidak terdapat pengetahuan /tools untuk memudahkan eksploitasi yang dapat diakses publik.
Unreported (U) Terdapat threat intelligence: Tidak terdapat pembuktian eksploitasi (proof of concept) dapat diakses publik, tidak terdapat laporan percobaan eksploitasi kerentanan, tidak terdapat pengetahuan /tools untuk memudahkan eksploitasi yang dapat diakses publik.
Pengukuran Tingkat Kerentanan (Severity)

Metrik Lingkungan (Environmental Metric)

Metrik memungkinkan pengguna mengalisis nilai berdasarkan tingkat kritikalitas dari aset TI yang terdampak terhadap aspek kerahasiaan, integritas, dan ketersediaan, Metrik merupakan modifikasi dari base metric.

Persyaratan Keamanan Kerahasian (Confidentiality), Integritas (Integrity), dan Ketersediaan (Availability)

Setiap aspek memiliki 3 (tiga) kemungkinan nilai: Low, Medium, High, atau nilai defaultnya Not Defined (X). Dampak penuh terhadap nilai metrik lingkungan ditentukan oleh metrik dasar yang telah disesuaikan dengan kebutuhan. Nilai default X, setara dengan nilai metrik High (H). Nilai metrik digambarkan pada Tabel berikut.

Tabel. Metrik Persyaratan Keamanan (Security Requirements)

Nilai Metrik Deskripsi
Not Defined (X) Nilai default. Nilai ini menggambarkan tidak tercukupinya informasi untuk memililih salah satu nilai yang lain.
High (H) Hilangnya [kerahasiaan|integritas|ketersediaan] memiliki dampak buruk paling besar terhadap organisasi atau individu dalam organisasi.
Medium (M) Hilangnya [kerahasiaan|integritas|ketersediaan] memiliki dampak serius terhadap organisasi atau individu dalam organisasi.
Low (L) Hilangnya [kerahasiaan|integritas|ketersediaan] memiliki dampak yang terbatas terhadap organisasi atau individu dalam organisasi.

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.

Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.

Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.
Standar Teknis Keamanan Aplikasi Berbasis Web

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.

Standar Teknis Keamanan Aplikasi Berbasis Web

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.