ניהול פרצות אבטחה: איגום ותיעדוף

פגיעויות מסורקים שונים נערמות בכאוס, ובעיות קריטיות הולכות לאיבוד בזרם הדוחות. אנחנו מיישמים מערכת ניהול פגיעויות אחידה המבוססת על DefectDojo ו-Dependency-Track, ומבצעים אוטומציה של איגום ותיעדוף. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד תמיכה—ומבטיח הגנה אמינה ללא מיון ידני.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

ללא מערכת מאוחדת, נקודות תורפה מתרבות: מה לעשות?

דמיינו: החברה שלכם משתמשת ב-Trivy, Snyk, OWASP ZAP ו-Checkmarx — חמישה סורקים שונים, כל אחד עם ממשק משלו. ללא מערכת ניהול נקודות תורפה מאוחדת, מהנדסים מבזבזים עד 40 שעות בחודש על טרייאז' ידני, תיאום ודיווח. התוצאה: בעיות קריטיות מוחמצות, ונקודות תורפה ברמת עדיפות נמוכה מצטברות. לפי CISA, יותר מ-50% מהמתקפות מנצלות נקודות תורפה ידועות מ-KEV — מה שמאשר את הצורך באוטומציה. לפי התיעוד הרשמי של DefectDojo, הפלטפורמה תומכת ביותר מ-100 סוגי סורקים. המהנדסים שלנו (בעלי הסמכות AWS, CKS, CISSP) מתקינים את DefectDojo ו-Dependency-Track כדי להפוך את האיגregation, הסרת הכפילויות והתעדוף לאוטומטיים. התוצאה היא חיסכון של 80% בזמן והפחתת MTTR ל-24 שעות עבור אירועי P1. לאורך השנים, השלמנו עשרות פרויקטי VM, והפחתנו את הניתוח הידני בממוצע פי 5.

בחירת כלים וארכיטקטורה

שלוש גישות עיקריות:

  • DefectDojo — פלטפורמת קוד פתוח. מקבלת תוצאות מ-100+ סורקים (Trivy, Snyk, Checkmarx, ZAP, Burp), מסירה כפילויות לפי CPE/CVE, מקבצת לפי מוצרים וצוותים, מאפשרת הגדרת SLA וסנכרון עם Jira.
  • Dependency-Track — מתמחה ב-SCA ו-SBOM. מקבל דוחות CycloneDX/SPDX, ומצליב ברציפות רכיבים עם NVD, OSV ו-GitHub Advisories. לוח מחוונים עם מדדים מבוססי זמן.
  • פלטפורמות מסחריות (Snyk, Wiz, Tenable.io, JFrog Xray) — אינטגרציה טובה יותר, יקרות יותר, פחות התאמה אישית.

עבור רוב הצוותים ללא תקציב אבטחה גדול, השילוב של DefectDojo + Dependency-Track מכסה 80% מהצרכים. לפי הנתונים שלנו, השילוב הזה זול פי 3 מ-Snyk Enterprise עם פונקציונליות דומה.

זרימת נתונים:

CI/CD pipelines
├── Trivy (fs + image) → SARIF / JSON
├── Snyk (code + oss) → SARIF / JSON
├── GitLeaks → JSON
├── Checkmarx → SARIF
└── OWASP ZAP → JSON
│
▼ DefectDojo API (импорт результатов, дедупликация)
│
├── Engagement per Product per Sprint
├── Finding deduplication по hash
├── JIRA sync (критичные findings → tickets)
└── Metrics: open/closed/accepted risk

DefectDojo: התקנה והגדרה בסיסית

# Docker Compose cd django-DefectDojo ./dc-build.sh docker compose up -d # Helm в k8s helm repo add defectdojo https://raw.githubusercontent.com/DefectDojo/django-DefectDojo/helm-charts helm install defectdojo defectdojo/defectdojo \
    --namespace security \
    --create-namespace \
    --set django.ingress.enabled=true \
    --set django.ingress.host=defectdojo.internal \
    --values my-values.yaml

