Skip to main content

Kaynak Kod Analizi ve Secure Code Review

SAST bir pattern yakalar. Deneyimli bir reviewer ise verinin nereden geldiğini, hangi trust boundary'den geçtiğini, kontrolün neden atlandığını ve açığın hangi kullanıcı rolünde gerçek etki oluşturduğunu anlar. SECNODEX Kaynak Kod Analizi hizmeti otomatik analiz ile manuel Secure Code Review yaklaşımını aynı çalışma içinde birleştirir. Hedefimiz yalnızca sorunlu satırı işaretlemek değil; root cause'u açıklamak ve geliştiricinin kod tabanına uygun bir remediation yolu sunmaktır.

Hızlı İletişim

Hizmet Talebinizi Bırakın

Talebinizi iş günü içinde inceler, ihtiyacınızı netleştirecek kapsam görüşmesini ekibimizle birlikte planlarız.

Bilgileriniz KVKK kapsamında yalnızca talebinizi değerlendirmek amacıyla işlenir.

Kaynak Kod Analizi Nedir?

Otomasyon genişlik, manuel review ise bağlam ve derinlik sağlar; ikisi birbirinin yerine geçmez.

  • Business logic abuse ve kritik iş kuralı hataları
  • Karmaşık authorization ve multi-tenant veri izolasyonu
  • Birden fazla service'e yayılan trust boundary sorunları
  • Runtime configuration ve deployment kaynaklı davranışlar
  • Framework'e özel custom wrapper ve abstraction'lar
  • Gerçek exploitability ve business impact değerlendirmesi
  • Kodda görünmeyen WAF, gateway veya identity provider etkileri

Kaynak Kod Analizi, bir uygulamanın güvenlik kontrollerini implementation seviyesinde değerlendiren çalışmadır. Kullanıcı girdisinin uygulama boyunca izlediği data flow, authorization kararlarının verildiği noktalar, hassas veri işleme, cryptography kullanımı, error handling ve güvenli olmayan API çağrıları incelenir.

Çalışmanın iki tamamlayıcı katmanı vardır. Otomatik analiz (SAST, SCA, secret scanning ve gerektiğinde IaC scanning) geniş kod tabanında tekrar eden pattern'leri hızlı biçimde bulmaya yardımcı olur ve coverage sağlar; ancak sonuçlar false positive ve false negative içerebilir. Manuel Secure Code Review ise reviewer'ın mimariyi, trust boundary noktalarını ve kritik iş akışlarını anlayarak kodu bağlam içinde incelemesidir. Business logic, tenant isolation, role transition ve çok adımlı authorization sorunları çoğu zaman bu katmanda görünür hâle gelir.

SAST araçları data flow, taint propagation, riskli function kullanımı, hard-coded secret ve belirli injection pattern'leri için güçlü coverage sunabilir. Ancak doğruluk kullanılan language, framework, rule set ve build context'e bağlıdır. SAST'ın sıklıkla zorlandığı alanlar şunlardır:

Hangi Güvenlik Problemlerini İnceliyoruz?

İnceleme, uygulamanın en yüksek riskli code path'lerine odaklanır. Aşağıdaki alanlar kod bağlamında ve gerçek etkiye göre değerlendirilir.

Authentication ve Session

Login, MFA, password reset, token üretimi, session invalidation, account recovery ve authentication state geçişleri incelenir; kontrollerin yalnızca UI tarafında kalıp kalmadığı değerlendirilir.

Authorization ve Tenant Isolation

Role check, object ownership, permission inheritance, administrative action ve multi-tenant veri erişimi code path üzerinden izlenir. IDOR ve privilege escalation risklerinin root cause'u çoğu zaman bu alandadır.

Injection ve Tehlikeli Sink Noktaları

SQL, OS command, template, LDAP, NoSQL ve benzeri interpreter sınırlarına ulaşan veriler incelenir; parametrization, context-aware encoding ve güvenli API kullanımı değerlendirilir.

SSRF ve Outbound Request

Kullanıcı kontrollü URL, webhook, image fetcher, import ve callback akışlarında parsing, redirect, DNS resolution, network egress ve cloud metadata korumaları incelenir.

