Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
85 yazı bulundu
Uçtan Uca: Bookstore Pipeline'ında Güvenlik Gate'leri, İstisna Yönetimi ve Ölçüm
Güvenlik SERİ 09

Uçtan Uca: Bookstore Pipeline'ında Güvenlik Gate'leri, İstisna Yönetimi ve Ölçüm

Gürültüsüz bir güvenlik pipeline'ı PR'da yalnız geliştiricinin dakikalar içinde düzeltebileceği kontrolleri, main'de derin kontrolleri çalıştırır; fix'i olan critical ve high bulgu kırar, gerisi sahibi ve bitiş tarihi olan istisnalarla izlenir. Bookstore'un tek workflow'unu, süresi dolan istisnayı yakalayan bir gate'i, zafiyet yaşı ve MTTR ölçümünü, OpenSSF Scorecard'ı ve kontrollerin OWASP Top 10:2025 eşlemesini gerçek çıktılarla gösteriyoruz.

14 Kas 2026 14 dk 5
İmzalama ve Provenance: Sigstore, Artifact Attestation'ları ve SLSA v1.2
Güvenlik SERİ 08

İmzalama ve Provenance: Sigstore, Artifact Attestation'ları ve SLSA v1.2

Bir image imzası içeriğin değişmediğini ve kimin imzaladığını, provenance ise hangi repo, workflow ve commit'ten üretildiğini kanıtlar; ikisi de ancak deploy anında doğrulanırsa işe yarar. Keyless Sigstore imzasını ve GitHub attestation'larını gerçek release'ler üzerinde doğruluyor, Bookstore image'ına SBOM attestation'ı bağlıyor, Kyverno ile imzasız ve tag'li image'ı reddediyor ve pipeline'ı SLSA v1.2'ye göre değerlendiriyoruz.

14 Kas 2026 11 dk 6
SBOM ve VEX: CycloneDX 1.7 ve SPDX 3 ile Ne Kullandığını Bilmek
Güvenlik SERİ 07

SBOM ve VEX: CycloneDX 1.7 ve SPDX 3 ile Ne Kullandığını Bilmek

SBOM, bir sürümün içindeki bileşenlerin makine okunur listesidir ve asıl değeri yeni bir CVE geldiğinde hangi ürünün hangi sürümünün etkilendiğini build almadan sorgulayabilmektir; VEX ise etkilenip etkilenmediğini gerekçesiyle beyan eder. Bookstore için .NET, Angular ve image SBOM'larını üretip doğruluyor, Dependency-Track'te sorguluyor ve OpenVEX ile CycloneDX VEX'i gerçek çıktılarla uyguluyoruz.

14 Kas 2026 13 dk 5
DAST: ZAP ile Çalışan Uygulamayı Taramak — Baseline, API Scan ve Authenticated Tarama
Güvenlik SERİ 06

DAST: ZAP ile Çalışan Uygulamayı Taramak — Baseline, API Scan ve Authenticated Tarama

DAST çalışan uygulamaya dışarıdan istek gönderip header, cookie, hata sızıntısı ve yansıyan girdi gibi davranış açıklarını bulur; ama yalnız ulaşabildiği endpoint'leri tarar ve authorization hatasını göremez. Bookstore.Api'yi ZAP 2.17 ile baseline, API scan ve Automation Framework planıyla tarıyor, token'lı taramada oturumun düştüğünü yakalamayı, bulguları integration teste çevirmeyi ve main'de çalışan DAST job'ını gerçek çıktılarla gösteriyoruz.

14 Kas 2026 15 dk 7
Container ve IaC Scanning: Image Zafiyetleri, Base Image Seçimi ve Manifest Taraması
Güvenlik SERİ 05

Container ve IaC Scanning: Image Zafiyetleri, Base Image Seçimi ve Manifest Taraması

Image taraması, deploy edilen artifact'taki işletim sistemi paketlerini ve uygulama bağımlılıklarını birlikte denetler; bulguların çoğu kullanılmayan paketlerden gelir ve chiseled, non-root bir base image bunları büyük ölçüde ortadan kaldırır. Bookstore image'ında 42 bulgunun 6'ya inişini, Trivy ile Grype'ın farkını, Mart 2026 Trivy olayından sonra tarayıcıyı SHA ve cosign imzasıyla doğrulamayı, Dockerfile, Kubernetes ve Terraform taramasını gerçek çıktılarla gösteriyoruz.

14 Kas 2026 13 dk 5
SAST: CodeQL, Semgrep ve .NET Security Analyzer'ları ile Kaynak Kodda Güvenlik Açığı Aramak
Güvenlik SERİ 04

SAST: CodeQL, Semgrep ve .NET Security Analyzer'ları ile Kaynak Kodda Güvenlik Açığı Aramak

SAST, kullanıcı girdisinin (source) tehlikeli bir çağrıya (sink) sanitizer'sız ulaştığı yolları arar; yalnız modellediği sink'leri görür ve iş kuralı ya da authorization eksikliği bulamaz. Bookstore'da CodeQL, Semgrep ve .NET security analyzer'larını aynı beş soruna karşı çalıştırıyor, kimin neyi bulduğunu, Bookstore'a özel test edilmiş bir Semgrep kuralını, false positive triage'ını ve yalnız yeni bulguyu kıran bir pipeline'ı gerçek çıktılarla gösteriyoruz.

14 Kas 2026 13 dk 5
Dependency Scanning Derinlemesine: NuGetAudit, npm audit, Dependabot ve Bulguları Önceliklendirmek
Güvenlik SERİ 03

