Мы все несем коллективную ответственность за обеспечение безопасности программного обеспечения с открытым исходным кодом — никто из нас не может это делать в одиночку. Сегодня в Github Universe мы объявили Github Security Lab. Место где соберутся вместе исследователи безопасности, сопровождающие и компании по всей отрасли, которые разделяют нашу убежденность в том, что безопасность открытого исходного кода важна для всех.
Мы рады иметь первоначальных партнеров, которые делают свой вклад для достижения этой цели. Вместе мы предоставляем инструменты, ресурсы, награды и тысячи часов исследований в области безопасности, чтобы помочь защитить экосистему с открытым исходных кодом.
В рамках сегодняшнего объявления GitHub Security Lab делает CodeQL свободно доступным для всех, кто может найти уязвимости в открытом исходном коде. CodeQL — это инструмент, который многие исследовательские группы по всему миру используют для проведения семантического анализа кода, и мы использовали его сами, чтобы найти более 100 зарегистрированных CVEs(Common Vulnerabilities and Exposures) в некоторых популярных open source проектов.
Мы также запускаем GitHub Advisory Database — общедоступную базу данных рекомендаций, созданную на GitHub, плюс дополнительные данные, сопоставленные с пакетами, отслеживаемыми графом зависимостей GitHub.
Подход GitHub к безопасности охватывает весь жизненный цикл безопасности open source проектов. GitHub Security Lab поможет выявлять и сообщать об уязвимостях в open source проектах, в то время как меинтейнеры и разработчики используют GitHub для создания исправлений, координации раскрытия и обновления зависимых проектов до с решенней уязвимостью.
GitHub Security Lab
Миссия GitHub Security Lab заключается в том, чтобы вдохновлять и позволять глобальному сообществу исследователей безопасности защищать код всего мира. Наша команда будет показывать пример, посвящая постоянные ресурсы поиску и составлению отчетов об уязвимоястях в притически важных open source проектах. Комадна уже выпустила более 100 CVE для обнаружения уязвимостей.
Обеспечения безопасности open source проектов в мире — это непростая задача. Во-первых, масштаб: одна экосистема JavaScript содержит более миллиона open source пакетов. Кроме того, ощущается нехватка специалистов в области безопасности, примерно 500 разработчиков к одному специалисту. Наконец, существует координация: эксперты по безопасности в мире работают в тысячах компаний. GitHub Security lab и CodeQL помогут в этом.
В этой работе к нам присоединяются компании, которые жертвуют свое время и опыт, чтобы найти и сообщить об уязвимостях в open source проектах. Каждый обязался внести свой вклад по-своему, и мы надеемся, что другие присоединятся к нам в будущем.
- F5
- HackerOne
- Intel
- OIActive
- J.P. Morgan
- Microsoft
- Mozilla
- NCC Group
- Oracle
- Trail of Bits
- Uber
- VMWare
Чтобы расширить возможности, мы также делаем наш совместный механизм анализа кода CodeQL бесплатным для использования в open source проектах. CodeQL позволяет запрашивать код, как если бы это были данные. Если вам известна ошибка кодирования, которая привела к уязвимости, вы можете написать запрос, чтобы найти все варианты этого кода, навсенда уничтожив целый класс уязвимостей. Посмотрите, как начать работу с CodeQL.
Если ты исследователь в области безопасности или работаешь в команде безопасности, нам нужна твоя помощь. Обеспечение безопасности open source проектов в мире потребует работы всего сообщества. GitHub Security Lab будет проводить мероприятия и делиться лучшими практиками, чтобы помочь всем в участии. Следите за учетной записью GHSecurityLab в Твиттере для получения более подробной информации.
Улучшение security workflow в open source
По мере того как исследователи в мире безопасности обнаруживают все больше уязвимостей, сопровождающие и конечные пользователи нуждаются в более совершенных инструментах для их устранения.
Сегодня процесс устранения новых уязвимостей часто носит временный характер. 40% новых уязвимостей в open source проектах не имеют идентификатора в CVE, когда они объявлены, то есть не включены ни в одну общедоступную базу данных. 70% критических уязвимостей остаются нерешенными через 30 дней после уведомления разработчиков.
Мы исправляем это. Мэинтейнеры и разработчики теперь могут работать вместе непосредственно в GitHub, чтобы обеспечить раскрытие новых уязвимостей только тогда, когда мэинтейнеры готовы, а разработчики могут быстро и легко обновлять до исправленной версии.
GitHub Security Advisories
Благодаря советам по безопасности, мэинтейнеры могут работать с исследователями безопасности над исправлениями в частном пространстве, подавать на заявки на CVE непосредственно из GitHub и указывать структурированные сведения об уязвимости. Затем, когда они будут готовы опубликовать рекомендации по безопасности, GitHub отправит оповещения по затронутым проектам.
Автоматические обновления безопасности
Получение уведомления об уязвимых зависимостях полезно, но получение pull-request'ов с исправлением еще лучше. Чтобы помочь разработчикам быстро реагировать на новые уязвимости, GitHub создает автоматические обновления безопасности(automated security updates) — pull request, которые обновляют уязвимую зависимость до исправленой версии.
Автоматические обновления безопасности для системы были запущены в бета-версии на GitHub Satellite 2019 и теперь в основном доступны и развернуты для каждого активного репозитория с включенными предупреждениями безопасности.
Сканирование токенов
Одна из наиболее распространенных ошибок — хардкод токенов или учетных данных в проекте. В течении нескольких секунд после отправки коммита на GitHub, или переклчение проекта в публичный, мы сканируем его на наличие форматов от 20 различных облачных провайдеров. Когда мы обнаруживаем совпадение, мы уведомляем провайдеров, и они предпринимают действия, как правило, ануллируя токены и уведомляя затронутых пользователей. А сегодня мы объявили о четырех новых партнерах: GoCardless, HashiCorp, Postman и Tencent.
GitHub Advisory Database
Мы сделали все изменения, которые мэинтейнеры создают в советах по безопасности GitHub, а также дополнительные данные, и замапленные к пакетам, отслеживаемыми графом зависимостей GitHub, доступными бесплатно. Изучите новую базу данных GitHub Advisory в вашем браузере, создайте прямые ссылки на записи с идентификаторами CVE в комментариях или получите программный доступ к данным с помощью Security Advisory API endpoint.