Microsoft Dusseldorf OAST Platform: Açık Kaynak Özel Güvenlik Açığı Tespit Aracı

Microsoft, Dusseldorf adını taşıyan açık kaynak OAST platformunu yayınladı. Bu araç, SSRF, XSS ve XML dış varlık gibi sadece dış sistemlerle etkileşim sırasında ortaya çıkan güvenlik açıklarını tespit eder.

I
ITWISE
8 görüntülenme
Microsoft Dusseldorf OAST Platform: Açık Kaynak Özel Güvenlik Açığı Tespit Aracı

Giriş

Microsoft, Dusseldorf adını verdiği açık kaynaklı bir Out-of-Band Application Security Testing (OAST) platformunu yayınladı. Bu araç, uygulama dış sistemlerle etkileşime girdiğinde ortaya çıkan ve geleneksel statik/dinamik analiz yöntemleriyle tespit edilmesi zor olan güvenlik açıklarını otomatik olarak belirlemektedir. Projenin adı, Düsseldorf kelimesindeki harflerin SSRF (Server-Side Request Forgery) kelimesini oluşturması ve umlaut karakterin basitleştirilmesiyle türetilmiştir.

Sorun Tanımı

Günümüzde web uygulamaları genellikle dış sistemlerle (API'ler, veritabanları, üçüncü parti servisler vb.) entegre çalışmaktadır. Bu entegrasyonlar sırasında ortaya çıkan güvenlik açıkları, uygulamanın yalnızca dış sistemlere istek yaptığı sırada tetiklenebilmektedir. Örneğin:

  • Server-Side Request Forgery (SSRF): Saldırgan, uygulamanın iç sistemlere erişimini manipüle edebilir.
  • Cross-Site Scripting (XSS): Dış kaynaklardan enjekte edilen komut dosyaları, kullanıcıların tarayıcılarında çalışabilir.
  • Server-Side Template Injection (SSTI): Kötü niyetli girdiler, sunucu tarafı şablon motorlarında kod yürütülmesine neden olabilir.
  • XML External Entity (XXE): XML verilerinin dış varlıkları referans alması, hassas dosyaların okunmasına yol açabilir.

Bu tür açıklar, yalnızca uygulama dış sistemlerle iletişim kurduğunda ortaya çıktığından, geleneksel güvenlik testleri tarafından genellikle gözden kaçırılmaktadır. Microsoft'un geliştirdiği Dusseldorf platformu, bu boşluğu doldurarak özel (out-of-band) saldırı senaryolarını simüle eder ve otomatik olarak tespit eder.

Çözüm: Dusseldorf OAST Platformu

Dusseldorf, açık kaynaklı (MIT License) bir araç olarak geliştirilmiş olup, aşağıdaki özellikleri sunmaktadır:

  • Out-of-Band (OAST) Testleri: Uygulamanın dış sistemlerle etkileşimini izleyerek gizli güvenlik açıklarını tespit eder.
  • Çoklu Açık Tespiti: SSRF, XSS, SSTI, XXE ve diğer gizli saldırı vektörlerini destekler.
  • Özel Domain Kullanımı: Test sırasında kullanılan özel bir domain üzerinden saldırı senaryolarını simüle eder.
  • Entegrasyon Kolaylığı: CI/CD pipeline'larına entegre edilebilir ve otomatik testler gerçekleştirebilir.

Temel Bileşenler

Dusseldorf platformu, aşağıdaki bileşenlerden oluşmaktadır:

  1. OAST Motoru: Uygulamanın dış sistemlerle etkileşimini izleyen ve potansiyel güvenlik açıklarını tespit eden çekirdek bileşen.
  2. Saldırı Simülatörü: SSRF, XSS, SSTI gibi saldırı senaryolarını otomatik olarak gerçekleştiren modül.
  3. Raporlama Aracı: Tespit edilen açıkları detaylı raporlar halinde sunan araç.
  4. Entegrasyon Kütüphaneleri: Farklı programlama dilleri ve framework'lerle uyumlu kütüphaneler.

Kurulum ve Kullanım

Adım 1: Sistem Gereksinimleri

Dusseldorf'un çalışması için aşağıdaki sistem bileşenlerine ihtiyaç vardır:

  • İşletim Sistemi: Linux (Ubuntu/Debian/CentOS), macOS veya Windows (WSL önerilir).
  • Python: 3.8 veya üzeri sürüm.
  • Docker: Uygulamanın izole bir ortamda çalıştırılması için gerekli.
  • Git: Projeyi klonlamak için.

Adım 2: Projeyi Klonlama ve Kurulum

  1. Terminalde aşağıdaki komutu çalıştırarak projeyi klonlayın:

    git clone https://github.com/Microsoft/Dusseldorf.git
    cd Dusseldorf
  2. Gerekli bağımlılıkları yüklemek için:

    pip install -r requirements.txt
  3. Docker konteynerini başlatın:

    docker-compose up -d

Adım 3: Temel Konfigürasyon

Dusseldorf'un çalışması için bir özel domain ve dinleyici (listener) yapılandırması gerekmektedir. Bu işlem için aşağıdaki adımları izleyin:

  1. Uygulamanın kullanacağı özel domaini (örn: oast.example.com) ayarlayın. Bu domain, saldırı senaryolarının simüle edilmesi sırasında kullanılacaktır.

  2. Dinleyiciyi yapılandırmak için config.yaml dosyasını düzenleyin:

    listeners:
      - type: http
        host: 0.0.0.0
        port: 8080
        domain: oast.example.com
    
    attacks:
      - type: ssrf
        payloads:
          - http://internal-service.local
          - http://169.254.169.254
      - type: xss
        payloads:
          - 
          - "javascript:alert(1)"
    

Adım 4: Uygulama Testi

Dusseldorf'u bir web uygulamasına karşı test etmek için aşağıdaki adımları izleyin:

  1. Uygulamanın güvenlik testine tabi tutulacak URL'sini belirleyin (örn: https://target-app.com/api/v1).

  2. Dusseldorf'u aşağıdaki komutla çalıştırın:

    python dusseldorf.py --target https://target-app.com/api/v1 --config config.yaml
  3. Test tamamlandığında, Dusseldorf otomatik olarak bir güvenlik açığı raporu oluşturacaktır. Rapor, aşağıdaki bilgileri içerecektir:

    • Tespit edilen güvenlik açıkları ve türleri.
    • Açıkların tetiklenme şekli ve ilgili istek/yanıt örnekleri.
    • Risk seviyesi ve önerilen düzeltme adımları.

Örnek Senaryo: SSRF Açığının Tespiti

Aşağıda, Dusseldorf kullanarak bir SSRF açığı tespit etmenin adım adım örneği verilmiştir:

  1. Hedef uygulamanın bir API uç noktası olduğunu varsayalım (örn: https://api.example.com/fetch?url=).

  2. Dusseldorf'un config.yaml dosyasına aşağıdaki saldırı senaryosunu ekleyin:

    attacks:
      - type: ssrf
        payloads:
          - http://internal-service.local
          - http://169.254.169.254
    
  3. Dusseldorf'u çalıştırın:

    python dusseldorf.py --target https://api.example.com/fetch?url=http://oast.example.com --config config.yaml
  4. Uygulama, http://oast.example.com adresine istek attığında, Dusseldorf otomatik olarak uygulamanın iç sistemlere erişim sağladığını tespit edecektir. Rapor, aşağıdaki gibi bir çıktı verecektir:

    SSRF Açığı Tespit Edildi!
    
    Açık Türü: Server-Side Request Forgery (SSRF)
    Tetikleyici URL: https://api.example.com/fetch?url=http://oast.example.com
    Hedef Sistem: http://internal-service.local
    Risk Seviyesi: Yüksek
    Önerilen Düzeltme: Girdi doğrulama ve beyaz listeleme uygulayın.

Entegrasyon ve Otomasyon

Dusseldorf, CI/CD pipeline'larına entegre edilerek otomatik güvenlik testleri gerçekleştirilebilir. Aşağıda, GitHub Actions kullanarak Dusseldorf'un nasıl otomatikleştirileceğine dair bir örnek bulunmaktadır:

  1. GitHub deposunda .github/workflows/security-test.yml adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

    name: Güvenlik Testi
    
    on:
      push:
        branches: [ main ]
    
    jobs:
      security-test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          
          - name: Dusseldorf Kurulumu
            run: |
              git clone https://github.com/Microsoft/Dusseldorf.git
              cd Dusseldorf
              pip install -r requirements.txt
              docker-compose up -d
          
          - name: Güvenlik Testi
            run: |
              python dusseldorf.py --target https://target-app.com --config config.yaml
          
          - name: Raporları Yükle
            uses: actions/upload-artifact@v2
            with:
              name: security-report
              path: reports/
    

Avantajlar ve Sınırlamalar

Avantajlar

  • Gizli Açıkların Tespiti: Geleneksel yöntemlerle tespit edilemeyen güvenlik açıklarını otomatik olarak bulur.
  • Açık Kaynak: Ücretsiz olarak kullanılabilir ve topluluk tarafından geliştirilmeye açıktır.
  • Esneklik: Farklı saldırı vektörlerini destekler ve kolayca genişletilebilir.
  • Otomatik Raporlama: Detaylı raporlar sayesinde hızlı düzeltme süreçleri mümkün olur.

Sınırlamalar

  • Yanlış Pozitifler: Bazı durumlarda, güvenlik açığı olarak algılanan durumlar aslında normal davranış olabilir.
  • Performans Etkisi: Dış sistemlerle yapılan testler, uygulamanın performansını geçici olarak etkileyebilir.
  • Desteklenen Saldırı Vektörleri: Şu anda desteklenen saldırı türleri sınırlıdır ve gelecekte genişletilmesi planlanmaktadır.

⚠️ Uyarı: Dusseldorf, yalnızca yetkili sistemler üzerinde kullanılmalıdır. Hedef sistemlerin sahibi olmadığınız durumlarda kullanılması yasal ve etik olmayan sonuçlara yol açabilir. Testler sırasında uygun izinlerin alındığından emin olun.

Sonuç

Microsoft'un açık kaynak olarak yayınladığı Dusseldorf OAST platformu, web uygulamalarında gizli güvenlik açıklarını tespit etmek için güçlü bir araçtır. Geleneksel güvenlik testleriyle tespit edilemeyen SSRF, XSS, SSTI ve XXE gibi saldırı vektörlerini otomatik olarak belirleyerek, geliştiricilerin uygulamalarını daha güvenli hale getirmelerine yardımcı olur. Platformun CI/CD pipeline'larına entegre edilmesi, sürekli güvenlik testlerinin otomatikleştirilmesine olanak tanır. Dusseldorf'un geliştirilmeye devam etmesiyle birlikte, gelecekte daha fazla saldırı vektörünün desteklenmesi beklenmektedir.

Geliştiriciler ve güvenlik uzmanları için değerli bir kaynak olan Dusseldorf, açık kaynak topluluğunun katkılarıyla daha da güçlenecektir. Güvenlik açıklarının erken tespiti, uygulamaların güvenilirliğini artırmak ve veri ihlallerini önlemek için kritik bir adımdır. Microsoft'un bu adımı, siber güvenlik alanında önemli bir katkı olarak değerlendirilmektedir.

Kaynak

4sysops