Modern uygulama mimarilerinde API’ler vazgeçilmez hale geldi. Ancak API’lerin yaygınlaşmasıyla birlikte güvenlik riskleri de katlanarak artıyor. Akamai’nin verilerine göre, API saldırılarında yıldan yıla %109 oranında bir artış yaşanıyor. İşte bu noktada Akamai API Security (eski adıyla Noname Security) ve Kong API Gateway entegrasyonu devreye giriyor.
Entegrasyon Neden Önemli?
Akamai API Securtiy’nin Kong ile entegrasyonu, API güvenliği ve trafik yönetiminin mükemmel bir birleşimini sunuyor. Kong, dağıtık ortamlarda API trafiğini yönetme, yönlendirme ve izleme konusunda uzmanlaşmışken, Akamai gerçek zamanlı tehdit tespiti, güvenlik açığı taraması ve derinlemesine trafik analizi sağlıyor.
Temel Yetenekler
Gerçek Zamanlı İzleme ve Engelleme: Akamai, API trafiğini gerçek zamanlı olarak analiz ederek bot saldırıları veya yetkisiz erişim gibi anormallikleri tespit ediyor. Kong ise zararlı istekleri backend servislerine ulaşmadan önce engelliyor.
Otomatik Güvenlik Önlemleri: Akamai’nin tespit ettiği tehditler, Kong üzerinden otomatik olarak hız sınırlama veya şüpheli IP adreslerinin engellenmesi gibi güvenlik önlemlerini tetikliyor. Manuel müdahale gerektirmeyen bu yaklaşım, veri ihlali riskini azaltıyor.
Ölçeklenebilirlik: Kong’un hafif mimarisi, API’lerin mikroservisler ve bulut ortamlarında verimli şekilde yönetilmesini sağlıyor. Akamai ise API trafiğiyle birlikte ölçeklenen güvenlik zekası sunarak her endpoint’in güvende kalmasını garanti ediyor.

Demo
Demo kapsamında, bilinçli olarak güvenlik zafiyetleri içeren crAPI uygulamasını backend olarak kullanacağız. crAPI, Kong Gateway arkasında konumlandırılacak ve tüm API trafiği Kong üzerinden geçecek şekilde yapılandırılacak.
Kong Gateway üzerinde ise Akamai API Security entegrasyonu aktif edilecek. Bu sayede:
- API trafiği gateway seviyesinde izlenecek
- crAPI üzerinde gerçekleşen anormal ve yetkisiz istekler tespit edilecek
- Akamai API Security tarafından üretilen güvenlik içgörüleri ve politikalar Kong üzerinden uygulanabilecek
Bu lab ortamı sayesinde, OWASP API Top 10 kapsamında sıkça karşılaşılan zafiyetlerin, Kong + Akamai API Security entegrasyonu ile uygulama koduna dokunmadan nasıl görünür ve kontrol edilebilir hale geldiğini pratik olarak inceleyeceğiz.
1 Adım crAPI Kurulumu
crAPI Nedir?
crAPI (Completely Ridiculous API), özellikle API güvenliği alanında eğitim, test ve demo amaçlı tasarlanmış, kasıtlı olarak zafiyetler içeren bir örnek uygulamadır. Gerçek hayatta sıkça karşılaşılan hatalı API tasarımlarını ve güvenlik açıklarını birebir yansıtarak, hem güvenlik ekipleri hem de geliştiriciler için pratik bir öğrenme ortamı sunar.
crAPI;
- Kimlik doğrulama ve yetkilendirme hataları
- Broken Object Level Authorization (BOLA)
- Mass Assignment
- Rate Limiting eksiklikleri
- Hassas veri sızıntıları
gibi OWASP API Top 10 kapsamındaki birçok riski barındırır. Bu sayede statik teorik anlatımlar yerine, canlı ve elle tutulur senaryolar üzerinden API güvenliği testleri yapılmasına olanak tanır.
Genellikle Docker / Docker Compose üzerinde kolayca ayağa kaldırılabilen crAPI, hem lokal test ortamlarında hem de güvenlik ürünlerinin (API Security, WAF, Gateway, vb.) entegrasyon ve doğrulama çalışmalarında sıkça tercih edilir.
1- Öncelikle crAPI dizinini oluşturuyoruz.
mkdir crAPI && cd crAPI
2- crAPI nin docker-compose dosyasını indirelim.
curl -o docker-compose.yml https://raw.githubusercontent.com/OWASP/crAPI/main/deploy/docker/docker-compose.yml
3- Aşağıdaki komut ile gerekli imajları indirelim.
sudo docker compose pull

