JIT Kuralları
JIT derleme, dinamik kod üretimi ve çalışma zamanı içe aktarma akışlarında riskli davranışları tespit eder.
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.
Desteklenen girdiler
PythonJavaScriptCUDATritonNumbaTorch 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.
- 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ı
category: JIT
fail_on:
- CRITICAL
- HIGH
ticket_on:
- MEDIUM
retest: "sentinel sast ./src/ --rule JIT"Kural dizini
| Kural kimliği | Öncelik | Başlık | CWE | Düzeltme ipucu |
|---|---|---|---|---|
| JIT-EVAL-COMPILE | HIGH | Dinamik eval veya compile Kullanımı | CWE-95 | Kullanıcı kontrollü metinleri derlemeyin. |
| JIT-DYNAMIC-KERNEL | HIGH | Dinamik Kernel Üretimi | CWE-94 | Kernel kodunu çalışma zamanı verisinden ayırın. |
| JIT-CACHE-POISONING | MEDIUM | Yazılabilir JIT Önbelleği | CWE-345 | Derlenmiş önbellekleri güvenilmeyen yazmalardan koruyun. |
JIT-EVAL-COMPILE — Dinamik eval veya compile Kullanımı
HIGH| Kural kimliği | JIT-EVAL-COMPILE |
|---|---|
| Kategori | JIT |
| Öncelik | HIGH |
| CWE | CWE-95 |
| OWASP LLM | LLM01 — Prompt Injection |
| Yanlış pozitif riski | MEDIUM |
| Sorumlu | Uygulama 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
- 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 JITPolitika örneği
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
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)İlgili kurallar
- JIT-DYNAMIC-KERNEL: Dinamik Kernel Üretimi
- JIT-CACHE-POISONING: Yazılabilir JIT Önbelleği
JIT-DYNAMIC-KERNEL — Dinamik Kernel Üretimi
HIGH| Kural kimliği | JIT-DYNAMIC-KERNEL |
|---|---|
| Kategori | JIT |
| Öncelik | HIGH |
| CWE | CWE-94 |
| OWASP LLM | LLM03 — Supply Chain |
| Yanlış pozitif riski | MEDIUM |
| Sorumlu | Uygulama 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
- 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 JITPolitika örneği
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
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)İlgili kurallar
- JIT-EVAL-COMPILE: Dinamik eval veya compile Kullanımı
- JIT-CACHE-POISONING: Yazılabilir JIT Önbelleği
JIT-CACHE-POISONING — Yazılabilir JIT Önbelleği
MEDIUM| Kural kimliği | JIT-CACHE-POISONING |
|---|---|
| Kategori | JIT |
| Öncelik | MEDIUM |
| CWE | CWE-345 |
| OWASP LLM | LLM03 — Supply Chain |
| Yanlış pozitif riski | MEDIUM |
| Sorumlu | Uygulama 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
- 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 JITPolitika örneği
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
kernel = f"def run(x): return {user_expression}"
compiled = compile(kernel, "<jit>", "exec")allowed_ops = {"sum": torch.sum, "mean": torch.mean}
result = allowed_ops[op](tensor)İlgili kurallar
- JIT-EVAL-COMPILE: Dinamik eval veya compile Kullanımı
- JIT-DYNAMIC-KERNEL: Dinamik Kernel Üretimi