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:
- Hatalar ve/veya güvenlik kusurları içeren kod oluşturma
- Doğru olduğunu “düşündüğü” ancak doğru olmayan kodu oluşturmak
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.
- CWE 787: Out-of-Bounds Write
- CWE 79: Cross-Site Scripting
- CWE 416: Use After Free
- CWE 125: Out-of-Bounds Read
- CWE 190: Integer Overflow
- CWE 119: Improper Restriction of Operations
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.
- CWE 20: Improper Input Validation
- CWE 502: Deserialization of Untrusted Data
- CWE 78: OS Command Injection
- CWE 22: Path Traversal
- CWE 434: Unrestricted Upload of File with Dangerous Type
- CWE 522: Insufficiently Protected Credentials
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.
- Net kurallar ve yönergeler oluşturun: Ödevinizi yapın ve üretkenlik, güvenlik ve fikri mülkiyet koruması üzerindeki etkilerini göz önünde bulundurarak geliştirmede yapay zeka araçlarının kullanımı için net kurallar ve yönergeler tanımlayın.
- AI kodlama yardımcısı araçlarını kullanmadan önce inceleyin: Kurumsal politikalar ve standartlarla uyumluluğu sağlamak için AI kodlama yardımcısı araçlarını dikkatlice incelemek çok önemlidir. Araç satıcısı IP’nizi nasıl korur? LLM’lerinin eğitildiği veriler konusunda ne kadar şeffaflar?
- Titiz doğrulama süreçleri uygulayın: Kuruluşlar, yapay zeka tarafından oluşturulan kodun güvenliğini ve kalitesini doğrulamak için statik analiz de dahil olmak üzere titiz doğrulama süreçleri uygulamalıdır.
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.