Знаете ли вы, что до 90 процентов приложения обычно состоит из сторонних компонентов, в основном с открытым исходным кодом? А знаете ли вы, что более 50 процентов компаний из списка Global 500 используют уязвимые компоненты с открытым исходным кодом?
В современной среде разработки программного обеспечения огромный объем работы передается на краудсорсинг большому сообществу разработчиков и сообществ с открытым исходным кодом, которые очень мало понимают проблемы безопасности, которые это создает, не говоря уже о способах управления этим риском. Мы все знаем, что не можем прекратить использование открытого исходного кода, и мы знаем, что никто не хочет прекращать его использование. В ходе опроса, проведенного компанией BlackDuck software, 43 процента респондентов заявили, что считают, что программное обеспечение с открытым исходным кодом превосходит его коммерческий аналог.
Открытый исходный код — это мощный инструмент, и лучшие разработчики в мире используют его, но пора перестать игнорировать проблемы безопасности и начать отслеживать зависимости в вашем программном обеспечении.
-
1.
Snyk
Snyk — это коммерческий сервис, который фокусируется на зависимостях JavaScript npm. Недавно появившись на рынке, Snyk находится в своей собственной лиге. Он не только предлагает инструменты для обнаружения известных уязвимостей в проектах JavaScript, но и помогает пользователям устранить эти проблемы с помощью управляемых обновлений и патчей с открытым исходным кодом, которые создает Snyk.
Snyk имеет собственную базу данных уязвимостей, которая получает данные из NIST NVD и NSP. Основное внимание Snyk уделяет масштабированию работы с известными уязвимостями в масштабах всей организации и ее команд, используя лучшие инструменты для совместной работы и более тесную интеграцию с GitHub. Генеральный директор Snyk, Гай Поджарни, сообщил, что в дальнейшие планы Snyk входит создание инструментов выполнения, которые обеспечат разработчикам лучшую видимость и контроль при запуске пакетов с открытым исходным кодом в продакшене.
-
2.
Retire.js
RetireJS — это проверка зависимостей с открытым исходным кодом, специфичная для JavaScript. Проект в первую очередь ориентирован на простоту использования. Именно поэтому он имеет множество компонентов, включая сканер командной строки и плагины для Grunt, Gulp, Chrome, Firefox, ZAP и Burp. RetireJS также сделал сервис проверки сайтов доступным для JS-разработчиков, которые хотят узнать, используют ли они JavaScript-библиотеку с известными уязвимостями.
RetireJS получает информацию об уязвимостях из NIST NVD, а также из множества других источников, включая списки рассылки, системы отслеживания ошибок и блоги популярных проектов JavaScript. Эрленд Офтедал из RetireJS считает, что безопасность — это проблема каждого, и необходимо больше сотрудничества: «Я бы хотел, чтобы авторы популярных фреймворков с открытым исходным кодом сами начали сообщать об исправлениях безопасности в такие инструменты, как Retire.js, чтобы пользователи их программ были в большей безопасности».
-
3.
Hakiri
Hakiri — это коммерческий инструмент, который предлагает проверку зависимостей для проектов GitHub на базе Ruby с использованием статического анализа кода. Он предлагает бесплатные планы для публичных проектов с открытым исходным кодом и платные планы для частных проектов. Он использует NVD и Ruby Advisory Database.
Василий Васинов из Hakiri говорит, что в планах на будущее — добавление интеграции со Slack, JIRA и Pivotal Tracker, а также поддержка других языков, таких как Node.js и PHP.
-
4.
Nexus
Nexus автоматически применяет политики безопасности открытого кода, блокирует загрузку некачественных компонентов и определяет приоритеты исправления.