Her pull request Bir uç noktayı eklemek veya değiştirmek, API saldırı yüzeyinizi değiştirir. Çoğu API güvenlik aracı, bu uç nokta aktif hale gelip trafik almaya başlayana kadar bunu fark etmez. O zamana kadar, düzeltme artık kod incelemesinde tek satırlık bir değişiklik olmaktan çıkar; bir olay müdahale görüşmesine dönüşür.
API güvenliği, bir uygulamanın uç noktalarını nasıl kullanıma sunduğuna ilişkin riskleri bulma ve ortadan kaldırma uygulamasıdır: kimlerin bu uç noktaları çağırabileceği, hangi verileri döndürdükleri ve dokümantasyonda belirtilen işlevleri yerine getirip getirmedikleri gibi konuları kapsar.
Bu soruna yönelik geliştirilen araçların çoğu, API'yi çalışma zamanında, dışarıdan, bir saldırganın yapacağı şekilde test eder. Bu yaklaşım işe yarar, ancak yalnızca API dağıtıldıktan sonra işe yarar. Xygeni Önceki yolu izler: uç noktaya tek bir istek bile ulaşmadan önce kaynak kodunuzu ve API spesifikasyonunuzu okur.
Bir API'yi Test Etmenin Dört Yolu ve Her Birinin Sağladığı Cevaplar
Olgunlaşmış programların çoğu bunlardan birden fazlasını kullanır:
- Statik test Dağıtımdan önce kaynak kodunu ve API özelliklerini analiz eder. "Az önce neyi kullanıma sunduk?" sorusuna cevap verir. Bu makale, bu yaklaşıma odaklanmaktadır.
- Dinamik test (DAST) Çalışmakta olan bir API'ye gerçek trafik gönderir ve API'nin nasıl yanıt verdiğini gözlemler. "Şu anda gerçekten erişilebilir ve istismar edilebilir olan nedir?" sorusuna cevap verir.
- fuzzing Hatalı veya beklenmedik girdileri uç noktalara göndererek çökmeleri ve uç durum hatalarını ortaya çıkarır. "Beklemediğimiz girdi altında ne bozulur?" sorusuna cevap verir.
- Manuel sızma testi Otomatik araçların gözden kaçırdığı mantık hatalarını bulmak için insan yargısını devreye sokar. "Akıllı bir saldırgan hangi yöntemleri bir araya getirir?" sorusuna cevap verir.
Bunların hiçbiri diğerlerinin yerini almaz. Yaşam döngüsünün farklı noktalarında farklı sorulara cevap verirler ve çoğu programın sahip olduğu eksiklik ilk sorudadır.
Çoğu API güvenlik aracının riski çok geç fark etmesinin nedenleri
Çalışma zamanı API güvenlik testi, canlı bir uygulamaya trafik gönderir ve uygulamanın nasıl yanıt verdiğini izler. Bu, meşru ve gerekli bir katmandır. Ancak yapısı gereği gecikmeli bir göstergedir: Bir uç noktanın var olması, dağıtılmış olması ve erişilebilir olması gerekir ki, çalışma zamanı tarayıcısı onun hakkında bir şey söyleyebilsin. Bulduğu her şey, taramanın çalışması için geçen süre boyunca zaten açıkta kalmıştır.
Zamanlama sorununun altında yatan ikinci bir açık daha var. Çalışma zamanı araçları yalnızca var olduğunu bildikleri şeyleri test edebilir. Eğer bir uç nokta hiç belgelenmemişse veya OpenAPI spesifikasyonu yeni bir rota yayınlandığı anda güncelliğini yitirmişse, çalışma zamanı tarayıcısının bunun orada olduğunu bilmesinin bir yolu yoktur. Haritayı test eder, bölgeyi değil.
Statik API güvenlik testleri, kontrolü uç noktanın tanımlandığı yere, yani dağıtımdan önce kodunuza ve API spesifikasyonunuza taşıyarak her iki açığı da kapatır. pull request Uç noktayı tanıtan şey şudur: pull request Bu da riskini ortaya çıkarıyor.
Statik API Güvenliği Gerçekte Ne Anlama Geliyor?
Xygeni, API envanterinizi iki kaynaktan oluşturur: uygulamanızın kaynak kodu ve OpenAPI ve Swagger dahil olmak üzere API spesifikasyonlarınız.
Sadece teknik özelliklere dayalı bir envanter, birilerinin belgelemeyi hatırladığı uç noktaları gösterir. Sadece kod içeren bir envanter ise mevcut olanı gösterir, ancak bunun nasıl kullanılması gerektiği konusunda kesin bir bilgi vermez. Her ikisini de okumak size eksiksiz bir tablo sunar: ekiplerinizin belgelediği uç noktalar ve kimsenin belgelemediği uç noktalar.
Bu envanter, diğer her şeyin üzerine inşa edildiği temeldir:
- Keşfedilen toplam API sayısı ve risk altındaki varlıklar, bir temel değere göre ölçülmüştür.
- HTTP yöntemine göre ayrılmış uç noktalar
- Sorunlar hizmete göre gruplandırılmıştır.
- Her bir uç nokta, yöntemi, yolu, servisi, modülü, kimlik doğrulama durumu ve risk puanıyla birlikte belirtilir.
Mühendislik liderleriniz, tek bir destek talebi açmadan API yapınızın şeklini görebiliyor.
Xygeni'nin bulduğu her uç nokta, yöntemi, kimlik doğrulama durumu ve risk puanıyla birlikte, kod ve spesifikasyondan yola çıkarak oluşturulmuştur.
Production note Herhangi bir API Güvenliği ekran görüntüsünden Yapay Zeka Önceliklendirme panelini kırpın.
OWASP API Güvenliği İlk 10 Sıralamasına göre eşleştirilmiştir.
Bulgular, güvenlik ekiplerinizin ve denetçilerinizin halihazırda kullandığı çerçeveyi yansıtıyor. Xygeni, OWASP API Güvenliği genelinde riskleri tespit ediyor. İlk 10 (2023):
| OWASP | Risk | Pratikte ne anlama geliyor |
|---|---|---|
API1 | Bozuk Nesne Düzeyinde Yetkilendirme | Bir uç nokta, başka bir kullanıcıya veya kiracıya ait verileri döndürür veya değiştirir. |
API2 | Kimlik doğrulaması yapılmamış uç noktalar | Bir rotaya hiçbir kimlik doğrulaması olmadan erişilebilir. |
API3 | Aşırı veri ifşası | Yanıt, arayanın ihtiyaç duyduğundan veya görmesi gerekenden daha fazla alan döndürüyor. |
API3 | Toplu atama | Bir uç nokta, kabul etmesi asla amaçlanmadığı alanları kabul ediyor ve uyguluyor. |
API3 / API10 | Yanıtlardaki hassas veriler | PII, PCI veya PHI, bu verileri göndermemesi gereken bir uç noktadan istemciye ulaşıyor. |
API4 | Eksik oran sınırları | Uç nokta, kötüye kullanıma veya kaba kuvvet saldırılarına karşı hiçbir korumaya sahip değildir. |
API5 | Bozuk Fonksiyon Düzeyi Yetkilendirmesi | Bir uç nokta, arayanın yetkilendirilip yetkilendirilmediğini kontrol etmeden ayrıcalıklı bir işlem gerçekleştiriyor. |
API7 | SSRF | API, saldırgan adına istek göndermesi için kandırılabilir. |
API8 | JWT yanlış yapılandırması | Token doğrulama, imzalama veya sona erme ayarları yanlış yapılmış. |
API8 | CORS yanlış yapılandırması | Kaynaklar arası kurallar, istismar edilebilecek kadar esnektir. |
API9 | Zombi ve yetim uç noktalar | Kullanımdan kaldırılmış veya unutulmuş ancak hala ulaşılabilir olan rotalar ve kimsenin sahibi olmadığı rotalar. |
Bir kategori kasıtlı olarak eksik bırakılmıştır. API6, Hassas İş Akışlarına Sınırsız Erişim, bir iş sürecinin neye izin vermesi gerektiğini anlamayı gerektirir ve hiçbir statik analiz aracı bunu güvenilir bir şekilde tespit edemez. Aksini iddia eden herhangi bir satıcı size sadece bir onay kutusu satıyordur. Bu, tehdit modellemenize ve sızma test uzmanlarınıza kalmış bir şeydir.
Her Bulgu Eşit Değildir: Veri Hassasiyeti ve Toksik Kombinasyonlar
Bulguların düz bir listesi, kimlik doğrulaması yapılmamış bir sağlık kontrolü uç noktasını, müşteri kayıtlarını döndüren kimlik doğrulaması yapılmamış bir uç noktayla aynı şekilde ele alır. Bunlar aynı sorun değildir ve bunları aynı şekilde puanlayan bir önceliklendirme modeli, ekiplerinizi listeyi görmezden gelmeye alıştırır.
Xygeni, her uç noktanın işlediği verileri sınıflandırır, istek parametrelerinde ve yanıtlarda PII, PCI ve PHI olarak işaretler ve bunu uç noktanın kimlik doğrulama durumuyla eşleştirir.
Aynı uç noktada meydana gelen bulguları da ilişkilendirir ve bunların bir araya gelmesi durumunda ciddiyetini artırır. Bir yanıtta kişisel verilerin sızması tek başına ciddi bir bulgudur. Kimlik doğrulaması gerektirmeyen bir uç noktada aynı sızıntı kritik öneme sahiptir ve platform, bağlantıyı birinin manuel olarak fark etmesine bırakmak yerine bu şekilde puanlandırır.
Zombi ve Yetim Uç Noktalar: Kod ve Spesifikasyon Arasındaki Sürüklenme
Xygeni, kodunuzu ve API spesifikasyonunuzu yan yana okuduğu için, aralarındaki uyuşmazlıkları görür. Bu uyuşmazlık, üç belirgin kalıp olarak ortaya çıkar:
- Belgelenmemiş uç noktalar. Bunlar kod içinde yer alıyor ve hiçbir zaman teknik özelliklere eklenmediler.
- Zombi uç noktaları. Bunlar kullanımdan kaldırılmış veya emekli olarak işaretlenmiştir ve hala erişilebilir durumdadırlar.
- Yetim uç noktalar. Mevcut takımda hiç kimse bunların sahibi değil.
Bunların hiçbiri yalnızca teknik özelliklere dayalı bir envanterde görünmez, çünkü teknik özellikler tam olarak bunların eksik olan yönünü oluşturur.
Üzerinde işlem yapabileceğiniz kanıtlar, soruşturma başlatma emri değil.
Her bulgu, hataya neden olan dosyayı, sınıfı, metodu ve hatayı oluşturan belirli satırı, yanında gösterilen kodla birlikte, tam olarak sorumlu olan işleyiciye işaret eder. Her birinin ayrıca ciddiyet derecesi, OWASP API Güvenlik İlk 10 kategorisi, CWE'si, uç noktanın kimlik doğrulama durumu ve ilgili verilerin hassasiyet sınıflandırması da bulunur.
Sadece bir uç noktayı belirten bir bulgu, geliştiricinin herhangi bir şeyi düzeltmeye başlamadan önce kod tabanında arama yapmasına neden olur. Satırı belirten bir bulgu ise onları doğrudan düzeltmeye yönlendirir.
Bulgular JSON, CSV, Markdown ve SARIF 2.1.0 formatlarında dışa aktarılır, böylece t klasörüne ulaşırlar.Takımlarınızın halihazırda kullandığı araçlar.
Hatayı ortaya çıkaran olay işleyici, satır ve kod. Araştırılacak bir bilet değil.
Bu oyunun neden başka bir konsolda değil de tek bir platformda yer aldığı
Xygeni, API Güvenliğini birlikte yürütür. SAST, SCA, Sırların Güvenliği, IaC hem de TARİH tek bir platform içinde, aracılığıyla ilişkilendirilmiş ASPMonu ayrı bir araç olarak kendi özellikleriyle göndermek yerine login ve kendi birikmiş işleri.
Bu önemlidir çünkü statik bulgular ve çalışma zamanı bulguları aynı uç nokta hakkında farklı soruları yanıtlar ve ayrı ayrı olduklarından daha çok birlikte kullanışlıdırlar. Statik bulgular, bir uç noktanın piyasaya sürülmeden önce riskli olduğunu gösterir. DAST ise çalışmaya başladıktan sonra nelerin gerçekten erişilebilir ve istismar edilebilir olduğunu doğrular.
Bu durum iki konsola bölündüğünde, ilişkili risk iki ayrı birikmiş iş listesine dönüşür. Kimse bunları uzlaştırmaz ve hem belgelenmemiş hem de kimlik doğrulaması yapılmamış olan uç nokta bu iki kuyruğun hiçbirinde yer almaz.
API saldırılarınızın gerçek yüzeyini görün. API Güvenliği şu şekilde mevcuttur: Enterprise Xygeni platformuna bir eklenti olarak, kendi altyapınız içindeki kendi depolarınıza karşı bir tarama çalıştırılır.
SSS
Hassas verileri hangi uç noktaların işlediğini tespit edebilir mi?
Evet. Xygeni, uç nokta parametrelerinde ve yanıtlarında PII, PCI ve PHI'yi işaretler ve bu sınıflandırmayı gerçek maruz kalma düzeyine göre bulguları sıralamak için kullanır.
Her cihazda çalışabilir mi? pull request?
Evet. Artımlı tarama yalnızca değişen uç noktaları analiz eder ve ürettiği bildirim dosyası, sonraki bir DAST taramasını aynı uç noktalara odaklayabilir; böylece statik ve çalışma zamanı testleri, gerçekten değişenlerle uyumlu kalır.
Kodum ortamımdan dışarı çıkıyor mu?
Hayır. Tarama işlemleri kendi altyapınızda gerçekleştirilir. Yalnızca sonuçlar yüklenir, aktarım sırasında ve depolama esnasında korunur.
API güvenliğini nasıl sağlayabilirim?
API Güvenliği şu şekilde mevcuttur: Enterprise Eklenti. Bir PoC (Kavram Kanıtı) talep edin ve kapsamı sizinle birlikte belirlenecektir.





