Detectify’da geçirdiğim iki ayda bir şeyin farkına vardım: API güvenliği, web uygulaması güvenliğinden tamamen farklı bir oyundur. Ve dürüst olmak gerekirse? Pek çok takımın bunu henüz göremediğini düşünüyorum.
API’ler Her Yerde (Ama Nerede Olduğunu Bilmiyor olabilirsiniz)
Şimdi modern uygulamaya bakalım. Mobil uygulamanız mı? API’ler. Önemli SaaS entegrasyonlarınız? API’ler. Bu karmaşık ödeme akışı mı? Muhtemelen beş veya daha fazla API çağrısı birbiriyle konuşuyor. Modern uygulamalar, temelde, üstte katmanlı şık bir kullanıcı arayüzü bulunan diğer API’lerle konuşan API’lerden ibarettir.
Ancak beni hazırlıksız yakalayan şey şu: Pek çok şirketin API’lerinin tam bir envanteri bile yok. Kenarlarını bile göremediğiniz bir çevreyi korumaya çalışıyorsunuz. Ben gördüm:
- Gölge API’leri: Hiç kimsenin konuşlandırmayı hatırlamadığı eski uç noktalar.
- Zombi API’leri: Hiçbir zaman kapatılmayan test/hazırlama uç noktaları.
- İş ortağı API’leri: Saldırı yüzeyinizi genişleten üçüncü taraf entegrasyonları.
Göremediğiniz şeyi nasıl güvence altına alabilirsiniz?
Saldırı Vektörleri Farklı
Web güvenlik açıklarından bahsettiğimizde, genellikle XSS, CSRF, tıklama hırsızlığı gibi, kullanıcıların gördüklerini bozan veya onları yapmamaları gereken bir şeye tıklamaları için kandıran şeylerle uğraşıyoruz. API güvenlik açıkları farklı bir canavardır. Bozuk kimlik doğrulamadan, çok fazla veriyi açığa çıkaran API’lerden, zayıf hız sınırlamasından, enjeksiyon saldırılarından bahsediyoruz.
Bu saldırılar kullanıcı arayüzünü tamamen atlıyor. Saldırganın kullanıcıyı kötü amaçlı bir şeye tıklaması için kandırmasına gerek yoktur. Sadece API sözleşmenizi anlamaları ve zayıf noktaları bulmaları gerekiyor. İşte bu. Korkunç kısım mı? Bütün bunları otomatikleştirebiliyorlar.
Kimlik doğrulama… Peki… Karmaşık
Web uygulamaları genellikle çerezlerle oturum tabanlı kimlik doğrulamayı kullanır. Oldukça standarttır, çoğu çerçeve bunu iyi bir şekilde ele alır ve takip edilmesi gereken iyi bilinen modeller vardır. API’ler? İşlerin karıştığı yer burası. OAuth, JWT, API anahtarları, karşılıklı TLS, özel taşıyıcı tokenler… Pek çok farklı yaklaşım var ve her birinin kendine özgü güvenlik açığı modelleri var. OWASP API Güvenliği İlk 10’un derinliklerine iniyorum ve dürüst olmak gerekirse, kimlik doğrulama sorunları çok ciddi. Kırık Nesne Düzeyinde Yetkilendirme, Bozuk İşlev Düzeyinde Yetkilendirme… bu şeylerin korkutucu derecede uzun isimleri var, ama her yerdeler. Herkes onları bilse de, yine de sürekli üretimde karşımıza çıkıyorlar.
Neden Önemlidir?
API saldırıları çeşitli nedenlerden dolayı endişe verici bir oranda artıyor:
- Otomasyon Kolaydır: API’ler, ayrıştırılması HTML’den daha kolay olan yapılandırılmış verileri döndürür ve bu da onu otomasyona uygun hale getirir. Bu, geliştiriciler için harikadır ancak saldırganlar için daha da mükemmeldir.
- Zayıf Hız Sınırlaması: API’lerin yüksek hacimli trafiği işlemesi gerektiğinden hız sınırlaması genellikle daha zayıftır.
- Taslak Olarak Dokümantasyon: API belgeleri, geliştiriciler için harika olsa da, aynı zamanda rakiplere tam olarak nereye saldıracaklarını gösteren mükemmel bir saldırı planı görevi de görüyor.
İşte tam da bu yüzden sürekli olarak geliştiriyoruz. API Tarama yetenekleri Detectify’da çünkü bu kör noktaları anlamak, onları düzeltmenin ilk adımıdır.
Ekibiniz Bu Durumu Nasıl Karşılıyor?
Detectify’da diğer ekiplerin bu karmaşık sorunla nasıl başa çıktıklarını duymak isteriz:
- “Zombi” olanlar da dahil olmak üzere TÜM uç noktalarınızın eksiksiz ve güncel bir envanterini nasıl korursunuz?
- Yüzlerce farklı uç noktanız ve kimlik doğrulama yönteminiz varken yetkilendirmeyi geniş ölçekte test etme stratejiniz nedir?
- Eski sürümlerde yanlışlıkla kritik güvenlik açıkları bırakmadan API sürümünün oluşturulmasına ve kullanımdan kaldırılmasına nasıl yaklaşabilirsiniz?
- Hangi API güvenlik sorunları sizi geceleri ayakta tutuyor?
SSS
S: Web uygulaması güvenliği ile API güvenliği arasındaki temel fark nedir?
A: Web uygulaması güvenliği genellikle XSS gibi kullanıcının karşılaştığı güvenlik açıklarına odaklanırken API güvenliği, saldırganların kullanıcı arayüzünü atlayarak API uç noktalarıyla doğrudan etkileşime girerek yararlanabileceği bozuk kimlik doğrulama ve zayıf erişim kontrolü gibi kusurlarla ilgilenir.
S: Shadow ve Zombie API’leri nedir?
A: Gölge API’leri unutulan ancak hâlâ kullanılan eski uç noktalardır. Zombi API’leri hiçbir zaman kapatılmayan test veya hazırlık uç noktalarıdır ve her ikisi de kuruluşun bilgisi olmadan saldırı yüzeyini genişletir.
S: API saldırıları neden kolaylıkla otomatikleştiriliyor?
A: API’ler geri döndüğü için API saldırıları kolayca otomatikleştirilir yapılandırılmış veri (JSON veya XML gibi) bir komut dosyası veya botun ayrıştırması ve işlemesi, HTML sayfalarının daha karmaşık ve çeşitli yapısına göre çok daha kolaydır.