Setiap pull request Penambahan atau perubahan pada sebuah endpoint akan mengubah potensi kerentanan API Anda. Sebagian besar alat keamanan API tidak akan menyadarinya sampai endpoint tersebut aktif dan sudah menerima trafik. Pada saat itu, perbaikannya bukan lagi sekadar perubahan satu baris dalam tinjauan kode, melainkan percakapan dalam respons insiden.
Keamanan API adalah praktik menemukan dan menutup risiko dalam cara aplikasi mengekspos titik akhirnya: siapa yang dapat memanggilnya, data apa yang dikembalikannya, dan apakah data tersebut melakukan apa yang dijelaskan dalam dokumentasi.
Sebagian besar alat bantu yang dibangun untuk masalah ini menguji API saat runtime, dari luar, dengan cara yang sama seperti yang dilakukan penyerang. Pendekatan itu berhasil, tetapi hanya berfungsi setelah API diimplementasikan. Xygeni Pendekatan ini mengambil jalur yang lebih awal: ia membaca kode sumber dan spesifikasi API Anda sebelum satu pun permintaan mencapai titik akhir.
Empat Cara untuk Menguji API, dan Apa yang Dijawab oleh Masing-masing Cara
Sebagian besar program yang sudah mapan menjalankan lebih dari satu dari hal-hal berikut:
- Pengujian statis Menganalisis kode sumber dan spesifikasi API sebelum penerapan. Ini menjawab pertanyaan “apa yang baru saja kita ekspos?” Inilah pendekatan yang menjadi fokus artikel ini.
- Pengujian dinamis (DAST) Mengirimkan lalu lintas nyata ke API yang sedang berjalan dan mengamati bagaimana API tersebut merespons. Ini menjawab pertanyaan "apa yang sebenarnya dapat dijangkau dan dieksploitasi saat ini?"
- kabur Melemparkan input yang salah format atau tidak terduga ke titik akhir untuk mengungkap kerusakan dan kegagalan kasus ekstrem. Ini menjawab pertanyaan "apa yang rusak akibat input yang tidak kita antisipasi?"
- Pengujian penetrasi manual Menambahkan penilaian manusia untuk menemukan kelemahan logika yang terlewatkan oleh alat otomatis. Ini menjawab pertanyaan "rangkaian apa yang akan digunakan penyerang cerdas?"
Tak satu pun dari metode ini menggantikan yang lain. Masing-masing menjawab pertanyaan yang berbeda pada titik yang berbeda dalam siklus hidup, dan kesenjangan yang paling banyak dialami program adalah pada tahap pertama.
Mengapa Sebagian Besar Alat Keamanan API Mendeteksi Risiko Terlalu Terlambat?
Pengujian keamanan API saat runtime mengirimkan lalu lintas ke aplikasi yang sedang berjalan dan mengamati bagaimana aplikasi tersebut merespons. Ini adalah lapisan yang sah dan diperlukan. Namun, berdasarkan konstruksinya, ini juga merupakan indikator yang tertinggal: sebuah endpoint harus ada, diimplementasikan, dan dapat dijangkau sebelum pemindai saat runtime dapat mengatakan apa pun tentangnya. Apa pun yang ditemukannya sudah terekspos selama waktu yang dibutuhkan pemindaian untuk berjalan.
Ada celah kedua di balik masalah waktu tersebut. Alat runtime hanya dapat menguji apa yang mereka ketahui keberadaannya. Jika sebuah endpoint tidak pernah didokumentasikan, atau spesifikasi OpenAPI menjadi usang begitu seseorang merilis rute baru, pemindai runtime tidak memiliki cara untuk mengetahui keberadaannya. Ia hanya menguji peta, bukan wilayahnya.
Pengujian keamanan API statis menutup kedua celah tersebut dengan memindahkan pemeriksaan ke tempat endpoint didefinisikan: kode Anda dan spesifikasi API Anda, sebelum penerapan. Hal yang sama berlaku untuk pengujian keamanan API statis. pull request yang memperkenalkan titik akhir adalah pull request yang memunculkan risikonya.
Apa Arti Sebenarnya dari Keamanan API Statis?
Xygeni membangun inventaris API Anda dari dua sumber: kode sumber aplikasi Anda dan spesifikasi API Anda, termasuk OpenAPI dan Swagger.
Inventaris yang hanya berisi spesifikasi menunjukkan titik akhir yang diingat seseorang untuk didokumentasikan. Inventaris yang hanya berisi kode menunjukkan apa yang ada tetapi belum tentu bagaimana seharusnya digunakan. Membaca keduanya memberi Anda gambaran lengkap: titik akhir yang didokumentasikan oleh tim Anda, dan yang tidak didokumentasikan oleh siapa pun.
Inventaris tersebut adalah fondasi yang menjadi dasar dari segala hal lainnya:
- Jumlah total API yang ditemukan, dan aset yang berisiko diukur terhadap garis dasar.
- Endpoint yang diuraikan berdasarkan metode HTTP
- Masalah dikelompokkan berdasarkan layanan
- Setiap endpoint beserta metode, jalur, layanan, modul, status autentikasi, dan skor risikonya.
Para pemimpin tim teknik Anda dapat melihat bentuk antarmuka API Anda tanpa perlu membuka satu tiket pun.
Setiap endpoint yang ditemukan Xygeni, beserta metode, status autentikasi, dan skor risikonya, semuanya dibangun dari kode dan spesifikasi.
Production note Potong panel AI Triage dari tangkapan layar Keamanan API mana pun.
Sesuai dengan OWASP API Security Top 10.
Temuan ini sesuai dengan kerangka kerja yang sudah digunakan oleh tim keamanan dan auditor Anda. Xygeni mendeteksi risiko di seluruh OWASP API Security. 10 Teratas (2023):
| OWASP | Risiko | Apa artinya dalam praktiknya? |
|---|---|---|
API1 | Otorisasi Tingkat Objek Rusak | Suatu endpoint mengembalikan atau memodifikasi data milik pengguna atau penyewa lain. |
API2 | Titik akhir yang tidak terautentikasi | Suatu rute dapat dijangkau tanpa otentikasi sama sekali. |
API3 | Paparan data yang berlebihan | Respons yang dikembalikan mencakup lebih banyak kolom daripada yang dibutuhkan atau seharusnya dilihat oleh pemanggil. |
API3 | Penugasan massal | Suatu endpoint menerima dan menerapkan field yang sebenarnya tidak pernah dimaksudkan untuk diterima. |
API3 / API10 | Data sensitif dalam tanggapan | PII, PCI, atau PHI sampai ke klien dari titik akhir yang seharusnya tidak mengirimkannya. |
API4 | Batasan laju yang hilang | Endpoint tidak memiliki perlindungan terhadap penyalahgunaan atau serangan brute-force. |
API5 | Otorisasi Tingkat Fungsi yang Rusak | Suatu endpoint melakukan tindakan istimewa tanpa memeriksa apakah pemanggil diizinkan untuk melakukannya. |
API7 | SSRF | API tersebut dapat diperdaya untuk melakukan permintaan atas nama penyerang. |
API8 | Kesalahan konfigurasi JWT | Validasi, penandatanganan, atau masa berlaku token diatur dengan tidak benar. |
API8 | Kesalahan konfigurasi CORS | Aturan lintas asal (cross-origin) cukup longgar sehingga dapat dieksploitasi. |
API9 | Titik akhir zombie dan yatim piatu | Rute yang sudah usang atau terlupakan namun masih dapat diakses, dan rute yang tidak dimiliki siapa pun. |
Satu kategori sengaja dihilangkan. API6, Akses Tak Terbatas ke Alur Bisnis Sensitif, memerlukan pemahaman tentang apa yang seharusnya diizinkan oleh suatu proses bisnis, dan tidak ada penganalisis statis yang dapat mendeteksinya secara kredibel. Vendor mana pun yang mengklaim sebaliknya hanya menjual kotak centang kepada Anda. Hal itu tetap menjadi tanggung jawab pemodelan ancaman dan penguji penetrasi Anda.
Tidak Semua Temuan Sama Nilainya: Sensitivitas Data dan Kombinasi yang Berbahaya
Daftar temuan yang seragam memperlakukan titik akhir pemeriksaan kesehatan yang tidak terautentikasi sama dengan titik akhir yang tidak terautentikasi yang mengembalikan catatan pelanggan. Padahal, itu bukan masalah yang sama, dan model prioritas yang memberi skor identik pada keduanya akan melatih tim Anda untuk mengabaikan daftar tersebut.
Xygeni mengklasifikasikan data yang ditangani setiap endpoint, menandai PII, PCI, dan PHI dalam parameter permintaan dan dalam respons, serta memasangkannya dengan status autentikasi endpoint.
Sistem ini juga mengkorelasikan temuan yang terjadi pada titik akhir yang sama dan meningkatkan tingkat keparahan ketika temuan tersebut saling berkaitan. Kebocoran PII dalam respons merupakan temuan serius tersendiri. Kebocoran yang sama pada titik akhir yang tidak memerlukan otentikasi adalah kritis, dan platform menilainya demikian daripada membiarkan koneksi tersebut untuk diperhatikan secara manual oleh seseorang.
Endpoint Zombie dan Endpoint Yatim: Pergeseran Antara Kode dan Spesifikasi
Karena Xygeni membaca kode dan spesifikasi API Anda secara bersamaan, ia melihat di mana terdapat perbedaan. Perbedaan tersebut muncul dalam tiga pola yang mudah dikenali:
- Titik akhir yang tidak terdokumentasi. Mereka ada dalam kode dan tidak pernah ditambahkan ke spesifikasi.
- Titik akhir zombie. Fitur-fitur tersebut ditandai sebagai usang atau dihentikan, namun masih dapat diakses.
- Endpoint yatim piatu. Tidak seorang pun di tim saat ini yang memilikinya.
Tak satu pun dari item-item ini muncul dalam inventaris yang hanya berisi spesifikasi, karena spesifikasi itulah yang justru tidak memiliki item-item tersebut.
Bukti yang Dapat Anda Ambil Tindakan, Bukan Surat Panggilan untuk Investigasi
Setiap temuan menunjukkan penangan yang bertanggung jawab secara tepat: file, kelas, metode, dan baris spesifik yang menyebabkan kerentanan, dengan kode yang bermasalah ditampilkan di sampingnya. Masing-masing juga menyertakan tingkat keparahannya, kategori OWASP API Security Top 10, CWE-nya, status otentikasi endpoint, dan klasifikasi sensitivitas data yang terlibat.
Temuan yang hanya menyebutkan nama endpoint akan membuat pengembang harus mencari-cari di dalam kode program sebelum mereka dapat mulai memperbaiki apa pun. Temuan yang menyebutkan nama baris kode akan langsung mengarahkan mereka ke perbaikan tersebut.
Hasil temuan diekspor sebagai JSON, CSV, Markdown, dan SARIF 2.1.0, sehingga tersimpan di talat yang sudah digunakan tim Anda.
Handler, baris kode, dan kode yang menyebabkan kerentanan tersebut. Bukan tiket untuk diselidiki.
Mengapa Ini Hanya Ada di Satu Platform, Bukan di Konsol Lain?
Xygeni menjalankan Keamanan API bersamaan dengan... SAST, SCA, Rahasia Keamanan, IaC ke TERAKHIR di dalam satu platform tunggal, berkorelasi melalui ASPMalih-alih mengirimkannya sebagai alat terpisah dengan paketnya sendiri. login dan tumpukan pekerjaan yang belum terselesaikan.
Hal itu penting karena temuan statis dan temuan saat runtime menjawab pertanyaan berbeda tentang endpoint yang sama, dan keduanya lebih bermanfaat jika digunakan bersama daripada secara terpisah. Temuan statis memberi tahu Anda bahwa suatu endpoint berisiko sebelum dirilis. DAST mengkonfirmasi apa yang sebenarnya dapat dijangkau dan dieksploitasi setelah berjalan.
Jika hal itu dibagi ke dalam dua konsol, risiko yang berkorelasi akan menjadi dua backlog yang tidak terkait. Tidak ada yang menyelaraskannya, dan endpoint yang tidak terdokumentasi dan tidak terautentikasi tidak termasuk dalam antrean mana pun.
Lihat celah keamanan API Anda yang sebenarnya. Keamanan API tersedia sebagai Enterprise sebagai tambahan pada platform Xygeni, pemindaian akan dijalankan terhadap repositori Anda sendiri di dalam infrastruktur Anda sendiri.
FAQ (Pertanyaan Umum)
Bisakah sistem tersebut mengetahui endpoint mana yang menangani data sensitif?
Ya. Xygeni menandai PII, PCI, dan PHI dalam parameter dan respons titik akhir, dan menggunakan klasifikasi tersebut untuk memberi peringkat temuan berdasarkan paparan sebenarnya.
Bisakah itu berjalan di setiap pull request?
Ya. Pemindaian inkremental hanya menganalisis endpoint yang berubah, dan manifes yang dihasilkannya dapat memfokuskan pemindaian DAST berikutnya pada endpoint yang sama, sehingga pengujian statis dan runtime tetap selaras dengan apa yang sebenarnya berubah.
Apakah kode saya keluar dari lingkungan saya?
Tidak. Pemindaian dijalankan di infrastruktur Anda sendiri. Hanya hasilnya yang diunggah, dilindungi selama pengiriman dan saat disimpan.
Bagaimana cara mendapatkan Keamanan API?
Keamanan API tersedia sebagai Enterprise tambahan. Ajukan PoC dan akan dibahas bersama Anda.





