Jenkins ile Fortify SCA Taraması Başlatma ve Fortify SSC’ye Yükleme

Selamlar, bu yazıda sizlere Jenkins üzerinde Fortify Assesment plugini ile built-in node agent kullanarak Static Code Analyzer (SCA) ile bir tarama başlatıp Software Security Center (SSC) arayüzüne yüklemeyi anlatacağım.

Ortam Bilgisi:

  • İşletim Sistemi: Windows 10
  • Fortify Ortamı:
    • Fortify Versiyonu: 23.2
    • SCA ve SSC aynı işletim sisteminde bulunuyor
    • Tüm Fortify bileşenleri aynı self-signed SSL sertifikasını kullanıyor
  • Jenkins Ortamı:
    • Versiyon: Ücretsiz versiyon, 2.452.2
  • Jenkins ve Fortify Bileşenleri aynı makinede bulunuyor
  • JAVA_HOME: C:\Program Files\Java\jdk-17


Fortify Assesment Plugin Kurulumu

Dashboard > Manage Jenkins > Plugins > Available Plugins ekranından Fortify Assesment plugini seçilip install butonu kullanılarak kurulur.

Dashboard > Manage Jenkins > System ekranından Fortify Assesment plugini için ayarlar yapılır:

  • Fortify Assesment bölümü altından SSC ve ScanCentral Controller için gerekli URL bilgileri girilir.
    • NOT: Burada normalde SSC URL bilgisi girildiğinde ScanCentral Controller URL adresi otomatik olarak çekilmelidir ancak hata alınması durumunda SSC URL adresi silinip, ScanCentral Controller URL adresi girilip sonradan SSC URL adresi girilebilir.
  • SSC için Authentication token bölümünde SSC’den alınan GUID formatındaki CIToken kullanılmalıdır.
    • Add > Jenkins seçilip Kind için “Fortify Connection Token” seçilir.
    • ID ve Description değerleri girilip SSC’den alınan GUID CIToken girilir ve “Add” denilerek konfigürasyon tamamlanır.
    • Ardından ilgili token seçilip bir sonraki konfigürasyona geçilebilir.

Untitled

  • ScanCentral Controller için Authentication token bölümünde SSC’den alınan GUID formatındaki ScanCentralCtrlToken kullanılmalıdır.
    • SSC Authentication adımındaki işlemler tekrarlanır, token olarak ScanCentralCtrlToken kullanılır.

Untitled

  • Konfigürasyon tamamlanınca “Test Controller” ve “Test SSC” butonları kullanılarak bağlantı test edilir.


Fortify Assesment Plugini ile SCA Taraması Başlatma ve Sonuçları SSC’ye Yükleme


Plugin konfigürasyonu tamamlandıktan sonra Dashboard > New Item sekmesinden yeni bir Freestyle Proje oluşturulur ya da halihazırda olan bir proje kullanılabilir.

Freestyle proje oluşturulduktan sonra Post-build Actions menüsünden Fortify Assesment seçilir. Ardından “Local translation & local scan” seçilir. (İhtiyacınıza göre farklı translation & scan seçeneği ile ilerleyebilirsiniz)

Untitled

  • Build ID: SCA için kullanılacak Build ID kullanılır. Eğer halihazırda olmayan bir build id kullanılırsa, SCA build id oluşturur.
  • Results file: Sonuçların kaydedileceği FPR dosyası.
  • Application Type: Uygulamanın kodlandığı ana dil seçilir (örnekte Java ile yazılan WebGoat uygulaması kullanılmıştır)
    • Java Source Version: Uygulamanın java versiyonu belirtilir.
    • Source files: Uygulamanın kaynak kodlarının bulunduğu klasörün full path bilgisi girilir. Örnek: C:\VulnerableWebApps\WebGoat-main\

Untitled

  • Run Fortify SCA scan checkboxu işaretlenir.
  • Upload Fortify SCA scan results to Fortify Software Security Center checkboxu işaretlenir.
    • Sonuçların yükleneceği Application Name ve Version bilgisi girilir. (Eğer olmayan bir version bilgisi girilirse, SSC yeni bir version oluşturur)
  • Save denilip ayarlar kaydedilir.

Konifgürasyon tamamlandıktan sonra Proje ana sayfasından “Build Now” butonu kullanılarak build işlemi başlatılır:

Untitled

Build History menüsünden ya da doğrudan Console Output alanından builde ilişkin durum takip edilebilir.

Untitled

Build işlemi tamamlandığında Console Output ekranında aşağıdaki gibi bir çıktı oluşmalıdır.

Untitled

Build tamamlandıktan sonra tarama sonuçları SSC arayüzünde görüntülenebilir:

Untitled

Örnek:

Untitled

Written by

Resul Bozburun