مدل جدید GitHub تشخیص اسرار کد را دقیق‌تر و سریع‌تر کرد

مدل جدید GitHub تشخیص اسرار کد را دقیق‌تر و سریع‌تر کرد

آنچه در این مقاله مطالعه می‌کنید:

۲۲ مهر ۱۴۰۵

۲۲ مهر ۱۴۰۵

به گزارش GitHub Blog، GitHub یک دسته‌بند زمینه‌محور برای شناسایی اسرار در کد توسعه داده است که در مقایسه با خط لوله قبلی مبتنی بر مدل زبانی بزرگ، پذیرش هشدارها از سوی کاربران را ۱۱٫۵ درصد افزایش می‌دهد. این مدل همچنین میانه زمان اجرای اسکن پس از Push را ۸۶ درصد و هزینه سرویس‌دهی را بیش از ۹۸ درصد کاهش داده است.

تشخیص اطلاعات حساسی مانند رمزها، توکن‌ها و رشته‌های اتصال همیشه با یک چالش همراه است: بعضی رشته‌ها از نظر ظاهری شبیه اعتبارنامه واقعی‌اند، اما در عمل فقط مقدار آزمایشی، شناسه ساخت، checksum یا نمونه‌ای در مستندات هستند. تولید هشدار برای تمام این موارد، نویز و هشدارهای مثبت کاذب را افزایش می‌دهد؛ در مقابل، سخت‌گیری بیش از حد نیز ممکن است باعث نادیده‌ماندن یک راز واقعی شود.

ترکیب Regex و ModernBERT در خط لوله جدید

راهکار GitHub از یک فرایند دومرحله‌ای استفاده می‌کند. ابتدا فیلترهای Regex با دامنه گسترده، رشته‌های احتمالی مانند کلیدها و توکن‌ها را پیدا می‌کنند. سپس یک مدل کوچک و تنظیم‌شده ModernBERT هر مورد را همراه با مسیر فایل، نام متغیر، نوع راز و بخش محدودی از کد یا متن اطراف بررسی می‌کند تا احتمال واقعی‌بودن آن را بسنجد.

موارد دارای اطمینان بالا به هشدار تبدیل می‌شوند و نمونه‌های کم‌خطر مانند placeholderها، داده‌های آزمایشی و checksumها پیش از رسیدن به توسعه‌دهنده کنار گذاشته می‌شوند. GitHub می‌گوید کوچک و تخصصی‌بودن این مدل، اجرای سریع و مقیاس‌پذیر آن را ممکن کرده و زمینه را برای استفاده از تشخیص اسرار عمومی در Push Protection فراهم کرده است؛ یعنی بررسی می‌تواند پیش از پذیرفته‌شدن Push انجام شود، نه فقط پس از ثبت کد.

نتایج ارزیابی مدل GitHub

در ارزیابی آفلاین روی ترافیک عمومی یکسان، خط لوله تازه در اسکن پس از Push نسبت به سامانه قبلی ۱۳ درصد دقت بالاتر و ۱۹ درصد فراخوانی بیشتر ثبت کرد. آزمایش A/B با مشتریان نیز افزایش ۱۱٫۵ درصدی پذیرش وزن‌دهی‌شده بر اساس مالک مخزن را نشان داد؛ روشی که اثر کاربرانی را که شمار زیادی هشدار را یکجا می‌بندند، کاهش می‌دهد.

این تغییر برای تیم‌های توسعه نرم‌افزار و امنیت اهمیت دارد، زیرا بازخورد سریع‌تر و هشدارهای نامرتبط کمتر می‌تواند رسیدگی به افشای اعتبارنامه‌ها را در Commitها، Pull Requestها و جریان روزمره توسعه ساده‌تر کند. GitHub در ادامه قصد دارد با بازخورد محیط واقعی، خطاهای مثبت و منفی را به داده آموزشی بهتر تبدیل کند و معماری‌هایی را بررسی کند که تشخیص و استخراج راز را در یک مرحله انجام می‌دهند.

در مجموع، نتیجه این پروژه نشان می‌دهد برای یک مسئله محدود و قابل‌اندازه‌گیری، ترکیب قواعد قطعی با یک مدل فشرده و تخصصی می‌تواند از اتکای مستقیم به مدل‌های زبانی بزرگ، دقیق‌تر، سریع‌تر و کم‌هزینه‌تر باشد.