İçeriğe atla
0 XP 0
← Blog
Güvenli Yazılım

OWASP API Top 10 Türkçe: API Güvenliği Riskleri (2023)

OWASP API Top 10 Türkçe anlatım: 2023 listesindeki on API güvenliği riski, gerçekçi örnekler ve her biri için geliştiricinin uygulayacağı savunma adımları.

Yazan: AltaySec AkademiSon güncelleme: 6 dk okuma

OWASP API Top 10, API'lerde en sık görülen ve en çok zarar veren on güvenlik riskini sıralayan OWASP listesidir. Güncel sürüm 2023'tür. Listenin ilk sırasında nesne düzeyinde yetkilendirme hatası (BOLA) var: kullanıcı bir kimliği değiştirerek başkasının kaydını görebiliyor. Bu yazıda on riskin hepsini Türkçe karşılıkları, örnekleri ve savunma adımlarıyla bulacaksın.

OWASP API Top 10 nedir, neden ayrı bir liste var?

Bir web sayfası kullanıcıya yalnız göstermek istediği alanları gösterir. API ise ham veriyi ve işlemleri doğrudan sunar. Mobil uygulama, web arayüzü ve iş ortakları aynı uç noktaları çağırır. Saldırgan ekrana bakmaz. İsteği yakalar, kimliği, alanı ya da sayfa boyutunu değiştirip yeniden gönderir.

Bu yüzden OWASP, genel web listesinden ayrı bir API listesi tutar. İlk sürüm 2019'da çıktı. 2023 sürümü bazı başlıkları birleştirdi ve iş akışı kötüye kullanımı, SSRF ve üçüncü taraf API'ler gibi yeni riskler ekledi. Genel web uygulaması riskleri için OWASP Top 10 yazısına bak. Bu sayfa yalnız API'lere odaklanır.

OWASP API Top 10 2023 listesi (Türkçe)

Aşağıdaki tabloda resmî adlar birebir, Türkçe karşılıkları ise anlamı koruyacak biçimde verildi:

KodResmî adTürkçe karşılığıKısaca
API1:2023Broken Object Level AuthorizationBozuk nesne düzeyi yetkilendirmeBaşkasının kaydına kimlik değiştirerek erişim
API2:2023Broken AuthenticationBozuk kimlik doğrulamaToken çalma, sınırsız parola denemesi
API3:2023Broken Object Property Level AuthorizationBozuk nesne özelliği düzeyi yetkilendirmeFazla alan döndürmek ya da izinsiz alanı değiştirmek
API4:2023Unrestricted Resource ConsumptionSınırsız kaynak tüketimiİstek, boyut, süre ve maliyet sınırı yok
API5:2023Broken Function Level AuthorizationBozuk fonksiyon düzeyi yetkilendirmeSıradan kullanıcının yönetici işlevini çağırması
API6:2023Unrestricted Access to Sensitive Business FlowsHassas iş akışlarına sınırsız erişimBilet, stok ya da kupon akışının botla sömürülmesi
API7:2023Server Side Request ForgerySunucu taraflı istek sahteciliği (SSRF)Sunucunun saldırganın verdiği adrese istek atması
API8:2023Security MisconfigurationGüvenlik yanlış yapılandırmasıGevşek CORS, ayrıntılı hata, gereksiz HTTP yöntemi
API9:2023Improper Inventory ManagementHatalı envanter yönetimiUnutulan eski sürüm ve belgesiz uç noktalar
API10:2023Unsafe Consumption of APIsAPI'lerin güvensiz tüketimiÜçüncü taraf API'den gelen veriye körü körüne güvenmek

Listedeki on başlığın üçü yetkilendirme hatasıdır. Bu, API güvenliğinin en zayıf halkasının "kim neye erişebilir" sorusu olduğunu gösterir.

Yetkilendirme hataları: API1, API3 ve API5

Kimlik doğrulama "sen kimsin" sorusunu yanıtlar. Yetkilendirme ise "bunu yapmaya hakkın var mı" sorusunu. Üç yetkilendirme riski bu ikinci sorunun farklı katmanlarında ortaya çıkar.

API1, nesne düzeyi: Ayşe kendi siparişini GET /api/siparisler/1042 ile görüyor. Numarayı 1043 yapınca başkasının siparişi açılıyorsa sunucu sahipliği kontrol etmiyordur. Çözüm, kaydı veritabanından çekerken kullanıcının kimliğini de koşula eklemektir. Ayrıntılı örnekler IDOR nedir yazısında.

