האיום שמגיע מבפנים, ולמה 2025 שינה הכל
דצמבר 2020: SolarWinds, ספק תוכנה שכולם סמכו עליו הכניס backdoor לעדכון שהגיע ל-18,000 ארגונים. מרץ 2025: tj-actions, Action של GitHub שנפרץ ושינה כל version tag רטרואקטיבית, וחשף secrets של 23,000 repositories תוך שעות. ספטמבר 2025: תולעת Shai-Hulud, הנוזקה הראשונה שמשכפלת את עצמה ב-npm. היא פגעה ב-chalk, debug, ansi-styles, packages עם 2.6 מיליארד הורדות שבועיות.
דוח ה-Verizon DBIR לשנת 2025 מצא ש-30% מהפרצות קשורות לצד שלישי, כפול מהשנה הקודמת. OWASP הכניסה Supply Chain Failures למקום #3 ב-Top 10 של 2025. זה לא עוד "best practice נחמד", זה הפך לחובה.
מהי Supply Chain Attack ומה האנטומיה שלה
במקום לתקוף את הקוד שלך ישירות, התוקף תוקף אחד מה-suppliers שלך: ספריית npm, GitHub Action, Docker base image, או build tool. אתה מוריד "עדכון", ומקבל malware. שלושת וקטורי ההתקפה הנפוצים:
- Account Hijacking: תוקף פורץ לחשבון npm של maintainer ומפרסם גרסה רעילה של package לגיטימי. Axios נפגע כך במרץ 2026.
- Dependency Confusion: חברה משתמשת ב-package פרטי בשם internal-utils. תוקף מפרסם package ציבורי באותו שם עם version גבוהה יותר. npm מוריד אוטומטית את הציבורי.
- Typosquatting: axois במקום axios, reqests במקום requests. מי שממהר לא שם לב.
ויש איום חדש שייחודי לעידן ה-AI: Slopsquatting. מודלי שפה גדולים (כולל Claude) ממציאים שמות packages שלא קיימים בשיעור של כ-20%. 58% מהשמות האלה חוזרים על עצמם באופן עקבי, מה שמאפשר לתוקפים לצפות אותם ולרשום packages זדוניים מראש. אם אתה משתמש ב-Claude לכתיבת קוד, תמיד ודא שהpackage שהוצע קיים ב-registry רשמי לפני ה-install.
ארסנל הכלים, ומה Claude עושה בכל אחד
| שכבת הגנה | כלי | מה Claude עוזר |
|---|---|---|
| Dependency audit | npm audit / Grype | Triage CVEs, תעדוף upgrade path, הסבר ל-business impact |
| SBOM | Syft, CycloneDX | ניתוח output, זיהוי packages עם maintenance risk |
| CI/CD hardening | GitHub Actions | המרה מ-version tag ל-SHA pin, הוספת OIDC federation |
| Artifact signing | Sigstore / Cosign | הסבר פקודות, כתיבת verification step ב-workflow |
| Policy as Code | Dependabot / Renovate | כתיבת config, triage PRs, בדיקת changelogs |
פרומפט מעשי 1, Dependency Security Audit
הדבק את ה-package.json או requirements.txt שלך וכתוב לClaude:
אתה supply chain security engineer.
בצע audit ל-dependencies הבאות לפי שלוש רמות:
רמה 1, CVE Exposure:
- אילו packages מכילים CVEs ידועים עם exploit code זמין?
- מה ה-upgrade path לכל CVE?
רמה 2, Maintenance Risk:
- אילו packages לא עודכנו מעל שנתיים?
- אילו packages יש להם maintainer יחיד?
רמה 3, Unusual Behavior:
- אילו packages מריצים postinstall scripts?
- האם יש packages שהוסיפו network calls ב-version האחרון?
לכל ממצא: [חומרה HIGH/MEDIUM/LOW], הסבר הסיכון, המלצה.
[הדבק package.json / requirements.txt]למה postinstall scripts מסוכנים? כשרץ npm install, ה-script הזה מופעל אוטומטית עם הרשאות ה-user, בלי שתראה אותו. זה הווקטור הקלאסי שבו תולעת Shai-Hulud הפיצה את עצמה.
פרומפט מעשי 2, GitHub Actions Hardening
האם workflow שלך כולל שורה כזו?
uses: third-party-org/some-action@v2אם כן, אתה חשוף. Version tag הוא mutable, מחר הוא יכול להצביע על commit אחר. כך בדיוק עבד המתקפה על tj-actions, הם שינו את ה-tag, ו-23,000 repos הורידו קוד זדוני באופן אוטומטי. SHA pin הוא immutable:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2בקש מ-Claude:
הנה ה-GitHub Actions workflow שלי.
זהה כל uses: שמצוין ב-version tag ולא ב-commit SHA.
לכל אחד:
1. מה ה-SHA המדויק של הversion הנוכחי?
2. כתוב את ה-uses: המתוקן עם SHA + comment עם הversion
3. האם ה-action הזה מ-verified organization?
[הדבק workflow YAML]SBOM, מ-document ל-מערכת חיה
SBOM (Software Bill of Materials) הוא רשימה מלאה של כל ה-dependencies שלך, direct ו-transitive, עם שמות, גרסאות, ורישיונות. ב-2026 ה-EU Cyber Resilience Act מחייב SBOM לכל תוכנה שנמכרת בשוק האירופי. אי-עמידה: עד 15 מיליון יורו או 2.5% מהמחזור הגלובלי.
אבל SBOM שנוצר פעם אחת הוא כמעט חסר ערך. ה-shift של 2026 הוא מ-static SBOM ל-operational SBOM: מסמך שמתעדכן בכל build, מוזן למערכת שסורקת אותו ב-real time מול vulnerability feeds, ומייצר התראה כשCVE חדש מתפרסם שנוגע ל-dependency שלך, גם indirect.
בקש מ-Claude לנתח SBOM output:
הנה SBOM שנוצר על ידי Syft בפורמט CycloneDX.
זהה:
1. Packages עם אפס commits ב-12 חודשים האחרונים
2. Packages עם maintainer יחיד
3. Licenses שאינן תואמות לשימוש מסחרי (GPL, AGPL)
4. Direct dependencies עם CVE פתוח לעומת transitive
[SBOM JSON]טעויות נפוצות, ומה לעשות במקום
- npm audit כ-warning שנדחה: npm audit רץ ב-CI ומציג 47 vulnerabilities, אבל ה-PR עובר. הפוך HIGH ו-CRITICAL ל-pipeline failure:
npm audit --audit-level=highשעוצר deployment עד תיקון. חברות ישראליות רבות מגלות שלClaude יש יכולת מצוינת לתעדף מהר איזה מהCVEs הם false positive ואיזה דורשים תשומת לב מיידית. - לסמוך על שם גדול: chalk, debug, strip-ansi, שלושת הpackages שנפגעו בספטמבר 2025, הם בין הנמצאים בכמעט כל Node.js project. Popularity לא שווה security. תוקפים מכוונים לpackages פופולריים כי ה-blast radius גדול יותר.
- לשכוח transitive dependencies: ה-package.json שלך כולל 30 direct dependencies. npm install מוריד גם את כל שרשרת ה-dependencies שלהם, לעיתים 1,200+ packages. 80%+ מה-CVEs הם ב-transitive, לא ב-direct.
npm auditבודק את כולם, השתמש בו.
שגרת עבודה מומלצת
הגדר Dependabot או Renovate Bot שפותח PR לכל dependency update. לפני approve, בקש מ-Claude:
הנה changelog של [package] מ-version X ל-Y.
הנה הקוד שלנו שמשתמש בpackage:
[קוד]
שאלות:
1. האם יש breaking changes שמשפיעים על הקוד שלנו?
2. האם יש security fixes? אם כן, האם הם קריטיים?
3. מה לבדוק בtesting לפני merge?סטארטאפ ב-תל אביב שמשתמש בpipeline כזה דיווח על צמצום זמן review של dependency updates מ-40 דקות ל-5 דקות per PR, עם שיפור בכיסוי הבדיקה.
מקורות: OWASP Top 10 2025, A03 Supply Chain | CISA Alert, npm Ecosystem Compromise (Sept 2025) | Snyk, Slopsquatting Mitigation | Anthropic, Claude Code Security Review Action
