OWASP ZAP

Aslıhan Kuzucu
8 min readAug 7, 2023

--

OWASP ZAP Nedir, Ne İşe Yarar, Nasıl Kullanılır?

OWASP ZAP (Zed Attack Proxy) nedir?

OWASP ZAP, web uygulamalarının güvenlik testleri için kullanılan ücretsiz ve açık kaynaklı bir güvenlik aracıdır. Bir “örümcek”(spider) ve “aktif tarama” gibi özelliklerle donatılmış olan ZAP, web uygulamalarındaki güvenlik zafiyetlerini tespit etmeye yardımcı olur.

Neden OWASP ZAP kullanmalıyız?

Güvenlik Kontrolü: Web uygulamalarınızın güvenliğini test etmeden önce, potansiyel zafiyetleri belirlemek önemlidir. ZAP, bu zafiyetleri kolayca tespit ederek uygulamanızın güvenliğini artırır.

Açık Kaynaklı ve Ücretsiz: OWASP ZAP, açık kaynaklı bir projedir ve ücretsiz olarak kullanılabilir. Bu, küçük işletmeler ve bağımsız geliştiriciler için uygun bir seçenek yapar.

Kolay Kullanım: ZAP’ın kullanıcı dostu arayüzü sayesinde, güvenlik testlerini yapmak daha kolay ve anlaşılır hale gelir. Kullanıcılar, web uygulamalarını hızlıca tarayabilir ve güvenlik açıklarını inceleyebilir.

Hızlı ve Etkili Sonuçlar: ZAP, web uygulamalarını otomatik olarak tarayarak potansiyel zafiyetleri tespit eder. Bu, güvenlik testlerini daha hızlı ve verimli hale getirir.

OWASP Top 10 Uyumluluğu: OWASP ZAP, OWASP Top 10 olarak bilinen en yaygın web uygulama güvenlik risklerini tespit etmek için özel olarak tasarlanmıştır. Bu da uygulamanızı bu tür saldırılardan korumak için önemlidir.

OWASP ZAP’in Özellikleri:

  • Otomatik Saldırı ve Tarayıcı: OWASP ZAP, otomatik saldırılar gerçekleştirerek web uygulamalarını test etmeye olanak sağlar. Tarayıcı özelliği, oturum yönetimi, formlar, gezinme ve diğer web uygulaması işlemlerini simüle ederek uygulamaların nasıl tepki verdiğini görüntüler.
  • Güvenlik Raporları: OWASP ZAP, tespit edilen güvenlik açıklarını ve zafiyetleri raporlar halinde sunar. Bu raporlar, güvenlik uzmanlarına ve geliştiricilere eksiklikleri düzeltme konusunda yol gösterir.
  • Güvenlik Topluluğu Desteği: OWASP ZAP, sürekli olarak güncellenir ve geliştirilir. Topluluk tarafından desteklenir, böylece kullanıcılar en son güvenlik zafiyetlerini tespit etmek için güncel kalabilirler.

Sonuç olarak, OWASP ZAP, web uygulamalarının güvenlik testlerinde yaygın olarak kullanılan güçlü ve etkili bir açık kaynaklı araçtır. Hem geliştiriciler hem de güvenlik uzmanları için, web uygulamalarını güvence altına almak ve potansiyel güvenlik açıklarını tespit etmek için önemli bir yardımcı araçtır. OWASP ZAP, güvenlik konusunda bilinçli bir topluluk tarafından desteklenir ve sürekli olarak güncellenir, böylece en son tehditlere karşı koruma sağlar.

OWASP ZAP’ı bilgisayarımıza yüklediğimizde karşımızda şöyle bir arayüz çıkar:

Ok ile gösterilmiş seçenekler otomatik tarama ve manual olarak keşfetmeyi ifade eder, peki bunların farkı nedir ve ne işe yararlar?

Otomatik Tarama (Automated Scan):

Otomatik tarama modu, OWASP ZAP’in web uygulamasını otomatik olarak tarayarak potansiyel güvenlik açıklarını bulma ve raporlama sürecidir. Bu işlev aşağıdaki gibi temel görevleri yerine getirir:

a. Tarama ve Keşif: OWASP ZAP, web uygulamasının URL’lerini ve erişilebilir kaynaklarını tespit eder, bu kaynakları tarar ve potansiyel güvenlik açıklarını otomatik olarak tespit eder.

b. Raporlama: Tarama sonucunda bulunan güvenlik açıkları ve zafiyetler raporlanır. Bu rapor, geliştiricilere veya güvenlik uzmanlarına uygulamanın hangi alanlarında iyileştirmeler yapılması gerektiğini gösterir.