API3, özellik düzeyi: 2023 listesi, 2019'daki "aşırı veri ifşası" ile "kütle atama" başlıklarını burada birleştirdi. İki yönü var:

  • Yanıt, arayüzün kullanmadığı alanları da taşır. Örneğin parola özeti ya da iç notlar.
  • Güncelleme isteğine "rol": "yonetici" gibi bir alan eklendiğinde sunucu bunu da kaydeder.

Çözüm, her uç nokta için hangi alanların okunabileceğini ve hangilerinin yazılabileceğini açıkça tanımlamaktır. Veritabanı nesnesini olduğu gibi döndürme.

API5, fonksiyon düzeyi: Sıradan bir kullanıcı DELETE /api/kullanicilar/77 isteğini gönderdiğinde işlem gerçekleşiyorsa, yönetici işlevi korunmuyordur. Varsayılan olarak her şeyi reddet, rolleri sunucu tarafında kontrol et.

Kimlik doğrulama hataları: API2

Bu başlık, saldırganın başka birinin kimliğine bürünmesini sağlayan hataları kapsar: giriş uç noktasında sınırsız deneme, imzası doğrulanmayan ya da süresi dolmayan token, adresi URL'de taşınan oturum anahtarı, tek kullanımlık kodun sayısız kez denenebilmesi.

Savunma adımları:

  1. Giriş, parola sıfırlama ve tek kullanımlık kod uç noktalarına sıkı oran sınırı koy. Nasıl yapılacağını rate limiting nedir yazısında anlattık.
  2. Token imzasını ve süresini her istekte sunucuda doğrula. Kısa ömürlü erişim token'ı kullan.
  3. Hassas işlemlerde, örneğin e-posta değişikliğinde, parolayı yeniden sor.
  4. Mümkünse çok faktörlü doğrulamayı aç.

Kaynak ve iş akışı kötüye kullanımı: API4 ve API6

API4, sınırsız kaynak tüketimi: OWASP, aşağıdaki sınırlardan biri eksik ya da yanlış ayarlıysa API'yi açık sayar: çalışma süresi, bellek, dosya yükleme boyutu, tek yanıttaki kayıt sayısı, tek istekteki işlem sayısı (GraphQL toplu sorguları gibi) ve üçüncü taraf hizmetlere harcama limiti. Son madde sık unutulur. SMS gönderen bir parola sıfırlama uç noktası sınırsızsa, saldırgan hizmeti çökertmeden faturanı şişirebilir.

API6, hassas iş akışlarına sınırsız erişim: Burada teknik bir hata yoktur. Akış doğru çalışır ama otomasyonla kötüye kullanılır. OWASP'ın örneklerinde bir saldırgan, sınırlı stoklu bir ürünü farklı IP adreslerinden çalışan betikle satın alıp başka yerde pahalıya satar. Bir başkası ücretsiz iptal hakkıyla bir uçuşun koltuklarının çoğunu ayırır. Uçuştan birkaç gün önce hepsini iptal eder, havayolu boş koltukları doldurmak için fiyatı düşürünce kendine ucuz bir bilet alır. Savunma, hangi akışın iş için hassas olduğunu belirleyip insan dışı kullanım kalıplarını tespit etmektir.

SSRF, yapılandırma, envanter ve üçüncü taraf API'ler: API7-API10

API7, SSRF: API, kullanıcının verdiği bir adresten resim ya da belge çekiyorsa saldırgan bu adresi iç ağa yöneltebilir. Gidilebilecek adresleri izin listesiyle sınırla, iç adres aralıklarını engelle. Mekanizmanın tamamı SSRF nedir yazısında.

API8, güvenlik yanlış yapılandırması: Her kökene açık CORS, yığın izi gösteren hata yanıtları, şifresiz HTTP, kullanılmayan HTTP yöntemleri ve eksik güvenlik başlıkları bu gruba girer.

API9, hatalı envanter yönetimi: Ekip v2 sürümünü korurken v1 hâlâ eski ve zayıf kontrollerle çalışıyor olabilir. Test ortamları, belgede yer almayan uçlar ve geçici hata ayıklama adresleri de unutulur. Her uç noktanın sahibini, sürümünü ve hangi veriyi döndürdüğünü gösteren bir envanter tut.

API10, API'lerin güvensiz tüketimi: Geliştiriciler kendi kullanıcılarından gelen veriye şüpheyle bakarken iş ortağı API'sinden gelen veriye güvenir. Üçüncü taraf yanıtını da doğrula, yönlendirmeleri körü körüne izleme, bu bağlantıları şifreli kanal üzerinden kur.

API güvenliği için yayın öncesi kontrol listesi nedir?

Her yeni uç noktayı yayına almadan önce şu sorulara yanıt ver:

