8 dk

Yapay zekâ güvenlik testleri SAST, DAST ve sızma testlerinin yerini alabilir mi?

Yapay zekâ güvenlik testlerinin gerçek kusurları nerede bulduğunu, SAST, DAST ve insan sızma testlerinin nerede üstün kaldığını ve gereksiz tekrar üretmeden bunları nasıl birleştireceğinizi öğrenin.

Yapay zekâ güvenlik testleri SAST, DAST ve sızma testlerinin yerini alabilir mi?

Bir ajanın güven kazanmasını sağlayan nokta nedir? İnceleme kapsamını genişletmesine, farklı dosyalardaki ipuçlarını birleştirmesine, hedefli testler üretmesine ve karmaşık bir tarayıcı çıktısını geliştiricinin anlayacağı bir düzeltmeye dönüştürmesine güvenirim. Ancak bir şirketin yetkilendirme kurallarını yalnızca rota adlarından çıkarmasına, her kiracı sınırının korunduğunu kanıtlamasına veya insan bir kural koymadan tuhaf bir finans akışının kötüye kullanım olduğunu belirlemesine güvenmem. Ajanı katmanlı bir test programının içindeki aktif bir incelemeci olarak görün, programın kendisi olarak değil.

Ajan incelemesi yeni bir test türü değil, yorumlayıcıdır

Yapay zekâ ajanı kanıtların nasıl toplandığını ve anlaşıldığını değiştirir; yeni bir kanıt türü oluşturmaz. Uygulamayı çalıştırmadan kaynak kodunu okuyorsa esnek bir statik inceleme yapıyordur. Çalışan bir hedefe istek gönderiyorsa dinamik test yapıyordur. Hedefleri araştırıyor, yöntemlerini değiştiriyor ve beklenmedik davranışların peşinden gidiyorsa bir sızma testçisine benzer. Ancak benzerlik, testçinin yetkisini veya iş bağlamını ona kazandırmaz.

Bir sağlayıcı ajanının «tarayıcıların yerini aldığını» söylediğinde bu ayrım önemlidir. Sistemin gerçekte neyi gözlemleyebildiğini sorun. Tam depoyu, oluşturulan kodu, derleme seçeneklerini, altyapı politikasını ve bağımlılık kilit dosyalarını alıyor mu? Birkaç kullanıcı olarak kimlik doğrulaması yapıp her istekten sonra veritabanı durumunu doğrulayabiliyor mu? Hangi eylemlerin arayüzde bulunmadığı için değil, politika gereği yasak olduğunu biliyor mu? Eksik girdiler, iyi yazılmış bir açıklamayla tamamlanamaz.

Ajanlar zayıf sinyalleri birleştirmede gerçekten iyidir. Geleneksel bir kural, istek parametresinin bir sorgu oluşturucuya ulaştığını işaretleyebilir. Ajan sarmalayıcıyı inceleyebilir, bir çağrı noktasının kiracı koşulunu atladığını fark edebilir, bir test isteği taslağı hazırlayabilir ve görünüşte güvenli yardımcının bu yolda neden güvensiz olduğunu açıklayabilir. Değer gerçek bir parametreli API'den geçiyorsa bulguyu da eleyebilir. Bu, önceliklendirmeyi iyileştirir; statik veya dinamik analizin geçersiz hâle geldiğini kanıtlamaz.

Keskin sınır inceleme ile doğrulama arasındadır. İnceleme, «Görebildiğim malzemeye göre bu uygulama güvensiz görünüyor mu?» diye sorar. Doğrulama ise «Belirtilen koşullarda bu aktör yasak bir sonuca yol açabilir mi?» sorusunu sorar. Yapay zekâ ikisine de yardımcı olur, ancak güvenlik kapısı hangi iddiayı ortaya koyduğunu kaydetmelidir. Ekipler, akıcı bir inceleme gözlemini doğrulanmış istismara dönüştürdüğünde veya başarısız bir istismar denemesini güvenlik kanıtı saydığında zarar görür.

Model davranışı başka bir ayrım daha getirir: yetenek, tekrarlanabilirlik anlamına gelmez. Ajan bir çalıştırmada ince bir yolu keşfedip model, istem, erişim dizini veya araç politikası değiştiğinde bunu kaçırabilir. Bir sonuç önemliyse istemleri, araç izinlerini, getirilen dosyaları, oluşturulan istekleri ve model tanımlayıcısını saklayın. Ardından doğrulanmış keşifleri, modelin kendi fikrini yeniden keşfetmesine bağlı olmayan testlere dönüştürün.

SAST hâlâ tekrarlanabilir kaynak kapsamının sahibidir

SAST, büyük bir kod tabanındaki her değişikliğe kararlı kontroller uygulamanın en ucuz yoludur. Kaynakları ve veri giriş noktalarını listeleyebilir, yasak API'leri uygulayabilir, veri akışını inceleyebilir ve analiz ettiği tam sürümü bildirebilir. Belirleyici bir kuralın yarın da aynı sonucu vermesi önemlidir; çünkü sürüm kapısının geçmesi veya durması gerektiğinde denetlenebilir bir gerekçe gerekir.

