Python ile AI Mikroservis Mimarisini Kurmak ve Güvenliğini Sağlamak (FastAPI)
Python ile AI Mikroservis Mimarisini Kurmak ve Güvenliğini Sağlamak (FastAPI Modeli)
Şirketinizin bünyesinde veri bilimciler (Data Scientists) tarafından eğitilmiş harika bir tahmin (prediciton) modeline veya kurum içi kullanım için ayağa kaldırdığınız açık kaynak Büyük Dil Modeline (LLM) sahip olabilirsiniz. Ancak bu modeli dış dünyaya, özellikle de üretim (Production) altyapısında sunmaya karar verdiğinizde işin "Siber Güvenlik" ve "Yazılım Mimarisi (Architecture)" boyutu baş döndürücü bir hal alır.
Genelde veri ekipleri modeli devasa bir Flask veya Django çatısı altında app.py içine gömerek monolitik bir sistem kurar. Bu en büyük teknolojik tuzağınızdır! AI işlemleri (Inference) devasa CPU/GPU yükü (Compute Bound) çeker. Normal web istekleri (I/O Bound) ile AI yükü aynı tek parça uygulamadayken bir siber saldırgan veya sadece aşırı trafik anında bile tüm sisteminiz kağıt kule gibi çöker (DDoS).
Kısa Cevap: Çözüm, yapay zeka modelinizi geri kalan API yapınızdan izole ederek Mikroservis Mimarisinde konumlandırmak ve asenkron yetenekleriyle performans artışı sunan Python FastAPI kütüphanesi ile sarmalamaktır. Bir model bir konteynerda (Dockerized Microservice) çalışırken, kullanıcı yetkilendirme (Auth Gateway) başka bir servisten yönetildiğinde; siber korsanların modelinizi tüketmesi veya aşırı yük bindirerek kaynaklarınızı tüketmesi (Resource Exhaustion) donanımsal ve mantıksal duvarlara (Rate Limiting) çarpacaktır.
1. Monolitik Modelden Mikroservis Modelinize Geçiş Neden Zorunludur?
Geleneksel web saldırılarının hedefinde veritabanından SQL ile şifre çalmak vardır, ancak yapay zeka sektörüne yönelecek hacker'ların ilk motivasyonu sisteminizin faturasını kabartmak veya uygulamanızı servis dışı (Denial of Service - DoS) bırakmaktır. LLM sorguları aşırı pahalıdır.
Eğer monolitik bir yapıda modeli çalıştırırsanız:
- Tek bir hacker, sonsuz döngüde karmaşık tahminler (predictions) sorarak makine kartınızı %100 yükte tutabilir. Web sitemindeki diğer kullanıcılar anında zaman aşımı (Timeout Error) yaşar.
- Modelde kullanılan eski bir Python kütüphanesinin (örneğin Pickle deserialization) yarattığı zafiyette tüm yetkiler ele geçtiğinde sadece model okuyucusu değil, tüm müşteri veri tabanına paralel sızma gerçekleştirilir. İzolasyon sıfırdır.
Çözüm: Asenkron FastAPI ve gRPC Ayrışımı
Modelinizi FastAPI kullanarak ayrı bir mikroservise gömün. Geleneksel HTTP üzerinden uzun süren hesaplamalar yerine mikroservisleri Redis Celery veya gRPC yapısı ile "olay güdümlü (Event Driven)" şeklinde haberleştirin. Gateway isteği alır, "Sıraya ekledim (202 Accepted)" der ve işlemi yapay zeka konteynerine devrederek kapıyı kilitler.
2. API Gateway ve AI Mikroservis Güvenliği Kuralları
Mimarinizi mikroservislere böldükten sonra güvenlik bariyerlerini (Hardening) devreye alma zamanı gelmiştir:
- Katı Hız Sınırları (Throttling / Rate Limiting): FastAPI seviyesinde kullanıcıları saniyede değil "Sorguların CPU maliyetine" göre sınırlamanız gerekir (Token veya Timeout based Rate Limiting). Biri uzun ve anlamsız cümlelerle sunucuyu yormaya kilitlenirse Cloudflare (WAF) veya içerideki Nginx katmanından IP adresine gecikme (Tarpit) uygulanmalıdır.
- Konteyner Düzeyi İzolasyon (AppArmor / Seccomp): Modelinizin olduğu (Dockerfile) container'da asla işletim sistemi seviyesinde "Root" yetkileri bulundurmayın. AI modelinin sadece belleği okuma yetkisi olsun, sisteme yeni bir kütüphane yazma veya yükleme yetkisi asla olmasın. Eğer Prompt Injection tarzı bir hileyle Python sunucusundan Remote Code Execution edilmek istenirse, sömürü kabuğu (Exploit Shell) container dışına çıkamasın.
- Dahili İletişimi Maskelemek (mTLS): Mikroservisler arasındaki (Backend API -> AI Service) dikey iletişimi SSL şifrelemesi olmadan yürütmeyin. Kurum içi ağa (Internal Network) düşmüş bir korsan, LLM servisleri arasında giden gelen HTTP isteklerini dinleyerek anında kullanıcı verilerini çekebilir.
3. DevOps Sürecinde Test Edilebilir Mimari (Testable Architecture)
Eğer doğru Python mikroservis mimarisini kurarsanız, yapay zeka modelinin doğruluğunu (Quality) bozmadan güvenliğini (Security) otomatikleştirebilirsiniz. Pytest ile yazacağınız sınır testleri (Boundary Testing) devasa girdilerin (Large Inputs Payload) ve toksik promptların sisteme girip girmediğini daha CI/CD aşamasında ispatlayacaktır.
Modelinizin çalışması onun "GÜVENLİ" olduğu anlamına gelmez. Mimarideki çatlak sızıntıların, API zafiyetlerinin veya Bulut üzerindeki servis iletişimindeki eksiklerin analiz edilmesi, Sızma Testi uzmanları ve Cloud Security ekipleri tarafından incelenmelidir.
Eresus Security uzmanlarının Black Box ve White Box yaklaşımlarıyla donatılmış AppSec testlerinden destek almak için bize ulaşabilir, modellerinizin şirketinizin finansal veya veri bütünlüğünü tehdit etmesini önleyebilirsiniz.