Kurumsal Kod Güvenliği Programı: Secure SDLC ve SecureSys Yaklaşımı
Bütün parçaları tek modelde birleştirmek: Secure SDLC, risk bazlı AppSec tiering, Security Champion ve ölçülebilir kod güvenliği programı.

Bir kurum kaynak kod analizi yaptırabilir.
SAST ürünü kullanabilir.
SCA ile açık kaynak bağımlılıklarını tarayabilir.
Secret Scanning ile kod içerisindeki API key ve parolaları tespit edebilir.
DAST çalıştırabilir.
Pentest yaptırabilir.
Geliştiricilere Secure Coding eğitimi verebilir.
Bütün bunlar değerlidir.
Ancak kritik soru şudur:
Bu faaliyetler birbirinden bağımsız mı yürütülüyor, yoksa tek bir güvenlik programının parçaları mı?
Gerçek Application Security olgunluğu tam olarak bu ayrımda ortaya çıkar.
Tek tek güvenlik kontrolleri uygulamak, belirli riskleri azaltabilir.
Ancak sürdürülebilir yazılım güvenliği için bu kontrollerin;
politika, süreç, teknoloji, insan ve ölçüm
katmanları altında tek bir yapıya dönüştürülmesi gerekir.
Bu yapı genel olarak Secure SDLC – Secure Software Development Life Cycle ve kurumsal Application Security Programı çerçevesinde ele alınabilir.
Amaç artık yalnızca belirli bir uygulamadaki güvenlik açıklarını bulmak değildir.
Asıl hedef:
kurumun güvenli yazılım üretme kapasitesini sürekli olarak geliştirmektir.
Bu bölümde bugüne kadar ele aldığımız bütün kavramları tek bir model içerisinde birleştireceğiz.
Secure Coding’den SAST’a,
SCA’dan Secret Scanning’e,
DevSecOps’tan penteste,
bulgu yönetiminden Security Champion modeline kadar bütün güvenlik katmanlarının kurumsal ölçekte nasıl bir araya getirilebileceğini inceleyeceğiz.
1. Kurumsal Kod Güvenliği Programı Nedir?
Kurumsal Kod Güvenliği Programı, bir kurumun geliştirdiği yazılımların güvenlik risklerini yaşam döngüsünün tamamında yönetmek için oluşturduğu sürekli süreçtir.
Bu program yalnızca güvenlik testi yapmaz.
Aynı zamanda:
- güvenlik gereksinimlerini belirler,
- geliştiricilere güvenli kodlama standardı sunar,
- kaynak kodu analiz eder,
- üçüncü taraf bileşenleri izler,
- CI/CD süreçlerine güvenlik ekler,
- bulguları yönetir,
- güvenlik metrikleri üretir,
- tekrar eden zayıflıkları azaltır.
Bu nedenle AppSec programı teknik araç projesi değildir.
Bir yönetim modelidir.
2. Tek Seferlik Test ile Program Arasındaki Fark
Tek seferlik test şu soruya cevap verir:
“Bugün bu uygulamada hangi güvenlik açıkları var?”
Kurumsal program ise daha kapsamlı sorular sorar:
Bu açık neden oluştu?
Başka hangi uygulamalarda aynı problem olabilir?
Aynı açık yeniden oluşabilir mi?
Geliştiriciyi daha erken nasıl uyarabiliriz?
Bu problemi otomatik olarak nasıl engelleyebiliriz?
Bu fark çok önemlidir.
Tek seferlik analiz mevcut problemi gösterir.
Program ise problemin tekrarını azaltır.
3. Application Security Programının Ana Hedefi
İyi bir AppSec programının temel hedefi:
daha fazla güvenlik açığı bulmak değildir.
Asıl hedef:
daha az güvenlik açığı üretmektir.
İlk yıllarda daha fazla güvenlik açığı bulunabilir.
Çünkü görünürlük artar.
Ancak program olgunlaştıkça:
- tekrar eden açıkların azalması,
- kritik bulguların daha erken bulunması,
- MTTR süresinin kısalması,
- production’a kaçan zafiyetlerin azalması
beklenir.
4. Secure SDLC Nedir?
Secure SDLC, güvenliğin yazılım geliştirme yaşam döngüsünün tamamına entegre edilmesidir.
Klasik SDLC şu şekilde olabilir:
Planlama → Tasarım → Geliştirme → Test → Release → Production
Secure SDLC’de ise her aşamanın güvenlik kontrolü vardır.
Örneğin:
Planlama → Güvenlik Gereksinimleri
Tasarım → Threat Modeling
Geliştirme → Secure Coding
Commit → Secret Scanning
Build → SAST + SCA
Test → DAST + API Security
Release → Pentest / Security Gate
Production → Monitoring
Böylece güvenlik son aşamada yapılan kontrol olmaktan çıkar.
5. Secure SDLC Neden Daha Güçlüdür?
Çünkü güvenlik açığının mümkün olduğunca erken tespit edilmesini sağlar.
Örneğin authorization problemi tasarım sırasında fark edilirse mimari daha baştan doğru oluşturulabilir.
Kodlama sırasında bulunursa birkaç satır değişiklik gerekebilir.
Pentest sırasında bulunursa birçok modül etkilenmiş olabilir.
Production’da veri ihlali sonrasında bulunursa maliyet çok daha yüksek olabilir.
Temel prensip:
Problemi ne kadar erken bulursanız, düzeltmek o kadar kolaydır.
6. Secure SDLC’nin İlk Aşaması: Güvenlik Gereksinimleri
Yazılım projesinin başında güvenlik gereksinimleri belirlenmelidir.
Örneğin:
- kullanıcılar MFA kullanacak mı?
- hassas veriler şifrelenecek mi?
- hangi roller hangi verilere erişecek?
- hangi loglar tutulacak?
- session süresi ne olacak?
- hangi regülasyonlar uygulanacak?
Bu gereksinimler geliştirme başlamadan netleştirilirse güvenlik tasarımın parçası olur.
7. Security Requirement Örnekleri
Örneğin bir finans uygulamasında şu gereksinimler tanımlanabilir:
Bütün kritik işlemler için güçlü authentication zorunlu.
Kullanıcı sadece kendi hesaplarına erişebilir.
Finansal işlemler audit log’a yazılır.
Hassas veri düz metin saklanmaz.
Production credential kaynak kod içerisinde tutulamaz.
Bunlar daha sonra test edilebilir güvenlik kontrollerine dönüştürülebilir.
8. Threat Modeling
Threat Modeling, yazılım geliştirme başlamadan veya önemli mimari değişikliklerde potansiyel tehditlerin analiz edilmesidir.
Bu süreç şu soruları sorar:
- Koruduğumuz varlıklar neler?
- Saldırgan kim olabilir?
- Sisteme nereden girebilir?
- Trust Boundary nerede?
- En kötü saldırı senaryosu nedir?
Bu analiz kaynak kod incelemesi ve pentest önceliklerini de belirleyebilir.
9. Threat Modeling Ne Zaman Yapılmalıdır?
Özellikle:
- yeni uygulama,
- yeni kritik modül,
- authentication değişikliği,
- cloud migration,
- yeni API mimarisi,
- finansal işlem sistemi
gibi değişikliklerde faydalıdır.
Her küçük kod değişikliğinde tam threat model yapılması gerekmez.
Risk bazlı yaklaşım kullanılabilir.
10. Security Architecture Review
Kritik projelerde güvenlik mimarisi uygulama geliştirilmeden önce gözden geçirilebilir.
Örneğin:
- authentication mimarisi,
- authorization modeli,
- network trust boundary,
- key management,
- secrets management,
- logging mimarisi
değerlendirilebilir.
Bir mimari hatayı üretimden sonra düzeltmek çok maliyetli olabilir.
11. Secure Coding Standardı
Secure Coding Standard geliştiricilerin uyması gereken temel güvenlik kurallarını tanımlar.
Örneğin:
- SQL sorgularında parameterized query kullanılmalı.
- Kullanıcı girdileri doğrulanmalı.
- Output encoding uygulanmalı.
- Authorization server-side yapılmalı.
- Secret kaynak kod içerisinde tutulmamalı.
- Güvenli kriptografik algoritmalar kullanılmalı.
- Hassas veri loglanmamalı.
Bu standart teknolojiye özgü hale getirilebilir.
12. Teknolojiye Özgü Secure Coding
Genel kurallar faydalıdır ancak geliştiriciler teknolojiye özgü örneklere ihtiyaç duyar.
Örneğin Java için:
- Spring Security
- JPA
- Jackson
- Java Crypto
gibi yapıların güvenli kullanımı anlatılabilir.
.NET ekibi için farklı örnekler gerekir.
JavaScript ve frontend ekipleri için:
- DOM XSS
- CSP
- token storage
gibi konular öne çıkabilir.
13. Secure Coding Checklist
Developer ve reviewer için kısa checklist hazırlanabilir.
Örneğin:
- Kullanıcı girdisi doğrulandı mı?
- Authorization mevcut mu?
- Secret var mı?
- SQL query güvenli mi?
- Hassas veri loglanıyor mu?
- Dependency yeni mi?
Bu liste Pull Request sürecinin parçası olabilir.
14. Peer Code Review
Geliştiricinin yazdığı kodun başka geliştirici tarafından incelenmesi kod kalitesi kadar güvenliği de artırabilir.
Peer Review sırasında güvenlik checklist’i kullanılabilir.
Ancak bu tam Security Code Review değildir.
Yine de güvenlik hatalarını erken yakalamak açısından önemli bir katmandır.
15. Security Code Review
Critical modüllerde özel Security Code Review uygulanabilir.
Özellikle:
- authentication,
- authorization,
- ödeme,
- password reset,
- file upload,
- cryptography
gibi alanlar AppSec uzmanları tarafından manuel incelenebilir.
Bu kontrol SAST’ın göremediği business logic ve mimari problemleri ortaya çıkarabilir.
16. SAST’ın Kurumsal Programdaki Rolü
SAST büyük kod tabanını sürekli analiz edebilmesi nedeniyle kurumsal AppSec programının temel otomasyonlarından biridir.
Amaç yılda bir scan değil;
kod değiştikçe güvenlik kontrolü yapmak
olmalıdır.
SAST Pull Request veya build aşamasına entegre edilebilir.
17. SAST Coverage
Kurumsal programda şu metrik izlenebilir:
Kaç repository SAST kapsamında?
Örneğin:
Toplam 200 repository.
SAST kapsamında 170.
Coverage:
%85.
Hedef zaman içerisinde kritik uygulamalarda %100’e yaklaşmak olabilir.
18. SAST Policy
Bütün uygulamalar için aynı SAST politikası gerekli olmayabilir.
Tier 1 kritik uygulamada:
- Critical ve High bloklanabilir.
- Full scan sık yapılabilir.
- Manual triage zorunlu olabilir.
Tier 4 internal tool’da daha esnek politika kullanılabilir.
Bu Risk-Based AppSec yaklaşımıdır.
19. SCA’nın Kurumsal Rolü
SCA açık kaynak ve üçüncü taraf dependency güvenliğini yönetir.
Kurumsal program açısından temel hedefler:
- dependency inventory,
- known CVE detection,
- EOL package detection,
- license visibility,
- SBOM generation
olabilir.
SCA özellikle modern yazılımlarda zorunlu hale gelmiştir.
20. Dependency Governance
Kurum hangi dependency’lerin kullanılabileceği konusunda politika oluşturabilir.
Örneğin:
- EOL library yasak.
- Critical CVE bulunan package yeni projeye eklenemez.
- Belirli lisanslar approval gerektirir.
- Paketler yalnızca trusted repository’den indirilir.
Bu yaklaşım supply chain riskini azaltır.
21. Approved Library Catalog
Kurumsal uygulamalarda onaylı kütüphane listesi oluşturulabilir.
Örneğin:
Authentication → Approved Framework A
Logging → Approved Library B
Cryptography → Approved Library C
Bu yapı güvenli tasarımı standardize eder.
22. Secret Scanning’in Kurumsal Rolü
Secret Scanning’in hedefi yalnızca repository’de API key bulmak değildir.
İdeal model:
Secret’ın repository’ye hiç ulaşmaması
olmalıdır.
Bu nedenle:
- pre-commit,
- push protection,
- pipeline scan,
- history scan
birlikte uygulanabilir.
23. Zero Secret in Code Politikası
Kurum şu hedefi belirleyebilir:
Production secret kaynak kod içerisinde tutulamaz.
Bunu yalnızca politika olarak yazmak yerine teknik olarak enforce etmek daha güçlüdür.
Push Protection active secret içeren commit’i engelleyebilir.
24. Secrets Management Standardı
Uygulamalar secret’ları merkezi sistemden almalıdır.
Örneğin:
- Vault,
- Secrets Manager,
- KMS,
- workload identity
yaklaşımları kullanılabilir.
Bu yapı secret lifecycle’ını daha kontrollü hale getirir.
25. DAST’ın Kurumsal Programdaki Rolü
DAST test veya staging ortamında otomatik runtime test sağlar.
Özellikle internet-facing web uygulamalarında faydalıdır.
DAST uygulamanın kaynak koddan production benzeri ortama geçerken oluşan güvenlik problemlerini yakalayabilir.
26. API Security Testing
Modern kurumlarda web UI kadar API güvenliği de kritiktir.
API güvenlik programında:
- API inventory,
- schema validation,
- DAST,
- manuel pentest,
- authorization testleri
bulunabilir.
Özellikle BOLA ve business logic problemlerinde manuel test önemlidir.
27. Pentest Programı
Pentest tek seferlik proje yerine merkezi program olarak yönetilebilir.
Örneğin kritik uygulamalar:
- yılda belirli periyot,
- major release sonrası,
- kritik mimari değişiklikte
pentest alabilir.
Daha düşük riskli uygulamalarda farklı frekans kullanılabilir.
28. Pentest Frekansı Nasıl Belirlenir?
Risk bazlı model kullanılabilir.
Örneğin:
Tier 1
Sık periyodik pentest + major release.
Tier 2
Yıllık veya kritik değişiklik sonrası.
Tier 3
Daha seyrek veya risk bazlı.
Bu yalnızca örnek modeldir.
Kurumun regülasyonları ve risk profili belirleyici olmalıdır.
29. Pentest Bulguları Programa Nasıl Beslenir?
Pentest raporu yalnızca ilgili uygulamanın remediation’ı için kullanılmamalıdır.
Bulgu trendleri analiz edilmelidir.
Örneğin pentestlerde sürekli:
BOLA
bulunuyorsa bütün API ekiplerinde authorization standardı gözden geçirilebilir.
Bu AppSec programının kurumsal öğrenme mekanizmasıdır.
30. DevSecOps Entegrasyonu
Secure SDLC’nin otomasyon katmanı büyük ölçüde DevSecOps üzerinden uygulanır.
Pipeline’da:
Secret Scan
↓
SAST
↓
SCA
↓
IaC Scan
↓
Container Scan
↓
Security Quality Gate
bulunabilir.
Böylece güvenlik kontrolü her release’de otomatik çalışır.
31. Golden Pipeline
Kurum bütün ekipler için standart güvenli pipeline template oluşturabilir.
Yeni proje başladığında developer güvenlik entegrasyonunu sıfırdan kurmaz.
Golden Pipeline içinde güvenlik kontrolleri varsayılan olarak gelir.
Bu hem operasyonel kolaylık hem standardizasyon sağlar.
32. Security Quality Gate
Quality Gate kabul edilemez güvenlik riskini production’a ulaşmadan engeller.
Örneğin:
Yeni Critical SAST bulgusu → Block
Active Production Secret → Block
Reachable Critical CVE → Block
Ancak her bulgu için build durdurulmamalıdır.
Risk bazlı politika gereklidir.
33. New Code Policy
Legacy sistemlerde binlerce geçmiş bulgu bulunabilir.
Bu durumda:
Yeni kod eski güvenlik borcunu artırmamalı.
prensibi kullanılabilir.
Yeni Critical ve High bulgular bloklanır.
Mevcut Security Debt ayrı planla azaltılır.
34. Security Debt Yönetimi
Security Debt görünür ve ölçülebilir olmalıdır.
Örneğin:
- toplam açık bulgu,
- overdue bulgu,
- bulgu yaşı,
- severity dağılımı,
- tekrar eden CWE
izlenebilir.
Security Debt gizli kaldığında zaman içerisinde ciddi risk birikimi oluşur.
35. Bulgu Yaşam Döngüsü
Kurumsal AppSec programında bütün bulgular ortak lifecycle kullanabilir.
Örneğin:
New
↓
Validated
↓
Assigned
↓
In Progress
↓
Fixed
↓
Retest
↓
Closed
Alternatif durumlar:
False Positive
Risk Accepted
Exception
şeklinde olabilir.
36. Merkezi Vulnerability Management
SAST, SCA, DAST ve pentest sonuçları farklı platformlardan gelebilir.
Büyük kurumlarda bütün sonuçların merkezi risk platformunda toplanması faydalıdır.
Bu yapı:
- duplicate bulguları birleştirebilir,
- severity normalize edebilir,
- owner atayabilir,
- SLA takip edebilir.
Böylece güvenlik verisi tek görünümde yönetilir.
37. Application Owner
Her uygulamanın bir sahibi bulunmalıdır.
Uygulama sahibi şu konularda sorumluluk alabilir:
- business criticality,
- remediation,
- release riskleri,
- security backlog.
Owner bilgisi AppSec sistemine bağlanmalıdır.
Aksi halde bulgunun kime atanacağı belirsiz kalabilir.
38. Security Owner
Uygulama bazında veya ekip bazında Security Champion / Security Owner tanımlanabilir.
Bu kişi AppSec ekibiyle geliştirme ekibi arasında köprü kurar.
Özellikle kritik bulguların yorumlanmasını kolaylaştırır.
39. Security Champion Programı
Security Champion modeli kurumsal AppSec ölçeklenmesinde çok değerlidir.
Her geliştirme takımından bir veya birkaç teknik kişi güvenlik konusunda daha fazla eğitim alır.
Görevleri örneğin:
- security review desteği,
- bulgu triage,
- Secure Coding paylaşımı,
- AppSec iletişimi
olabilir.
40. Security Champion Programı Nasıl Başlatılır?
İlk aşamada gönüllü veya teknik olarak güçlü geliştiriciler seçilebilir.
Bu kişilere:
- OWASP,
- Secure Coding,
- Threat Modeling,
- SAST triage
eğitimleri verilebilir.
Düzenli AppSec toplantılarına dahil edilebilirler.
Ama Security Champion tam zamanlı güvenlik uzmanı haline getirilmemelidir.
41. AppSec Ekibinin Rolü
Merkezi AppSec ekibi genel olarak:
- policy,
- tool management,
- architecture guidance,
- critical review,
- pentest management,
- developer enablement,
- metrics
alanlarında çalışabilir.
Ama her güvenlik bulgusunun manuel takibini tek başına yapmak zorunda olmamalıdır.
Otomasyon ve Security Champion yapısı ölçek sağlamalıdır.
42. Development Ekibinin Rolü
Geliştirme ekipleri:
- Secure Coding standardına uymalı,
- otomatik güvenlik bulgularını değerlendirmeli,
- remediation yapmalı,
- gerekli durumlarda riskleri AppSec’e eskale etmelidir.
Güvenlik başka departmana devredilen bir görev olmamalıdır.
43. Platform Ekibinin Rolü
Platform Engineering ekibi güvenliği kolaylaştırabilir.
Örneğin:
- güvenli pipeline,
- secrets manager entegrasyonu,
- approved base image,
- standard auth library,
- logging framework
sunabilir.
Bu yapı geliştiricinin güvenli çözümü kendisi üretmek zorunda kalmasını azaltır.
44. Paved Road
Güvenli yöntem en kolay yöntem haline getirilmelidir.
Örneğin geliştirici yeni mikroservis oluştururken hazır template kullanır.
Template zaten:
- authentication,
- logging,
- SAST,
- SCA,
- container security
içerir.
Geliştirici güvenliği ayrıca düşünmek zorunda kalmaz.
Bu yaklaşım Paved Road olarak ifade edilebilir.
45. Security by Default
Kurumsal framework güvenli davranışı varsayılan hale getirmelidir.
Örneğin:
Yeni API endpoint default authenticated.
Yeni storage default private.
Yeni database encryption default enabled.
Yeni repository SAST default active.
Bu yaklaşım insan hatasını ciddi şekilde azaltır.
46. Security by Design
Security by Design güvenliğin sistem tasarımı sırasında ele alınmasını ifade eder.
Örneğin authentication sonradan eklenen özellik olmamalıdır.
Authorization mimarisi baştan tasarlanmalıdır.
Data classification uygulama başlamadan düşünülmelidir.
Bu yaklaşım Security by Default ile birlikte güçlüdür.
47. Secure Defaults ve Developer Productivity
Güvenli varsayılanlar aynı zamanda geliştirme hızını artırabilir.
Geliştiricinin her proje için sıfırdan:
- auth,
- logging,
- secrets,
- pipeline
tasarlaması gerekmez.
Güvenli yapı hazır gelir.
Bu nedenle güvenlik her zaman yavaşlatıcı değildir.
Doğru tasarlanırsa hızlandırıcı olabilir.
48. Application Security Tiering
Her uygulamaya aynı güvenlik seviyesi uygulanması maliyetli ve verimsiz olabilir.
Bu nedenle uygulamalar sınıflandırılabilir.
Örneğin:
Tier 1
Kritik müşteri / finans / internet-facing.
Tier 2
Önemli iş uygulamaları.
Tier 3
Standart internal uygulamalar.
Tier 4
Düşük riskli yardımcı sistemler.
Her tier için farklı güvenlik kontrolleri tanımlanabilir.
49. Tier 1 Kontrolleri
Örneğin Tier 1 uygulamada:
- Threat Modeling
- Secure Coding
- SAST
- SCA
- Secret Scanning
- DAST
- Manuel Code Review
- Pentest
- SBOM
zorunlu olabilir.
Bu sadece örnektir.
Kurumun risk yapısına göre şekillendirilmelidir.
50. Tier 2 Kontrolleri
Tier 2 için:
- SAST
- SCA
- Secret Scanning
- periyodik DAST
- risk bazlı pentest
uygulanabilir.
Manuel review yalnızca kritik değişikliklerde yapılabilir.
51. Tier 3 ve Tier 4
Daha düşük riskli uygulamalarda minimum baseline uygulanabilir.
Örneğin:
- SAST
- SCA
- Secret Scanning
gibi temel otomatik kontroller yeterli olabilir.
Ama hiçbir uygulama tamamen güvenlik kontrolü dışında bırakılmamalıdır.
52. Risk-Based AppSec Nedir?
Risk-Based AppSec bütün uygulamalara eşit güvenlik kaynağı harcamak yerine en kritik varlıklara daha yüksek güvenlik derinliği uygulamayı hedefler.
Bu yaklaşım AppSec ekibinin sınırlı kaynaklarını daha verimli kullanmasını sağlar.
Pentest uzmanı internal demo uygulaması yerine kritik ödeme sistemine daha fazla zaman ayırabilir.
53. AppSec Envanteri
Kurumsal programın temeli uygulama envanteridir.
Kurum şu bilgileri bilmelidir:
- kaç uygulama var,
- owner kim,
- teknoloji stack ne,
- internet-facing mi,
- hangi veriyi işliyor,
- business criticality ne,
- son pentest ne zaman.
Bu bilgi yoksa güvenlik kapsamını yönetmek zordur.
54. Shadow Application Problemi
Merkezi envanterde olmayan uygulamalar güvenlik kontrollerinden kaçabilir.
Örneğin küçük bir ekip internal tool geliştirir.
Sonra araç müşteri verisi işlemeye başlar.
Ancak AppSec sistemine hiç dahil olmamıştır.
Bu nedenle repository discovery ve cloud inventory ile shadow application’lar tespit edilebilir.
55. Repository Discovery
Git organizasyonundaki bütün repository’ler taranabilir.
Örneğin:
- active repository,
- archived repository,
- owner,
- language,
- last commit
bilgileri çıkarılabilir.
Böylece AppSec kapsamı daha doğru belirlenir.
56. Criticality Scoring
Application criticality şu faktörlere göre belirlenebilir:
- internet exposure,
- data sensitivity,
- transaction value,
- user count,
- regulatory impact,
- business dependency.
Bu skorlama AppSec kontrol seviyesini belirlemeye yardımcı olur.
57. Data Classification ile AppSec İlişkisi
Bir uygulamanın hangi veriyi işlediği güvenlik seviyesini belirler.
Örneğin public içerik sunan site ile kişisel sağlık verisi işleyen sistem aynı riskte değildir.
Data Classification AppSec tiering modeline girdi sağlayabilir.
58. Regulatory Context
Bazı uygulamalar regülasyon veya müşteri güvenlik gereksinimlerine tabi olabilir.
Bu durum:
- pentest sıklığı,
- güvenlik kanıtları,
- code review,
- logging,
- SBOM
gibi kontrolleri etkileyebilir.
Bu nedenle GRC ve AppSec ekipleri birlikte çalışmalıdır.
59. OWASP ASVS Kullanımı
OWASP ASVS Application Security Verification Standard, kurumsal güvenlik gereksinimlerini yapılandırmak için kullanılabilir.
Authentication,
Authorization,
Session Management,
Validation,
Cryptography
gibi alanlarda kontrol gereksinimleri sunar.
ASVS Secure SDLC için güçlü referans olabilir.
60. CWE Kullanımı
CWE bulguların teknik zayıflık türlerini standardize eder.
Kurumsal programda CWE mapping sayesinde tekrar eden güvenlik hataları analiz edilebilir.
Örneğin en sık bulunan üç CWE:
- Authorization
- XSS
- Hard-coded Credential
olabilir.
Bu bilgi eğitim ve platform yatırımlarını yönlendirebilir.
61. OWASP Top 10 Kullanımı
OWASP Top 10 yönetim ve farkındalık için güçlü referanstır.
Ancak AppSec programının bütün teknik kontrollerini yalnızca Top 10 ile sınırlandırmak doğru değildir.
CWE,
ASVS,
kurumsal Secure Coding Standardı
ile birlikte değerlendirilmelidir.
62. AppSec Metrikleri
Ölçülmeyen program geliştirilemez.
Kurumsal AppSec programında birçok metrik kullanılabilir.
Örneğin:
- Security Coverage
- Open Critical Findings
- MTTR
- Security Debt
- Finding Recurrence
- Vulnerability Escape Rate
- Pentest Coverage
- SAST Coverage
- SCA Coverage
- Secret Leak Rate
Ancak metrikler doğru yorumlanmalıdır.
63. SAST Coverage
Kaç aktif repository SAST ile korunuyor?
Örneğin:
180 / 200 = %90
Bu yüksek görünürlük gösterebilir.
Ancak kalan %10 kritik uygulamalarsa risk devam eder.
Bu nedenle coverage sayı kadar criticality ile birlikte okunmalıdır.
64. SCA Coverage
Kaç uygulamanın dependency güvenliği izleniyor?
SCA kapsamı düşükse supply chain riski görünmez kalabilir.
Hedef özellikle production uygulamalarda yüksek coverage olmalıdır.
65. Secret Leak Rate
Kaç yeni secret repository’ye girdi?
Kaçı push protection tarafından engellendi?
Zaman içerisinde secret leak oranının azalması geliştirici farkındalığının arttığını gösterebilir.
66. Vulnerability Escape Rate
Geliştirme ve test süreçlerinde yakalanamayıp production’a ulaşan güvenlik açıklarının oranıdır.
Amaç zaman içerisinde bu oranı düşürmektir.
Bu AppSec programının gerçek etkinliğini gösteren önemli metriklerden biridir.
67. Mean Time to Remediate
MTTR bulgunun tespitinden kapatılmasına kadar geçen ortalama süredir.
Critical ve High bulgularda zaman içerisinde düşmesi beklenir.
Ancak yalnızca ortalama değil overdue bulgu oranı da izlenmelidir.
68. Recurrence Rate
Aynı tür güvenlik açığının tekrar oluşma oranı önemli olgunluk göstergesidir.
Örneğin SQL Injection azalıyorsa Secure Coding ve SAST kontrolü etkili olabilir.
Authorization problemleri artıyorsa daha fazla manuel ve mimari çalışma gerekebilir.
69. Security Debt
Security Debt trendi yönetim için kritik metriktir.
Toplam açık sayısı sürekli artıyorsa remediation kapasitesi yeterli değildir.
Yeni bulgu üretim hızı kapanma hızını geçmektedir.
Bu durumda engineering roadmap’e security capacity eklenmesi gerekebilir.
70. Security KPI mı KRI mı?
Bazı metrikler performans göstergesi, bazıları risk göstergesi olarak kullanılabilir.
Örneğin:
SAST Coverage → KPI
Open Critical Findings → KRI
olarak düşünülebilir.
Bu ayrım yönetim raporlamasını daha anlamlı hale getirir.
71. Developer’ı Bulgu Sayısıyla Ölçmek Doğru mu?
Genellikle risklidir.
Geliştiricileri:
“Kim daha az güvenlik açığı üretti?”
şeklinde bireysel skorlamak güvenlik bulgularının saklanmasına veya yanlış teşviklere neden olabilir.
Daha iyi yaklaşım takım ve süreç olgunluğunu ölçmektir.
Amaç cezalandırmak değil öğrenmektir.
72. Security Culture
Güvenlik kültürü, geliştiricinin açığı saklamak yerine rahatlıkla güvenlik ekibine bildirebildiği ortamdır.
Hataların bulunması normaldir.
Önemli olan aynı hatadan öğrenmektir.
Bu nedenle AppSec ekibi “security police” algısından uzak durmalıdır.
73. Güvenlik Ekibi Geliştiricinin Karşısında mı Olmalı?
Hayır.
Başarılı AppSec programında güvenlik ekibi:
enabler
rolündedir.
Geliştiriciye:
- güvenli kütüphane,
- hazır pipeline,
- code example,
- hızlı danışmanlık
sağlar.
Ama gerektiğinde kritik risklerde kontrol ve bloklama yetkisi de bulunabilir.
74. Developer Self-Service Security
Geliştiricinin güvenlik ekibine ticket açmadan birçok işlemi yapabilmesi faydalıdır.
Örneğin portal üzerinden:
- SAST sonucu,
- remediation guide,
- approved library,
- secret management rehberi
görülebilir.
Bu AppSec ekibinin ölçeklenmesini kolaylaştırır.
75. AppSec Knowledge Base
Kurum içi bilgi merkezi oluşturulabilir.
Örneğin:
SQL Injection Nasıl Düzeltilir?
JWT Güvenliği
Secure File Upload
Spring Authorization
gibi içerikler hazırlanabilir.
Böylece güvenlik bilgisi kurumsallaşır.
76. Just-in-Time Guidance
Geliştirici SAST bulgusu aldığında doğrudan ilgili kurumsal güvenlik rehberine yönlendirilebilir.
Örneğin:
CWE-89 → Kurumsal SQL Security Standardı
Bu yaklaşım eğitim ile operasyonu birleştirir.
77. Secure Coding Eğitimleri
Yıllık genel eğitim yerine teknoloji ve bulgu trendlerine göre özel eğitimler daha etkili olabilir.
Örneğin kurumda en fazla authorization problemi varsa:
Secure API Authorization
eğitimi düzenlenebilir.
Gerçek kurum bulguları anonimleştirilerek örnek kullanılabilir.
78. Hands-On Eğitim
Güvenli kodlama eğitimleri yalnızca sunumdan oluşmamalıdır.
Geliştiriciler:
- zafiyetli kodu,
- exploit mantığını,
- güvenli fix’i
uygulamalı görebilir.
Bu yöntem farkındalığı ciddi şekilde artırır.
79. Security Champion Eğitimi
Security Champion’lara daha ileri seviye eğitim verilebilir.
Örneğin:
- Threat Modeling
- SAST Triage
- OWASP ASVS
- API Security
- Security Architecture
konularında eğitim sağlanabilir.
80. AppSec Office Hours
Güvenlik ekibi belirli zamanlarda developer’lara açık danışmanlık saati düzenleyebilir.
Geliştirici:
“Bu authentication mimarisi güvenli mi?”
sorusunu proje sonunda değil tasarım aşamasında sorabilir.
Bu ciddi Shift Left avantajı sağlar.
81. Pre-Release Security Review
Kritik release öncesinde otomatik test sonuçları tek yerde değerlendirilir.
Örneğin:
SAST → Passed
SCA → Accepted
Secret Scan → Passed
DAST → Passed
Pentest → Closed Critical/High
Sonrasında release onayı verilebilir.
82. Security Sign-Off Gerekli midir?
Her uygulamada olmayabilir.
Kritik sistemlerde risk bazlı security sign-off uygulanabilir.
Ama security team her release’in manuel bottleneck’i olmamalıdır.
Mümkün olduğunca kontroller otomatik olmalıdır.
Manuel sign-off yalnızca yüksek riskli durumlarda kullanılmalıdır.
83. Continuous AppSec
Olgun modelde güvenlik tek seferlik scan değildir.
Kod değiştikçe SAST çalışır.
Dependency değiştikçe SCA çalışır.
Yeni CVE çıktığında uygulamalar yeniden değerlendirilir.
Secret push sırasında engellenir.
DAST periyodik çalışır.
Pentest kritik release’lerde yapılır.
Bu yaklaşım Continuous Application Security olarak düşünülebilir.
84. Continuous Monitoring
Production güvenliği de AppSec programının parçasıdır.
Örneğin:
- WAF,
- application log,
- SIEM,
- anomaly detection,
- runtime security
kullanılabilir.
Shift Left production güvenliğinin yerine geçmez.
85. Production Bulguları Development’a Geri Beslenmeli mi?
Evet.
Örneğin SOC bir saldırı pattern’i görür.
AppSec ekibi ilgili kod zayıflığını analiz eder.
Secure Coding standardı güncellenir.
Custom SAST rule oluşturulur.
Bu feedback loop çok değerlidir.
86. Incident to Prevention
Güvenlik olayı yalnızca incident response ile kapanmamalıdır.
Örneğin production’da credential exposure yaşandı.
Sonrasında:
- Secret Scanning,
- Push Protection,
- Vault migration,
- developer training
uygulanabilir.
Böylece incident gelecekteki riski azaltır.
87. Red Team Bulguları AppSec’e Beslenebilir mi?
Evet.
Red Team uygulama seviyesinde zayıflık veya credential kullanımı keşfedebilir.
Bu bulgu Secure SDLC kontrolüne dönüştürülebilir.
Red Team ile AppSec arasında bilgi paylaşımı olgun güvenlik programının önemli özelliğidir.
88. Bug Bounty Bulguları
Bug Bounty programı bulunan kurumlarda dış araştırmacıların bulguları da AppSec Knowledge Base’e beslenebilir.
Örneğin yeni bir authorization bypass pattern’i bulunur.
Benzer bütün uygulamalar taranabilir.
89. Security Intelligence Loop
Olgun model şöyle çalışır:
Pentest / Incident / Bug Bounty / Red Team
↓
Yeni Güvenlik Bilgisi
↓
Secure Coding Standardı
↓
SAST / DAST Rule
↓
Developer Training
↓
Prevention
Bu döngü kurumun güvenlik bilgisini sürekli büyütür.
90. Kurumsal AppSec Programı Nasıl Başlatılır?
Her şeyi aynı anda yapmak gerekmez.
Aşamalı yaklaşım daha sürdürülebilirdir.
Faz 1 – Görünürlük
Application Inventory
Pentest
Baseline SAST
SCA
Faz 2 – Standardizasyon
Secure Coding
Risk Model
Finding Lifecycle
Faz 3 – Otomasyon
CI/CD Integration
Secret Scanning
Quality Gate
Faz 4 – Ölçekleme
Security Champions
Golden Pipeline
Central AppSec Platform
Faz 5 – Olgunluk
Threat Modeling
Metrics
Continuous AppSec
Bu yapı kurumun ihtiyaçlarına göre uyarlanmalıdır.
91. İlk Adım: Envanter
Neyi koruduğunuzu bilmiyorsanız güvenlik programı kuramazsınız.
İlk olarak:
- uygulamalar,
- repository’ler,
- owner’lar,
- teknoloji stack,
- criticality
belirlenmelidir.
Bu AppSec programının temel veri setidir.
92. İkinci Adım: Baseline
Mevcut güvenlik durumunu anlamak gerekir.
Örneğin kritik uygulamalarda:
- pentest,
- SAST,
- SCA,
- secret scan
çalıştırılabilir.
Bu ilk Security Debt görünürlüğünü sağlar.
93. Üçüncü Adım: Standardizasyon
Bulgular ortak risk modeli altında yönetilmelidir.
Secure Coding standardı oluşturulmalıdır.
Developer workflow tanımlanmalıdır.
Kimin ne yapacağı net olmalıdır.
94. Dördüncü Adım: Otomasyon
Sık yapılan kontroller CI/CD içerisine taşınmalıdır.
Örneğin:
- SAST,
- SCA,
- Secret Scan
otomatik hale getirilebilir.
Bu manuel güvenlik yükünü azaltır.
95. Beşinci Adım: Risk-Based Quality Gate
Bütün bulgulara değil kritik risklere otomatik blok uygulanabilir.
Bu noktada AppSec artık release sürecinin teknik parçası olur.
96. Altıncı Adım: Ölçüm
Program için KPI ve KRI belirlenir.
Örneğin:
- SAST Coverage,
- MTTR,
- Open Critical,
- Recurrence Rate,
- Security Debt.
Zaman içerisinde gelişim ölçülür.
97. Yedinci Adım: Sürekli İyileştirme
Pentest ve incident bulguları süreçlere geri beslenir.
Yeni rule’lar oluşturulur.
Eğitimler güncellenir.
Platform standartları geliştirilir.
Program yaşayan yapıya dönüşür.
98. AppSec Programının Başarısız Olma Nedenleri
En yaygın nedenlerden bazıları:
- yalnızca tool satın almak,
- geliştiriciyi sürece dahil etmemek,
- çok fazla False Positive,
- her şeyi build blocker yapmak,
- owner tanımlamamak,
- bulguları PDF’de bırakmak,
- ölçüm yapmamak.
Başarılı program araç değil süreç odaklıdır.
99. “Security Police” Modelinin Problemi
Güvenlik ekibi yalnızca:
Hayır.
Release olmaz.
Bu açık.
diyorsa development ile çatışma oluşabilir.
Daha iyi yaklaşım:
Neden risk?
Nasıl düzeltilebilir?
Güvenli yolu nasıl kolaylaştırabiliriz?
sorularına odaklanmaktır.
100. Güvenlik Geliştirmenin Parçası Olmalı
En olgun seviyede geliştirici güvenlik kontrolünü dış bir zorunluluk gibi görmez.
Kod kalitesi gibi değerlendirir.
Örneğin unit test’in fail olması normal kabul edilir.
SAST gate’in fail olması da benzer şekilde normal development feedback haline gelir.
Bu kültürel değişim Secure SDLC’nin en önemli hedeflerinden biridir.
SecureSys Kurumsal Kod Güvenliği ve Secure SDLC Yaklaşımı
SecureSys olarak kaynak kod analizini tek başına bir güvenlik hizmeti olarak değil, daha geniş bir Application Security ve Secure SDLC yaklaşımının bileşeni olarak değerlendiriyoruz.
Bir uygulamada kaynak kod analizi gerçekleştirmek mevcut güvenlik açıklarını görünür hale getirebilir.
Ancak sürdürülebilir güvenlik için yalnızca mevcut açıkları bulmak yeterli değildir.
Asıl hedef:
bu açıkların neden oluştuğunu anlamak ve gelecekte tekrar oluşma ihtimalini azaltmaktır.
Bu nedenle proje ve kurumun olgunluk seviyesine göre aşağıdaki katmanlar birlikte ele alınabilir:
Threat Modeling
↓
Secure Coding
↓
SAST
↓
SCA
↓
Secret Scanning
↓
DevSecOps / CI-CD Security
↓
DAST / API Security
↓
Manuel Kaynak Kod Analizi
↓
Pentest
↓
Remediation ve Retest
↓
Continuous AppSec
Bu yaklaşım ile güvenlik yalnızca release öncesi yapılan bir kontrol olmaktan çıkar.
Yazılım geliştirme yaşam döngüsünün tamamına yayılır.
Aynı zamanda bütün uygulamalara aynı güvenlik yükünü uygulamak yerine Risk-Based AppSec modeli kullanılabilir.
Kritik finansal veya internet-facing uygulamalar daha derin:
- Threat Modeling,
- Manuel Code Review,
- Pentest
kontrollerine tabi tutulabilir.
Daha düşük riskli uygulamalarda otomatik SAST, SCA ve Secret Scanning baseline güvenliği sağlayabilir.
Programın uzun vadeli başarısı için teknoloji kadar insan ve süreç de önemlidir.
Bu nedenle:
Security Champion
Secure Coding Training
Developer Security Guidance
Finding Management
Security Metrics
yapıları da kurumsal modele dahil edilmelidir.
Hedef çok sayıda güvenlik ürünü kullanmak değildir.
Hedef:
doğru güvenlik kontrolünü doğru uygulamaya, doğru zamanda ve doğru derinlikte uygulamaktır.
SecureSys Yaklaşımında Önerilen Kod Güvenliği Yaşam Döngüsü
Örnek kurumsal model şu şekilde kurgulanabilir:
1. Uygulama Envanteri
Tüm aktif uygulamalar ve repository’ler belirlenir.
2. Kritiklik Sınıflandırması
Business criticality, internet exposure ve data sensitivity değerlendirilir.
3. Secure Coding Baseline
Geliştirme ekipleri için ortak güvenlik standartları oluşturulur.
4. Otomatik Kod Güvenliği
SAST, SCA ve Secret Scanning devreye alınır.
5. DevSecOps
Kontroller CI/CD pipeline’ına entegre edilir.
6. Kritik Uygulama Analizi
Manuel code review ve pentest uygulanır.
7. Bulgu Yönetimi
Risk bazlı remediation ve SLA süreçleri işletilir.
8. Retest
Critical ve High bulgular doğrulanır.
9. Kurumsal Öğrenme
Tekrar eden CWE ve root cause’lar analiz edilir.
10. Prevention
Yeni SAST rule, Secure Coding standardı veya platform kontrolü oluşturulur.
Bu döngü tekrar ettikçe güvenlik olgunluğu artar.
Sık Sorulan Sorular
Secure SDLC nedir?
Secure SDLC, güvenliğin yazılım geliştirme yaşam döngüsünün planlama, tasarım, geliştirme, test, release ve production aşamalarının tamamına entegre edilmesidir.
Application Security Programı nedir?
Kurumun uygulama güvenliği risklerini sürekli olarak yönetmek için oluşturduğu politika, süreç, teknoloji, insan ve ölçüm yapılarının tamamıdır.
Kaynak kod analizi Secure SDLC’nin neresindedir?
Kaynak kod analizi geliştirme ve test aşamalarında kritik rol oynar ancak Threat Modeling, Secure Coding, SCA, DAST ve pentest gibi diğer kontrollerle birlikte kullanılmalıdır.
Her uygulamaya aynı güvenlik kontrolü uygulanmalı mı?
Hayır. Risk-Based AppSec yaklaşımıyla uygulamanın kritikliği, işlediği veri ve internet exposure seviyesine göre farklı güvenlik derinlikleri uygulanabilir.
Security Champion nedir?
Geliştirme ekibi içerisinde güvenlik konusunda ek sorumluluk ve eğitim alan, AppSec ekibiyle geliştiriciler arasında köprü görevi gören teknik ekip üyesidir.
Secure Coding Standardı neden gereklidir?
Geliştiricilerin tekrar eden güvenlik hatalarını azaltmak için ortak güvenli kodlama kuralları sunar.
SAST, SCA ve Secret Scanning yeterli midir?
Temel otomatik kod güvenliği için güçlü bir başlangıçtır ancak kritik uygulamalarda manuel code review, DAST, API Security ve pentest gibi ek kontroller gerekebilir.
DevSecOps ile Secure SDLC aynı şey midir?
Hayır. DevSecOps özellikle güvenlik kontrollerinin DevOps ve CI/CD süreçlerine entegrasyonuna odaklanır. Secure SDLC yazılım yaşam döngüsünün daha geniş kısmını kapsar.
Application Security nasıl ölçülür?
SAST/SCA coverage, MTTR, açık Critical bulgu sayısı, Security Debt, Recurrence Rate ve Vulnerability Escape Rate gibi metrikler kullanılabilir.
İyi AppSec programının temel hedefi nedir?
Yalnızca daha fazla güvenlik açığı bulmak değil, güvenlik açıklarını daha erken tespit etmek ve aynı tür zafiyetlerin tekrar oluşmasını azaltmaktır.
Sonuç: Güvenli Yazılım Bir Test Sonucu Değil, Kurumsal Yetkinliktir
Bu serinin başında basit bir soruyla yola çıktık:
Kaynak Kod Analizi nedir?
Ancak yolculuk ilerledikçe gördük ki kaynak kod güvenliği tek bir tarama işleminden çok daha fazlasıdır.
Kod içerisinde güvenlik açığı oluşabilir.
SAST bu açığı erken tespit edebilir.
Ancak SAST her şeyi göremez.
Manuel analiz business logic’i değerlendirebilir.
SCA açık kaynak dependency’lerin risklerini görünür hale getirir.
Secret Scanning kod içerisinde unutulan credential’ları tespit eder.
DAST çalışan uygulamanın davranışını test eder.
Pentest gerçek saldırgan perspektifi sağlar.
DevSecOps bütün bu kontrollerin önemli bölümünü yazılım geliştirme sürecine taşır.
Remediation süreci bulguların gerçekten kapanmasını sağlar.
Security Champion modeli güvenlik bilgisini geliştirme ekiplerinin içerisine yayar.
Secure SDLC ise bütün parçaları tek bir yaşam döngüsünde birleştirir.
Sonuçta ortaya çıkan yapı yalnızca bir kaynak kod analizi hizmeti değildir.
Kurumsal yazılım güvenliği yetkinliğidir.
Olgun bir organizasyonda güvenlik ekibi release’in sonunda ortaya çıkıp:
“Bu uygulama güvenli mi?”
diye sormaz.
Güvenlik proje başladığı anda masadadır.
Mimari tasarlanırken vardır.
Kod yazılırken vardır.
Pull Request açılırken vardır.
Build oluşturulurken vardır.
Production’a çıkarken vardır.
Ve uygulama çalışırken de devam eder.
İşte Secure SDLC’nin gerçek anlamı budur.
Güvenliği yazılım geliştirme sürecinin sonuna eklemek değil;
yazılım geliştirme sürecinin kendisini güvenli hale getirmek.
Bu nedenle kaynak kod güvenliği yolculuğunun son cümlesi aslında ilk bölümdeki ana mesajımıza geri dönmektedir:
Güvenlik production ortamında başlamaz.
Güvenlik ilk kod satırıyla başlar.
Ve kurumsal olgunluk seviyesinde buna bir cümle daha eklemek gerekir:
Güvenli kod bir geliştiricinin bireysel başarısı değil, kurumun oluşturduğu güvenli yazılım geliştirme sisteminin sonucudur.
İlgili Makaleler
Kaynak Kod Analizi (Kod Güvenliği)

