Статья A.S Groups

CodeQL 2.27 получил нативную поддержку Linux ARM64: что изменилось в анализе кода

CodeQL 2.27 на Linux ARM64 и статический анализ безопасности кода

Навигация по статье

Услуги A.S Groups

Нужен сайт, магазин или автоматизация?

Помогаю бизнесу запускать и дорабатывать WordPress-проекты: от посадочной страницы до WooCommerce, CRM и Telegram-уведомлений.

Обсудить проект Telegram
WordPress под ключ Лендинги, корпоративные сайты и структура под заявки. WooCommerce Интернет-магазины, каталог, оплата, доставка и интеграции. Доработка сайта Правки, скорость, формы, баги и развитие текущего проекта. CRM / Telegram / AI Автоматизация заявок, уведомлений и ручных процессов.

CodeQL 2.27.0 вышел 9 сентября 2026 года. Главная инфраструктурная новинка релиза — нативная поддержка Linux ARM64. GitHub также добавил новую security-проверку для Rust и расширил анализ C#, Java/Kotlin, C/C++, GitHub Actions и сценариев работы с приватными registry.

CodeQL используется как движок статического анализа в GitHub code scanning. Поэтому обновление интересно не только security-командам, но и разработчикам, которые запускают анализ в GitHub Actions, собственном CI или на ARM64-инфраструктуре.

CodeQL теперь нативно работает на Linux ARM64

В CodeQL 2.27.0 Linux ARM64 получил статус полноценной платформы. GitHub публикует отдельные per-platform assets для CLI и CodeQL bundle, включая codeql-linux-arm64.zip и ARM64-варианты bundle.

Это особенно актуально для команд, у которых CI runners, облачные VM или серверы уже работают на ARM64. Теперь для самой CodeQL CLI есть нативный пакет этой архитектуры, а значит не нужно строить процесс вокруг x86-64-дистрибутива CodeQL.

Важно учесть и обратную сторону изменения: generic multi-platform codeql.zip уже объявлен deprecated и будет удалён в одном из будущих релизов. GitHub рекомендует переходить на отдельный архив для своей платформы.

Что проверить в CI после перехода на ARM64

Минимальный чек-лист

  • какой runner реально выполняет CodeQL job и какая у него архитектура;
  • не закреплён ли в скриптах старый URL общего codeql.zip;
  • совпадает ли платформа CLI с окружением runner;
  • доступны ли build tools и зависимости проекта на ARM64;
  • не завязаны ли собственные scripts на x86-64 binaries;
  • проходит ли полный security workflow на тестовой ветке перед изменением production CI.

Нативная CLI сама по себе не гарантирует, что весь проект автоматически станет ARM64-совместимым. Если анализ требует сборки, внешних компиляторов или бинарных зависимостей, их поддержку нужно проверять отдельно.

Private registry configurations появились в Default Setup

GitHub code scanning Default Setup теперь может использовать private registry configurations организации для аутентификации при загрузке custom queries и packs. Речь идёт о сценариях, когда дополнительный CodeQL-контент хранится в приватных Git-источниках или Docker registry.

Для корпоративных проектов это уменьшает необходимость строить обходной механизм доставки собственных query packs только ради закрытого registry. Но права доступа всё равно стоит выдавать по принципу минимально необходимых: security workflow не должен получать больше секретов и репозиториев, чем ему реально требуется.

Новая проверка Rust на command-line injection

В релиз добавлена query rust/command-line-injection. Она предназначена для обнаружения неконтролируемого формирования командной строки, когда внешние данные могут повлиять на выполняемую команду.

Одновременно GitHub уменьшил дублирование результатов в rust/hard-coded-cryptographic-value и скорректировал rust/unused-variable, чтобы не ругаться на переменные внутри функций со стандартными todo!() и unimplemented!().

После обновления CodeQL набор alerts может измениться даже без изменения исходного кода. Поэтому новые результаты лучше сначала классифицировать, а не автоматически считать каждое новое предупреждение новой регрессией.

C и C++: PostgreSQL libpq добавлен в SQL injection sinks

CodeQL 2.27.0 расширил модели C/C++ для PostgreSQL libpq. Функции выполнения запросов и prepared statements, включая PQexec, PQexecParams, PQprepare и связанные вызовы, теперь рассматриваются как потенциальные sinks для SQL injection analysis.

Практический смысл простой: если проект на C/C++ формирует SQL для PostgreSQL через libpq, обновлённые query могут увидеть пути данных, которые более ранняя версия не считала релевантными.

C#: ASP.NET Core MVC и OData анализируются точнее

Для C# улучшено обнаружение ASP.NET Core MVC controllers и actions. Моделирование стало ближе к runtime-поведению: учитываются application parts, endpoint mappings, наследуемые actions и исключения контроллеров и методов.

