استفاده از هوش مصنوعی بدون لو رفتن اسرار
با خطا مواجه میشوید. رد خطا (stack trace) را کپی میکنید. از هوش مصنوعی میخواهید آن را اصلاح کند. فراموش میکنید که DATABASE_URL و رمز عبور شما در آن متن وجود دارد. هوش مصنوعی در چهار ثانیه پاسخ میدهد. حالا راز شما در یک گزارش درخواست (request log) یا یک مجموعه آموزشی (training set) قرار گرفته است. دیگر نمیتوانید آن را پاک کنید.
چسباندن اطلاعات حساس در یک هوش مصنوعی، مانند چسباندن آنها در یک سایت عمومی است. دیگر نمیتوانید آنها را پس بگیرید.
من هر روز برای ارسال کد از هوش مصنوعی استفاده میکنم. از آن دوری نمیکنم، بلکه با یک مدل تهدید (threat model) از آن استفاده میکنم.
اکثر مردم فکر میکنند یک پرامپت (prompt) یک چت خصوصی است. اما اینطور نیست. این یک درخواست خروجی (outbound request) است.
- سطوح رایگان اغلب از دادههای شما برای آموزش مدلها استفاده میکنند.
- سطوح پولی معمولاً قول میدهند که روی دادههای شما آموزش ندهند.
- حتی سطوح پولی نیز برای شناسایی سوءاستفاده و بازبینی انسانی، گزارشها (logs) را ذخیره میکنند.
نشت دادهها به سه روش اتفاق میافتد:
- آنچه میچسبانید: قطعهکدها، تنظیمات (configs) یا رد خطاها (traces).
- آنچه ابزارها بهطور خودکار پیوست میکنند: فایلهای باز، بافت مخزن (repo context) یا خروجی ترمینال.
- آنچه مدل برمیگرداند: تکرار اطلاعات حساس در توضیحات PR یا گزارشها.
ارائهدهنده هوش مصنوعی یک شخص ثالث مورد اعتماد است. شما نمیتوانید خط لولههای داخلی (internal pipelines) آنها را بازرسی کنید. با کادر پرامپت مانند یک فراخوانی شبکه غیرقابل اعتماد برخورد کنید.
ارسال موارد زیر را متوقف کنید:
- کلیدهای API یا توکنهای فعال.
- محتویات فایلهای
.env. - کلیدهای خصوصی یا گواهینامهها (certificates).
- نام، ایمیل یا دادههای پرداخت واقعی مشتریان.
- منطق اختصاصی که آن را متنباز (open-source) نمیکنید.
در عوض از جایگزینها (placeholders) استفاده کنید. از [API_KEY] یا [DB_PASSWORD] استفاده کنید. هوش مصنوعی با استفاده از ماسکها (masks) به همان خوبی کار میکند.
این سه عادت را ایجاد کنید:
- از یک فایل ignore برای هوش مصنوعی استفاده کنید. پوشههای
.envو پوشههای حاوی اسرار را از بافت (context) ابزار دور نگه دارید. - قبل از ارسال، اسکن کنید. قبل از چسباندن متن، یک ابزار تشخیص اسرار (secret detector) را روی آن اجرا کنید.
- اسرار را رمزنگاری شده نگه دارید. اگر اسرار فقط در زمان اجرا (runtime) در حافظه وجود داشته باشند، نمیتوانید آنها را کپی کنید.
خلاصهای از گزینههای شما:
- رایگان/مصرفکننده: برای اسناد عمومی یا قطعهکدهای موقتی استفاده کنید.
- پولی حرفهای/تیمی: برای بیشتر کارهای مهندسی استفاده کنید. این سطح دارای محافظتهای قراردادی است.
- محلی/میزبانیشده (Self-hosted): برای دادههای تحت نظارت که باید روی دستگاه شما باقی بمانند، استفاده کنید.
تضمین عدم آموزش یک قرارداد است، نه یک سپر فنی. این کار ریسک را کاهش میدهد اما آن را از بین نمیبرد.
قبل از اینکه هوش مصنوعی با کد شما درگیر شود، این مراحل را دنبال کنید:
- یک فایل ignore برای ابزارهای هوش مصنوعی خود اضافه کنید.
- هر آنچه میچسبانید را اسکن کنید.
- تمام اعتبارنامهها (credentials) را با جایگزینها ماسک کنید.
- برای کارهای اختصاصی از سطوح پولی استفاده کنید.
- از یک KMS استفاده کنید تا اسرار از حالت متن ساده (plaintext) خارج شوند.
- خروجی هوش مصنوعی را قبل از اینکه وارد گزارشها یا کامیتها (commits) شود، بازبینی کنید.
پاسخ چهار ثانیهای همچنان سریع است، فقط نباید به قیمت امنیت شما تمام شود.
Optional learning community: https://t.me/GyaanSetuAi
