Hızlı cevap: API sızma testi, bir kurumun web ve mobil uygulamalarının arkasındaki uygulama programlama arayüzlerinin (API) yetkilendirme, kimlik doğrulama ve iş mantığı açıklarını kontrollü saldırılarla ortaya çıkaran bir güvenlik hizmetidir. Modern uygulamalarda veri, çoğu zaman arayüzde değil API katmanında sızar; en sık görülen açıklar bozuk nesne düzeyi yetkilendirme (BOLA), bozuk kimlik doğrulama ve aşırı veri ifşasıdır. DSET bu testi, yerel yapay zekâ motoru KAOS ile yürütür; KAOS her uç noktayı tarar, bulduğu her açığı çalışan bir kanıtla doğrular ve yanlış pozitif gürültüsü olmadan raporlar.

Bir uygulamanın arayüzü ne kadar güvenli görünürse görünsün, asıl veri trafiği API katmanında akar. Saldırganlar da buraya bakar. API sızma testi, bu katmanı bir saldırgan gözüyle inceleyen, yetkilendirme ve iş mantığı açıklarını kanıtlayan bir hizmettir. Bu yazı, API sızma testinin ne olduğunu, hangi açıkları hedeflediğini ve DSET ile KAOS yaklaşımının farkını anlatır.

API sızma testi nedir

API sızma testi, bir uygulamanın REST, GraphQL veya SOAP arayüzlerini tanımlı bir kapsamda, kontrollü saldırılarla test eden bir çalışmadır. Amaç, bir uç noktanın başka bir kullanıcının verisine erişip erişemediğini, kimlik doğrulamanın atlatılıp atlatılamadığını ve iş mantığının kötüye kullanılıp kullanılamadığını kanıtlamaktır. Klasik web sızma testinden farkı, arayüze değil doğrudan servis katmanına bakmasıdır. Bu yüzden API testi, web uygulaması sızma testi metodolojisi ile birlikte en eksiksiz kapsamı verir.

Hangi açıkları hedefler

API testinin çerçevesi OWASP API Security Top 10 listesidir. Bu listenin başında, bir kullanıcının kimliğinin başka bir kullanıcının kaynağına erişmek için kullanılabildiği bozuk nesne düzeyi yetkilendirme açığı gelir.

Açık sınıfı Ne anlama gelir Tipik sonuç
Bozuk nesne yetkilendirmesi (BOLA) Kimlik kontrolü var ama kaynak sahipliği denetlenmiyor Başka kullanıcının verisine erişim
Bozuk kimlik doğrulama Token ve oturum yönetimi zayıf Hesap ele geçirme
Aşırı veri ifşası API gerekenden fazla alan döndürüyor Hassas veri sızıntısı
İş mantığı kötüye kullanımı Akış beklenen sırada zorlanmıyor Ücretsiz işlem, limit aşımı
Yetersiz oran sınırlama İstek sayısı sınırsız Kaba kuvvet ve servis dışı bırakma

Her açık sınıfının ayrıntılı çerçevesi için OWASP API Security Top 10 rehberi başvuru noktasıdır. Genel web açıkları için ise OWASP Top 10 web uygulama güvenliği rehberi tamamlayıcıdır.

API sızma testi ne zaman yapılır

Yeni bir API yayına alınmadan önce, büyük bir sürüm değişikliğinden sonra ve düzenli aralıklarla yapılması doğru olandır. Mobil uygulaması olan her kurum, uygulamanın konuştuğu API için ayrı bir test planlamalıdır; çünkü mobil istemci kontrol edilebilir, ama arkadaki yetkilendirme sunucu tarafında kanıtlanmalıdır. Testten önce kapsamın net çizilmesi gerekir, bunun için sızma testine hazırlık ve kapsam belirleme rehberi izlenmelidir.

KAOS ve DSET yaklaşımı

DSET, API sızma testini yerel yapay zekâ motoru KAOS ile yürütür. KAOS, API şemasını ve uç noktaları haritalar, yetkilendirme açıklarını iki farklı kullanıcı bağlamıyla sınar ve bulduğu her bulguyu çalışan bir kanıtla doğrular. Fark şudur: bir tarayıcının açık olabilir dediği her satır, uzman gözetiminde gerçek bir istismarla kanıtlanmadan rapora girmez. Bu yüzden DSET raporu, kanıt temelli doğrulama ilkesiyle, yanlış pozitif gürültüsünü ayıklar. Aynı yaklaşım bulut sızma testi hizmetimizde ve yapay zekâ uygulamaları için LLM uygulama sızma testi hizmetimizde de geçerlidir.

Sık sorulan sorular

API sızma testi ile web sızma testi aynı şey mi? Hayır, ikisi farklı katmanlara bakar ama birbirini tamamlar. Web sızma testi tarayıcı üzerinden görünen uygulamayı inceler, API sızma testi ise arayüzün arkasındaki servis katmanını doğrudan test eder. Mobil uygulaması olan bir kurumda asıl risk çoğu zaman API katmanındadır, çünkü istemci kontrol edilemez ama yetkilendirme sunucuda kanıtlanmalıdır.

GraphQL API için ayrı bir test gerekir mi? GraphQL, REST ile aynı açık sınıflarının birçoğunu taşır ama kendine özgü riskler de ekler, örneğin iç içe sorgularla aşırı veri çekme ve introspection ile şema ifşası. Bu yüzden GraphQL uç noktaları, sorgu derinliği ve alan düzeyi yetkilendirme açısından ayrıca sınanmalıdır. DSET testi, REST ve GraphQL arayüzlerini birlikte kapsar.

Test sırasında üretim verisi risk altında mı? Doğru planlanmış bir testte hayır. Testin kapsamı, hangi uç noktaların ve hangi veri setlerinin sınanacağı ve yıkıcı işlemlerin yapılıp yapılmayacağı önceden sözleşmeyle belirlenir. Veri değiştiren ve silen işlemler, ayrı ve açık bir onay olmadan çalıştırılmaz. Mümkün olduğunda test, üretim kopyası bir ortamda yürütülür.

Kaynaklar

API katmanınızın yetkilendirme ve iş mantığı açıklarını kanıt temelli bir testle ortaya çıkarmak için DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan API sızma testi ve danışmanlık sağlıyoruz.