OWASP API TOP 10 2023 · INDONESIA CONTEXT

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.

Ilustrasi arsitektur keamanan API enterprise dengan checkpoint otorisasi objek, autentikasi, dan pembatasan konsumsi sumber daya.
Setiap endpoint yang mengakses data via ID dari client adalah titik potensial BOLA (API1:2023) jika otorisasi objek tidak dijalankan di server.
KENAPA API JADI TARGET

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].

API1:2023

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].

API4:2023

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].

API2:2023

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.

Ilustrasi ancaman ransomware terhadap sistem database yang menggambarkan risiko keamanan API enterprise.
Penyerang memanfaatkan CVE yang sudah diketahui untuk akses awal, lalu bergerak ke ransomware atau pencurian data [citation:8].
PENDEKATAN AUDIT

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].

API1 / API3 / API5

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.

API4

Resource Consumption Limits

Batas eksplisit untuk page size, array length, nesting depth, dan payload size. Rate limit per key/IP/endpoint—bukan hanya global.

API2 / API7

Auth & SSRF Check

Validasi JWT signature, expiry, dan claim; URL input di server-side request harus di-whitelist, bukan hanya di-parse.

API8 / API9

Config & Inventory

CORS policy, HTTP verb yang tidak diperlukan, debug endpoint yang terekspos, dan versi API lama (zombie/shadow API) yang masih aktif.

Arsitektur keamanan API enterprise dengan checkpoint otorisasi objek, autentikasi, dan pembatasan resource.
Setiap lapisan dipetakan ke kategori OWASP API Top 10 2023: otorisasi objek di API1, validasi token di API2, pembatasan resource di API4.

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.

CAKUPAN LAYANAN

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.

API1

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].

API4

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].

API2

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].

API3

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].

API5 / API7 / API8 / API9

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].

Visual lima area pemeriksaan keamanan API dengan kategori OWASP.
Setiap area pemeriksaan memiliki output yang bisa ditindaklanjuti: daftar endpoint, kategori risiko, bukti teknis, dan rekomendasi perbaikan.
OUTPUT PEKERJAAN

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.

FORMAT TEMUAN
  • Endpoint dan HTTP method
  • Kategori OWASP (API1–API10)
  • Deskripsi teknis
  • Dampak potensial
  • Bukti (aman dibagikan)
  • Rekomendasi perbaikan
BATAS PENGUJIAN
  • Daftar endpoint yang diuji
  • Lingkungan (staging/production)
  • Metode yang digunakan
  • Asumsi dan keterbatasan
  • Endpoint yang tidak diuji + alasan
VALIDASI ULANG
  • 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.

ALUR KERJA

Enam Tahap dari Inventarisasi ke Validasi

Tahapan ini berlaku untuk audit REST API, GraphQL, atau kombinasi keduanya.

01

Inventarisasi Endpoint

Daftar endpoint, method, dan parameter.

02

Penentuan Scope

Endpoint prioritas dan lingkungan uji.

03

Pemetaan OWASP

Setiap endpoint dipetakan ke kategori risiko.

04

Pengujian

Terotorisasi, sesuai batas yang disepakati.

05

Rekomendasi

Perbaikan spesifik per temuan.

06

Validasi Ulang

Verifikasi perbaikan pada scope sama.

Tim developer melakukan inventarisasi endpoint dan pemetaan OWASP API Top 10.
Inventarisasi endpoint adalah langkah pertama: tanpa daftar lengkap, endpoint lama atau yang jarang digunakan sering terlewat dari scope audit.

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.

PERBANDINGAN

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”.

KONTEKS TEKNIS

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:

// Rentan: hanya lookup berdasarkan ID dari request
const invoice = await db.invoice.findById(req.params.id);
// Aman: scope ke ownerId dari token
const invoice = await db.invoice.findOne({ _id: req.params.id, ownerId: req.user.id });

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.

