Windows geliştirmede güvenlik ve sorumlu yapay zeka

Yapay zeka araçları uygulama geliştirme Windows önemli ölçüde hızlandırabilir, ancak hız sorumluluğu kaldırmaz. Yapay zeka aracınızın oluşturduğu kod, sevk ettiğiniz koddur ve nasıl yazıldığına bakılmaksızın uygulamanızdaki her şeyden sorumlu olursunuz.

Bu sayfada ilgili iki konu ele alınıyor: uygulama oluşturmak için yapay zeka araçlarını kullanmaya yönelik sorumlu uygulamalar ve yapay zeka tarafından oluşturulan koda özgü güvenlik sorunları.

Kodun sahibi sizsiniz

Bir yapay zeka aracısı bir işlev, düzen veya API çağrısı oluşturduğunda, bunu işlediğiniz anda kodunuz olur. Kodun elle yazılmış veya oluşturulmuş olmasına bakılmaksızın aynı standartlar geçerlidir:

  • Kabul etmeden önce her değişikliği okuyun ve anlayın
  • Yapay zeka tarafından oluşturulan kodu en az el yazısıyla yazılmış kod kadar kapsamlı bir şekilde test edin— modeller, tamamen yanlış olan mantıklı görünen kodlar oluşturabilir
  • Üretimdeki bir hatanın veya güvenlik sorununun açıklaması olarak "yapay zeka yazdı" ifadesini kullanmayın

Yapay zeka araçları kod gözden geçirme gereksinimini ortadan kaldırmaz. Ne(yi) gözden geçirdiğinizi değiştirirler, gözden geçirip geçirmediğinizi değil.

Yapay zeka araçlarına gönderilmemesi gerekenler

istemlere ve bağlam pencerelerine neleri dahil ettiğinizi özellikle unutmayın:

  • Gizli diziler ve kimlik bilgileri — API anahtarlarını, parolaları veya bağlantı dizelerini hiçbir zaman bir istem içine yapıştırmayın. Özel sohbet oturumunda bile istemlerdeki kimlik bilgileri bir güvenlik riskidir ve günlüklerde görünebilir. Aşağıda yer alan Kimlik bilgileri ve gizli anahtar işleme bölümüne bakın.
  • Müşteri verileri ve PII — Bir hatayı açıklamak için bile örnek giriş olarak gerçek müşteri adlarını, e-postaları veya kullanım verilerini kullanmayın. Yapay veri kullanın.
  • Özel iş mantığı — kuruluşunuzun iç sistem kodunu paylaşmadan önce dış yapay zeka hizmetlerine hangi kaynak kodunun gönderilebileceğine ilişkin ilkesini anlayın.

Giriş doğrulama

Yapay zeka, aşırı hoşgörülü girdi işleme üretme eğilimindedir. Kullanıcı girişi üzerinde hareket etmeden önce uzunlukları, türleri ve aralıkları her zaman doğrulayın.

  • Kabuk komutlarına, dosya yollarına veya veritabanı sorgularına hiçbir zaman ham TextBox.Text değerler geçirmeyin.
  • Depolama alanına yazmadan veya ağ üzerinden göndermeden önce dize uzunluklarını doğrulayın.
  • Dosya yolları için izin listesi yaklaşımı kullanın; çözümlenen yolların beklenen dizinler içinde kalıp kalmadığını denetleyin.

Bunu isteminize ekleyin: "Kullanıcıya yönelik tüm alanlara giriş doğrulama ve uzunluk sınırları ekleyin."

Kimlik bilgileri ve gizli dizi işleme

API anahtarlarını, parolalarını veya bağlantı dizelerini asla sabit kodlamayın. Yapay zeka genellikle gibi "your-api-key-here" yer tutucu dizeler oluşturur; bunları hata olarak ele alır.

  • Kimlik bilgilerini Windows.Security.Credentials.PasswordVault içinde depolayın:

    var vault = new PasswordVault();
    vault.Add(new PasswordCredential("MyApp", username, password));
    
  • Bunları çalışma zamanında alın:

    var credential = vault.Retrieve("MyApp", username);
    credential.RetrievePassword();
    
  • Sunucu tarafı veya CI senaryolarında hizmet kimlik bilgileri için ortam değişkenlerini veya Azure Key Vault kullanın.

Paket ve bağımlılık bütünlüğü

Yapay zeka aracısını projenize eklemeden önce önerdiği her NuGet paketini gözden geçirin.

  • nuget.org üzerindeki yayımcıyı doğrulayın; mavi kalkanı (Microsoft) veya bilinen bir yayımcıyı arayın.
  • Bilinen güvenlik açıklarını tarayın:
    dotnet list package --vulnerable
    
  • Son güncelleştirmeleri ve etkin bakımı olan paketleri tercih edin.

Uygulama özellikleri ve izinleri

Yapay zeka tarafından oluşturulan Package.appxmanifest dosyalar genellikle geniş özellikler içerir. <Capabilities> Bölümünü gözden geçirin ve uygulamanızın ihtiyaç duymadığı her şeyi kaldırın.

Dikkat edilmesi gereken yaygın aşırı geniş yetkiler:

  • broadFileSystemAccess — yalnızca uygulamanız rastgele dosya sistemi yollarını gerçekten okuyorsa gereklidir
  • documentsLibrary — Mağaza özel onayı gerektirir; gerekli olmadığı sürece kaçının
  • userAccountInformation — yalnızca kullanıcının adına veya fotoğrafına ihtiyacınız varsa

Kod gözden geçirme denetim listesi

