Lompat ke isi

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

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.

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.