• בלוג
  • מי שלא נפגע מטריוי

מי שלא נפגע מטריוי

25/03/2026

טריוי סורק את הפרויקטים שלכם כדי לבדוק שאין בעיות אבטחה. כמובן שכלי אבטחה הם מטרה מאוד מפתה לפורצים ולאחרונה למדנו שפורצים הצליחו להשיג את מפתחות הגישה של טריוי ולפרסם בשמם גרסאות מזויפות. הפרטים כאן:

https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23

מה שמעניין בסיפור הוא לא מי שנפגע אלא מי שלא נפגע. מתוך הדיווח אנחנו לומדים שלא נפגעו מי שהשתמשו ב trivy images referenced by digest - אבל מה זה אומר? ולמה גרסאות ה digest היו חסינות?

מאגר החבילות של טריוי מכיל את רשימת האימג'ים שהם פרסמו עם תגיות כמו canary, latest, 0.69.3 ותגיות ארוכות יותר שמתחילות ב sha256 כמו sha256:b39e145284f15252b2135abe0e24509d7ad2459d28c18f014e478c6ca0aee533.

כשאנחנו מריצים docker run aquasec/trivy אנחנו מריצים את הגרסה שיש עליה את התג latest. ואם נריץ docker run aquasec/trivy:canary נריץ את הגרסה המתויגת canary. וכמו שבטח הבנתם אם נפעיל:

docker run ghcr.io/aquasecurity/trivy:sha256-bcc376de8d77cfe086a917230e818dc9f8528e3c852f7b1aff648949b6258d1c

נריץ את הגרסה עם התג הארוך.

התגים הארוכים שמתחילים ב sha256 נקראים digest. גיטהאב מחשב אותם אוטומטית מתוך תוכן החבילה ולא ניתן ליצור אותם בצורה יזומה. כל שאר התגיות נועדו להיות "מדבקות", כלומר מזהים גמישים שאפשר להדביק על גרסה ואז להזיז לגרסה אחרת. זה הגיוני כשחושבים על תג כמו latest - כל פעם שיש לנו גרסה עדכנית חדשה אנחנו מזיזים את latest לגרסה החדשה.

כך ברור שהתוקפים שהשתלטו על פרטי ההזדהות של טריוי הצליחו בקלות לפרסם גרסאות זדוניות של המערכת ולדחוף תגיות כמו latest, canary וגם v0.69.4. אפילו שגרסאות כאלה כבר היו קיימות, כל מה שצריך זה לדחוף עדכון לתגים אלה כדי לדרוס את הסימון. מצד שני לא משנה מה יעשו התוקפים הם לא יצליחו להזיז את סימוני ה digest כי בשביל זה צריך ליצור גרסה זדונית שתוכנה ייתן את אותה תוצאת sha256 וזה כבר סיפור הרבה יותר מאתגר.

לקחים? לא משהו גדול, רק עוד מבט על המרחק בין אבטחת מידע לנוחות שימוש. אני יודע שבבלוגוספירה, במדריכים ואפילו בצ'אט תמיד נקבל את הגרסה הקלה לעיכול, אבל אל תשכחו שבפרודקשן הרבה אנשים כן משתמשים בגרסאות מקובעות של התלויות שלהם, בדיוק בשביל להימנע מכאבי ראש כאלה.