Uygulama programlama arayüzleri veya API’ler, ayrı programların birbirleriyle etkili bir şekilde etkileşime girmesini, birbirleriyle veri alışverişi yapmasını ve önceden tanımlanmış talimatlara yanıt vermesini sağlayan yazılım ara ürünleridir. Uygulamaları harici üçüncü taraf geliştiricilerin kullanımına sunarlar, bu da onların entegrasyonunu kolaylaştırır, otomasyon için mükemmeldir ve uygulamaya diğer uygulamaların verilerini ve işlevlerini kullanma yeteneği verir.
API güvenliğinin birincil vurgusu, API’lerin sağlayabileceği belirli güvenlik açıklarını ve güvenlik risklerini daha iyi anlamak ve mümkün olduğunda bu riskleri azaltmak amacıyla stratejiler ve çözümler geliştirmektir. Bir API’nin temel işlevi aşağıdaki adımlara ayrılabilir:
- Bilgi almak için, bir istemci uygulaması, bir uygulama programlama arabirimine (API) istekte bulunur.
- İstemci uygulamasından yasal bir istek aldıktan sonra, uygulama programlama arabirimi (API), bir web sunucusuna veya harici bir yazılıma çağrı yapar.
- İstenen bilgiler, sunucunun API’ye sağladığı yanıtta yer alır.
- Veriler, API aracılığıyla onları isteyen uygulamaya gönderilir.
Uygulama programlama arabirimleri (API’ler) tersine mühendislikten etkilenebilir olduğundan ve genellikle İnternet üzerinden erişilebilir olduğundan, bunların güvenli olduğundan emin olunması son derece önemlidir. Uygulamalar ve diğer dahili ağ trafiği türleri için geçerli olan temel ağ ve uygulama güvenliği hususları API’ler için de geçerlidir. Bu temel güvenlik özelliklerinden birkaçı, güçlü erişim sınırları, veri yönetişimi, hız sınırlamaları, girdi doğrulama ve tehdit algılamadır.
Bir API’nin güvenliğindeki herhangi bir güvenlik açığı, tespit edilir edilmez düşman aktörler tarafından belirlenecek ve istismar edilecektir. Son zamanlardaki yüksek profilli ihlaller, bilgisayar korsanlarının agresif bir şekilde uygulama programlama arayüzlerini (API’ler) hedef aldığını göstermiştir. Web uygulamalarının ve web sunucularının güvenliğini artırmak için çalışan, kâr amacı gütmeyen bir kuruluş olan Açık Çevrimiçi Uygulama Güvenliği Projesi (OWASP), uygulama programlama arayüzlerini (API’ler) etkileyen en yaygın güvenlik açıkları olarak aşağıdaki güvenlik açıklarını tanımlar.
Kullanıcıların veya cihazların orijinalliği, kimlik doğrulama ile belirlenir. Kimlik doğrulama yöntemi tarafından sağlanan yalnızca minimum düzeyde bir güvenlik olduğunda, yerinde bir tane bile olamaz. Çoğu zaman, bu güvenlik kusurları, kimlik doğrulamanın gücünü azaltan hatalı kurulum veya ayarlar şeklinde kendini gösterir.
Bunun birkaç örneği, tek kimlik doğrulama yöntemi olarak yalnızca API anahtarlarına bağlı olmayı, çok düşük bir parola karmaşıklığına veya çok yüksek hesap kilitleme eşiklerine sahip olmayı içerir. Tehdit aktörleri, zayıf kimlik doğrulamasından yararlanarak kullanıcının hesaplarını veya oturumlarını manipüle edebilir, verilerini çalabilir ve hatta diğer hileli işlemlere katılabilir.
BOLA API’sinde bir güvenlik açığı, bir nesnenin içindeki hassas alanların uygunsuz bir şekilde açığa çıkması durumunda ortaya çıkar. Bunun nedeni, sunucu bileşeninin istemci durumunun tam kaydını tutmaması ve bunun yerine hangi nesneye erişileceğine karar vermek için istemciden gönderilen nesne kimliklerine büyük ölçüde bağlı olmasıdır.
Örneğin, saldırganlar, kullanıcının tarayıcısına veya mobil cihazına geri gönderilen bir API yanıtında güvenli bir şekilde korunmadığı takdirde kullanıcının kişisel bilgilerini kullanabilir. Daha sonra bu bilgileri kullanıcının kimliğine bürünmek ve hesaba erişim elde etmek için kullanabilirler. Sonuç olarak, tehdit aktörleri kişisel olarak tanımlanabilir bilgileri açığa çıkarabilir, düzenleyebilir ve hatta silebilir. Bu sorun genellikle API’lerden yararlanan uygulamalarda oluşur. BOLA hakkında daha fazla bilgi edinmek istiyorsanız, iş arkadaşlarımdan birinin yazdığı bu makaleyi okuyabilirsiniz.
Bir sistemin yanlış yapılandırılması birçok düzeyde gerçekleşebilir ve bunun bazı örnekleri arasında güvenlik güncellemelerinin ihmal edilmesi, aşırı açıklayıcı hata mesajları, verilerin şifrelenmemesi ve bulut depolama gruplarının açıkta ve saldırılara karşı savunmasız bırakılması yer alır. Güvenlik ayarlarının yanlış yapılandırılması, hassas verilerin veya dahili sistemlerin tehlikeye girme potansiyeli dahil olmak üzere bir dizi risk sağlayabilir.
Enjeksiyon güvenlik açıkları, tehdit aktörlerinin talimatları veya kötü amaçlı verileri kullanıcı giriş alanları aracılığıyla parametre olarak göndererek veya dosya olarak yükleyerek bir API’ye iletmesine olanak tanır.
Javascript, SQL, NoSQL ve işletim sistemi komut satırlarının tümü, saldırganların kullandığı enjeksiyon yöntemlerine örnektir. İstemci tarafından sağlanan verilerin doğrudan SQL/NoSQL’e, Javascript sorgularına veya işletim sistemi yönergelerine bağlanması gibi kodda enjeksiyon hataları olduğunda, API’nin yorumlayıcısı her türlü güvenliği aşacak ve kötü amaçlı komutları yürütecektir. Bu, kodda enjeksiyon sorunları olduğunda meydana gelebilir.
Uygulama programlama arayüzleri (API’ler) genellikle geleneksel web uygulamalarından daha fazla uç nokta ortaya çıkardığından, uygun belgelere sahip olmak çok önemlidir. Dağıtılan API sürümlerinin ve ana bilgisayarların doğru şekilde envanterinin çıkarılması, kullanımdan kaldırılan API sürümü teşhiri ve açıkta hata ayıklama uç noktaları dahil olmak üzere bir dizi sorunu en aza indirmeye yardımcı olabilir.
API güvenlik açıkları, müşteriler ve iş ortaklarıyla ilişki kurma aracı olarak API’lere bağımlı olan işletmelerin sayısı arttıkça, genellikle daha fazla sorun haline geliyor. Gördüğümüz gibi, bu uygulama programlama arabirimlerinden (API’ler) yararlanmanın birkaç farklı yolu vardır. Bununla birlikte, aşağıdakiler gibi birkaç basit eylemde bulunarak onlara karşı savunmaya yardımcı olabilirsiniz:
- Uygulama programlama arayüzlerinizin (API) yeterli güvenliğe sahip olduğundan emin olun.
Sağlam parolalar ve diğer birkaç güvenlik önlemi kullanarak, sistemin yalnızca onu kullanma izni verilen kişiler tarafından erişilebilir olmasını sağlayabilirsiniz. Çok faktörlü kimlik doğrulama yöntemleri gibi sıkı kimlik doğrulama stratejilerinden yararlanın ve her kullanıcının kendi parolasına sahip olup olmadığını kontrol edin. Bu nedenle, saldırganların API’nize erişmesi çok daha zor olacaktır; bu nedenle, en son gelişmelerden haberdar olmak için güvenlik önlemlerinizi düzenli olarak gözden geçirdiğinizden emin olmalısınız.
- Uygulama programlama arabirimlerinizde (API’ler) rutin güvenlik kontrolleri gerçekleştirin.
Bir uygulamanın mantığı, herhangi bir kullanıcı girişi dahil edilmeden önce dikkatlice test edilmeli ve doğrulanmalıdır. Geliştiricilerin bunu sağlama sorumluluğu vardır. Hizmete erişiminizi engelleyen saldırıları önleyebilmek için gelen isteklerin miktarını da dikkatli bir şekilde düzenlemelisiniz. API’leri geliştirirken, kritik kurumsal bilgilerin kamuya açık hale gelmesini önlemek için de dikkatli olmalısınız. Sistemdeki tüm açıkları tespit etmek ve mümkün olan en kısa sürede düzeltmek için çeşitli penetrasyon testi yöntemlerinden yararlanın.
- Tüm sistemlerinizin her zaman güncel olduğundan emin olun.
En etkili eylem yolu her zaman önlemedir. Sistemlerinizin güvenliğini potansiyel olarak tehlikeye atabilecek tüm yeni güvenlik açıkları veya açıklardan haberdar olduğunuzdan emin olun.
Risk ve kontrol süreci, güvenlik denetimi desteği, iş sürekliliği tasarımı ve desteği, çalışma grubu yönetimi ve bilgi güvenliği standartları konularında 15 yıllık deneyim.