آنتروپیک ۹۴ مورد غیرفعال شدن بی‌سروصدای کنترل‌های امنیتی در پروژه‌های متن‌باز را شناسایی کرد

www.helpnetsecurity.com

انتشار در منبع: انتشار در سایت ما:

مقاله اصلی · English

نرم‌افزارها ممکن است قابلیت‌های پیچیده‌ای را در اختیار کاربران احراز هویت‌نشده قرار دهند، حتی اگر این قابلیت‌ها غیرفعال باشند یا نیازی به استفاده از آن‌ها وجود نداشته باشد. تیم قرمز پژوهش‌های پیشرفته آنتروپیک (Frontier Red Team) با استفاده از کلود، ۲۵ پروژه متن‌باز را بررسی کرد و ۴۹۳ مشکل را شناسایی کرد. این مشکلات به در معرض دسترس بودن قابلیت‌های غیرضروری، تداخل تنظیمات و اجرای کد پیش از انجام بررسی‌های امنیتی مربوط بودند.

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

قابلیت‌های غیرضروری در دسترس و تنظیمات امنیتی متناقض

این پژوهش بر سه نوع وضعیت تمرکز داشت: نخست، کدهایی که با تنظیمات پیش‌فرض قابل دسترسی‌اند، درحالی‌که هیچ‌یک از قابلیت‌های موردنظر در حالت پیش‌فرض به آن‌ها نیاز ندارد؛ دوم، ترکیب‌هایی از تنظیمات که سطح حفاظت را کاهش می‌دهند؛ و سوم، اجرای کدهای حساس از نظر امنیتی یا پیچیده پیش از انجام بررسی امنیتی مناسب، تعامل با کاربر یا رسیدن پروتکل به وضعیت موردنیاز.

کاهش سطح حمله در پژوهش آنتروپیک
توزیع مشکلات شناسایی‌شده در هر دسته بر اساس روش بررسی. (منبع: آنتروپیک)

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

تداخل میان تنظیمات، برخی از مهم‌ترین یافته‌های پژوهش را رقم زد. کلود در این پروژه‌ها ۱۶۲ ترکیب از تنظیمات حساس از نظر امنیتی را شناسایی کرد که نرم‌افزارها بدون نمایش خطا یا هشدار و بدون ارائه مستنداتی درباره نحوه عملکرد هم‌زمان آن‌ها می‌پذیرفتند. در ۹۴ مورد، این تنظیمات به‌طور بی‌سروصدا یک کنترل امنیتی را غیرفعال می‌کردند.

در چهار پروژه مستقل از یکدیگر، قواعد کنترل دسترسی مبتنی بر نام میزبان به تنظیم جداگانه‌ای برای جست‌وجوی معکوس DNS وابسته بودند. وقتی این جست‌وجوها غیرفعال می‌شدند، سرور به‌جای نام میزبان، نشانی IP کاربر را با قاعده تعریف‌شده مقایسه می‌کرد. در نتیجه، قواعد مسدودسازی مبتنی بر نام میزبان با نشانی موردنظر تطبیق پیدا نمی‌کردند و اتصال‌هایی برقرار می‌شدند که مدیران قصد داشتند آن‌ها را مسدود کنند.

در نمونه‌ای دیگر، ترکیب دو تنظیم باعث می‌شد سروری که برای الزام گواهی‌نامه‌های سمت کاربر پیکربندی شده بود، اتصال‌های هر کاربری را بپذیرد. مدیران هیچ هشداری دریافت نمی‌کردند که الزام ارائه گواهی‌نامه کنار گذاشته شده است. به گفته آنتروپیک، این گزینه‌های متناقض به مدت ۲۱ سال در نرم‌افزار وجود داشتند.

کریس رولف از آنتروپیک نوشت: «این روش‌ها آسیب‌پذیری‌های ناشناخته موجود در کد را از بین نمی‌برند، اما دسترسی به آن‌ها را دشوارتر می‌کنند.»

کاهش سطح حمله OpenSSH

کلود در OpenSSH، نرم‌افزاری که دسترسی راه دور امن را فراهم می‌کند، حدود ۴۵۰۰ خط کد آزمایشی رمزنگاری را شناسایی کرد که کلاینت‌های احراز هویت‌نشده می‌توانستند به آن‌ها دسترسی پیدا کنند؛ حتی زمانی که مدیران صراحتاً آن الگوریتم را از فهرست الگوریتم‌های مجاز خارج کرده بودند.

این کد الگوریتم امضای پساکوانتومی ML-DSA-44 را پیاده‌سازی می‌کرد. OpenSSH پیش از بررسی مجاز بودن نوع کلید، داده‌های ارائه‌شده برای آن را پردازش می‌کرد.

آنتروپیک این مشکل را به نگه‌دارندگان OpenSSH گزارش داد و وصله‌هایی نیز ارائه کرد. در نسخه ۱۰.۵ این نرم‌افزار، بررسی مجاز بودن کلید پیش از تجزیه آن انجام می‌شد؛ اما کلود پس از آن دو نقص دیگر را شناسایی کرد: کلاینت می‌توانست نوع کلید را به‌اشتباه اعلام کند و پردازش گواهی‌نامه همچنان می‌توانست پیش از بررسی تنظیمات مربوط، به کد تأیید امضا دسترسی پیدا کند.

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

این تغییرات در نسخه ۱۰.۶ OpenSSH منتشر شدند و در یک ساخت با تنظیمات پیش‌فرض، حجم کد قابل دسترسی پیش از احراز هویت را حدود یک‌پنجم کاهش دادند. این بهبود بدون نیاز به یافتن آسیب‌پذیری در آن کدها حاصل شد و صرفاً دسترسی غیرضروری به آن‌ها را محدود کرد.

نحوه به‌کارگیری این روش در آنتروپیک

آنتروپیک این روش‌ها را در قالب یک مهارت قابل استفاده مجدد برای کلود ترکیب کرده است و در حال کار روی ادغام آن با OSS Scanner است؛ سرویسی رایگان و اختیاری برای اسکن امنیتی پروژه‌های متن‌باز.

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

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

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

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