DAST

Ece Alptekin
7 min readDec 2, 2019

Dynamic Application Security Testing

Yazılımcılar günümüzde kaynak koduna ulaşmadan web uygulamalarının güvenliğini denetlemek için “Black-Box Testing”i kullanmaktadırlar. Böylelikle web uygulamalarını dışarıdan değerlendirerek bir hacker’ın izleyeceği adımları takip etmektedirler. DAST Tool’u, web uygulamalarının, web sitelerinin güvenlik açıklarına saldırganlardan önce ulaşabilmek için uygulamaları tarar ve güvenlik açıklarını tespit eder. Daha sonra yazılımcıya bir rapor halinde bulduğu tehditleri sunar. Böylelikle meydana gelebilecek maddi kayıpların önüne geçilir.

Black-Box Testing

“Black-Box Testing” bir yazılım denetleme yöntemidir. Test görevlisi test edilen aracın içyapısı, iç tasarımı ve implementasyonu hakkında bilgi sahibi değildir. Bundan dolayı web servisi veya web uygulaması görevli için bir “kara kutu” olarak betimlenmektedir. Bu metotla ara yüz, uygulamayı başlatma ve sonlandırma, performans ve veri yapısı hataları bulunabilir. Black-Box Testing ile web sayfaları tarayıcı yardımıyla test edilir. Veri girişi yapılır. Daha sonra beklenen çıktı değerleriyle elde edilen değerler karşılaştırılır. Test görevlisi uygulamada kullanılan dili bilmek zorunda değildir. Hatalar testin erken aşamalarında tespit edilebilir. Buna karşın, az miktarda veri girişi yapılabilmektedir. Bu sebeple uygulamanın test edilmeyen alanları kalabilir. Ek olarak, uygulama için oluşturulan test koşulları karmaşık yapılı olabilir.

DAST Tool’u

DAST Tool’u çalışan bir uygulamadaki SQL Injection, Cross-­Site Scripting (XSS) gibi potansiyel güvenlik açıklarını tespit eder. Özellikle sunucu yapılandırma hatalarının ve kimlik doğrulama sorunlarının tespitinde başarılıdır. DAST Tool’u bir web uygulamasında kullanıcının ulaşabildiği çoğu erişim noktasını test eder. Böylece, saldırganların olası atakları simüle edilir.

DAST’ın Avantajları

DAST Tool’u uygulamaya dışarıdan bağlandığı için uygulamanın teknolojisinden ve dilinden bağımsız olarak çalışır. Herhangi bir programlama diliyle birlikte kullanılabilmektedir. Sürekli entegrasyon pipeline’ları ile uyumlu çalışmaktadır. DAST Tool’u, uygulamanın karmaşık yapısını tarar (web sunucuları, proxies, databases, caches etc.) ve potansiyel konfigürasyon problemlerini saptar. Yalnızca kodun taranması ile gözlemlenemeyecek tehditleri tespit eder.

DAST’ın Dezavantajları

DAST Tool’u bazen yanlış sonuç verebilmektedir. Zararlı olabilecek ve zararsız olan unsurları ayırt etmek de sorun yaşayabilir. DAST Tool’u JavaScript kodlarını hatalı çözümleyebilir. Bu sebeple kullanıcıya sunulan raporda aslında tehdit oluşturmayan unsurlar görülebilir. Dolayısıyla, kullanıcı test sonuçlarını tekrar gözden geçirmeli ve “false positive’leri” elemelidir. DAST Tool’ları uygulamayı yalnızca dışarıdan inceler. Uygulamanın içeriği ve kodu hakkında bilgi sahibi değildir. Her kod değişikliğinden sonra yapılan derleme DAST Tool’unun çalışmasına olanak sağlamaktadır. Büyük projeler için DAST Tool’ları özel testlere ve uygulamanın birden fazla örneğine ihtiyaç duyabilir. Böylece farklı giriş verileriyle uygulama çalıştırılabilir. Bazı DAST Tool’ları uygulamanın tamamını değerlendiremeyebilir. Bu durumda uygulamanın bazı alanlarındaki tehditler gözden kaçabilir. Bu sebeple DAST Tool’unun uygulamanın tamamına entegre olduğundan emin olmak ve Tool’un kapsama alanını uygulama ile eş zamanlı olarak arttırmak gerekir.

DAST ve SAST

