BLOG

Yapay zeka tarafından oluşturulan kod güvenli mi?

Yayınlanma Tarihi

Temmuz 26, 2024

Paylaş

Belki. Beki de değil!

Üretken (generative) yapay zeka, yazılım oluşturma şeklimizi dönüştürecek bir sonraki büyük şey olarak ortaya çıktı. Etkisinin, açık kaynak, mobil cihazlar, bulut bilişim, hatta internetin kendisi kadar önemli olacağı öngörülüyor. Üretken Yapay Zekanın etkilerini şimdiden görüyoruz ve son Gartner Yapay Zeka Hype Cycle™’a göre, yapay zeka nihayetinde geliştiriciler tarafından yapılan işin şimdilik %30’a kadarını otomatikleştirmek mümkün.

GitHub, Copilot gibi yapay zeka kodlama asistanları, programcılar için önemli bir kuvvet çarpanı olabilir. GitHub tarafından yapılan ilk analiz, Copilot kullanımının genel üretkenliği %50, dağıtımları %25, kod işlemelerini %45 ve birleştirme isteklerini %35 artırabileceğini gösterdi. GitHub ayrıca Copilot kullanımının daha hızlı birim testi yoluyla kaliteyi artırdığını, kod hatalarını ve birleştirme çakışmalarının sayısını azalttığını buldu. Ayrıca, konuşma arayüzü ile erişilebilirliğin yanı sıra genel geliştirici memnuniyetini de artırdı.

Geliştiricilerin yapay zeka kodlama asistanlarını benimsemeye hevesli olmaları büyük bir sürpriz değil. Zaten, son 20 yıldır otomatik tamamlama özelliğine sahip IDE’leri kullanıyorlar. Bu göz önüne alındığında, kim, birkaç satır kod yazmak ve üstüne yapay zekanın işi bitirmesine izin vermek istemez ki?

Yapay zeka kodlama asistanları daha iyi, daha güvenli kod yazıyor mu?

Yapay zeka kodlama asistanlarının potansiyel üretkenlik kazanımları geliştiriciler için karşı konulmaz olsa da, bu, ekiplerin ücretsiz öğle yemeği alacağı anlamına gelmez. Yapay zeka araçları hızla gelişiyor, ancak bir takım riskler devam ediyor. Bu araçların üzerine inşa edildiği büyük dil modelleri (LLM’ler), kamuya açık alanda milyonlarca kod satırı üzerinde eğitilir. Ama hangi kod? İyi kod? Kötü kod mu? Cevap her ikisi de ve sonuç olarak, bu araçlar şunlara eğilimlidir:

Bu, yapay zekanın iyi kod üretemeyeceği anlamına gelmez. Copilot’u analiz eden çalışmalar, genel olarak, aşağıdakiler de dahil olmak üzere belirli güvenlik zayıflıklarından (CWE’ler) kaçınmada başarılı olduğunu göstermektedir.

Bu kusurların tespit edilmesi genellikle daha kolaydır çünkü bunlar bir programlama dilinin sözdizimindeki kusurların sonucudur. Diğer, daha karmaşık güvenlik kusurları başka bir hikaye. Copilot, bir uygulamanın verilerle ve dış girdilerle etkileşim kurma şeklinin bir sonucu olan güvenlik açıklarından kaçınmada daha az etkiliydi. Bunlar şunları içerir.

Bunun yanı sıra Ağustos 2021’de yayınlanan “Klavye Başında Uyuyor musunuz?  GitHub Copilot’un Kod Katkılarının Güvenliğinin Değerlendirilmesi” başlıklı çalışma, yapay zeka kodlama asistanlarının gerçekten geliştirmeyi hızlandırmasına rağmen, oluşturdukları programların %40’ının güvenlik açıklarına sahip olduğunun bulunduğunu gösterdi.

