GlobalTrust продолжает публиковать основные положения организационно-распорядительных документов по обеспечению информационной безопасности, чтобы помочь организациям глубже разобораться и выстроить собственную политику в данной области.
Целью настоящей Политики является определение основных принципов, положений и требований, направленных на обеспечение безопасного использования в Обществе открытого ПО, а также проприетарного ПО, в состав которого входят отдельные компоненты открытого ПО.
Открытое ПО – это программное обеспечение, у которого исходный код доступен всем. На это ПО распространяется специальная свободная лицензия, позволяющая посмотреть, как сделана программа, найти уязвимости и написать что-то совместимое или похожее, или взять какой-нибудь алгоритм и сделать что-то на его основе, или найти недочёт и предложить улучшение.
Риски использования открытого ПО
Использование в Обществе открытого ПО сопряжено со следующими дополнительными рисками:
- Повышенная вероятность заражения вредоносным ПО. Злоумышленники могут внедрять вредоносные изменения в открытый код. Это может привести к краже конфиденциальной информации, финансовым или репутационным потерям.
- Задержки с обновлениями. Открытое ПО требует регулярного обновления, так как его уязвимости быстро становятся известными злоумышленникам. Однако обновления ПО могут привести к нестабильности работы приложений или проблемам с совместимостью.
- Ошибки конфигурации. Открытые системы, такие как базы данных, веб-серверы и контейнерные платформы, требуют грамотной настройки. В случае, если администраторы забывают отключить дефолтные учётные записи, устанавливают слабые пароли или оставляют критически важные сервисы доступными из интернета, это создаёт благоприятные условия для атак.
- Зависимость от сторонних разработчиков. К разработке отрытого ПО нередко привлекают фрилансеров или небольшие аутсорс-команды, у которых уровень компетенции в вопросах безопасности может существенно различаться. Это увеличивает вероятность использования уязвимого или даже намеренно вредоносного кода.
- Вероятность изменения условий лицензии. Это влечёт за собой риск нарушения авторских прав и ограничения использования собственной программы на основе открытого кода.
Чтобы снизить риски, связанные с использованием открытого ПО, в Обществе должны тщательно проверяться продукты перед началом их использования, использоваться специальные инструменты для проверки надёжности библиотек, от которых зависит продукт, и быть создан чёткий план действий на случай возникновения проблем с безопасностью.
Нормативные ссылки
Настоящая Политика разработана на основе следующих нормативных документов Общества:
- Политика информационной безопасности
- Политика установки обновлений ПО
- Политика контроля защищенности корпоративной сети
- Политика обеспечения безопасности при разработке ПО
- Политика управления информационными рисками
- Политика инвентаризации информационных активов
Основные положения
Бесконтрольная установка открытого ПО в корпоративной сети сотрудниками Общества не допускается. Контроль установки и обновления открытого ПО осуществляется сотрудниками ОИТ, после анализа данного ПО и принятия соответствующих мер для снижения рисков, сопряженных с его использованием.
Учет используемого в Обществе открытого ПО осуществляется в реестре ПО, формируемого в соответствии с Политикой инвентаризации информационных активов.
Оценка рисков использования открытого ПО осуществляется в соответствии с Политикой управления информационными рисками.
Для снижения рисков использования открытого ПО, в Обществе должны применяться следующие меры:
- Изучение ПО при выборе. Нужно обратить внимание на репутацию продукта, его историю, узнать о возможных происшествиях, связанных с безопасностью. Также стоит оценить частоту обновлений и активность сообщества. Особое внимание нужно уделить лицензии, под которой распространяется продукт.
- Проверка надёжности библиотек, от которых зависит продукт. Для поиска вредоносных изменений в программных продуктах могут применяться различные анализаторы программных кодов, статические (SAST) и динамические (DAST).
- Сканирование приложений на известные уязвимости и оперативное применение доступных исправлений безопасности (патчей, программных коррекций).
- Оценка зрелости проекта и вероятности его развития/поддержки перед интеграцией в бизнес-процессы и в свой код. Стоит обратить внимание на число разработчиков, сопровождающих проект, и на частоту релизов.
- Формирование списка приемлемых для организации стандартных лицензий (совместно с юридическим отделом), а также их совместимости с предназначением ПО в организации. ПО с несовместимыми лицензиями или вообще без лицензии нужно выводить из использования.
- Проверка исходного кода пакетов перед использованием. Разработчики должны проверять исходный код пакетов перед использованием, уделяя внимания таким странным характеристикам, как наличие зашифрованных фрагментов в коде, перехват несвойственных функций и так далее.
- Проверка цифровых подписей пакетов (при наличии).
- Использование кода только от официальных поставщиков. Выбирая код от такого провайдера, можно получить техническую поддержку, что снижает риски безопасности.
- Выстраивать процесс взаимодействия между специалистами СИБ и разработчиками ПО.
Принципы защитного кодирования
Процесс управления жизненным циклом открытого ПО должен соответствовать Политике обеспечения безопасности при разработке ПО.
При выборе открытого ПО для использования в Обществе должна приниматься во внимание степень применения разработчиками данного ПО принципов защитного кодирования.
Принципы защитного кодирования, применяемые для выявления и устранения ошибок и уязвимостей в разрабатываемом ПО, включают в себя следующее:
- Приоритезация безопасности. Концепция заключается в том, чтобы приоритезировать безопасность на протяжении всего жизненного цикла разработки программного обеспечения. Это помогает обнаруживать и устранять недостатки на ранних стадиях, минимизируя вероятность игнорирования вопросов безопасности из-за сжатых сроков выполнения задач.
- Проверка входных данных и кодирование выходных данных. Важно проверять все пользовательские вводы и кодировать выходные данные для предотвращения серьёзных уязвимостей.
- Обработка ошибок и журналирование. Правильная обработка ошибок и ведение журналов является важным аспектом безопасного кодирования. Необходимо избегать раскрытия чувствительной информации в сообщениях об ошибках, которые могут быть видны пользователям.
- Внедрение элементов управления идентификацией и аутентификацией. Чтобы повысить безопасность и свести к минимуму риск взлома, рекомендуется проверять личность пользователя с самого начала и интегрировать надёжные элементы управления аутентификацией в код приложения.
- Контроль доступа. Включение хорошо продуманной стратегии авторизации на начальных этапах разработки приложения может значительно повысить общую безопасность.
- Ведение журнала и обнаружение вторжений. Рекомендуется включить систему мониторинга, которая может обнаруживать и идентифицировать необычные события.
- Регулярная оценка и пересмотр состояния безопасности. Важно регулярно оценивать и пересматривать состояние безопасности программного обеспечения на протяжении всего жизненного цикла разработки, обеспечивая непрерывное улучшение и корректировку по мере необходимости.
Условия лицензирования открытого ПО
При принятии решения об использовании открытого ПО, сотрудники ОИТ должны проанализировать и зафиксировать в реестре ПО условия его лицензирования, включая субкомпоненты и зависимости.
К используемому в Обществе открытому ПО предъявляются следующие требования по его лицензированию:
- Доступ к исходным текстам. ПО должно предоставляться с исходными текстами, либо должен быть описан простой механизм получения доступа к ним, например, через интернет.
- Возможность переработки. Должна быть разрешена модификация ПО, его исходных текстов, их использование в других программах и распространение производных программ на таких же условиях.
- Отсутствие зависимости от иного ПО. Права, связанные с ПО, не должны зависеть от того, входит ли оно в состав какого-либо иного ПО или распространяется совместно с ним.
- Отсутствие ограничений на иное ПО. Лицензия не должна накладывать ограничения на иное ПО, распространяемое вместе с лицензируемым ПО.
- Технологическая нейтральность. Возможность реализации прав пользователя не должна зависеть от какой-либо технологии или стиля интерфейса.
Требования к качеству и обеспечению безопасности открытого ПО
При использовании Обществом открытого ПО предъявляются следующие требования к обеспечению его безопасности:
- Регулярное тестирование и анализ безопасности. Частота проведения таких мероприятий может варьироваться в зависимости от размера проекта, его популярности и уровня риска.
- Защита среды и сетевого сегмента, где используется открытое ПО. Это снизит вероятность взлома или использования уязвимостей в открытом ПО при атаке.
- Применение принципа минимальных привилегий. Принцип ограничения доступа и разграничения прав пользователей помогает предотвратить распространение уязвимостей и потенциальных атак внутри системы.
- Обучение разработчиков практикам безопасности. Это помогает им понять, как писать безопасный код, выявлять уязвимости и принимать меры безопасности на протяжении всего жизненного цикла разработки программного обеспечения.
- Учёт регуляторных и лицензионных рисков. Каждое приложение и пакет, несмотря на открытый исходный код, имеет свою лицензию на использование. Риски реализуются, если лицензия оказывается несовместима с использованием приложения по предназначению.
- Регулярное обновление. Компоненты с открытым исходным кодом, которые не обновляются регулярно, могут сделать программное обеспечение уязвимым к известным уязвимостям.
- Мониторинг зависимостей. Необходимо регулярно отслеживать и проверять дерево зависимостей ПО, чтобы выявлять и устранять слабые звенья.
- Использование специальных инструментов для управления зависимостями. Такие инструменты автоматически отслеживают обновления библиотек и зависимостей, проверяя их на наличие известных уязвимостей.
- Использование специальных инструментов анализа состава ПО (SCA), которые помогают отслеживать компоненты открытого ПО в составе приложения, что существенно с точки зрения безопасности их применения.
- Использование сканеров безопасности, которые сканируют ПО на наличие уязвимостей, вредоносного кода и устаревших компонентов.
- Создание чёткого плана действий на случай возникновения проблем с безопасностью.
Анализ уязвимостей открытого ПО, применение сканеров безопасности и других специальных инструментов анализ ПО осуществляется в соответствии с Политикой контроля защищенности корпоративной сети.
Регулярное обновление открытого ПО, тестирование и установка программных коррекций (патчей) и исправлений безопасности осуществляется в соответствии с Политикой установки обновлений ПО.
Полную версию Политики использования открытого ПО можно найти в составе Универсального комполекта типовых документов по информационной безопасности GTS 1035.