Buku Manual / Rujukan
Keamanan
Billira menghitung uang milik pelanggan air dan uang publik. Prinsip keamanannya dibangun dari sana, bukan ditempel belakangan.
Data pelanggan tetap di infrastruktur Anda
Billira tidak ditawarkan sebagai layanan cloud. Data nama, alamat, riwayat pemakaian, dan tunggakan pelanggan tersimpan di komputer milik PAM sendiri -- bukan di server pihak ketiga mana pun. Tidak ada telemetri, tidak ada pengiriman data ke luar, dan tampilan aplikasi tidak memuat satu pun rujukan ke jaringan luar.
Terenkripsi saat disimpan
Berkas basis data dienkripsi at-rest. Berkas yang tersalin atau dicuri -- flashdisk hilang, laptop dicuri -- tak berguna tanpa kunci. Kunci diberikan lewat variabel lingkungan, bukan argumen baris perintah, supaya tidak muncul di daftar proses; ia tidak pernah ditulis ke berkas, log, atau argumen proses yang bisa terekam tanpa sengaja.
Berkas basis data juga dipaksa berizin 0600 setiap
kali dibuka: hanya pemilik proses yang boleh membacanya, bahkan
bila izin berkas sempat terlanjur longgar.
Pemisahan wewenang
Tiga peran -- admin, petugas, kasir -- dipisah sengaja, dan pemisahannya ditegakkan di lapisan perutean, bukan sekadar disembunyikan dari tampilan. Yang mencatat bacaan meter bukan yang memvalidasinya; yang menerima setoran keliru bukan yang mengoreksinya sendiri. Setiap kekeliruan uang berjejak siapa yang membenarkannya. Detail alurnya ada di Siklus Tagih.
Akun dan sesi
- Kata sandi disimpan sebagai hash bcrypt, tidak pernah sebagai teks polos, dengan panjang minimum yang ditegakkan.
- Token sesi dibangkitkan dari sumber acak kriptografis, bukan dari nomor urut atau cap waktu yang bisa ditebak.
- Sesi kedaluwarsa otomatis, sehingga komputer loket yang ditinggal menyala tidak selamanya berstatus masuk.
- Kegagalan masuk membalas pesan yang sama apa pun sebabnya -- nama pengguna salah atau kata sandi salah tidak dibedakan -- supaya daftar nama pengguna tidak bisa dipanen dari luar.
- Admin aktif terakhir tidak bisa dinonaktifkan, supaya sistem tidak pernah terkunci tanpa satu pun orang yang berwenang.
Buku besar tambah-saja
Catatan uang tidak pernah disunting di tempat. Koreksi selalu jadi entri baru, sehingga riwayat lengkap tetap tersedia saat diperiksa -- oleh admin PAM sendiri, maupun oleh BPK atau inspektorat. Pemeriksaan invarian uang berjalan otomatis saat aplikasi dinyalakan dan setiap kali billing dijalankan; bila ada yang ganjil, admin diberi peringatan.
Model ancaman yang diasumsikan
Billira dirancang untuk berjalan di jaringan internal PAM -- kantor dan loket -- bukan sebagai layanan yang terbuka di internet publik. Asumsi itu membentuk keputusan di dalamnya.
Bila Anda memasangnya di jaringan yang lebih luas -- misalnya agar loket cabang bisa mengakses lewat internet -- maka enkripsi transport (HTTPS) dan pembatasan akses jaringan adalah tanggung jawab pemasangan, bukan sesuatu yang ditangani aplikasi. Billira sendiri tidak melayani HTTPS; ia dipasang di belakang reverse proxy yang mengurusnya. Langkah teknisnya ada di Untuk IT.
Tidak ada portal pelanggan yang menghadap internet di dalam produk ini, dan itu disengaja: setiap permukaan yang terbuka ke publik menambah risiko pada basis data yang isinya adalah data pribadi warga dan catatan uang.
Melaporkan kerentanan
Kerentanan di Billira bisa berarti manipulasi tagihan, kebocoran data pelanggan, atau jalan masuk ke basis data terenkripsi. Jangan laporkan lewat kanal publik.
Kirim laporan ke
ferli.deni.iskandar@gmail.com
dengan subjek diawali [SECURITY]. Sertakan deskripsi
kerentanan dan dampaknya, langkah reproduksi atau proof-of-concept,
serta versi yang terdampak bila diketahui.
- Konfirmasi laporan diterima: dalam 3 hari kerja
- Penilaian awal (valid/tidak, tingkat keparahan): dalam 7 hari kerja
- Kerentanan yang menyentuh integritas uang atau data pelanggan diprioritaskan di atas pekerjaan fitur lain sampai selesai
Mohon beri waktu sampai perbaikan tersedia sebelum mempublikasikan detail kerentanan secara terbuka. Tanggal pengungkapan dikoordinasikan bersama pelapor.
Repositori kode sumber masih dalam tahap pra-rilis dan belum publik. Kebijakan keamanan lengkap -- termasuk jalur pelaporan privat lewat GitHub -- akan tersedia bersamaan dengan pembukaan kode sumber. Jalur email di atas berlaku sejak sekarang.