Yapay zeka tarafından oluşturulan kodu göndermeden önce şunları doğrulayın:

  • Kod içine gömülü gizli bilgiler veya kimlik bilgileri yok
  • Kullanıcı girişi kullanımdan önce doğrulandı
  • İzin verilen dizinlere göre denetlenen dosya yolları
  • Bildirimde bildirilen en düşük gerekli özellikler
  • Güvenlik açıkları için taranan NuGet paketleri (dotnet list package --vulnerable)
  • PasswordVault içinde depolanan hassas veriler, ApplicationData.LocalSettings içinde değil
  • Tüm ağ çağrıları HTTPS kullanır
  • Özel durum iletileri iç yolları veya yığın izlemelerini kullanıcılara sunmaz

Yapay zeka modelleri güncelliğini yitirmiş bilgiye sahiptir

Bugün kullandığınız yapay zeka araçları, kesme tarihi olan veriler üzerinde eğitildi. Windows geliştirme için bu, modellerin WinUI 3 örneklerinden çok daha fazla UWP örneği gördüğü anlamına gelir; bu nedenle bu belgeler bölümü tam olarak mevcuttur.

Yapay zeka çıkışını aşağıdakiler için yetkili olarak kabul etmeyin:

  • Mevcut API adları ve ad alanları (WinUI 3 API başvurusu ile doğrulayın)
  • Geçerli SDK sürümleri ve paket adları
  • Mağaza ilkeleri ve gönderim gereksinimleri (bunlar sık sık değişir)
  • Güvenlik kılavuzu (modeller eski şifreleme veya kimlik doğrulama desenlerini yeniden üretebilir)

Microsoft Learn MCP sunucusu ve WinUI aracı eklentisi aracınızı geçerli belgelere topraklayarak eski bilgileri azaltır, ancak birincil kaynaklarda güvenlik açısından kritik olan her şeyi her zaman doğrular.

Accessibility

Yapay zeka tarafından oluşturulan kullanıcı arabirimi, erişilebilirlik desteğini sık sık atlar. Milyonlarca XAML örneği üzerinde eğitilmiş bir model, bu örneklerin ortalama kalitesini yeniden üretir — ve bu ortalama, geçmişte genellikle AutomationProperties, klavye ile gezintiyi ve yeterli kontrastı atlar.

Yapay zeka tarafından oluşturulan XAML veya denetim kodu kabul ederken:

  • Etkileşimli öğelerde AutomationProperties.AutomationId ve AutomationProperties.Name değerlerinin ayarlandığını denetleyin
  • Odak sırasının mantıksal olduğunu doğrulayın; sekme durakları okuma sırasına uygun olmalıdır
  • Yayımlamadan önce Narrator veya başka bir ekran okuyucuyla test edin
  • Boşlukları otomatik olarak yakalamak için Accessibility Insights for Windows aracını kullanın

Aracınıza açıkça sorun: "Bu XAML'deki tüm etkileşimli öğelere erişilebilirlik özellikleri ekleyin." Bunun yapıldığını varsayma.

Uygulamanız yapay zeka özelliklerini kullanıyorsa

Uygulamanızda yapay zeka özellikleri oluşturuyorsanız (yalnızca yapay zeka kullanarak uygulamayı yazmak için değil) ek sorumluluklar da geçerlidir.

Kullanıcılarla saydam olun. Kullanıcılara şunu söyleyin:

  • Uygulamanızın yapay zeka hizmetlerine gönderdiği veriler
  • Yapay zekanın bunları etkileyen kararlar alıp almadığı
  • Uygunsa nasıl vazgeçilir

Önemli sonuçlar doğuran eylemlerde insan denetimini sürdürün. Yapay zekanın verileri otonom olarak silmesine, satın alma yapmasına, kullanıcı adına ileti göndermesine veya açık onay olmadan geri alınamaz eylemler gerçekleştirmesine izin vermeyin.

Sapma ve beklenmeyen çıkışlar için test edin. Yapay zeka modelleri taraflı, rahatsız edici veya aslında yanlış çıkışlar üretebilir. Uygulamanızın yapay zeka özelliklerini gönderimden önce çeşitli girişler ve uç durumlarla test edin.

İçerik güvenliği araçlarını kullanın. Uygulamanız yapay zeka kullanarak kullanıcıya yönelik metin, görüntü veya diğer içerikleri oluşturuyor veya işliyorsa, kullanıcılara ulaşmadan önce zararlı çıktıları yakalamak için Azure Yapay Zeka İçerik Güvenliği veya eşdeğer filtreleme kullanın.

Lisanslama ve ilişkilendirme

Yapay zeka araçları, mevcut açık kaynak koduna benzeyen bir kod oluşturabilir. Ticari uygulamada yapay zeka tarafından oluşturulan kodu kullanmadan önce:

  • Kuruluşunuzun yapay zeka tarafından oluşturulan kod katkılarıyla ilgili politikasını öğrenme
  • Microsoft'un Copilot ve fikri mülkiyet konusundaki yönergelerini gözden geçirin
  • Herhangi bir üçüncü taraf koduna uygulayacağınız açık kaynak lisans uyumluluk denetimlerini uygulayın

Microsoft'un Sorumlu Yapay Zeka ilkeleri

Microsoft altı ilke tarafından yönlendirilen yapay zeka ürünleri ve özellikleri tasarlar: eşitlik, güvenilirlik ve güvenlik, gizlilik ve güvenlik, kapsayıcılık, saydamlık ve sorumluluk.

daha fazla bilgi için bkz. microsoft.com/ai/responsible-ai.