Yazılım güvenliği sadece kod yazmakla bitmez — doğru derleme, imzalama, test ve dağıtım süreçleri de en az kod kalitesi kadar önemlidir. Bu checklist, yazılımınızı yayınlamadan önce kontrol etmeniz gereken 15 kritik güvenlik maddesini kapsamaktadır.
Kod Güvenliği (Madde 1-5)
✅ 1. Statik Kod Analizi (SAST) Çalıştırın
SonarQube, Semgrep veya CodeQL gibi araçlarla kaynak kodunuzu güvenlik açıklarına karşı tarayın. SQL injection, XSS, buffer overflow gibi yaygın zafiyetleri otomatik tespit edin.
✅ 2. Bağımlılık Taraması Yapın
npm audit, pip audit, OWASP Dependency-Check veya Snyk ile bağımlılıklarınızdaki bilinen güvenlik açıklarını kontrol edin. CVE veritabanına karşı tüm kütüphaneleri tarayın.
✅ 3. Secret Taraması Yapın
GitLeaks, TruffleHog veya GitHub Secret Scanning ile kodunuzda yanlışlıkla commit edilmiş API anahtarları, şifreler veya token'lar olup olmadığını kontrol edin.
✅ 4. Lisans Uyumluluğunu Kontrol Edin
Kullandığınız açık kaynak kütüphanelerin lisanslarının projenizle uyumlu olduğunu doğrulayın. FOSSA veya License Finder araçlarını kullanın.
✅ 5. Input Validation Kontrol Edin
Tüm kullanıcı girdilerinin doğrulanıp sanitize edildiğinden emin olun. Özellikle dosya yolları, URL'ler, SQL sorguları ve komut satırı parametrelerine dikkat edin.
Build & İmzalama (Madde 6-10)
✅ 6. Release Modda Derleyin
Debug sembollerini ve test kodunu production build'den çıkarın. Release konfigürasyonunda optimizasyonları etkinleştirin.
✅ 7. Kod İmzalama Sertifikası ile İmzalayın
Tüm dağıtılacak dosyaları (EXE, DLL, MSI, JAR, APK) güvenilir bir kod imzalama sertifikası ile imzalayın. SHA-256 algoritması ve RFC 3161 timestamp kullanın.
✅ 8. Timestamp (Zaman Damgası) Ekleyin
İmzalama sırasında mutlaka timestamp ekleyin. Bu, sertifika süresi dolsa bile imzanızın geçerli kalmasını sağlar.
✅ 9. İmzayı Doğrulayın
İmzalama sonrası signtool verify /pa ile imzanın geçerli ve zincirin tam olduğunu doğrulayın.
✅ 10. SBOM (Software Bill of Materials) Oluşturun
CycloneDX veya SPDX formatında SBOM oluşturun. Yazılımınızdaki tüm bileşenleri ve sürümlerini belgeleyin.
Test & Dağıtım (Madde 11-15)
✅ 11. VirusTotal Taraması Yapın
Dağıtmadan önce yazılımınızı VirusTotal'da taratarak false positive kontrolü yapın. Tespit varsa ilgili antivirüs firmalarına bildirim yapın.
✅ 12. Güvenli Dağıtım Kanalı Kullanın
Yazılımınızı HTTPS üzerinden dağıtın. İndirme sayfasında hash değerleri (SHA-256) yayınlayın. Mümkünse GPG imzalı sürüm notu sağlayın.
✅ 13. Güncelleme Mekanizmasını Güvenli Hale Getirin
Otomatik güncelleme kullanıyorsanız, güncelleme dosyalarını imzalayın ve istemci tarafında imza doğrulaması yapın. Man-in-the-middle saldırılarına karşı TLS certificate pinning düşünün.
✅ 14. Rollback Planı Hazırlayın
Güvenlik sorunu keşfedilirse hızla eski sürüme dönebilecek bir mekanizma kurun. Sürüm numaralama ve değişiklik kaydı tutun.
✅ 15. Güvenlik İletişim Kanalı Oluşturun
security.txt dosyası ve responsible disclosure politikası ile güvenlik araştırmacılarının size ulaşabilmesini sağlayın.
Hızlı Referans Tablosu
| Madde | Araç Örnekleri | Öncelik |
|---|---|---|
| SAST | SonarQube, Semgrep, CodeQL | Yüksek |
| Bağımlılık Tarama | npm audit, Snyk, Dependabot | Yüksek |
| Secret Tarama | GitLeaks, TruffleHog | Kritik |
| Kod İmzalama | SignTool, jarsigner, codesign | Kritik |
| SBOM | CycloneDX, Syft, SPDX | Orta |
| VirusTotal | virustotal.com | Yüksek |
Sık Sorulan Sorular
Bu checklist'in tamamını yapmak ne kadar sürer?
İlk kurulum 1-2 gün sürebilir. CI/CD pipeline'a entegre edildikten sonra çoğu kontrol otomatik olarak çalışır ve ek zaman gerektirmez.
Küçük projeler için tüm maddeler gerekli mi?
En azından kod imzalama (7), timestamp (8) ve bağımlılık taraması (2) mutlaka yapılmalıdır. Diğer maddeler projenin ölçeğine ve risk seviyesine göre önceliklendirilebilir.
Yorumlar
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yaz