Yapay zeka tarafından üretilen kod: Yazılımın dördüncü bileşeni
13 / Mart / 24
Yapay zeka tarafından üretilen kod: Yazılımın dördüncü bileşeni
Gelişen teknoloji dünyasında, Üretken Yapay Zeka (GenAI) ile yazılım geliştirmenin dönüşüm potansiyeli üzerine yoğun bir ilgi var. GenAI’nin tam etkisini zaman gösterecek olsa da, kuruluşlar bu teknolojiyi büyük bir hevesle keşfederken, gerçeklerle abartıları birbirinden ayırmaya çalışıyorlar. Bu süreçte, yazılım güvenliği uzmanları, GenAI’nin pratikteki etkileri ve Uygulama Güvenliği Testleri’nin (AST) nasıl adapte olması gerektiği konusunda dikkatli bir gözlem yapıyorlar.
Tradicional olarak, yazılım üç ana bileşenden oluşmaktadır:
1.Kendi yazdığınız kod.
2.Satın aldığınız kod.
3.Açık kaynak olarak kullandığınız kod.
Ancak, kuruluşlar GenAI destekli kodlama asistanlarını kullanmayı değerlendirdikçe, AI tarafından oluşturulan kodun, kendine özgü yararları ve riskleri olan yeni bir bileşen olarak ele alınması gerektiği ortaya çıkıyor.
Yapay Zekanın Hatasız Kod Ürettiği Yanılgısı
GenAI, internet sitelerinden, forumlardan, depolardan ve açık kaynak projelerinden toplanan büyük miktarda koddan oluşturulan eğitimli, derin öğrenme büyük dil modellerini (LLM’ler) kullanır. ChatGPT, Copilot gibi araçlar, bu modeller aracılığıyla insan benzeri komutları koda dönüştürür. Bu araçlara olan ilgi arttıkça, eğitim için kullanılan kodların güvenlik açığı ve lisanslama sorunlarından arındırılmış olacağı ve dolayısıyla hatasız kod üretileceği yanılgısı da güçleniyor.
Ancak, “Açık Kaynak Güvenlik ve Risk Analizi” (OSSRA) raporu gibi çalışmalar, gerçekte kod tabanlarının ciddi güvenlik ve lisanslama sorunları içerdiğini gösteriyor. 2024 raporu, incelenen kodların %84’ünde güvenlik açığı, %53’ünde ise lisans çakışması bulunduğunu belirtiyor. Eğer GenAI araçları, bu sorunlu kod tabanlarından öğreniyorsa, ürettikleri kodun da benzer sorunları taşıması muhtemeldir.
GenAI ile Yazılım Geliştirmenin Yeni Yüzü
AI tarafından üretilen kod, yazılım geliştirmede bir devrim oluşturacak ve yazılımın dördüncü temel bileşeni haline gelecektir. Ancak, AI kodlama asistanları tarafından eğitilen LLM’ler, kamuya açık yazılımlar üzerinde eğitildiği için, AI tarafından oluşturulan kodun kusursuz olduğu varsayılamaz. Üzerinde eğitildiği kodda mevcut olan güvenlik ve kalite sorunlarını devralabilir ve açık kaynaktan kopyalandığında lisans ihlallerine ve potansiyel fikri mülkiyet risklerine neden olabilir.
Açık kaynağın ilk günlerinde olduğu gibi, bu risklerden duyulan korku, yapay zeka tarafından üretilen kodun benimsenmesini yavaşlatıyor ve kuruluşların tam potansiyelini gerçekleştirmesini engelliyor. Synopsys, kuruluşların riskleri yönetirken yapay zeka tarafından üretilen kodun faydalarını fark etmelerine yardımcı olur.
Yapay Zeka Üretimi Kodun Benimsenmesindeki Engeller
Yapay zeka tarafından üretilen kodun kullanımı, açık kaynağın ilk günlerinde karşılaşılan benzer endişeler nedeniyle yavaş ilerliyor. Synopsys, kuruluşların bu yeni teknolojinin avantajlarından yararlanırken olası riskleri nasıl yöneteceklerine dair rehberlik ediyor. Black Duck SCA snippet analizi ve Synopsys statik analizi gibi araçlar, potansiyel lisans uyumsuzlukları ve IP riskleri ile güvenlik ve kalite kusurlarını belirlemeye yardımcı oluyor.
GenAI ve Uygulama Güvenliği Testlerinin Birlikteliği
Gerçek şu ki, tüm kodlar potansiyel hata ve kusurlar içerir ve GenAI bu gerçeği değiştirmeyecek. AST, GenAI’nin sağlıklı bir şekilde benimsenmesinde kritik bir faktördür. Statik analiz, dinamik analiz ve Yazılım Bileşeni Analizi (SCA) gibi temel test metodolojileri, yazılımın güvenliğini ve kalitesini sürekli olarak denetlemek için elzemdir. Kuruluşlar, bu çok yönlü test yaklaşımını benimseyerek sorunları etkin ve zamanında çözme yeteneğini geliştirmelidir.
Gartner’ın “Predicts 2024: AI & Cybersecurity – Turning Disruption into an Opportunity” başlıklı raporu, GenAI’nin giderek daha fazla benimseneceğini öngörüyor. Ancak, bu teknolojinin benimsenmesiyle birlikte, güvenliği sağlamak için gereken kaynaklarda artış olacağı ve bu durumun uygulama ve veri güvenliği bütçelerini %15 oranında artıracağı belirtiliyor. Bu, AST çözümlerinin gerekliliğini bir kez daha ön plana çıkarıyor.
GenAI’nin yazılım geliştirmedeki rolü evrim geçirse de, AST’nin önemi giderek artıyor. Kuruluşlar, GenAI’nin getirdiği hız avantajından faydalanırken, entegre ve otomatize edilmiş AST çözümleriyle güvenlik ve kalite standartlarını korumalıdır. Bu yaklaşım, GenAI’nin potansiyelini gerçekleştirirken karşılaşılan riskleri minimize etmenin anahtarıdır.
Yakın tarihten bir örnek
Synopsys olarak GenAI, AST yolculuğunda bir sonraki evrimsel adım olarak görülmektedir. Tarih, AST’nin yeni teknolojinin vaat ettiği faydaları elde etmek isteyen kuruluşlara olanak sağlayabileceğini göstermektedir. Kuruluşların geniş çaplı açık kaynak kullanımının algılanan risklerini kabul etmekte isteksiz oldukları açık kaynak yazılımın (OSS) ilk günleriyle bir paralellik kurulabilir. Günümüze geldiğimizde çoğu uygulama %77 veya daha fazla açık kaynak kodlu yazılımdan oluşmaktadır.
OSS yaygınlaşmaya başladıkça, kuruluşlar bunu yönetmek, bağımlılıkları izlemek ve potansiyel güvenlik açıklarını belirlemek için mücadele etti. OSS’nin kuruluşlar tarafından erken benimsenmesi, öncelikle lisanslama ve IP koruması endişeleri nedeniyle engellendi buda telif hakkı yükümlülükleri ve diğer lisanslama sorunları riskini ortaya çıkardı. BlackDuck ilk olarak bu endişeleri gidermek için piyasaya sürüldü. Kuruluşlara hangi OSS’yi kullandıklarını takip etmeleri, lisans yükümlülüklerini anlamaları ve istemedikleri lisans koşullarına sahip OSS’yi kullanmaktan kaçınmaları için güvenilir bir yol sundu.
OSS kullanımı yaygınlaştıkça ve OSS bileşenleri aracılığıyla güvenlik açıkları ortaya çıktıkça, bu tür güvenlik açıklarını belirleme ve izleme ihtiyacı dikkat çekmeye başladı. İlk günlerde, açık kaynaklı bir bileşende bir güvenlik açığı keşfedildiğinde, kuruluşlar maruziyetlerini anlamaya ve hangi yazılımın düzeltilmesi gerektiğini bilmeye hazır değildi. Excel, OSS kullanımını izlemek için tercih edilen araçtı ve OSS güvenlik açıkları için merkezi bilgi tabanları muhtemelen yeni ortaya çıkıyordu. Bu durum, kuruluşların bir yandan açık kaynağın verimliliklerini benimserken bir yandan da işlerine yönelik riskleri yönetmekte zorlanmalarına neden oldu.
Black Duck, titiz bir tarama, OSS lisans ve güvenlik açığı verilerinden oluşan kapsamlı bir KnowledgeBase sunarak kuruluşların OSS’nin yanı sıra potansiyel güvenlik açıklarını ve sorunlu lisansları da tanımlamasına olanak tanır. Black Duck ayrıca kuruluşların OSS kullanımını takip etmesine yardımcı olmak ve yeni güvenlik açıkları keşfedildiğinde anında bilgi sağlamak için kullanılabilecek bir üründür. Black Duck ile kuruluşlar OSS kullanımının doğasında var olan riskleri ele alabilir ve OSS’nin benimsenmesini hızlandırarak ilgili faydaları elde edebilir.
GenAI kodlama asistanları tarafından üretilen kod, lisanslama ve güvenlik açığı riskleri için aynı potansiyeli taşır. SCA çözümlerinin OSS kullanan kuruluşların riskini azalttığı gibi, SCA da yapay zeka tarafından üretilen kodun taranması için çok önemli bir bileşendir.
Değişen zorlukların üstesinden gelmek
GenAI’nin istenen işlevselliğe sahip kodu sunmayı nasıl öğrendiğinin doğası, gelişen AST tekniklerini bilmeyi gerektirir. OSS kodunun snippet adı verilen çıkarılmış kısımları buna iyi bir örnektir. Tanımlanması zaten zor olan kod parçacıkları, LLM’lere kolayca entegre edilebilir ve GenAI tarafından üretilen kodda çoğaltılabilir. Yapay zeka tarafından üretilen bir snippet, kısıtlayıcı bir lisans türüne sahip açık kaynaklı bir bileşenden geliyorsa, kuruluş yasal ve uyumluluk riski altındadır.
Ne yazık ki, çoğu SCA aracı, snippet’leri tespit etmek için gelişmişlikten yoksun dosya sistemi tarama tekniklerini kullanır. Ancak BlackDuck, parçacıkları tanımlamak ve bunları kaynağına geri bağlamak için daha ince taneli tarama teknikleri kullanır ve lisanslama sorunlarını tespit eder. Gelişmiş tarama teknikleri ayrıca OSS kodunun diğer OSS kodlarını çağırdığı iç içe geçmiş bağımlılıkları da tanımlar.
BlackDuck’ın analizi, bir avuç satır kadar küçük parçacıkları, kaynaklandıkları açık kaynak projeleriyle eşleştirebilir. Sonuç olarak, Black Duck müşterilere bu projeyle ilişkili lisansı sağlayabilir, ilgili risk ve yükümlülükler hakkında tavsiyelerde bulunabilir. Bu, 6 milyondan fazla açık kaynak projesi ve 2.750’den fazla benzersiz açık kaynak lisansından oluşan bir Bilgi Bankası tarafından desteklenmektedir. Parçacıkları tanımlama yeteneği, kod geliştirmek için GenAI kullanmak isteyen kuruluşlara kritik bir yetenek sağlar.
Snippet’lerin orijinal OSS bileşenindeki güvenlik açıklarını da içerebileceği ve bu güvenlik açıklarının SCA iş akışları aracılığıyla izlenmesinin çok daha zor olduğu unutulmamalıdır. Burada da AST’nin en iyi uygulamalarını takip etmek kritik önem taşır, zira kod açıkları statik uygulama güvenlik testleri (SAST) ile, çalışma zamanı açıkları ise dinamik uygulama güvenlik testleri (DAST) yoluyla tespit edilebilmelidir. SCA, SAST ve DAST’ın “temel üç” test programı, yazılımınıza güven oluşturmak için vazgeçilmez ve gerekli bileşenler olmaya devam etmektedir.
Özet
GenAI, kodun oluşturulmasını hızlandırma çabası devam ettikçe yazılım geliştirmeye değişim getirecektir. Tüm “sihirli değnek” teknolojilerinde olduğu gibi, GenAI’nin de vaat edilen faydaları sağlamak için ele alınması gereken sınırlamaları ve tuzakları olacaktır. Ancak, uygulama güvenlik testi ihtiyacını ortadan kaldıran bozulmamış, güvenli kod vaatleri en iyi ihtimalle erken ve kötü tasarlanmış olabilir.
Uygulama güvenlik testi, kuruluşların bu teknolojiyi kullanmasını sağlarken aynı zamanda yapay zeka tarafından üretilen kodun işletme için gerçek riskler yaratmamasını sağlayan bir yol sağlayabilir. AST, tıpkı OSS için olduğu gibi GenAI’nin benimsenmesi için bir katalizör olabilir. Kuruluşlar, GenAI’nin faydalarından yararlanabilmelerini sağlamak için AST politikalarını ve süreçlerini geliştirmelidir.
