Uygulama Güvenlik Testi : SAST ve DAST

Aytencantaş
ParamTech
Published in
3 min readMay 26, 2023

Merhaba arkadaşlar,

Bu makalede, Uygulama Güvenlik Testi’nin ne olduğunu, nasıl çalıştığını, neden önemli olduğunu ve en yaygın kullanılan yöntemlerden ikisini ele alacağız.

Uygulama Güvenliği Testine geçmeden önce kısaca uygulama güvenliğinden bahsedecek olursak;

Uygulama güvenliği, bir uygulamanın gizlilik, bütünlük ve erişilebilirlik açısından güvende olduğundan emin olmak için kullanılır. Bu kapsamda uygulamanın doğru şekilde geliştirilmesi, test edilmesi ve yayınlanması, uygulamanın güvenliği açısından kritik önem taşır.

Uygulama güvenliği, uygulamanın kullanıcıları tarafından kullanımı sırasında ortaya çıkabilecek birçok tehdide karşı korunmasını sağlar. Bunlar arasında, kimlik avı (phishing) saldırıları, kötü amaçlı yazılım(malware) saldırıları, SQL enjeksiyonu ve diğer çeşitli web tabanlı saldırılar yer almaktadır. Bu tehditlere karşı uygulamaların güvenliği için düzenli olarak güncelleme ve yama yayınlanmalıdır.

Ayrıca, uygulama güvenliği, uygulamanın verilerinin güvenliğini de sağlar. Verilerin şifrelenmesi, güvenliği sağlanması ve kullanıcıların verilerinin çalınmasını önlemek için güvenli bir şekilde depolanması gibi adımlar uygulanabilir.

Uygulama Güvenlik Testi (AST)

Yazılım uygulamalarının güvenlik açıklarını tespit etmek, değerlendirmek ve gidermek için kullanılan test yöntemlerini içerir. AST, uygulamaların güvenlik kontrollerini, veri bütünlüğünü, kimlik doğrulamasını, yetkilendirme süreçlerini ve diğer güvenlik özelliklerini sağlar.

AST, genellikle iki ana kategoriye ayrılır:

  1. Dinamik AST: Canlı bir ortamda uygulama testi yapar ve gerçek zamanlı sonuçlar sağlar. Bu tür testler, uygulamanın çalışma zamanındaki davranışını analiz ederek olası güvenlik açıklarını ortaya çıkarır. Penetrasyon testleri ve güvenlik açığı taramaları (vulnerability scanning) dinamik AST’nin birer örneğidir.
  2. Statik AST: Uygulama kaynak kodunu analiz eder ve olası güvenlik açıklarını tespit etmek için teknikler kullanır. Statik AST, uygulama geliştirme sürecinin erken aşamalarında kullanılabilir. Statik kod analizi ve beyaz kutu testleri (white-box testing) statik AST yöntemlerine örnek olarak verilebilir.

AST’nin Önemi

  1. Zayıf Noktaların Tespiti: AST, uygulamaların olası güvenlik açıklarını tespit etmeye yardımcı olur. Bu sayede, saldırganların bu açıkları kullanarak uygulamalara zarar vermesi önlenebilir.
  2. Veri Koruma: Veri sızıntıları gibi güvenlik ihlalleri ciddi sonuçlara yol açabilir. AST, bu tür tehlikeleri en aza indirgemek için uygulamaların güvenlik seviyelerini artırmasına yardımcı olur.
  3. Maliyet ve Zaman Tasarrufu: AST, güvenlik açıklarının erken tespiti sayesinde daha az maliyetli ve zaman tasarruflu bir güvenlik süreci sağlar.
  4. Yasal ve Düzenleyici Uyum: Birçok sektörde, uygulamaların belirli güvenlik standartlarına uyması gerekmektedir. AST, bu standartları karşılamak için gereken güvenlik önlemlerini belirlemeye yardımcı olur.

Statik Uygulama Güvenlik Testi (Static Application Security Testing)

Uygulama güvenliği testlerinin bir yöntemidir ve geliştirme sürecinin erken aşamalarında uygulanır. Bu yöntem, uygulama kaynak kodunu analiz ederek olası güvenlik açıklarını tespit etmeyi amaçlar. Statik analiz araçları, kaynak kodu derleme veya çalıştırma gerektirmeden, yazılımın iç yapısını inceler ve olası zayıflıkları veya hataları belirler. Bu yöntem, enjeksiyon saldırıları, kimlik doğrulama zayıflıkları ve güvenlik ayarlarının yanlış yapılandırılması gibi birçok yaygın güvenlik açığını Checkmarx ve Fortify araçlarıyla tespit edebilir.

Statik Uygulama Güvenlik Testi (SAST) Avantajları ve Dezavantajları

SAST’ın birçok avantajı vardır. İlk olarak, uygulama geliştirme sürecinin erken aşamalarında kullanıldığında, güvenlik açıkları hızlı bir şekilde tespit edilebilir ve düzeltilmesi daha kolay olur. İkinci olarak, SAST otomatik bir süreç olduğu için insan hatalarının önüne geçebilir ve güvenlik analizini daha kapsamlı hale getirebilir. Bununla birlikte, SAST’ın bazı dezavantajları da vardır. Örneğin, SAST yalnızca kod düzeyindeki güvenlik açıklarını tespit edebilir ve çalışma zamanı hatası gibi dinamik güvenlik tehditlerini yakalayamaz.

Dinamik Uygulama Güvenliği Testi (Dynamic Application Security Testing)

DAST, uygulama güvenliği testlerinin bir başka yöntemidir ve uygulamanın çalışma zamanında gerçekleştirilir. Canlı bir ortamda uygulama üzerinde gerçekleştirilen testler aracılığıyla olası güvenlik açıklarını tespit etmeyi amaçlar. DAST ayrıca oturum yönetimi, yetkilendirme, veritabanı güvenliği gibi alanlarda da testler yapabilir. Bu testler, uygulamayı gerçek bir saldırganın saldırılarına benzetmeye çalışır ve uygulama üzerinde farklı saldırı yöntemlerini kullanarak güvenlik açıklarını ortaya çıkarır.

Dinamik Uygulama Güvenliği Testi (DAST) Avantajları ve Dezavantajları

Dast’ın avantajlarından biri uygulamanın gerçek çalışma zamanındaki davranışını test eder. Diğer avantajı ise gerçek saldırı senaryolarını simüle ederek, gerçek dünyadaki güvenlik açıklarını tespit edebilir. Bunun yanı sıra dezavantajları arasında test süreci uygulamanın çalışma zamanında gerçekleştiği için, uygulamanın hızlı yanıt verememesine veya çökmesine neden olabilir. Aynı zamanda test süreci, manuel olarak yapıldığında zaman kaybı ve kaynak yoğunluğu olabilir.

Sonuç olarak, her iki yöntemin de avantajları ve dezavantajları vardır ve genellikle birlikte kullanıldıklarında daha etkili sonuçlar elde edilebilir. SAST, geliştirme sürecinin erken aşamalarında uygulanarak güvenlik açıklarının erken tespit edilmesine yardımcı olurken, DAST uygulamanın gerçek zamanlı çalışması sayesinde güvenlik açıklarını tespit eder.

--

--