Dampak
API yang disusupi memungkinkan penyerang melewati antarmuka pengguna dan berinteraksi langsung dengan database dan layanan backend [S1]. Hal ini dapat menyebabkan eksfiltrasi data yang tidak sah, pengambilalihan akun melalui kekerasan, atau tidak tersedianya layanan karena kehabisan sumber daya [S3][S5].
Akar Penyebab
Penyebab utama adalah paparan logika internal melalui titik akhir yang tidak memiliki validasi dan perlindungan [S1] yang memadai. Pengembang sering berasumsi bahwa jika suatu fitur tidak terlihat di UI, berarti fitur tersebut aman, sehingga menyebabkan kontrol akses [S2] rusak dan kebijakan CORS permisif yang mempercayai terlalu banyak asal [S4].
Daftar Periksa Keamanan API Penting
- Menerapkan Kontrol Akses Ketat: Setiap titik akhir harus memverifikasi bahwa pemohon memiliki izin yang sesuai untuk sumber daya spesifik yang sedang diakses [S2].
- Menerapkan Pembatasan Kecepatan: Melindungi dari penyalahgunaan otomatis dan serangan DoS dengan membatasi jumlah permintaan yang dapat dibuat klien dalam jangka waktu tertentu [S3].
- Konfigurasikan CORS dengan benar: Hindari penggunaan asal wildcard (
*) untuk titik akhir yang diautentikasi. Tentukan secara eksplisit asal yang diizinkan untuk mencegah kebocoran data lintas situs [S4]. - Audit Visibilitas Titik Akhir: Pindai secara rutin titik akhir yang "tersembunyi" atau tidak terdokumentasi yang mungkin mengekspos fungsi sensitif [S1].
Bagaimana FixVibe mengujinya
FixVibe sekarang mencakup daftar periksa ini melalui beberapa pemeriksaan langsung. Probe dengan gerbang aktif menguji pembatasan kecepatan titik akhir autentikasi, CORS, CSRF, injeksi SQL, kelemahan aliran autentikasi, dan masalah lain yang dihadapi API hanya setelah verifikasi. Pemeriksaan pasif memeriksa header keamanan, dokumentasi API publik dan paparan OpenAPI, serta rahasia dalam bundel klien. Pemindaian repo menambahkan tinjauan risiko tingkat kode untuk CORS yang tidak aman, interpolasi SQL mentah, rahasia JWT yang lemah, penggunaan JWT khusus dekode, kesenjangan tanda tangan webhook, dan masalah ketergantungan.
