CI/CD Pipeline ve DevSecOps Sızma Testi
CI/CD pipeline sızma testi, yazılım derleme ve dağıtım hattının açıklarını kanıtlar. Zehirlenmiş yapı adımları, sızan sırlar, güvensiz çalıştırıcılar ve tedarik zinciri riskleri, DevSecOps entegrasyonu, ne zaman gerekir ve KAOS ile kanıt temelli yaklaşım.
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
- OWASP Top 10 CI/CD Security Risks: https://owasp.org/www-project-top-10-ci-cd-security-risks/
- NIST SP 800-204D, Software Supply Chain Security in CI/CD: https://csrc.nist.gov/pubs/sp/800/204/d/final
- DSET Sızma Testi ve Güvenlik Hizmetleri: https://dset.com.tr/hizmetler
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.
Kimliğinizi doğrulayın
Yetkilendirilmiş erişim alanı. Tüm giriş denemeleri kayıt altına alınır.