انتشار نسخه 2.27.0 ابزار CodeQL با پشتیبانی بومی از لینوکس ARM64 و قابلیت‌های جدید امنیتی

انتشار نسخه 2.27.0 ابزار CodeQL با پشتیبانی بومی از لینوکس ARM64 و قابلیت‌های جدید امنیتی

گیت‌هاب نسخه جدید موتور تحلیل ایستای خود، CodeQL 2.27.0، را با پشتیبانی بومی از معماری لینوکس ARM64 منتشر کرد. این به‌روزرسانی به توسعه‌دهندگان اجازه می‌دهد تا ابزار CodeQL CLI را به‌طور مستقیم روی سیستم‌های لینوکسی مبتنی بر معماری ARM64 اجرا کنند. علاوه بر این، نسخه جدید شامل کوئری‌های امنیتی جدید برای زبان Rust، گسترش پشتیبانی از فریم‌ورک‌های جاوا، کاتلین و C# و همچنین بهبود دقت تحلیل در چندین زبان برنامه‌نویسی است.

پشتیبانی از معماری لینوکس ARM64 و تنظیمات پیش‌فرض جدید

با اضافه شدن پشتیبانی بومی از لینوکس ARM64، کاربران اکنون می‌توانند بسته CodeQL CLI مخصوص این پلتفرم را دریافت و اجرا کنند. همچنین، در بخش تنظیمات پیش‌فرض اسکن کد گیت‌هاب (GitHub code scanning)، امکان استفاده از پیکربندی‌های رجیستری خصوصی سازمان‌ها برای احراز هویت در رجیستری‌های کانتینر یا API گیت‌هاب فراهم شده است. این قابلیت به کاربران اجازه می‌دهد تا از کوئری‌ها و بسته‌های سفارشی موجود در منابع خصوصی گیت و داکر استفاده کنند.

بهبود تحلیل در زبان‌های C#، جاوا و کاتلین

در این نسخه، شناسایی کنترلرها و اکشن‌های ASP.NET Core MVC در زبان C# بهبود یافته تا رفتار زمان اجرای برنامه دقیق‌تر شبیه‌سازی شود. همچنین پشتیبانی از ردیابی آلودگی (taint tracking) برای اتصال پارامترهای اکشن OData اضافه شده است. در حالت ساخت بدون نیاز به کامپایل (build-mode: none)، ابزار CodeQL اکنون تلاش می‌کند پروژه‌ها را با استفاده از فیدهای NuGet در دسترس بازیابی کند و فیدهای غیرقابل دسترس را گزارش دهد.

برای زبان‌های جاوا و کاتلین نیز مدل‌سازی فریم‌ورک Micronaut شامل کنترلرهای HTTP، نقاط پایانی WebSocket، تزریق پیکربندی، دسترسی به داده‌ها و کلاینت‌های HTTP اضافه شده است.

تغییرات کوئری‌ها در Rust و C/C++

در زبان Rust، کوئری جدیدی برای شناسایی آسیب‌پذیری‌های تزریق دستور در خط فرمان (command-line injection) اضافه شده است. همچنین کوئری مربوط به مقادیر رمزنگاری‌شده هاردکد (hard-coded cryptographic values) برای کاهش نتایج تکراری به‌روزرسانی شده و متغیرهای استفاده‌نشده در توابعی که حاوی ماکروهای استاندارد todo!() یا unimplemented!() هستند، دیگر گزارش نمی‌شوند.

در زبان‌های C و C++، توابع اجرای کوئری و عبارات آماده PostgreSQL libpq (مانند PQexec و PQprepare) به عنوان سینک‌های تزریق SQL تعریف شده‌اند تا شناسایی این نوع آسیب‌پذیری‌ها دقیق‌تر انجام شود.

تغییرات آتی و توقف پشتیبانی

گیت‌هاب اعلام کرده است که پشتیبانی از نسخه‌های ۹ و ۱۰ جاوا منسوخ (Deprecated) شده و در ژانویه ۲۰۲۷ به‌طور کامل حذف خواهد شد، هرچند پشتیبانی از نسخه‌های ۷ و ۸ جاوا همچنان ادامه خواهد داشت. علاوه بر این، توزیع چندپلتفرمی و عمومی فایل codeql.zip در نسخه‌های آینده حذف خواهد شد و کاربران باید نسخه‌های اختصاصی هر پلتفرم را دانلود کنند.