Ajan, kural motorunun çoğu zaman sahip olmadığı bağlamı ekler. Projeye özgü sarmalayıcıları izleyebilir, yorumları kuşkuyla okuyabilir, bir işleyiciyi komşu işleyicilerle karşılaştırabilir ve yeni bir örüntü için sorgu önerebilir. Dokuz uç noktanın authorizeProject() çağırırken onuncunun kaydı doğrudan yüklemesi gibi şüpheli eksiklikleri fark edebilir. Oluşturulan kod veya tanınmayan bir çerçeve standart kural paketini yetersiz bıraktığında da yararlıdır.

Ancak ajanın kaynak kapsamını kanıtlamak genellikle daha zordur. Bağlam pencereleri, erişim sıralaması, yok sayılan dosyalar, oluşturulan çıktılar ve araç zaman aşımı kodun okunmadan kalmasına yol açabilir. «Bu depoyu enjeksiyon açısından incele» demek, her veri giriş noktasına ulaşıldığını göstermez. Bir SAST raporu en azından hangi dosyaların, kuralların ve sürümün incelendiğini belirtebilir. Ajanın zorunlu bir kapının yerini alabilmesi için benzer bir kapsam kaydına ihtiyacı vardır.

NIST SP 800-218 burada makul bir öneride bulunur: kod analizini erken kullanın ve güvenlik özelliklerini ve azaltıcı önlemleri elle doğrulayın. Değer birleşimdedir. Kararlı kurallar her commit'te bilinen kusur biçimlerini yakalar; ajan istisnaları araştırır, odaklı regresyon testleri yazar ve aynı örüntü tekrarlandığında kuralları iyileştirmeye yardım eder. Ajan birkaç etkileyici hata buldu diye SAST'ı kaldırmak, ölçülebilir genişliği etkileyici anekdotlarla değiştirmektir.

SAST, çalışan bir testin hiç ulaşamayacağı kodu da görür: hata yolları, özellik bayrakları, geçiş yardımcıları, kullanılmayan yönetici uç noktaları ve platforma özgü dallar. Dağıtılan ortamın bu yolları etkinleştirip etkinleştirmediğini söyleyemez. Bu belirsizlik çalışma zamanı kanıtı eklemek için bir nedendir, statik kapsamı bırakmak için değil.

Engelleyen bir SAST kuralına her şey konulmamalıdır. Yasak bir kriptografik ilkel için kesin bir örüntü hemen engellenebilir. Yetkilendirme kontrolünün «yeterince yakın görünüp görünmediğini» soran geniş bir buluşsal kural ise ekip kesinliğini ölçene kadar genellikle inceleme görevi oluşturmalıdır. Ajanlar gerçek örnekleri, karşı örnekleri ve kod tabanındaki yaygın sarmalayıcı işlevleri toplayarak buluşsal kuralın kesin bir kurala dönüştürülmesine yardımcı olabilir. Böylece kapı sıkı kalır ve geliştiriciler onu görmezden gelmeyi öğrenmez.

Oluşturulan düzelteler de bulgular kadar dikkatli incelenmelidir. Model, yanlış katmana doğrulama ekleyerek bir taint izini susturabilir, istisnayı yakalayıp güvenli olmayan şekilde devam edebilir veya davranışı değiştirirken tehlikeli çağrıyı değiştirebilir. Özgün kanıtı düzeltme üzerinde çalıştırın, normal işlev testlerini yürütün ve güvenin kurulduğu yeni kontrolü inceleyin. Temiz bir yeniden tarama yalnızca özgün kuralın artık eşleşmediğini kanıtlar.

DAST deponun gösteremediği davranışı kanıtlar

DAST, gerçekten çalışan uygulamayı gözlemler. Buna vekil kuralları, başlıklar, serileştirme, kimlik doğrulama ara katmanı, çerçeve varsayılanları ve dağıtım hataları da dahildir. Kaynak incelemesi bir uç noktanın korunuyor gibi göründüğünü söyleyebilir. Dinamik test ise ağ geçidi yolu yeniden yazdığı için üretim rotasının ara katmanı atladığını gösterebilir.

Ajanın dinamik testi çok daha hedefli hâle getirebildiği yer burasıdır. Ona bir API açıklaması, test kimlikleri, izin verilen kapsamlar ve geçici bir ortam verin; genel yükleri rastgele göndermek yerine istek dizileri oluşturabilir. Bir kaynak tanımlayıcısını bir yanıttan diğerine taşıyabilir, oturumu yenileyebilir, iki rolü karşılaştırabilir ve bir yazma işleminin sonraki okumaları değiştirip değiştirmediğini inceleyebilir. Geleneksel DAST bu durum bilgili akışlarda çoğu zaman zorlanır.

Ajanın yine de sıkı çalışma sınırlarına ihtiyacı vardır. Bir tarayıcı e-posta göndermenin, sevkiyat oluşturmanın veya ücretli entegrasyonu çağırmanın güvenli olup olmadığını bilemez. Test ortamı hâlâ gerçek hizmetlere bağlı olabilir. İzin verilen ana bilgisayarları, hesapları, istek hızlarını, yıkıcı eylemleri ve durma koşullarını model isteminin dışında tanımlayın ve çalıştırıcıda uygulayın. «Tehlikeli eylemlerden kaçın» cümlesi bir kontrol değildir.

