background

Twistlock on Azure DevOps Pipeline

Twistlock on Azure DevOps Pipeline

Herkese merhaba :)

Sizlere bu yazımda container security ürünü olan Twistlock (yeni adı ile Prisma Cloud) kullanımının Azure DevOps Pipeline üzerinde nasıl otomatize edeceğimizden bahsedeceğim.

İlk olarak kısaca Twislock’dan bahsedecek olursak; lisanslı bir ürün olan Twistlock 2019 yılında Palo Alto Networks tarafından satın alınmış olup Prisma Cloud olarak piyasaya sunulmuştur.

Twistlock (Prisma Cloud)ile neler yapabilirsiniz?

Container orchestration(kubernetes, openshift vs.) ortamlarınızda;

  • Containerların görüntülenmesi ve bu containerlar arasında networkün görüntülenmesi,
  • Containerlardaki güvenlik açıklarının görüntülenmesi,
  • Yeni oluşturulan containerların otomatik tarama işleminin yapılması,
  • Çeşitli kurallar oluşturularak yapılabilecek işlem kısıtlamalarının sağlanması ve güvenlik açıklarının önüne geçilmesi,
  • Monitoring

gibi işlemler yapabilirsiniz.

Bunların yanı sıra oluşturmuş olduğunuz imageların güvenlik açıklarını tarayabilirsiniz ve bu işlemlerinizi continious integration süreçlerinize dahil edebilirsiniz.

Gelin şimdi Twistlock’ı Azure DevOp Pipeline üzerinde nasıl kullanabileceğimize bakalım.

Buradaki senaryomuz yeni oluşturulan bir imageın güvenlik açıklarının nasıl tarandığı olacak.

Burada izleyebileceğimiz 2 yol var.

1. Azure DevOps Twistlock taskının kullanılması.

Burada dikkat edilmesi gereken nokta kullanmış olduğunuz twistlock uygulamanıza ait twistcli ile bu taskın kullanmış cli versionunun aynı olması. Versionlar arası farklı parametreler olduğundan taskda kullanılan parametreler diğer versionda desteklenmiyor ise pipeline çalışma sırasında hata almakta.

2. CLI ile twistcli komutlarının kullanılması

Ben yukarıda belirtilen taska güncelleme gelene kadar bu yolu kullanıyorum. Çünkü version farklılıkları mevcut. Task güncellemesinin ise Palo Alto’nun Roadmap’inde olduğunun bilgisini aldım. Ama geliştirmeyi ne zaman yaparlar göreceğiz :)

Twistcli, agent ile Twislock uygulamsanın konuşmasını sağlayan bir tool. Bu nedenle build agentınız üzerinde bu cli ın kurulu olması gerekmekte. Bunun için twislock arayüzünden manage/system/downloads sekmesine gelerek işletim sisteminize göre ilgili twistcli tool komutunu kopyalamalısınız.

Bu işlemi pipeline hattınızda da yapabilirsiniz.

Bu işlem sonrası twistcli kullanıma hazır gelecektir ve pipeline da bu cli ı kullabileceksiniz.

  • İlk olarak bir image build etmek ile başlayalım

Azure DevOps Pipeline/Build hattınıza Docker taskı ekleyerek ilgili Dockerfile’ın build edilmesi sonucu bir image create edilmesi sağlanmalı.

Parametreler aşağıdaki örnekteki gibi doldurulmalıdır.

**Container Registry şirket içerisinde kullanmış olduğunuz çözüme göre değişebilir.

  • Command Line Script taskı ile twsitcli komutları hazırlanmalıdır.

twistcli images scan — address $(twistclockurl) — user $(twistclockusername) — password $(twistclockpassword) — details — ci $(registryurl)/devops/selenium:v4 | tee -a output && grep “Compliance threshold check results: PASS” output && grep “Vulnerability threshold check results: PASS” output

Düzenlemeler yapıldıktan sonra build hattı çalıştırılmalıdır.

Twistcli komutları ile ilgili detaylı bilgiye bu linkten ulaşabilirsiniz

Önek Execution result :

Burada ilgili image a ait güvenlik açıkları listelenmektedir.

Bu sonuçlar scripte yazılan | tee -a output && grep “Compliance threshold check results: PASS” output && grep “Vulnerability threshold check results: PASS” output komutları ile Twistlock Console’una gönderilmektedir. Böylece arayüzden sonuçları görüntüleybilmektesiniz.

Console üzerinde tarama sonuçları Monitor > Vulnerabilities > Images > CI yada Monitor > Compliance> Images > CI tablarından görüntülenebilir.

Bir sonraki yazımda görüşmek üzere :)

Faydalı Linkler

Nasıl yardımcı olabiliriz?