~/blog /tips-trik /cek-keamanan-sebelum-m.md
// Tips & Trik

Cek Keamanan Sebelum Membeli Source Code SaaS Jadi (2026)

M
MarsukiTim Lintascode.com
9 November 2026 7 min read 21
Cek Keamanan Sebelum Membeli Source Code SaaS Jadi (2026)

Bagaimana Anda tahu source code SaaS yang baru Anda beli tidak membawa backdoor, kunci API bocor, atau celah yang siap dieksploitasi pada hari pertama produksi? Banyak pembeli fokus pada fitur dan tampilan demo, padahal risiko terbesar justru tersembunyi di repositori. Artikel ini menjawab satu pertanyaan sempit: apa saja cek keamanan yang perlu dilakukan sebelum membeli source code SaaS jadi, lengkap dengan urutan kerja yang bisa langsung Anda praktikkan pada 2026.

Mengapa Source Code SaaS Jadi Perlu Diaudit Sebelum Dibeli?

Saat membeli kode jadi, Anda tidak hanya membeli fitur. Anda mewarisi keputusan arsitektur, dependensi, dan kebiasaan coding penulis aslinya. Laporan OWASP Top 10 (edisi 2021) secara konsisten menempatkan broken access control, kegagalan kriptografi, injeksi, dan komponen rentan sebagai kategori risiko utama. Semua itu bisa ditemukan di kode pihak lain yang tidak pernah Anda tinjau.

Biaya memperbaiki celah setelah produk berjalan dan memegang data pelanggan jauh lebih mahal dibanding menemukannya sebelum transaksi. Itu sebabnya audit singkat sebelum membeli adalah bentuk due diligence, bukan sikap curiga berlebihan terhadap penjual.

Apa Cek Keamanan Pertama yang Harus Dilakukan?

Mulailah dari yang paling murah dan cepat: verifikasi penjual dan kelengkapan paket. Sebelum menyentuh kode, pastikan hal berikut.

  • Penjual memiliki riwayat jelas, ulasan terverifikasi, dan bersedia menjawab pertanyaan teknis.
  • Tersedia dokumentasi instalasi, daftar dependensi, dan changelog.
  • Ada kebijakan pembaruan atau dukungan untuk perbaikan keamanan.
  • Lisensi penggunaan ditulis tegas: boleh dijual ulang sebagai SaaS, boleh dimodifikasi, berapa banyak domain.

Penjual yang menolak memberi contoh struktur kode atau menjawab pertanyaan dasar keamanan adalah sinyal peringatan yang layak dianggap serius.

Bagaimana Memindai Secret yang Tertinggal di Kode?

Kebocoran kredensial adalah temuan paling umum pada kode bekas pakai. Pindai seluruh repositori, termasuk riwayat commit, bukan hanya cabang utama. Alat seperti Gitleaks atau TruffleHog dirancang untuk ini.

gitleaks detect --source . --log-opts="--all" --report-format json --report-path gitleaks-report.json

Periksa juga secara manual file berikut:

  • .env, .env.example, dan file konfigurasi lain yang berisi nilai asli.
  • Kunci pihak ketiga seperti payment gateway, SMTP, penyimpanan cloud, dan layanan analitik.
  • File dump database atau backup yang ikut terbawa dalam arsip.

Jika ditemukan kredensial aktif, anggap sudah bocor. Minta penjual mencabutnya, dan setelah membeli, ganti semua rahasia dengan milik Anda sendiri.

Bagaimana Mengecek Kerentanan pada Dependensi?

Sebagian besar kode SaaS modern terdiri dari paket pihak ketiga. Dependensi usang adalah pintu masuk serangan rantai pasok. Jalankan audit bawaan ekosistem Anda terlebih dahulu.

EkosistemPerintah AuditCatatan
Node.jsnpm audit --omit=devFokus pada paket produksi
PHP / Laravelcomposer auditPeriksa juga versi framework
Pythonpip-auditGunakan file requirements terkunci
Multi-bahasaOSV-Scanner atau TrivyCocok untuk repositori campuran

Perhatikan tiga hal: tingkat keparahan (critical dan high), apakah ada versi perbaikan yang tersedia, dan apakah framework utama masih menerima dukungan keamanan. Framework yang sudah end-of-life berarti Anda harus bermigrasi sendiri, dan itu biaya tersembunyi yang besar.

Apa yang Dicari Saat Tinjauan Kode Statis (SAST)?

Pemindaian statis menemukan pola berbahaya tanpa menjalankan aplikasi. Semgrep dan SonarQube Community adalah pilihan umum. Arahkan aturan ke kategori berikut.

  • Injeksi: query SQL yang disusun dengan penggabungan string, bukan parameter.
  • XSS: keluaran yang tidak di-escape pada template.
  • Eksekusi perintah: pemakaian eval, exec, atau shell_exec dengan input pengguna.
  • Deserialisasi tidak aman dan upload file tanpa validasi tipe.
  • Kriptografi lemah: MD5 atau SHA-1 untuk kata sandi.

Hasil SAST sering mengandung positif palsu. Jangan menolak produk hanya karena jumlah temuan, tetapi nilai temuan yang bisa dieksploitasi dari luar.

Bagaimana Memeriksa Autentikasi dan Manajemen Sesi?

Autentikasi adalah jantung SaaS. Tinjau implementasinya secara langsung, bukan hanya mengandalkan klaim fitur.

  1. Kata sandi di-hash dengan bcrypt, scrypt, atau Argon2, bukan hash cepat tanpa salt.
  2. Token reset kata sandi acak, sekali pakai, dan berumur pendek.
  3. Ada pembatasan percobaan login (rate limiting) dan perlindungan brute force.
  4. Cookie sesi memakai flag HttpOnly, Secure, dan SameSite.
  5. Tersedia opsi autentikasi dua faktor atau setidaknya arsitektur yang memungkinkan penambahannya.
  6. JWT memakai algoritma yang dipaksa di sisi server dan kunci yang tidak di-hardcode.

Apa yang Khusus Perlu Dicek pada Arsitektur Multi-Tenant?

Inilah celah yang paling sering lolos pada SaaS jadi: kebocoran data antar pelanggan. Pastikan setiap query data memfilter berdasarkan tenant, dan pemfilteran itu tidak bergantung pada parameter yang bisa diubah klien.

// Contoh pola aman: tenant diambil dari sesi server, bukan dari request
const tenantId = req.session.tenantId;
const invoice = await db.invoice.findFirst({
  where: { id: req.params.id, tenantId } // wajib menyertakan tenantId
});

Uji manual dengan dua akun tenant berbeda. Coba akses ID resource milik tenant lain lewat URL atau API. Jika berhasil, itu kerentanan IDOR kelas berat dan harus menjadi syarat perbaikan sebelum Anda membeli.

Bagaimana Mendeteksi Backdoor atau Kode Mencurigakan?

Backdoor jarang terlihat jelas. Cari pola yang tidak punya alasan bisnis.

  • Permintaan HTTP keluar ke domain asing yang tidak terdokumentasi, terutama saat instalasi atau login.
  • Kode terenkripsi atau ter-obfuscate (base64 berlapis, string heksadesimal panjang) pada file inti.
  • Akun admin atau kata sandi master yang tertanam.
  • Mekanisme validasi lisensi yang menghubungi server penjual dan bisa menonaktifkan aplikasi.
  • Skrip postinstall pada package.json yang mengunduh atau menjalankan berkas eksternal.

Jalankan aplikasi di lingkungan terisolasi dan pantau lalu lintas jaringan keluar. Jika ada koneksi yang tidak bisa dijelaskan, minta klarifikasi tertulis dari penjual.

Konfigurasi Server dan Infrastruktur Apa yang Wajib Diperiksa?

Kode aman bisa tetap rentan jika konfigurasi bawaannya longgar. Periksa mode debug yang aktif secara default, pesan error yang membocorkan stack trace, CORS yang terbuka untuk semua origin, header keamanan (CSP, HSTS, X-Content-Type-Options), serta file Docker atau skrip deployment yang menjalankan proses sebagai root. Pastikan pula backup, log, dan folder upload tidak dapat diakses publik.

Bagaimana Dengan Keamanan Lisensi dan Kepatuhan Data?

Aspek hukum adalah bagian dari keamanan bisnis. Periksa lisensi paket open source di dalam kode, karena lisensi copyleft seperti AGPL dapat mewajibkan Anda membuka kode turunan. Alat seperti ScanCode atau license-checker membantu mengidentifikasinya.

