Hızlı cevap: CI/CD pipeline sızma testi, bir kurumun yazılım derleme ve dağıtım hattının, yani kodun üretildiği ve canlıya alındığı otomatik sürecin açıklarını bir saldırgan gözüyle inceleyen güvenlik hizmetidir. Bu hattın en kritik riski şudur: hattı ele geçiren bir saldırgan, tek bir kod satırı yazmadan üretim ortamına zararlı kod gönderebilir. En sık açıklar, hatta sızdırılmış sırlar, güvensiz çalıştırıcılar, denetlenmeyen bağımlılıklar ve aşırı yetkili dağıtım anahtarlarıdır. DSET bu testi yerel yapay zekâ motoru KAOS ile yürütür ve her bulguyu çalışan bir kanıtla doğrular.

Modern yazılım, bir geliştiricinin yazdığı kodun otomatik bir hattan geçerek derlenmesi, test edilmesi ve canlıya alınmasıyla üretilir. Bu hat, yani sürekli entegrasyon ve sürekli dağıtım hattı, kurumun en hassas varlıklarından birine, üretim ortamına doğrudan yazma yetkisine sahiptir. Bu yüzden hattın kendisi, çoğu zaman gözden kaçan ama çok yüksek etkili bir saldırı yüzeyidir. Bu yazı, CI/CD pipeline sızma testinin ne olduğunu, hangi açıkları hedeflediğini ve DSET ile KAOS yaklaşımını anlatır.

CI/CD pipeline sızma testi nedir

CI/CD pipeline sızma testi, yazılım derleme ve dağıtım hattının açıklarını kontrollü saldırılarla test eder. Test, hattı oluşturan parçaların her birini kapsar: kod deposu ve erişim yetkileri, yapı betikleri ve bunları çalıştıran makineler, bağımlılıkların çekildiği kaynaklar, hatta tanımlı sırlar ve üretim ortamına dağıtım yetkileri. Amaç, bir saldırganın bu parçalardan birini ele geçirip ele geçiremeyeceğini ve oradan üretim ortamına ulaşıp ulaşamayacağını kanıtlamaktır.

Hangi açıkları hedefler

CI/CD hattının açıkları çoğu zaman kolaylık uğruna verilen geniş yetkilerden ve hatta bırakılan sırlardan kaynaklanır.

Açık sınıfı Ne anlama gelir Tipik sonuç
Sızan sır Anahtar veya parola hat günlüğünde veya değişkende açık kalır Kimlik bilgisi ele geçirme
Zehirlenmiş yapı adımı Saldırgan yapı betiğine zararlı adım ekler Üretime zararlı kod
Güvensiz çalıştırıcı Yapı makinesi paylaşımlı ve yalıtımsızdır İşler arası sızma
Denetlenmeyen bağımlılık Hat zararlı bir paketi çeker Tedarik zinciri saldırısı
Aşırı yetkili dağıtım Dağıtım anahtarı gereğinden fazla erişime sahiptir Geniş etki alanı

Tablonun özü şudur: CI/CD hattı üretim ortamına yazma yetkisine sahip olduğu için, hattaki küçük bir açık doğrudan en yüksek etkiye dönüşebilir. Bu yüzden hattın güvenliği, uygulamanın kendi güvenliği kadar önemlidir. Zehirlenmiş bağımlılık riski için tedarik zinciri saldırıları ve yazılım bağımlılığı güvenliği, hatta çekilen kodun kendi açıkları için kaynak kodu güvenlik denetimi ve SCA tamamlayıcıdır.

DevSecOps ile ilişkisi

DevSecOps, güvenlik testlerini yazılım geliştirme hattının içine gömmeyi hedefleyen yaklaşımdır. CI/CD pipeline sızma testi, bu yaklaşımın iki ayağına dokunur. Birincisi, hattın içine gömülmesi gereken otomatik test adımlarının doğru kurulup kurulmadığını ve bunların atlanıp atlanamayacağını denetler. İkincisi, hattın kendisini bir saldırı hedefi olarak sınar. Otomatik güvenlik testi ile elle yapılan derin testin farkı için SAST, DAST, IAST ve SCA kod güvenlik testi seçim matrisi iyi bir başlangıç noktasıdır.

Sır yönetimi neden kritik

CI/CD hattı, üretim veritabanlarına, bulut sağlayıcılarına ve dış servislere bağlanmak için birçok sır taşır. Bir geliştirici bu sırrı kolaylık olsun diye bir yapılandırma dosyasına veya bir ortam değişkenine açık yazdığında, hattın günlüklerine erişen herkes o sırrı görebilir. Bu yüzden testin önemli bir parçası, hatta tanımlı sırların nasıl saklandığını, günlüklere sızıp sızmadığını ve yetki sınırlarının doğru çizilip çizilmediğini incelemektir.

Ne zaman gerekir

CI/CD hattı sızma testi, yeni bir dağıtım hattı kurulduğunda, hat mimarisi değiştiğinde ve düzenli aralıklarla yapılmalıdır. Özellikle üretim ortamına otomatik dağıtım yapan ve çok sayıda geliştiricinin eriştiği hatlar için bu test kritiktir. Testten önce kapsamın net çizilmesi gerekir, bunun için sızma testine hazırlık ve kapsam belirleme rehberi başvuru noktasıdır.

KAOS ve DSET yaklaşımı

DSET, CI/CD pipeline sızma testini yerel yapay zekâ motoru KAOS ile yürütür. KAOS, hattın yapılandırmasını sızan sır ve aşırı yetki açısından inceler, yapı adımlarını zehirlenmeye karşı sınar, çekilen bağımlılıkları denetler ve bulduğu her açığı çalışan bir kanıtla, kanıt temelli doğrulama ilkesiyle raporlar. Fark şudur: bir yapılandırmanın teorik olarak riskli olduğunu söylemekle yetinilmez, o riskin gerçekten üretim ortamına ulaştığı güvenli bir biçimde kanıtlanır. Bir bulgu doğrulandıktan sonra düzeltmenin işe yaradığını görmek için yeniden test ve remediation doğrulaması uygulanır.

Sık sorulan sorular

CI/CD hattı testi, uygulama sızma testinin yerini alır mı? Hayır, onu tamamlar. Uygulama sızma testi, canlıya alınmış yazılımın açıklarını inceler. CI/CD hattı testi ise o yazılımın üretildiği ve canlıya alındığı süreci inceler. İkisi farklı katmanları hedefler; eksiksiz bir güvenlik tablosu için her ikisi de gereklidir.

Bulut tabanlı bir hat kullanıyorum, yine de test gerekir mi? Evet. Bulut tabanlı bir hat altyapının bir kısmını sağlayıcıya devreder, ama hattın yapılandırması, tanımlı sırlar, erişim yetkileri ve yapı betikleri sizin sorumluluğunuzdadır. Saldırıların çoğu bu sizin sorumluluğunuzdaki katmanda gerçekleşir, bu yüzden bulut tabanlı olmak testi gereksiz kılmaz.

Test üretim dağıtımımı etkiler mi? İyi planlanmış bir testte hayır. Hangi hattın, hangi ortamın ve hangi adımların test edileceği önceden sözleşmeyle belirlenir. Mümkün olduğunda test, üretim dışı bir hat kopyası üzerinde yürütülür, böylece canlı dağıtım etkilenmez.

Kaynaklar

Yazılım derleme ve dağıtım hattınızı kanıt temelli bir testle incelemek için DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan CI/CD hattı ve DevSecOps güvenlik testi ile danışmanlık sağlıyoruz.