Kaynak Kod Analizi Nedir? SAST ve Kod Güvenliği Rehberi
Kaynak kod analizi nedir, SAST nasıl çalışır ve kod güvenliği neden altyapıdan önce gelir? Kavramlar, yöntemler ve kurumsal yaklaşım.

Güvenlik Açıkları Daha Kod Yazılırken Başlar: Secure Coding ve Secure SDLC Rehberi
Güvenlik açığı üretimde doğmaz; tasarım ve kod aşamasında oluşur. Secure Coding, Shift Left, DevSecOps ve Secure SDLC rehberi.

SAST Nedir? Static Application Security Testing Nasıl Çalışır?
SAST nedir, nasıl çalışır? Source-Sink, taint analysis, false positive, CI/CD entegrasyonu ve araç seçimi tek rehberde.

SAST Tek Başına Yeterli mi? Otomatik Tarama ve Manuel Kaynak Kod Analizi
SAST otomasyonu neyi görür, neyi göremez? Business logic açıkları, false positive/negative ve manuel kod analizinin rolü.

Kod İçindeki Kritik Güvenlik Açıkları: CWE ve OWASP Perspektifi
Kaynak kodda en kritik güvenlik açıkları: Injection, XSS, Broken Access Control, SSRF ve daha fazlası — CWE ve OWASP perspektifiyle.

Secret, API Key ve Hassas Veri Sızıntıları: Kod Depolarında Görünmeyen Tehlike
Kod depolarındaki görünmeyen tehlike: secret, API key ve credential sızıntıları — tespit, rotation ve Secrets Management.
Bu konuda profesyonel destek mi arıyorsunuz?
Uzman ekibimiz ücretsiz danışmanlık için sizi en kısa sürede arasın.