Jika Anda akan memproses data pribadi pengguna di Indonesia, pastikan produk memungkinkan Anda memenuhi kewajiban UU Pelindungan Data Pribadi (UU PDP No. 27 Tahun 2022), misalnya fitur persetujuan, penghapusan data, dan ekspor data pengguna. Kode yang tidak menyediakannya berarti Anda perlu membangunnya sendiri.

Apakah Asisten AI Bisa Mempercepat Proses Audit?

Ya, sebagai pendamping, bukan pengganti. Asisten pengodean dapat merangkum struktur repositori, menandai pola berisiko, dan menyusun checklist temuan lebih cepat daripada membaca manual. Jika Anda memakai Claude Code, lihat panduan Cara Menyambungkan Claude Code ke Lintascode dalam 2 Menit agar alur kerja tinjauan lebih efisien. Tetap verifikasi setiap temuan secara manual, karena AI bisa melewatkan konteks bisnis dan menghasilkan positif palsu.

Bagaimana Urutan Kerja Audit yang Efisien?

Untuk kode berukuran menengah, urutan berikut biasanya selesai dalam satu hingga dua hari kerja.

  1. Verifikasi penjual, lisensi, dan dokumentasi.
  2. Pindai secret pada seluruh riwayat commit.
  3. Audit dependensi dan status dukungan framework.
  4. Jalankan SAST dan tinjau temuan berisiko tinggi.
  5. Uji autentikasi, otorisasi, dan isolasi multi-tenant secara manual.
  6. Pantau lalu lintas jaringan keluar di lingkungan sandbox.
  7. Tinjau konfigurasi server dan lisensi pihak ketiga.
  8. Dokumentasikan temuan, lalu negosiasikan perbaikan atau penyesuaian harga.

Prinsip praktis: jangan membayar penuh sebelum kode lolos pemeriksaan secret, dependensi kritis, dan isolasi tenant. Tiga area ini menyumbang sebagian besar risiko nyata pada produk SaaS jadi.

Pertanyaan yang Sering Diajukan

Berapa lama waktu yang dibutuhkan untuk audit keamanan dasar source code SaaS?

Untuk repositori ukuran menengah, audit dasar berupa pemindaian secret, dependensi, dan SAST biasanya selesai dalam beberapa jam, sedangkan pengujian manual autentikasi dan multi-tenant membutuhkan satu hingga dua hari. Waktu bertambah jika kode besar atau minim dokumentasi.

Apakah cukup mengandalkan hasil scan otomatis?

Tidak. Scanner otomatis sangat baik menemukan secret dan dependensi rentan, tetapi lemah pada cacat logika bisnis seperti IDOR dan kesalahan otorisasi. Kombinasikan alat otomatis dengan pengujian manual pada alur kritis.

Apa tanda bahaya paling serius pada source code SaaS jadi?

Kode ter-obfuscate pada file inti, koneksi keluar ke domain tak terdokumentasi, kredensial aktif di riwayat commit, dan kebocoran data antar tenant. Salah satu temuan ini cukup untuk menunda pembelian sampai penjual memberi penjelasan atau perbaikan.

Perlukah menyewa pihak ketiga untuk penetration test?

Disarankan jika produk akan memproses data sensitif atau transaksi keuangan. Untuk proyek skala kecil, checklist internal dalam artikel ini biasanya cukup sebagai tahap awal, lalu lakukan pentest profesional sebelum peluncuran komersial.

Apakah dependensi usang selalu berarti kode tidak layak dibeli?

Tidak selalu. Jika pembaruan bisa dilakukan tanpa mengubah banyak kode, itu masalah yang dapat diperbaiki. Namun bila framework utama sudah tidak didukung, perhitungkan biaya migrasi dalam harga yang Anda negosiasikan.

Apa yang harus dilakukan setelah membeli kode?

Segera ganti semua kunci dan kredensial, perbarui dependensi, nonaktifkan mode debug, dan jalankan ulang pemindaian di lingkungan produksi Anda. Setelah itu, jadwalkan audit berkala agar celah baru tidak menumpuk.

// share: cd ~/blog
Percepat Coding Anda — Lihat Paket
Terapkan tips ini dengan coding agent sungguhan — langganan Claude Code & GitHub Copilot di Lintascode.com, bayar Rupiah dengan kuota kredit yang jelas.

Artikel Terkait