c. Zaman Verimliliği: Otomatik taramalar, manuel olarak tüm tarama ve test süreçlerini gerçekleştirmekten daha hızlıdır. Bu, özellikle büyük web uygulamalarında zaman ve çaba tasarrufu sağlar.

Ancak, otomatik tarama bazı sınırlamalara da sahiptir:

  • Otomatik taramalar, manuel incelemeler kadar kesin olamayabilir ve yanıltıcı sonuçlar üretebilir.
  • Bazı gelişmiş güvenlik açıkları, otomatik tarama araçları tarafından tam olarak tespit edilemeyebilir.
  • False positive ve false negative sonuçlar söz konusu olabilir.

Manuel Keşif (Manual Explore):

Manuel keşif modu, OWASP ZAP’in kullanıcılar tarafından daha fazla kontrol edilerek web uygulamasının güvenlik açıklarını manuel olarak tarayan ve test eden süreçtir. Bu modda, güvenlik uzmanları, uygulamanın güvenlik durumunu daha ayrıntılı ve hassas bir şekilde değerlendirebilir. Manuel keşif aşağıdaki gibi işlevleri yerine getirir:

a. Özelleştirilmiş Testler: Testçiler, uygulamanın belirli alanlarını daha kapsamlı bir şekilde inceleyerek, özelleştirilmiş testler ve saldırılar yapabilir. Bu, otomatik taramalarda tespit edilemeyen bazı güvenlik açıklarını bulmada yardımcı olabilir.

b. Derinlemesine İnceleme: Testçiler, web uygulamasının altında yatan yapıyı daha iyi anlayabilir ve gelişmiş güvenlik açıklarını tespit etmek için kapsamlı araştırmalar yapabilir.

c. Saldırı Senaryoları: Manuel keşif, testçilere daha karmaşık saldırı senaryoları oluşturma ve gerçek saldırganların kullanabileceği yöntemleri simüle etme imkanı verir.

Ancak, manuel keşfin de bazı zorlukları vardır:

  • Zaman Alıcı: Manuel keşif süreci, otomatik taramalardan daha uzun sürebilir, özellikle büyük web uygulamalarında veya karmaşık yapılarında.
  • Teknik Uzmanlık Gerektirir: Manuel keşif, deneyimli ve teknik olarak yetkin güvenlik uzmanları gerektirir.
  • Raporlama ve Yönetim Zorlukları: Manuel keşif sonuçlarının raporlanması ve yönetilmesi, otomatik taramalardan daha karmaşıktır.

Örnek bir otomatik tarama yapacak olursak, otomatik tarama seçeneğine tıkladıktan sonra tarama yapmak istediğimiz web sitesinin url’sini giriyoruz ve saldırı seçeneğine tıklıyoruz.

Tarama başladıktan sonra aşağıda yer alan butonları tek tek inceliyoruz.

İlk buton Geçmiş(history) butonu:

Geçmiş (History):

Geçmiş sekmesi, önceki tarama ve isteklerin bir geçmişini tutar. Bu sekmede, daha önce yapılmış tüm taramaların, isteklerin ve yanıtların listesini görebiliriz. Ayrıca, geçmişteki taramaları incelemek veya üzerlerinde çalışmak için buradan seçim yapabiliriz.

Arama (Search):

Arama sekmesi, tarama geçmişindeki istekleri veya yanıtları filtrelemek için kullanılır. Eğer büyük bir tarama geçmişine sahipseniz ve belirli bir isteği veya yanıtı bulmak istiyorsanız, bu sekmede arama yapabilirsiniz.

Uyarılar (Alerts):

Uyarılar sekmesi, tarama sırasında OWASP ZAP tarafından tespit edilen güvenlik açıklarını ve zafiyetleri görüntüler. Tarama tamamlandığında, burada potansiyel güvenlik açıkları ve diğer uyarılar listelenir. Bu uyarılar, güvenlik açıklarının ciddiyetine göre kategorilendirilebilir (bayrak rengine göre)(yeşil kutu) ve bulunan güvenlik açıkları hakkında detaylı açıklamalar bunulur.(sarı kutu)

Çıktı (Output):

Çıktı sekmesi, tarama sonuçlarını ve raporlarını görüntüler. Bu sekmede, tarama işleminin tamamlanmasının ardından oluşturulan raporları ve sonuçları görebiliriz. Raporlar, uygulamanın güvenlik durumu hakkında ayrıntılı bilgi sağlar ve geliştiricilere veya güvenlik uzmanlarına doğrulanmış sonuçları sunar.

Örümcek (Spider):

Örümcek sekmesi, tarama hedefindeki tüm bağlantıları ve erişilebilir sayfaları keşfetmek için kullanılır. OWASP ZAP, bu sekmeyi kullanarak otomatik olarak web uygulamasında bulunan tüm linkleri tarama işlemi başlatır ve tarama kapsamını genişletir. Bu, tarama sırasında kaçırılabilecek sayfaları keşfetmek için faydalı olabilir.