4- Aşağıdaki komut ile ayağa kaldırıyoruz.
docker compose -f docker-compose.yml --compatibility up -d
5- Ayağa kalktığından emin olmak için browser üzerinden aşağıdaki url’e gidelim.
http://<ip-address>:8888

2.Adım Kong’un Kurulumu ve Entegrasyonun Yapılması
Akamai API Security Kong entegrasyonu için öncelikle arayüz üzerinden entegrasyon için gerekli olan zip dosyasını indirmemiz gerekmektedir.
Ayarlar > Intregrations menüsüne geldikten sonra Traffic Sources & Prevention sekmesi altında Add Integration butonuna tıklamamız gerekmektedir.

Gerekli boşlukları doldurduktan sonra Create butonu ile devam ediyoruz.

Oluşturduktan sonra plugini indirmemiz gerekmektedir. Dosyayı indirdikten sonra kong’u kuracağımız sunucuya atmamız gerekiyor.
Kong kurulumunu da docker üzerinden gerçekleştireceğiz. Kurulum için aşağıdaki 4 dosyaya ihtiyacımız bulunmaktadır.
.
├── docker-compose.yml
├── Dockerfile
├── kong.yml
└── noname-security-kong-policy.zip
kong.yml dosyasında, crAPI servisinin Kong API Gateway arkasına alınabilmesi için gerekli servis ve yönlendirme konfigürasyonları yer almakta olup, buna ek olarak Noname Security Kong eklentisi de aktif edilmektedir.
_format_version: "3.0"
services:
- name: crapi-svc
url: http://192.168.13.132:8888
routes:
- name: crapi-route
paths:
- /crapi
plugins:
- name: nonamesecurity
enabled: true
Bu Dockerfile, Kong Gateway imajı üzerine Noname Security plugin’inin kurulmasını sağlayarak, Kong’un crAPI trafiğini güvenlik politikalarıyla birlikte yönetmesine olanak tanır.
#
FROM kong/kong-gateway:3.4
USER root
RUN apt-get update && apt-get install -y build-essential git curl unzip \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/kong/noname
RUN mkdir -p nonamesecurity
COPY ./noname-security-kong-policy.zip nonamesecurity/noname-security-kong-policy.zip
RUN unzip nonamesecurity/noname-security-kong-policy.zip -d nonamesecurity \
&& rm nonamesecurity/noname-security-kong-policy.zip \
&& cd nonamesecurity \
&& luarocks make
RUN mkdir -p /kong/declarative && chown -R kong:kong /kong
USER kong
Bu docker-compose konfigürasyonu ile Kong API Gateway tüm yapılandırma kong.yml dosyası üzerinden declarative olarak yüklenmektedir. Kong üzerinde hem varsayılan eklentiler hem de Noname Security plugin aktif edilerek, crAPI trafiğinin gateway üzerinden güvenli şekilde yönetilmesi sağlanmaktadır.
version: "3.9"
networks:
apinet:
services:
kong:
build: .
container_name: kong
environment:
KONG_DATABASE: "off"
KONG_DECLARATIVE_CONFIG: /kong/declarative/kong.yml
KONG_PLUGINS: "bundled,nonamesecurity"
KONG_ADMIN_LISTEN: "0.0.0.0:8001"
KONG_PROXY_LISTEN: "0.0.0.0:8000"
volumes:
- ./kong.yml:/kong/declarative/kong.yml:ro
ports:
- "8000:8000"
- "8001:8001"
restart: unless-stopped
Aşağıdaki komut ile Kong Gateway’i başlatabilirsiniz.
docker compose -f docker-compose.yml --compatibility up -d
Başlattıktan sonra Postman’e crAPI collection’ını ekleyip test başlatıp gelen trafiği ve API endpointleri Akamai üzerinden görebilirsiniz.


Tespit edilen API’ler
