Бесплатные инструменты для защиты Open Source

Дата: 29.06.2020. Автор: Игорь Б. Категории: Главное по информационной безопасности, Статьи по информационной безопасности.

Цель OWASP состоит в том, чтобы помочь всему миру улучшить безопасность своего программного обеспечения. Одним из способов, как можно это сделать, является оказание постоянной поддержки разработчикам Open Source и совершенствование их программного обеспечения, которое они выпускают и которое используют многие компании.

Таким образом, следует сказать о следующих автоматизированных инструментах обнаружения уязвимостей, которые являются бесплатными для проектов Open Source. Они были собраны в данной статье для того, чтобы каждый смог познакомиться с уникальными возможностями этих инструментов.

Проектам Open Source рекомендуется использовать следующие утилиты для повышения уровня их безопасности и качества конечного продукта:

Дисклеймер: OWASP не сотрудничает ни с одной компанией, которая будет представлена ниже. Перечисленные инструменты будут полезны программистам, поскольку они являются бесплатными для использования в проектах Open Source. Множество усилий было потрачено на то, чтобы собрать этот богатый и ценный для читателя материал.

Бесплатные инструменты для Open Source

Ниже будут представлены бесплатные инструменты для проектов Open Source из каждой категории.

Инструменты SAST

OWASP уже содержит известные инструменты SAST: Source Code Analysis Tools, которые включают в себя бесплатные утилиты для Open Source. Любые из них, безусловно, могут быть использованы хакером или программистом. Одними из подобных облачных сервисов, которые выглядят достаточно многообещающе, являются:

  • LGTM.com – бесплатный сервис статического анализа для Open Source, который автоматически отслеживает коммиты к общедоступному коду в: Bitbucket Cloud, GitHub или GitLab. Он поддерживает языки программирования C / C++, C#, COBOL (в бета-версии), Java, JavaScript/TypeScript, Python.
  • Insider CLI – инструмент Static Application Security Testing для Open Source, написанный на GoLang для Java (Maven и Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# и Javascript (Node.в JS).

Кроме того, известно о следующих коммерческих инструментах SAST, которые также являются бесплатными для проектов Open Source:

  • Coverity Scan Static Analysis – он может быть привязан к Travis-CI для автоматической работы с различными онлайн-ресурсами. Поддерживает более десятка языков программирования.
  • reshift – инструмент CI / CD, который использует статический анализ кода для сканирования уязвимостей, а также применяет машинное обучение для прогнозирования ложных срабатываний. Поддерживает Java на данный момент и в будущем – NodeJS и JavaScript. Если перейти в раздел цен, то можно заметить, что он бесплатен для публичных репозиториев.

Инструменты DAST

Если проект содержит разработку и совершенствование веб-приложения, рекомендуется запустить автоматическое сканирование для поиска уязвимостей. OWASP поддерживает также известные инструменты DAST, и лицензия на данной странице показывает, какие из этих инструментов доступны бесплатно. Основная рекомендация заключается в том, чтобы использовать одну из данных утилит:

  • OWASP ZAP – это полнофункциональный бесплатный инструмент DAST для Open Source, который включает в себя автоматическое сканирование уязвимостей и утилиты для помощи экспертам в ручном тестировании веб-приложений. Команда ZAP также упорно работает над тем, чтобы облегчить его интеграцию в CI/CD пайплайн. Перейдя по ссылке, хакер сможет узнать больше о том, как интегрировать ZAP в Jenkins.
  • Arachni – это коммерчески поддерживаемый сканер, но он остается бесплатным в большинстве случаев его использования, что включает в себя сканирование проектов Open Source.

Это пока все, что известно о коммерческих инструментах для проектов Open Source из категории DAST.

Инструменты IAST

Инструменты IAST обычно предназначены для анализа веб-приложений и веб-API, но это зависит от конкретного поставщика. Возможно, существуют новые продукты, которые также могут выполнять анализ безопасности не только веб-приложений.

На данный момент известно об одном инструменте, который является бесплатным после регистрации:

  • Contrast Community Edition (CE). Его полнофункциональная версия доступна для 1 приложения и максимум 5 пользователей (некоторые корпоративные функции отключены). Contrast CE поддерживает только Java и .NET.

Инструменты безопасности Open Source Software (OSS)

OSS относится к библиотекам или компонентам Open Source, которые разработчики приложений используют для быстрого создания новых приложений и добавления особых функций в существующие приложения. Gartner относит анализ безопасности этих компонентов к композиционному анализу программного обеспечения (SCA). Таким образом, анализ OSS и SCA — это, по сути, одно и то же.

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

Постоянная поддержка актуальной версии библиотек

Рекомендуется использовать последнюю версию каждой библиотеки, поскольку проблемы безопасности часто исправляются «молча» при обновлении. Под этим подразумевается тот факт, что отсутствует публикация CVE об изменениях.

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

Служба доступная только на GitHub, которая создает pull-запросы, чтобы поддерживать систему и библиотеки в актуальном состоянии. Она автоматически генерирует их для получения обновлений, связанных с безопасностью. Поддерживает множество языков.

Рекомендована для всех проектов Open Source, доступных на GitHub.

Обнаружение известных уязвимых компонентов

В качестве альтернативы или в дополнение к поддержанию всех компонентов в актуальном состоянии, проект может специально отслеживать, есть ли какие-либо уязвимые части в системе.

Бесплатные инструменты такого типа включают в себя:

OWASP имеет свои собственные бесплатные инструменты с открытым исходным кодом:

GitHub: утилиты для борьбы с уязвимостями компонентов. Они предупреждают о проблемах, связанных с безопасностью в проектах GitHub и сообщают об известных уязвимостях системы. Поддерживают языки программирования такие, как Java, .NET, JavaScript, Ruby и Python. Всем проектам на GitHub автоматически доступны эти инструменты.

Коммерческие инструменты такого типа, которые также бесплатны для Open Source:

  • Contrast Community Edition (CE). О нем уже говорилось ранее.
  • Snyk. Поддерживает такие языки программирования, как Node.js, Ruby, Java, Python, Scala, Golang, .NET, PHP. Самый актуальный список можно прочитать, перейдя по ссылке.
    • Коммерческий инструмент, который идентифицирует уязвимые компоненты и интегрируется с многочисленными пайплайнами CI/CD. Он бесплатен для проектов Open Source: https://snyk.io/plans
    • Еще одно преимущество использования Snyk CLI заключается в том, что он не будет автоматически создавать pull-запросы.
    • Также подробная информация и рекомендации по устранению известных уязвимостей представлены на этой странице: https://snyk.io/vuln
  • SourceClear. Теперь принадлежит компании Veracode. Поддерживает Java, Ruby, JavaScript, Python, Objective C, GO, PHP.
  • Они делают свои данные об уязвимости компонентов свободными для поиска: https://www.sourceclear.com/vulnerability-database/search#_. Ссылка будет полезной для тех, кто изучает конкретную библиотеку.
  • WhiteSource. Поддерживает более 200 языков. Доступны две версии:
  • Версия Azure: https://marketplace.visualstudio.com/items?itemName=whitesource.ws-bolt
  • Версия GitHub: https://github.com/apps/whitesource-bolt-for-github. Подойдет для конкретной библиотеки.

Инструменты Code Quality

Качество значительно коррелирует с безопасностью. Поэтому проектам Open Source также рекомендуется рассмотреть возможность использования инструментов такого типа. Вот некоторые из них:

  • SpotBugs – инструмент для Java. Это активный форк для FindBugs, поэтому, если пользователь применяет Findbugs, ему следует переключиться на него. Пользователи SpotBugs также должны добавить плагин FindSecBugs (http://find-sec-bugs.github.io/), так как он значительно улучшает базовую проверку безопасности.
  • SonarQube. Это коммерческий, очень популярный, бесплатный инструмент. Он включает в себя большинство, если не все правила безопасности FindSecBugs плюс многое другое, не говоря уже о настройке CI для запуска его в проектах Open Source. SonarQube поддерживает множество языков: https://www.sonarqube.org/features/multi-languages/
  • DeepScan. Поддерживает JavaScript, TypeScript. DeepScan — это инструмент статического анализа кода и сервис для проверки кода JavaScript. Он проверяет возможные ошибки во время выполнения и низкое качество кода с помощью анализа потока данных и предоставляет результаты в виде отчета. DeepScan является бесплатным инструментом для проектов Open Source на GitHub.

Инструменты безопасности, встроенные в среду DevOps/CI

  • GitLab обеспечивает безопасность на своей платформе. Инструмент постоянно обновляется: https://about.gitlab.com/direction/secure/#security-paradigm
  • Используются лучшие бесплатные инструменты для проектов Open Source. Они встроены в GitLab CI для того, чтобы облегчить их включение. Среди них утилиты:
  • SAST
  • DAST
  • Code Quality
  • Dependency Analysis
  • Container Scanning
  • Активные инструменты зависят от выбранного языка
  • Они бесплатны для публичных проектов Open Source на GitLab.com

Коммерческие инструменты, как правило, лучше и проще в использовании, чем бесплатные. Не стоит скупиться и отказываться от любимого поставщика в пользу утилит, за которые не нужно платить. Для проектов Open Source – это прекрасный выбор!

Автор переведенной статьи: Dave Wichers

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться ссылкой

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

9 + восемнадцать =