Güvenlik başlıkları, açık dosyalar, yansıtılan girdiler, yaygın enjeksiyon denemeleri ve TLS yapılandırması gibi iyi anlaşılan kontroller için geleneksel bir dinamik temel çizgiyi koruyun. Bu kontroller ucuzdur, sürümler arasında karşılaştırılabilir ve eğilim olarak izlenmesi kolaydır. Ajanın bütçesini kimlik doğrulamalı yollara ve zincirlenmiş davranışlara ayırın. Her iki sistem de aynı basit denemeyi kapsıyorsa kanıtı daha net ve değişkenliği daha düşük olanı tutun.

DAST yalnızca ulaştığı şeyleri bildirdiği için eksiksizlik hissi de yaratabilir. Sonuçla birlikte rota kapsamını, kullanılan kimlikleri, özellik bayraklarını ve başlangıç verilerini kaydedin. Neredeyse boş bir hesapla yapılan temiz tarama, tehlikeli dalları yalnızca onay, davet, faturalandırma veya veri içe aktarma sonrasında ortaya çıkan bir uygulama hakkında çok az şey kanıtlar.

Kimlik doğrulama kurulumu kendi kanıtını gerektirir. Testin her oturumu nasıl elde ettiğini, test ortamında hangi ikinci faktörlerin veya cihaz kontrollerinin atlandığını ve belirteçlerin üretim belirteçleriyle aynı taleplere ve ömre sahip olup olmadığını kaydedin. Elle oluşturulmuş bir yönetici belirteci kapsamı genişletebilir, ancak test edilmesi gereken oturum ve ayrıcalık geçişlerini atlayabilir. Bu tür kısayolları raporda görünür tutun.

Dinamik yeniden test yeni bir otonom taramayla değil, kaydedilmiş istek dizisiyle başlamalıdır. Doğrulanmış kanıtı yamalı sürümde yeniden oynatın, yasak etkinin durduğunu doğrulayın ve ardından dar bir filtreyi yakalamak için yakın girdileri değiştirin. Bundan sonra ajanın araştırmasına izin verin. Bu sıra, «düzeltme bilinen istismarı engelliyor» iddiasını kusur sınıfının tamamen ortadan kaldırıldığı yönündeki daha geniş iddiadan ayırır.

Yetkilendirme testleri kimliklere ve yasak sonuçlara ihtiyaç duyar

Yetkilendirme, «uç nokta bir kez 403 döndürdü» demek değildir. Yararlı bir test, kimin işlem yaptığını, hangi nesneyi hedeflediğini, hangi işlemi denediğini ve hangi sonucun imkânsız kalması gerektiğini belirtir. Ajan kombinasyonları oluşturabilir, ancak politikayı ürün sahibi ve güvenlik incelemecisi sağlamalıdır.

OWASP ASVS, uygulamaların erişim kontrolünü güvenilir bir hizmet katmanında uygulamasını ve işlevlere ve verilere en az ayrıcalık vermesini söyler. Hizmet katmanı gereksinimine katılıyorum, ancak ekipler bunu çoğu zaman çok dar doğrular. Görünür HTTP işleyicisini test ederken arka plan işlerini, dışa aktarmaları, arama dizinlerini, websocket aboneliklerini ve doğrudan nesne depolama URL'lerini unuturlar. Nesneye giden her yolda aynı politika korunmalıdır.

Küçük ve çalıştırılabilir bir matris, «IDOR'u test edin» gibi belirsiz bir talimattan fazlasını ortaya çıkarır. Aşağıdaki kabuk parçası geçici bir ortamı, iki bearer belirtecini ve A kullanıcısına ait bir belgeyi varsayar. Hem durumu hem de B'nin yanıtında A'nın gizli işaretinin bulunmadığını kontrol eder:

base_url="https://test.example.invalid"
doc_id="d_1042"

curl -sS -D /tmp/headers.txt \
  -H "Authorization: Bearer $TOKEN_B" \
  "$base_url/api/documents/$doc_id" \
  -o /tmp/body.json

status="$(awk 'NR==1 {print $2}' /tmp/headers.txt)"
test "$status" = "403" || test "$status" = "404"
! grep -q "A_ONLY_MARKER" /tmp/body.json

Beklenen çıktı sessizlik ve sıfır çıkış durumudur. CI hatası durumu, temizlenmiş gövdeyi, işlem yapan kimliği, hedef sahibini, rotayı ve derleme sürümünü saklamalıdır. Canlı kimlik bilgilerini veya ilgisiz yanıt verilerini saklamayın.

Şimdi her seferinde tek bir boyutu değiştirin: okuma ve güncelleme, doğrudan kimlik ve arama, etkin ve iptal edilmiş üyelik, normal rota ve dışa aktarma, kullanıcı belirteci ve hizmet belirteci. Ajan bu durumları verimli biçimde oluşturup çalıştırabilir. Bir insan, matrisin politikayla eşleşip eşleşmediğini ve 404, 403, boş sonuç veya maskelenmiş nesnenin beklenen sonuç olup olmadığını incelemelidir. Aksi hâlde ajan, işletmenin ihlal saydığı bir davranışı başarı olarak görebilir.

