Jasa Keamanan API Enterprise: Audit BOLA, Otentikasi, dan Konsumsi Sumber Daya
BSSN mencatat 5,16 miliar anomali trafik internet sepanjang 2025, atau rata-rata 182 potensi serangan per detik [citation:14]. Sebagian besar API breach bukan karena exploit canggih—melainkan endpoint yang menerima ID dari client tanpa memverifikasi kepemilikan objek di sisi server, atau endpoint tanpa rate limit yang bisa di-script selama berjam-jam [citation:17].
Dari 67.058 CVE yang dipublikasikan 2025, 11.053 (17%) terkait API. Di CISA KEV, 43% adalah API [citation:11]. 97% API vulnerability bisa dieksploitasi dengan satu request; 59% tanpa autentikasi [citation:11].
Diskusikan ruang lingkup audit API perusahaan bersama tim DevSoftware.
Endpoint yang Tampak Berfungsi Normal Belum Tentu Aman
Data dari AwanPintar mencatat 133 juta serangan siber pada Semester I 2025, atau sekitar 9 serangan per detik [citation:8]. Penyerang tidak menggunakan zero-day yang mahal—mereka memakai kerentanan yang sudah diketahui (CVE) untuk akses awal, lalu menanam ransomware atau mencuri data [citation:8].
Di level API, pola ini terlihat dari data Wallarm: 97% API vulnerability dapat dieksploitasi dengan satu request tunggal, 99% remote-exploitable, dan 59% tidak memerlukan autentikasi [citation:19]. Artinya, endpoint yang tampak “normal” saat diuji dengan happy-path test bisa jadi membocorkan data user lain begitu ID-nya diubah.
OWASP API Security Top 10 2023 menempatkan Broken Object Level Authorization (BOLA) di posisi #1 sejak 2019 [citation:2]. Kategori ini bertahan di puncak karena alasan struktural: firewall dan scanner otomatis sulit mendeteksi BOLA, sebab request-nya secara sintaksis identik dengan request legitimate—perbedaannya hanya pada apakah objek yang diminta memang milik caller [citation:3].
Broken Object Level Authorization
Endpoint seperti GET /api/invoices/{id} memeriksa apakah caller sudah login, tapi tidak memeriksa apakah invoice {id} memang miliknya. Increment ID = akses ke data user lain.
USPS (2018, 60 juta user) dan Peloton (2021, 3 juta akun) adalah dua contoh BOLA yang terdokumentasi [citation:3].
Unrestricted Resource Consumption
Rate limiting saja tidak cukup. Parameter ?limit=1000000, query GraphQL yang deeply nested, atau batch endpoint dengan ribuan ID bisa menghabiskan resource dari satu request [citation:2].
Serangan Layer-7 DDoS global tumbuh 94% secara quarter-over-quarter antara Q1 2023 dan Q4 2024 [citation:5].
Broken Authentication
Kasus T-Mobile (Jan 2023) menunjukkan API endpoint yang tidak memerlukan token sama sekali—tidak ada login event, tidak ada failed password, tidak ada session anomaly yang bisa ditangkap SOC [citation:3]. Root cause umum: JWT tanpa validasi signature, token tanpa expiry, atau API key di URL yang tercatat di access log.
Memetakan Setiap Endpoint ke Kategori OWASP API Top 10 2023
Audit dimulai dengan inventarisasi endpoint: mana yang menerima ID dari client, mana yang melakukan admin-only actions, mana yang menerima URL dari user, dan mana yang memiliki parameter pagination tanpa batas. Setiap endpoint dipetakan ke kategori risiko OWASP yang relevan, bukan diperiksa dengan checklist generik.
Untuk BOLA (API1), pemeriksaan fokus pada apakah setiap object lookup di-scope ke ownerId dari token yang terautentikasi, bukan hanya findById(req.params.id) [citation:17]. Untuk BFLA (API5), pemeriksaan fokus pada apakah endpoint admin benar-benar memeriksa role di server, bukan hanya menyembunyikan tombol di UI [citation:17].
Pada API4 (Unrestricted Resource Consumption), tim memeriksa batas eksplisit untuk page size, panjang array di request body, dan kedalaman nesting untuk query language yang diekspos [citation:2]. Ini termasuk apakah rate limit diterapkan per-API-key, per-IP, dan per-endpoint—bukan hanya ceiling global requests-per-minute [citation:2].
Object & Function Level Auth
Setiap endpoint yang menerima object ID atau menjalankan privileged function diperiksa apakah otorisasi dijalankan server-side terhadap objek/fungsi spesifik, bukan hanya terhadap session validity.
Resource Consumption Limits
Batas eksplisit untuk page size, array length, nesting depth, dan payload size. Rate limit per key/IP/endpoint—bukan hanya global.
Auth & SSRF Check
Validasi JWT signature, expiry, dan claim; URL input di server-side request harus di-whitelist, bukan hanya di-parse.
Config & Inventory
CORS policy, HTTP verb yang tidak diperlukan, debug endpoint yang terekspos, dan versi API lama (zombie/shadow API) yang masih aktif.
Mulai Inventarisasi Endpoint API Perusahaan Anda
Diskusikan ruang lingkup, daftar endpoint, dan lingkungan pengujian bersama tim DevSoftware sebelum pekerjaan dimulai.
Otorisasi tertulis dan batas pengujian ditetapkan sebelum aktivitas dimulai.
Lima Area Pemeriksaan dengan Kategori OWASP yang Jelas
Setiap modul memiliki output yang bisa ditindaklanjuti: daftar endpoint terdampak, kategori risiko, bukti teknis yang aman dibagikan, dan rekomendasi perbaikan.
Broken Object Level Authorization
Setiap endpoint yang menerima ID dari client diperiksa apakah lookup di-scope ke pemilik objek yang terautentikasi. Termasuk endpoint yang menggunakan sequential integer, UUID, atau token sebagai identifier.
USPS (60 juta user) dan Peloton (3 juta akun) adalah contoh BOLA yang terdokumentasi [citation:3].
Unrestricted Resource Consumption
Pemeriksaan batas eksplisit untuk limit, page, panjang array di request body, dan kedalaman nesting GraphQL. Rate limit per-API-key, per-IP, dan per-endpoint.
Satu request dengan ?limit=1000000 atau nested query bisa menghabiskan resource tanpa perlu banyak request [citation:2].
Broken Authentication
Validasi JWT (signature, exp, iss, aud), penolakan alg:none, rotasi refresh token, dan rate limit pada endpoint login. API key di URL yang tercatat di access log.
T-Mobile (Jan 2023) adalah kasus API tanpa autentikasi sama sekali—tidak ada login event untuk SOC deteksi [citation:3].
Broken Object Property Level Auth
Kategori baru 2023 yang menggabungkan Excessive Data Exposure dan Mass Assignment [citation:18]. Response tidak boleh men-serialize seluruh row database; request body tidak boleh bind field yang tidak diizinkan (misal isAdmin: true).
Schema validation terhadap OpenAPI/JSON Schema dengan rejection untuk unknown properties menutup kedua sisi sekaligus [citation:2].
Cakupan Tambahan: BFLA, SSRF, Misconfig, Inventory
BFLA (API5): endpoint admin yang hanya disembunyikan di UI tapi tidak diperiksa role-nya di server. SSRF (API7): API yang fetch URL dari user tanpa whitelist internal address. Misconfig (API8): CORS policy, HTTP verb yang tidak perlu, debug endpoint. Inventory (API9): versi API lama dan zombie endpoint yang masih aktif [citation:18].
OWASP 2023 menambahkan tiga kategori baru (API6, API7, API10) yang mencerminkan bagaimana API kini memanggil API lain, bukan hanya browser memanggil backend [citation:2].
Laporan Temuan dengan Klasifikasi Risiko yang Bisa Ditindaklanjuti
Setiap temuan dipetakan ke kategori OWASP yang spesifik (bukan hanya “high/medium/low”), dilengkapi endpoint terdampak, bukti teknis yang aman dibagikan, dan rekomendasi perbaikan. Tujuannya agar tim developer bisa langsung memprioritaskan perbaikan tanpa perlu menerjemahkan laporan abstrak.
Dokumentasi juga mencakup batas pengujian, lingkungan yang digunakan, dan asumsi yang diambil selama assessment. Jika ada endpoint yang tidak bisa diuji karena keterbatasan akses atau lingkungan, hal ini dicatat secara eksplisit agar tidak menimbulkan kesan coverage yang berlebihan.
Untuk evaluasi ulang setelah perbaikan, validasi dilakukan pada scope yang sama dengan pengujian awal, sehingga perbandingan before/after dapat dipertanggungjawabkan.
- Endpoint dan HTTP method
- Kategori OWASP (API1–API10)
- Deskripsi teknis
- Dampak potensial
- Bukti (aman dibagikan)
- Rekomendasi perbaikan
- Daftar endpoint yang diuji
- Lingkungan (staging/production)
- Metode yang digunakan
- Asumsi dan keterbatasan
- Endpoint yang tidak diuji + alasan
- Scope sama dengan pengujian awal
- Perbandingan before/after
- Temuan yang sudah diperbaiki
- Temuan yang masih terbuka
- Rekomendasi lanjutan (jika ada)
Portofolio proyek ditampilkan hanya jika klien memberikan persetujuan publikasi tertulis. Detail arsitektur, endpoint, dan bukti teknis tidak dipublikasikan.
Enam Tahap dari Inventarisasi ke Validasi
Tahapan ini berlaku untuk audit REST API, GraphQL, atau kombinasi keduanya.
Inventarisasi Endpoint
Daftar endpoint, method, dan parameter.
Penentuan Scope
Endpoint prioritas dan lingkungan uji.
Pemetaan OWASP
Setiap endpoint dipetakan ke kategori risiko.
Pengujian
Terotorisasi, sesuai batas yang disepakati.
Rekomendasi
Perbaikan spesifik per temuan.
Validasi Ulang
Verifikasi perbaikan pada scope sama.
Punya Daftar Endpoint yang Belum Pernah Diaudit?
Mulai dari inventarisasi endpoint dan pemetaan kategori OWASP, lalu tentukan prioritas pengujian berdasarkan sensitivitas data dan fungsi bisnis.
Pemeriksaan Ad-Hoc vs Audit Terstruktur per Kategori OWASP
Perbandingan berikut menggambarkan perbedaan pendekatan, bukan penilaian terhadap vendor tertentu.
| Aspek | Ad-Hoc | Terstruktur (per Kategori OWASP) |
|---|---|---|
| Otorisasi objek | Diuji jika ada waktu | Setiap endpoint dengan ID client dipetakan ke API1 |
| Rate limit | Ceiling global requests/minute | Per-key, per-IP, per-endpoint + batas page size & nesting depth |
| Autentikasi | Cek apakah token ada | Validasi signature, exp, iss, aud; reject alg:none |
| Inventaris | Endpoint yang diketahui saja | Termasuk versi lama, zombie, dan debug endpoint (API9) |
| Dokumentasi | Catatan informal | Kategori risiko + endpoint + bukti + rekomendasi |
Pendekatan yang tepat bergantung pada konteks sistem. Yang penting adalah setiap endpoint yang mengakses data via ID dari client diperiksa otorisasi objeknya—tanpa pengecualian berdasarkan asumsi “endpoint ini sudah aman”.
Mengapa BOLA Bertahan di Posisi #1 Sejak 2019
BOLA: Kesalahan yang Trivial Dijelaskan, Sulit Dideteksi Otomatis
BOLA (API1:2023) terjadi ketika endpoint seperti GET /api/invoices/{id} memeriksa bahwa caller sudah terautentikasi, tetapi tidak memeriksa bahwa invoice {id} memang milik caller tersebut [citation:3]. Dalam kode, perbedaannya sederhana:
Karena request BOLA secara sintaksis identik dengan request legitimate, WAF tidak bisa membedakannya. Satu-satunya cara mendeteksi adalah mengetahui di level kode objek mana yang berhak diakses oleh setiap caller [citation:3]. USPS (2018, 60 juta user) dan Peloton (2021, 3 juta akun) adalah dua contoh BOLA yang terdokumentasi [citation:3].
BFLA vs BOLA: Object Level vs Function Level
BOLA (API1) adalah tentang “objek mana yang boleh diakses”. BFLA (API5) adalah tentang “fungsi mana yang boleh dijalankan” [citation:2]. Contoh BFLA: endpoint DELETE /api/users/{id} yang memeriksa “apakah user sudah login” tetapi tidak memeriksa “apakah user adalah admin”. UI mungkin menyembunyikan tombol delete untuk non-admin, tapi endpoint-nya tetap bisa dipanggil langsung [citation:17].
Keduanya memerlukan fix yang sama: otorisasi dijalankan pada setiap request, keyed ke objek dan fungsi spesifik, tidak disimpulkan dari keberadaan session yang valid [citation:2].
API4: Rate Limiting Saja Tidak Cukup
OWASP mengganti nama kategori ini dari “Lack of Resources & Rate Limiting” menjadi “Unrestricted Resource Consumption” karena rate limiting saja tidak menutupi seluruh vektor [citation:2]. Satu request dengan ?limit=1000000, GraphQL query yang deeply nested, atau batch endpoint dengan ribuan ID bisa menghabiskan resource tanpa memerlukan banyak request [citation:2].
Yang diperlukan: batas eksplisit pada page size, panjang array di request body, dan kedalaman nesting untuk query language yang diekspos. Rate limit diterapkan per-API-key, per-IP, dan per-endpoint—bukan hanya ceiling global [citation:2].
Yang Berubah di 2023: API6, API7, API10
Edisi 2023 menambahkan tiga kategori yang tidak ada di 2019 [citation:2]:
- API6: Unrestricted Access to Sensitive Business Flows — endpoint yang mengekspos alur bisnis sensitif (misal pembelian massal, posting komentar otomatis) tanpa mempertimbangkan bagaimana penyalahgunaan otomatis bisa merugikan bisnis.
- API7: Server-Side Request Forgery — API yang fetch URL dari user tanpa whitelist, membuka akses ke internal service.
- API10: Unsafe Consumption of APIs — mempercayai data dari third-party API lebih dari input user, sehingga standar keamanan lebih lemah di integrasi eksternal.
Perubahan ini mencerminkan pergeseran arsitektur: API kini memanggil API lain, bukan hanya browser memanggil backend [citation:2].
Konteks Indonesia: BSSN dan UU PDP
BSSN mencatat sekitar 5,16 miliar anomali trafik internet sepanjang 2025, atau rata-rata 182 potensi serangan per detik [citation:14]. AwanPintar mencatat 133 juta serangan pada Semester I 2025 (sekitar 9 per detik), dengan peningkatan serangan yang berasal dari dalam Indonesia sebesar 2,35%—mengindikasikan banyak perangkat lokal yang terinfeksi dan disalahgunakan [citation:8].
Pada sisi regulasi, UU No. 27 Tahun 2022 tentang Pelindungan Data Pribadi mengatur kewajiban pengendali dan prosesor data. Audit API yang mendokumentasikan kontrol akses, pembatasan data, dan mekanisme perlindungan komunikasi membantu perusahaan menunjukkan due diligence dalam melindungi data yang diproses.
- OWASP API Security Top 10 2023: owasp.org/API-Security/editions/2023/
- BSSN: 182 potensi serangan siber per detik (2025 data): antaranews.com
- AwanPintar: 133 juta serangan Semester I 2025: selular.id
- UU No. 27 Tahun 2022 (PDP): peraturan.bpk.go.id
Pertanyaan Umum tentang Audit Keamanan API
Tentukan Endpoint Mana yang Perlu Diuji Lebih Dulu
Mulai dari inventarisasi endpoint, lalu prioritaskan berdasarkan sensitivitas data dan fungsi bisnis.
Konsultasi awal mencakup diskusi ruang lingkup dan batas pengujian.
Setiap Endpoint Baru Menambah Permukaan yang Perlu Diperiksa
BSSN mencatat 5,16 miliar anomali trafik sepanjang 2025 [citation:14]. Sebagian besar API breach bukan dari exploit eksotis, melainkan dari endpoint yang menerima ID dari client tanpa otorisasi objek, atau endpoint tanpa batas konsumsi resource [citation:17].
Inventarisasi endpoint dan pemetaan kategori OWASP membantu perusahaan menentukan prioritas perbaikan sebelum masalah muncul.
Layanan Terkait
Layanan lain dari DevSoftware untuk pengembangan dan pengelolaan infrastruktur digital.
Petakan Endpoint, Identifikasi Kategori Risiko, Tentukan Prioritas
Audit API dimulai dari daftar endpoint dan otorisasi objek—bukan dari checklist generik.
Diskusikan ruang lingkup, daftar endpoint, dan lingkungan pengujian bersama tim DevSoftware.
Pengembangan software dan layanan keamanan untuk sistem enterprise.
© 2025 DevSoftware. Seluruh hak cipta dilindungi.