יישום טכני: מ-CI/CD לתעדוף

איך להגדיר ייבוא אוטומטי של נקודות תורפה מ-CI/CD?

ייבא תוצאות דרך API (GitLab CI):

---
upload-to-defectdojo:
  stage: .post
  image: curlimages/curl:latest
  when: always
  script:
    - |
      ENGAGEMENT_ID=$(curl -s -X POST \
        -H "Authorization: Token $DEFECTDOJO_API_TOKEN" \
        -H "Content-Type: application/json" \
        "$DEFECTDOJO_URL/api/v2/engagements/" \
        -d "{ \"product\": $DEFECTDOJO_PRODUCT_ID, \"name\": \"CI scan - $CI_COMMIT_SHORT_SHA\", \"target_start\": \"$(date +%Y-%m-%d)\", \"target_end\": \"$(date +%Y-%m-%d)\", \"status\": \"In Progress\", \"engagement_type\": \"CI/CD\" }" | jq -r '.id')
    - |
      curl -s -X POST \
        -H "Authorization: Token $DEFECTDOJO_API_TOKEN" \
        -F "engagement=$ENGAGEMENT_ID" \
        -F "scan_type=Trivy Scan" \
        -F "[email protected]" \
        -F "minimum_severity=High" \
        -F "active=true" \
        -F "verified=false" \
        -F "close_old_findings=true" \
        "$DEFECTDOJO_URL/api/v2/import-scan/"
    - |
      if [ -f zap-report.json ]; then
        curl -s -X POST \
          -H "Authorization: Token $DEFECTDOJO_API_TOKEN" \
          -F "engagement=$ENGAGEMENT_ID" \
          -F "scan_type=ZAP Scan" \
          -F "[email protected]" \
          -F "minimum_severity=High" \
          "$DEFECTDOJO_URL/api/v2/import-scan/"
      fi
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
---

Dependency-Track: עבודה עם SBOM:

---
generate-and-upload-sbom:
  stage: security
  image: aquasec/trivy:latest
  entrypoint: [""]
  script:
    - trivy fs --format cyclonedx --output sbom-fs.json .
    - trivy image --format cyclonedx --output sbom-image.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - |
      curl -X PUT -H "X-API-Key: $DEPENDENCY_TRACK_API_KEY" -H "Content-Type: application/json" \
        "$DEPENDENCY_TRACK_URL/api/v1/bom" \
        -d "{\"project\": \"$DTRACK_PROJECT_UUID\", \"bom\": \"$(base64 -w 0 sbom-image.json)\"}"
  artifacts:
    paths:
      - sbom-*.json
    expire_in: 90 days
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
---

למה CVSS לא תמיד מספיק?

CVSS 9.8 הוא סיכון מקסימלי תיאורטי. סיכון אמיתי = CVSS × יכולת ניצול בהקשר × קריטיות הנכס. רכיב עם CVSS 7.5 ב-API חשוף לציבור ללא אימות הוא מסוכן יותר מאשר CVSS 9.8 בשירות אצווה לא מקוון.

מה זה CISA KEV ואיך זה עוזר לתעדף נקודות תורפה?

KEV (Known Exploited Vulnerabilities) מ-CISA מפרט נקודות תורפה שמנוצלות בפועל. אם CVE נמצא ברשימה זו, התייחסו אליו כ-P1 ללא קשר ל-CVSS.

מערכת עדיפויות:

קריטריון P1 (SLA: 24 שעות) P2 (SLA: 7 ימים) P3 (SLA: 30 ימים)
CVSS ≥ 9.0 7.0–8.9 < 7.0
ניצול בשטח כן לא לא
חשיפת נכס חשוף לציבור פנימי מבודד
תיקון זמין כן — —
import json, requests

