Owasp Dependency Check

Owasp Dependency Check, geliştirilen uygulamalar içerisinde kullanılan kütüphane/bağımlılıkların varsa bilinen zafiyetlerini tespit etmek amacı ile geliştirilmiş açık kaynak kodlu bir uygulamadır.

Hali hazırda Java ve .Net ortamları için desteği bulunan Owasp Dependency Check, “experimental” özelliği sayesinden Node.Js, Ruby, Python ve kısıtlı olarak C/C++ platformlarına da destek sağlamaktadır.

Komut satırı, Maven, Ant, Jenkins, Azure DevOps vb. bir çok platform üzerinde kullanılabilen Owasp Dependency Check aracı tamamen ücretsizdir. Fakat Owasp Dependency Check aracının kütüphane/bağımlılık lisanslarını kontrol etmiyor olması aracın negatif özelliği olarak görülmektedir.

Doküman kapsamında Owasp Dependency Check aracının AzureDevOps ortamında, “Owasp WebGoat.Net” test uygulaması üzerinde kullanımı gerçekleştirilecektir. Bu kapsamda ilk olarak Owasp Dependency Check aracının eklenti marketi içerisinden indirilmesi sağlanmaktadır.

Eklenti kurulumunun ardından, kütüphane/bağımlılık testlerinin uygulanacağı bir pipeline tanımlanmaktadır.

“Pipelines” sekmesi içerisinde bulunan “New” tuşu yardımı ile yeni bir pipeline oluşturma işlemi başlatılmaktadır.

“Use the classic editor” seçeneğine tıklayarak “YAML” dosyaları ile uğraşmadan pipeline oluşturma işlemine geçilmektedir.

Karşılaşılan ilk ekran üzerinden uygulama kodlarını barındıran kod havuzunu seçilmesi istenilmektedir.

“Empty Job” tuşuna kullanılarak yeni bir “Job” oluşturulması gerçekleştirilmektedir.

Bir sonraki adımda oluşturulmuş olan “Job” içerisine Owasp Dependency Check eklentisinin eklenmesi gerçekleştirilecektir. Bu işlem için “Agent job 1” satırında bulunan “+” tuşu kullanılmaktadır.

Owasp Dependency Check eklentisinin pipeline içerisine eklenmesi sonrasında aşağıdaki konfigürasyon bilgilerine gereksinim duyulduğu görülmektedir.

İsim ve taramanın gerçekleştirileceği projelerin listesinin verilmesinin ardından “Save & Queue” tuşu yardımı ile hem yapılan değişikler kayıt edilir hem de ilgili pipeline çalışması başlatılır.

Bu işlem sonrasında aşağıdaki ekran görüntüsü elde edilmektedir.

Görüleceği üzere “Jquery” üzerinde tespit edilen zafiyetli versiyonlar listelenmektedir. Bu ekran dikkatli incelendiğinde “Assembly” analiz işlemi de gerçekleştirildiği görülmektedir. Fakat tarama sonucunda herhangi bir bulgu bulunmadığı görülmektedir.

Tespit edilen bulgu detaylarına ise oluşturulan rapor içerisinden ulaşılmaktadır. Rapor ekranına “Artificats” tuşu üzerinden erişilmektedir.

Oluşturulan rapor içeriği aşağıdaki şekildedir.

Daha önceden oluşturulmuş olan “Agent” üzerinden konfigüre edilebilen alanlar incelendiğinde, derleme işlemi esnasında tespit edilen hatalar doğrultusunda derleme işleminin başarısız olarak sonlandırılabileceği görülmektedir.

Gerçekleştirilen konfigürasyonlar incelendiğinde, “CVSS” değeri “5” ve daha yüksek bulguların tespiti durumunda derleme işleminin başarısız olarak sonlandırılması istenildiği belirtilmektedir. Önceki tarama raporunu incelediğimizde “CVSS” değeri “5” den daha yüksek bulgular bulunduğu bilinmektedir. Bu doğrultuda derleme işlemi esnasında hata oluşması beklenmektedir.

Görüldüğü üzere “CVSS” için belirlenen eşik değerinin geçilmesinden dolayı derleme işleminde hata meydana gelmiştir.

Owasp Dependency Check aracının Azure DevOps eklentisi ile Window sistemler üzerinde oluşturulmuş pipeline yapıları içerisinde çalıştırılabildiği görülmektedir. Linux/Mac tabanlı derleme ortamları üzerinde bu aracın kullanılması için manuel bir takım konfigürasyonlar yapılması gerekmektedir.

İlk olarak oluşturulan pipeline içerisinde “Command Line” aracı agent olarak eklenmektedir.

“curl -LJO https://dl.bintray.com/jeremy-long/owasp/dependency-check-5.2.1-release.zip && unzip dependency-check-5.2.1-release.zip && dependency-check/bin/./dependency-check.sh –enableExperimental –enableRetired –project “ODC” –scan WebGoat/ –out $(Build.ArtifactStagingDirectory)” şeklinde bir komutun çalıştırıldığı görülmektedir.

Komut içeriği incelendiğinde, ilk olarak Owasp Dependency Check aracının indirildiği, daha sonra arşiv içerisinde çıkartıldığı ve son olarak belirtilen özellikler ile çalıştırıldığı görülmektedir. İlgili aracın çalışması sonucunda oluşturulan rapor dosyasının ise “$(Build.ArtifactStagingDirectory)” adresine aktarıldığı görülmektedir.

“Command Line” agent yardımı ile Owasp Dependency Check aracının çalıştırılması sağlanmıştır. Fakat tarama sonucunda oluşturulan raporun sistem üzerinden erişilebilir olması gerekmektedir. Bu işlem içinde “Publish Build Artifacts” ikinci bir agent olarak pipeline içerisine eklenmektedir.

Konfigürasyon içeriği incelendiğinde, “$(Build.ArtifactStagingDirectory)” dosyasında bulunan raporun kaynak olarak belirlendiği görülmektedir.

Tüm bu işlem adımları sonrasında gerçekleştirilen tarama sonucunda, rapor dosyasının indirilebilir olarak “Artifacts” içerisinde bulunduğu görülmektedir.

Yazar: Ahmet Akan

2016 Karabük Üniversitesi Bilgisayar Mühendisliği Mezunu. Kariyerine Uygulama Güvenliği Analisti olarak başladı ve bu alanda görev almaya devam etmekte.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir