Gerçek bir production ortamında yayında olan, Next.js 15 + React 19 tabanlı siber güvenlik eğitim ve portföy platformu. Kullanıcılar tarayıcı içi terminalde Linux/CTF pratiği yapar, güncel CVE'leri takip eder, güvenlik blogunu okur ve kendi operatör profilini & CV'sini yönetir.
🌐 Canlı Platform: https://siberlab.dev 📦 GitHub: https://github.com/codewarrior96/siberlab-dev
| Ad Soyad | SALİM AYBASTI |
| Öğrenci Numarası | 24010509065 |
| Proje Adı | Siberlab-dev |
| GitHub Bağlantısı | https://github.com/codewarrior96/siberlab-dev |
| Canlı Ortam | https://siberlab.dev |
Siberlab-dev, siber güvenliğe yeni başlayanlar ile öğrencilerin teori yerine pratikle öğrenmesini hedefleyen bir web platformudur. Steril sunum slaytları yerine; tarayıcıda çalışan canlı bir terminal, çok seviyeli CTF görevleri, gerçek-zamanlı CVE takibi ve kişisel bir portföy/CV üreteci sunar.
Proje aynı zamanda uçtan uca tam yığın (full-stack) bir mühendislik çalışmasıdır: kimlik doğrulama, oturum yönetimi, veritabanı katmanı, dosya yükleme, PDF üretimi, harici API entegrasyonları ve kapsamlı bir test/güvenlik disiplini içerir.
Platformun çözdüğü problem: Siber güvenlik öğrenmek isteyen biri genelde dağınık kaynaklar, kurulumu zor laboratuvarlar ve pasif video içeriğiyle uğraşır. Siberlab-dev bunların hepsini tek bir hesapla, tarayıcıda, kurulum gerektirmeden bir araya getirir.
- 🖥️ Breach Lab — Tarayıcı içinde (xterm.js) çalışan, gerçekçi bir Linux kabuk simülasyonu üzerinde 43 derslik müfredat ve 7 seviyeli CTF (cd / ls / cat / grep / chmod / pipe → nmap & CVE avı).
- 📄 Portföy & CV Üreteci — Profil, deneyim, projeler, sertifikalar, eğitim, diller ve yetkinlikler; tek tıkla PDF CV çıktısı.
- 🌍 SOC Dashboard — 3D global tehdit haritası + canlı telemetri akışı (eğitim amaçlı simülasyon — aşağıdaki nota bakınız).
- 🛰️ Zafiyet Taraması — NIST NVD canlı beslemesinden CVE Radar, tehdit istihbarat panosu ve güncel siber haber akışı.
- 🔐 Tam kimlik sistemi — E-posta/şifre (scrypt), GitHub & Google OAuth, e-posta doğrulama, şifre sıfırlama, brute-force koruması.
- 📝 Blog — SQL Injection, XSS, reverse shell, Active Directory saldırıları, buffer overflow, Linux yetki yükseltme ve Wireshark üzerine 8 Türkçe MDX yazısı.
Tüm sayfalar canlı olarak https://siberlab.dev adresinde denenebilir.
⚠️ Dürüstlük notu (önemli):/homedashboard'undaki tehdit haritası ve telemetri akışı bir eğitim simülasyonudur ("SİMÜLASYON" rozetiyle açıkça etiketlenmiştir). Gerçek bir saldırı akışı değildir — veriler kontrollü, deterministik olarak üretilir (özel IP aralıkları, simüle olaylar). Amaç bir SOC operatör arayüzünü güvenli biçimde deneyimletmektir.
| Teknoloji | Sürüm | Kullanım |
|---|---|---|
| Next.js | 15.5 (App Router) | Full-stack framework (SSR + API routes) |
| React | 19 | UI katmanı |
| TypeScript | 5 (strict) | Tip güvenliği |
| NextAuth.js | 5.0 (beta) | Kimlik doğrulama + OAuth |
| Tailwind CSS | 3.4 | Stil / tasarım sistemi |
| Supabase | Postgres + Storage | Veritabanı & dosya depolama |
| Node.js | 20+ | Çalışma ortamı |
@react-pdf/renderer+pdfjs-dist— PDF CV üretimi ve belge görüntülemed3-geo+topojson-client— 3D ortografik tehdit haritasınext-mdx-remote+gray-matter+rehype-pretty-code/shiki— MDX blog & kod vurgulamaresend— e-posta gönderimi (doğrulama / şifre sıfırlama)@supabase/supabase-js— Postgres & Storage istemcisifast-xml-parser— RSS / siber haber agregasyonusqlite/sqlite3— yerel geliştirme & fallback veritabanımotion(Framer Motion) +lucide-react— animasyon & ikonlar
- Vitest 4 + @vitest/coverage-v8 — birim/entegrasyon testleri (1159 test)
- @testing-library/react + jsdom + vitest-axe / axe-core — bileşen & erişilebilirlik testleri
- MSW (Mock Service Worker) — deterministik (hermetik) ağ mock'ları
- Playwright — uçtan uca (E2E) test (Chromium)
- ESLint (
next/core-web-vitals) + tsc --noEmit — lint & tip kontrolü
siberlab-dev/
├── src/
│ ├── app/ # Next.js App Router (sayfalar + API)
│ │ ├── welcome/ # Karşılama / landing
│ │ ├── login/ register/ # Kimlik doğrulama sayfaları
│ │ ├── forgot/ reset/ verify/ # Şifre sıfırlama & e-posta doğrulama
│ │ ├── home/ # SOC Dashboard
│ │ ├── academy/ # Breach Lab (terminal + CTF + müfredat)
│ │ ├── portfolio/ # Profil + CV üreteci
│ │ ├── zafiyet-taramasi/ # CVE Radar + tehdit istihbaratı
│ │ ├── blog/ # MDX blog listesi & detay
│ │ ├── roadmap/ # Yol haritası
│ │ ├── layout.tsx page.tsx # Kök layout & yönlendirme
│ │ └── api/ # 34 API route (sunucu uçları)
│ │ ├── auth/ # login / logout / register / reset / verify
│ │ ├── profile/ # profil / avatar / sertifika / eğitim / CV
│ │ ├── reports/ alerts/ # SOC olay raporları & alarmlar
│ │ ├── cves/ cybernews/ # CVE & haber beslemeleri
│ │ ├── greynoise/ live-attacks/ metrics/ telemetry/
│ │ └── users/
│ ├── components/ # React bileşenleri
│ │ ├── dashboard/ # SOC dashboard panelleri
│ │ ├── lab/ # Terminal & CTF motoru bileşenleri
│ │ ├── portfolio/ # Portföy & CV bileşenleri
│ │ ├── welcome/ ui/ # Landing & ortak UI
│ │ └── NavigationBar.tsx ...
│ ├── lib/ # İş mantığı (auth, store, güvenlik, lab motoru) — 92 modül
│ ├── content/ # İçerik
│ │ ├── posts/ # 8 Türkçe MDX güvenlik yazısı
│ │ └── training-sets/ challenges/ modules/ ...
│ ├── hooks/ # React hook'ları
│ ├── styles/ assets/ test/ # Global CSS, fontlar, test setup'ı
├── e2e/ # Playwright E2E testleri (6 journey)
├── docs/ # Dokümantasyon + ekran görüntüleri
│ └── screenshots/
├── supabase/ # Postgres şema & migration SQL'leri
├── scripts/ # Yardımcı scriptler (pdf worker, backfill)
├── public/ # Statik varlıklar
├── .env.example # Ortam değişkeni şablonu (gizli değer İÇERMEZ)
├── package.json
├── next.config.mjs tsconfig.json tailwind.config.ts vitest.config.ts
└── README.md # Bu dosya
- Node.js 20+ ve npm (nodejs.org)
- Git
# 1) Depoyu klonla
git clone https://github.com/codewarrior96/siberlab-dev.git
cd siberlab-dev
# 2) Bağımlılıkları yükle
npm installℹ️ Testleri çalıştırmak için ek bir kuruluma gerek yoktur. Test paketi tamamen hermetiktir (gerçek ağ / veritabanı / dış servis kullanmaz). Doğrudan
npm run testçalıştırılabilir — aşağıya bakınız.
Web uygulamasını (npm run dev) çalıştırmak için projenin köküne bir .env.local dosyası oluşturun. Yerel geliştirme harici hiçbir servise (Supabase/Resend) ihtiyaç duymadan SQLite ile çalışır:
# Zorunlu — oturum imzalama anahtarları (rastgele üretin)
SOC_DEMO_SECRET=buraya_rastgele_64_karakter_hex
NEXTAUTH_SECRET=buraya_rastgele_64_karakter_hex
# Yerel depolama (harici servis gerektirmez)
SOC_STORAGE=sqlite
SOC_IDENTITY_STORE=disabledGüvenli rastgele anahtar üretmek için (her iki değer için ayrı ayrı çalıştırın):
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"🔒
.env.localdosyası.gitignoreiçindedir; gizli değerler asla depoya yüklenmez. Tüm değişken adları gizli değer içermeyen.env.exampledosyasında belgelenmiştir. Tam Supabase + Resend + OAuth yapılandırması yalnızca production (Vercel) dağıtımı içindir.
# Geliştirme sunucusu → http://localhost:3000
npm run dev
# Testleri çalıştır (kurulum/.env GEREKTİRMEZ — 1159 test)
npm run test
# Tam doğrulama kapısı: tip kontrolü + lint + test
npm run verify
# Production derleme + sunucu (.env.local'daki 2 anahtarı gerektirir)
npm run build
npm run start
# Uçtan uca testler (opsiyonel; önce: npm run e2e:install)
npm run e2eProjenin sağlığını en hızlı görmenin yolu — hiçbir yapılandırma gerektirmez:
git clone https://github.com/codewarrior96/siberlab-dev.git
cd siberlab-dev
npm install
npm run test # → 1159 test geçmeliUygulamayı görsel olarak denemek için yukarıdaki .env.local adımını uygulayıp npm run dev çalıştırın, ardından tarayıcıda http://localhost:3000 adresini açın. Dilerseniz tüm akışları doğrudan canlı ortamda da deneyebilirsiniz: https://siberlab.dev
/registerile hesap aç → e-posta doğrula →/loginile giriş yap./academy→ terminaldehelpyazıp dersleri/CTF görevlerini çöz./portfolio→ profilini doldur, CV OLUŞTUR ile PDF CV indir./zafiyet-taramasi→ güncel CVE'leri ve tehdit panosunu incele./home→ SOC dashboard simülasyonunu izle.
Proje, güvenlik-kritik bir uygulama olduğu için yüksek test disipliniyle geliştirilmiştir.
- 1159 birim/entegrasyon testi, 121 test dosyası —
npm run test - Hermetik:
vi.stubEnv+ MSW ile gerçek ağ/veritabanı kullanılmaz; testler her ortamda aynı sonucu verir (deterministik). - Erişilebilirlik:
axe-core+vitest-axeile modal/komponent denetimleri. - E2E: Playwright (Chromium) ile 6 kullanıcı yolculuğu — auth bootstrap, lab çözümü, portföy CRUD, alarm triyajı, mobil portföy, şifre sıfırlama.
- Kapsam tabanı (coverage floor): 44 / 36 / 39 / 46 (statement/branch/function/line) —
vitest.config.tsiçinde eşik olarak zorlanır. - Kalite kapısı:
npm run verify=tsc --noEmit+eslint(0 hata / 0 uyarı) +vitest.
npm run test # 1159 test
npm run typecheck # tsc --noEmit
npm run lint # ESLint 0E/0W
npm run verify # üçü birden (CI kapısı)Bu bir siber güvenlik projesi olduğundan güvenlik birinci sınıf bir gereksinim olarak ele alınmıştır:
- Şifre saklama:
scrypt+ kullanıcıya özel 16-byte salt (salt:hashformatı) — düz metin şifre asla saklanmaz. - Oturum: httpOnly çerez + NextAuth JWT hibrit modeli; GitHub & Google OAuth.
- Rate limiting: Giriş brute-force koruması, kayıt flood koruması ve şifre-sıfırlama token oracle koruması (IP + hesap bazlı, atomik sayaç).
- RBAC: admin > analyst > viewer yetki kademeleri.
- Girdi doğrulama: Ortak
identity-validationkuralları (kullanıcı adı / görünen ad / şifre). - Dosya yükleme: Magic-byte doğrulaması (JPEG/PNG/WEBP/PDF) — uzantı yerine gerçek içerik kontrolü.
- XSS/URL koruması: Bağlantılarda şema beyaz listesi (
javascript:/data:engellenir). - Proxy/IP güvenliği:
x-forwarded-forspoofing'e karşı trust-proxy kapılı istemci IP çözümü. - Veritabanı: Postgres Row-Level Security (deny-all + yalnız service-role erişimi).
- Boot doğrulama: Sunucu açılışında zorunlu ortam değişkenleri (imza anahtarları) doğrulanır; eksikse uygulama güvenli biçimde başlamayı reddeder.
- Bağımlılık güvenliği:
npm audit→ 0 açık. (Geçişligray-matter→js-yamlYAML-DoS uyarısı [GHSA-h67p-54hq-rp68],package.jsonoverridesile yamalıjs-yaml@^4.2.0'a sabitlenerek kapatıldı; gray-matter 4.x'in beklediğisafeLoadkaldırıldığı için blog parser'a js-yaml-4 uyumlu özel YAML engine verildi —next build+ 8 blog SSG sayfası yeşil doğrulandı.)
Geliştirme sürecinde, hem dahili hem de bağımsız harici incelemelerle çok turlu bir güvenlik denetimi yürütülmüştür; bilinen production-exploitable Critical/High açığı bulunmamaktadır. Detaylı denetim defteri
docs/klasöründe ve commit geçmişinde izlenebilir (her kapanış commit'i kök neden + test referansı taşır).
Hibrit, bayrakla yönetilen bir veri katmanı kullanılır:
| Mod | Hedef | Kullanım |
|---|---|---|
disabled (yerel) |
SQLite / bellek | Yerel geliştirme & testler (harici servis yok) |
supabase / postgres |
Supabase Postgres + Storage | Production (kimlik, profil, içerik, raporlar, telemetri) |
Production'da 5 kullanıcı-yüzlü domain (identity, profile, content, operations, telemetry) Supabase Postgres üzerindedir.
Resmî dokümantasyonlar
- Next.js — https://nextjs.org/docs
- React — https://react.dev
- NextAuth.js — https://authjs.dev
- Supabase — https://supabase.com/docs
- Tailwind CSS — https://tailwindcss.com/docs
- Vitest — https://vitest.dev
- Playwright — https://playwright.dev
- react-pdf — https://react-pdf.org
Güvenlik & veri kaynakları
- OWASP Top 10 — https://owasp.org/www-project-top-ten/
- NIST NVD (CVE beslemesi) — https://nvd.nist.gov/developers
- MDN Web Docs — https://developer.mozilla.org
Eğitim içeriği esinlenilen alanlar
- The Hacker News, Krebs on Security, BleepingComputer, SANS ISC (blog/haber RSS beslemeleri)
SALİM AYBASTI — Öğrenci No: 24010509065
- GitHub: @codewarrior96
- Proje: https://github.com/codewarrior96/siberlab-dev
- Canlı: https://siberlab.dev
Bu proje bir ders/capstone projesidir ve eğitim amaçlı geliştirilmiştir. Yeniden dağıtım için ayrı bir açık lisans tanımlanmamıştır.
Not:
/homedashboard'undaki saldırı/telemetri verileri eğitim amaçlı bir simülasyondur, gerçek saldırı verisi değildir ve arayüzde açıkça "SİMÜLASYON" olarak etiketlenmiştir.





