EresusSecurity

JIT Kuralları

JIT derleme, dinamik kod üretimi ve çalışma zamanı içe aktarma akışlarında riskli davranışları tespit eder.

Kısa tanım

JIT kural ailesi; bu yüzeydeki bulguları kural kimliği, öncelik, CWE, OWASP LLM, sorumlu, yayın kararı ve yeniden test komutuyla kapatılabilir aksiyona çevirir.

JIT ve dinamik kod üretimi performans için kullanılabilir; fakat güvenilmeyen girdilerle birleştiğinde kod çalıştırma riskini artırır.

Kural yardım URL’i

Desteklenen girdiler

  • Python
  • JavaScript
  • CUDA
  • Triton
  • Numba
  • Torch compile caches

Tipik saldırı senaryoları

  • Model akış’ı kullanıcı girdisinden kod üretir.
  • Çalışma zamanı, doğrulanmamış özel kernel veya eklenti yükler.
  • JIT önbellek içine manipüle edilmiş kod yerleştirilir.

Algılama mantığı

Sentinel JIT kurallarında kanıt alanını dosya yolu, üst veri, opcode, AST düğümü, manifest alanı, bağımlılık veya arşiv girdisi gibi yeniden üretilebilir sinyale bağlar. Bulgu kapatılırken aynı sinyal ortadan kalkmalıdır.

İnceleme ve önceliklendirme

JIT bulgularını tek başına "tarayıcı gürültüsü" gibi okumayın. Önce kanıtı doğrulayın, sonra yayın kararını önceliğe bağlayın, en sonunda aynı Sentinel komutuyla kapanış kanıtı üretin.

Operasyonel kontrol listesi
  • Kaynak: dosya, manifest, istem, arşiv veya bağımlılık nereden geldi?
  • Etki: kod çalıştırma, veri sızıntısı, tedarik zinciri veya kaynak tüketimi mi?
  • Kontrol: izin listesi, hash doğrulaması, yalıtım, ağ çıkış politikası veya gizli bilgi döndürme gerekiyor mu?
  • Kanıt: düzeltmeden sonra aynı kural kategorisi temiz dönüyor mu?

Düzeltme

Düzeltme, yalnızca bulguyu susturmak değil risk sınırını değiştirmek anlamına gelmelidir: çalıştırılabilir biçimi kaldırın, kaynak veya hash değerini sabitleyin, araç iznini daraltın, gizli bilgiyi döndürün ya da çalışma zamanı yalıtımı ekleyin.

CI politikası

sentinel-policy.yml
category: JIT
fail_on:
  - CRITICAL
  - HIGH
ticket_on:
  - MEDIUM
retest: "sentinel sast ./src/ --rule JIT"

Kural dizini

Kural kimliğiÖncelikBaşlıkCWEDüzeltme ipucu
JIT-EVAL-COMPILEHIGHDinamik eval veya compile KullanımıCWE-95Kullanıcı kontrollü metinleri derlemeyin.
JIT-DYNAMIC-KERNELHIGHDinamik Kernel ÜretimiCWE-94Kernel kodunu çalışma zamanı verisinden ayırın.
JIT-CACHE-POISONINGMEDIUMYazılabilir JIT ÖnbelleğiCWE-345Derlenmiş önbellekleri güvenilmeyen yazmalardan koruyun.

JIT-EVAL-COMPILEDinamik eval veya compile Kullanımı

HIGH
Kural kimliğiJIT-EVAL-COMPILE
KategoriJIT
ÖncelikHIGH
CWECWE-95
OWASP LLMLLM01 — Prompt Injection
Yanlış pozitif riskiMEDIUM
SorumluUygulama güvenliği ve arka uç/ajan sahibi
Yayın kararıYayın kapısı olarak değerlendirin; düzeltme veya açık risk kabulü gerekir.

Açıklama

Model, istem veya veri kümesi girdisinden etkilenebilen eval, exec, Function, compile veya benzeri dinamik kod API’lerini tespit eder.

Neden önemli?

