Сканирование кода C++ с помощью GitHub Actions

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В прошлом году GitHub выпустил фичу сканирования кода, которая позволяет разработчикам добавлять проверки безопасности в свою среду CI/CD и в целом в рабочую среду. В этом посте демонстрируются основы использования CodeQL, механизма анализа, лежащего в основе сканирования кода, в связке с GitHub Actions.

Что такое CodeQL?

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

В набор по умолчанию входят такие запросы, как “Pointer overflow check”, “Potentially overflowing call to snprintf”, “Uncontrolled format string”, и другие.

Настройка CodeQL с GitHub Actions

Сканирование кода с помощью CodeQL бесплатно для публичных репозиториев и является частью GitHub Advanced Security для GitHub Enterprise. Вот инструкции по быстрой установке в 4 клика. В качестве альтернативы я добавил гифку с приведенными ниже инструкциями:

Вы можете просмотреть выходные данные сканирования на вкладке "Actions", и вы можете просматривать и управлять любыми предупреждениями сканирования кода на вкладке "Security".

Baselining

Иногда, особенно для больших legacy-кодовых баз, количество предупреждений может быть огромным. По этой причине CodeQL показывает только новые/исправленные предупреждения в pull request-ах. Если вы хотите управлять существующими предупреждениями, вы можете сделать это в разделе «Code scanning alerts» на вкладке «Security».

Важно понимать разницу между Dismiss и Delete. Одно из ключевых различий заключается в том, что при отклонении (Dismissing) предупреждения тот же код не создает его повторно. При удалении (Deleting) предупреждения тот же код сгенерирует такое же предупреждение при следующем сканировании. В случае, если вы хотите массово отклонять предупреждения, вы можете сделать это из сводки предупреждений (после фильтрации списка по любому набору предупреждений, который вы хотите отклонить).

Источник: https://habr.com/ru/company/microsoft/blog/566716/


Интересные статьи

Интересные статьи

Роботом-пылесосом iRobot Roomba можно управлять голосовыми командами, запуская уборку или отправляя пылесос в док-станцию. Я уже рассказывал о том, как «общаться» с Roomba через сервер io...
Совмещать много действий в одном выражении языка C++ плохо, так как такой код тяжело понимать, тяжело поддерживать, так в нём еще и легко допустить ошибку. Например, создать баг, совмещ...
Программист тратит многие часы на разработку некоего функционала и на то, чтобы код соответствовал передовым практическим приёмам, принятым в той или иной среде. В эти часы не должно ...
В материале предоставлен перевод руководства по автоматическом обновлению кода с TensorFlow 1.x до Tensorflow 2 с помощью скрипта обновления tf_upgrade_v2.
Два года назад Сундар Пичаи, глава Google, рассказал о том, что компания из mobile-first становится AI-first и фокусируется на машинном обучении. Год спустя вышел Machine Learning Kit — набор и...