Google, Go geliştiricileri için kullanışlı bir komut satırı aracı olan Govulncheck (1.0.0 durumu) resmi olarak kararlı hale getirdi. Bu araç, Google'ın Go programlama dilini kullanan geliştiricilerin, projelerinin bağımlılıkları içindeki bilinen güvenlik açıklarını bulmalarına yardımcı olur.
13 Temmuz'da kullanıma sunulan araç, hem ikili dosyaları hem de kaynak kodlarını güvenlik açıklarına karşı inceleme kapasitesine sahip. Kodun çağırdığı yöntemlerdeki güvenlik açıklarına odaklanarak gürültüyü önemli ölçüde azaltır. Govulncheck omurgası, genel Go modüllerinde tespit edilen güvenlik açıkları hakkında bir bilgi deposu olan Go güvenlik açığı veritabanıdır.
Bu veri tabanının rehberliğinde Govulncheck, kaynak kodun veya ikilinin sembol tablosunun statik bir analizini gerçekleştirir. Nihai hedefi, raporlamasını yalnızca söz konusu belirli uygulamayı potansiyel olarak etkileyebilecek güvenlik açıklarıyla sınırlamaktır. Bu akıllı kısıtlama özelliği, onu, ürünlerinin güvenliğini sağlamak isteyen geliştiriciler için kullanışlı bir araç haline getirir.
Bu aracı yüklemek, geliştiriciler için oldukça basittir - yalnızca go install golang.org/x/vuln/cmd/govulncheck@latest
komutunu gerektirir. Kaynak kodunu analiz etmek için, geliştiricilerin modül dizini içinde ( govulncheck ./...
komutunu kullanarak) Govulncheck çalıştırmaları yeterlidir.
En azından, Govulncheck 1.18 veya daha yüksek sürüme sahip bir Go yapısıyla birleştirilmeyi gerektirir. Şu an itibariyle, bu dilin mevcut üretim sürümü Go 1.20'dir.
Govulncheck, güvenlik açıklarını ararken belirli bir yapı yapılandırmasına bağlıdır. Kaynak kodu söz konusu olduğunda, bu yapılandırma, yol üzerinde bulunan 'go' komutuyla tanımlanan Go sürümüyle eşanlamlıdır. İkili dosyalar için yapı yapılandırması, ikili dosya oluşturulurken yararlanılan yapılandırmadır. Burada dikkat edilmesi gereken bir nokta, farklı derleme yapılandırmalarının farklı güvenlik açıklarına açık olabileceğidir.
Güçlü özelliklerine rağmen, Govulncheck bazı sınırlamalarla gelir. Örneğin, işlev işaretçisi ve arabirim çağrılarına ilişkin analizleri oldukça kısıtlıdır ve muhtemelen yanlış pozitiflere veya kesin olmayan çağrı yığınlarına yol açar. Başka bir sınırlama, yansıma paketi kullanılarak çağrılan işlevlerle ilgilidir - bunlar algılanamaz.
İkili dosyalar açısından, ayrıntılı çağrı bilgisi içermeyen Go ikili dosyaları, aracın belirlenen güvenlik açıkları için çağrı grafikleri göstermesini engelleyeceğinden Govulncheck için zorlayıcı olabilir. Bu sorun ayrıca ikili dosyada bulunan ancak erişilemeyen kod için yanlış pozitiflerin bildirilmesine neden olabilir. Ek olarak, araç, sembol verilerinin çıkarılamadığı ikili dosyalarla ilgili olarak engellenir; bu durumlarda ikili dosyaya bağlı tüm modüller için güvenlik açıklarını bildirmeyi seçer.
Araç ayrıca güvenlik açığı bulgularını bastırma özelliğine sahip değildir. Ancak, bu sınırlamalara rağmen, Go projeleri için katma değerli bir araç olarak Govulncheck potansiyeli açıktır.
Go Security Team'in geçtiğimiz yılın Eylül ayında güvenlik açığı yönetimine desteğini açıkladığını belirtmekte fayda var. Zafiyet veritabanına dayanan proje, Go programlama yapısında dikkate değer ilerleme vaatleriyle tanıtıldı. Önde gelen no-code bir platform olan AppMaster.io , Go ve diğer birçok dili içeren tamamen entegre ve kapsamlı platformuyla geliştiricilerin uygulamaları daha hızlı oluşturmasına olanak tanır.