Используя свою новую функцию графика зависимостей, GitHub теперь может предупреждать вас о потенциальных уязвимостях безопасности в коде, на который опирается проект, и предлагать известные исправления.
В недавнем сообщении Джейсона Уорнера в блоге GitHub говорится:
На GitHub есть миллионы проектов с открытым исходным кодом. Если вы создаете программное обеспечение, ваш код, скорее всего, зависит по крайней мере от одного из этих проектов. Теперь наши данные могут помочь вам управлять все более сложными зависимостями и обеспечивать безопасность вашего кода при работе над подключенными проектами—даже для частных репозиториев.
Инновацией, на которую он ссылался, был новый график зависимостей, который отображает проекты, от которых зависит ваш код, и проекты, которые зависят от вашего кода. Чтобы включить его, просто нажмите Insights под именем репозитория и щелкните График зависимостей на левой боковой панели.
Уорнер говорит:
Теперь вы можете видеть все пакеты и приложения, к которым вы подключены, не выходя из своего репозитория.
Это несколько преувеличение, поскольку в настоящее время поддерживаются только зависимости Ruby и JavaScript в файле Gemfile или файле package.json. Однако это только начало. Следующими будут поддерживаться зависимости Python.
С другой стороны, преимущество идентификации зависимостей уже появляется в потоке-предупреждения о безопасности плюс советы о том, как на них реагировать.
GitHub отслеживает общедоступные уязвимости в Ruby gems и пакетах NPM в списке общих уязвимостей и рисков MITRE (CVE). Помимо выделения зависимостей, которые являются источником потенциальной уязвимости, и ее серьезности по четырехбалльной шкале-Низкая, Умеренная, Высокая, Критическая, GitHub стремится обеспечить решение проблемы.
В своем блоге о предупреждениях безопасности на GitHub Миджу Хан пишет:
… мы выделим все зависимости, которые рекомендуем обновить. Если существует известная безопасная версия, мы выберем ее с использованием машинного обучения и общедоступных данных и включим ее в наше предложение.
Как и все рекомендательные системы, эта, как ожидается, улучшится с использованием.
Хан объясняет:
Уязвимости, имеющие идентификаторы CVE (публично раскрытые уязвимости из Национальной базы данных уязвимостей), будут включены в предупреждения о безопасности. Однако не все уязвимости имеют идентификаторы CVE—даже многие публично раскрытые уязвимости не имеют их. Мы будем продолжать совершенствоваться в выявлении уязвимостей по мере роста наших данных безопасности.
Как только ваш график зависимостей будет включен, администраторы по умолчанию будут получать предупреждения о безопасности. Администраторы также могут добавлять группы или отдельных лиц в качестве получателей предупреждений безопасности в настройках графика зависимостей.
Использование этих новых средств кажется хорошей идеей и следующим шагом в использовании самой большой в мире коллекции данных с открытым исходным кодом, чтобы помочь обеспечить безопасность кода.