Olumsuz kanıt dikkat gerektirir. Reddedilen bir güncelleme, yanıt süresi, hata metni veya sürüm sayacı üzerinden nesnenin varlığını yine de açığa çıkarabilir. Reddedilen bir okuma görüntülenme sayısını artırabilir veya gizli meta veriler içeren bir denetim kaydı yazabilir. Hangi yan etkilerin izinli olduğuna karar verin ve bunları da doğrulayın. Yalnızca yanıta bakan güvenlik testleri, yararlı bir listeleme kanalını veya zararlı bir yazma işlemini kaçırabilir.

Bir oturum sırasında politika değişikliklerini de test edin. Kullanıcıyı projeden çıkarın, sahipliği devredin, hesabı devre dışı bırakın veya bir hizmet rolünü daraltın; ardından eski belirteçleri ve açık bağlantıları yeniden kullanın. Beklenen iptal süresi ürün politikasından gelmelidir. «Bir süre sonra» test edilebilir değildir. Anında iptal gerekmeyebilir, ancak ekip bir sınır seçmeli ve bunu API istekleri, sıraya alınmış işler, indirmeler ve canlı aboneliklerde doğrulamalıdır.

Kiracı izolasyonu belirgin istek yolunun dışında da bozulur

Oluşturulan kaynak kodu incelemeye alın
Koder.ai kaynak kodunu dışa aktarın; SAST kurallarınız ve inceleme ekibiniz tam kodu denetleyebilsin.

Kiracı izolasyonu depolama, önbellek, kuyruk, arama, dosya, analiz ve yönetim sınırlarında test edilmelidir. Yaygın hata ana liste uç noktasında tenant_id bulunmaması değildir. Asıl sorun, verileri kiracı bağlamını taşımadan kopyalayan, dizine ekleyen, önbelleğe alan veya dışa aktaran ikincil bir yoldur.

Kasıtlı olarak benzer kayıtlara ve her biri için ayırt edici bir işarete sahip iki kiracıyla başlayın. Ayrı kullanıcılar, ayrı oturumlar ve mimari izin veriyorsa ayrı hizmet kimlik bilgileri kullanın. Oluşturma, okuma, güncelleme, silme, listeleme, arama, dışa aktarma, içe aktarma, ek erişimi, bildirim teslimi ve arka plan işlemlerini çalıştırın. Her eylemden sonra kullanıcıya görünen yanıtı ve kalıcı durumu inceleyin. Reddedilen bir isteğin yine de kiracılar arası iş kuyruğa alması başarısızlıktır.

Ajanlar katmanlar arasında bir tanımlayıcıyı izleyebildiği ve insanların zahmetli bulduğu çeşitleri üretebildiği için yardımcı olur. Önbellek anahtarının document_id kullandığını, veritabanı sorgusunun ise hem tenant_id hem document_id kullandığını fark edebilir. Dışa aktarma çalışanını etkileşimli işleyiciyle karşılaştırıp yalnızca birinin satır düzeyi bağlamı neden ayarladığını sorabilir. Bunlar değerli inceleme hamleleridir.

Ancak ajanlar tehlikeli bir varsayım da yapar: adlar sınırları gösterir. getTenantDocument adlı bir işlev, istekten gelen rastgele bir kiracı bağımsız değişkenini kabul edebilir. Bir veritabanı politikası geçişlerde bulunabilir ama yeni tabloda bulunmayabilir. Arama filtresi sonuçlar sayıldıktan sonra uygulanabilir ve başka bir kiracının etkinliğini sızdırabilir. Doğrulama, uygulanan koşulu incelemeli ve ardından kiracılar arası okuma ve yazmayı denemelidir.

Ajanın aynı kodu okuyarak kendi doğruluk kaynağını oluşturmasına izin vermeyin. Beklenen erişimi, ürün gereksinimleriyle birlikte tutulan bağımsız bir politika tablosundan çıkarın. Uygulama ve test aynı kuralı yanlış anlarsa, verileri açığa çıkarırken kusursuz biçimde anlaşabilirler.

Eşzamansız yollar gecikmeli doğrulama gerektirir. Kiracı A olarak dışa aktarma, bildirim, küçük resim veya dizine ekleme işini tetikleyin; çalışan başlamadan önce sahipliği veya üyeliği değiştirin ve sonucun nereye gittiğini inceleyin. Çalışanın istek anında yakalanan yetkiyi mi kullanacağına, yoksa yürütme anında güncel yetkiyi mi yeniden kontrol edeceğine karar verin. Belirli bir işlem için her iki seçenek de doğru olabilir, ancak kazara yapılan karışım sızıntılara ve bozuk denetim izlerine yol açar.

Yönetim araçları ayrı kimlikler ve günlükleme kontrolleri gerektirir. Destek erişimi tasarım gereği kiracı sınırlarını aşabilir; bu nedenle basit bir «farklı kiracı başarısız olmalı» kuralı yanlıştır. Operatörün gerekli role ve vaka bağlamına sahip olduğunu, müşteriye görünen politikanın izlendiğini, erişimin süresinin dolduğunu ve denetim olayında müşterinin taklit edilmesi yerine operatörün tanımlandığını test edin.

İş mantığı kötüye kullanım öyküsünü gerektirir

İş mantığı testi yasak bir öyküyle başlar: kullanıcı, geçerli eylemleri geçersiz bir sırayla veya birleşimle gerçekleştirerek almaması gereken bir değeri, yetkiyi veya durumu elde eder. Genel güvenlik açığı etiketleri çok zayıftır. Testçinin davetlerin, onayların, kotaların, iadelerin, kredilerin, sahiplik devirlerinin ve iptallerin nasıl etkileşmesi gerektiğini bilmesi gerekir.

