Yapay Zekayla Üretilen Kodlara Hazır mıyız? PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Yapay Zeka Tarafından Oluşturulan Kod için Hazır mıyız?

Son aylarda bilgisayarda oluşturulan yüzlerin, kedi resimlerinin, videoların, makalelerin ve hatta sanatın kalitesine hayran kaldık. Yapay zeka (AI) ve makine öğrenimi (ML) de GitHub Copilot, Tabnine, Polycode gibi araçlarla sessizce yazılım geliştirmeye girdi. ve diğerleri Mevcut kod otomatik tamamlama işlevini yapay zeka steroidlerine yerleştirmenin bir sonraki mantıksal adımını atıyoruz. Ancak kedi resimlerinden farklı olarak uygulama kodunun kökeni, kalitesi ve güvenliği geniş kapsamlı etkilere sahip olabilir; araştırmalar en azından güvenlik açısından riskin gerçek olduğunu gösteriyor.

Önceki akademik araştırma GitHub Copilot'un sıklıkla güvenlik açıklarına sahip kod ürettiğini zaten göstermiştik. Yakın zamanda Invicti güvenlik mühendisi Kadir Arslan'ın uygulamalı analizi şunu gösterdi: güvenli olmayan kod önerileri Copilot'ta hala istisna değil kuraldır. Arslan, birçok ortak göreve ilişkin önerilerin yalnızca mutlak temelleri içerdiğini, çoğunlukla en temel ve en az güvenli rotayı izlediğini ve bunları değişiklik yapılmadan kabul etmenin işlevsel ancak savunmasız uygulamalarla sonuçlanabileceğini buldu.

Copilot gibi bir araç (tasarım gereği), otomatik tamamlama özelliği bir adım daha ileri gitti ve benzer bir bağlamda alakalı olabilecek parçacıkları önermek için açık kaynak kodu üzerinde eğitildi. Bu, önerilerin kalitesini ve güvenliğini eğitim setinin kalitesine ve güvenliğine yakından bağlı hale getirir. Yani daha büyük sorular Copilot veya başka bir özel araçla ilgili değil, genel olarak yapay zeka tarafından oluşturulan yazılım koduyla ilgili.

Yardımcı Pilot'un sadece mızrağın ucu olduğunu ve benzer jeneratörlerin önümüzdeki yıllarda sıradan hale geleceğini varsaymak mantıklı olacaktır. Bu, teknoloji endüstrisi olarak bizlerin bu kodun nasıl oluşturulduğunu, nasıl kullanıldığını ve işler ters gittiğinde sorumluluğu kimin alacağını sormaya başlamamız gerektiği anlamına geliyor.

Satnav Sendromu

İşlev adlarını tamamlamak için işlev tanımlarını arayan ve hangi argümanlara ihtiyacınız olduğunu size hatırlatan geleneksel kod otomatik tamamlama, büyük bir zaman tasarrufu sağlar. Bu öneriler yalnızca belgeleri kendi başınıza aramanın bir kısayolu olduğundan, IDE'nin önerdiği her şeye örtülü olarak güvenmeyi öğrendik. Yapay zeka destekli bir araç devreye girdiğinde önerilerinin doğruluğu artık garanti edilmez; ancak yine de kendilerini samimi ve güvenilir hissederler, dolayısıyla kabul edilme olasılıkları daha yüksektir.

Özellikle daha az deneyimli geliştiriciler için, ücretsiz bir kod bloğu almanın rahatlığı, "Bu kod yazacağım şeye yeterince yakın mı?" sorusundan "Bu kodu işime yarayacak şekilde nasıl değiştirebilirim?" şeklindeki zihniyet değişimini teşvik eder.

GitHub, Copilot önerilerinin her zaman dikkatli bir şekilde analiz edilmesi, gözden geçirilmesi ve test edilmesi gerektiğini çok açık bir şekilde belirtir, ancak insan doğası, alt kodların bile ara sıra üretime geçeceğini belirtir. Bu biraz, yoldan çok GPS'inize bakarak araba sürmeye benziyor.

Tedarik Zinciri Güvenliği Sorunları

The Log4j güvenlik krizi yazılım tedarik zinciri güvenliğini ve özellikle de açık kaynak güvenliğini ilgi odağı haline getirdi. Beyaz Saray notu güvenli yazılım geliştirme ve yeni bir açık kaynak güvenliğinin iyileştirilmesine ilişkin yasa tasarısı. Bu ve diğer girişimlerle, uygulamalarınızda herhangi bir açık kaynak kodunun bulunmasının yakında bir yazılım malzeme listesine (SBOM) yazılması gerekebilir; bu da yalnızca belirli bir bağımlılığı bilerek dahil etmeniz durumunda mümkün olabilir. Yazılım kompozisyon analizi (SCA) araçları aynı zamanda güncelliğini kaybetmiş veya savunmasız açık kaynak bileşenlerini tespit etmek ve işaretlemek için de bu bilgiye dayanır.

Peki ya uygulamanız, sonuçta açık kaynaklı bir eğitim setinden kaynaklanan, yapay zeka tarafından oluşturulan kod içeriyorsa? Teorik olarak, önemli bir öneri bile mevcut kodla aynı olsa ve olduğu gibi kabul edilse, yazılımınızda açık kaynak kodu olabilir ancak SBOM'unuzda olmayabilir. Bu, uyumluluk sorunlarına yol açabilir ve kodun güvenli olmadığı ve ihlalle sonuçlandığı takdirde sorumluluk potansiyelinden bahsetmeye bile gerek yok - ve SCA, kendi kodunuzdaki güvenlik açıklarını değil, yalnızca savunmasız bağımlılıkları bulabileceğinden size yardımcı olmayacaktır. .

