Jenkins ile Netsparker Cloud Entegrasyonu

Kategori: Web Güvenliği - Güncellenme: 22 Mayıs 2017 - Omer Citak

Jenkins Nedir?

Continuous Integration mimarisi günümüzdeki yazılım projelerinde olmazsa olmaz haline geldi. Deployment sürecinin otomatize olarak yapılmasının artılarından dolayı güvenlik testlerinin de bu mimari dahilinde otomatize edilmesi gereksinimi ortaya çıktı. Jenkins de popüler Continuous Integration araçlarından biridir.

Jenkins ile Netsparker Entegrasyonu Nasıl Yapılır?

Öncelikle Jenkins kurulumunu yaptıktan sonra, Jenkins web arayüzü açılır. Jenkins’in web arayüzüne http://127.0.0.1:8080/ adresinden ulaşabilirsiniz.

Jenkins web arayüzünü açtıktan sonra, ilk olarak "HTTP Request" eklentisinin kurulması gerekiyor. Eklentiyi kurmak için sırasıyla aşağıdaki görsellerdeki adımlar takip edilmeli.

Jenkins ile Netsparker Cloud Entegrasyonu -1

Adım 1: "Manage Jenkins > Manage Plugins" sayfasına gidilir.

Jenkins ile Netsparker Cloud Entegrasyonu -2

Adım 2: "Plugin Manager" sayfasındaki "Available" sekmesine geçilir ve sağ üstteki "Filter" alanına kurulacak eklentinin kodu olan "http_request" yazılır.

Ardından "Download now and install before restart" butonuna basılır.

Jenkins ile Netsparker Cloud Entegrasyonu -3

Adım 3: Eklentinin indirildiği "Downloaded Successfully" çıktısından teyit edildikten sonra "Restart Jenkins when installation is complete and no jobs are running" seçeneğine tıklanır.

Jenkins ile Netsparker Cloud Entegrasyonu -4

Adım 4: Jenkins yeniden başlatıldıktan sonra tekrar "Plugin Manager" sayfasına gidilip, "Installed" sekmesinden "HTTP Request" eklentisinin gerçekten kurulduğu teyit edilebilir.

"HTTP Request" hakkında daha fazla bilgi şu bağlantıdan alınabilir: https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin

Artık Jenkins ile Netsparker Cloud'da tarama başlatabiliriz.

Netsparker Cloud'da tarama başlatabilmek için sırasıyla aşağıdaki görsellerdeki adımların uygulanması gerekiyor.

Jenkins ile Netsparker Cloud Entegrasyonu -5

Adım 1: Netsparker Cloud'da "Your Account > API Settings" sayfasına gidilir ve "Token" değeri kopyalanır.

Netsparker Cloud'da API üzerinden tarama yapabilmek için bu Token'ı kullanmak gerekli.

Jenkins ile Netsparker Cloud Entegrasyonu -6

Adım 2: Netsparker Cloud API dökümantasyonunda "scans/new" endpoint'ini kullanarak nasıl tarama başlatılacağına bakılabilir.

"scans/new" endpoint'ine şu bağlantıdan ulaşabilirsiniz: https://www.netsparkercloud.com/docs/api/post-api-1.0-scans-new/

Minimum konfigürasyon ile tarama başlatmak için endpoint'in aşağıdaki gibi bir JSON objesine ihtiyacı var;

{
  "TargetUri": "http://asp.testsparker.com/",
  "PolicyId": null,
  "Scope": "EnteredPathAndBelow",
  "CrawlAndAttack": true
}

Jenkins ile Netsparker Cloud Entegrasyonu -7

Adım 3: Jenkins'in web arayüzü açılır ve "Freestyle project" seçeneği seçildikten sonra "OK" butonuna basılır.

Jenkins ile Netsparker Cloud Entegrasyonu -8

Adım 4: Oluşturulan görevin konfigürasyon sayfasının "Build" sekmesinde "Add Build Step" butonuna basılıp "HTTP Request" seçeneği seçilir.

Jenkins ile Netsparker Cloud Entegrasyonu -9

Adım 5: Gereken bilgiler aşağıdaki gibi doldurulur:

URL: https://www.netsparkercloud.com/api/1.0/scans/new
HTTP mode: POST
Accept: APPLICATION_JSON
Content-type: APPLICATION_JSON
Body: {
  "TargetUri": "http://asp.testsparker.com/",
  "PolicyId": null,
  "Scope": "EnteredPathAndBelow",
  "CrawlAndAttack": true
}

Ardından "Custom Headers" bölümündeki "Add" butonuna basılarak yeni bir header oluşturulur. Oluşturulan header ise aşağıdaki gibi olmalı:

Header: Authorization
Value: Basic m8htjJmXG0AGiaU9FLcf/7ycTfpvlFO3XlNhsY6Ww0w=

"Value"daki kırmızı ile işaretlenen kısma, Netsparker Cloud hesabınızda tanımlanmış Token değeri gelmelidir. Geçersiz veya yanlış bir token yazılması durumunda istek başarısız olacaktır.

Jenkins ile Netsparker Cloud Entegrasyonu -10

Adım 6: Oluşturulan görev çalıştırıldıktan sonra "Console Output" sayfasındaki çıktı kontrol edilebilir. Çıktıda göründüğü üzere "scans/new" endpoint’ine bir istekte bulunulmuş ve ardından "HTTP/1.1 201 Created" cevabı alınmış. Bu çıktıdan anlaşılıyor ki tarama başarılı bir şekilde başlatıldı.

Bu tarama Netsparker Cloud üzerinde "Scans > Recent Scans" sayfasından kontrol edildiğinde ise aşağıdaki görseldeki gibi taramanın başarılı bir şekilde başlatıldığı görülür.

Jenkins ile Netsparker Cloud Entegrasyonu -11

Netsparker

Tam isabet, hızlı ve kolay kullanım

DEMO İNDİR