Setiap pull request yang menambah atau mengubah titik akhir akan mengubah permukaan serangan API anda. Kebanyakan alat keselamatan API tidak menyedarinya sehingga titik akhir itu aktif dan sudah menerima trafik. Menjelang masa itu, pembetulannya bukan lagi perubahan satu baris dalam semakan kod, ia adalah perbualan tindak balas insiden.
Keselamatan API ialah amalan mencari dan menutup risiko dalam cara aplikasi mendedahkan titik akhir: siapa yang boleh memanggilnya, data apa yang dikembalikan dan sama ada ia melakukan apa yang dinyatakan dalam dokumentasi.
Kebanyakan perkakasan yang dibina untuk masalah ini menguji API semasa masa jalan, dari luar, sama seperti penyerang. Pendekatan itu berfungsi, tetapi ia hanya berfungsi selepas API digunakan. Xygeni mengambil laluan terdahulu: ia membaca kod sumber dan spesifikasi API anda sebelum satu permintaan pun sampai ke titik akhir.
Empat Cara untuk Menguji API, dan Jawapan Setiap Satu
Kebanyakan program matang menjalankan lebih daripada satu daripada ini:
- Ujian statik menganalisis kod sumber dan spesifikasi API sebelum penggunaan. Ia menjawab "apa yang baru kita dedahkan?" Inilah pendekatan yang difokuskan oleh artikel ini.
- Pengujian dinamik (DAST) menghantar trafik sebenar pada API yang sedang berjalan dan memerhatikan bagaimana ia bertindak balas. Ia menjawab "apa yang sebenarnya boleh dicapai dan dieksploitasi sekarang?"
- Kabur membuang input yang salah bentuk atau tidak dijangka pada titik akhir kepada ranap permukaan dan kegagalan kes tepi. Ia menjawab "apa yang rosak di bawah input yang tidak kita jangkakan?"
- Ujian penembusan manual menambah pertimbangan manusia untuk mencari kelemahan logik yang terlepas pandang oleh alat automatik. Ia menjawab "apa yang akan dirangkaikan oleh penyerang pintar?"
Tiada satu pun daripada ini yang menggantikan yang lain. Ia menjawab soalan yang berbeza pada titik yang berbeza dalam kitaran hayat, dan jurang yang ada pada kebanyakan program adalah yang pertama.
Mengapa Kebanyakan Alat Keselamatan API Melihat Risiko Terlalu Lewat
Pengujian keselamatan API Runtime menghantar trafik pada aplikasi langsung dan memerhatikan bagaimana ia bertindak balas. Ia merupakan lapisan yang sah dan perlu. Ia juga, secara binaannya, merupakan penunjuk ketinggalan: titik akhir mesti wujud, digunakan dan boleh dicapai sebelum pengimbas runtime boleh mengatakan apa-apa mengenainya. Apa sahaja yang ditemuinya telah pun terdedah walau berapa lama imbasan itu diambil untuk dijalankan.
Terdapat jurang kedua di sebalik masalah masa itu. Alat masa jalan hanya boleh menguji apa yang mereka tahu wujud. Jika titik akhir tidak pernah didokumenkan, atau spesifikasi OpenAPI ketinggalan zaman sebaik sahaja seseorang menghantar laluan baharu, pengimbas masa jalan tidak mempunyai cara untuk mengetahui ia berada di sana. Ia menguji peta, bukan wilayah.
Pengujian keselamatan API statik menutup kedua-dua jurang dengan mengalihkan semakan ke tempat titik akhir ditakrifkan: kod anda dan spesifikasi API anda, sebelum penggunaan. Perkara yang sama pull request yang memperkenalkan titik akhir ialah pull request yang mendedahkan risikonya.
Apa Sebenarnya Maksud Keselamatan API Statik
Xygeni membina inventori API anda daripada dua sumber: kod sumber aplikasi anda dan spesifikasi API anda, termasuk OpenAPI dan Swagger.
Inventori spesifikasi sahaja menunjukkan titik akhir yang diingati untuk didokumenkan oleh seseorang. Inventori kod sahaja menunjukkan apa yang wujud tetapi tidak semestinya bagaimana ia sepatutnya digunakan. Membaca kedua-duanya memberi anda gambaran lengkap: titik akhir yang didokumenkan oleh pasukan anda dan yang tidak didokumenkan oleh sesiapa pun.
Inventori itu adalah asas yang dibina oleh semua yang lain:
- Jumlah API yang ditemui dan aset berisiko diukur berdasarkan garis dasar
- Titik akhir dipecahkan mengikut kaedah HTTP
- Isu dikumpulkan mengikut perkhidmatan
- Setiap titik akhir dengan kaedah, laluan, perkhidmatan, modul, keadaan pengesahan dan skor risikonya
Ketua kejuruteraan anda melihat bentuk permukaan API anda tanpa membuka satu tiket pun.
Setiap titik akhir yang ditemui oleh Xygeni, dengan kaedah, keadaan pengesahan dan skor risikonya, dibina daripada kod dan spesifikasi bersama-sama.
Production note Pangkas panel Triage AI daripada sebarang tangkapan skrin Keselamatan API.
Dipetakan ke 10 Teratas Keselamatan API OWASP
Penemuan menunjukkan rangka kerja yang telah digunakan oleh pasukan keselamatan dan juruaudit anda. Xygeni mengesan risiko merentasi API OWASP Security 10 Teratas (2023):
| OWASP | Risiko | Apa maksudnya dalam praktiknya |
|---|---|---|
API1 | Keizinan Tahap Objek Patah | Titik akhir mengembalikan atau mengubah suai data milik pengguna atau penyewa lain |
API2 | Titik akhir yang tidak disahkan | Laluan boleh dicapai tanpa pengesahan langsung |
API3 | Pendedahan data yang berlebihan | Respons mengembalikan lebih banyak medan daripada yang diperlukan atau sepatutnya dilihat oleh pemanggil |
API3 | Tugasan beramai-ramai | Titik akhir menerima dan menggunakan medan yang tidak pernah dimaksudkan untuk diterima |
API3 / API10 | Data sensitif dalam respons | PII, PCI atau PHI sampai kepada klien dari titik akhir yang sepatutnya tidak menghantarnya |
API4 | Had kadar yang tiada | Titik akhir tidak mempunyai perlindungan daripada penyalahgunaan atau panggilan kekerasan |
API5 | Kebenaran Tahap Fungsi Rosak | Titik akhir melakukan tindakan istimewa tanpa memeriksa sama ada pemanggil dibenarkan untuk |
API7 | SSRF | API boleh ditipu untuk membuat permintaan bagi pihak penyerang |
API8 | Konfigurasi salah JWT | Pengesahan, penandatanganan atau tamat tempoh token disediakan dengan salah |
API8 | Konfigurasi salah CORS | Peraturan rentas asal cukup permisif untuk dieksploitasi |
API9 | Titik akhir zombi dan yatim piatu | Laluan yang sudah usang atau dilupakan yang masih boleh dicapai, dan laluan yang tiada siapa yang memilikinya |
Satu kategori sengaja tiada. API6, Akses Tanpa Sekatan kepada Aliran Perniagaan Sensitif, memerlukan pemahaman tentang apa yang sepatutnya dibenarkan oleh proses perniagaan, dan tiada penganalisis statik yang mengesannya dengan andal. Mana-mana vendor yang mendakwa sebaliknya akan menjual kotak semak kepada anda. Kotak semak itu kekal dengan pemodelan ancaman dan penguji penembusan anda.
Tidak Setiap Penemuan Sama: Kepekaan Data dan Kombinasi Toksik
Senarai penemuan yang rata melayan titik akhir semakan kesihatan yang tidak disahkan sama seperti titik akhir yang tidak disahkan yang mengembalikan rekod pelanggan. Masalah tersebut bukanlah masalah yang sama, dan model keutamaan yang memberi skor kepada mereka secara serupa melatih pasukan anda untuk mengabaikan senarai tersebut.
Xygeni mengklasifikasikan data yang dikendalikan oleh setiap titik akhir, menandakan PII, PCI dan PHI dalam parameter permintaan dan dalam respons, serta memasangkannya dengan keadaan pengesahan titik akhir.
Ia juga menghubungkan dapatan yang sampai pada titik akhir yang sama dan meningkatkan keterukan apabila ia bertambah. Kebocoran PII dalam respons merupakan penemuan yang serius. Kebocoran yang sama pada titik akhir yang tidak memerlukan pengesahan adalah kritikal dan platform akan memberi skor sedemikian dan bukannya membiarkan sambungan disedari secara manual oleh seseorang.
Titik Akhir Zombi dan Yatim Piatu: Pergeseran Antara Kod dan Spesifikasi
Oleh kerana Xygeni membaca kod dan spesifikasi API anda secara bersebelahan, ia dapat melihat di mana kedua-duanya tidak bersetuju. Perubahan itu muncul sebagai tiga corak yang boleh dikenali:
- Titik akhir yang tidak didokumenkan. Mereka hidup dalam kod dan tidak pernah ditambah pada spesifikasi.
- Titik akhir zombi. Ia ditanda sebagai tidak digunakan lagi atau telah bersara dan ia masih boleh dihubungi.
- Titik akhir yatim piatu. Tiada sesiapa dalam pasukan sekarang yang memilikinya.
Tiada satu pun daripada ini muncul dalam inventori spesifikasi sahaja, kerana spesifikasi itulah yang tiada padanya.
Bukti Yang Boleh Anda Ambil Tindakan, Bukan Tiket Untuk Menyiasat
Setiap penemuan menunjukkan pengendali yang bertanggungjawab: fail, kelas, kaedah dan baris khusus yang memperkenalkan kecacatan tersebut, dengan kod yang menyinggung yang dipaparkan di sisinya. Setiap satu juga mempunyai tahap keterukan, kategori 10 Teratas Keselamatan API OWASP, CWE, keadaan pengesahan titik akhir dan klasifikasi sensitiviti data yang terlibat.
Penemuan yang hanya menamakan titik akhir akan menyebabkan pembangun mencari pangkalan kod sebelum mereka boleh mula membaiki apa-apa. Penemuan yang menamakan baris tersebut akan segera menyelesaikan masalah tersebut.
Penemuan dieksport sebagai JSON, CSV, Markdown dan SARIF 2.1.0, supaya ia berada di tpasukan awak dah bekerjasama.
Pengendali, baris, dan kod yang memperkenalkan pendedahan itu. Bukan tiket untuk menyiasat.
Mengapa Ini Tinggal dalam Satu Platform, Bukan Konsol Lain
Xygeni menjalankan Keselamatan API bersama-sama SAST, SCA, Keselamatan Rahsia, IaC dan dast di dalam satu platform, berkorelasi melalui ASPM, bukannya menghantarnya sebagai alat berasingan dengan alatnya sendiri login dan tunggakan kerjanya sendiri.
Itu penting kerana penemuan statik dan penemuan masa jalan menjawab soalan yang berbeza tentang titik akhir yang sama, dan ia lebih berguna bersama daripada berasingan. Statik memberitahu anda bahawa titik akhir berisiko sebelum ia dihantar. DAST mengesahkan apa yang sebenarnya boleh dicapai dan dieksploitasi sebaik sahaja ia berjalan.
Bahagikan itu merentasi dua konsol dan risiko berkorelasi menjadi dua tunggakan yang tidak berkaitan. Tiada siapa yang menyelaraskannya, dan titik akhir yang tidak didokumenkan dan tidak disahkan berada dalam kedua-dua barisan.
Lihat permukaan serangan API sebenar anda. Keselamatan API tersedia sebagai Enterprise tambahan pada platform Xygeni, dan imbasan dijalankan terhadap repositori anda sendiri di dalam infrastruktur anda sendiri.
Soalan Lazim
Bolehkah ia memberitahu titik akhir mana yang mengendalikan data sensitif?
Ya. Xygeni menandakan PII, PCI dan PHI dalam parameter dan respons titik akhir dan menggunakan klasifikasi tersebut untuk menilai dapatan mengikut pendedahan sebenar.
Bolehkah ia berjalan pada setiap pull request?
Ya. Pengimbasan tambahan hanya menganalisis titik akhir yang berubah dan manifes yang dihasilkannya boleh memfokuskan imbasan DAST berikutnya pada titik akhir yang sama, jadi ujian statik dan masa jalan kekal sejajar dengan apa yang sebenarnya bergerak.
Adakah kod saya meninggalkan persekitaran saya?
Tidak. Imbasan dijalankan dalam infrastruktur anda sendiri. Hanya hasil yang dimuat naik, dilindungi semasa transit dan semasa disimpan.
Bagaimanakah saya boleh mendapatkan Keselamatan API?
Keselamatan API tersedia sebagai Enterprise tambahan. Minta PoC dan ia akan dipertimbangkan bersama anda.