Lisanslama ve Atıf Tuzakları

Bu düşünce zincirini sürdürerek açık kaynak kodunu kullanmak için lisans şartlarına uymanız gerekir. Belirli açık kaynak lisansına bağlı olarak, en azından atıf sağlamanız veya bazen kendi kodunuzu açık kaynak olarak yayınlamanız gerekecektir. Bazı lisanslar ticari kullanımı tamamen yasaklamaktadır. Lisans ne olursa olsun kodun nereden geldiğini ve nasıl lisanslandığını bilmeniz gerekir.

Yine, uygulamanızda mevcut açık kaynak koduyla aynı olan, yapay zeka tarafından oluşturulmuş bir kod varsa ne olur? Bir denetim yaptırmış olsaydınız, gerekli ilişkilendirme olmadan kod kullandığınızı tespit eder miydi? Ya da belki uyumlu kalabilmek için ticari kodunuzun bir kısmını açık kaynak haline getirmeniz gerekiyor? Belki bu mevcut araçlarla henüz gerçekçi bir risk değil, ancak bunlar hepimizin 10 yıl sonra değil bugün sormamız gereken türden sorular. (Açık olmak gerekirse, GitHub Copilot'un, tedarik zinciri risklerini en aza indirmek için mevcut kodla eşleşen önerileri engelleyen isteğe bağlı bir filtresi vardır.)

Daha Derin Güvenlik Etkileri

Güvenliğe dönecek olursak, bir AI/ML modeli yalnızca eğitim seti kadar iyi (ve aynı zamanda kötü). Bunu geçmişte de gördük - örneğin aşağıdaki durumlarda ırksal önyargıları gösteren yüz tanıma algoritmaları eğitildikleri veriler nedeniyle. Dolayısıyla, bir kod oluşturucunun güvenliği hiç dikkate almadan sık sık öneriler ürettiğini gösteren bir araştırmamız varsa, onun öğrenme setinin (yani kamuya açık kodun) böyle olduğu sonucunu çıkarabiliriz. Peki ya yapay zeka tarafından oluşturulan güvenli olmayan kod bu kod tabanına geri beslenirse? Öneriler güvenli olabilir mi?

Güvenlik soruları bununla bitmiyor. Yapay zeka tabanlı kod oluşturucular popülerlik kazanırsa ve yeni kodun önemli bir kısmını oluşturmaya başlarsa, muhtemelen birileri onlara saldırmaya çalışacaktır. Öğrenme setini zehirleyerek AI görüntü tanımayı kandırmak zaten mümkün. Kötü niyetli aktörler, er ya da geç, önerilerde ortaya çıkması ve sonunda bir üretim uygulamasına dönüşerek onu kolay bir saldırıya açık hale getirmesi umuduyla benzersiz derecede savunmasız kodları genel depolara koymaya çalışacaklardır.

Peki ya monokültür? Birden fazla uygulama, kaynağı ne olursa olsun aynı yüksek güvenlik açığına sahip öneriyi kullanırsa, güvenlik açığı salgınlarına ve hatta yapay zekaya özgü güvenlik açıklarına bakıyor olabiliriz.

Yapay Zekayı Gözetlemek

Bu senaryolardan bazıları bugün çok zor görünebilir, ancak bunların hepsi teknoloji endüstrisinde tartışmamız gereken şeyler. Yine GitHub Copilot, yalnızca şu anda yol gösterdiği için ön plandadır ve GitHub, yapay zeka tarafından oluşturulan önerilerin uyarıları hakkında net uyarılar sağlar. Telefonunuzdaki otomatik tamamlama veya satnav'ınızdaki rota önerileri gibi bunlar da yalnızca hayatımızı kolaylaştıracak ipuçlarıdır ve bunları almak veya bırakmak bize kalmıştır.

Geliştirme verimliliğini katlanarak artırma potansiyelleri ile yapay zeka tabanlı kod oluşturucuların, yazılım dünyasının kalıcı bir parçası haline gelmesi muhtemeldir. Ancak uygulama güvenliği açısından bu, üretime girmesine izin verilmeden önce sıkı güvenlik testlerinden geçmesi gereken, potansiyel olarak savunmasız kodların bir başka kaynağıdır. Güvenlik açıklarını (ve potansiyel olarak denetlenmeyen bağımlılıkları) doğrudan birinci taraf kodunuza kaydırmanın yepyeni bir yolunu arıyoruz; bu nedenle, AI ile güçlendirilmiş kod tabanlarını test edilene kadar güvenilmez olarak ele almak mantıklıdır ve bu, her şeyi istediğiniz sıklıkta test etmek anlamına gelir. olabilmek.

Copilot gibi nispeten şeffaf makine öğrenimi çözümleri bile güvenlik kaygılarının yanı sıra bazı yasal ve etik soruları da gündeme getiriyor. Ancak bir gün yeni bir aracın mükemmel çalışan ve güvenlik testlerini geçen kodlar üretmeye başladığını hayal edin, tek bir küçük ayrıntı dışında: Kimse onun nasıl çalıştığını bilmiyor. İşte o zaman paniğe kapılma zamanıdır.

Zaman Damgası:

Den fazla karanlık okuma