ביטוי רגולרי בלי עוגנים, ומרוץ על רישום חשבון GitHub

Read this article in English

הפוסט הזה הוא הקריאה שלי במחקר שפורסם על ידי Yuval Avrahami and Nir Ohfeld at Wiz. הממצאים שלהם; הטענה על המשמעות שלהם היא שלי. שווה לקרוא את המחקר המקורי במלואו.

יש באגים שאתה קורא ושוכח. ויש כאלה שלא עוזבים אותך, לא בגלל התחכום שלהם, אלא בגלל צורת החשיבה שמאחוריהם. זה בדיוק מה שקרה לי כשקראתי על המחקר של יובל אברהמי וניר אוכפלד מ-Wiz.

הם מצאו חולשה ב-AWS CodeBuild שאפשרה להשתלט על repositories מרכזיים של AWS ב-GitHub, כולל ה-JavaScript SDK שמפעיל את ה-AWS Console ונמצא בשימוש בכ-66 אחוז מסביבות הענן.

ברמה הטכנית, זה כמעט מביך כמה שזה פשוט

פילטרים של webhook שבודקים ACTOR_ID באמצעות regex, בלי anchors של תחילת וסוף הביטוי (^ ו-$). הבדיקה לא דרשה התאמה מלאה, אלא הסתפקה בכך שה-ID מופיע כ-substring.

התוצאה: תוקף יכול היה ליצור משתמש GitHub חדש שה-ID שלו מכיל את ה-ID של maintainer מהימן, לעבור את בדיקת האימות, ולקבל הרשאות שלא אמורות להיות לו.

אבל זה לא מה שתפס אותי.

מה שהיה מרשים באמת הוא איך הם ניצלו את זה בפועל

התזמון של יצירת GitHub App bot user כך שה-maintainer ID יהיה substring של המשתמש שלהם, תוך כדי מרוץ מול מנגנון יצירת החשבונות של GitHub.

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

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

אנחנו נתקלים בזה כל הזמן

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

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

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


פוסט זה פורסם לראשונה בלינקדאין בתאריך 2026-02-02. — ארז מטולה