Aktif Tarama (Active Scan):

Aktif Tarama sekmesi, tarama hedefi üzerinde güvenlik açıklarını otomatik olarak tespit etmek için kullanılır. OWASP ZAP, bu sekmeyi kullanarak hedef web uygulamasına yönelik aktif saldırılar yapar ve potansiyel güvenlik açıklarını otomatik olarak tespit eder. Bu sekme, uygulamadaki güvenlik açıklarını doğrulamak için kullanışlıdır ve aktif saldırılar yaparak daha kapsamlı sonuçlar elde etmemizi sağlar.

Ayrıca request(istek) ve response(cevap) butonlarını da inceleyelim.

  • Request (İstek) Butonu:

“Request” butonu, tarama sırasında yapılan HTTP isteklerini görüntülemek için kullanılır. OWASP ZAP, web uygulamasına yönelik tarama yaparken, bu uygulamaya çeşitli HTTP istekleri gönderir (örneğin, sayfaları indirmek, formları göndermek vb.). “Request” butonuna tıkladığımızda, OWASP ZAP tarafından yapılan bu HTTP isteklerini ayrıntılı olarak inceleyebiliriz.

İstekler genellikle HTTP başlıkları, gövde (body), parametreler ve diğer metaveriler içerir. Bu bilgiler, tarama sürecinin anlaşılmasına yardımcı olur. Özellikle, web uygulamasına gönderilen isteklerde potansiyel güvenlik açıklarını içeren parametreler veya hatalı yapılandırılmış başlıklar olup olmadığını incelemek için “Request” butonu kullanılabilir.

  • Response (Yanıt) Butonu:

“Response” butonu, OWASP ZAP tarafından yapılan HTTP isteklerine alınan yanıtları görüntülemek için kullanılır. Web uygulamasının, OWASP ZAP tarafından gönderilen isteklere nasıl yanıt verdiğini görmek için bu butona tıklanabilir.

HTTP yanıtları genellikle durum kodları (HTTP status codes), başlıklar ve response gövdesi (response body) gibi bilgiler içerir. Durum kodları, isteğin başarıyla gerçekleştirilip gerçekleştirilmediğini belirtir (örn. 200 OK, 404 Not Found, 500 Internal Server Error vb.).

Response gövdesi, sunucunun talebe nasıl yanıt verdiğini ve sayfa içeriğini içerir.

“Response” butonu, tarama sırasında web uygulamasından alınan yanıtları incelemek, sunucu yanıtlarında potansiyel güvenlik açıkları ve zafiyetler aramak için kullanılabilir. Ayrıca, bu buton, sunucu tarafında dönen hataları, oturum bilgilerini ve diğer güvenlikle ilgili verileri analiz etmek için de faydalıdır.

Manuel Keşif yaparken yapmamız gerekenler ise aşağıda sıralanmıştır:

  • Proxy Ayarlarını Yapın:

OWASP ZAP, web trafiğini dinlemek için bir proxy sunucusu olarak çalışır. Bu nedenle, web tarayıcınızdaki proxy ayarlarını düzenlemeniz gerekecektir. Tarayıcınızın HTTP proxy’sini 127.0.0.1 ve portunu 8080 olarak ayarlayın. Bu, ZAP’ın web tarayıcınızla tüm trafiği dinlemesine olanak tanır.

  • Tarayıcıda Proxy Ayarlarını Kontrol Edin:

Tarayıcınızdaki proxy ayarlarını doğru bir şekilde yaptığınızdan emin olun. Eğer ayarlar doğru yapıldıysa, web tarayıcınızın trafiği OWASP ZAP’a yönlendirilecektir.

  • Web Uygulamanızı Açın:

ZAP’ın tüm trafiği dinlemesi için web uygulamanızı bir tarayıcıda açın. Bu, tarayıcınızın proxy’si olarak çalışan OWASP ZAP’ın web uygulamanızla olan tüm istekleri ve yanıtları yakalamasına olanak tanır.

  • ZAP’de Hedef URL’i Tanımlayın:

ZAP’ın ana ekranında “Quick Start” adlı bir bölüm olacaktır. Bu bölümde “URL to explore” alanını bulun. Buraya tarayıcıda açtığınız web uygulamanızın URL’sini girin. Ve tarayıcınız seçtikten sonra, tarayıcıyı başlat’a tıklayın.

  • ZAP tarafından Yakalanan İstekleri ve Yanıtları İnceleyin:

