[ This article was originally published here ]
Bu yazının içeriği yalnızca yazarın sorumluluğundadır. AT&T, bu makalede yazar tarafından sağlanan hiçbir görüş, konum veya bilgiyi benimsememekte veya onaylamamaktadır.
Günümüzün web uygulamalarının çoğu . Güvenliklerini analiz etmek için dinamik bir tarayıcı olmadan yapamazsınız. (Dinamik Uygulama Güvenlik Testi) araçları, güvenlik sorunlarını hızlı bir şekilde tespit etmenize ve değerlendirmenize olanak tanır. Böyle bir araç seçerken nelere dikkat etmeniz gerektiğini size söyleyeyim.
Çeşitli araştırmalara göre, güvenlik açıklarının %70’i koddaki hatalarla ilgilidir. Bilgisayar korsanları, web uygulama kodunuzdaki güvenlik açıklarını kullanarak kötü amaçlı yazılım dağıtabilir, saldırılar başlatabilir, kimlik avı kullanabilir ve kullanıcıları kötü amaçlı sitelere yönlendirebilir veya sosyal mühendislik tekniklerini kullanarak kişisel verileri çalabilir.
Evet, elbette, tamamen güvenli bir yazılım oluşturmak imkansızdır, ancak güvenlik açıklarının sayısını azaltmak ve ürün güvenlik seviyesini artırmak oldukça mümkündür. Bunu yapmak için, geliştirme ve güvenliği birbirine bağlayan ve yazılımın oluşturulmasının her aşamasında güvenlik açıkları için kontrol edilip test edildiği bir sürece güvenebilirsiniz.
DevSecOps süreci çok hacimlidir; çok sayıda bilgi güvenliği aracı içerebilir. Bu yazımda DAST ve dinamik uygulama analizi için doğru tarayıcının nasıl seçileceğinden bahsetmek istiyorum. Hangi takım özelliklerine ve parametrelerine dikkat etmeniz gerektiğini ve şu anda piyasada hangi ürün türlerinin bulunduğunu birlikte anlayacağız.
DAST nedir ve nasıl çalışır?
Dinamik uygulama güvenlik testi, dağıtılan ve işleyen bir uygulamanın otomatik analizinin gerçekleştirildiği uygulamalardan biridir. Dinamik tarayıcı, HTTP aracılığıyla tüm erişim noktalarını kontrol eder, yaygın güvenlik açıklarını kullanarak harici saldırıları simüle eder ve çeşitli kullanıcı eylemlerini simüle eder. Araç, hizmetin hangi API’lere sahip olduğunu belirler, doğrulama istekleri gönderir, mümkünse yanlış verileri kullanır (tırnak işaretleri, sınırlayıcılar, özel karakterler ve daha fazlası).
Dinamik tarayıcı çok sayıda istek gönderir ve analiz eder. Gönderilen istek ve alınan yanıtın analizi ve bunların normal bir istekle karşılaştırılması, farklı güvenlik sorunları bulmanızı sağlar.
Çoğu tarayıcının benzer işlevleri ve çalışma şekli vardır. Ana bileşenleri bir tarayıcı ve bir analizördür.
Tarayıcı, ulaşabildiği her sayfadaki her bağlantıyı dolaşır, dosyaların içeriğini inceler, düğmelere basar ve olası sayfa adları sözlüğünden geçer. Bu süreç, uygulamayla etkileşimin mevcut yollarını dikkate alarak saldırı yüzeyinin boyutunu ve olası saldırı vektörlerini tahmin etmenizi sağlar.
Analiz cihazı, uygulamayı doğrudan kontrol eder. Pasif veya aktif modda çalışabilir. İlk durumda, analiz cihazı yalnızca tarayıcının kendisine gönderdiği bilgileri inceler. İkincisinde, analizör, tarayıcı tarafından bulunan noktalara ve şu anda sayfalarda bulunmayan ancak uygulamada kullanılabilecek diğer yerlere hatalı veriler içeren istekler gönderir. Ardından, sunucunun yanıtlarına dayalı olarak bir güvenlik açığının varlığını ortaya çıkarır.
DAST aracı seçerken nelere dikkat etmelisiniz?
Bu, bulunan ve kaçırılan güvenlik açıklarının oranıdır. Tarayıcının ne kadar iyi analiz ettiğini hemen anlamak mümkün değil. Bunu yapmak için, en azından yaklaşık olarak hangi güvenlik açıklarının olabileceğini anlamalı ve tahminlerinizi tarama sonuçlarıyla karşılaştırmalısınız. Bir aracı değerlendirmenin birkaç yolu vardır:
- Bir uygulamanız varsa ve bir hata ödül programı aracılığıyla güvenlik açıklarını zaten kontrol ettiyseniz veya , bu sonuçları tarayıcının sonuçlarıyla karşılaştırabilirsiniz.
- Henüz bir uygulama yoksa, kural olarak eğitim için oluşturulan diğer savunmasız yazılımları kullanabilirsiniz. Teknoloji yığını açısından geliştirme ortamınıza yakın bir uygulama bulmanız gerekiyor.
Sayı, tarama kalitesini değerlendirirken belirleyici bir rol oynar. Çok fazla yanlış pozitif, sonuçları tıkar. Ayrıca, gerçek hatalar gözden kaçabilir. Aracın ne kadar iyi taradığını belirlemek için raporu analiz etmeli, yanıtları ayrıştırmalı ve yanlış pozitiflerin sayısını ve oranını hesaplamalısınız.
Uygulama hakkında herhangi bir bilgi yoksa ve sıfırdan analiz etmeniz gerekiyorsa, ne kadar yol ve geçiş toplayabileceğinizi, yani taramanın ne kadar doğru olacağını anlamak önemlidir. Bunun için DAST ürün ayarlarına bakabilirsiniz. Ön uçtan arka uca istekleri izleyip izleyemediğini, örneğin ayrıştırıp ayrıştıramayacağını veya HTML veya JS’deki bağlantıları bulup bulamayacağını öğrenmeniz gerekir. Ayrıca başvuru hakkında bilgi edinme sürecini incelemeye değer.
Taramadan önce, örneğin hangi API’lerin kullanıldığını öğrenebilirsiniz. Bu, tam bir program taraması gerçekleştirmek için aracın neye ihtiyacı olduğunu anlamanıza yardımcı olacaktır. Bir tarayıcı seçerken, her aracın neleri içe aktarabileceğinin bir listesini yapmak ve geliştirme sürecine dahil edilip edilemeyeceğini görmek yardımcı olur.
Bu parametre, özellikle kontroller geliştirme sürecine entegre edilmişse de önemlidir. Tarama işlemi yavaşlatabilir ve sonuç olarak zaman ve para kaybına yol açabilir. Tarama hızı, büyük ölçüde uygulamanın isteklere ne kadar hızlı yanıt verdiğine, aynı anda kaç bağlantıyı işleyebileceğine ve diğer birkaç faktöre bağlıdır. Bu nedenle, farklı DAST araçlarının hızlarını karşılaştırmak için, onları yaklaşık olarak aynı koşullar altında aynı yazılımla çalıştırmanız gerekir.
Otomatik analiz araçları ayrıntılı ayarlara sahip olmalıdır. Gereksiz istekleri kaldırmanıza ve tarama alanını sınırlamanıza izin vereceklerdir. Bu, sürecin kalitesini ve analiz hızını artıracaktır. Araçla ilgili görevleri uygun şekilde ayarlamak için mevcut tüm seçeneklere ve ayarlara sahip olmanız gerekir.
Kendilerini uygulamalara uyarlayan “akıllı” tarayıcılar vardır. Ancak, kontrollerin amaçları farklı olduğundan, bu tür araçların hala manuel olarak yapılandırılması gerekir. Örneğin, bazen bir uygulamayı tam taramayla başlayıp yüzeysel bir analizle biten çeşitli şekillerde taramanız gerekir; bu durumda manuel mod kesinlikle işe yarayacaktır.
Bir araç seçerken, toplam olası parametre sayısına ve bunları yapılandırmanın ne kadar kolay olduğuna dikkat etmeniz gerekir. Farklı araçların çalışmalarını karşılaştırmak için, her birinde birkaç tarama profili oluşturabilirsiniz: ilk analiz için hızlı ve sığ, tam teşekküllü bir analiz için tam ve maksimum.
Dinamik analizi olabildiğince etkili kılmak için, bu uygulamayı geliştirme sürecine entegre etmeye ve derleme sırasında tarayıcıyı periyodik olarak çalıştırmaya değer. İşlemde kullanılanların bir listesini önceden oluşturmak, aracı başlatmak için yaklaşık bir plan hazırlamak gerekir.
Bu, onu geliştirme sürecine entegre etmenin ne kadar kolay olacağını ve API’sini kullanmanın uygun olup olmadığını anlamanıza yardımcı olacaktır.
Bir tarayıcı seçerken, şirketinizin geliştirmede kullandığı teknolojileri göz önünde bulundurmalısınız. Bunu yapmak için uygulamaları analiz edebilir ve kullanılan teknolojilerin, dillerin ve çerçevelerin bir listesini oluşturabilirsiniz. Liste, özellikle şirket büyükse oldukça genişleyebilir. Bu nedenle, tarayıcıları değerlendirmek için sadece birkaç kritik parametrenin kriter olarak seçilmesi uygundur:
- Aracın kapsadığı teknolojilerin ve çerçevelerin sayısı.
- Şirketin kritik hizmetlerinde kullandığı temel teknolojileri destekleme yeteneği.
Uygulamaya girmek için kimlik doğrulaması gerektiğinden, dinamik tarayıcılar için oturum açma sırasının kaydedilmesi son derece önemlidir. Bu süreçte, göndermeden veya ön uçta paylaşılan bir anahtarla şifrelemeden önce vb. gibi birçok tuzak vardır. Bu nedenle, aracın bu tür tüm nüanslarla başa çıkıp çıkmayacağını önceden kontrol etmelisiniz. Bunu yapmak için, mümkün olduğu kadar çok farklı uygulama seçmeniz ve tarayıcının her birinde oturum açma aşamasından geçip geçemeyeceğini görmeniz gerekir.
Ayrıca, oturum kapatıldığında aracın nasıl davrandığını kontrol etmek de iyidir. Tarayıcı, analiz işlemi sırasında çok sayıda istek gönderir. Bunlardan bazılarına yanıt olarak sunucu, kullanıcıyı sistemden “dışarı atabilir”. Araç bunu fark etmeli ve uygulamaya yeniden girmelidir.
Teknoloji sürekli olarak gelişmektedir, bu nedenle bir araç seçerken, güncellemelerinin veya yeni imza/kalıp sürümlerinin veya analiz kurallarının ne sıklıkta yayınlandığını dikkate almak hayati önem taşır. Bu bilgileri ürün web sitesinde incelemeye veya satıcıdan talep etmeye değer. Bu, geliştiricinin trendleri takip edip etmediğini ve kontrol veritabanınızın ne kadar güncel olacağını gösterecektir.
Ürünün gelişimini etkileyip etkileyemeyeceğinizi ve geliştiricinin yeni özellik taleplerini nasıl ele aldığını öğrenmek arzu edilir. Bu, ihtiyacınız olan işlevselliğin üründe ne kadar hızlı görüneceğini ve seçenekler güncellemesinin bir parçası olarak satıcıyla iletişimin nasıl düzenlendiğini gösterecektir.
Hangi aracı seçmeli?
Piyasada Netsparker, Acunetix, Nessus, Rapid7, AppScan ve diğerleri gibi şirketler tarafından sunulan birçok araç bulunmaktadır. Kullandığım iki enstrümanı kısaca anlatayım.
Bu araç tarafından geliştirilmiştir. Ürün, etkileşim kurmak ve taramaları yönetmek, rapor göndermek ve çok daha fazlası için tam teşekküllü bir REST API’sine sahiptir. Tarama aracısı klasik BurpSuite’dir. “Başsız modda” başlatılır ancak sınırlamaları vardır. Örneğin, onunla yalnızca ana portaldan gelen kontrol komutları aracılığıyla etkileşime girebilirsiniz ve eklentilerinizi yükleyemezsiniz. Genel olarak, araç doğru bir şekilde yapılandırılırsa mükemmel sonuçlar sağlayabilir.
- OWASP ZAP (Zed Saldırı Proxy’si)
Bu, OWASP topluluğu tarafından oluşturuldu, bu nedenle tamamen ücretsizdir. Farklı programlama dilleri için farklı SDK’ları ve API’leri vardır. OWASP seçeneklerini veya kendi eklentilerinizi kullanabilirsiniz.
Ürün, çeşitli CI/CD araçları için uzantılara sahiptir. Farklı modlarda çalıştırılabilir ve programlı olarak kontrol edilebilir. Aracı, geliştirme sürecinize kolayca ekleyebilirsiniz. Aynı zamanda, tarayıcının dezavantajları vardır. Açık kaynaklı bir çözüm olduğu için taramaların kalitesi kurumsal çözümlere göre daha düşüktür. Ayrıca, aracın işlevselliği çok kapsamlı ve derin değildir, ancak genişletilebilir ve geliştirilebilir.
Çözüm
Dinamik analizör seçerken bu yazıda yukarıda belirtilen kriterleri kullanabilirsiniz ancak bunların doğru bir şekilde uygulanması gerekir. Her şirket benzersizdir ve kendi nüansları ve özellikleri vardır – tüm bunlar, tüm seçim kriterleri ile birlikte dikkate alınmalıdır. İhtiyaçlarınızı önceden belirlemek ve araçtan hangi sonuçları almak istediğinizi anlamak da iyidir. Hata yapmamak için, çeşitli seçeneklerin tam teşekküllü testlerini yapmanız, bunları birbirleriyle karşılaştırmanız ve en iyi çözümü seçmeniz önerilir.
reklam