### **Lateral Movement in Microservices** --- #### **1. Tanım ve Kapsam** **Lateral Movement (Yanal Hareket)**, bir saldırganın başlangıçta ele geçirilen bir sistemden diğer sistemlere veya servislere sıçrayarak ağ içinde genişlemesidir. Mikroservis mimarisinde bu, bir mikroservisin güvenliğinin ihlal edilmesi sonucu diğer mikroservislere sızılması anlamına gelir. Mikroservislerin API'lar üzerinden sık iletişim kurması ve dinamik yapısı, saldırganlar için geniş bir hedef alanı oluşturur. --- #### **2. Lateral Movement Teknikleri ve Örnekler** Mikroservis ortamlarında yaygın saldırı vektörleri: ##### **a. API Zafiyetlerinin İstismarı** - **Açıklama**: Mikroservisler REST/gRPC API'ları kullanır. Zayıf kimlik doğrulama, aşırı veri sızıntısı veya güvensiz endpoint'ler saldırganlara açık kapı bırakır. - **Örnek**: `/user/details` endpoint'inde kimlik doğrulama eksikliği. Saldırgan, bu endpoint üzerinden diğer kullanıcıların verilerini çeker ve bağlantılı servislere (ödeme, loglama) sıçrar. - **Araç**: `curl` veya Postman ile API istekleri taklit edilir. ##### **b. Servis Keşfi (Service Discovery) İstismarı** - **Açıklama**: Kubernetes veya Consul gibi araçlar, mikroservislerin birbirini bulmasını sağlar. Saldırgan, bu sistemlerdeki zafiyetleri kullanarak tüm servisleri listeler. - **Örnek**: Kubernetes API'sine yetkisiz erişim. `kubectl get pods` komutuyla çalışan servisler keşfedilir. - **Çözüm**: RBAC (Rol Tabanlı Erişim Kontrolü) ve network politikaları. ##### **c. Token/Yetki Sızdırma** - **Açıklama**: Bir mikroservisten çalınan JWT (JSON Web Token) veya API anahtarı, diğer servislerde yetki artırımı için kullanılır. - **Örnek**: Auth servisindeki bir log dosyasından sızan token'lar, Inventory servisine erişimde kullanılır. - **Zorluk**: Token'ların şifrelenmemesi veya süresiz geçerliliği. ##### **d. Ağ İçi Trafik Dinleme (East-West Traffic)** - **Açıklama**: Mikroservisler arası trafik (east-west) genellikle daha az korunur. Saldırgan, ağ dinleme (sniffing) ile veri çalar. - **Örnek**: Bir container'dan sızan SSH anahtarları, veritabanı servisine erişim sağlar. - **Araç**: Wireshark veya `tcpdump`. --- #### **3. Adım Adım Saldırı Senaryosu** 1. **Başlangıç İhlali**: - Saldırgan, zafiyetli bir login mikroservisine [SQL](./2.md) enjeksiyonu yapar (`' OR 1=1 --`). - Servis veritabanına erişim sağlar ve kullanıcı kimlik bilgilerini çalar. 2. **Keşif (Reconnaissance)**: - Çalınan bilgilerle Kubernetes dashboard'una giriş yapar. - `kubectl get services` ile ödeme ve raporlama servislerini listeler. 3. **Lateral Movement**: - Auth servisinden sızan bir JWT token'ı kullanarak ödeme servisinin API'sine POST isteği gönderir: ```bash curl -X POST -H "Authorization: Bearer " https://payment-service/transfer --data '{"to":"attacker_account", "amount":1000}' ``` - Token'ın `payment:write` yetkisi varsa para transferi yapılır. 4. **Yetki Yükseltme**: - Ödeme servisindeki bir konfigürasyon dosyasından AWS anahtarları çalınır. - Saldırgan, bulut ortamındaki diğer kaynaklara erişir. --- #### **4. Tespit Zorlukları** - **Dağınık Loglama**: Her mikroservisin log'u farklı yerlerde olabilir. - **Şifreli Trafik**: mTLS kullanımı, trafiği dinlemeyi zorlaştırır. - **Dinamik IP'ler**: Konteynerlerin sürekli yeniden başlatılması, IP takibini engeller. --- #### **5. Çözümler ve En İyi Uygulamalar** ##### **a. Zero Trust Mimari** - **Açıklama**: "Asla güvenme, sürekle doğrula" prensibi. Tüm servisler kimlik doğrulaması yapar. - **Uygulama**: Her mikroservis iletişiminde mTLS (karşılıklı TLS) ve JWT validasyonu. ##### **b. Ağ Segmentasyonu** - **Açıklama**: Mikroservisleri VLAN'lar veya namespaceler ile izole etme. - **Örnek**: Kubernetes'te `NetworkPolicy` ile ödeme servisine yalnızca auth servisinden gelen trafiğe izin verilmesi. ##### **c. API Güvenliği** - **Adımlar**: 1. Tüm API'lar için OAuth2/OpenID Connect ile kimlik doğrulama. 2. Rate Limiting (DDoS koruması). 3. Input validation (giriş verisi filtrelenmesi). ##### **d. Merkezi Loglama ve İzleme** - **Araçlar**: ELK Stack (Elasticsearch, Logstash, Kibana) veya Prometheus/Grafana. - **Örnek Alarm**: Aynı IP'den 5 farklı servise 1 dakikada 100+ başarısız giriş. ##### **e. En Az Ayrıcalık (Least Privilege)** - **Açıklama**: Mikroservislerin RBAC ile yalnızca ihtiyaç duydukları yetkilere sahip olması. - **Örnek**: "Raporlama" servisinin veritabanında yalnızca `SELECT` yetkisi. --- #### **6. Sonuç** Mikroservis mimarilerinde lateral movement riski, merkezi sistemlere göre daha yüksektir. Güvenlik; API'ların korunması, ağ izolasyonu ve sürekli izleme ile sağlanır. Saldırı senaryolarını simüle etmek için düzenli penetrasyon testleri ve "kırmızı takım" egzersizleri önerilir.