Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Güvenli yapay zeka aracıları oluşturmak, Agent Framework ile uygulama geliştiricileri arasında paylaşılan bir sorumluluktır. Agent Framework yapı taşları (soyutlamalar, sağlayıcılar ve düzenleme) sağlar, ancak geliştiriciler girişleri doğrulamak, veri akışlarını güvenli hale getirmek ve araçları senaryolarına uygun şekilde yapılandırmakla sorumludur.
Bu makalede, Agent Framework ile güvenli ve güvenli aracılar oluşturmaya yönelik en iyi yöntemler özetlenmektedir.
Güven sınırlarını anlama
Bir aracı çalıştırıldığında veriler çeşitli bileşenler üzerinden akar: kullanıcı girişi, sohbet geçmişi sağlayıcıları, bağlam sağlayıcıları, LLM hizmeti ve işlev araçları. Verilerin uygulamanıza girdiği veya çıktığı her sınır olası bir saldırı yüzeyini temsil eder.
Dikkate alınması gereken temel güven sınırları:
- Yapay zeka hizmeti — Sohbet iletilerini (PII ve sistem yönergelerini içerebilir) alır ve LLM tarafından oluşturulan çıkışı döndürür.
- Sohbet geçmişi depolaması — Sağlayıcılar dış depolama alanı aracılığıyla konuşma iletilerini yükleyebilir ve kalıcı hale getirir.
- Bağlam hizmetleri — Bağlam sağlayıcıları dış hizmetlerden (bellekler, kullanıcı profilleri, RAG sonuçları) veri alabilir veya depolar.
- Araç erişimli hizmetler — İşlev araçları, dış API'leri veya veritabanlarını çağırabilecek geliştirici tarafından sağlanan kodu yürütür.
Tüm dış hizmet iletişimi, geliştirici tarafından seçilen istemci SDK'ları tarafından işlenir. Agent Framework bu hizmetlerin kimlik doğrulamasını, şifrelemesini veya bağlantı ayrıntılarını yönetmez.
En iyi uygulamalar
İşlev girişlerini doğrulama
Yapay zeka, araç olarak sağladığınız herhangi bir işlevi çağırabilir ve parametreleri seçebilir. LLM tarafından sağlanan bağımsız değişkenleri, web API'sindeki kullanıcı girişine benzer şekilde güvenilmeyen giriş olarak değerlendirin.
-
İzin verme özelliğini kullanma — Bilinen-kötü desenleri filtrelemeye çalışmak yerine girişleri bilinen iyi değerlerle doğrulayın. Örneğin,
..geçiş dizilerini denetlemek yerine bir dosya yolunun izin verilen bir dizin içinde olup olmadığını kontrol edin. - Tür ve aralık kısıtlamalarını zorunlu kılma — Bağımsız değişkenlerin beklenen türde ve kabul edilebilir aralıklar içinde (sayısal sınırlar, dize uzunluğu sınırları, tarih aralıkları) olduğunu doğrulayın.
- Dize uzunluklarını sınırla — Kaynak tükenmesini veya ekleme saldırılarını önlemek için dize bağımsız değişkenlerinde maksimum uzunlukları zorunlu kılın.
- Yol geçişi engelleme — İşlevler dosya yollarını kabul ettiğinde, bunları mutlak yollara çözümleyin ve izin verilen dizinlerin içinde yer aldıklarını doğrulayın.
- Parametreli sorgular kullanın — Eğer argümanlar SQL sorgularında, kabuk komutlarında veya diğer yorumlanmış bağlamlarda kullanılıyorsa, parametreli sorgular veya kaçış karakterleri kullanın; dize birleştirmeyi asla kullanmayın.
Yüksek riskli araçlar için onay gerektir
Varsayılan olarak, bir aracıya sağlanan tüm araçlar kullanıcı onayı olmadan çağrılır. Yüksek riskli işlemleri insan onayının arkasına almak için araç onay mekanizmasını kullanın.
Hangi araçların onay gerektirdiğine karar verirken şunları göz önünde bulundurun:
- Yan etkiler — Verileri değiştiren, iletişim gönderen, satın almalar yapabilen veya başka yan etkileri olan araçlar genellikle onay gerektirir.
- Veri duyarlılığı — Hassas verilere (PII, finansal veriler, kimlik bilgileri) erişen veya bu verileri döndüren araçlar onay gerektirir.
- Geri döndürülebilirlik — Geri alınamaz işlemler (silme, e-posta gönderme) salt okunur sorgulardan daha yüksek risktir.
- Etki kapsamı — Geniş etkiye sahip araçlar (toplu işlemler) dar kapsamlı araçlardan daha fazla inceleme gerektirmelidir.
Sistem iletilerini geliştirici denetiminde tutma
Sohbet iletileri, yapay zeka hizmetinin bunları nasıl yorumladığını belirleyen bir rol (system, user, assistant, tool) taşır. Bu rolleri anlamak kritik önem taşır:
| Rol | Güven düzeyi |
|---|---|
system |
En yüksek güven — DOĞRUDAN LLM davranışını şekillendirir. Hiçbir zaman güvenilmeyen giriş içermemelidir. |
user |
Güvenilmeyen — İstem enjeksiyonu denemeleri veya kötü amaçlı içerik içerebilir. |
assistant |
Güvenilmeyen — Bir dış sistem olan LLM tarafından oluşturulur. |
tool |
Güvenilmeyen — Dış sistemlerden veya kullanıcı tarafından etkilenen içerikten veriler içerebilir. |
Son kullanıcı girişini system-role iletilerine yerleştirmeyin. Agent Framework, yazılmamış metni varsayılan olarak rol olarak user kullanır, ancak iletileri program aracılığıyla oluştururken dikkatli olun.
Veteriner uzantısı sağlayıcıları
Bağlam sağlayıcıları ve geçmiş sağlayıcıları, system dahil olmak üzere, herhangi bir rolde mesaj ekleyebilir. Yalnızca güvendiğiniz sağlayıcıları ekleyin.
Dolaylı istem eklemeye karşı farkında olun: Veri deposu tehlikeye atılırsa, kötü niyetli içerik LLM davranışını etkileyebilir. Örneğin, RAG aracılığıyla alınan bir belge, LLM'nin amaçlanan davranıştan sapmasına veya araç çağrıları aracılığıyla verileri sızdırmasına neden olan gizli yönergeler içerebilir.
LLM çıkışını doğrulama ve temizleme
LLM yanıtları güvenilmeyen çıkış olarak kabul edilmelidir. Yapay zeka hizmeti, Agent Framework'ün denetlemediği bir dış uç noktadır. Aşağıdakilere dikkat edin:
- Halüsinasyon — LLM'ler mantıklı ancak aslında yanlış bilgiler üretebilir. Doğrulama olmadan LLM çıkışını kesin bilgi olarak değerlendirmeyin.
- Dolaylı istem ekleme — Araçlar, bağlam sağlayıcıları veya sohbet geçmişi sağlayıcıları tarafından alınan veriler LLM'yi etkilemek için tasarlanmış saldırgan içerik içerebilir.
- Kötü amaçlı yükler — LLM çıkışı, temizleme olmadan işlenir veya yürütülürse zararlı içerik içerebilir (XSS için HTML/JavaScript, ekleme için SQL, kabuk komutları).
LLM çıkışını HTML'de işlemeden, kod olarak yürütmeden, veritabanı sorgularında kullanmadan veya herhangi bir güvenlik duyarlı bağlama geçirmeden önce her zaman doğrulayın ve temizleyin.
Günlüklerdeki hassas verileri koruma
Agent Framework, OpenTelemetry aracılığıyla günlüğe kaydetme ve telemetriyi destekler. Hassas veriler yalnızca açıkça etkinleştirildiğinde günlüğe kaydedilir:
-
Günlüğe kaydetme — Günlük düzeyinde
Trace, koleksiyonun tamamıChatMessagesgünlüğe kaydedilir. Buna PII de dahil olabilir.Tracedüzeyi üretimde hiçbir zaman etkinleştirilmemelidir. -
Telemetri —
EnableSensitiveDataTelemetri ayarlandığında, işlev çağrıları ve sonuçları dahil olmak üzere sohbet iletilerinin tam metnini içerir. Bunu üretimde etkinleştirmeyin.
Oturum verilerinin güvenliğini sağlama
Oturumlar (AgentSession) konuşma bağlamlarını temsil eder ve kalıcılık için seri hale getirilebilir. Serileştirilmiş oturumları hassas veriler olarak değerlendirin:
- Oturumlar konuşma içeriğine veya oturum tanımlayıcılarına başvurabilir.
- Güvenilmeyen bir kaynaktan oturumu geri yüklemek, güvenilmeyen girişi kabul etmeye eşdeğerdir. Güvenliği aşılmış bir depolama arka ucu, güveni ilerletmek için rolleri değiştirebilir.
- Oturumları, uygun erişim denetimleri ve şifreleme ile güvenli bir depolamada saklayın.
Kaynak sınırlarını uygulama
Agent Framework, senaryonuz için neyin makul olduğunu bilmediği için giriş/çıkış uzunluğuna veya istek hızlarına kısıtlama getirmez. Şunlardan siz sorumlusunuz:
- Giriş uzunluğu sınırları — Bağlam taşmasını veya DoS saldırılarını önlemek için giriş uzunluğunu kısıtlar.
-
Çıkış uzunluğu sınırları — Hizmet tarafından sağlanan sınırları kullanın (örneğin,
MaxOutputTokenssohbet seçeneklerinde). - Hız sınırlama — Eş zamanlı isteklerden kaynaklanan maliyet aşımlarını ve kötüye kullanımı önlemek için hız sınırlama tesislerini kullanın.