השפעה
דליפת סודות כגון מפתחות, אסימונים או אישורים של API עלולה להוביל לגישה בלתי מורשית לנתונים רגישים, התחזות לשירות ואובדן כספי משמעותי עקב שימוש לרעה במשאבים [S1]. ברגע שסוד מחויב למאגר ציבורי או מצורף ליישום חזיתי, הוא צריך להיחשב כפגוע [S1].
סיבת שורש
הסיבה העיקרית היא הכללת אישורים רגישים ישירות בקוד המקור או בקבצי תצורה המחויבים לאחר מכן לבקרת גרסאות או מוגשים ללקוח [S1]. מפתחים קודמים לעתים קרובות מפתחות קשיחים לצורך נוחות במהלך הפיתוח או כוללים בטעות קבצי .env ב-commits שלהם [S1].
תיקוני בטון
- סובב סודות שנפגעו: אם סוד דלף, יש לבטלו ולהחליפו מיד. פשוט הסרת הסוד מהגרסה הנוכחית של הקוד אינה מספיקה מכיוון שהוא נשאר בהיסטוריית בקרת הגרסה [S1][S2].
- השתמש במשתני סביבה: אחסן סודות במשתני סביבה במקום לקודד אותם. ודא שקובצי
.envמתווספים ל-.gitignoreכדי למנוע התחייבויות מקריות [S1]. - הטמיע ניהול סודי: השתמש בכלי ניהול סודות ייעודיים או בשירותי כספת כדי להחדיר אישורים לסביבת היישום בזמן הריצה [S1].
- טהר היסטוריית מאגר: אם סוד היה מחויב ל-Git, השתמש בכלים כמו
git-filter-repoאו BFG Repo-Cleaner כדי להסיר לצמיתות את הנתונים הרגישים מכל הסניפים והתגים בהיסטוריית המאגר [S2].
כיצד FixVibe בודק את זה
FixVibe כולל כעת את זה בסריקות חיות. פסיבי secrets.js-bundle-sweep מוריד חבילות JavaScript מאותו מקור ומתאים לתבניות מפתח, אסימון ואישורים ידועים של API עם שערים של אנטרופיה ו-placeholder. בדיקות חיות קשורות בודקות אחסון דפדפן, מפות מקור, אימות וחבילות לקוח BaaS ותבניות מקור של GitHub. שכתוב היסטוריית Git נותר שלב תיקון; הסיקור החי של FixVibe מתמקד בסודות הקיימים בנכסים שנשלחו, אחסון דפדפן ותכני ריפו נוכחיים.