OWASP Web Security Testing Guide, atlanan iş akışı adımlarını, tekrarlanan işlevleri, sahte istekleri, zamanlama değişikliklerini ve geçerli özelliklerin kötüye kullanımını denemeyi önerir. Eski iş mantığı girişinde, tarayıcı otomasyonunun uygulamaya özgü bilgiyi veya yaratıcılığı sağlayamayacağı açıkça söylenir. Modern ajanlar otomasyonu iyileştirir, ancak bilgi boşluğunu ortadan kaldırmaz. Model bir kuponun tekrar kullanılabileceğini öne sürebilir; bunun kampanya mı yoksa dolandırıcılık mı olduğunu biri iş kuralı olarak belirtmeden bilemez.

Ajanı izin verilen geçişleri ve değişmezleri içeren bir durum modeliyle besleyin. Onay akışı için bir değişmez şöyle olabilir: «İstekte bulunan kişi, sahiplik devrinden sonra bile kendi ödemesini onaylayamaz.» Ardından rol değişiklikleri, yinelenen istekler, iptal, yeniden deneme, eşzamanlılık ve eski oturumları içeren diziler üretmesini isteyin. Ajan, bir insanın elle çalıştıracağından çok daha fazla dizi araştırabilir.

Zor durumlar HTTP yanıtının dışındaki sonuçları içerir. Eşzamanlı iki kullanım isteği başarılı dönebilir, ancak sonraki mutabakat bunlardan birini silebilir. İptal, görünen işi durdurabilir ancak imzalı indirmeyi iptal etmeyebilir. Davet eden kişi erişimini kaybettikten sonra kabul edilen bir davet, sahipsiz üyelik oluşturabilir. Testler yalnızca durum kodlarını değil, defterleri, kuyrukları, nesne izinlerini ve sonraki durumu da gözlemlemelidir.

İnsan testçiler, belirtilen modele meydan okuyarak değer kazanır. Destek personelinin zararsız işlevleri birleştirip birleştiremeyeceğini, bir operatörün kendi denetim izini etkileyip etkileyemeyeceğini veya «süresi dolmuş» bir nesnenin başka bir kanaldan kullanılmaya devam edip etmediğini sorarlar. Ajan aldığı hedeflerin ve araçların içinde çalışır. Bir insan, hedeflerin işletmenin tehlikeli bölümünü dışarıda bıraktığını fark edebilir.

Bağımlılık riski yalnızca güvenlik açığı bulunan bir sürümden ibaret değildir

Denetlediğiniz kodun sahibi olun
Kaynak kodunu dışa aktararak oluşturulan React, Go ve Flutter kodunu güvenlik sürecinizde erişilebilir tutun.

Bağımlılık testi dört ayrı soruyu kapsar: hangi paketler mevcut, bilinen sürümleri bildirilen güvenlik açıklarını taşıyor mu, derleme beklenen yapıtları mı aldı ve uygulama gerçekten güvenlik açığı bulunan davranışı açığa çıkarıyor mu? Yazılım bileşimi analizi (SCA) ve kaynak doğrulama kontrolleri ilk üç soruyu tek başına yapılan konuşma tabanlı incelemeden daha güvenilir biçimde yanıtlar.

Envanter hazır olduktan sonra ajan yararlı olur. Bir bağımlılığın nasıl çağrıldığını inceleyebilir, etkilenen işlevin erişilebilir olup olmadığını belirleyebilir, telafi edici bir kontrol bulabilir ve regresyon testleri içeren yükseltme yaması taslağı hazırlayabilir. Güvenlik açığı tanımlayıcısı olmayan riskli paket davranışlarını da işaretleyebilir; örneğin kurulum betiğinin ağ erişimi kazanması veya yeni bir kitaplığın ortamındaki gizli bilgilere erişmesi gibi.

Modelden güncel güvenlik açığı verilerini hatırlamasını istemeyin. Ona zaman damgalı bir uyarı kaynağı, çözümlenmiş kilit dosyası ve oluşturulan yapıt envanterini verin. Model belleği bir güvenlik açığı veritabanı değildir; paket bildirimi de neyin gönderildiğinin kanıtı değildir. SLSA provenance benzer bir ayrım yapar: provenance bir yapıtın nerede, ne zaman ve nasıl üretildiğini açıklar. Yapıtın güvenli olduğunu ilan etmez.

Erişilebilirlik önceliklendirmeyi düşürebilir, ancak sorumluluğu ortadan kaldırmamalıdır. Özellik bayrakları değişir, ölü kod geri döner ve dolaylı bağımlılıklar beklenmedik şekillerde çağrılır. Bir bulgunun neden ertelendiğini, hangi sürümün ve çağrı yolunun değerlendirildiğini ve hangi olayın incelemeyi yeniden açacağını kaydedin. Ajan bu gerekçeyi sürdürebilir, belirleyici envanter de olayı izleyebilir.

Paket adları kimlik tuzakları da oluşturur. Beklenen ada sahip bir bağımlılık yanlış kayıt deposundan gelebilir, kilit dosyası değiştirilebilir bir konumu gösterebilir veya bir derleme adımı bildirimin dışında kod indirebilir. Çözümlenen kaynakları, karmaları, ekosistem destekliyorsa imzaları ve derlemenin ağ erişimini kontrol edin. Ajan tutarsızlıkları açıklayabilir, ancak derleme sistemi hangi kaynakları kabul edeceğini uygulamalıdır.