Serialization ve File Processing

Untrusted deserialization, archive extraction, file path kontrolü, upload doğrulaması, content type güveni ve parser davranışları değerlendirilir.

Cryptography ve Secret Yönetimi

Hard-coded secret, zayıf key yönetimi, nonce/IV hataları, güvenli olmayan random üretimi, custom cryptography ve hassas verinin loglanması gibi riskler incelenir.

Business Logic

Fiyat, limit, onay, durum geçişi, kupon, ödeme, envanter ve workflow kontrolleri yalnızca syntax üzerinden anlaşılamaz; kritik iş kuralları mimari ve kullanım senaryosu içinde değerlendirilir.

Dependency ve Supply Chain

Third-party package kullanımı, version pinning, bilinen zafiyetler ve riskli dependency davranışları SCA çıktılarıyla desteklenir. Dependency bulunması tek başına exploitability kanıtı değildir.

İki Tamamlayıcı Katman

Otomasyon ve manuel review birbirinin yerine geçmez; genişlik ile bağlamı aynı çalışmada birleştirmek için ikisi birlikte kullanılır.

01

Otomatik Analiz

SAST, SCA, secret scanning ve gerektiğinde IaC scanning geniş kod tabanında tekrar eden pattern'leri hızlı bulur. Bu katman coverage sağlar; sonuçlar reviewer tarafından doğrulanmadan nihai kabul edilmez.

02

Manuel Secure Code Review

Reviewer mimariyi, trust boundary noktalarını ve kritik iş akışlarını anlayarak entry point'ten sink noktasına data flow izler. Business logic, tenant isolation ve çok adımlı authorization sorunları burada görünür hâle gelir.

Referans Çerçeveler

Bulgular tanınan güvenlik standartlarıyla eşleştirilir; her bulgu CWE ve ilgili OWASP ASVS kontrolüyle birlikte, dosya ve satır referansı verilerek raporlanır. Ham scanner çıktısı nihai raporun yerine geçmez.

Çalıştığımız Standartlar

  • OWASP ASVS v5.0.0
  • OWASP Code Review Guide
  • OWASP SAMM
  • NIST SSDF v1.1
  • CWE
  • OWASP Top 10
  • OWASP API Security Top 10 2023

Kaynak Kod Analizi Çıktıları

  • Yönetici özeti ve review edilen commit bilgisi

  • Teknik bulgu raporu: dosya, function ve satır referansları

  • Data flow ve örnek attack path açıklaması

  • CWE ve OWASP ASVS eşleştirmeleri

  • Risk önceliği ve business context

  • Root cause analizi

  • Framework'e uygun remediation önerisi (evrensel snippet dayatmadan)

  • Teknik review oturumu ve re-review sonucu (kapsama göre)

SECNODEX Kaynak Kod Analizi Süreci

  1. 1

    Scope ve Erişim Modeli

    Repository, branch, commit, service, language, framework ve hariç tutulan alanlar belirlenir. Review yapılacak kod sürümü hash veya commit ID ile sabitlenir; erişim, NDA, retention ve proje sonu imha adımları netleştirilir.

  2. 2

    Architecture ve Threat Briefing

    Kritik veri, kullanıcı rolleri, authentication yapısı, trust boundary noktaları ve yüksek riskli iş akışları teknik ekiple birlikte çıkarılır.

  3. 3

    Otomatik Analiz

    Kod tabanına uygun SAST ve yardımcı analizler çalıştırılır; rule set ve build gereksinimleri proje yapısına göre düzenlenir. Araç seçimi teklif aşamasında kesinleştirilir.

  4. 4

    Manuel Secure Code Review

    Entry point'ten sink noktasına data flow izlenir. Authorization ve business logic kontrolleri, güven sınırları ve riskli implementation kararları manuel olarak incelenir.

  5. 5

    Validation ve Risk Bağlamı

    Potansiyel bulgular code context içinde doğrulanır. Uygun ve güvenli olduğunda test ortamında runtime validation yapılabilir; production üzerinde izinsiz test yapılmaz.

  6. 6

    Developer-Ready Raporlama ve Oturum

    Dosya/satır referansı, riskli pattern, örnek attack path, root cause ve güvenli remediation yaklaşımı sunulur. Kritik bulgular geliştirici ve AppSec ekipleriyle ele alınır; re-review kapsamı sözleşmeye göre uygulanır.