Ağustos 2023 tarihinde yayınlanan başka bir rapor, “GitHub’ın Yardımcı Pilotu, Koddaki Güvenlik Açıklarını Tanıtmada İnsanlar Kadar Kötü mü?” daha farklı bir yaklaşım benimsedi. GitHub Copilot tarafından oluşturulan kodu, her ikisine de aynı istem verildiğinde insanlar tarafından yazılan kodla karşılaştırdı. Burada, GitHub Copilot’un zamanın yaklaşık üçte birinde güvenlik açığı kodu ürettiği ve zamanın yaklaşık %25’inde güvenlik açıklarından kaçındığı bulundu. İlginç bir şekilde, araştırmacılar CoPilot’un neredeyse yarısının bir insan geliştirici tarafından üretilenden önemli ölçüde farklı kod ürettiğini gözlemledi.

Son olarak, Ekim 2023 tarihli “GitHub’da Copilot Tarafından Oluşturulan Kodun Güvenlik Zayıflıkları” adlı üçüncü bir rapor, GitHub’da Copilot tarafından oluşturulan kodun yaklaşık %35’inin güvenlik açıkları içerdiğini buldu.

Güvenlik risklerinden kaçınırken yapay zeka tarafından oluşturulan kodun avantajlarından yararlanmak

Bu, yapay zeka kodlama asistanlarının kötü olduğu ve ekibinizin onlardan kaçınması gerektiği anlamına mı geliyor? Aslında hiç te öyle değil. Gerçek şu ki, AI kod cini şişeden çıktı ve geri dönmeyecek. Ayrıca, yapay zeka tarafından oluşturulan kod muhtemelen birçok geliştiricinin (özellikle daha az deneyimli olanlar) ürettiği koddan daha hatalı veya savunmasız değildir.

Ve burada temel çıkarımımız yatıyor. Yapay zeka tarafından oluşturulan kod, geliştirmenizi önemli ölçüde hızlandırabilir, ancak yine de geliştiricileriniz tarafından yazılan koddan daha fazla olmasa da en az onlar kadar gözden geçirmeniz ve doğrulamanız gerekir.

Peki, kuruluşunuz güvenlik ve kalite risklerinden kaçınırken yapay zeka tarafından oluşturulan kodun avantajlarından yararlanmak için ne yapmalıdır? Geliştiricilerin Stack Overflow’da okudukları herhangi bir aracı indirmelerine ve kullanmalarına izin vermeyin. Bunun yerine, bu üç temel alanı ele alan bir plan yapın.

Kaçınılmaz olanla kucaklaşmak

Yapay zeka, yazılım geliştirme ortamını yeniden şekillendirmeye devam ederken, kuruluşların inovasyon ve risk azaltma arasında hassas bir denge kurması gerekiyor. Kuruluşunuz, proaktif yönetişim önlemlerini benimseyerek ve en iyi uygulamalara bağlı kalarak, fikri mülkiyetinizi korurken ve yazılım projelerinizin bütünlüğünü sağlarken yapay zeka tarafından oluşturulan kodun gücünden yararlanabilir. Yapay zeka odaklı geliştirme alanına daha fazla girerken, tetikte olma ve stratejik planlama, önümüzde duran gelişen zorlukların ve fırsatların üstesinden gelmenin anahtarı olacaktır.

Synopsys ve Forcerta Size nasıl yardımcı olabilir?

Synopsys, pazar lideri AppSec motorlarının gücünü üretken yapay zeka ile birleştirerek işletmelerin işlerinin talep ettiği hızda daha güvenli yazılımlar üretmelerine yardımcı oluyor, böylece geliştiriciler ve güvenlik ekipleri, işletmenizin ihtiyaç duyduğu yeniliği sağlamak için daha güvenli yazılımları daha hızlı teslim edebiliyor. Synopsys uygulama güvenliği çözümleri konusunda daha fazla bilgi almak için hemen Forcerta’yı arayabilirsiniz.

Kaynak: Is AI-Generated Code Secure? | Synopsys Blog