تاثیر
افشای اسرار مانند کلیدهای API، نشانهها یا اعتبارنامهها میتواند منجر به دسترسی غیرمجاز به دادههای حساس، جعل هویت سرویس و زیان مالی قابلتوجه به دلیل سوء استفاده از منابع [S1] شود. هنگامی که یک راز به یک مخزن عمومی متعهد می شود یا در یک برنامه frontend قرار می گیرد، باید آن را به خطر افتاده [S1] در نظر گرفت.
علت اصلی
علت اصلی، گنجاندن اطلاعات کاربری حساس به طور مستقیم در کد منبع یا فایلهای پیکربندی است که متعاقباً به کنترل نسخه متعهد شدهاند یا به مشتری [S1] ارائه میشوند. توسعهدهندگان اغلب برای راحتی در طول توسعه، کلیدهای کد سختی دارند یا بهطور تصادفی فایلهای .env را در تعهدات خود [S1] وارد میکنند.
رفع بتنی
- چرخش اسرار به خطر افتاده: اگر یک راز فاش شد، باید فوراً لغو و جایگزین شود. صرفاً حذف رمز از نسخه فعلی کد کافی نیست زیرا در تاریخچه کنترل نسخه [S1][S2] باقی می ماند.
- از متغیرهای محیطی استفاده کنید: اسرار را در متغیرهای محیط ذخیره کنید نه اینکه آنها را کدگذاری کنید. مطمئن شوید که فایلهای
.envبه.gitignoreاضافه شدهاند تا از ارتکاب تصادفی [S1] جلوگیری شود. - مدیریت مخفی را پیاده سازی کنید: از ابزارهای اختصاصی مدیریت مخفی یا سرویس های خزانه برای تزریق اعتبار به محیط برنامه در زمان اجرا [S1] استفاده کنید.
- Purge Repository History: اگر یک راز به Git متعهد شده بود، از ابزارهایی مانند
git-filter-repoیا BFG Repo-Cleaner برای حذف دائمی داده های حساس از تمام شاخه ها و برچسب ها در تاریخچه مخزن [S2] استفاده کنید.
چگونه FixVibe آن را آزمایش می کند
FixVibe اکنون این مورد را در اسکن های زنده گنجانده است. Passive secrets.js-bundle-sweep بستههای جاوا اسکریپت با منشأ یکسان را دانلود میکند و کلید، نشانه و الگوهای اعتبار API شناخته شده را با گیتهای آنتروپی و مکاننما مطابقت میدهد. بررسیهای زنده مرتبط، فضای ذخیرهسازی مرورگر، نقشههای منبع، بستههای مشتری اعتبار و BaaS و الگوهای منبع مخزن GitHub را بررسی میکنند. بازنویسی تاریخچه Git همچنان یک مرحله اصلاحی است. پوشش زنده FixVibe بر اسرار موجود در دارایی های ارسال شده، فضای ذخیره مرورگر و محتویات مخزن فعلی تمرکز دارد.
