Dogfooding AISG: Hasil Memindai Website Kami Sendiri
Banyak vendor keamanan menjual produk yang tidak pernah mereka pakai sendiri. Kami memilih cara sebaliknya: aisg.web.id dan seluruh repo di belakangnya rutin dipindai dengan platform AISG sendiri (dogfooding). Artikel ini membuka hasil scan terbaru secara jujur — apa yang tertangkap, bagaimana report menyajikannya, dan perbaikan apa yang kami lakukan. Bukan untuk pamer, tapi sebagai bukti bahwa kami paham apa yang kami jual.
Kenapa kami memindai diri sendiri?
Dogfooding adalah ujian paling jujur untuk produk keamanan: kalau platform kami tidak bisa menemukan masalah di produk kami sendiri, bagaimana kami berani mengklaim bisa menemukan masalah di produk orang lain? Ada tiga hal yang kami uji sekaligus:
- Mesin scan berfungsi di dunia nyata — bukan hanya di repo contoh.
- Report terbaca manusia — apakah tim yang bukan penulis kode bisa paham dan bertindak?
- Konsistensi — apakah hasil di dashboard, file Markdown, dan PDF benar-benar sama?
Scan 1 — aisg.web.id (URL, 6 sensor jaringan)
Kami memindai website produksi kami dari sudut pandang penyerang luar: 11 temuan — 0 critical, 0 high, 1 medium, 10 low, dengan skor risiko 35/100 (band ELEVATED).
Artinya apa? Website kami relatif bersih dari masalah besar — tidak ada celah kritis yang bisa dieksploitasi langsung dari luar. Yang muncul mayoritas temuan low: header keamanan yang bisa diperkuat, praktik TLS yang bisa dirapikan, dan sejenisnya. Satu temuan medium kami tindak lanjuti terpisah.
Ada satu hal yang kami laporkan dengan jujur di report: sensor fuzzing kontrak API (schemathesis) di-skip karena target tidak punya spesifikasi OpenAPI publik. Report menampilkan ini sebagai gap yang eksplisit — bukan menyembunyikannya. Kejujuran tentang apa yang tidak dicek sama pentingnya dengan apa yang dicek.
Scan 2 — Repo lokal (10 sensor, 966.090 baris kode)
Ini bagian yang paling menarik. Kami memindai seluruh codebase AISG di mesin lokal (kode tidak pernah meninggalkan komputer — prinsip privasi kami). Cakupannya besar: 966.090 baris di 4.418 file, 10 sensor berjalan dari secret scanning sampai SAST dan IaC.
Hasil mentahnya: 2.084 temuan. Setelah proses deduplikasi lintas tool, tersisa 1.476 temuan unik. Contoh nyata yang tertangkap dan terverifikasi:
- Hardcoded secret terverifikasi — kunci API yang tertinggal di file laporan (bukan kode produksi, tapi tetap risiko — sudah dirotasi & dibersihkan).
- Raw SQL via SQLAlchemy — pola yang bisa membuka celah injeksi bila tidak hati-hati.
- Misconfiguration IaC AWS — konfigurasi infrastruktur yang terlalu longgar.
- Source code disclosure — file yang seharusnya tidak bisa diakses publik.
Skor risiko repo ini: 100/100 (CRITICAL). Perlu konteks: skor 100 hanya muncul saat ada temuan critical (aturan ceiling — 92 temuan low tidak akan pernah meng-inflasi skor ke 100). Skor itu bukan vonis "semua kode jelek", melainkan alarm bahwa ada masalah critical yang harus segera ditangani — dan itu memang benar adanya: secret yang bocor di file adalah critical sampai dibersihkan.
Kenapa deduplikasi itu penting
2.084 temuan mentah → 1.476 unik. Tanpa deduplikasi, tim keamanan tenggelam dalam 600 temuan duplikat dari tool yang berbeda-beda. Contoh ekstremnya: satu tool melaporkan 595 secret mentah, setelah dedup tersisa 69 yang benar-benar unik. Yang dijual AISG bukan sensornya (open source), tapi sistem yang membuat ribuan temuan mentah bisa ditindaklanjuti — dedup, prioritas risiko, dan konteks ancaman.
Apa yang kami perbaiki setelah scan?
- Secret yang terverifikasi dirotasi dan dihapus dari riwayat file yang relevan.
- Pola raw SQL di-refactor ke query parameterized (ORM-safe).
- Konfigurasi IaC diperketat mengikuti rekomendasi report.
- Header keamanan & praktik TLS website masuk backlog perbaikan bertahap.
Setiap perbaikan diverifikasi dengan scan ulang — pola delta NEW/FIXED di report menunjukkan temuan mana yang sudah beres. Itulah siklus yang kami tawarkan: bukan sekali scan lalu selesai, tapi ukur → perbaiki → buktikan.
Pelajaran jujur buat tim lain
- Bahkan produk keamanan punya temuan — yang membedakan adalah cara menanggapinya.
- Report yang jujur menampilkan gap (apa yang tidak dicek), bukan hanya temuan.
- Dedup + prioritas risiko mengubah 2.084 baris mentah menjadi daftar aksi yang bisa dikerjakan.
- Skor risiko butuh konteks — 100/100 berarti "ada critical", bukan "semuanya rusak".
Kami membuka hasil ini karena percaya: vendor keamanan yang tidak mau di-scan dengan produknya sendiri adalah bendera merah. Scan berikutnya kami jalankan berkala — dan hasilnya akan terus kami perbaiki.
Kesimpulan
Memindai diri sendiri bukan soal terlihat sempurna — justru sebaliknya. Ini soal membuktikan bahwa prosesnya bekerja: temuan ditemukan, dilaporkan jujur, diprioritaskan, dan diperbaiki dengan bukti. Kalau produk Anda belum pernah di-scan dengan cara ini, mungkin sudah waktunya mencoba — mulai dari yang gratis.