Функция сканирования кода на GitHub стала доступна для всех пользователей. Инструмент позволит найти уязвимости в коде до релиза. Его можно связать с системами непрерывной интеграции и развертывания.
Преимущества сервиса
Первую бета-версию системы сканирования представили в рамках конференции GitHub Satellite в мае. Новую функцию активно тестировало сообщество разработчиков, и теперь она доступна всем пользователям сервиса.
По умолчанию сканирование кода запускают только действующие правила безопасности, чтобы вы могли сосредоточиться на текущей задаче. Разработчики считают, что это эффективнее классического линтинга – когда сканер пытается найти все возможные ошибки.
Сканирование кода можно интегрировать с GitHub Actions или другими системами CI/CD (continuous integration / continuous deploy – непрерывная интеграция и развертывание), к примеру, с Jenkins. Инструмент будет сканировать код по мере его создания. Это повысит вероятность того, что уязвимости не попадут в релиз.
Сканировать код в публичных репозиториях можно бесплатно. Для приватных репозиториев инструмент является частью системы Advanced Security в рамках GitHub Enterprise.
Как это работает
Система сканирования кода позволяет найти проблемы в безопасности ПО. В ее основе – технология CodeQL, разработанная стартапом Semmle (его GitHub приобрел год назад).
CodeQL называют самым мощным на сегодняшний день движком для анализа кода. Чтобы проверить свой код, вы можете использовать более 2 тыс. готовых последовательностей, созданных специалистами и сообществом GitHub, или построить собственные.
Движок соответствует открытому стандарту SARIF, и вы можете использовать его для коммерческих и открытых проектов. С CodeQL можно добиться высокой эффективности SAST (static application security testing – статического тестирования безопасности приложений), не выходя из привычной для пользователей GitHub среды разработки.
Система также поддерживает интеграцию других статических анализаторов кода. Результаты сканирования можно увидеть в едином интерфейсе.
Первые итоги
Создатели сервиса рассказали, что в рамках тестирования просканировали свыше 12 тыс. репозиториев 1,4 млн раз и обнаружили более 20 тыс. проблем с безопасностью: в частности, SQL-инъекции, RCE (remote code execution – возможность удаленного выполнения кода), XSS (cross site scripting – межсайтового скриптинга) и др. Разработчики устранили 72% найденных проблем в течение 30 последних дней. Средние данные по отрасли гораздо ниже: по статистике, через месяц после обнаружения решают менее 30% проблем.
Таким образом, инструмент может повлиять на весь мировой рынок программного обеспечения. Он призван сделать ПО безопаснее и защитить от утечек данных.