חזרה

קובץ ההגדרות של Claude Code חושף סודות ב-1,122 עותקים ציבוריים ב-GitHub
SiTech AI Team3 דק׳ קריאה

קובץ ההגדרות של Claude Code חושף סודות ב-1,122 עותקים ציבוריים ב-GitHub

Apiiro מצאה 1,122 עותקים ציבוריים ב-GitHub של .claude/settings.local.json של Claude Code שמכילים לפחות סוד אחד. הקובץ יכול לשמור פקודות שאושרו מילה במילה, כולל סיסמאות ומפתחות API.

Apiiro דיווחה כי חיפוש שערכה ב-GitHub הציבורי מצא 1,122 עותקים של .claude/settings.local.json של Claude Code שמכילים לפחות סוד אחד. הקובץ יכול לשמור סיסמאות ומפתחות API כאשר מפתחים מאשרים פקודות עם האפשרות Yes, and don't ask again. חברה אחת ש-Apiiro עדכנה אישרה שמפתחה היה פעיל; החוקרים לא בדקו אם כל הסודות עדיין פועלים.

כיצד נשמרים סודות

לפי תיעוד ההרשאות שלו, Claude Code שואל כברירת מחדל לפני הרצת רוב פקודות המעטפת. כאשר משתמש מאשר פקודה ובוחר לא להישאל שוב, Claude Code שומר כלל הרשאה ב-.claude/settings.local.json בתוך הפרויקט. פקודות תואמות מאוחר יותר רצות ללא בקשה. הכלל יכול לכסות תבנית כגון npm test * או פקודה מדויקת אחת. אם הפקודה המדויקת מכילה סיסמה או אסימון, גם הסוד נשמר, בטקסט גלוי. Apiiro שחזרה את ההתנהגות עם Opus 5.5 ו-Fable 5.1.

Claude Code מנסה להרחיק את הקובץ מ-git. תיעוד ההגדרות שלו קובע כי בפעם הראשונה שהוא כותב את הקובץ במאגר git, הוא מוסיף אותו להחרגות git הגלובליות של המשתמש. הגנה זו נשארת בהגדרות git של משתמש אחד במחשב אחד ואינה מועילה לקובץ שכבר בוצע בו commit, אמרה Apiiro. Claude Code מעולם לא מוסיף את הקובץ ל-.gitignore של הפרויקט עצמו, ולכן ההגנה לא עוברת עם הפרויקט.

מה Apiiro מצאה

חיפוש Apiiro מצא 104,185 עותקים של הקובץ ב-103,617 מאגרי GitHub ציבוריים. כ-1.1%, או 1,122 עותקים, מכילים לפחות סוד אחד, וביחד הם מחזיקים 1,379 סודות שונים. יותר משליש פותחים מסד נתונים ישירות, כולל 379 סיסמאות למסדי נתונים. אחרים כוללים 43 התחברויות SSH לשרתים ציבוריים, 42 אסימונים ל-GitHub, ל-GitLab ול-npm, ו-23 מפתחות AWS. בין הבעלים יש 63 ארגונים, ברובם חברות תוכנה בכל הגדלים.

נכון ליום שני, כל קובץ עם סוד עדיין היה בענף ברירת המחדל של מאגרו, ובמחצית מהמאגרים הללו הוא שהה שם לפחות 217 ימים. גרסאות ישנות מכילות 734 סודות נוספים ב-509 מאגרים, שאינם נמצאים באף עותק נוכחי. סודות נמצאים גם ב-298 מתוך 76,011 עותקים של קובץ .claude/settings.json המשותף. ואם כוללים אותם, גרסאות ישנות ויומני שיחות שמורים של סוכן, סך הסודות הוא 2,539 ב-1,994 מאגרים.

מה לעשות

Apiiro ממליצה לחפש בארגונים ב-GitHub אחר .claude/settings.local.json ו-.claude/settings.json ולבדוק את היסטוריית git של כל מאגר. החוקרים ממליצים לסובב כל סיסמה, אסימון ומפתח שהקבצים אי פעם החזיקו, לפני ניקוי. מפתחים צריכים להפסיק לעקוב אחר הקובץ המקומי באמצעות git rm --cached .claude/settings.local.json ולהוסיפו ל-.gitignore של המאגר עצמו. יש למחוק כל כלל שמכיל סוד ולהפנות לסודות כמשתנים ממנהל סודות, כגון $DB_URL. מפתחים צריכים לאשר תבניות כגון Bash(npm run:*) במקום פקודות בודדות. לצוותי אבטחה, Apiiro ממליצה להתייחס לתיקיות סוכן ולקבצי זיכרון של סוכן כאל כאלה שמכילים סודות ולהוסיף אותם לסריקת סודות ב-pre-commit וב-CI.

סורקים נפוצים לסודות מפספסים רבים מהקבצים הללו. החוקרים הפעילו gitleaks ו-TruffleHog על כל עותק ללא אימות. מתוך 1,122 הקבצים עם סוד, gitleaks סימן 564 ו-TruffleHog סימן 643, ושניהם לא סימנו 215. רוב הפספוסים הם סיסמאות שהוקלדו בתוך פקודות.

מקורות: The Hacker News

SiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.