SAST ve DAST uygulamaların güvenliğinin test edilmesinde kullanılmaktadır. SAST “White-Box Testing” metodunu kullanırken DAST ise “Black-Box Testing” kullanmaktadır. SAST, kodu inceleyerek güvenlik açıklarını bulur. SAST’ın framework’e ve iç tasarıma erişimi vardır. DAST ise uygulama çalıştığı sırada saldırganların kullanabileceği tehdit unsurlarını bulmayı hedefler. DAST, uygulamanın teknolojisi ve framework’ler hakkında bilgi sahibi değildir. SAST ve DAST farklı türde güvenlik açıklarını tespit eder. SLDC(Software Development Life Cycle)’nin farklı evrelerinde etkili olurlar. SAST erken evrelerde kaynak kodunu içeren tüm dosyalarda performans gösterir. DAST ise uygulama kullanılırken sonuç verir. SAST için uygulamanın çalıştırılmasına gerek yoktur. DAST için ise kaynak kodu gerekli değildir. Tehdit unsurlarının ortadan kaldırılması SAST ile kolay ve hızlıdır. Çünkü SAST, DAST’tan daha erken evrede etkin olmaktadır. Böylece tehdidi daha erken tespit edebilir. Güvenlik açıkları uygulama QA Cycle’a girmeden önce düzeltilebilir. DAST’ta ise bu açıklar SDLC’nin son evrelerinde tespit edildiğinden dolayı hataların düzeltilmesi genellikle sonraki döngüye aktarılmaktadır. SAST, statik kodu taradığından dolayı run-time hataları tespit edememektedir. DAST ise dinamik analiz yaptığından dolayı bu hataları tespit edebilir. SAST genellikle birçok yazılımı desteklemektedir. Buna karşın, DAST yalnıza web uygulamaları ve servislerini tarayabilmektedir. Bu sebeplerden dolayı SAST ve DAST’ın birlikte kullanılması en iyi sonucu vermektedir.

DAST Tool’ları

Netsparker

Netsparker tarayıcısı kullanıcılarına platformdan bağımsız olarak güvenlik açıklarını tespit etmeyi vadetmektedir. Bir güvenlik açığı bulunduğu takdirde Netsparker kullanıcıya bu tehdidin hatalı olmadığına dair kanıt sunar. Müşterilerin kullanım alanlarına göre Netsparker birden fazla varyasyonda piyasaya sürülmüştür. Netsparker, Samsung, NASA, Microsoft, ING ve Ernst/Young gibi kurumlarda güncel olarak kullanılmaktadır. Yapılan her taramanın sonucunda kullanıcıya rapor sunmaktadır. Farklı standartlara göre tehditlerin sınıflandırmasını yapmaktadır. Siteler arası komut dosyası oluşturma gibi tehditleri tespit edilebilmektedir. Netsparker’ın, detaylı bir tarama yapması uzun süre alabilmektedir. Bu sürede bilgisayarın fiziksel kaynaklarını hızlı tüketebilmektedir. Farklı rapor türleri oluşturabilir. Ayrıca, GitHub ile entegre olabilmektedir. Netsparker, kullanıcılarına 3 varyasyon sunmaktadır: Standard, Team, Enterprise. Yirmi web sitesi için yıllık olarak Standard 11.995 dolar, Team 16.995 dolar, Enterprise ise özel olarak ücretlendirilmektedir. Team CI/CD entegrasyonu sağlarken, Standard’da bu özellik bulunmamaktadır. Standard ile en fazla yirmi, Team ile en fazla elli, Enterprise ile ise elli ve daha fazla web uygulaması taranabilmektedir. Standard’da API erişimi komut satırı ile, Team ve Enterprise’da REST API ile sağlanmaktadır.

Acunetix Vulnerability Scanner

