GitHub در ۲ سپتامبر قابلیت حذف محتوا از دسترس Copilot را برای برنامه GitHub Copilot و نسخه خط فرمان آن به‌صورت عمومی در دسترس قرار داد. در طرح‌های تجاری و سازمانی Copilot، این دو محیط اکنون سیاست‌هایی را که مدیران در سطح شرکت، سازمان یا مخزن تعریف کرده‌اند رعایت می‌کنند و فایل‌های مستثناشده را به‌عنوان زمینه در اختیار Copilot قرار نمی‌دهند.

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

سیاست حذف محتوا حالا به برنامه Copilot و خط فرمان رسیده است

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

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

این قابلیت برای مشتریان طرح‌های تجاری و سازمانی Copilot در دسترس است. مدیر مخزن، مالک سازمان و مدیر سطح شرکت هر کدام می‌توانند در محدوده اختیارات خود موارد مستثنا را تعریف کنند.

میزان اعمال سیاست در همه محیط‌ها یکسان نیست

عبارت «حذف محتوا» ممکن است گستره‌ای بیشتر از آنچه واقعاً پشتیبانی می‌شود القا کند. جدول پشتیبانی GitHub نشان می‌دهد که این سیاست بسته به محیط استفاده تفاوت دارد.

در وب‌سایت GitHub و نسخه موبایل آن، این قابلیت همچنان در مرحله پیش‌نمایش عمومی است. برنامه GitHub Copilot و نسخه خط فرمان آن اکنون به وضعیت عمومی رسیده‌اند. در مقابل، GitHub صریحاً می‌گوید قابلیت حذف محتوا در حال حاضر در حالت ویرایش و حالت عاملیِ بخش گفت‌وگوی Copilot در ویژوال استودیو کد و ویرایشگرهای دیگر پشتیبانی نمی‌شود.

این تفاوت برای سازمان‌هایی مهم است که از تکمیل ساده کد به سمت عامل‌هایی می‌روند که چند فایل را تغییر می‌دهند، فرمان اجرا می‌کنند و از ابزارها کمک می‌گیرند. کار کردن یک سیاست در یک محیط Copilot دلیلی نیست که همان سیاست در محیط دیگر نیز دقیقاً همان رفتار را داشته باشد.

ممکن است اطلاعات مشتق‌شده از فایل مستثنا همچنان در دسترس باشد

مستندات GitHub یک محدودیت ظریف‌تر را هم توضیح می‌دهد. ممکن است Copilot از اطلاعات معنایی مرتبط با یک فایل مستثنا استفاده کند، اگر محیط توسعه آن اطلاعات را به‌صورت غیرمستقیم در اختیارش قرار دهد. نمونه‌های ذکرشده شامل اطلاعات نوع، توضیح نمادها هنگام نگه داشتن نشانگر روی آن‌ها و ویژگی‌های کلی پروژه مانند تنظیمات ساخت است.

این وضعیت الزاماً به این معنا نیست که Copilot خود فایل مستثنا را مستقیم می‌خواند. مسئله این است که محیط توسعه می‌تواند از محتوای مخزن اطلاعات دیگری تولید کند و آن اطلاعات از مسیر متفاوتی وارد زمینه شود. برای تحلیل امنیتی، بنابراین فقط دسترسی مستقیم به فایل کافی نیست و باید مسیرهای تولید فراداده نیز دیده شوند.

GitHub همچنین اعلام کرده که در حال حاضر این سیاست بر پیوندهای نمادین و مخازنی که روی فایل‌سیستم راه دور قرار دارند اعمال نمی‌شود. این استثنا برای محیط‌هایی که از فضای کاری نصب‌شده از راه دور، سامانه فایل شبکه‌ای یا ساختارهای متکی بر پیوند نمادین استفاده می‌کنند اهمیت عملی دارد.

برای حاکمیت، یک جدول کنترل لازم است نه یک گزینه روشن یا خاموش

پیام اصلی برای تیم‌های حاکمیت این است که قابلیت حذف محتوا باید به‌عنوان کنترلی وابسته به محیط استفاده مدل شود، نه تضمینی مطلق که محتوای حساس هرگز بر Copilot اثر نمی‌گذارد.

یک جدول کنترل سازمانی مناسب دست‌کم باید چهار بُعد را ثبت کند: برنامه یا رابط Copilot، حالت تعامل، محل مخزن یا فایل‌سیستم و نوع اطلاعاتی که ممکن است از مرز عبور کند. یک مسیر مستثناشده می‌تواند هنگام جابه‌جایی از بررسی کد به خط فرمان، از خط فرمان به حالت عاملی در محیط توسعه یا از مخزن محلی به فایل‌سیستم راه دور، سطح حفاظت متفاوتی داشته باشد.

این موضوع معیار تأیید بهره‌برداری را هم تغییر می‌دهد. عبارت «قابلیت حذف محتوا فعال است» برای یک مخزن حساس کافی نیست. معیار دقیق‌تر این است که محیط‌های Copilot مجاز برای آن مخزن عملاً در برابر سیاست سازمان آزموده شده باشند و حالت‌های پشتیبانی‌نشده و استثناهای فایل‌سیستم نیز ثبت شده باشند.

پیش از استفاده روی مخازن حساس چه چیزهایی باید آزموده شود

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

لازم است برنامه‌ها و حالت‌های مجاز مشخص شوند، فایل‌های مستثناشده در برنامه Copilot و نسخه خط فرمان آن آزمایش شوند، استفاده از حالت ویرایش و حالت عاملی در ویرایشگرها شناسایی شود، وضعیت فایل‌سیستم راه دور و پیوندهای نمادین بررسی شود و سازمان درباره پذیرش اطلاعات معنایی غیرمستقیم تولیدشده توسط محیط توسعه تصمیم بگیرد. بررسی کد نیز بهتر است جداگانه آزموده شود، چون GitHub آن را به‌عنوان سطح پشتیبانی مستقل توضیح داده است.

این انتشار دامنه کنترل سازمانی GitHub را به‌طور معناداری گسترش می‌دهد. ارزش آن در این نیست که مسئله حفاظت از کد حساس را یک‌بار برای همیشه حل کرده باشد، بلکه یک سطح دیگر را قابل کنترل می‌کند. محدودیت‌های باقی‌مانده یادآور یک اصل مهم‌تر هستند: کنترل حاکمیت عامل باید دامنه دقیق داشته باشد و همان دامنه در محیط واقعی استفاده آزموده شود.

منابع
- گزارش تغییرات GitHub
- مستندات GitHub