Kaynak Kod Analizi Hangi Durumlarda Öne Çıkar?

Canlıya çıkmadan önce implementation seviyesinde assurance isteyen yazılım ekipleri

Authorization, tenant isolation ve business logic riski yüksek uygulamalar

SAST çıktısı bulunan ancak sonuçların bağlamlandırılması gereken ekipler

Kritik veri işleyen finans, sağlık, e-ticaret ve SaaS uygulamaları

Secure SDLC ve düzenli Secure Code Review programı kuran organizasyonlar

Yüksek riskli sürümlerde sızma testiyle birlikte güçlü güvence hedefleyen kurumlar

Kaynak Kod Analizi Neyi Garanti Etmez?

Aşağıdaki başlıklar kaynak kod analizinin kapsamı dışındadır veya ayrı bir çalışma gerektirir; beklenti netliği için baştan tanımlanır.

  • SAST sonucu tek başına "uygulama güvenlidir/güvensizdir" kararı vermez; bağlamlandırma gerekir.
  • Ham scanner çıktısı nihai raporun yerine geçmez.
  • Kod analizi production davranışını tamamen göstermez; runtime configuration, network control, identity provider, gateway ve cloud permission ayrı test gerektirebilir.
  • Dependency'nin bulunması tek başına exploitability kanıtı değildir.
  • Kod tabanına hâkim olunmadan genel bir "tüm diller" vaadi verilmez.
  • Production kod değişikliği veya Pull Request teslimi default kapsam değildir; ayrı scope ve sorumluluk modeli tanımlanır.

Application Security Hakkında Sıkça Sorulan Sorular

Hangi programlama dillerini inceliyorsunuz?

Language ve framework kapsamı proje öncesi teknik feasibility değerlendirmesiyle doğrulanır. Kod tabanının tamamına hâkim olunmadan genel bir "tüm diller" vaadi verilmez.

Kaynak kodumuz kurum dışına çıkar mı?

Erişim ve işleme modeli sözleşmede tanımlanır. Kurum içi kontrollü erişim, müşteri tarafından sağlanan VDI veya sınırlandırılmış repository erişimi gibi seçenekler değerlendirilebilir.

SAST sonucu zaten varsa manuel review gerekli mi?

SAST sonucu iyi bir başlangıçtır. Ancak authorization, business logic, custom framework ve gerçek risk bağlamı için manuel Secure Code Review gerekir.

Tüm repository'yi incelemek zorunda mısınız?

Hayır. Risk tabanlı scope ile kritik service, module, authentication, authorization veya data processing alanları seçilebilir. Hariç tutulan alanlar raporda açıkça belirtilir.

Geliştiriciye düzeltme kodu veriyor musunuz?

Güvenli pattern ve uygulamaya uygun örnek yaklaşım paylaşılır. Production kod değişikliği veya Pull Request teslimi isteniyorsa ayrıca scope ve sorumluluk modeli tanımlanır.

Kod analizi production davranışını tamamen gösterir mi?

Hayır. Runtime configuration, network control, identity provider, gateway ve cloud permission gibi katmanlar ayrı test gerektirebilir.

Re-review yapıyor musunuz?

Teklifte yer alan kapsama göre düzeltilen code path yeniden incelenebilir. Review edilen yeni commit bilgisi sonuçla birlikte kaydedilir.

Siber güvenlik çalışmanızı
SECNODEX ile planlayın

İhtiyacınız tek bir uygulamanın testinden kurum genelinde bir Red Team çalışmasına kadar uzanabilir. Ekibimiz scope’u, kritik varlıkları ve beklenen çıktıları sizinle netleştirir. Ardından iş hedefinize ve risk önceliklerinize uygun, sınırları belirlenmiş bir çalışma planı sunar.