Keamanan
Terakhir diperbarui: 7 September 2026
Pemisahan antar-organisasi
Pemisahan data ditegakkan oleh Row-Level Security PostgreSQL dengan FORCE ROW LEVEL SECURITY pada setiap tabel yang memiliki kolom organisasi. Peran basis data yang dipakai aplikasi tidak memiliki atribut BYPASSRLS, dan hal itu diperiksa otomatis pada setiap build.
Setiap transaksi menetapkan konteks organisasi secara transaction-local, sehingga konteks tidak dapat bocor ke permintaan berikutnya yang meminjam koneksi yang sama dari pool. Tanpa konteks, kueri mengembalikan nol baris — gagal tertutup, bukan gagal terbuka.
Autentikasi
- Kata sandi di-hash dengan Argon2id (19 MiB memori, 2 iterasi).
- Sesi bersifat opaque: basis data hanya menyimpan hash SHA-256 dari token, sehingga dump basis data tidak menghasilkan sesi yang dapat dipakai.
- Cookie sesi httpOnly, Secure, SameSite=Lax, dengan prefiks __Host- pada produksi.
- Pencabutan akses berlaku pada permintaan berikutnya, bukan pada login berikutnya.
- Pesan kesalahan login tidak membedakan akun yang ada dan tidak ada, dan biaya komputasinya disamakan agar waktu respons tidak membocorkan keberadaan akun.
Otorisasi
Enam peran dengan sekitar lima puluh kapabilitas eksplisit. Setiap endpoint wajib mendeklarasikan kapabilitas yang dibutuhkan — secara struktural tidak mungkin menulis endpoint tanpa deklarasi itu. Matriks peran diuji secara menyeluruh, sehingga pelebaran izin yang tidak disengaja gagal di build.
Keamanan pengumpul data
Crawler adalah permukaan yang paling terekspos, jadi seluruh lalu lintas keluar melewati satu modul dengan kontrol berikut:
- Pertahanan SSRF
- Alamat IP hasil resolusi divalidasi, lalu koneksi dibuat ke alamat itu juga — sehingga DNS rebinding tidak mungkin secara struktural.
- Redirect
- Tidak diikuti otomatis. Setiap hop divalidasi ulang, maksimal lima hop.
- Rentang terlarang
- Seluruh alamat privat, loopback, link-local termasuk endpoint metadata cloud, serta IP publik server itu sendiri.
- Batas sumber daya
- Batas waktu koneksi dan bacaan, batas ukuran konten, dan daftar tipe konten yang diizinkan.
- Kesopanan
- robots.txt dihormati beserta Crawl-delay, dengan pembatasan laju per domain dan circuit breaker.
Praktik operasional
- Enkripsi dalam transit (TLS) dan pada penyimpanan cadangan.
- Cadangan basis data harian terenkripsi, dengan latihan pemulihan terjadwal dan waktu pemulihan yang dicatat.
- Migrasi bersifat expand-only sehingga rollback berarti menerapkan kembali image sebelumnya.
- Catatan audit append-only untuk setiap tindakan yang mengubah data, termasuk penolakan izin.
- Pemindaian dependensi dan pemindaian rahasia berjalan pada setiap perubahan kode.
- Nilai sensitif diredaksi dari log dan dari laporan kesalahan.
Yang belum kami klaim
Daftar ini sengaja ada. Menjawabnya sejak awal lebih cepat daripada ditemukan saat tinjauan keamanan pembeli.
- Belum bersertifikat SOC 2 atau ISO 27001.
- Belum ada redundansi lintas-wilayah; layanan berjalan pada satu wilayah.
- Belum ada uji penetrasi oleh pihak ketiga independen.
- SSO/SAML direncanakan untuk paket Enterprise, belum tersedia.
Melaporkan kerentanan
Kirimkan temuan ke keamanan@signalwatch.id. Kami mengonfirmasi penerimaan dalam dua hari kerja. Mohon jangan menguji terhadap data organisasi lain; kami dapat menyediakan lingkungan uji terpisah bila diperlukan.