JIT ve dinamik kod üretimi performans için kullanılabilir; fakat güvenilmeyen girdilerle birleştiğinde kod çalıştırma riskini artırır.

Ne zaman tetiklenir?

Sentinel bu kuralı JIT kategorisinde şu kanıtı gördüğünde tetikler: Kullanıcı veya veri girdisi dinamik kod derleme/çalıştırma çağrısına ulaşır. Bulgu; dosya adı, üst veri, opcode, AST düğümü veya manifest alanı gibi yeniden üretilebilir kanıtla raporlanmalıdır.

Kanıt biçimi

Kullanıcı veya veri girdisi dinamik kod derleme/çalıştırma çağrısına ulaşır.

Beklenen kanıt

Rapor; etkilenen dosya veya manifest yolunu, yakalanan sinyali, kural kimliğini, önceliği, sorumluyu ve kapanışta çalıştırılacak yeniden test komutunu içermelidir.

Yanlış pozitif notu

Yanlış pozitif olasılığı orta seviyededir. Önce kaynak, beklenen kullanım ve sahip bilgisini doğrulayın; gerekirse izin listesi ekleyin ama kanıtı rapordan silmeyin.

İnceleme ve önceliklendirme

Operasyonel kontrol listesi
  • Sorumlu: Uygulama güvenliği ve arka uç/ajan sahibi.
  • Karar: Yayın kapısı olarak değerlendirin; düzeltme veya açık risk kabulü gerekir.
  • Kanıt: Kullanıcı veya veri girdisi dinamik kod derleme/çalıştırma çağrısına ulaşır.
  • Kapanış: sentinel sast ./src/ --rule JIT komutu temiz dönmeli.

Nasıl düzeltilir?

Kullanıcı kontrollü metni derlemeyin; açık operatör haritaları ve şema doğrulaması kullanın.

CLI

sentinel sast ./src/ --rule JIT

Politika örneği

sentinel-policy.yml
rules:
  JIT-EVAL-COMPILE:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel sast ./src/ --rule JIT"

Beklenen çıktı

JIT-EVAL-COMPILE HIGH
Dinamik eval veya compile Kullanımı
Kullanıcı kontrollü metinleri derlemeyin.

Örnek

Riskli
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")
Daha güvenli
allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)

İlgili kurallar

JIT-DYNAMIC-KERNELDinamik Kernel Üretimi

HIGH
Kural kimliğiJIT-DYNAMIC-KERNEL
KategoriJIT
ÖncelikHIGH
CWECWE-94
OWASP LLMLLM03 — Supply Chain
Yanlış pozitif riskiMEDIUM
SorumluUygulama güvenliği ve arka uç/ajan sahibi
Yayın kararıYayın kapısı olarak değerlendirin; düzeltme veya açık risk kabulü gerekir.

Açıklama

Güvenilmeyen değerlerden oluşturulan CUDA, Triton veya Numba kernel metinlerini işaretler.

Neden önemli?

JIT ve dinamik kod üretimi performans için kullanılabilir; fakat güvenilmeyen girdilerle birleştiğinde kod çalıştırma riskini artırır.

Ne zaman tetiklenir?

Sentinel bu kuralı JIT kategorisinde şu kanıtı gördüğünde tetikler: Kernel kodu model, istem, veri kümesi veya kullanıcı girdisiyle birleştirilir. Bulgu; dosya adı, üst veri, opcode, AST düğümü veya manifest alanı gibi yeniden üretilebilir kanıtla raporlanmalıdır.

Kanıt biçimi

Kernel kodu model, istem, veri kümesi veya kullanıcı girdisiyle birleştirilir.

Beklenen kanıt

Rapor; etkilenen dosya veya manifest yolunu, yakalanan sinyali, kural kimliğini, önceliği, sorumluyu ve kapanışta çalıştırılacak yeniden test komutunu içermelidir.

Yanlış pozitif notu

Yanlış pozitif olasılığı orta seviyededir. Önce kaynak, beklenen kullanım ve sahip bilgisini doğrulayın; gerekirse izin listesi ekleyin ama kanıtı rapordan silmeyin.

İnceleme ve önceliklendirme

