כלל אחד מוגדר-שגוי בחומת אש, 100 מיליון רשומות
מהנדסת ענן לשעבר של אמזון פרצה לקפיטל וואן בעזרת כלי סריקה שכתבה בעצמה כדי לאתר חשבונות AWS עם חומות אש מוגדרות שגוי, התרברבה בזה תחת הכינוי המקוון שלה “erratic” בערוץ Slack פרטי, והעלתה ראיות ל-GitHub תחת חשבון שנשא, בניגוד לכינוי בסלאק, את שמה האמיתי ואת קורות החיים שלה. היא נעצרה תוך כשבועיים מהרגע שמישהו בכלל הסתכל. הפריצה עצמה דרשה מיומנות אמיתית. להיתפס דרש כמעט כלום.
מה קרה בפועל
פייג’ תומפסון, מהנדסת לשעבר באמזון וב-AWS, הואשמה בניצול תצורה שגויה של חומת אש לאפליקציות אינטרנט (WAF) בשרת של קפיטל וואן שהתארח על AWS. התצורה השגויה אפשרה לה לשלוח בקשה שהערימה על השרת וגרמה לו לחשוף פרטי הרשאה זמניים משירות המטא-דאטה הפנימי של AWS, טכניקה שחוקרי אבטחה מכנים בעקביות server-side request forgery (SSRF). פרטי ההרשאה הללו שייכו לחשבון בשם “WAF-Role”, שהיה אמור לשמש רק את חומת האש עצמה אך קיבל הרשאות רחבות מדי: הן אפשרו לתומפסון לרשום יותר מ-700 דליי אחסון ותיקיות (buckets) של קפיטל וואן ב-S3, ולהוריד מהם מידע.
בתוך הדליים האלה ישב מידע על כ-100 מיליון לקוחות ומבקשי כרטיסי אשראי בארה”ב וכ-6 מיליון נוספים בקנדה, לפי הדיווח הרשמי של קפיטל וואן: בין היתר כ-140,000 מספרי ביטוח לאומי אמריקאיים, כ-1 מיליון מספרי ביטוח לאומי קנדיים (SIN) וכ-80,000 מספרי חשבון בנק מקושרים. תומפסון הורידה את המידע ב-22-23 במרץ 2019. לאחר מכן היא דנה בפריצה תחת הכינוי “erratic” בערוץ Slack פרטי בשם “Netcrave Communications”, והעלתה חלק מהמידע הגנוב לחשבון ה-GitHub שלה: חשבון שנשא, שלא כמו הכינוי בסלאק, את שמה האמיתי ואת קורות החיים שלה (מכל המקומות האפשריים לאחסן ראיה מפלילה, היא בחרה בפלטפורמה שכל הרעיון שלה הוא לזכור כל שינוי לנצח). משתמש GitHub אחר (לא מישהו מקבוצת ה-Slack) הבחין בפוסט ופנה לקפיטל וואן ב-17 ביולי 2019. הפנייה הובילה לבדיקה פנימית שאישרה את הפריצה ולדיווח ל-FBI. תומפסון נעצרה ב-29 ביולי 2019.
איך התיק באמת הסתיים
חבר מושבעים הרשיע את תומפסון ב-17 ביוני 2022 בסעיף פשע אחד של הונאת חוטים (wire fraud) ובשישה סעיפים של גישה בלתי מורשית למחשב מוגן וגרימת נזק (ארבעה פשעים ושני עוונות), וזיכה אותה מסעיפי הונאת אמצעי גישה וגניבת זהות מחמירה שהתביעה הגישה בנפרד. בית המשפט המחוזי גזר עליה בתחילה, באוקטובר 2022, עונש של זמן מאסר ששוויו לזמן שכבר ריצתה בלבד וחמש שנות מבחן, קל בהרבה מטווח הענישה הפדרלי המומלץ. התביעה ערערה בטענה שהעונש קל מדי, ובמרץ 2025 קיבל בית המשפט לערעורים במחוז התשיעי, ברוב של 2 מול 1, את הערעור: הוא לא ביטל את ההרשעה עצמה, אלא רק את גזר הדין, וקבע שבית המשפט המחוזי לא נימק כראוי את החריגה הגדולה מהנחיות הענישה. התיק הוחזר לגזירת עונש מחדש, ובנובמבר 2025 השופט חזר וגזר על תומפסון עונש של זמן שכבר ריצתה, הפעם בתוספת חמש שנות שחרור בפיקוח שכוללות שלוש שנות מעצר בית ו-250 שעות שירות לתועלת הציבור, לצד צו פיצויים בסך כ-40.7 מיליון דולר שנותר בעינו.
הארטיפקט: לא המידע הגנוב, הבקשה שהוציאה את פרטי ההרשאה
הפריצה לא התחילה בסיסמה גנובה או במייל דיוג. היא התחילה בבקשת HTTP אחת, שנשלחה לכלל בחומת אש שהיה אמור לחסום אותה ולא חסם. הכלל השגוי הבודד הזה הוא הארטיפקט הטכני שכל התיק סובב סביבו: לא 100 מיליון הרשומות, לא פוסט ה-Slack, אלא הפער בין מה שחומת האש הייתה אמורה לדחות לבין מה שהיא בפועל אפשרה לעבור.
ההבחנה הזו חשובה לאופן שבו תיק כזה מוכח או נסתר. כלל בחומת אש הוא קוד, ולקוד יש תצורה ספציפית וניתנת לבדיקה בנקודת זמן ספציפית. האם הכלל היה קיים כפי שנכתב, או שהיה זה ברירת מחדל שאף אחד לא התאים אישית? האם הייתה גרסה קודמת שכן חסמה את דפוס הבקשה הזה, ואם כן, מתי ולמה השתנתה? למי הייתה הרשאה לשנות אותו, והאם לוג גישה מראה מי שינה בפועל? הצבעה על גודל הפריצה לא עונה על אף אחת מהשאלות האלה. התשובה באה משליפת היסטוריית התצורה של משאב אחד.
מה חוות דעת מומחה מחשבים משחזרת כאן
זה בדיוק סוג התיק שבו חוות דעת מומחה מחשבים עושה עבודה שסיכום של הפריצה לא יכול: שחזור השרשרת הטכנית מהתצורה השגויה של חומת האש, דרך חשיפת פרטי ההרשאה, ועד לקריאות ה-API הספציפיות שרשמו והורידו את תוכן הדליים. פלטפורמות ענן רושמות כמעט הכול, וזה נשמע כמו יתרון עד שמבינים שהנפח עצמו הוא הבעיה: תקרית אמיתית מייצרת מיליוני שורות לוג, ועשר השורות שבאמת חשובות נראות זהות לשורות השגרתיות אלא אם מישהו עם השיטה הנכונה מחפש אותן.
השיטה הזו כוללת לקבוע בדיוק אילו בקשות הכלל השגוי היה אמור לחסום לפי הכוונה המתועדת שלו, לתייג בזמן מתי הוכנסה התצורה הפגיעה ועל ידי מי, ולעקוב אחרי לוגי הנפקת פרטי ההרשאה וגישת המידע כדי להראות בדיוק מה נקרא, הועתק, או רק נרשם, כי אלו דברים שונים מבחינה משפטית גם כשסיכום הדיוט מתייחס אליהם כאילו הם זהים. מי שרושם את תוכן תיקייה לא בהכרח קרא כל קובץ בה, וההבחנה הזו יכולה להיות משמעותית מאוד לאחריות ולנזק.
למה ההתרברבות של הפורצת כמעט לא רלוונטית
מפתה לקרוא את התיק הזה כסיפור על האקרית שלא הצליחה לעצור את עצמה מלהתרברב, וזו קריאה לא שגויה. (ככה בדיוק בונים כל סדרת פשע-אמת בנטפליקס: הגאון הטכני שחייב שמישהו ידע כמה הוא גאון.) אבל שווה להפריד בין שתי שאלות שונות שהנתונים בתיק יכולים לענות עליהן: מה מוכיח שמישהי ביצעה פריצה, ומה מוכיח את היקף הפריצה ואת המנגנון הטכני שלה. הודעות ה-Slack והפוסט ב-GitHub כנראה עונים על השאלה הראשונה. הן כמעט לא עוזרות לשנייה. להוכיח מה בדיוק חשף כלל שגוי בענן, ולמי, דורש את הלוגים והיסטוריית התצורה של התשתית עצמה, לא תמלול צ’אט, לא משנה כמה הוא נראה מפליל.
לחברות ישראליות שמריצות עומסי עבודה בייצור על AWS, Azure או GCP, ולעורכי הדין שמייצגים אותן אחרי תקרית, הלקח לא באמת נוגע לחומות אש באופן ספציפי. הוא נוגע לזה שתצורה שגויה בענן היא קוד עם היסטוריית גרסאות, וההיסטוריה הזו, לא הודאה פומבית, היא מה שבאמת מוכיח מה קרה.
המידע לעיל הוא כללי בלבד ואינו מהווה ייעוץ משפטי. עובדות התיק אומתו מול הודעות ה-DOJ, הדיווח הרשמי של קפיטל וואן, פסיקת בית המשפט לערעורים במחוז התשיעי וסיקור מקצועי מהתקופה; רשימת המקורות המלאה נשמרת ביומן האימות הנלווה למאמר.