Django-DefectDojo ile Penetration Test ve Zafiyetlerin Yönetimi

Merhaba

Django-DefectDojo uygulaması Rackspace firmasında ki güvenlik ekibinin, penetration testlerini ve bulunan zafiyetlerin takibini yapabilmek adına kendileri için geliştirdikleri açık kaynak kodlu Django uygulamasıdır.

Bootstrap ve Django teknolojileri kullanılarak geliştirilmesine devam edilen DefectDojo uygulaması pentest süreçlerinin yönetimini son derece kolay hale getirmektedir.

Kurulum

Uygulamanın kurulumunu yeni bir Ubuntu 14.04 sunucu üzerinden gerçekleştireceğiz.

sudo apt-get install git
sudo apt-get install mysql-server
sudo service mysqld start
mysql_secure_install

Şimdi sıra projeyi github üzerinden clone’lamak.

root@ubuntu:~#  git clone https://github.com/rackerlabs/django-DefectDojo.git
Cloning into 'django-DefectDojo'...
remote: Counting objects: 750, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 750 (delta 0), reused 0 (delta 0), pack-reused 731
Receiving objects: 100% (750/750), 2.00 MiB | 645.00 KiB/s, done.
Resolving deltas: 100% (397/397), done.
Checking connectivity... done.

Şimdiyse DefectDojo uygulamasının kullandığı python modülleri ve settings.py ‘da yazılması gereken veri tabanı bağlantı bilgileri gibi işlemlerin tamamlanmasına. Tüm bu süreci bizim için otomatik olarak halledecek bir bash script’i proje ile birlikte github üzerinden gelmektedir.

root@ubuntu:~# cd django-DefectDojo/
root@ubuntu:~/django-DefectDojo# ./setup.bash

Bu işlem biraz uzun sürebilir. Özellikle NPM paketlerinin kurulumundan sonra size veri tabanı için uername ve password soracaktır. Bir önce ki mysql_secure_installation adımında belirlediğiniz şifreyi girerek kurulumu tamamlayabilirsiniz.

MySQL user (should already exist): root
Password for user: 
Database name (should NOT exist): defectdojo

Ardından Django migration işlemleri tamamlanacak ve size superuser oluşturulmak isteyip, istemediğiniz sorulacaktır. Evet diyerek aşağıdaki şekilde bir super user oluşturuyoruz.

You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'): mince
Email address: mehmet@mehmetince.net
Password:
Password (again):

Son olarak  python manage.py runserver komutu ile uygulama çalıştırılır. Ve karşınızda kullanıma hazır bir DefectDojo.

DefectDojo Temel Kavramlar

DefectDojo’nun kullandığı terimleri ve neye tekabûl ettiğine bakalım.

Product

Projenize verdiğiniz isimdir. Örneğin; pentest yapılacak uygulamanızın adını verebilirsiniz. Özellikle major release öncesi teste tabi tutulan uygulamalarınızı proje olarak eklerken, UygulamaAdıV0.1 gibi bir isimlendirme mimarisi seçebilirsiniz.

Test Types

Yapılacak olan “test” sürecini belirten alandır. Örneğin aşağıdaki şekillerde isimlendirmeler verilebilir.

  • Security
  • Automated Scans ( Acunetix, Netsparker )
  • API Test
  • Thread Analysis

Development Environments

Güvenlik testinin gerçekleştirileceği ortamı belirtir. Aşağıdaki şekilde örnekler verilebilir.

  • Development
  • Staging
  • Stable
  • Production

Testlerinizi en azından staging ortamında yapmanızı öneririm.

Engagement

Belirlenen test ortamı ve test tipine göre güvenlik testi sürecinin başlatıldığı alandır. Aşağıdaki ekran görüntüsü daha net bir bilgi verecektir sizlere.

DefectDojo Engagement

Nessus ve Burp Raporlarının Import Edilmesi

DefectDojo’nun güzel özelliklerinden bir taneside Nessu ve Burp araçlarının tarama sonuçlarını kendi yapısına import edebilmesi. Import edilen zafiyetleri Verified, Duplicated, False Positive gibi bayraklar ile işaretleyerek süreç takibini gerçekleştirebiliyorsunuz.

Bu işaretlemeler ve analiz ile dashboard üzerinden grafikler ve genel durum özetleri oluşmaktadır.

DefectDojo Dashboard