Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Security Dashboard

API güvenlik analizi ve raporlama için geliştirilmiş Flask tabanlı dashboard uygulaması.

Dashboard Recommedations Details 1 Details 2 Details 3 Details 4

Özellikler

Güvenlik Analizi

  • 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%)

SSL/TLS Analizi

  • Client SSL durumu kontrolü
  • Backend SSL durumu kontrolü
  • HTTPS kullanım oranı analizi

Sensitive Data Detection

  • Loglarda hassas veri tespiti
  • Configüre edilebilir keyword listesi
  • Header ve body bazlı tarama
  • Yüzdelik analiz ve raporlama

Trafik Analizi

  • Gerçek zamanlı trafik istatistikleri
  • Saatlik dağılım heatmap
  • Anomali tespiti
  • Hata oranı analizi

Raporlama

  • PDF Export: Detaylı güvenlik raporu
  • Excel Export: Çok sayfalı analiz raporu
  • Share: Paylaşılabilir link oluşturma
  • JSON Export: Programatik erişim

📋 Gereksinimler

  • Python 3.8+
  • MongoDB
  • Elasticsearch
  • Flask ve bağımlılıklar (requirements.txt)

🔧 Kurulum

1. Repository'yi Klonlayın

git clone <repository-url>
cd api_security_dashboard

2. Bağımlılıkları Yükleyin

pip install -r requirements.txt

3. Konfigürasyon

MongoDB Bağlantısı

config.py dosyasında MongoDB URI'yi ayarlayın:

MONGODB_URI = 'mongodb://username:password@host:port/'
MONGODB_DATABASE = 'apinizer'

Elasticsearch Konfigürasyonu

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"
}

Sensitive Keywords

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"

🚀 Çalıştırma

Development

python app.py

Uygulama http://localhost:5000 adresinde çalışacaktır.

Production

gunicorn -w 4 -b 0.0.0.0:5000 app:app

📊 Kullanım

Ana Dashboard

  • Tüm API'lerin listesi ve güvenlik skorları
  • Filtreleme ve arama
  • Tarih aralığı seçimi
  • Elasticsearch seçimi

API Detay Sayfası

  • Detaylı güvenlik analizi
  • Bileşen bazlı skorlar
  • Güvenlik önerileri
  • Trafik istatistikleri
  • Hassas veri analizi

Export İşlemleri

PDF Export

exportReport('api_id', 'pdf')
  • Kapsamlı güvenlik raporu
  • Görsel tablolar
  • Renk kodlu skorlar
  • Öneriler listesi

Excel Export

exportReport('api_id', 'excel')
  • Summary sheet
  • Components sheet
  • Recommendations sheet
  • Traffic stats sheet

Share

shareReport('api_id')
  • Paylaşılabilir link oluşturma
  • Opsiyonel email gönderimi
  • Clipboard'a otomatik kopyalama

🔐 Güvenlik Skorlama Detayları

SSL/TLS Status (10%)

  • Client SSL (60%): API endpoint'lerinin HTTPS kullanımı
  • Backend SSL (40%): Backend bağlantılarının HTTPS kullanımı

Logging Status (20%)

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

Authentication Strength (20%)

  • No Auth: 0 puan
  • API Key: 40 puan
  • Basic Auth: 50 puan
  • OAuth: 80 puan
  • JWT: 90 puan
  • mTLS: 100 puan

�📝 Environment Variables

# 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

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages