Согласно недавнему отчету, опубликованному независимым аналитиком, 96% коммерческих приложений содержат компоненты с открытым исходным кодом и зависимости. В отчете также отмечается, что в среднем каждое приложение содержит около 257 компонентов с открытым исходным кодом. Как показывает статистика, количество компонентов с открытым исходным кодом в проприетарной кодовой базе растет.

Поощрение разработчиков к использованию открытого исходного кода само по себе неплохо. Разработка программного обеспечения с открытым исходным кодом очень часто является совместным усилием, в котором участвуют несколько отдельных участников. Участники пытаются поддерживать компонент, исправляя ошибки и добавляя новые функции в течение длительного периода времени. Но что происходит, когда библиотека теряет популярность, а разработчик проекта решает вообще отказаться от нее?

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

Управление исправлениями

Централизованная структура для управления программными исправлениями, возможно, является наиболее важным аспектом экосистемы OSS. Это гарантирует своевременное применение сторонних исправлений к инфраструктуре вашей компании. Важно отметить, что большинство кибератак происходит при обнаружении бреши в безопасности или уязвимости. Злоумышленники потенциально могут использовать его для взлома системы, прежде чем организация сможет отреагировать на уязвимость. Единственный способ противодействовать этому - проактивный подход.

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

Вам следует вести учет используемых компонентов и отслеживать статус уязвимости таких компонентов. Существует множество инструментов анализа состава программного обеспечения (CSA), которые помогут вам составить перечень используемых вами компонентов с открытым исходным кодом и проанализировать их на предмет угроз безопасности.

Мудро выбирайте зависимости

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

Вместо этого выберите популярные альтернативы. Когда вы найдете что-то с большим количеством звезд на GitHub, есть вероятность, что многие люди просматривают код. Хотя проверка кода не гарантирует безопасность, есть вероятность, что, если уязвимость обнаружится, кто-то найдет ее и исправит.

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

Если код не содержит ошибок, вам необходимо учитывать последствия при выпуске новой версии кода. Обновление версии кода может быть сложной задачей, если вы не используете такой компонент, как «как есть». В противном случае у вас не будет совместимости с резервными копиями.

Иметь стандартизированную политику

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

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

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

Отслеживайте, когда вам нужно обновить

Согласно недавно завершенному опросу, 1 из каждых 16 компонентов с открытым исходным кодом содержал уязвимость безопасности. Кроме того, было множество других библиотек, которые содержали ряд серьезных и критических ошибок программного обеспечения.

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

Возьмем пример. Недавно была обнаружена уязвимость в пакете eslint-scope, который является зависимостью нескольких популярных пакетов JavaScript, таких как babel-eslint и webpack. Учетная запись сопровождающего пакета была скомпрометирована, и в пакет был добавлен вредоносный код. К счастью, кто-то обнаружил уязвимость достаточно быстро, и, как сообщается, ущерб был ограничен несколькими пользователями.

В будущем, вероятно, произойдет больше таких случаев, если не будут приняты серьезные меры безопасности, чтобы предотвратить их появление. Так что ты можешь сделать? Мониторинг библиотек с открытым исходным кодом и отслеживание достоверных отчетов о безопасности должны помочь вам повысить осведомленность о последних уязвимостях в ваших компонентах и ​​ограничить возможные повреждения. Затем вы можете попробовать обновить или удалить конкретную библиотеку, на которую это влияет.

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

Понять, как исправить

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

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

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

Заключение

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

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