Infografis edukatif tentang BOLA, BFLA, dan kategori OWASP API Top 10 2023.
Lima dari sepuluh kategori OWASP API Top 10 2023 adalah variasi dari “API membiarkan user mengakses sesuatu yang seharusnya tidak boleh” [citation:3].
REFERENSI
PERTANYAAN TEKNIS

Pertanyaan Umum tentang Audit Keamanan API

BOLA (API1) adalah tentang objek: apakah caller berhak mengakses object tertentu (misal invoice milik user lain). BFLA (API5) adalah tentang fungsi: apakah caller berhak menjalankan action tertentu (misal bulk delete yang hanya untuk admin). BOLA menguji kepemilikan objek; BFLA menguji role/privilege pada level fungsi [citation:2][citation:17].

OWASP mengganti nama kategori ini menjadi “Unrestricted Resource Consumption” karena satu request bisa menghabiskan resource tanpa memerlukan banyak request. Contoh: parameter ?limit=1000000 yang tidak dibatasi, GraphQL query dengan nesting depth tak terbatas, atau batch endpoint yang menerima ribuan ID dalam satu call. Yang diperlukan: batas eksplisit pada page size, array length, dan nesting depth, plus rate limit per-key dan per-endpoint [citation:2].

Sulit. Request BOLA secara sintaksis identik dengan request legitimate—perbedaannya hanya pada apakah objek yang diminta memang milik caller. WAF tidak memiliki konteks kepemilikan objek. Satu-satunya cara adalah mengetahui di level kode objek mana yang berhak diakses oleh setiap caller [citation:3].

Kategori baru di 2023 yang mencakup endpoint yang mengekspos alur bisnis sensitif tanpa mempertimbangkan penyalahgunaan otomatis. Contoh: endpoint pembelian massal yang bisa di-script untuk menghabiskan stok, atau endpoint posting komentar yang bisa dibanjiri bot. Fokusnya bukan pada kerentanan teknis, melainkan pada dampak bisnis jika alur ini disalahgunakan dalam skala besar [citation:2][citation:18].

Bisa, dengan penilaian risiko, persetujuan tertulis, penjadwalan, dan batas operasional yang jelas. Jika memungkinkan, staging environment digunakan untuk mengurangi dampak terhadap layanan aktif. Pilihan lingkungan ditentukan bersama pemilik sistem berdasarkan toleransi risiko.

Karena pola exploit yang dominan bukan chained exploitation yang kompleks, melainkan abuse terhadap logic yang salah: endpoint yang tidak memeriksa kepemilikan objek, endpoint tanpa autentikasi, atau endpoint yang membocorkan data melalui response berlebihan. Data Wallarm 2025 menunjukkan 97% API vulnerability bisa dieksploitasi dengan single request, 98% mudah/trivial, dan 59% tanpa autentikasi [citation:11].

Bisa, dan justru lebih ekonomis. Masalah otorisasi objek dan desain endpoint lebih murah diperbaiki sebelum sistem digunakan banyak user. Audit pada tahap pengembangan bisa fokus pada review kode otorisasi, schema validation, dan desain rate limiting sebelum endpoint di-expose ke production.

Setiap temuan diklasifikasikan berdasarkan kategori OWASP, endpoint terdampak, dan dampak potensial (apakah membocorkan data, memungkinkan eskalasi privilege, atau mengganggu ketersediaan). Prioritas disusun bersama tim berdasarkan sensitivitas data yang terpapar dan kompleksitas perbaikan.

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.

KONTEKS

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.

AUDIT API BERBASIS OWASP

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.

DevSoftware

Pengembangan software dan layanan keamanan untuk sistem enterprise.

© 2025 DevSoftware. Seluruh hak cipta dilindungi.

Kami siap membantu mewujudkan solusi kebutuhan organisasi Anda dan siap berkomitmen hubungan jangka panjang. Mari berdiskusi bersama kami untuk menemukan solusi terbaik bagi kebutuhan Anda! Kontak no. WA: 081-216-309-410! Atau klik tombol hijau di bawah ini!

 Develop by Amanah Solution 2026 | Cassiopeia Extended
 Joomla 6 Framework!