OCI ve Konteyner Kuralları
Konteyner imajı katmanları, manifest dosyaları ve çalışma zamanı izinlerinde AI iş yüklerine özel riskleri tespit eder.
OCI 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.
AI servisleri çoğu zaman konteyner içinde dağıtılır. Geniş izinler, büyük imaj katmanları ve zafiyetli çalışma zamanı üretim riskini büyütür.
Desteklenen girdiler
DockerfileOCI manifestcontainer image tarSBOM
Tipik saldırı senaryoları
- İmaj root kullanıcıyla çalışır ve model bağlama alanına yazabilir.
- Konteyner içinde gizli bilgi veya token kalıntısı bulunur.
- Manifest beklenmeyen dış imaj veya değişebilir etiket kullanır.
Algılama mantığı
Sentinel OCI 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
OCI 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: OCI
fail_on:
- CRITICAL
- HIGH
ticket_on:
- MEDIUM
retest: "sentinel scan ./project/"Kural dizini
| Kural kimliği | Öncelik | Başlık | CWE | Düzeltme ipucu |
|---|---|---|---|---|
| OCI-ROOT-USER | MEDIUM | Konteyner Root Kullanıcıyla Çalışıyor | CWE-250 | İmaj içinde root olmayan USER tanımlayın. |
| OCI-SECRET-IN-LAYER | CRITICAL | Konteyner Katmanında Gizli Bilgi | CWE-798 | Kimlik bilgilerini asla image katmanlarına gömmeyin. |
| OCI-UNPINNED-BASE | MEDIUM | Sabitlenmemiş Temel Image | CWE-494 | Temel image için değişmez OCI digest kullanın. |
OCI-ROOT-USER — Konteyner Root Kullanıcıyla Çalışıyor
MEDIUM| Kural kimliği | OCI-ROOT-USER |
|---|---|
| Kategori | OCI |
| Öncelik | MEDIUM |
| CWE | CWE-250 |
| OWASP LLM | LLM03 — Supply Chain |
| Yanlış pozitif riski | MEDIUM |
| Sorumlu | Platform, DevOps ve bağımlılık sahibi |
| Yayın kararı | Sahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin. |
Açıklama
AI iş yükü konteyner imajının root kullanıcıyla çalıştığını tespit eder.
Neden önemli?
AI servisleri çoğu zaman konteyner içinde dağıtılır. Geniş izinler, büyük imaj katmanları ve zafiyetli çalışma zamanı üretim riskini büyütür.
Ne zaman tetiklenir?
Sentinel bu kuralı OCI kategorisinde şu kanıtı gördüğünde tetikler: Dockerfile veya OCI üst veri içinde USER tanımı yoktur ya da root kullanılı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
Dockerfile veya OCI üst veri içinde USER tanımı yoktur ya da root kullanılı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: Platform, DevOps ve bağımlılık sahibi.
- Karar: Sahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin.
- Kanıt: Dockerfile veya OCI üst veri içinde USER tanımı yoktur ya da root kullanılır.
- Kapanış: sentinel scan ./project/ komutu temiz dönmeli.
Nasıl düzeltilir?
İmaj içinde root olmayan kullanıcı tanımlayın ve yazılabilir bağlama izinlerini daraltın.
CLI
sentinel scan ./project/Politika örneği
rules:
OCI-ROOT-USER:
owner: "Platform, DevOps, and dependency owner"
fail_on: ["CRITICAL", "HIGH"]
retest: "sentinel scan ./project/"Beklenen çıktı
OCI-ROOT-USER MEDIUM
Konteyner Root Kullanıcıyla Çalışıyor
İmaj içinde root olmayan USER tanımlayın.Örnek
FROM python:latest
ENV OPENAI_API_KEY=sk-live-example
USER rootFROM python:3.12-slim@sha256:...
USER 10001
# secrets injected by runtime secret managerİlgili kurallar
- OCI-SECRET-IN-LAYER: Konteyner Katmanında Gizli Bilgi
- OCI-UNPINNED-BASE: Sabitlenmemiş Temel Image
OCI-SECRET-IN-LAYER — Konteyner Katmanında Gizli Bilgi
CRITICAL| Kural kimliği | OCI-SECRET-IN-LAYER |
|---|---|
| Kategori | OCI |
| Öncelik | CRITICAL |
| CWE | CWE-798 |
| OWASP LLM | LLM02 — Sensitive Information Disclosure, LLM03 — Supply Chain |
| Yanlış pozitif riski | LOW |
| Sorumlu | Platform, DevOps ve bağımlılık sahibi |
| Yayın kararı | Yayını durdurun; model dosyası veya kod yolu izole edilmeden üretime alınmamalı. |
Açıklama
Konteyner imajı katmanlarında API anahtarı, token, özel anahtar veya benzeri gizli bilgi kalıntısı bulur.
Neden önemli?
AI servisleri çoğu zaman konteyner içinde dağıtılır. Geniş izinler, büyük imaj katmanları ve zafiyetli çalışma zamanı üretim riskini büyütür.
Ne zaman tetiklenir?
Sentinel bu kuralı OCI kategorisinde şu kanıtı gördüğünde tetikler: Katman geçmişi, dosya sistemi veya ortam alanında gizli bilgi örüntüsü görülü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
Katman geçmişi, dosya sistemi veya ortam alanında gizli bilgi örüntüsü görülü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ığı düşüktür. Kanıt doğrudan dosya, opcode, gizli bilgi örüntüsü, yol veya manifest alanına bağlanıyorsa bulguyu gerçek kabul edip kapanış kanıtı isteyin.
İnceleme ve önceliklendirme
- Sorumlu: Platform, DevOps ve bağımlılık sahibi.
- Karar: Yayını durdurun; model dosyası veya kod yolu izole edilmeden üretime alınmamalı.
- Kanıt: Katman geçmişi, dosya sistemi veya ortam alanında gizli bilgi örüntüsü görülür.
- Kapanış: sentinel scan ./project/ komutu temiz dönmeli.
Nasıl düzeltilir?
Kimlik bilgilerini image içine koymayın; sızan değerleri döndürün ve gizli bilgi yöneticisi kullanın.
CLI
sentinel scan ./project/Politika örneği
rules:
OCI-SECRET-IN-LAYER:
owner: "Platform, DevOps, and dependency owner"
fail_on: ["CRITICAL", "HIGH"]
retest: "sentinel scan ./project/"Beklenen çıktı
OCI-SECRET-IN-LAYER CRITICAL
Konteyner Katmanında Gizli Bilgi
Kimlik bilgilerini asla image katmanlarına gömmeyin.Örnek
FROM python:latest
ENV OPENAI_API_KEY=sk-live-example
USER rootFROM python:3.12-slim@sha256:...
USER 10001
# secrets injected by runtime secret managerİlgili kurallar
- OCI-ROOT-USER: Konteyner Root Kullanıcıyla Çalışıyor
- OCI-UNPINNED-BASE: Sabitlenmemiş Temel Image
OCI-UNPINNED-BASE — Sabitlenmemiş Temel Image
MEDIUM| Kural kimliği | OCI-UNPINNED-BASE |
|---|---|
| Kategori | OCI |
| Öncelik | MEDIUM |
| CWE | CWE-494 |
| OWASP LLM | LLM03 — Supply Chain |
| Yanlış pozitif riski | MEDIUM |
| Sorumlu | Platform, DevOps ve bağımlılık sahibi |
| Yayın kararı | Sahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin. |
Açıklama
Digest ile sabitlenmemiş veya değişebilir etiket kullanan temel image tanımlarını raporlar.
Neden önemli?
AI servisleri çoğu zaman konteyner içinde dağıtılır. Geniş izinler, büyük imaj katmanları ve zafiyetli çalışma zamanı üretim riskini büyütür.
Ne zaman tetiklenir?
Sentinel bu kuralı OCI kategorisinde şu kanıtı gördüğünde tetikler: FROM satırı digest yerine latest ya da değişebilir etiket kullanı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
FROM satırı digest yerine latest ya da değişebilir etiket kullanı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: Platform, DevOps ve bağımlılık sahibi.
- Karar: Sahip atayın, sprint içinde düzeltin ve yeniden test komutunu iş kaydına ekleyin.
- Kanıt: FROM satırı digest yerine latest ya da değişebilir etiket kullanır.
- Kapanış: sentinel scan ./project/ komutu temiz dönmeli.
Nasıl düzeltilir?
Temel image için değişmez OCI digest kullanın ve güncelleme sürecini kontrollü yürütün.
CLI
sentinel scan ./project/Politika örneği
rules:
OCI-UNPINNED-BASE:
owner: "Platform, DevOps, and dependency owner"
fail_on: ["CRITICAL", "HIGH"]
retest: "sentinel scan ./project/"Beklenen çıktı
OCI-UNPINNED-BASE MEDIUM
Sabitlenmemiş Temel Image
Temel image için değişmez OCI digest kullanın.Örnek
FROM python:latest
ENV OPENAI_API_KEY=sk-live-example
USER rootFROM python:3.12-slim@sha256:...
USER 10001
# secrets injected by runtime secret managerİlgili kurallar
- OCI-ROOT-USER: Konteyner Root Kullanıcıyla Çalışıyor
- OCI-SECRET-IN-LAYER: Konteyner Katmanında Gizli Bilgi