def enrich_with_kev(trivy_report_path):
    kev = requests.get("https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json").json()
    kev_ids = {v['cveID'] for v in kev['vulnerabilities']}
    with open(trivy_report_path) as f:
        report = json.load(f)
    for result in report.get('Results', []):
        for vuln in result.get('Vulnerabilities', []):
            if vuln.get('VulnerabilityID') in kev_ids:
                vuln['InKEV'] = True
                vuln['Priority'] = 'P1'
    return report

תהליך היישום והתוצאות

מדדים מרכזיים

  • MTTR לפי חומרה — זמן ממוצע מגילוי לתיקון
  • מגמת Critical פתוחים — דינמיקה על פני 30/60/90 ימים
  • אחוז עמידה ב-SLA — אחוז הממצאים שנסגרו בתוך SLA
  • אחוז פתיחה מחדש — איכות התיקונים
  • אחוז דיכוי — חלק מהסיכון המקובל

DefectDojo בונה מדדים אלה אוטומטית. עבור Grafana, ייצא דרך Prometheus exporter (תיעוד DefectDojo זמין ב-GitHub).

השוואה בין DefectDojo, Dependency-Track ופלטפורמות מסחריות

מאפיין DefectDojo Dependency-Track מסחרי (Snyk, Wiz)
סוג קלט תוצאות סריקה SBOM (CycloneDX/SPDX) תוצאות + SBOM
הסרת כפילויות לפי hash, CPE, CVE לא (רכיבים בלבד) אוטומטי
מדדים מובנים, API לוח מחוונים מובנים
תמיכה בסורקים 100+ כל סורק שמייצר SBOM מוגבל
מחיר חינם חינם בתשלום (תלוי ספק)

תהליך היישום

  • ביקורת על ערימת האבטחה והתהליכים הנוכחיים
  • התקנת DefectDojo ו/או Dependency-Track (Docker Compose או Helm)
  • אינטגרציה של ייבוא תוצאות מ-CI/CD (GitLab, GitHub Actions, Jenkins)
  • הגדרת מדיניות הסרת כפילויות, תעדוף ו-SLA
  • סנכרון Jira/GitLab להקצאת משימות אוטומטית
  • לוחות מחוונים ודיווח שבועי
  • תיעוד ארכיטקטורה וסקריפטים
  • הדרכת צוות על שימוש בפלטפורמה

מה כלול בעבודה

  • ביקורת — ניתוח סורקים נוכחיים, פורמטי דוחות, תהליכי טרייאז'
  • התקנה — התקנה והגדרה של DefectDojo/Dependency-Track בתשתית שלכם (Docker, k8s, bare metal)
  • אינטגרציות — צינורות CI/CD, Jira, Slack, כניסה אחידה (SSO)
  • מדיניות תעדוף — הגדרת כללים לפי SLA וקריטיות הנכסים שלכם
  • לוחות מחוונים — Grafana + Prometheus exporter לניטור מדדים
  • תיעוד — דיאגרמת ארכיטקטורה, runbook לתפעול, סקריפטים לאוטומציה
  • הדרכה — סדנה לצוות (2-4 שעות) על שימוש בפלטפורמה
  • תמיכה לאחר השקה — שבועיים של תחזוקה לאחר היישום

לוחות זמנים משוערים

פרויקט ממוצע אורך בין שבועיים (צוות יחיד, ערימה פשוטה) ל-2-3 חודשים (ארגון גדול, אינטגרציות ארגוניות). העלות מחושבת באופן אישי. חיסכון בעיבוד דוחות ידני — עד 40 שעות בחודש, מה שמוביל להפחתת עלויות משמעותית. ההשקעה מחזירה את עצמה תוך מספר חודשים. אנחנו עובדים turnkey: מביקורת ועד תמיכה לאחר השקה.

צרו קשר להערכה חינמית של הפרויקט שלכם. בקשו ייעוץ, ואנו נבחר את הארכיטקטורה האופטימלית לניהול נקודות תורפה עבור הערימה שלכם.