Arama Yapın

Aramak istediğiniz kelimeyi boşluğa yazıp arama butonuna basın.

Yapay zeka tarafından üretilen kod yeterince güvenli mi? Belki de değildir.

E-Data Teknoloji

  • Anasayfa
  • Yapay zeka tarafından üretilen kod yeterince güvenli mi? Belki de değildir.

Yapay zeka tarafından üretilen kod yeterince güvenli mi? Belki de değildir.

18 / Temmuz / 24

Üretken yapay zeka, yazılım oluşturma şeklimizi dönüştürecek önemli bir etken olarak ortaya çıktı. Açık kaynak, mobil cihazlar, bulut bilişim, hatta internetin kendisi kadar önemli olmaya aday. Üretken Yapay Zekanın etkilerini şimdiden görüyoruz. Yapay Zeka Gartner Hype Cycle a göre geliştiriciler tarafından yapılan işlerin %30’unu otomatikleştirebilir.

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

Geliştiricilerin yapay zekalı kodlama asistanlarını benimsemeye hevesli olmaları büyük bir sürpriz değil. Son 20 yıldır otomatik tamamlama özelliğine sahip IDE’leri zaten kullanıyorlar. Bu durumda kim birkaç satır kod yazıp işi yapay zekanın bitirmesini 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, bazı riskler devam ediyor. Bu araçların üzerine inşa edildiği büyük dil modelleri (LLM’ler), kamuya açık alanda bulunan milyonlarca satır kod üzerinde eğitiliyor. Ama hangi kod? İyi kod mu? Kötü kod mu? Cevap her ikisi de.

Bu araçların eğilimli olduğu durumlar aşağıdaki gibidir;

● Hata ve/veya güvenlik kusurları içeren kod üretme
● Doğru olduğunu üşündüğü ancak doğru olmayan kod üretme

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ığı türlerinden (CWE’ler) kaçınmada başarılı olduğunu göstermektedir

CWE 787: Sınırların Dışında Yazma

CWE 79: Siteler Arası Komut Dosyası Yazma

CWE 416: Serbest Bırakıldıktan Sonra Kullanma

CWE 125: Sınırların Dışında Okuma

CWE 190: Tamsayı Taşması

CWE 119: İşlemlerin Uygunsuz Şekilde Kısıtlanması

 

Bu kusurları tespit etmek genellikle daha kolaydır çünkü bunlar bir programlama dilinin sözdizimindeki kusurların sonucunda meydana gelir. Diğer, daha karmaşık güvenlik kusurları ise başka bir hikayedir. Copilot, bir uygulamanın verilerle ve harici girdilerle etkileşime girme şeklinin sonucu olan güvenlik açıklarını önlemede daha az etkiliydi.

İçerdikleri sorunlar;

 

CWE 20: Uygun Olmayan Girdi Doğrulaması

CWE 502: Güvenilmeyen Verilerin Kalıplaşması

CWE 78: İşletim Sistemi Komut Enjeksiyonu

CWE 22: Yol Geçişi

CWE 434: Tehlikeli Türe Sahip Dosyanın Sınırsız Yüklenmesi

CWE 522: Yetersiz Korunan Kimlik Bilgileri

 

Buna ek olarak, “Asleep at the Keyboard? GitHub Copilot’un Kod Katkılarının Güvenliğinin Değerlendirilmesi” gibi çalışmalar, yapay zeka kodlama asistanlarının gerçekten de geliştirmeyi hızlandırdığını, ancak oluşturdukları programların %40’ında güvenlik açıkları bulunduğunu göstermiştir.

 

Ağustos 2023 tarihli bir başka rapor olan “GitHub’ın Copilot’u Koddaki Güvenlik Açıklarını Ortaya Çıkarma Konusunda İnsanlar Kadar Kötü mü?” başlıklı rapor ise farklı bir yaklaşım benimsedi. GitHub Copilot tarafından üretilen kod ile insanlar tarafından yazılan kod aynı komut istemi ile karşılaştırıldı. Burada, GitHub Copilot’un zamanın yaklaşık üçte birinde güvenlik açığına sahip kod ürettiği, yaklaşık %25’inde ise güvenlik açıklarından kaçındığı tespit edildi. İlginç bir şekilde, araştırmacılar CoPilot’un neredeyse yarısında insanlar tarafından üretilen koddan önemli ölçüde farklı bir kod ürettiğini gözlemledi.

 

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

 

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

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

Tam olarak kilit nokta burası. Yapay zeka tarafından üretilen kod, geliştirme sürecinizi önemli ölçüde hızlandırabilir, ancak yine de geliştiricileriniz tarafından yazılan kod kadar, hatta daha fazla, bu kodu gözden geçirmeniz ve doğrulamanız gerekir.

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

 

1.Net kurallar ve yönergeler belirleyin: Üretkenlik, güvenlik ve fikri mülkiyetin korunması üzerindeki etkileri göz önünde bulundurarak geliştirme sürecinde yapay zeka araçlarının kullanımına ilişkin net kurallar ve yönergeler belirleyin.

2.Yapay Zeka kodlama asistanı araçlarını kullanmadan önce inceleyin: Kurumsal politikalar ve standartlarla uyumluluğu sağlamak için Yapay Zeka kodlama asistanı araçlarını dikkatlice incelemek çok önemlidir.

3.Titiz doğrulama süreçleri uygulayın: Kuruluşlar, yapay zeka tarafından üretilen 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 olanı kucaklamak

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. Proaktif yönetişim önlemlerini benimseyerek ve en iyi uygulamalara bağlı kalarak, kuruluşunuz fikri mülkiyetinizi korurken, yazılım projelerinizin bütünlüğünü sağlar ve yapay zeka tarafından üretilen kodun gücünden yararlanabilir. Yapay zeka odaklı geliştirme alanına daha fazla girdikçe, uyanıklık ve stratejik planlama, önümüzde durani gelişen zorlukları ve fırsatları yönlendirmenin anahtarı olacaktır.

Synopsys nasıl yardımcı olabilir?

Synopsys, pazar lideri AppSec motorlarımızın gücünü üretken yapay zeka ile birleştirerek işletmelerin talep ettikleri hızda daha güvenli yazılımlar üretmelerine yardımcı olur. 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ı gönderebilirler.