Soruİlgili risk
Bu kayıt isteği yapan kullanıcıya mı ait?API1
Token sunucuda doğrulanıyor, giriş denemeleri sınırlı mı?API2
Yanıtta arayüzün kullanmadığı alan var mı, güncellemede yazılabilir alanlar sabit mi?API3
Sayfa boyutu, dosya boyutu ve süre sınırı tanımlı mı?API4
Bu işlev hangi rollere açık, sunucu bunu kontrol ediyor mu?API5
Bu akış botla kötüye kullanılırsa iş nasıl etkilenir?API6
Sunucu kullanıcının verdiği bir adrese istek atıyor mu?API7
Hata yanıtları iç ayrıntı sızdırıyor mu?API8
Uç nokta envantere eklendi, eski sürüm kapatıldı mı?API9
Üçüncü taraftan gelen veri doğrulanıyor mu?API10

Bir API'den kişisel veri sızarsa sorun teknik olmaktan çıkar ve hukuki bir yükümlülüğe dönüşür. Bildirim süreci için KVKK veri ihlali bildirimi yazısına bak.

API güvenliğini nasıl test edersin?

Yetkilendirme hatalarını otomatik tarayıcılar çoğu zaman bulamaz, çünkü istek biçim olarak sıradandır. En etkili yöntem basittir: kendi test ortamında iki farklı kullanıcı hesabı aç. Birinin oturumuyla aldığın her isteği diğerinin oturumuyla tekrarla ve sonuçları karşılaştır. Bunu her rol için yaptığında elinde bir yetki matrisi olur.

Test yalnız kendi sisteminde ya da yazılı izin aldığın kapsamda yapılır. Uygulamalı çalışmak için laboratuvardaki API senaryosunda belgelenmemiş bir uç noktayı, kütle atamaya açık bir alanı ve aşırı veri döndüren bir yanıtı trafik kayıtlarından bulursun. WAF gibi ek katmanların bu hataları neden tek başına durduramadığını WAF nedir yazısında anlattık.

Kaynaklar

Sık sorulan sorular

OWASP API Top 10'un en güncel sürümü hangisi?

İlk liste 2019'da, güncel liste 2023'te yayımlandı. OWASP API Security projesinin sitesi bugün de 2023 sürümünü en yeni sürüm olarak gösteriyor. 2023 listesi bazı başlıkları birleştirdi, iş akışı kötüye kullanımı, SSRF ve üçüncü taraf API'lere güvenme gibi yeni başlıklar ekledi. Yeni bir sürüm çıktığında sıra ve adlar değişebilir.

BOLA ile IDOR aynı şey mi?

Pratikte aynı hatayı anlatırlar. IDOR, kullanıcının bir kaydın kimliğini değiştirerek başkasının verisine ulaşmasıdır. OWASP API listesi bu hatayı API'ler için Broken Object Level Authorization (BOLA) adıyla birinci sıraya koyar. İkisinde de çözüm aynıdır: sunucu her istekte, istenen kaydın o kullanıcıya ait olup olmadığını kontrol eder.

OWASP Top 10 ile OWASP API Top 10 arasındaki fark nedir?

OWASP Top 10 genel web uygulaması risklerini sıralar, en son sürümü 2025'tir. OWASP API Top 10 ise yalnız API'lere odaklanır ve nesne, özellik, fonksiyon düzeyinde yetkilendirme ile kaynak tüketimi gibi API'ye özgü riskleri ayrı ayrı ele alır. Web arayüzü olan bir uygulama geliştiriyorsan iki listeye de bakman gerekir.

API anahtarını koda yazmak güvenli mi?

Güvenli değildir. Koda gömülen anahtar sürüm kontrolüne, istemci uygulamaya ve günlüklere sızabilir. Anahtarı ortam değişkeninde ya da bir sır yönetim hizmetinde tut, yalnız gereken yetkiyi ver ve sızıntıdan şüphelenirsen hemen yenile. Mobil uygulamaya gömülen her anahtarı herkese açık say, çünkü uygulama paketi açılıp okunabilir.

Küçük bir API projesinde nereden başlamalıyım?

Önce her uç noktaya sunucu tarafında sahiplik ve rol kontrolü ekle. Sonra yanıtlarda yalnız gereken alanları döndür, güncelleme isteklerinde izin verilen alanları sabitle. Giriş, parola sıfırlama ve SMS gönderen uçlara oran sınırı koy. Son olarak uç nokta envanteri çıkar ve kullanılmayan eski sürümleri kapat. Bu dört adım listenin büyük bölümünü karşılar.

  • API güvenliği
  • OWASP API Top 10
  • BOLA
  • yetkilendirme
  • REST API

İlgili yazılar

Okuduğunu uygula.
Yollarda ders ders ilerle, alıştırmalarla pekiştir.
Başla