Yükseltmeler otomatik olarak güvenli değişiklikler değildir. Bir güvenlik sürümü ayrıştırmayı, yetkilendirme varsayılanlarını veya serileştirmeyi değiştirerek uygulamayı bozabilir. Uyarı için en küçük yeniden üretimi oluşturun, yükseltmeyi yalıtılmış bir dalda uygulayın ve hem güvenlik kanıtını hem de işlev testlerini çalıştırın. Ortaya çıkan kanıt karar vermeyi destekler; modelin yeni sürümün «uyumlu olması gerektiğini» söylemesi desteklemez.

Yanlış pozitifler kanıt tasarımı sorunudur

Bir bulgu ancak bir iddia, kanıt, etki ve yeniden üretilebilir yol taşıyorsa geliştiricinin zamanını hak eder. Yapay zekâ tarafından oluşturulan raporlar bunlardan biri eksikken eksiksiz görünebilir. Akıcı düzeltme metni zayıf kanıtı fark etmeyi zorlaştırır.

Her ajan bulgusunun incelenen sürümü ve ortamı, etkilenen bileşeni, saldırganın ön koşullarını, aşılan güvenlik sınırını, gözlemlenen veya çıkarılan sonucu, yeniden üretim adımlarını ve belirsizliği belirtmesini zorunlu tutun. Çıkarılan kaynak bulgularını çalıştırılmış istismarlardan farklı işaretleyin. Ajan uygulamayı çalıştıramadıysa bunu tarama düzeyi bir nota gömmek yerine bulguda açıkça söylemelidir.

Ardından basit bir durum sözlüğü kullanın: doğrulandı, olası, bağlam gerekiyor, yeniden üretilemedi, kabul edilen risk veya düzeltildi. «Yanlış pozitif», güvenlik iddiasının yanlış olduğu anlamına gelmelidir; ekibin önem derecesini beğenmediği veya işi ertelemeyi seçtiği anlamına değil. Bu kararları karıştırmak geri bildirimi yok eder. İstenmeyen her bilete aynı etiket verilirse ajan hangi kuralın başarısız olduğunu öğrenemez.

Yapay zekâ yinelenen izleri gruplayarak, temizleyicileri kontrol ederek ve düzeltmeden sonra yeniden test ederek gürültüyü azaltabilir. Ancak tek bir zayıf şüphenin on ikna edici çeşidini üreterek gürültüyü artırabilir. Tekilleştirmeyi URL'ye göre değil, kök nedene ve sınıra göre yapın. Sekiz uç noktanın kullandığı tek bir eksik sahiplik kontrolü, sekiz maruz kalma noktası olan tek bir mühendislik kusurudur.

Kesinliği kategoriye ve test kaynağına göre izleyin. Ajan tarafından oluşturulan siteler arası betik çalıştırma raporları genellikle doğru, yarış koşulu iddiaları ise nadiren yeniden üretilebiliyorsa bunları farklı yönlendirin. Birbiriyle ilgisiz kusur türlerinde performansı tek bir puana indirgemeyin. Bir kapı, modelin kullandığı güven sıfatına değil, kanıta ve politikaya göre kapanmalıdır.

Sorumluluk döngüyü tamamlar. Kabul edilen her bulgu için düzeltmeden sorumlu bir kişi veya ekip, beklenen yeniden test yöntemi ve başka bir testçinin çalıştırabileceği saklanmış bir kanıt bulunmalıdır. Rapor yalnızca bir ajan konuşmasında yaşarsa konuşma, model veya sağlayıcı değiştiğinde kaybolur. Güvenlik çalışması, kanıtı onu üreten araçtan bağımsız kaldığında kalıcı olur.

Gizlilik önceliklendirme sırasında da önemlidir. Kaynak kodu, istek gövdeleri, günlükler ve veritabanı örnekleri kimlik bilgileri veya müşteri verileri içerebilir. Ajanın aldığı veriyi azaltın, saklanan konuşma dökümlerini temizleyin, test verisini üretim verisinden ayırın ve model sağlayıcısı ile araçlarına kurumun onaylı veri işleme kurallarını uygulayın. Daha iyi tespit, üretimdeki bir olayın tamamını kontrolsüz bir isteme kopyalamayı haklı çıkarmaz.

İnsan sızma testi, testin etrafındaki varsayımları sınar

Kendi güvenlik kapınızı kullanın
Kaynak kodunu dışa aktarın ve politikanızın gerektirdiği bağımsız SAST, bağımlılık ve insan denetimlerini çalıştırın.

Deneyimli bir sızma testçisi uygulama verilen açıklamayla çeliştiğinde planı değiştirir. Ajanların henüz yerini almadığı bölüm budur. İnsan sahiplerle görüşür, belirsiz kuralları çözer, operasyonel kısayolları fark eder, başka bir kimlik ister ve tuhaf bir davranışın daha uzun bir deney zincirini gerektirip gerektirmediğine karar verir.

