Güvenli Yapay Zeka Geliştirme
Complete developer guide to building secure AI applications - from input validation to deployment
Updated: August 2026
Güvenlik İlkeleri
1. Derinlemesine Savunma
Implement multiple layers of security controls. No single control should be relied upon exclusively.
2. En Az Ayrıcalık
Kullanıcılara, API'lere ve AI bileşenlerine gerekli minimum izinleri verin.
3. Başarısız Güvenli
Hatalar oluştuğunda varsayılan olarak izin verilen durumlar yerine güvenli durumları kullanın.
4. Sıfır Güven
Never trust, always verify. Validate at every boundary, including internal systems.
Giriş Doğrulama
All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.
Giriş Doğrulama Sınıfı
```python
import re
from typing import Optional, List
class InputValidator:
# Known injection patterns
INJECTION_PATTERNS = [
r"ignore\s+(previous|prior|all)\s+(instructions|rules)",
r"(forget|disregard)\s+(your|all)\s+(instructions|rules)",
r"you\s+are\s+(now|still)\s+(dan|do\s+anything)",
r"system\s+prompt:",
r"{{.*}}",
r"\[INST\]|\[/INST\]|<\|end\|>",
]
# Encoding patterns
ENCODING_PATTERNS = [
r"base64:", # Base64 prefix
r"\\x[0-9a-fA-F]{2}", # Hex encoding
r"%[0-9a-fA-F]{2}", # URL encoding
]
def validate(self, user_input: str) -> dict:
"""Validate user input for potential attacks."""
issues = []
# Length check
if len(user_input) > 10000:
issues.append("Input exceeds maximum length")
# Check for injection patterns
for pattern in self.INJECTION_PATTERNS:
if re.search(pattern, user_input, re.IGNORECASE):
issues.append(f"Suspicious pattern detected: {pattern}")
# Check for encoding attempts
for pattern in self.ENCODED_PATTERNS:
if re.search(pattern, user_input):
issues.append(f"Encoded content detected")
# Check for high entropy (possible encoding)
unique_chars = len(set(user_input))
if len(user_input) > 50 and unique_chars / len(user_input) < 0.3:
issues.append("High entropy detected - possible encoding")
return {
"valid": len(issues) == 0,
"issues": issues,
"sanitized": self._sanitize(user_input)
}
def _sanitize(self, user_input: str) -> str:
"""Basic sanitization."""
# Remove control characters
sanitized = re.sub(r'[\x00-\x1F\x7F]', '', user_input)
return sanitized.strip()
```
Doğrulama Kontrol Listesi
- Uygulama sınırında doğrulama
- Giriş uzunluğunu kontrol edin
- Enjeksiyon için kalıp eşleşmesi
- Kodlama girişimlerini tespit edin
- Tür doğrulama
- İşlemeden önce sterilize etme
- Doğrulama hatalarını günlüğe kaydedin
- Hız sınırlama
Çıktı İşleme
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
İçerik Filtreleme
- Hassas verilerin açığa çıkıp çıkmadığını kontrol edin
- Hiçbir sistem isteminin sızdırılmadığını doğrulayın
- Çıktı formatını doğrula
- Enjekte edilen içeriği kontrol edin
PII Tespiti
- Kişisel bilgileri tarayın
- Hassas verileri maskeleyin veya düzeltin
- PII ifşa girişimlerini günlüğe kaydet
- Algılandığında kullanıcı bildirimi
Biçim Doğrulaması
- JSON çıktılarını doğrulama
- Beklenen yapıyı kontrol edin
- İzin verilen değerleri doğrulama
- Geçerliyse HTML'yi sterilize edin
Çıktı İşleyici Örneği
```python
import re
import json
class OutputHandler:
PII_PATTERNS = {
"ssn": r"\b\d{3}-\d{2}-\d{4}\b",
"email": r"\b[\w.-]+@[\w.-]+\.\w+\b",
"phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b",
}
def process_output(self, raw_output: str) -> dict:
"""Process and validate LLM output."""
result = {
"original": raw_output,
"cleaned": raw_output,
"warnings": [],
"blocked": False
}
# Check for system prompt leakage
if "system prompt" in raw_output.lower():
result["warnings"].append("System prompt reference detected")
# Scan for PII
for pii_type, pattern in self.PII_PATTERNS.items():
matches = re.findall(pattern, raw_output)
if matches:
result["warnings"].append(f"{pii_type} detected in output")
# Optionally mask
result["cleaned"] = re.sub(pattern, "[REDACTED]", result["cleaned"])
return result
```
API Güvenliği
Kimlik Doğrulama
- Güçlü API anahtar yönetimi kullanın
- Mümkün olduğunda OAuth 2.0'ı uygulayın
- JWT token doğrulama
- API anahtar rotasyonu
Yetkilendirme
- Rol tabanlı erişim kontrolü (RBAC)
- API anahtar kapsamı
- Kullanıcı başına oran sınırları
- Kiracı izolasyonu
Hız Sınırlama
- Token tabanlı sınırlar
- İsteğe dayalı sınırlar
- Maliyet kontrolleri
- Kademeli azaltma
API Güvenlik Kontrol Listesi
- Yalnızca HTTPS kullanın
- Hız sınırlamayı uygulama
- Tüm girdileri doğrulayın
- Tüm çıktıları temizleyin
- Yerleşik olmayan API anahtarlarını kullanın
- İstek imzalamayı uygulayın
- Günlük API erişimi
- CORS'u düzgün bir şekilde uygulayın
Kimlik Doğrulama ve Yetkilendirme
Kullanıcı Kimlik Doğrulaması
- Güçlü parola politikaları
- MFA desteği
- Oturum yönetimi
- Belirteç son kullanma tarihi
API Kimlik Doğrulaması
- API anahtar yönetimi
- OAuth kapsamları
- JWT doğrulama
- Anahtar rotasyonu
Yetkilendirme
- RBAC uygulaması
- İzin kontrolleri
- Kaynak düzeyinde erişim
- Denetim günlüğü
Veri Güvenliği
Veri Sınıflandırma
- Hassas verileri tanımlama
- Hassasiyete göre sınıflandırma
- Kontrolleri kategoriye göre uygulayın
- Düzenli denetimler
Şifreleme
- Transit halinde TLS
- AES atıl durumda
- Anahtar yönetimi
- Anahtar rotasyonu
PII İşleme
- Algılama
- Küçültme
- İzin yönetimi
- Silme hakkı
Günlüğe Kaydetme ve İzleme
Neler Günlüğe Kaydedilmeli
Güvenlik Olayları
- Kimlik doğrulama girişimleri
- Yetkilendirme hataları
- Oran sınırı aşıldı
- Şüpheli modeller
AI'ya Özel Etkinlikler
- Anında enjeksiyon girişimleri
- Sistem istemi erişimi
- Araç başlatmaları
- Yapay zeka aracılığıyla veri erişimi
Operasyonel Olaylar
- API çağrıları
- Hatalar ve istisnalar
- Performans ölçümleri
- Maliyet takibi
En İyi Uygulamaları İzleme
- Güvenlik olayları için gerçek zamanlı uyarı
- Güvenlik ölçümleri için kontrol paneli
- Otomatik anormallik tespiti
- SIEM ile entegrasyon
- Düzenli günlük incelemesi
- Saklama politikaları
Genel Güvenlik Açıkları
1. Yapay Zeka Özelliklerinde IDOR
Yapay zeka kaynaklara eriştiğinde Güvenli Olmayan Doğrudan Nesne Referansı
Örnek
User asks AI to "read file X" and AI has access without proper authorization checks.
2. LLM aracılığıyla SSRF
Sunucu Tarafı İstek Sahteciliği Yapay zeka aracı çağrıları
Örnek
İstem yapay zekayı dahili hizmetlere istekte bulunurken kandırıyor.
3. Kimlik Doğrulama Atlaması
Yapay zeka uç noktaları için zayıf veya eksik kimlik doğrulaması
Örnek
Uygun kimlik doğrulama kontrolleri olmadan AI API uç noktaları.
4. Vector DB Exposure
Hassas yerleştirmelere sahip korumasız vektör veritabanı
Örnek
Gömülü duyarlılığa sahip, halka açık vektör veritabanı veriler.
Uyumluluk
GDPR (EU)
- İşleme için yasal temel
- Veri minimizasyonu
- Erişim/silme hakkı
- Veri taşınabilirliği
CCPA (California)
- Bilme hakkı
- Silme hakkı
- Devre dışı bırakma hakkı
- Ayrımcılık yapmama
Yapay Zekaya Özel
- AB Yapay Zeka Yasası gereklilikleri
- Yapay zeka risk değerlendirmeleri
- Şeffaflık yükümlülükleri
- İnsan gözetimi