Tarama işlemi sırasında ZAP, web uygulamanız ile yapılan tüm istekleri ve yanıtları yakalayacak ve bunları farklı sekme ve raporlar altında listeyecektir. Bu bölümleri kullanarak ilgili istek ve yanıtları inceleyebilirsiniz.

  • Zafiyetleri ve Açıkları Tespit Edin:

ZAP, tarama sırasında potansiyel güvenlik zafiyetlerini tespit edecektir. Bu zafiyetleri ve açıkları “Alerts” sekmesinde görebilirsiniz. İlgili açıkları inceleyin ve gerekli önlemleri alın.

Manuel Keşif yaparken, keşif yaptığımız tarayıcının sol bölümünde bazı butonlar bulunuyor, bu butonların ne işe yaradıklarına bakmak gerekirse:

In Scope:

Bu buton, tarama işlemini yaparken hangi alanların kapsamda (in scope) olacağını belirlememize olanak tanır. Yani, saldırıları gerçekleştireceğimiz web sitesinin hangi URL’leri ve alanları içereceğini tanımlar. Sadece belirtilen alanlar taranacak ve diğerleri dışarıda bırakılacaktır.

Off Break:

Bu buton, tarama işlemi sırasında belirli durumlarda (örneğin, oturum açma işlemi için kullanıcı adı ve şifre girmemiz gereken durumlarda) taramayı duraklatmamıza olanak tanır. Bu, tarayıcının normal işleyişini taklit ederek doğru sonuçlar almamıza yardımcı olur.

Show/Enable:

Bu buton, tarayıcıda keşfettiğimiz istemci tarafı (client-side) zafiyetlerini ve açıklıklarını göstermek veya etkinleştirmek için kullanılır. Örneğin, güvenli olmayan JavaScript fonksiyonları veya kodları açığa çıkarabilir ve bunları inceleyebiliriz.

Page Alerts:

Bu buton, tarayıcının gezdiği sayfalarda meydana gelen uyarıları gösterir. Uyarılar, potansiyel güvenlik sorunlarını veya diğer önemli bilgileri içerebilir. ZAP, tarayıcının bu uyarıları fark ederek size raporlar sunar ve müdahale etmemiz gereken alanları işaret eder.

Manuel Keşif yaparken, keşif yaptığımız tarayıcının sağ bölümünde bazı butonlar bulunuyor, bu butonların ne işe yaradıklarına bakmak gerekirse:

Sites Tree:

“Sites Tree” (Site Ağacı) sekmesi, tarayıcı üzerinde gezindiğimiz web sitelerini ve keşfettiğimiz sayfaları hiyerarşik bir ağaç yapısında gösterir. Bu ağaç yapısı, web uygulamanın taramasını ve keşfini kolayca takip etmemizi sağlar. Keşfedilen URL’leri, sayfaları ve içerikleri burada görebilir ve inceleyebiliriz.

Start Spider:

“Start Spider” (Örümcek Başlat) butonu, “Spider” olarak adlandırılan otomatik gezinme ve tarama aracını başlatır. Spider, web uygulamasında belirtilen URL’leri ve bağlantıları takip ederek otomatik olarak gezinir ve web sitesindeki içeriği keşfeder. Bu, ZAP’ın otomatik tarama yeteneklerinden biridir.

Ajax Spider:

“Ajax Spider” (Ajax Örümcek) butonu, dinamik olarak yüklenen içeriklere (örneğin, AJAX istekleriyle yüklenen içerikler) yönelik tarama yapmak için kullanılır. AJAX, sayfa yenilenmeden sunucu ile iletişime geçen bir teknolojidir. Bu buton, tarama işlemi sırasında AJAX tabanlı içerikleri de keşfetmeye yardımcı olur.

Active Scan:

“Active Scan” (Aktif Tarama) butonu, keşfedilen web sitesi üzerinde otomatik olarak güvenlik taraması yapar. OWASP ZAP’ın en güçlü özelliklerinden biri olan Active Scan, web uygulamasındaki potansiyel güvenlik açıklarını tespit etmek için aktif olarak istekler gönderir ve yanıtları analiz eder. Bu sayede, otomatik olarak birçok güvenlik zafiyetini tespit edebilir.

Attack Mode On/Off:

“Attack Mode On/Off” (Saldırı Modu Açık/Kapalı) butonu, ZAP’ın saldırı modunu açıp kapamamızı sağlar. Bu mod, web uygulamasında saldırılar yapılmasını simüle eder.

Taramalar bittikten sonra ise taramanın raporunu kolay bir şekilde oluşturabiliyoruz:

Rapordan örnek bir kısım:

Okuduğunuz için teşekkürler.

--

--

Aslıhan Kuzucu
Aslıhan Kuzucu

Written by Aslıhan Kuzucu

Curious computer engineer interested in cyber security👩‍💻

No responses yet