İnsanlar eksik kanıt altında karar vermekten de sorumludur. Teknik olarak mümkün bir eylemi inandırıcı bir saldırı yolundan ayırabilir, bileşik bir arızayı yöneticilere ve mühendislere açıklayabilir ve istismar veriye zarar verebilecekse güvenli bir kanıt üzerinde uzlaşabilirler. Otonom bir ajan, operatörünün belirlediği sınırda durmalıdır. Bu sınırı sessizce genişletirse kendisi başka bir güvenlik riskine dönüşür.

Bu, her sürüm için bir hafta süren dış denetim gerektiği anlamına gelmez. Değişiklik ve sonuç riskinin birleştiği yerlerde insan testi kullanın: yeni yetkilendirme modeli, kiracı mimarisi, ödeme veya kredi akışı, yönetim düzlemi, hassas entegrasyon, büyük geçiş veya herkese açık sürüm. Daha geniş çalışmaları riske göre periyodik planlayın ve ciddi düzeltmeleri yeniden test edin. Rutin sürümler yine de otomatik kapsama ihtiyaç duyar.

Testçiye ajanın çıktısını, SAST izlerini, DAST kapsamını, mimari notları, test hesaplarını ve çözülmemiş varsayımları verin. Ajan keşif ve tekrarlanan çeşitleri ele alırken testçi şaşırtıcı davranışların peşine düşebilir. Bu, insan zamanını daha verimli kılar ve insanı gereksiz göstermeden çalışmayı hızlandırır.

Bulgu sayısıyla ölçülen «otonom sızma testi» iddialarına dikkat edin. On tanıdık enjeksiyon bulgusu, rol atama, eski yetkilendirme ve dışa aktarma depolaması boyunca gösterilmiş tek bir yola eşit değildir. Çalışmayı test edilen sınırlar, kanıt kalitesi ve sorgulanan önemli varsayımlarla değerlendirin.

Çalışma başlamadan önce temizliğin sorumlusunu belirleyin. Test hesapları, yüklenen dosyalar, sıraya alınan iletiler, geçici roller ve değiştirilen özellik bayrakları taramadan sonra kalabilir. İnsan lider yıkıcı kanıtları onaylamalı, operasyonla iletişimi sürdürmeli ve geri yüklemeyi doğrulamalıdır. Ajan temizlik betiğini izleyebilir, ancak açıklanamayan bir üretim durumunu kaldırmanın güvenli olup olmadığına karar veremez.

İyi bir testçi test edilemeyenleri de bildirir. Eksik mobil derlemeler, kullanılamayan roller, hız sınırları, üçüncü taraf geri çağrıları ve kararsız ortamlar güvenceyi azaltır. Ajanlar engellerin etrafından dolaşmaya devam edip tamamladıkları yolları sunma eğilimindedir. Temiz bir sonucun eksiksiz kapsamla karıştırılmaması için nihai raporda dışarıda kalanlar belirgin olmalıdır.

Birkaç kanıt türünden tek bir kapı oluşturun

Doğru program her yönteme bir görev verir ve çıktılarının aynı güvenlik gereksinimlerinde buluşmasını sağlar. Belirleyici kaynak örüntüleri ve geniş değişiklik kapsamı için SAST kullanın. Bağımlılık ve derleme gerçekleri için SCA ve provenance kullanın. Dağıtılan davranış ve temel çalışma zamanı kontrolleri için DAST kullanın. Kanıtları birleştirmek, kimlik doğrulamalı akışları araştırmak, testler oluşturmak ve önceliklendirmeyi iyileştirmek için ajanlardan yararlanın. Politikayı tanımlamak, iş varsayımlarına meydan okumak ve yüksek etkili değişiklikleri araştırmak için insanları kullanın.

Sürüm politikası böylece somut olabilir. Onaylanmamış bir yolda belirleyici ve yüksek önem dereceli bir kural eşleşirse, gerekli bir yetkilendirme değişmezi başarısız olursa, kiracılar arası bir işaret görünürse veya doğrulanmış bir istismar açık kalırsa derlemeyi durdurun. Belirsiz ajan bulgularını maruziyete göre belirlenmiş bir son tarihle incelemeye gönderin. Üretimin yayınlanıp yayınlanmayacağına modelin kendi bildirdiği güven karar vermesin.

Kanıtı taşınabilir tutun. Bulguları, oluşturulan testleri, istek dökümlerini, araç sürümlerini, sürümleri, kimlikleri, kapsamı ve durumları ekibin ajansız inceleyebileceği biçimlerde dışa aktarın. Bu, denetimler, olay incelemeleri, sağlayıcı değişiklikleri ve model güncellemesinin davranışı değiştirdiği sıradan gün için önemlidir.

Sohbet yoluyla oluşturulan uygulamalarda da aynı ayrım geçerlidir. Koder.ai web, sunucu ve mobil uygulamalar oluşturabilir ve kaynak kodunu dışa aktarabilir, ancak oluşturulan yazılımın yine açık güvenlik gereksinimlerine ve dağıtılan sonuç üzerinde bağımsız testlere ihtiyacı vardır. Hızlı oluşturma, mimari ve kod hızla değişebildiği için net bir kapıyı daha değerli kılar.

