Türkçe içerikli bir siber güvenlik blogu ve tam işlevsel bir Güvenlik Operasyon Merkezi (SOC) dashboard'unu birleştiren, eğitim/demo odaklı bir full-stack web uygulaması.
- Siber güvenlik konularında MDX tabanlı teknik blog yazıları (Türkçe)
- CVE Radar — NIST NVD API üzerinden güncel zafiyet listesi
- Breach Timeline — 2003–2024 arası ~40 büyük siber saldırı olayı
- Portfolio, Roadmap ve Community sayfaları
- Tam metin blog arama
- Sentinel OS v4.1 Estetiği — Modern Bento Grid mimarisiyle tasarlanmış, karanlık mod (dark theme) ve siber opera estetiği.
- Canlı Tehdit Haritası — Üzerindeki dinamik SVG harita ile dünya genelindeki saldırı akışlarını canlı izleme.
- Canlı Saldırı Akışı — Server-Sent Events (SSE) ile anlık gerçek zamanlı simüle edilen log bildirimleri.
- Alert Yönetimi — Oluşturma, önceliklendirme (P1–P4), atama ve durum takibi.
- Sistem İzleme — Volatile CPU, Network ve Memory yükünü dinamik grafiklerle takip etme.
- Gelişmiş Veri Entegrasyonu — Canlı API'lerden veri çekilerek beslenen dinamik metrik widgetları.
| Rol | Yetkiler |
|---|---|
| Admin | Tam erişim + kullanıcı yönetimi |
| Analyst | Alert oluşturma/güncelleme, rapor yazma |
| Viewer | Yalnızca okuma |
| Katman | Teknoloji |
|---|---|
| Framework | Next.js 14 (App Router) |
| Dil | TypeScript 5 |
| UI | React 18 + Tailwind CSS 3 |
| Veritabanı | SQLite 3 (dosya tabanlı) |
| Blog İçeriği | MDX + gray-matter + next-mdx-remote |
| Kimlik Doğrulama | Session tabanlı (httpOnly cookie) |
| Parola Güvenliği | scrypt + rastgele salt |
| Gerçek Zamanlı | Server-Sent Events (SSE) |
| Dış API'lar | NVD/NIST CVE API, GreyNoise |
| Deployment | Vercel |
users — Kullanıcı hesapları ve rolleri
sessions — Oturum token'ları (30 gün TTL)
attack_events — Simüle saldırı olayları (7 gün saklama)
alerts — SOC alert kayıtları
alert_events — Alert değişiklik geçmişi (event sourcing)
alert_notes — Alert yorumları
audit_logs — Sistem geneli denetim kaydı
reports — Olay/tehdit raporları
- Node.js 18+
- npm veya yarn
# 1. Repoyu klonla
git clone https://github.com/kullanici-adi/cybersec-blog.git
cd cybersec-blog
# 2. Bağımlılıkları yükle
npm install
# 3. Ortam değişkenlerini ayarla
cp .env.local.example .env.local
# .env.local dosyasını düzenle (aşağıya bakın)
# 4. Geliştirme sunucusunu başlat
npm run devUygulama http://localhost:3000 adresinde çalışır. İlk çalıştırmada SQLite veritabanı (data/soc.db) ve demo kullanıcılar otomatik oluşturulur.
.env.local dosyasına aşağıdaki değişkenleri ekleyin:
# GreyNoise tehdit istihbarat API anahtarı (isteğe bağlı)
GREYNOISE_API_KEY=your_greynoise_api_key_here
# Vercel deployment (yalnızca production için)
VERCEL_OIDC_TOKEN=your_vercel_oidc_tokenNVD CVE API'si anahtar gerektirmez; ücretsiz kullanılabilir.
Uygulama ilk çalıştığında aşağıdaki demo hesaplar otomatik oluşturulur:
| Kullanıcı Adı | Şifre | Rol |
|---|---|---|
ghost |
demo_pass |
Admin |
analyst1 |
analyst_pass |
Analyst |
viewer1 |
viewer_pass |
Viewer |
Uyarı: Production ortamında bu şifreleri mutlaka değiştirin.
cybersec-blog/
├── src/
│ ├── app/
│ │ ├── api/ # Backend API rotaları
│ │ │ ├── auth/ # Giriş/çıkış/oturum
│ │ │ ├── alerts/ # Alert CRUD
│ │ │ ├── live-attacks/ # SSE saldırı akışı
│ │ │ ├── metrics/live/ # SOC metrikleri
│ │ │ ├── cves/ # CVE verileri
│ │ │ ├── reports/ # Raporlama
│ │ │ └── users/ # Kullanıcı yönetimi
│ │ ├── blog/ # Blog sayfaları
│ │ ├── cve-radar/ # CVE listesi
│ │ ├── breach-timeline/ # Tarihsel olaylar
│ │ ├── portfolio/
│ │ ├── roadmap/
│ │ └── community/
│ ├── components/
│ │ ├── dashboard/ # Yeni Sentinel Dashboard Dosyaları
│ │ │ ├── DashboardLayout.tsx
│ │ │ ├── CveFeedWidget.tsx
│ │ │ ├── ThreatMapWidget.tsx
│ │ │ ├── TerminalLogWidget.tsx
│ │ │ └── SystemMonitorWidget.tsx
│ │ ├── ThreatGlobe.tsx # Ekstra 3D saldırı haritası
│ │ ├── ThreatFeed.tsx # Tehdit akışı
│ │ ├── OperatorSidebar.tsx
│ │ ├── MatrixRain.tsx # Matrix animasyonu
│ │ └── InteractiveTerminal.tsx
│ ├── content/
│ │ └── posts/ # MDX blog yazıları
│ └── lib/
│ ├── db.ts # SQLite başlatma ve şema
│ ├── soc-store-adapter.ts # Veri erişim katmanı
│ ├── auth-server.ts # Sunucu tarafı auth
│ ├── security.ts # Parola hash fonksiyonları
│ ├── breachData.ts # Tarihsel breach verileri
│ └── soc-types.ts # TypeScript tip tanımları
├── public/
├── middleware.ts
├── next.config.mjs
└── tailwind.config.ts
src/content/posts/ dizinine .mdx uzantılı dosya oluşturun:
---
title: "Yazı Başlığı"
date: "2025-01-15"
excerpt: "Kısa açıklama"
tags: ["web", "güvenlik"]
---
# İçerik buraya gelir
MDX destekli tam içerik...| Rota | Method | Auth | Açıklama |
|---|---|---|---|
/api/auth/login |
POST | Hayır | Oturum açma |
/api/auth/logout |
POST | Evet | Oturum kapatma |
/api/auth/session |
GET | Hayır | Oturum kontrolü |
/api/alerts |
GET/POST | Evet | Alert listele/oluştur |
/api/alerts/[id] |
PATCH | Analyst+ | Alert güncelle |
/api/live-attacks |
GET (SSE) | Evet | Canlı saldırı akışı |
/api/metrics/live |
GET | Evet | SOC metrikleri |
/api/cves |
GET | Hayır | CVE listesi (NVD) |
/api/reports |
GET/POST/DELETE | Evet | Rapor yönetimi |
/api/users |
GET/POST | Admin | Kullanıcı yönetimi |
- Oturum yönetimi: httpOnly cookie, 30 gün TTL, otomatik temizleme
- Parola: scrypt algoritması + rastgele salt + timing-safe karşılaştırma
- Denetim kaydı: Tüm kritik aksiyonlar IP ve user-agent ile loglanır
- RBAC: Her API rotasında rol kontrolü yapılır
- Alert geçmişi: Her durum değişikliği event sourcing ile saklanır
Bu proje demo/eğitim amaçlıdır. Production ortamı için önerilen adımlar:
- SQLite → PostgreSQL geçişi (Drizzle ORM veya Prisma ile migration yönetimi)
- Demo şifrelerin değiştirilmesi
- API rotalarına rate limiting eklenmesi (örn. Upstash Redis)
- Sık sorgulanan sütunlara DB index eklenmesi
- Supabase paketinin kaldırılması (kullanılmıyor)
- HTTPS ve HSTS zorunlu hale getirilmesi
- Otomatik DB yedekleme stratejisi belirlenmesi
Bu proje eğitim ve kişisel portfolyo amaçlıdır.