Также добавлен taint tracking для параметров OData actions. Это расширяет анализ значений, приходящих через ODataActionParameters и объекты, отслеживаемые через Delta.

Для build-mode: none CodeQL теперь пытается восстановить проекты и solutions через доступные NuGet feeds и отдельно сообщает о явно настроенных, но недоступных источниках пакетов. Для диагностики неполного анализа это полезное изменение: становится проще увидеть, что часть зависимостей не попала в контекст.

Java и Kotlin: добавлено моделирование Micronaut

В Java/Kotlin CodeQL получил модели для Micronaut. GitHub перечисляет HTTP controllers, WebSocket endpoints, configuration injection, data access, security annotations и HTTP client sinks.

Если приложение использует Micronaut, часть framework-specific data flow теперь может быть понятнее для анализатора без дополнительных пользовательских моделей.

GitHub Actions: author-association checks стали оцениваться строже

Изменено поведение анализа GitHub Actions workflow, которые проверяют поля author association из event payload. CodeQL теперь считает такую проверку защитой только тогда, когда соответствующее поле действительно присутствует в payload конкретного события.

GitHub предупреждает, что после обновления это может привести к дополнительным alerts в workflow, где прежняя проверка фактически не защищала сценарий. Такие результаты особенно важно изучить, если Actions запускают команды с повышенными permissions или работают с секретами.

Java 9 и Java 10 уходят из поддержки

GitHub объявил поддержку Java 9 и Java 10 deprecated. Удаление запланировано на январь 2027 года. Java 7 и Java 8 при этом пока остаются поддерживаемыми.

Если security pipeline анализирует старый проект, лучше заранее проверить используемую версию Java и не обнаружить несовместимость уже после очередного автоматического обновления CodeQL.

Что меняется для GitHub.com и GitHub Enterprise Server

GitHub автоматически разворачивает новые версии CodeQL для пользователей code scanning на github.com. Для GitHub Enterprise Server новый функционал попадёт в будущий релиз GHES. На старых версиях GHES CodeQL можно обновлять отдельно в рамках поддерживаемого процесса.

Недавно я разбирал GitHub Enterprise Server 3.22. Для self-hosted среды принцип тот же: перед обновлением security-инструмента стоит проверить runners, build dependencies, custom packs и интеграции, а не ориентироваться только на номер версии.

Почему этот релиз важен не только пользователям ARM

ARM64 — самая заметная строка changelog, но большая часть практических изменений относится к точности анализа: новые framework models, новые sinks и корректировки GitHub Actions queries способны изменить результаты существующих scans.

Поэтому после обновления полезно сравнить alerts с предыдущим baseline, проверить новые категории результатов и убедиться, что CI не начал пропускать необходимые build dependencies.

Тот же подход полезен и для других защитных слоёв. Например, в материале про WAF и блокировку уязвимых веб-сценариев речь идёт уже о runtime-периметре. CodeQL работает раньше — на этапе анализа кода. Эти механизмы не заменяют друг друга.

Что сделать команде после выхода CodeQL 2.27

  1. Проверить текущую версию CodeQL и способ её установки.
  2. Если runners ARM64 — перейти на соответствующий per-platform asset в тестовом workflow.
  3. Просмотреть новые alerts после первого полного анализа.
  4. Проверить custom query packs и доступ к приватным registry.
  5. Для C/C++, C#, Java/Kotlin, Rust и GitHub Actions отдельно посмотреть изменения queries и framework models.
  6. Зафиксировать baseline перед массовым обновлением CI.

Итог

CodeQL 2.27.0 — заметное обновление для команд, использующих ARM64 и GitHub code scanning. Нативная Linux ARM64 CLI упрощает поддержку соответствующей инфраструктуры, а новые и обновлённые security queries расширяют покрытие популярных frameworks и сценариев.

Если нужно разобрать существующий GitHub Actions pipeline, CodeQL setup или связать статический анализ с вашим CI/CD, можно описать задачу A.S Groups. Сначала проверим текущую схему и только после этого определим, что имеет смысл менять.

Официальные источники

Следующий шаг

Нужно решить похожую задачу?

Связать релиз с аудитом CI/CD и code scanning без обещаний гарантированного обнаружения всех уязвимостей.

Обсудить задачу

Источники

Обсуждение

Вопросы и комментарии

Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.

Оставить комментарий

Email не публикуется. Ссылки и HTML в тексте удаляются.

Мы используем приватную аналитику SlimStat, чтобы понимать, какие страницы полезны посетителям, и улучшать сайт. IP-адреса анонимизируются и хэшируются. Вы можете согласиться или отказаться от аналитики.
Cookies и конфиденциальность

Используем необходимые cookies, аналитику и данные форм, чтобы сайт работал корректно и заявки доходили.