Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Введение
Когда вы начинаете создавать репозиторий на GitHub, одной из первых вещей, о которых вы должны подумать, является безопасность.
В случае, если вы создаете свой собственный репозиторий GitHub или часто контрибьютите в репозиторий, вам необходимо знать, содержит ли ваш код какие-либо уязвимости. Уязвимости репозиториев в прошлом вызывали проблемы с безопасностью. Это было подчеркнуто тем фактом, что две из самых больших утечек данных за последнее время — Equifax и Heartbleed SSL Exploit — начались с уязвимостей с соответствующими компонентами с открытым кодом, которые могут быть использованы в будущем.
В этом посте мы рассмотрим и проанализируем четыре отдельных инструмента, которые можно использовать для выявления уязвимостей в вашем репозитории GitHub. Каждый из этих четырех инструментов имеет свои суперспособности, но у каждого есть и слабые стороны. Эта статья поможет вам выбрать правильный инструмент для проекта с открытым исходным кодом.
Статья переведена при поддержке компании EDISON Software, которая дает дельные советы юниорам, а также проектирует программное обеспечение и пишет ТЗ на русском и английском.
GuardRails
GuardRails — это фримиум (freemium) приложение безопасности, которое доступно на маркетплейсе GitHub’а. GuardRails может обеспечить статический анализ кода, а также выявление уязвимых зависимостей. Он пишет комментарии в пул реквесты с уязвимостями.
Само приложение будет сканировать новые записи в коде пользователя в режиме реального времени, что позволяет пользователям быстро предпринимать действия по устранению уязвимостей практически сразу после их появления. Это помогает защитить репозиторий и код от злоумышленников. Что касается пул реквестов, GuardRails будет писать комментарии по каждому реквесту, когда обнаружит проблему безопасности, и с ответвлениями эта информация будет отображаться на вашей панели мониторинга GuardRails.
Основным принципом службы GuardRails является ее всеобъемлющая, и быстрая настройка, при которой пользователи могут интегрировать GuardRails со всеми своими репозиториями за считанные минуты. Вы также можете интегрировать GuardRails со Slack, чтобы уведомления доходили до вас более эффективно.
В настоящее время GuardRails поддерживает Python, Ruby, JavaScript, Solidity, Go, Java и PHP.
WhiteSource Bolt
WhiteSource Bolt помогает пользователям GitHub создавать сканы своих репозиториев, позволяя им выявлять уязвимости с открытым исходным кодом, которые могут появляться в коде. Он предоставляется компанией WhiteSource, которая является специалистом в области безопасности, лицензирования и отчетности в области открытого исходного кода. Они работают на рынке с 2011 года и могут рассчитывать на помощь более чем 2,1 миллиона различных разработчиков.
Их сервис работает так, что каждый раз, когда происходит push-действие, Bolt запускает сканирование вашего репозитория, а затем создает проблему(issue) для каждой обнаруживаемой уязвимости. Он также будет создавать проблемы(issues) для новых уязвимостей, которые были обнаружены с существующими компонентами кода с открытым исходным кодом. Кроме того, он может предотвратить попадание уязвимых компонентов в код, автоматически отменяя пул реквесты, которые содержат уязвимости.
Bolt также предоставляет своим пользователям доступ к собственной базе данных уязвимостей WhiteSource, которая обширна и считается многими самой дорогой на рынке безопасности с открытым исходным кодом. Вы получите несколько сведений о любых обнаруженных уязвимостях, включая данные CVE и CVSS, предлагаемые исправления, пути к уязвимым компонентам и ссылки для справки.
В настоящее время Bolt поддерживает более 200 различных программ, включая Java, Python, PHP, C #, C ++ и другие.
LGTM
LGTM — это бесплатное приложение для проектов с открытым исходным кодом, которое помогает пользователям обнаруживать потенциальные уязвимости в их коде, а также предотвращает их появление в первую очередь. В частности, LGTM использует данные, собранные группой исследований безопасности, которые сосредоточены на поиске уязвимостей нулевого дня. Услугами LGTM воспользовались более 700 000 разработчиков и более 135 000 проектов с открытым исходным кодом, и этот уровень опыта свидетельствует о качестве их услуг. Приложение LGTM GitHub доступно на маркетплейсе GitHub.
При работе в вашем репозитории LGTM может автоматически сканировать ваш код, проверяя наличие уязвимостей и CVE, которые могли появиться. Благодаря большому сообществу опытных разработчиков и исследователей LGTM, вы понимаете, что предоставляемые ими услуги, могут принести большую пользу для безопасности вашего репозитория. Это делает его еще проще, чем ведение лога запросов и с помощью него, вы можете обнаружить потенциальные уязвимости, прежде чем они войдут в кодовую базу.
LGTM в настоящее время имеет большое количество поддерживаемых языков программирования, поддержка которых распространяется на C, C ++. COBOL, Python, Javascript и Java.
GitHub Security Alerts
GitHub Security Alerts — это бесплатная служба, предоставляемая владельцам и участникам репозиториев GitHub, имеющих зависимости. Используя собственный граф зависимостей, пользователи смогут увидеть, когда в их зависимостях есть уязвимости, и предоставят пользователям предложения по устранению указанных уязвимостей.
Когда GitHub уведомит вас о потенциальной уязвимости, вы получите обновление, в котором GitHub предоставит вам рекомендацию о том, какие из ваших зависимостей необходимо обновить. Если существует известная безопасная версия зависимости, GitHub выберет для вас одну, используя машинное обучение, и она будет включена по рекомендации.
Когда дело доходит до информации о каждой уязвимости, GitHub сообщает вам, на какую уязвимость влияют, диапазон версий, на которые она влияет, ID CVE и любые предлагаемые исправления, содержащиеся в базе данных уязвимостей.
В настоящее время сервис поддерживает JavaScript, Ruby и Python.