Крупнейший в мире хостинг ИТ-проектов Github запустил бесплатный сервис по выявлению уязвимостей в исходном коде программ. С 30 сентября 2020 г. он доступен всем желающим. Об этом сообщил старший менеджер по продукту Github Джастин Хатчингс (Justin Hutchings) в официальном блоге компании.
Инструмент, получивший название «Code scanning» («Сканирование кода»), функционирует на базе движка для семантического анализа кода CodeQL. Движок был разработан американской компанией Semmle, которую в 2019 г. купила Github. По словам главы (CEO) Github Нэта Фридмана (Nat Friedman), CodeQL – самый мощный инструмент в своем роде. Его применяют в работе специалисты по безопасности из Google, Microsoft, NASA и Uber.
Сервис автоматически сканирует каждый запрос на включение кода в репозиторий (pull-запроса) на основании преднастроенных шаблонов. Эти шаблоны содержат описания типовых ошибок, совершаемых программистами. В системе их на данный момент более 2 тыс., и пользователи сервиса могут добавлять свои собственные шаблоны.
Инструмент доступен бесплатно для использования с общедоступными репозиториями. Анализ кода в частных (закрытых) репозиториях доступен в рамках расширенного набора услуг безопасности, который предлагает платформа пользователям платного тарифа Github Enterprise.
Напомним, что об изменениях в сетке тарифных планов Github объявил в январе 2019 г. Пользователи бесплатного плана Github Free получили возможность создавать любое количество частных репозиториев, однако доступ к каждому из них могли иметь максимум три разработчика. Enterprise Cloud и Enterprise Server были объединены в единый тариф под названием Github Enterprise. Он предназначен для организаций, а его стоимость варьируется в зависимости от числа пользователей.
Первые итоги использования инструмента
Функция выявления уязвимостей была запущена Github в мае 2019 г. в режиме бета-теста. По данным хостинга, в ходе ее «обкатки» было проведено сканирование более чем 12 тыс. репозиториев около 1,4 млн раз и выявлено свыше 20 тыс. проблем с безопасностью. Среди них –несущие угрозу удаленного исполнения кода, внедрения SQL-кода, а также уязвимости типа XSS (межсайтовый скриптинг).
Причем 72% из обнаруженных ошибок были выявлены на этапе рассмотрения pull-запросов и исправлены разработчиками в течение 30 дней. В Github очень довольны таким результатом, особенно учитывая, что в целом по отрасли данный показатель не превышает и 30%.