BLOG

Kod Parçacıkları: Yapay Zeka Nasıl Bir Risk Oluşturabilir?

Yayınlanma Tarihi

Ağustos 22, 2024

Paylaş

“Copyleft” lisanslı açık kaynak projelerinden kopyalanan kod parçacıkları, 15 yıl önce yazılımdaki en büyük riski oluşturuyordu. Nisan 2014’te keşfedilen Heartbleed güvenlik açığı, açık kaynak bileşenlerinin güvenliği ile ilgili endişeleri ön plana çıkardı ve lisans riski biraz arka planda kaldı. Ancak sorun hiçbir zaman ortadan kalkmadı. Şimdi, Generative AI’nın bir yazılım yazma aracı olarak kullanımı, konuya yeni bir bakış açısı gerektiriyor.
Kod parçacıklarının yasal bir endişe kaynağı olmasının sebebi, bazı açık kaynak lisanslarının yazılma şekli nedeniyledir. En yaygın açık kaynak lisanslarından biri GPL 2.0‘dır. Bu lisansın yükümlülükleri “bir Program veya bir bölümü içinde” kullanılması durumunda geçerlidir. “Program” ile, GPL lisanslı bir bileşen ifade edilmektedir ve bir parçacık, teorik olarak herhangi bir boyuttaki bir bileşenin bir parçasıdır. Copyleft lisansları bazen “viral” olarak adlandırılır, çünkü sadece küçük bir kod mikrobu, lisansın yükümlülükleriyle birlikte kullanıldığı uygulamaya “bulaşabilir”. Ve ticari uygulamalar için uyumluluk bakımında zorluklar doğabilir.
Bununla birlikte, bu özel lisans, endişe verici olan tek lisans değildir. Örneğin, Stack Overflow’dan kopyalanan kod, Creative Commons Attribution ShareAlike lisansı altında mevcuttur ve bu da dikkat gerektiren bir durumdur.

SCA ile açık kaynak riskini yönetmek

Bu tür riskleri yönetmek için açık kaynak kullanımını izlemek her zaman temelde zor olmuştur. Herhangi bir geliştirici, tarayıcı yardımı ile kelimenin tam anlamıyla milyonlarca açık kaynak bileşenine erişebilir ve bunları indirerek kendi kodlarına yapıştırabilir. Şirketler, geliştiricilere açık kaynak kullanımlarında rehberlik edecek politikalara ve süreçlere sahip olmalıdır. Ayrıca onları bir kod tabanındaki açık kaynağı algılayabilecek ve tanımlayabilecek araçlar hakkında eğitecek programlara sahip olmalıdır. Bu alanda doğru araçları kullanmak elzemdir.
Yazılım Güvenliği bakımında açık kaynak kod bileşenlerini inceleyen araçlar, Yazılım Bileşimi Analizi (SCA – Source Code Analysis) adı ile bilinir ve piyasada çeşitli alternatifleri vardır. Çoğu, güvenliği ele alır ve geliştiricilerin eksiksiz açık kaynak bileşenlerini (veya kitaplıklarını) kodlarına çekmelerine olanak tanıyan paket yöneticilerinin disiplinli kullanımını varsayar. Esasen, bir geliştirici bir derleme dosyasında “git X’i al” ifadesini belirtir ve paket yöneticisi X’i alır. SCA araçları bu talimatı yorumlar ve X bileşeninin kodda olduğu sonucuna varır.
Bu basit yaklaşım, güvenlik açıkları için oldukça iyi çalışır, çünkü çoğu güvenlik açığı bileşenin genel işlevinin bir parçasıdır ve 100 satırlık bir kod parçacığında ortaya çıkması beklenmez. Ancak lisanslama sorunlarına ilişkin tam görünürlük elde etmek için kod parçacıklarını tespit etmeniz gerekir. Bu yaklaşımın diğer bir sınırlaması, açık kaynağın yalnızca paket yöneticileri aracılığıyla dahil edilmesini gerektirmesidir. Gerçekte, açık kaynak yazılımda birden fazla yol üzerinden sona erer. Dolayısıyla bu, modern uygulama geliştirme için %80’lik iyi bir çözümdür, ancak kapsamlı bir resim elde etmek ek teknikler gerektirir.
Kod parçacıklarını tanımlamak, bir kod tabanının herhangi bir parçasının açık kaynak koduyla eşleşip eşleşmediğini verimli bir şekilde görmek için karmaşık algoritmalar ve milyonlarca açık kaynak bileşeninden oluşan kapsamlı bir bilgi tabanı gerektirir. Bir aracın, bu yeteneği içerecek şekilde (paket yöneticisi yaklaşımı gibi diğer teknikleri artırmak için) özel olarak tasarlanmış olması gerekir ve piyasada bu gereksinimi karşılayan çok az çözüm vardır.

Açık kaynakta Üretken Yapay Zeka risklerini ele alma

2022’nin sonlarında, yazılım kodu yazabilen bir Üretken Yapay Zeka araçları dalgası dünyanın dikkatini çekti. Bu araçlar şüphesiz gelecekte yazılımın geliştirilme şeklini değiştirecektir. Bununla birlikte, bu araçlar açık kaynak konusunda eğitildi ve kelimesi kelimesine snippet’leri kesip yapıştırdıkları ve bunları tanımlamadıkları veya lisans gereksinimlerine uymadıkları iddiasıyla dava açılması uzun sürmedi. Bu nedenle, geliştiricilerinin açık kaynak kullanımını kontrol etme süreçlerine sahip şirketler bile artık mücadele etmeleri gereken yeni bir yasal risk kaynağına sahip. Yapay zeka tarafından oluşturulan kodun güvenliği konusunda da endişeler var.
Peki bir şirket kendini nasıl koruyacak? Geliştirme kuruluşları, yazılım geliştirmede Üretken Yapay Zeka araçlarını nasıl kullandıklarına dikkat etmelidir ve birçoğu, açık kaynak parçacıklarını algılayabilen Black Duck® SCA gibi araçlara ihtiyaç duyar. Ve şirketler arası birleşme, satın alma işlemlerinde, satın alanların, bir hedef şirketin geliştiricilerinin (yönetim radarı altında bile) Üretken Yapay Zeka araçlarını kullanmış olabileceğini anlamaları gerekir. Üretken yapay zeka aracının kullanımıyla ilgili sorular, durum tespitinin bir parçası olmalı ve kod parçacığı düzeyine kadar denetimler norm olmalıdır.

Kaynak: Orjinal yazıya buradan erişebilirsiniz.