اسکن آسیب پذیری و تکه
خلاصه ای کوتاه
مدیریت آسیب پذیری یک چرخه مداوم است: تشخیص → ارزیابی ریسک → حذف (پچ/مهاجرت/پیکربندی) → تأیید → گزارش. فن آوری های اسکن (SCA/SAST/DAST/IAST/Cloud/Container) سیگنال ها را می دهد و زمینه (قرار گرفتن در معرض، امتیازات، داده ها، EPSS، سوء استفاده) اولویت را تعیین می کند. هدف این است که برای کاهش خطر واقعی بدون خرابی کسب و کار با استفاده از اتوماسیون، محاسبات قناری و SLOs روشن است.
طبقه بندی اسکن
SCA (تجزیه و تحلیل ترکیب نرم افزار): تجزیه و تحلیل وابستگی/مجوز ؛ کشف CVE در کتابخانه ها، SBOM.
تجزیه و تحلیل SAST-استاتیک کد بومی قبل از مونتاژ.
DAST: جعبه سیاه پویا در مقابل خدمات در حال اجرا.
IAST: سنسورهای درون برنامه (در طول آزمایشات) - FP کمتر، زمینه عمیق تر.
Container/OS Scan: تصاویر (تصویر پایه، بسته ها)، میزبان ها (هسته/بسته ها/پیکربندی ها)، معیارهای CIS.
Cloud/Infra (CSPM/KSPM): cloud/K8s اشتباه (IAM، شبکه ها، رمزگذاری، سطل های عمومی).
اسرار اسکن: کلید/رمز نشت در مخازن و تصاویر.
اسکن باینری/Artifact: تأیید مصنوعات جمع آوری شده (امضاها، آسیب پذیری ها).
مدل ریسک و اولویت بندی
امتیاز = CVSS v3. x (پایه) × EPSS (احتمال بهره برداری) × زمینه (قرار گرفتن در معرض، داده ها، امتیازات، اقدامات جبرانی).
عوامل زمینه:- قرار گرفتن در معرض در اینترنت/داخل، حضور WAF/mTLS/انزوا.
- اطلاعات: PII/امور مالی/اسرار.
- امتیازات فرآیند/گره، پتانسیل حرکت جانبی.
- در دسترس بودن بهره برداری عمومی/حملات جمعی، الزامات انطباق.
مثال بردار CVSS: 'CVSS: 3. 1/AV: N/AC: L/PR: N/UI: N/S: U/C: H/I: H/A: H → انتقاد ؛ اگر خدمات عمومی و بدون اقدامات جبرانی است - P1.
SLO آستانه (به عنوان مثال):- P1 (بحرانی، عمل): ثابت ≤ 48 ساعت.
- P2 (بالا): ≤ 7 روز تعمیر کنید.
- P3 (میانگین): ≤ 30 روز اصلاح کنید.
- P4 (کم/اطلاع رسانی): برنامه ریزی شده/توسط backlog.
چرخه عمر مدیریت آسیب پذیری
1. موجودی دارایی: خدمات، تصاویر، خوشه ها، سیستم عامل، بسته ها، وابستگی ها، نسخه ها.
2. اسکن برنامه ریزی شده و رویداد: تعهد، ساخت، تخلیه، پنجره های روزانه/هفتگی.
3. Triage: deduplication، normalization (CVE → Ticket)، نقشه برداری به مالک.
4. اولویت بندی بر اساس زمینه: CVSS/EPSS + قرار گرفتن در معرض/داده ها.
5. اصلاح: پچ/به روز رسانی وابستگی/پیکربندی سخت شدن/پچ مجازی (WAF).
6. تأیید: لغو، آزمایش، قناری.
7. گزارش: معیارهای بسته شدن، سن آسیب پذیری ها، انطباق SLO.
8. درس: ثابت در قالب (تصویر پایه، نمودار هلم)، سیاست برای آینده است.
ادغام در CI/CD
در مرحله PR: SAST + SCA + اسکن مخفی ؛ «شکستن ساخت» توسط P1/P2 و یا نرم افزار مورد نیاز است.
در مرحله ساخت: اسکن تصویر، تولید SBOM (CycloneDX/SPDX)، امضای مصنوعی (cosign).
در مرحله استقرار: مرحله سیاست پذیرش - تصاویر دارای آسیب پذیری های «بحرانی/بالا» و SBOM امضا نشده را ممنوع کنید.
مرحله پس از مرحله: DAST/IAST در برابر مرحله بندی و تولید جزئی (پروفایل های ایمن).
مثال: بازسازی/Dependabot (قطعه)
json
{
"extends": ["config:recommended"],
"vulnerabilityAlerts": { "enabled": true },
"packageRules": [
{ "matchUpdateTypes": ["minor","patch"], "automerge": true },
{ "matchManagers": ["dockerfile"], "enabled": true }
]
}
سیاست پذیرش (Kubernetes، OPA/Gatekeeper - ساده شده)
rego package policy.vuln
deny[msg] {
input.image.vuln.critical > 0 msg:= sprintf("Image %s has critical vulns", [input.image.name])
}
deny[msg] {
input.image.sbom == false msg:= sprintf("Image %s without SBOM", [input.image.name])
}
مدیریت پچ (دارایی های ثابت، ظروف، K8s)
ОС (لینوکس/ویندوز)
پنجره پچ: پنجره های معمولی + پنجره های فوق العاده اضطراری برای P1.
استراتژی: ابتدا گره های قناری 5-10٪، سپس امواج.
استقرار خودکار: Ansible/WSUS/Intune/SSM ؛ چک کردن محدودیت و بازپرداخت.
Kernel Live Patching (در صورت امکان) برای به حداقل رساندن خرابی.
خدمات راه اندازی مجدد: تخلیه/کردون مدیریت شده برای گره های K8s، خاموش شدن برازنده.
کانتینر ها
رویکرد غیر قابل تغییر: نه «ارتقاء مناسب» در زمان اجرا ؛ بازسازی تصویر با پایه به روز شده.
تصاویر پایه: به طور مرتب تصاویر طلایی (Alpine/Debian/Distroless)، نسخه های ثابت (هضم) را به روز کنید.
مجموعه های چند مرحله ای: به حداقل رساندن سطح (حذف ساخت ابزار).
Pre-Deploy Scan - بلوک تصاویر با CVE های بحرانی.
Kubernetes/مش سرویس
صفحه کنترل: نسخه های جزئی به موقع، بسته شدن CVE k8s/etcd/containerd.
Node OS/Container runtime: به روز رسانی برنامه ریزی شده، سازگاری نسخه.
Mesh/Ingress: نسخههای Envoy/Istio/NGINX بسیار مهم هستند (اغلب CVE در پارسر/NTTR3).
سیاست های پذیرش: ممنوعیت «: آخرین»، نیاز امضا، محدودیت های آسیب پذیری.
تکه های مجازی و اقدامات جبرانی
هنگامی که یک پچ به سرعت امکان پذیر نیست:- WAF/WAAP: مدل امضا/مثبت برای یک نقطه پایانی خاص.
- ویژگی پرچم: غیر فعال کردن قابلیت های آسیب پذیر.
- Network ACL/mTLS/IP allow-list: دسترسی به سرویس آسیبپذیر را محدود میکند.
- پیکربندی سخت شدن: کاهش حقوق، sandbox، FS فقط خواندنی، غیرفعال کردن ماژول های خطرناک.
- کاهش TTL نشانه/کلید، چرخش اسرار.
پذیرش ریسک
یک استثنا با یک بلیط با صادر: توجیه, اقدامات جبرانی, SLA برای حذف, تاریخ تجدید نظر.
گزارش به عنوان «پذیرش خطر موقت» و شامل در بررسی ماهانه.
قابلیت مشاهده و معیارها
فنی:- میانگین زمان به پچ (MTTP) по P1/P2/P3.
- سهم داراییهای تحت پوشش پویش (%).
- سن آسیب پذیری های باز (p50/p90)، سوزاندن backlog.
- درصد تصاویر با SBOM و امضا.
- تکمیل SLO ها با بسته شدن تاریخ (به عنوان مثال 95٪ P1 ≥ ≤ 48 ساعت)
- تاثیر بر روی آپ تایم (تعداد حوادث پچ).
- تشخیص مکرر همان CVE (کیفیت ثابت در قالب ها).
کتابهای بازی (به اختصار)
P1: RCE بحرانی در خدمات عمومی
1. فعال کردن قانون WAF/wirth پچ.
2. مسدود کردن دسترسی به منابع غیر مجاز (در صورت وجود)
3. تصویر فوری بازسازی/OS پچ، → موج قناری.
4. چک کردن تکرار DAST/تله متری، نظارت بر خطا.
5. پس از حادثه: ثابت در تصویر پایه/نمودار هلم، اضافه کردن آزمون به CI.
1. چرخش فوری اسرار/کلید ها، لغو نشانه ها.
2. پیدا کردن آثار استفاده، محدود کردن نقاط پایانی.
3. اسکن از repo/تصاویر برای اسرار، اجرای یک اسکنر قبل از ارتکاب.
نمونه هایی از مصنوعات
1) گزارش SQL در مورد آسیب پذیری های داغ
sql
SELECT service, cve, cvss, epss, exposed, has_exploit, created_at,
PRIORITY(exposed, has_exploit, cvss, epss) AS prio
FROM vuln_findings
WHERE status = 'open' AND (cvss >= 8.0 OR has_exploit = true)
ORDER BY prio DESC, created_at ASC;
2) سیاست پذیرش (Kyverno، بلوک آسیب پذیری بحرانی)
yaml apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata:
name: block-critical-vulns spec:
validationFailureAction: Enforce rules:
- name: image-must-have-no-critical match: { resources: { kinds: ["Pod"] } }
validate:
message: "Image contains critical vulnerabilities"
pattern:
metadata:
annotations:
vuln.scanner/critical: "0"
3) تولید و امضای SBOM (قطعه Makefile)
make sbom:
cyclonedx create --output sbom.json sign:
cosign sign --key cosign.key $(IMAGE_DIGEST)
ویژگی برای iGaming/fintech
مناطق پر خطر: دروازه های پرداخت، backfix پرداخت، ضد تقلب، پردازش PII/PAN - P1/P2 تکه های اولویت.
پنجره های خدمات: هماهنگی با مسابقات/تبلیغات، انبارهای پیش گرم، قناری ها در مناطق کم بار.
تنظیم مقررات (PCI DSS/GDPR): جدول زمانی برای رفع آسیب پذیری ها، شواهد (تصاویر/گزارش ها)، تقسیم بندی منطقه CHD، رمزگذاری.
یکپارچگی شریک: نیاز به نسخه SDK/مشتریان، SCA اجباری و HMAC/mTLS در webhooks.
اشتباهات رایج
«اسکن همه چیز - تعمیر هیچ چیز»: هیچ مالک و SLO.
فقط بر روی CVSS بدون زمینه (قرار گرفتن در معرض، EPSS، داده ها) تمرکز کنید.
پچ در زمان اجرا ظرف به جای بازسازی تصویر.
عدم وجود قناری/برنامه های برگشت.
نادیده گرفتن اشتباهات cloud/K8s (اغلب مهمتر از CVE)
بدون SBOM/امضا - زنجیره تامین.
پیاده سازی نقشه راه
1. فهرست دارایی ها و صاحبان ؛ ثبت یکپارچه خدمات/تصاویر.
2. پشته اسکنر: SCA/SAST/DAST/کانتینر/ابر + مخفی اسکن ؛ ادغام به CI/CD.
3. SLO و سیاست های اولویت بندی: CVSS + EPSS + زمینه ؛ قالب های بلیط
4. پذیرش/سیاست به عنوان کد: ممنوعیت آسیب پذیری های بحرانی، نیاز SBOM/امضا.
5. فرآیندهای پچ: پنجره ها، قناری ها، رول بک ها ؛ autopilots برای نسخه های جزئی/پچ.
6. گزارش و معیارها: MTTP، پوشش، سن ؛ بررسی هفتگی ریسک
7. تمرینات منظم: شبیه سازی CVE بحرانی، تأیید playbooks و rollback.
نتیجه گیری
مدیریت آسیب پذیری بالغ یک فرآیند است، نه یک «پاکسازی» یک بار: تشخیص خودکار، اولویت بندی زمینه، تکه های صاف از طریق canaries/rollback، سیاست به عنوان کد در ورودی prod و معیارهای اجرای شفاف. با ایمن سازی قفل ها در تصاویر و الگوهای پایه، خطر تکرار را کاهش می دهید و سطح حمله را تحت کنترل مداوم نگه می دارید.