קוד משלוח מתוך צי עובד, בלי לשלוח את הסודות שלו
משלוח
הערכות שלנו מגיעות מקוד שמריץ את הצי שלנו, שבו קבצי תצורה מכילים מפתחות API, טוקנים, סיסמאות לתיבות דואר ומזהי חשבונות. ערכה שמדליפה אחד מהם גרועה מערכה בכלל, ולכן שום דבר לא נדחס עד ששלושה סורקים בשלושה מחשבים לא מוצאים כלום.
מה נכנס
המארז מעתיק רק את הקבצים שמוגדרים במניפסט של הערכה, אף פעם לא תיקייה שלמה, ומשאיר בחוץ מטמונים, גיבויים והיסטוריית ניהול גרסאות. הדוגמאות והבדיקות משתמשות במוצרים ובמספרים בדויים, אף פעם לא שלנו.
הסריקות
- במחשב הבנייה: הקבצים המוכנים נסרקים לפי הערכים בפועל של סודות הצי (132 בבנייה האחרונה) ולפי טביעות האצבע SHA-256 של 16,259 מחרוזות סודיות מתחנת העבודה שלנו. רק טביעות האצבע נעות; הסודות של תחנת העבודה אף פעם לא עוזבים אותה.
- בשני מחשבים נוספים: אותם קבצים נשלחים לכל אחד מהם ונסרקים שם מול הסודות שהמחשב מחזיק (498 ו-129 ערכים), ואז נמחקים.
- בכל מקום: תבניות לפורמטי מפתחות, כתובות פרטיות ונתונים אישיים.
- לפני שזה נספר: כל סורק מריץ קודם כל צפרדעים מושתלות וחייב למצוא את כולן, 23 בכל הרצה, אחרת הבנייה נעצרת.
ממצא אחד עוצר את הבנייה. ברגע שגרסה נמכרה היא אף פעם לא נבנית מחדש: תיקון נשלח כגרסה חדשה, כך שהקובץ שהקונה מוריד הוא הקובץ שנסרק.
האזעות השווא שלמדנו מהן הכי הרבה
- הערה שהתחילה ב-"Each pass ends with" סומנה כסיסמת אפליקציה של Gmail. סיסמאות אלו הן ארבע קבוצות של ארבע אותיות, וכך גם המשפט הזה. שינינו את ניסוח ההערה.
- טווח הכתובות המשותף 100.64.0.0/10, שבו משתמשים NAT ברמת ספקית ו-Tailscale, סומן ככתובת פרטית.
- שם יחידת systemd כמו
[email protected]נראה כמו כתובת דוא"ל, וזהה חנות תופס מקום כמו9NXXXXXXXXXXנראה כמו מוצר אמיתי.
ההערה ששינינו; שלושת האחרים אושרו עבור אותה ערכה ואותה תבנית, אף פעם לא באופן גלובלי, כך שהערכה הבאה נסרקת בקפדנות כמו הראשונה. אזעקת שווא עולה דקה, ומפתח שפספסו יעלה הרבה יותר.
כל ערכת אוטומציה במכירה עברה את זה, עם אפס ממצאים בכל שחרור.