Ajanı sürekli çalıştırın, ancak en iyi keşiflerini belirleyici regresyon testlerine dönüştürün. Doğrulanmış her yetkilendirme atlaması bir politika senaryosu hâline gelmelidir. Her kiracı sızıntısı, başarısız olan sınırda bir değişmez eklemelidir. Gürültülü her kural kayıtlı bir durum almalıdır. Zamanla ajan, test sistemini bulduğundan daha kesin hâle getirmelidir.

Hangi tek aracın kazandığını sormayın. Her önemli iddianın bağımsız kanıtı olup olmadığını sorun: kod yolu incelendi mi, dağıtılan davranış çalıştırıldı mı, iş kuralı bir sahipten mi geldi ve başarısızlık zarar verecekse bir insan varsayımlara meydan okudu mu? Bu satırlardan biri boşsa yapay zekâ tarafından oluşturulan «her şey yolunda» ifadesi o boşluğu doldurmaz.

SSS

Yapay zekâ güvenlik testleri SAST'ın yerini tamamen alabilir mi?

Hayır. Bir ajan kaynak kodu incelemesini ve önceliklendirmeyi iyileştirebilir, ancak SAST tekrarlanabilir kural kapsamı ve hangi sürümün, dosyaların ve kuralların denetlendiğine dair daha net bir kayıt sunar. Kararlı kapılar için SAST'ı koruyun; bağlamı araştırmak ve regresyon testleri yazmak için ajanı kullanın.

Çalışma zamanındaki açıkları bulmada yapay zekâ DAST'tan daha mı iyi?

Yapay zekâ daha akıllı, durum bilgili istekler gönderebilir, ancak yine de çalışan bir hedefe ve kontrollü test kimliklerine ihtiyaç duyar. Geleneksel DAST tekrarlanabilir temel kontroller için verimli olmaya devam eder. Ajanı kimlik doğrulamalı akışlara ve zincirlenmiş davranışlara ayırmak daha faydalıdır.

Bir yapay zekâ ajanı gerçek bir sızma testi yapabilir mi?

Bir sızma testinin keşif, istek değiştirme, istismar taslağı hazırlama ve yeniden test gibi bölümlerini gerçekleştirebilir. Gerçek bir çalışma ayrıca yetkilendirme, iş bağlamı, güvenli karar verme ve varsayımlar bozulduğunda planı değiştirmekten sorumlu bir kişi gerektirir.

Yapay zekâ yetkilendirme kontrollerini nasıl test etmeli?

Ona aktörleri, nesneleri, eylemleri ve yasak sonuçları içeren bağımsız bir politika matrisi verin. En az iki kimlik kullanın, hem yanıtları hem de kalıcı durumu doğrulayın ve başarısız her değişmez için temizlenmiş kanıtları saklayın.

Kiracı izolasyonu yapay zekâ ile nasıl test edilir?

İki kiracıya farklı işaretler içeren veriler ekleyin ve bu verileri depolayan, kopyalayan, arayan, önbelleğe alan, dışa aktaran veya teslim eden her yolu çalıştırın. Ajan farklı senaryolar üretebilir, ancak beklenen erişim incelemekte olduğu uygulamadan değil, politikadan çıkarılmalıdır.

Yapay zekâ iş mantığı açıklarını neden kaçırır?

Model, biri iş kuralını açıkça belirtmediği sürece geçerli eylemlerin hangi birleşimlerinin kötüye kullanıma dönüştüğünü bilemez. Ona değişmezleri ve durum geçişlerini verin, ardından bir insanın bu kuralların tehlikeli bir iş akışını dışarıda bırakıp bırakmadığını sorgulamasını sağlayın.

Güvenlik açığı bulunan bir bağımlılığın istismar edilebilir olup olmadığına yapay zekâ karar vermeli mi?

Güvenilir bir envanter ve güncel bir uyarı kaynağı bileşeni belirledikten sonra erişilebilirliği ve telafi edici kontrolleri analiz etmek için yapay zekâyı kullanın. Model belleğini güvenlik açığı veritabanı olarak kullanmayın ve erişilemezliği kalıcı bir durum olarak değerlendirmeyin.

Ekipler yapay zekâ güvenlik incelemelerindeki yanlış pozitifleri nasıl azaltabilir?

Her bulgu için incelenen sürümü, bileşeni, saldırganın ön koşullarını, aşılan sınırı, kanıtı, yeniden üretim yolunu ve belirsizliği zorunlu tutun. Yanlış iddiaları kabul edilen riskten ve ertelenen işlerden ayırın; böylece geri bildirim değerini korur.

İnsanlar tarafından yapılan sızma testi ne zaman hâlâ gerekli?

Yetkilendirme, kiracı sınırları, ödemeler, yönetim işlevleri, hassas entegrasyonlar ve diğer yüksek etkili alanlardaki değişikliklerde insan denetimi kullanın. İnsanlar ayrıca büyük sürümleri test etmeli ve otomatik planların sorgulamadan kabul ettiği varsayımları sınamalıdır.

Yapay zekâ bir güvenlik sorunu bulduğunda sürümü ne durdurmalı?

Yetkilendirme değişmezinin başarısız olması, kiracılar arası veri sızması veya doğrulanmış bir istismarın açık kalması gibi politika ve yeniden üretilebilir kanıta dayalı durumlarda sürümü durdurun. Belirsiz gözlemleri son tarih belirleyerek incelemeye gönderin; ajanın güven ifadesinin sürüm kuralı olmasına izin vermeyin.

Related posts