Acunetix, HTML5, JavaScript ve Tek Sayfa uygulamaları (SPA’lar) dahil olmak üzere web uygulamalarının otomatik olarak taranmasında ve denetlenmesinde görevlidir. OWASP standardına göre web uygulamaları test edilir. SQLI ve XSS gibi güvenlik açıklarını saptar. Bunların önüne geçebilmek için rapor oluşturur. Bu raporlar diğer DAST Tool’larına kıyasla daha ayrıntılı olarak sunulur. Kullanıcılar geri bildirimlerinde web uygulamasının taranması çok detaylı olduğundan dolayı uzun zaman aldığı belirtmişlerdir. Aynı zamanda bu süre zarfında Acunetix web sitesini yavaşlatmakta ve sunucuya fazla yük vermektedir. Bu sebeple rapor sonuçları yanlış olabilmektedir. Dolayısıyla sonuçlar mutlaka kontrol edilmelidir. Acunetix kullanımında belirtilen bir diğer problem ise web sunucusuyla iletişim kurulduğunda bilgisayarın kaynaklarının hızlı bir şekilde tüketilmesidir. Internet bağlantısı yeterli olmadığı takdirde çalışma durabilmektedir. Bunlara ek olarak, fiyatlandırmanın şirketin ihtiyaçları doğrultusunda değerlendirilmesi kullanıcılar tarafından talep edilmektedir. Acunetix, günümüzde devlet, askeri, eğitim, telekomünikasyon, bankacılık, finans ve e-Ticaret sektörlerinde kullanılmaktadır. Kullanıcılar için kolay anlaşılabilir bir ara yüz sağlamaktadır. Kullanıcı tarama bölümüne uygulama URL’ini girerek denetleme başlatılabilmektedir. Acunetix, uygulamanın manuel olarak taranmasına da olanak sağlamaktadır. Acunetix taraması CI/CD pipeline’nına Jenkins, TeamCity, GitLab, Azure DevOps, Bamboo gibi tool’lar aracılığıyla kısa bir sürede entegre edilebilmektedir. Acunetix, yirmi web sitesinin taranması için Standard versiyonunda 10.995 dolar, Premium’da ise 15.995 dolar ücretlendirme yapmaktadır. Yirmiden fazla web sitesi için özel fiyatlandırma yapılmaktadır. Demo olarak da indirilebilmektedir.

Veracode Dynamic Analysis

Veracode, kullanıcılarına %1 oranında yanılma payı olan bir yazılım sunmaktadır. Tool tarafından oluşturulan tarama raporları takımlara kolaylık sağlamakta ve rapor sonuçlarını ayıklamakla geçirilen zaman kaybını engellemektedir. Rapor hazırlandığı anda kullanıcı güvenliğini önleyebilecek tehditlere ulaşılabilmektedir. Taramalar belli aralıklarla düzenli olarak yapılabilir. Bu tarihler kullanıcılar tarafından belirlenen bir programla oluşturulur. IT işlemlerini aksatmamak için Veracode Tool’u otomatik olarak duraklama yapmaktadır. Daha sonra ise kaldığı yerden taramaya devam edebilir. İhtiyaç olduğu takdirde Veracode mühendisleri taramaların sorunsuz çalışabilmesi için giriş komut dosyalarını düzenler. Yalnızca bir URL girerek Veracode Dinamik Analiz taraması başlatılır. Eğer daha fazla URL taranmak isteniyorsa bu URL’lerin bulunduğu bir csv dosyasını yüklemek gerekir. Taramalar eş zamanlı olarak yapılabilmektedir. Veracode tarama sonuçları uygulamanın güvenliğini tehdit eden unsurları açıklar. Bu unsurların nasıl ortadan kalkabileceğini kolay bir kılavuz ile sunucuya iletir. Veracode, kullanıcıya rehberlik desteği de sunmaktadır. Yeni bir program kurmak ve bir programı optimize etmek için rehberlerden yardım alınabilmektedir. Bir güvenlik açığını ortadan kaldırmak için yeterli bilgiye sahip değilseniz bir uygulama güvenlik danışmanıyla görüşme ayarlamak mümkündür. Sorunu değerlendirmek ve en iyi şekilde nasıl düzeltileceğini göstermek için yardım alınabilir. Veracode, yıllık olarak her uygulamanın dinamik analizi için 500 dolar, statik analizi içinse 4.500 dolar ücretlendirme yapmaktadır.

Micro Focus Fortify on Demand

Fortify, kullanıcılarına hızlı ve kolay bir kullanım sunmaktadır. Java, PHP, C, C++, HTML, Python, C#, SQL, XML ve daha fazlası için destek sağlamaktadır. CI sunuculara entegrasyonu, web ve mobil uygulamalarda taramayı ve DevOps Tool’larını desteklemektedir. Fortify, güncel olarak Eclipse, Microsoft Visual Studio ve IntelliJ Developer IDE ile uyumlu olarak çalışabilir. Ek olarak, GitHub ve Atlassian Bitbucket aracılığıyla versiyon kontrol sistemi kullanılabilmektedir. Jenkins, Microsoft Visual Studio Team Services (VSTS)/Team Foundation Server (TFS), Bamboo, TeamCity, Travis, CircleCI gibi sürekli entegrasyon araçları için kolay bir kullanım sağlamaktadır.