Dependency Scanning Derinlemesine: NuGetAudit, npm audit, Dependabot ve Bulguları Önceliklendirmek

Dependency bulgularını CVSS skoruna göre sıralamak yetmez: aciliyeti KEV'deki sömürü kanıtı, EPSS'in 30 günlük sömürülme olasılığı ve kodun zafiyetli fonksiyona gerçekten ulaşıp ulaşmadığı belirler. Bookstore'da NuGetAudit'i repo seviyesinde ayarlıyor, .NET 10 package pruning'in false positive'i nasıl kaldırdığını, süreli NuGetAuditSuppress'i, EPSS/KEV sorgulayan bir triage aracını ve Dependabot'ta security ile version update'leri ayırmayı gerçek çıktılarla gösteriyoruz.

14 Kas 2026 13 dk 5
Secret Scanning: Pre-commit, Push Protection ve Sızan Secret'a İlk 30 Dakika
Güvenlik SERİ 02

Secret Scanning: Pre-commit, Push Protection ve Sızan Secret'a İlk 30 Dakika

Secret scanning tek bir araç değil, katmanlardır: geliştirici makinesinde pre-commit, pipeline'da PR commit aralığı, GitHub'da push protection ve tüm geçmişin periyodik taranması; sızıntı olursa sıra her zaman önce rotate, sonra etki analizi, en son geçmişi temizlemektir. gitleaks 8.30'un varsayılan kurallarının dev önekli iki secret'ı neden kaçırdığını, Bookstore'a özel kuralları, base64 tespitini ve git-filter-repo ile temizliği gerçek çıktılarla gösteriyoruz.

14 Kas 2026 13 dk 6
DevSecOps Nedir? Güvenlik Kontrollerini Pipeline'ın Doğru Yerine Koymak
Güvenlik SERİ 01

DevSecOps Nedir? Güvenlik Kontrollerini Pipeline'ın Doğru Yerine Koymak

DevSecOps, güvenlik kontrollerini pipeline'da ihtiyaç duydukları bilginin ilk ortaya çıktığı yere koymak ve bulguyu kodu yazan ekibe o anda döndürmektir: secret pre-commit'te, SAST ve SCA PR'da, image taraması main'de, DAST deploy'dan sonra. Bookstore pipeline'ının önce/sonra haritasını çıkarıyor, Semgrep baseline ile yalnız yeni bulguyu kırmayı gerçek çıktılarla gösteriyor ve kontrolleri NIST SSDF ile OWASP DSOMM'a eşliyoruz.

14 Kas 2026 14 dk 5
.NET Framework'ten .NET 11'e Kriptografi API'leri: Obsolete Tipler, Yeni One-shot API'ler ve Eski Kodu Okumak
Güvenlik SERİ 09

.NET Framework'ten .NET 11'e Kriptografi API'leri: Obsolete Tipler, Yeni One-shot API'ler ve Eski Kodu Okumak

Eski kripto kodunu yeni API'lere taşırken uyarıları düzeltmek yetmez; eski constructor'ların gizli varsayılanlarını (SHA-1, 1000 iterasyon, CBC) açıkça yazmazsan arşivdeki veri açılmaz. SYSLIB0021'den SYSLIB0060'a uyarıları, davranışı koruyan taşımayı, .NET 5'ten 10'a gelen API'leri ve .NET 11'in X25519, RFC 3394 AES Key Wrap, HMACSHA256.Verify, HPKE ve composite ML-KEM eklemelerini gerçek çıktılarla gösteriyoruz.

14 Kas 2026 11 dk 0
Post-Quantum Kriptografi: ML-KEM, ML-DSA, SLH-DSA, Hybrid Yaklaşım ve Crypto Agility
Güvenlik SERİ 08

Post-Quantum Kriptografi: ML-KEM, ML-DSA, SLH-DSA, Hybrid Yaklaşım ve Crypto Agility

Uzun süre gizli kalması gereken veri bugün kaydedilip kuantum bilgisayarla sonra çözülebileceği için RSA ve ECC'ye dayanan key exchange'i şimdiden hybrid ML-KEM'e taşımak gerekir; AES ve SHA-2 bu geçişin dışındadır. NIST IR 8547'nin 2030/2035 takvimini, .NET 10'un MLKem, MLDsa, SlhDsa ve CompositeMLDsa API'lerini, OpenSSL 3.5 ile gelen X25519MLKEM768 TLS grubunu ve Bookstore'un hybrid sipariş envelope'unu gerçek çıktılarla gösteriyoruz.

14 Kas 2026 12 dk 0
TLS'in İçi: Record Layer, Key Schedule, Forward Secrecy ve .NET'te SslStream Ayarları
Güvenlik SERİ 07

TLS'in İçi: Record Layer, Key Schedule, Forward Secrecy ve .NET'te SslStream Ayarları

Kaydedilmiş TLS 1.3 trafiği sunucunun private key'iyle çözülemez, çünkü trafik anahtarları her bağlantıda yeni X25519 key exchange'inden HKDF ile türetilir. Key schedule'ı RFC 8448 test vektörleriyle doğruluyor, record layer'daki AES-GCM'i, .NET'in SSLKEYLOGFILE desteğiyle kendi trafiğimizi çözmeyi, resumption ve 0-RTT riskini, EnabledSslProtocols ve CipherSuitesPolicy ayarlarını gerçek çıktılarla gösteriyoruz.

14 Kas 2026 12 dk 0
Blog Haritası