İşyerinde yapay zeka asistanlarının faydaları tartışmalı olsa da, bu asistanların en güvenle kullanıldığı alan yazılım geliştirmedir. Burada LLM’ler; yeniden yapılandırma ve dokümantasyondan tüm uygulamaların oluşturulmasına kadar, birçok rol oynar. Ancak, geliştirme sürecindeki geleneksel bilgi güvenliği sorunları, artık yapay zeka modellerinin kendine özgü güvenlik açıklarıyla daha da karmaşık hale gelmiştir. Bu kesişimde, neredeyse her hafta yeni hatalar ve sorunlar ortaya çıkmaktadır.
Güvenlik açığı bulunan yapay zeka tarafından oluşturulan kod
Bir büyük dil modeli kod ürettiğinde, hatalar veya güvenlik açıkları söz konusu olabilir. Sonuçta, bu modeller internette herkese açık verilerle eğitilir ve bunlara binlerce düşük kaliteli kod örneği de dahildir. Veracode’un yakın zamanda yaptığı bir araştırmaya göre, önde gelen yapay zeka modelleri artık %90 başarıyla derlenen kodlar üretmektedir. İki yıldan daha kısa bir süre önce bu rakam %20’nin altındaydı. Ancak, bu kodların güvenliği iyileşmiş diyemeyiz. %45’i hala OWASP Top-10 listesindeki klasik güvenlik açıklarını içermektedir ve son iki yılda bu konuda pek bir şey değişmiş değildir. Araştırma; Java, Python, C# ve JavaScript dillerinde yüzün üzerinde popüler LLM ve kod parçacığını kapsıyordu. Bu nedenle, LLM’nin Windsurf’te “kod tamamlama” veya Loveable’da “vibe kodlama” için kullanılıp kullanılmadığına bakılmaksızın, nihai uygulama kapsamlı bir güvenlik açığı testinden geçmelidir. Ancak pratikte bu nadiren gerçekleşir: Wiz’in yaptığı bir araştırmaya göre, vibe kodlu uygulamaların %20’sinde ciddi güvenlik açıkları veya yapılandırma hataları bulunmaktadır.
Bu tür kusurların bir örneği olarak, iki büyük veri sızıntısının ardından kötü şöhret kazanan, sadece kadınlara yönelik arkadaşlık uygulaması Tea’nın durumu sıklıkla örnek olarak gösterilir. Ancak, bu uygulama vibe kodlamadan önce geliştirilmiştir. Tea’nın hatasının sorumlusu yapay zeka mıydı, bu mahkeme tarafından belirlenecek. Ancak Enrichlead adlı startup şirketinde, suçlu kesinlikle yapay zeka idi. Kurucusu, sosyal medyada platformunun kodunun %100’ünün Cursor yapay zeka tarafından yazıldığını ve “elle yazılmış kodun sıfır” olduğunu övünerek duyurdu. Lansmanından sadece birkaç gün sonra platformun, acemi seviyesinde güvenlik açıklarıyla dolu olduğu ortaya çıktı. Bu açıklar, herkesin ücretli özelliklere erişmesine veya verileri değiştirmesine olanak tanıyordu. Kurucu, Cursor kullanarak kodu kabul edilebilir bir güvenlik standardına getiremediğinden proje sonlandırıldı. Ancak, o yılmadan devam etti ve o zamandan beri yeni vibe kodlama tabanlı projeler başlattı.
Yapay zeka tarafından üretilen kodlarda yaygın olarak görülen güvenlik açıkları
Yapay zeka destekli programlama sadece bir veya iki yıldır var olmasına rağmen, en yaygın hatalarını belirlemek için yeterli veri zaten mevcuttur ve genel olarak aşağıdaki şekilde sıralanabilir:
- Giriş doğrulamasının olmaması, kullanıcı girişlerinin gereksiz karakterlerden arındırılmaması ve siteler arası komut dosyası çalıştırma (XSS) ve SQL enjeksiyonu gibi klasik güvenlik açıklarına yol açan diğer temel hatalar.
- API anahtarları ve diğer gizli bilgilerin doğrudan web sayfasına kodlanması ve kullanıcılar tarafından kodda görülebilir olması.
- Kimlik doğrulama mantığının tamamen istemci tarafında, doğrudan tarayıcıda çalışan site kodunda uygulanması; bu mantık, herhangi bir kontrolü atlamak için kolayca değiştirilebilir.
- Günlükleri yazarken yetersiz filtrelemeden günlüklerin tamamen yok olmasına kadar günlük kayıt hataları.
- Aşırı güçlü ve tehlikeli işlevler: Yapay zeka modelleri, bir görevi mümkün olan en kısa yolla çözen kod üretmek üzere optimize edilmiştir. Ancak en kısa yol genellikle en güvenli olan değildir. Bir ders kitabı örneği, kullanıcı girdisi üzerinde matematiksel işlemler için eval işlevini kullanmaktır. Bu, oluşturulan uygulamada keyfi kod yürütülmesine olanak tanır.
- Güncel olmayan veya var olmayan bağımlılıklar: Yapay zeka tarafından oluşturulan kodlar genellikle kütüphanelerin eski sürümlerine başvurur, güncel olmayan veya güvenli olmayan API çağrılarında bulunur, hatta hayali kütüphaneleri içe aktarmaya çalışır. İkincisi özellikle tehlikelidir, çünkü saldırganlar “makul” bir isimle kötü amaçlı bir kütüphane oluşturabilir ve yapay zeka ajanı bunu gerçek bir projeye dahil edebilir.
Sistematik bir çalışmada, yazarlar yapay zeka tarafından üretilen kodu, MITRE CWE Top 25 listesinde yer alan zayıflıklar açısından taradılar. En yaygın sorunlar CWE-94 (kod enjeksiyonu), CWE-78 (işletim sistemi komut enjeksiyonu), CWE-190 (tamsayı taşması), CWE-306 (eksik kimlik doğrulama) ve CWE-434 (sınırsız dosya yükleme) idi.
CWE-94’ün çarpıcı bir örneği Nx platformunun yakın zamanda ele geçirilmesiydi ki bu konuyu daha önce ele almıştık. Saldırganlar, yeni ürün sürümlerini yayınlamalarını sağlayan bir belirteci çalarak, popüler bir geliştirme aracını trojanize etmeyi başardılar. Belirteç hırsızlığında, basit bir yapay zeka tarafından oluşturulan kod parçacığının meydana getirdiği bir güvenlik açığından yararlanıldı.
Tehlikeli komut istemleri
Geliştiriciler arasında iyi bilinen “spesifikasyona tam olarak uygun” deyimi, yapay zeka asistanıyla çalışırken de geçerlidir. İşlev veya uygulama oluşturma talimatı belirsizse ve güvenlik unsurlarından bahsetmiyorsa, güvenlik açığı bulunan kod oluşturma olasılığı keskin bir şekilde artar. Özel bir araştırma, “kodun güvenli olması için en iyi uygulamaları izlediğinden emin ol” gibi genel uyarıların bile güvenlik açıklarının oranını yarı yarıya azalttığını ortaya koydu.
Ancak en etkili yaklaşım, MITRE veya OWASP hata listelerine atıfta bulunan ayrıntılı, dile özgü güvenlik kılavuzlarını kullanmaktır. Wiz Research’ün bu tür güvenlik talimatlarının geniş bir koleksiyonu GitHub‘da mevcuttur ve bunları; claude.md, .windsurfrules veya benzeri dosyalar aracılığıyla, yapay zeka asistanlarının sistem istemlerine eklemeniz önerilir.
Revizyonlar sırasında güvenliğin bozulması
Yapay zeka tarafından üretilen kod, sonraki komutlarla tekrar tekrar revize edildiğinde güvenliği bozulur. Yakın zamanda yapılan bir çalışmada, GPT-4o daha önce yazılmış kodu 40 defaya kadar değiştirdi ve araştırmacılar her turdan sonra her sürümü güvenlik açıkları açısından taradı. Sadece beş yinelemeden sonra, kod ilk sürümden %37 daha fazla kritik güvenlik açığı içeriyordu. Çalışmada dört farklı teşvik stratejisi test edildi. Bunlardan üçü farklı ağırlık noktalarına sahipti: (i) performans, (ii) güvenlik ve (iii) yeni işlevsellik; dördüncüsü ise belirsiz ve net olmayan teşviklerle yazılmıştı.
Yeni özelliklerin eklenmesine odaklanan istemlerde, 29’u kritik olmak üzere 158 güvenlik açığı ortaya çıktı. Güvenli kodlama vurgulandığında, bu sayı önemli ölçüde azaldı, ancak yine de 38 yeni güvenlik açığı vardı ve bunların yedisi kritik düzeydeydi.
İlginç bir şekilde, “güvenlik odaklı” uyarılar, kriptografi ile ilgili işlevlerde en yüksek hata yüzdesine neden oldu.
Sektör bağlamını göz ardı etmek
Finans, sağlık ve lojistik gibi sektörlerde, uygulama geliştirme sırasında dikkate alınması gereken teknik, organizasyonel ve yasal gereklilikler bulunmaktadır. Yapay zeka asistanları bu kısıtlamaların farkında değildir. Bu sorun genellikle “derinlik eksikliği” olarak adlandırılır. Sonuç olarak, yerel veya sektörel düzenlemelerle zorunlu kılınan kişisel, tıbbi ve finansal verilerin depolanması ve işlenmesine yönelik yöntemler, yapay zeka tarafından üretilen kodlara yansıtılmaz. Örneğin, bir asistan mevduat faizini hesaplamak için matematiksel olarak doğru bir fonksiyon yazabilir, ancak düzenleyiciler tarafından uygulanan yuvarlama kurallarını göz ardı edebilir. Sağlık verileri düzenlemeleri genellikle her erişim girişiminin ayrıntılı olarak kaydedilmesini gerektirir. Bu, yapay zekanın uygun ayrıntı düzeyinde otomatik olarak uygulayamayacağı bir şeydir.
Uygulamanın yanlış yapılandırılması
Güvenlik açıkları sadece vibe koduyla sınırlı değildir. Vibe kodlama ile oluşturulan uygulamalar genellikle deneyimsiz kullanıcılar tarafından geliştirilir. Bu kullanıcılar, çalışma zamanı ortamını hiç yapılandırmazlar ya da aynı yapay zekanın tavsiyelerine göre yapılandırırlar. Bu, tehlikeli yapılandırma hatalarına yol açar:
- Uygulama tarafından gerekli kılınan veri tabanları, çok geniş dış erişim izinleriyle oluşturulur. Bu, saldırganın uygulamayı kullanmasına gerek kalmadan tüm veri tabanını indirmesine veya silmesine olanak tanıyan Tea/Sapphos gibi sızıntılara neden olur.
- Şirket içi uygulamalar, kimlik doğrulama yapılmadan herkesin erişimine açık bırakılır.
- Uygulamalara kritik veri tabanlarına erişim için yükseltilmiş izinler verilir. Bu durum, yapay zeka tarafından oluşturulan kodun güvenlik açıklarıyla birleştiğinde, SQL enjeksiyonlarını ve benzer saldırıları kolaylaştırır.
Platform güvenlik açıkları
Çoğu vibe kodlama platformu, komut istemlerinden oluşturulan uygulamaları doğrudan kendi sunucularında çalıştırır. Bu, geliştiricileri platforma bağlar. Platformun güvenlik açıklarına maruz kalma ve güvenlik uygulamalarına bağımlılık da bu kapsamda değerlendirilebilir. Örneğin, Temmuz ayında Base44 platformunda, kimliği doğrulanmamış saldırganların herhangi bir özel uygulamaya erişmesine olanak tanıyan bir güvenlik açığı keşfedildi.
Gelişim aşamasındaki tehditler
Geliştiricinin bilgisayarında geniş erişim haklarına sahip bir asistanın varlığı bile riskler yaratır. İşte birkaç örnek:
CurXecute güvenlik açığı (CVE-2025-54135), saldırganların popüler yapay zeka geliştirme aracı Cursor’a, geliştiricinin makinesinde rastgele komutlar yürütmesini emretmesine olanak tanıdı. Bunun için tek gereken, Cursor’a bağlı aktif bir Model Context Protocol (MCP) sunucusuydu ve bu sunucu, harici bir tarafın erişim için kullanabileceği bir sunucuydu. Bu tipik bir durumdur; MCP sunucuları, yapay zeka ajanlarına Slack mesajlarına, Jira sorunlarına vb. erişim izni verir. Hızlı enjeksiyon, bu kanalların herhangi biri aracılığıyla gerçekleştirilebilir.
EscapeRoute güvenlik açığı (CVE-2025-53109), geliştiricinin diskinde rastgele dosyaların okunmasına ve yazılmasına izin veriyordu. Bu kusur, yapay zeka ajanlarının sistemde dosya yazıp okumasına olanak tanıyan Anthropic’in popüler MCP sunucusunda mevcuttu. Sunucunun erişim kısıtlamaları işe yaramadı.
Yapay zeka ajanlarının Postmark aracılığıyla e-posta gönderip almasına izin veren kötü niyetli bir MCP sunucusu, tüm yazışmaları gizli bir adrese aynı anda iletiyordu. Eylül ayında bu tür kötü amaçlı MCP sunucularının ortaya çıkacağını öngörmüştük.
Gemini komut satırı arabirimindeki bir güvenlik açığı, bir geliştirici yapay zeka asistanından yeni bir projenin kodunu analiz etmesini istediğinde rastgele komutların yürütülmesine olanak sağlıyordu. Kötü amaçlı enjeksiyon, readme.md dosyasından tetiklendi.
Amazon’un Visual Studio Code için Q Developer uzantısı, geliştiricinin bilgisayarındaki tüm verileri silmek için talimatlar içeriyordu. Bir saldırgan, Amazon geliştiricilerinin yaptığı bir hatayı kullanarak, özel ayrıcalıklara sahip olmadan bu kötü amaçlı komut istemini asistanın genel koduna eklemeyi başardı. Neyse ki, küçük bir kodlama hatası bunun yürütülmesini engelledi.
Claude Code ajanı (CVE-2025-55284) içindeki bir güvenlik açığı, DNS istekleri yoluyla bir geliştiricinin bilgisayarından verilerin sızdırılmasına olanak sağladı. Onay gerektirmeden otomatik olarak çalışan yaygın yardımcı programlara dayanan hızlı enjeksiyon, ajan tarafından analiz edilen herhangi bir koda gömülebilir.
Otonom yapay zeka ajanı Replit, geliştirmekte olduğu bir projenin birincil veri tabanlarını, veri tabanının temizlenmesi gerektiğine karar verdiği için sildi. Bu, değişiklikleri yasaklayan doğrudan bir talimatı (kod dondurma) ihlal etti. Bu beklenmedik yapay zeka davranışının arkasında önemli bir mimari kusur yatıyordu: O dönemde Replit, test ve üretim veri tabanları arasında herhangi bir ayrım yapmıyordu.
Kaynak kod yorumuna yerleştirilen bir komut enjeksiyonu, Windsurf geliştirme ortamının kötü amaçlı komutları uzun süreli belleğinde otomatik olarak depolamasını sağladı ve bu sayede aylarca sistemden veri çalmasına olanak tanıdı.
Nx güvenlik ihlali olayında; Claude, Gemini ve Q için komut satırı araçları kullanılarak, virüs bulaşmış bir sistemden çalınabilecek parolalar ve anahtarlar arandı.
Yapay zeka tarafından oluşturulan kodu güvenli bir şekilde kullanma
Yapay zeka tarafından üretilen kodun risk seviyesi, organizasyonel ve teknik önlemlerin bir karışımıyla tamamen ortadan kaldırılamasa da önemli ölçüde azaltılabilir:
- Optimize edilmiş SAST araçları kullanarak, yapay zeka tarafından oluşturulan kodun yazıldığı anda otomatik olarak incelenmesini sağlayın.
- Tüm yapay zeka ortamlarının sistem istemlerine güvenlik gereksinimlerini dahil edin.
- Etkinliği artırmak için, deneyimli insan uzmanların, uzman yapay zeka destekli güvenlik analiz araçlarının desteğiyle, ayrıntılı kod incelemeleri yapmalarını sağlayın.
- Geliştiricilere güvenli komut istemleri yazmayı öğretin ve daha genel olarak, yapay zekanın güvenli kullanımı konusunda onlara kapsamlı eğitim verin.
yapay zeka
İpuçları