AppScan Standard

AppScan Standard güvenlik uzmanları için tasarlanmış bir dinamik uygulama güvenliği test aracıdır. AppScan hedeflenen uygulamayı otomatik olarak tarar ve böylece güvenlik açıklarını tespit eder. Bu sorunlar için düzeltme önerileri sunar. Böylece güvenlik açıklarını gidermek kolaylaşır. AppScan, web hizmetleri, web uygulamaları ve mobil uygulamaların güvenliğinde dinamik olarak çalışır ve riskleri tespit eder. Bu tehdit unsurlarını düzeltmeyi kolaylaştırmak için akıllı düzeltme önerileri içeren raporlar oluşturarak uygulama güvenlik testlerini otomatik hale getirir. Böylece ileride şirket için maddi sorunlara da yol açabilecek durumların önüne geçilir. AppScan’in test optimizasyonu algoritmaları daha hızlı tarama yapmak için geliştirilmiştir. IBM kullanıcılarına hızlı ve kapsamlı bir tarama vaat etmektedir. Ek olarak en karmaşık uygulamalarda bile uygulanan testleri uygulamaların ihtiyaçlarına göre düzenleyebilmektedir. AppScan, bilgisayar korsanları web hizmeti veya uygulamanızın güvenlik açıklığını keşfetmeden önce bu tehditleri ortadan kaldırabilmeyi amaçlamaktadır. Çeşitli dil desteğine sahiptir. Buna ek olarak CI/CD pipeline’na entegre olabilmektedir. Böylelikle DevOps için kolay bir kullanım sağlar. Fakat Oracle Fusion Middleware için desteği yoktur. AppScan Standard’ın, bazı durumlarda test sayısı arttığından dolayı doğru ve yeterli sayıda sonuç veremediği gözlemlenmiştir. Ayrıca, rakiplerine göre daha maliyetlidir. Ücretsiz deneme sürümü mevcuttur. Kullanıcı başına yıllık 11.000 dolardan başlayan fiyatlarla satışa sunulmaktadır.

Kaynaklar

Category:Vulnerability Scanning Tools. 20 Kasım 2019 tarihinde http://owl.english.purdue.edu/owl/section/2/10/ adresinden erişildi.

Static Application Security Testing. 21 Kasım 2019 tarihinde https://www.microfocus.com/en-us/products/static-code-analysis-sast/overview adresinden erişildi.

Micro Focus Fortify WebInspect Overview. 21 Kasım 2019 tarihinde https://www.g2.com/products/micro-focus-fortify-webinspect/reviews#survey-response-567535 adresinden erişildi.

Web Application Testing. 21 Kasım 2019 tarihinde https://www.veracode.com/security/web-application-testing adresinden erişildi.

HCL AppScan Standard. 20 Kasım 2019 tarihinde https://www.hcltechsw.com/wps/portal/products/appscan/offerings/standard adresinden erişildi.

DAST v. SAST: Which one is better? 20 Kasım 2019 tarihinde https://www.breachlock.com/dast-v-sast-which-one-is-better/ adresinden erişildi.

Toma, S. (2016, Mayıs 26). Offers Everything For Both Static Code Analysis And Dynamic Code Analysis. 19 Kasım 2019 tarihinde https://www.itcentralstation.com/product_reviews/veracode-review-62483-by-sebastian-toma adresinden erişildi.

The Security Platform Built for CI/CD. 19 Kasım 2019 tarihinde https://www.checkmarx.com/adresinden erişildi.

Acunetix Vulnerability Scanner. 19 Kasım 2019 tarihinde https://www.acunetix.com/vulnerability-scanner/ adresinden erişildi.

Veracode Dynamic Analysis + Jenkins: Integrate DAST Into Your CI/CD Pipeline. 20 Kasım 2019 tarihinde https://securityboulevard.com/2019/10/veracode-dynamic-analysis-jenkins-integrate-dast-into-your-ci-cd-pipeline/ adresinden erişildi.

CheckMarx Reviews and Product Details. 20 Kasım 2019 tarihinde https://www.g2.com/products/checkmarx/reviews adresinden erişildi.

--

--