GitGuardian SCA ve Git Hooks ile Taahhütlerinizi Bilinen CVE’lerden Koruma


20 Mayıs 2024Hacker HaberleriYazılım Güvenliği / Güvenlik Açığı

GitGuardian SCA ve Git Kancaları

Tüm geliştiriciler güvenli ve güvenilir yazılım oluşturmak ister. Uygulamalarına herhangi bir zayıflık veya anti-kalıp sokmadıklarına tam bir güvenle kodlarını yayınlamaktan gurur duymalılar. Ne yazık ki geliştiriciler bugünlerde çoğunlukla kendi kodlarını yazmıyorlar. Tüm yazılımların %96’sı bazı açık kaynaklı bileşenler içerir ve açık kaynaklı bileşenler herhangi bir modern yazılımın %70 ila %90’ını oluşturur. Ne yazık ki güvenlik odaklı geliştiricilerimiz için modern güvenlik açıklarının çoğu bu yazılım bileşenlerinden kaynaklanmaktadır.

Yeni güvenlik açıkları ortaya çıktıkça ve Genel Güvenlik Açıkları ve Etkilenmeler (CVE’ler) olarak kamuya rapor edildikçe, güvenlik ekiplerinin geliştiriciden, bağımlılıkların farklı sürümlerini içerecek şekilde kodu yeniden düzenlemesini istemek dışında çok az seçeneği var. Yeni özellikleri engellediği ve bileşen sürümlerini geri almak ve hiçbir şeyin bozulmayacağını ummak çıldırtıcı olabileceği için bu durumdan kimse memnun değil. Geliştiricilerin bir yola ihtiyacı var hızlıca Çekme isteğinde bulunmadan önce, kullanmak istedikleri bir bileşenin bilinen bir güvenlik açığına sahip olup olmadığını belirlemelidirler.

Neyse ki geliştiriciler ve güvenlik ekipleri için, CVE’leri yerel olarak, otomatik olarak ve herhangi bir taahhütte bulunulmadan önce taramak artık her zamankinden daha kolay ve hızlı.

Taahhüt edilmeden önce kodunuzda ne olduğunu anlamak

Kaynak Kodu Analizi (SCA), çoğunlukla Yazılım Malzeme Listesi (SBOM’ler) tartışmalarında ve uyumlulukla ilgili konuşmalarda ve normalde kodun fiili olarak yazılmasından çok daha sonra ortaya çıkar. GitGuardian Yazılım Kompozisyon Analizi (SCA) ile geliştiriciler, GitGuardian CLI’sı olan ggshield sayesinde, işlerinin herhangi bir noktasında sorunları doğrudan terminallerinden tararlar. Kodlayıcılar tek bir hızlı komutla bağımlılığın belirli bir sürümünün bilinen bir güvenlik açığı oluşturup oluşturmadığını test edebilir. GitGuardian bir düzeltmenin mevcut olup olmadığını bile gösterecektir.

Bu örnekte, “go-getter” kütüphanesi için bir gereksinim ekledik ve 1.7.1 sürümünü belirledik. Bir geliştiricinin bu sürümü kullanmasının birçok nedeni olabilir; örneğin eski bir eğitimden kopyalamak veya o kitaplığın işlevselliğini açıklayan çevrimiçi bir gönderi paylaşmak gibi. Basit bir SCA taraması, bu sürümün yalnızca bilinen bir güvenlik açığına neden olmakla kalmayıp, aynı zamanda 1.7.4 sürümünde de bir düzeltmenin sunulduğunu gösterir.

GitGuardian SCA ve Git Kancaları
GitGuardian CLI olan ggshield, koddaki bir güvenlik açığını bulmak için bir SCA taraması gerçekleştiriyor.

Yalnızca yeni değişiklikleri otomatik olarak tara