Operasyonel kontrol listesi
  • Sorumlu: Uygulama güvenliği ve arka uç/ajan sahibi.
  • Karar: Yayın kapısı olarak değerlendirin; düzeltme veya açık risk kabulü gerekir.
  • Kanıt: Kernel kodu model, istem, veri kümesi veya kullanıcı girdisiyle birleştirilir.
  • Kapanış: sentinel sast ./src/ --rule JIT komutu temiz dönmeli.

Nasıl düzeltilir?

Kernel kodunu çalışma zamanı verisinden ayırın, izin verilen kernel şablonlarını sabitleyin ve girdiyi şema ile doğrulayın.

CLI

sentinel sast ./src/ --rule JIT

Politika örneği

sentinel-policy.yml
rules:
  JIT-DYNAMIC-KERNEL:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel sast ./src/ --rule JIT"

Beklenen çıktı

JIT-DYNAMIC-KERNEL HIGH
Dinamik Kernel Üretimi
Kernel kodunu çalışma zamanı verisinden ayırın.

Örnek

Riskli
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")
Daha güvenli
allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)

İlgili kurallar

JIT-CACHE-POISONINGYazılabilir JIT Önbelleği

MEDIUM
Kural kimliğiJIT-CACHE-POISONING
KategoriJIT
ÖncelikMEDIUM
CWECWE-345
OWASP LLMLLM03 — Supply Chain
Yanlış pozitif riskiMEDIUM
SorumluUygulama güvenliği ve arka uç/ajan sahibi
Yayın kararıSahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin.

Açıklama

Güvenilmeyen kullanıcı veya süreç tarafından yazılabilen JIT önbellek dizinlerini bulur.

Neden önemli?

JIT ve dinamik kod üretimi performans için kullanılabilir; fakat güvenilmeyen girdilerle birleştiğinde kod çalıştırma riskini artırır.

Ne zaman tetiklenir?

Sentinel bu kuralı JIT kategorisinde şu kanıtı gördüğünde tetikler: JIT önbellek yolu ortak yazılabilir dizin, zayıf izin veya değiştirilebilir bağlama noktası üzerinde görünür. Bulgu; dosya adı, üst veri, opcode, AST düğümü veya manifest alanı gibi yeniden üretilebilir kanıtla raporlanmalıdır.

Kanıt biçimi

JIT önbellek yolu ortak yazılabilir dizin, zayıf izin veya değiştirilebilir bağlama noktası üzerinde görünür.

Beklenen kanıt

Rapor; etkilenen dosya veya manifest yolunu, yakalanan sinyali, kural kimliğini, önceliği, sorumluyu ve kapanışta çalıştırılacak yeniden test komutunu içermelidir.

Yanlış pozitif notu

Yanlış pozitif olasılığı orta seviyededir. Önce kaynak, beklenen kullanım ve sahip bilgisini doğrulayın; gerekirse izin listesi ekleyin ama kanıtı rapordan silmeyin.

İnceleme ve önceliklendirme

Operasyonel kontrol listesi
  • Sorumlu: Uygulama güvenliği ve arka uç/ajan sahibi.
  • Karar: Sahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin.
  • Kanıt: JIT önbellek yolu ortak yazılabilir dizin, zayıf izin veya değiştirilebilir bağlama noktası üzerinde görünür.
  • Kapanış: sentinel sast ./src/ --rule JIT komutu temiz dönmeli.

Nasıl düzeltilir?

Derlenmiş önbellek dosyalarını güvenilmeyen yazmalardan koruyun ve önbellek bütünlüğü doğrulaması kullanın.

CLI

sentinel sast ./src/ --rule JIT

Politika örneği

sentinel-policy.yml
rules:
  JIT-CACHE-POISONING:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel sast ./src/ --rule JIT"

Beklenen çıktı

JIT-CACHE-POISONING MEDIUM
Yazılabilir JIT Önbelleği
Derlenmiş önbellekleri güvenilmeyen yazmalardan koruyun.

Örnek

Riskli
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")
Daha güvenli
allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)

İlgili kurallar

Kaynaklar