LLM Pentesting & DevSecOps Otomasyon Platformu
LOP Platform, LLM tabanlı sistemleri prompt güvenliği açısından test etmek için geliştirilmiş FastAPI tabanlı bir dashboard ve otomasyon aracıdır. Platform, hedef modele saldırı payload'ları gönderir, model yanıtlarını analiz eder, bulguları risk seviyelerine ayırır ve PDF/JSON raporlar üretir.
Uygulama adı kod içinde LLM-Guard Automator olarak geçer. Paket metadata'sı
lop-platform adıyla tanımlanmıştır.
| Alan | Açıklama |
|---|---|
| LLM güvenlik taraması | Hedef modele kontrollü prompt güvenlik payload'ları gönderir. |
| Payload kategorileri | Prompt Injection, Jailbreak, Data Leakage, Hallucination, Role Confusion. |
| Provider desteği | Lokal geliştirme için mock, gerçek endpoint'ler için OpenAI Chat Completions uyumlu gemini. |
| Analiz motoru | Judge AI yapılandırılmışsa LLM tabanlı analiz, aksi durumda lokal kural tabanlı analiz. |
| Dashboard | Tarama başlatma, durdurma, ilerleme izleme, sonuç filtreleme ve geçmiş görüntüleme. |
| Raporlama | Analiz tamamlandıktan sonra PDF ve JSON rapor üretimi. |
| Güvenlik kontrolleri | Auth, CSRF, session, egress allowlist, SSRF koruması ve log redaction. |
Etkileşimli geliştirme menüsünü açmak için:
./scripts/dev.shBu menüden kurulum, .env yapılandırması, test profilleri, kalite kontrolleri,
uygulama başlatma, sağlık kontrolü ve temizlik/sıfırlama işlemleri yönetilebilir.
Komut tabanlı kullanım tercih ediyorsanız projeyi ilk kez hazırlamak için:
./scripts/dev.sh kurulumBu komut .venv oluşturur, bağımlılıkları kurar, .env dosyası yoksa güvenli
şekilde hazırlar ve gerekli çalışma zamanı dizinlerini oluşturur.
Uygulamayı başlatmak için:
./scripts/dev.sh calistirVarsayılan adres:
http://127.0.0.1:8000
Çalışan uygulamayı kontrol etmek için:
./scripts/dev.sh saglikFarklı portta çalıştırmak için:
PORT=8765 ./scripts/dev.sh calistirGeliştirme akışındaki temel işlemler scripts/dev.sh altında toplanmıştır.
Betik argümansız çalıştırıldığında etkileşimli menüyü açar. CI, shell betiği veya
etkileşimsiz kullanım için mevcut İngilizce komutlar da geriye uyumlu şekilde korunur.
| Komut | Görev |
|---|---|
./scripts/dev.sh |
Etkileşimli ana menüyü açar. |
./scripts/dev.sh menu |
Etkileşimli ana menüyü açıkça başlatır. |
./scripts/dev.sh yardim |
Kullanılabilir komutları gösterir. |
./scripts/dev.sh kurulum |
Sanal ortam, bağımlılıklar, .env ve çalışma zamanı dizinlerini hazırlar. |
./scripts/dev.sh yukle |
Çalışma zamanı ve geliştirme bağımlılıklarını .venv içine kurar. |
./scripts/dev.sh env-hazirla |
.env yoksa .env.example üzerinden güvenli şekilde oluşturur. |
./scripts/dev.sh env-sihirbazi |
.env dosyasını yedek alarak etkileşimli şekilde oluşturur veya günceller. |
./scripts/dev.sh ortam-kontrol |
Temel ortam yapılandırmasını doğrular. |
./scripts/dev.sh test |
Tüm pytest test takımını çalıştırır. |
./scripts/dev.sh test-menusu |
Birim, entegrasyon, sistem, arayüz, yük veya tek dosya test profili seçtirir. |
./scripts/dev.sh kalite |
ruff format --check, ruff check ve mypy çalıştırır. |
./scripts/dev.sh ci |
Kalite kontrolleri ve test takımını birlikte çalıştırır. |
./scripts/dev.sh calistir |
FastAPI uygulamasını uvicorn ile başlatır. |
./scripts/dev.sh saglik |
/api/health sağlık uç noktasını kontrol eder. |
./scripts/dev.sh temizle |
Python ve araç önbellek dosyalarını temizler. |
./scripts/dev.sh uretilenleri-temizle |
Kapsam çıktılarını temizler. |
./scripts/dev.sh sifirla |
Önbellek, kapsam çıktıları, reports/ ve data/ için onaylı temizlik menüsünü açar. |
Etkileşimli menüler TTY gerektirir. Komut tabanlı akışlar CI ve otomasyonlarda kullanılabilir.
Desteklenen ortam değişkeni geçersiz kılmaları:
PYTHON=/usr/bin/python3.12 ./scripts/dev.sh kurulum
VENV_DIR=.venv ./scripts/dev.sh yukle
HOST=0.0.0.0 PORT=8000 ./scripts/dev.sh calistir
BASE_URL=http://127.0.0.1:8000 ./scripts/dev.sh saglik
ADMIN_PASSWORD='guclu-parola' ./scripts/dev.sh env-hazirla.env.example dosyasını temel alarak .env hazırlanır. kurulum veya env-hazirla
komutu .env dosyası yoksa bu işlemi güvenli şekilde yapar. Var olan .env
dosyasının üzerine yazılmaz.
Temel değişkenler:
| Değişken | Açıklama |
|---|---|
TARGET_GEMINI_API_KEY |
Hedef LLM endpoint'i için API anahtarı. |
TARGET_GEMINI_BASE_URL |
OpenAI Chat Completions uyumlu hedef endpoint base URL'i. |
TARGET_GEMINI_MODEL |
Taranacak hedef model adı. |
JUDGE_GEMINI_API_KEY |
Judge AI için API anahtarı. Boşsa target key kullanılabilir. |
JUDGE_GEMINI_BASE_URL |
Judge AI endpoint base URL'i. |
JUDGE_GEMINI_MODEL |
Judge AI model adı. |
LOP_DISABLE_JUDGE_AI |
true yapılırsa Judge AI devre dışı bırakılır. |
LOP_ALLOWED_TARGET_HOSTS |
Gerçek taramalar için ekstra izinli host listesi. |
ADMIN_USERNAME |
Dashboard admin kullanıcı adı. |
ADMIN_PASSWORD_HASH |
Bcrypt ile hash'lenmiş admin parolası. |
SECRET_KEY |
Session ve token imzalama için gizli anahtar. |
Lokal geliştirme ve test için mock provider kullanılabilir. Gerçek model
taraması için TARGET_GEMINI_* değerlerinin gerçek, yetkili ve erişilebilir bir
endpoint'i göstermesi gerekir.
flowchart LR
U[Dashboard Kullanıcısı] --> D[FastAPI Dashboard]
D --> A[API Katmanı]
A --> S[Scanner Engine]
S --> P{Provider}
P --> M[Mock LLM]
P --> G[OpenAI-Compatible Gemini Endpoint]
S --> R[(Raw Results)]
R --> N[Analyzer Engine]
N --> J[Judge AI]
N --> L[Lokal Kurallar]
N --> O[(Analyzed Results)]
O --> Q[PDF / JSON Rapor]
A --> H[(Session History)]
Ana bileşenler:
- Kullanıcı dashboard'a giriş yapar.
- Backend oturumu doğrular ve CSRF token üretir.
- Kullanıcı provider, model, timeout ve payload limitiyle tarama başlatır.
- Scanner payload'ları sırayla hedef provider'a gönderir.
- İlerleme SSE üzerinden, gerekirse polling fallback ile izlenir.
- Raw yanıtlar kaydedilir.
- Analyzer yanıtları Judge AI veya lokal kurallarla değerlendirir.
- Sonuçlar dashboard'da görüntülenir.
- Analiz tamamlanınca PDF veya JSON rapor alınır.
Tam test suite:
./scripts/dev.sh testKalite kontrolleri:
./scripts/dev.sh qualityCI benzeri lokal kontrol:
./scripts/dev.sh ciPytest yapılandırması coverage çıktısını şu konumlara üretir:
reports/coverage
reports/coverage.xml
Doğrudan sanal ortam kullanmak isterseniz:
source .venv/bin/activate
pytest
ruff format --check .
ruff check .
mypy .Paket metadata'sı pyproject.toml içinde tanımlıdır ve build backend olarak
Hatchling kullanılır. Proje Python >=3.10 gerektirir.
Bu proje yalnızca test etmeye yetkili olduğunuz sistemlerde ve model endpoint'lerinde kullanılmalıdır. LLM güvenlik taramaları hedef sistemin davranışını, maliyetini veya rate limit durumunu etkileyebilir.
Uygulamada güvenlik için şu kontroller bulunur:
- Bcrypt tabanlı admin parola doğrulaması
- Server-side session yönetimi
- CSRF token doğrulaması
- Egress allowlist ve SSRF koruması
- Private IP ve loopback hedeflere karşı koruma
- Hassas verileri loglardan temizleyen redaction katmanı
.env dosyasını ve gerçek API anahtarlarını commit etmeyin. .gitignore
zaten .env, runtime data ve generated report dizinlerini dışarıda tutar.
LOP Platform, hedef LLM modeline güvenlik odaklı prompt payload'ları gönderir, model yanıtlarını toplar, bu yanıtları analiz eder ve bulguları raporlar.
Payload veri seti beş ana kategoriye ayrılmıştır: Prompt Injection, Jailbreak, Data Leakage, Hallucination ve Role Confusion.
İki provider vardır: mock ve gemini. mock lokal geliştirme ve test için
kullanılır. gemini adı korunmuştur, ancak endpoint tarafında OpenAI Chat
Completions uyumlu API yüzeyi beklenir.
Provider adı geriye uyumluluk için gemini olarak kalmıştır. Uygulama,
TARGET_GEMINI_BASE_URL üzerinden OpenAI Chat Completions uyumlu endpoint'lere
bağlanacak şekilde tasarlanmıştır.
Gerçek API anahtarı veya dış endpoint gerektirmeden dashboard, scan lifecycle, raporlama ve test akışlarını denemeyi sağlar.
Judge AI, hedef modelden gelen yanıtı ayrı bir LLM ile değerlendirerek zafiyet kararı üretir. Yapılandırılmamışsa analiz lokal kurallarla sürdürülebilir.
Evet. LOP_DISABLE_JUDGE_AI=true yapılabilir veya Judge yapılandırması boş
bırakılabilir. Bu durumda lokal kural tabanlı analiz kullanılır.
En azından TARGET_GEMINI_API_KEY, TARGET_GEMINI_BASE_URL ve
TARGET_GEMINI_MODEL gerçek değerlerle doldurulmalıdır. Taranacak hedefin
yetkili ve izinli olduğundan emin olunmalıdır.
Tarama çıktıları ve üretilen raporlar reports/ altında tutulur. Session ve
runtime verileri data/ altında saklanır.
Önerilen yol:
./scripts/dev.sh testKalite kontrolleriyle birlikte çalıştırmak için:
./scripts/dev.sh ciLLM güvenlik payload'ları hedef sistemde beklenmeyen yanıtlar, maliyet artışı, rate limit tüketimi veya politika ihlali üretebilir. Bu nedenle yalnızca açık izin verilen sistemlerde kullanılmalıdır.
.env içinde API anahtarları, admin parola hash'i ve gizli anahtarlar bulunur.
Bu değerler sızarsa dashboard veya hedef LLM endpoint'leri kötüye kullanılabilir.
pyproject.toml içinde proje Development Status :: 3 - Alpha olarak
işaretlenmiştir. Temel özellikler ve testler mevcuttur, ancak API yüzeyi,
konfigürasyon seçenekleri ve kullanıcı deneyimi ilerleyen sürümlerde değişebilir.
Paket metadata'sında lisans MIT, sürüm 0.1.0 olarak tanımlıdır. Proje alpha
seviyesindedir ve aktif geliştirme için tasarlanmıştır.