Kodumuzdaki CVE’leri yerel olarak taramak çok güçlü olsa da yine de manuel bir işlemdir. İnsanlar yaratıcı olma konusunda harikadır, ancak konu bir süreçteki her adımı, özellikle de sıkıcı olanları tutarlı bir şekilde tekrar tekrar yapmak olduğunda pek iyi değiliz. Her geliştiricinin doğrudan favori kaynak kontrol yönetimi aracı Git Hooks’a yerleştirilmiş tam bir otomasyon platformuna sahip olması iyi bir şeydir.

GitGuardian SCA taraması, Git’in iş akışının ön işleme veya aktarma öncesi aşamasında otomatik olarak tetiklenebilir. Koddaki herhangi bir sorunu yakalamak için ideal zaman, bu sorunun projenizin geçmişine girmeden önceki zamanıdır. Hiçbir zaman gerçekleştirilmezse, güvenlik taramasının daha sonra CI/CD hattında veya üretimde bir sorun tespit etmesi muhtemel değildir. Her gün yeni CVE’ler ortaya çıkarken, bilinenleri kodumuza eklemediğimizden emin olmak için elimizden geleni yapmalıyız.

GitGuardian SCA ve Git Kancaları
Ggshield sca scan ön işleme komutunu otomatik olarak çalıştıran bir ön işleme git kancası

Doğru iş kapsamını tarama

Git hook örneğinde, manuel örnekte kullandığımız gibi “ggshield sca scan all” yerine “ggshield sca scan pre-commit” komutunu kullandığımızı göreceksiniz. SCA taramasının bu çeşidi, taramayı yalnızca geçerli çalışma dizini ile sınırlandırır; bu, yalnızca son işlemeden bu yana yapılan değişiklikler anlamına gelir. Bu şekilde kod tabanında henüz giderilemeyen güvenlik açıkları varsa değişikliklerinizi engellemezler. Yalnızca bağımlılıklarla ilgili yeni sorunlar belirlenecek ve bu durumda taahhüt durdurulacaktır.

GitGuardian SCA ve Git Kancaları
Ön taahhüt git kancası, bir taahhüt girişiminde bulunulduğunda kritik bir güvenlik açığı bulur ve kodun projeye eklenmesini durdurur.

Bu örnekte, yalnızca taahhüt gerçekleşmemekle kalmıyor, aynı zamanda GitGuardian’dan gelen mesaj bize daha sonraki bir sürümde bir düzeltmenin mevcut olduğunu söylüyor. Geliştiricimizin tek yapması gereken, tanımlanan dosyadaki bir karakteri değiştirmek, onu kaydetmek ve ardından yeni işlemi başarıyla gerçekleştirebilirler.

GitGuardian SCA ve Git Kancaları
Kod güncellendiğinde başarılı bir taahhüt.

Sola kaydırmak sorunları daha erken çözmek anlamına gelir

Güvenlik tüm organizasyonu gerektirse de, geliştirme ekibinizi güvenlik sorunlarını erken bulup ortadan kaldırmak için doğru araçlarla donatmak, daha sonra yazılım teslim sürecindeki birçok baş ağrısını ortadan kaldırabilir. Üretime ne kadar yakın bir sorun bulursanız, düzeltilmesi de o kadar pahalı olur. Bu nedenle GitGuardian SCA’yı Git Hook’un ön-taahhüdü olarak kullanıma sunduk, böylece her geliştirici bilinen bir güvenlik açığını ardışık düzene ve sonuçta üretime eklemekten kendini koruyabilir.

GitGuardian SCA, ekibimizle kısa bir görüşmenin ardından 2 haftalık ücretsiz deneme için kullanılabilir. SCA, GitGuardian’ın ürün paketinin ele aldığı sorunlardan yalnızca bir tanesidir. Ayrıca Sır Tespiti, Kamu İzleme, Kod Güvenliği Olarak Altyapı ve Honeytoken dahil olmak üzere bir dizi güvenlik aracını da entegre ediyoruz.

Bu makaleyi ilginç buldunuz mu? Bu makale değerli ortaklarımızdan birinin katkıda bulunduğu bir yazıdır. Bizi takip edin heyecan ve yayınladığımız daha özel içerikleri okumak için LinkedIn.





Source link