🤖 Bu proje Cursor AI desteği ile geliştirilmiştir.
Açık kaynaklı DevSecOps güvenlik izleme ve analiz platformu. ELK Stack, Nginx, Osquery ve Python tabanlı DLP/Anomali tespit araçlarını entegre eden minimal bir güvenlik çözümü.
- ✅ ELK Stack (SIEM): Elasticsearch, Logstash, Kibana ile merkezi log yönetimi ve analiz
- ✅ Nginx Reverse Proxy: Trafik yönlendirme, loglama ve güvenlik katmanı
- ✅ Flask API: Mikroservis simülasyonu ve test ortamı
- ✅ Osquery (EDR): Uç nokta izleme ve şüpheli aktivite tespiti
- ✅ DLP Modülü: Hassas veri tespiti (TC Kimlik, Kredi Kartı, IBAN, vb.)
- ✅ Anomali Tespiti: Trafik analizi ve anormal davranış tespiti
- ✅ Güvenlik Duvarı: UFW ile port yönetimi
- OS: Linux (Ubuntu 20.04+) veya WSL2
- RAM: Minimum 4GB
- Disk: En az 10GB boş alan
- Docker: 20.10+
- Docker Compose: 1.29+
- Python: 3.8+
# Depoyu klonlayın
git clone <repo-url>
cd "Secustack observer"
# Kurulum scriptini çalıştırın
chmod +x scripts/install.sh
./scripts/install.shKurulum scripti otomatik olarak:
- Docker ve Docker Compose kontrolü yapar
- Gerekli klasörleri oluşturur
- ELK Stack'i başlatır
- Flask API'yi build edip başlatır
- Nginx Reverse Proxy'yi yapılandırır
Kurulum süresi: ~3-5 dakika
# Tüm servisleri başlat
./scripts/start-all.sh
# Servisleri durdur
./scripts/stop-all.sh
# Servis durumunu kontrol et
./scripts/check-status.sh- Kibana Dashboard: http://localhost:5601
- Elasticsearch: http://localhost:9200
- Flask API: http://localhost:5000
- Nginx Proxy: http://localhost
# Health check
curl http://localhost/health
# Login endpoint test
curl -X POST http://localhost/login \
-H "Content-Type: application/json" \
-d '{"username":"test","password":"test123"}'
# Data endpoint (API key gerekli)
curl http://localhost/data \
-H "X-API-Key: test-api-key-123"Hassas veri tespiti için:
# Test verisi oluştur
mkdir -p data/test-data
cat > data/test-data/sample.txt << EOF
TC Kimlik: 12345678901
Kredi Kartı: 4532-1234-5678-9010
IBAN: TR330006100519786457841326
E-posta: test@example.com
Telefon: 05321234567
EOF
# DLP taraması çalıştır
cd python-scripts
python3 dlp/sensitive_data_detector.pyNginx loglarında anormal trafik tespiti:
# Test trafiği oluştur
for i in {1..50}; do
curl -s http://localhost/login -X POST \
-H "Content-Type: application/json" \
-d '{"username":"test'$i'","password":"test"}' > /dev/null
done
# Anomali analizi
cd python-scripts
python3 anomaly/traffic_analyzer.pyUç nokta izleme için:
# Osquery kurulumu (Ubuntu/Debian)
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt-get update && sudo apt-get install osquery
# Osquery'yi başlat
sudo osqueryd --config_path=osquery/osquery.conf --daemonize- Kibana'ya girin: http://localhost:5601
- Stack Management > Index Patterns bölümüne gidin
- Yeni index pattern oluşturun:
- Pattern:
nginx-* - Time field:
@timestamp
- Pattern:
- Analytics > Discover bölümünde logları görüntüleyin
- Analytics > Dashboard ile özel görselleştirmeler oluşturun
┌──────────┐
│ Client │
└────┬─────┘
│
▼
┌─────────┐ ┌────────────┐ ┌──────────┐
│ Nginx │────▶│ Flask API │ │ Osquery │
│ (Proxy) │ │(Mikroservis│ │ (EDR) │
└────┬────┘ └────────────┘ └────┬─────┘
│ │
│ │
▼ ▼
┌────────────────────────────────────────────┐
│ ELK Stack │
│ ┌─────────┐ ┌──────────┐ ┌──────────┐ │
│ │Logstash │─▶│Elastic │─▶│ Kibana │ │
│ └─────────┘ │ search │ └──────────┘ │
│ └──────────┘ │
└────────────────────────────────────────────┘
▲
│
┌────┴─────┐
│ Python │
│ Scripts │
│ (DLP/ML) │
└──────────┘
Secustack observer/
├── docker/
│ └── elk/
│ └── docker-compose.yml # ELK Stack konfigürasyonu
├── flask-api/
│ ├── app.py # Flask mikroservis
│ ├── Dockerfile
│ └── requirements.txt
├── nginx/
│ └── nginx.conf # Nginx reverse proxy config
├── logstash/
│ ├── config/
│ │ └── logstash.yml
│ └── pipeline/
│ ├── nginx.conf # Nginx log pipeline
│ └── osquery.conf # Osquery log pipeline
├── osquery/
│ └── osquery.conf # Osquery konfigürasyonu
├── python-scripts/
│ ├── dlp/
│ │ └── sensitive_data_detector.py
│ ├── anomaly/
│ │ └── traffic_analyzer.py
│ └── requirements.txt
├── scripts/
│ ├── install.sh # Otomatik kurulum
│ ├── start-all.sh # Tüm servisleri başlat
│ ├── stop-all.sh # Tüm servisleri durdur
│ └── check-status.sh # Durum kontrolü
└── logs/ # Log dosyaları
├── nginx/
└── osquery/
# Container loglarını kontrol et
cd docker/elk
docker-compose logs elasticsearch
docker-compose logs logstash
docker-compose logs kibana
# Servisleri yeniden başlat
docker-compose restart# Nginx loglarını kontrol et
docker logs nginx-proxy
# Flask API'nin çalıştığını doğrula
curl http://localhost:5000/health
# Nginx konfigürasyonunu test et
docker exec nginx-proxy nginx -t
# Nginx'i yeniden başlat
docker restart nginx-proxy# Container durumunu kontrol et
docker ps | grep flask-api
# Logları görüntüle
docker logs flask-api
# Yeniden başlat
docker restart flask-api# Network'leri listele
docker network ls
# Network detaylarını göster
docker network inspect elk_elk-network
# Container'ları aynı network'e bağla
docker network connect elk_elk-network nginx-proxy
docker network connect elk_elk-network flask-api# UFW'yi aktifleştir
sudo ufw enable
# Gerekli portları aç
sudo ufw allow 80/tcp # HTTP (Nginx)
sudo ufw allow 5601/tcp # Kibana
sudo ufw allow 22/tcp # SSH
# Durum kontrolü
sudo ufw status verboseBaşarılı kurulum sonrası:
- ✅ Tüm Docker container'ları çalışır durumda
- ✅ Elasticsearch, Kibana ve Logstash erişilebilir
- ✅ Nginx üzerinden Flask API'ye erişim sağlanır
- ✅ Loglar ELK Stack'e iletilir
- ✅ Kibana'da loglar görselleştirilebilir
- ✅ DLP ve anomali tespit scriptleri çalışır
- Bu depoyu fork edin
- Feature branch oluşturun (
git checkout -b feature/yeni-ozellik) - Değişikliklerinizi commit edin (
git commit -m 'Yeni özellik eklendi') - Branch'inizi push edin (
git push origin feature/yeni-ozellik) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Sorularınız veya önerileriniz için issue açabilirsiniz.
⭐ Projeyi beğendiyseniz yıldız vermeyi unutmayın!