API güvenlik analizi ve raporlama için geliştirilmiş Flask tabanlı dashboard uygulaması.
- 9 Bileşenli Güvenlik Skorlaması
- IP Whitelist Coverage (15%)
- Throttling Configuration (15%)
- Quota Configuration (5%)
- Authentication Strength (20%)
- Allowed Hours (5%)
- Traffic Anomaly (5%)
- Error Rate (5%)
- SSL/TLS Status (10%)
- Logging Status (20%)
- Client SSL durumu kontrolü
- Backend SSL durumu kontrolü
- HTTPS kullanım oranı analizi
- Loglarda hassas veri tespiti
- Configüre edilebilir keyword listesi
- Header ve body bazlı tarama
- Yüzdelik analiz ve raporlama
- Gerçek zamanlı trafik istatistikleri
- Saatlik dağılım heatmap
- Anomali tespiti
- Hata oranı analizi
- PDF Export: Detaylı güvenlik raporu
- Excel Export: Çok sayfalı analiz raporu
- Share: Paylaşılabilir link oluşturma
- JSON Export: Programatik erişim
- Python 3.8+
- MongoDB
- Elasticsearch
- Flask ve bağımlılıklar (requirements.txt)
git clone <repository-url>
cd api_security_dashboardpip install -r requirements.txtconfig.py dosyasında MongoDB URI'yi ayarlayın:
MONGODB_URI = 'mongodb://username:password@host:port/'
MONGODB_DATABASE = 'apinizer'Elasticsearch konfigürasyonları MongoDB'den otomatik olarak alınır.
connection_config_elasticsearch koleksiyonuna kayıt ekleyin:
{
"name": "PROD-ES",
"enabled": true,
"type": "READ_WRITE",
"elasticHostList": [
{
"scheme": "HTTP",
"host": "10.10.10.14",
"port": 9200
}
],
"authenticate": false,
"indexName": "apinizer-log-apiproxy-default"
}sample.txt dosyasında hassas kelimeleri tanımlayın (virgülle ayrılmış):
tc,kimlik,tel,numara,password,email
Veya environment variable ile özel dosya belirtin:
export SENSITIVE_KEYWORDS_FILE="/path/to/keywords.txt"python app.pyUygulama http://localhost:5000 adresinde çalışacaktır.
gunicorn -w 4 -b 0.0.0.0:5000 app:app- Tüm API'lerin listesi ve güvenlik skorları
- Filtreleme ve arama
- Tarih aralığı seçimi
- Elasticsearch seçimi
- Detaylı güvenlik analizi
- Bileşen bazlı skorlar
- Güvenlik önerileri
- Trafik istatistikleri
- Hassas veri analizi
exportReport('api_id', 'pdf')- Kapsamlı güvenlik raporu
- Görsel tablolar
- Renk kodlu skorlar
- Öneriler listesi
exportReport('api_id', 'excel')- Summary sheet
- Components sheet
- Recommendations sheet
- Traffic stats sheet
shareReport('api_id')- Paylaşılabilir link oluşturma
- Opsiyonel email gönderimi
- Clipboard'a otomatik kopyalama
- Client SSL (60%): API endpoint'lerinin HTTPS kullanımı
- Backend SSL (40%): Backend bağlantılarının HTTPS kullanımı
Sadece hassas veri varlığına göre skorlama:
- Hassas veri yok: 100 puan
- ≤1% hassas veri: 80 puan
-
1% hassas veri: 70 puan
-
5% hassas veri: 60 puan
-
10% hassas veri: 50 puan
-
20% hassas veri: 40 puan
-
50% hassas veri: 20 puan
-
80% hassas veri: 10 puan
- No Auth: 0 puan
- API Key: 40 puan
- Basic Auth: 50 puan
- OAuth: 80 puan
- JWT: 90 puan
- mTLS: 100 puan
# MongoDB
MONGODB_URI=mongodb://username:password@host:port/
MONGODB_DATABASE=apinizer
# Elasticsearch (MongoDB'den alınır)
# Manuel konfigürasyon gerekmez
# Sensitive Keywords
SENSITIVE_KEYWORDS_FILE=sample.txt
# Flask
FLASK_ENV=development
DEBUG=True




