image


Введение


Когда вы начинаете создавать репозиторий на GitHub, одной из первых вещей, о которых вы должны подумать, является безопасность.

В случае, если вы создаете свой собственный репозиторий GitHub или часто контрибьютите в репозиторий, вам необходимо знать, содержит ли ваш код какие-либо уязвимости. Уязвимости репозиториев в прошлом вызывали проблемы с безопасностью. Это было подчеркнуто тем фактом, что две из самых больших утечек данных за последнее время — Equifax и Heartbleed SSL Exploit — начались с уязвимостей с соответствующими компонентами с открытым кодом, которые могут быть использованы в будущем.

В этом посте мы рассмотрим и проанализируем четыре отдельных инструмента, которые можно использовать для выявления уязвимостей в вашем репозитории GitHub. Каждый из этих четырех инструментов имеет свои суперспособности, но у каждого есть и слабые стороны. Эта статья поможет вам выбрать правильный инструмент для проекта с открытым исходным кодом.
EDISON Software - web-development
Статья переведена при поддержке компании EDISON Software, которая дает дельные советы юниорам, а также проектирует программное обеспечение и пишет ТЗ на русском и английском.


GuardRails


image

GuardRails — это фримиум (freemium) приложение безопасности, которое доступно на маркетплейсе GitHub’а. GuardRails может обеспечить статический анализ кода, а также выявление уязвимых зависимостей. Он пишет комментарии в пул реквесты с уязвимостями.

Само приложение будет сканировать новые записи в коде пользователя в режиме реального времени, что позволяет пользователям быстро предпринимать действия по устранению уязвимостей практически сразу после их появления. Это помогает защитить репозиторий и код от злоумышленников. Что касается пул реквестов, GuardRails будет писать комментарии по каждому реквесту, когда обнаружит проблему безопасности, и с ответвлениями эта информация будет отображаться на вашей панели мониторинга GuardRails.

Основным принципом службы GuardRails является ее всеобъемлющая, и быстрая настройка, при которой пользователи могут интегрировать GuardRails со всеми своими репозиториями за считанные минуты. Вы также можете интегрировать GuardRails со Slack, чтобы уведомления доходили до вас более эффективно.

В настоящее время GuardRails поддерживает Python, Ruby, JavaScript, Solidity, Go, Java и PHP.

WhiteSource Bolt


image

WhiteSource Bolt помогает пользователям GitHub создавать сканы своих репозиториев, позволяя им выявлять уязвимости с открытым исходным кодом, которые могут появляться в коде. Он предоставляется компанией WhiteSource, которая является специалистом в области безопасности, лицензирования и отчетности в области открытого исходного кода. Они работают на рынке с 2011 года и могут рассчитывать на помощь более чем 2,1 миллиона различных разработчиков.

Их сервис работает так, что каждый раз, когда происходит push-действие, Bolt запускает сканирование вашего репозитория, а затем создает проблему(issue) для каждой обнаруживаемой уязвимости. Он также будет создавать проблемы(issues) для новых уязвимостей, которые были обнаружены с существующими компонентами кода с открытым исходным кодом. Кроме того, он может предотвратить попадание уязвимых компонентов в код, автоматически отменяя пул реквесты, которые содержат уязвимости.

Bolt также предоставляет своим пользователям доступ к собственной базе данных уязвимостей WhiteSource, которая обширна и считается многими самой дорогой на рынке безопасности с открытым исходным кодом. Вы получите несколько сведений о любых обнаруженных уязвимостях, включая данные CVE и CVSS, предлагаемые исправления, пути к уязвимым компонентам и ссылки для справки.

В настоящее время Bolt поддерживает более 200 различных программ, включая Java, Python, PHP, C #, C ++ и другие.

LGTM


image

LGTM — это бесплатное приложение для проектов с открытым исходным кодом, которое помогает пользователям обнаруживать потенциальные уязвимости в их коде, а также предотвращает их появление в первую очередь. В частности, LGTM использует данные, собранные группой исследований безопасности, которые сосредоточены на поиске уязвимостей нулевого дня. Услугами LGTM воспользовались более 700 000 разработчиков и более 135 000 проектов с открытым исходным кодом, и этот уровень опыта свидетельствует о качестве их услуг. Приложение LGTM GitHub доступно на маркетплейсе GitHub.

При работе в вашем репозитории LGTM может автоматически сканировать ваш код, проверяя наличие уязвимостей и CVE, которые могли появиться. Благодаря большому сообществу опытных разработчиков и исследователей LGTM, вы понимаете, что предоставляемые ими услуги, могут принести большую пользу для безопасности вашего репозитория. Это делает его еще проще, чем ведение лога запросов и с помощью него, вы можете обнаружить потенциальные уязвимости, прежде чем они войдут в кодовую базу.

LGTM в настоящее время имеет большое количество поддерживаемых языков программирования, поддержка которых распространяется на C, C ++. COBOL, Python, Javascript и Java.

GitHub Security Alerts


image

GitHub Security Alerts — это бесплатная служба, предоставляемая владельцам и участникам репозиториев GitHub, имеющих зависимости. Используя собственный граф зависимостей, пользователи смогут увидеть, когда в их зависимостях есть уязвимости, и предоставят пользователям предложения по устранению указанных уязвимостей.

Когда GitHub уведомит вас о потенциальной уязвимости, вы получите обновление, в котором GitHub предоставит вам рекомендацию о том, какие из ваших зависимостей необходимо обновить. Если существует известная безопасная версия зависимости, GitHub выберет для вас одну, используя машинное обучение, и она будет включена по рекомендации.
Когда дело доходит до информации о каждой уязвимости, GitHub сообщает вам, на какую уязвимость влияют, диапазон версий, на которые она влияет, ID CVE и любые предлагаемые исправления, содержащиеся в базе данных уязвимостей.

В настоящее время сервис поддерживает JavaScript, Ruby и Python.

Комментарии (2)


  1. Sly_tom_cat
    22.11.2019 23:45
    +2

    На мой взгляд очень скудный обзор.

    Если на маркете гитхаба открыть секьюрити раздел — то там 48 приложений, и если уж выбраны только первые 4, то можно было бы хотя бы упомянуть, что есть еще 44 под практически все языки.


  1. psycho-coder
    23.11.2019 12:22
    +1

    GitHub выкатили свою SecurityLab на днях
    github.blog/2019-11-14-announcing-github-security-lab-securing-the-worlds-code-together