Почему Open Source — это не бесплатно
Свободное или открытое ПО — неотъемлемая часть современного ИТ-ландшафта: оно стимулирует инновации и быстрое развитие технологий и упрощает процесс разработки. Кроме того, учитывая современные реалии, опенсорсное ПО становится решением многих проблем, связанных с импортозамещением. В частности, разработчики могут собрать стек из российских компонентов взамен иностранным решениям, да еще и совершенно бесплатно! Но так ли все просто на самом деле?
В этой статье мы рассмотрим следующие вопросы:
- Как использовать свободное ПО на объектах КИИ и не нарушать требования законодательства?
- Каковы риски применения неподдерживаемых пакетов ПО?
- Почему свободное плавание в море Open Source обойдется компании дороже, чем сотрудничество с поставщиком ПО с открытым кодом?
- Особенности применения свободного ПО с учетом требований импортозамещения
- Риски неконтролируемого применения свободного ПО
- Как обезопасить ИТ-инфраструктуру с помощью доверенных продуктов
- Переходите на отечественную среду исполнения Java и будьте уверены в безопасности вашей инфраструктуры
Особенности применения свободного ПО с учетом требований импортозамещения
Разбираемся в терминологии
Что понимается под термином «свободное ПО»? А «открытое ПО» — это то же самое? А как насчет «ПО с открытым кодом»? Прежде всего, давайте разберемся в этих трех понятиях.
В соответствии со стандартом ГОСТ Р 54593-2011, свободное программное обеспечение (СПО) — это ПО, которое распространяется на условиях простой (неисключительной) лицензии, оставляющей за лицензиаром права выдачи лицензий другим лицам. Иными словами, если компания приобретает или устанавливает программу, распространяемую по простой лицензии, это значит, что она будет не единственной, использующей данную программу. Разработчик вправе использовать ПО самостоятельно и передавать его в пользование неограниченному кругу лиц. При этом простая лицензия позволяет
- Использовать ПО в любых целях, не запрещенных законом,
- Получать свободный доступ к исходному коду ПО (тексту программы на каком-либо языке программирования) и модифицировать его в своих целях,
- Распространять ПО в исходном или модифицированном виде (с учетом возможных требований наследования лицензии).
Существует также термин «открытое программное обеспечение». Открытое ПО распространяется на условиях открытой лицензии (лицензионный договор, по которому простая лицензия предоставляется в упрощенном порядке и соответствует требованиям ст. 1286.1 Гражданского кодекса РФ).
Разница между свободным и открытым ПО определяется условиями лицензии, по которой данное ПО распространяется. Существует множество открытых и свободных лицензий, самые популярные из которых — MIT, Apache, GPL. Проект OpenJDK, имплементация языка программирования Java, разрабатывается под свободной лицензией GPLv2 with Classpath Exception (с исключением классов): это значит, что разработчики в своем приложении могут сочетать как открытые библиотеки, так и собственные наработки, и код последних открывать не нужно.
Наконец, ПО с открытым кодом распространяется под простой или исключительной (по условиям который лицензиар при предоставлении лицензиату прав пользования программой не имеет права выдавать лицензию другим лицам) лицензией, а пользователь получает доступ к исходному коду программы.
Подытоживая, открытое и свободное ПО отличаются друг от друга в зависимости от применяемой лицензии, но часто эти термины используются как синонимы. ПО с открытым кодом не всегда находится в открытом доступе; заказчик получает доступ к исходному коду после оформления подписки.
Далее мы будем использовать термин «свободное ПО» в качестве обобщающего понятия для этих трех явлений.
На принципах свободного ПО построены многие решения, в том числе операционная система Linux, браузер Mozilla Firefox, СУБД PostgreSQL и многие другие. Объем СПО, используемого в корпоративном стеке, может достигать 90%, и что самое главное — свободные программные компоненты могут использоваться в государственных системах, хотя и с важными оговорками.
Применение СПО в государственных ИТ-системах и на объектах КИИ
18 января 2023 года вышел Приказ Минцифры N 21, утверждающий методические рекомендации по переходу на использование российского ПО, в том числе на объектах КИИ. Согласно приказу, все программное обеспечение делится на
- Российское ПО,
- Евразийское ПО,
- Иностранное ПО.
В информационных системах органов государственной власти и на объектах критической информационной инфраструктуры разрешено использовать только программы, входящие в Единый реестр российского ПО или Единый реестр евразийского ПО. Программы, относящиеся к СПО, также должны быть включены в реестры. В случае, если программа не включена ни в один из реестров, она по умолчанию относится к иностранному ПО, использование которого не допускается.
Соответственно, компания может использовать свободное ПО в любом объеме при условии, что все компоненты зарегистрированы в реестрах.
Запрет на использование иностранного ПО — это эффективный метод повышения информационной безопасности российской ИТ-инфраструктуры и ее устойчивости к внешним воздействиям. Уход многих иностранных вендоров с российского рынка в 2022 году показал, насколько важно обеспечить цифровой суверенитет России и развивать собственные доверенные технологии без рисков их внезапного исчезновения.
Если же компания будет внедрять иностранное ПО в свой стек или решит не заменять текущие компоненты на отечественные аналоги, она столкнется с несколькими последствиями:
- Отсутствие техподдержки и своевременных обновлений ведет к разрастанию багов и уязвимостей, создающих плодотворное поле для кибератак;
- Если субъект КИИ является финансовой организацией, Банк России проводит проверки информационной инфраструктуры и в случае невыполнения требований законодательства применяет меры вплоть до отзыва лицензии.
Мы рекомендуем тщательно отслеживать происхождение всех пакетов, используемых в корпоративной разработке. Если в реестрах пока нет комплексного решения, полностью замещающего иностранный продукт, можно собрать комбинацию из нескольких компонентов от разных разработчиков. К счастью, реестры российского и евразийского ПО постоянно пополняются, поэтому формирование стека утвержденных технологий в скором времени не составит труда.
Риски неконтролируемого применения свободного ПО
Допустим, ИТ-специалисты компании нашли в реестрах все необходимое ПО, которое к тому же является свободным, а значит, находится в открытом доступе. Значит ли это, что теперь можно совершенно бесплатно собрать корпоративный стек безопасных и производительных технологий?
На этот вопрос можно сформулировать два ответа:
- Разработчики бесплатно собирают стек технологий;
- Разработчики собирают стек безопасных и производительных технологий.
Почему так?
Дело в том, что исходный код программы и бинарный файл — это не одно и то же, и в разнице между двумя файлами кроются потенциальные риски безопасности.
Исходный код, как уже было сказано выше — это понятный для разработчика текст программы, составленный на каком-либо языке программирования. Исходный код находится в свободном доступе или предоставляется пользователям после скачивания программы. Но исходный код невозможно запустить на компьютере напрямую, его сначала нужно компилировать в бинарный файл, содержащий двоичное представление машинных инструкций для конкретного процессора. На компиляцию уходит много времени — минуты, часы, в отдельных случаях даже сутки. При этом сборка отнимает значительную часть или даже все вычислительные ресурсы компьютера, которому к тому же необходимо иметь большое количество свободной оперативной памяти и места на жёстком диске. Наконец, нужно полностью воспроизвести среду сборки и уметь пользоваться сборочными системами, а для разных технологий и языков программирования они могут быть разными. Как следствие, сборка исходного кода повышает затраты на персонал и инфраструктуру и увеличивает срок вывода продукта на рынок.
Во избежание подобных неудобств в сообществе СПО принято в дополнение к исходными кодами предоставлять и собранные бинарные файлы, например, в виде публичных репозиториев для операционной системы или коллекции образов на Docker Hub. Но если вы скачиваете бинарный файл из публичных репозиториев, никто не гарантирует соответствие бинарного файла исходному коду. Он может содержать вредоносное ПО или уязвимости, добавленные случайно или намеренно, но ответственность за последствия внедрения такого кода в корпоративный стек ложится на ИТ-команду компании, а не на разработчиков, выложивших код в свободный доступ. Использование готовых бинарных файлов — это вопрос доверия, и для серьезного бизнеса и в особенности субъектов КИИ поиск надежных доверенных партнеров становится приоритетным вопросом, от которого зависит критическая часть процессов разработки и эксплуатации.
Конечно, можно проводить верификацию бинарных файлов самостоятельно, используя
- Бинарный анализ, с помощью которого проверяется безопасность бинарного файла без учета исходного кода,
- Пентесты (тестирование на проникновение) — методы оценки безопасности путем моделирования атаки злоумышленников,
- Сканеры безопасности, анализирующие файл на наличие известных (находящихся в базах данных сканеров) уязвимостей.
Все эти мероприятия требуют значительных временных и финансовых ресурсов, а также внутренней ИТ-экспертизы, но при этом ни один из методов не поможет установить соответствие бинарного файла исходному коду. Также можно, имея на руках бинарный файл и исходный код, воссоздать сборочную среду, в ней скомпилировать исходный код в исполняемый файл и затем сравнить полученные результаты с изначальным бинарным файлом. Данная методика требует еще больших временных и ресурсных энергозатрат, но на выходе результаты могут отличаться от ожидаемых из-за влияния множества переменных при воссоздании сборочной среды. К тому же, как мы выяснили выше, для сборки исходного кода требуется мощное оборудование и много времени.
Существует еще один вариант — проведение дорогостоящих проверок бинарных файлов с помощью утилит, предоставляемых вендорами решений по безопасности. Однако для использования этих технологий все равно придется строить собственную инфраструктуру и нанимать узкоспециализированных инженеров.
«Но если тесты показали отсутствие проблем безопасности, зачем нужно дополнительно подтверждать соответствие бинарного файла исходному файлу?» Ответ прост: отсутствие подтвержденного соответствия исходному коду всегда оставляет брешь в информационной безопасности.
Учитывая все вышесказанное, вы готовы собирать зависимости из исходного кода или пропускать каждый компонент через десятки тестов безопасности, повторяя процесс при каждом обновлении ПО? Попробуйте приблизительно подсчитать, во сколько это обойдется.
«Бесплатность СПО — миф. Свободное ПО действительно может быть бесплатным для отдельного пользователя, но не в масштабах компании, – считает Иван Панченко, сооснователь и заместитель генерального директора Postgres Professional. – Помимо разовых затрат на внедрение, адаптацию и переобучение персонала есть важнейшая постоянная статья расходов — техподдержка. Ей, конечно, можно пренебречь, но это в долгосрочной перспективе грозит обернуться серьезными финансовыми и репутационными рисками — минута простоя сложного технического продукта в масштабах большой компании может стоить десятки миллионов рублей.
При наличии технической поддержки такие проблемы решаются в течение пары часов. При отсутствии счет может пойти на дни, а то и месяцы, – продолжает он. – Кроме этого, любой код должен регулярно профилактически проверяться на наличие багов и уязвимостей. Другая проблема — интеграция свободного ПО с корпоративными информационными системами. Зачастую это не только настройка, но и доработка, создание связующих модулей и так далее. Все это может обойтись дороже, чем для проприетарного ПО, ориентированного на использование менее квалифицированными специалистами».
Таким образом, по какому бы из обозначенных выше путей вы ни пошли, вы столкнетесь с необходимостью вкладываться своими ресурсами во внедрение СПО. Так действительно ли свободное ПО — это бесплатно?
Как обезопасить ИТ-инфраструктуру с помощью доверенных продуктов
Мы установили, что эксплуатация и контроль безопасности СПО требуют существенных ресурсных затрат. Но есть и хорошая новость: эти издержки можно оптимизировать, разделив ответственность и приобретя лицензию у доверенного отечественного поставщика ПО с открытым кодом. В этом случае проверку соответствия бинарных файлов исходному коду осуществляет сам вендор и предоставляет заказчикам простые инструменты для итогового контроля (например, checksum). Кроме того, поставщик проводит тщательное тестирование сборок перед каждым релизом и предоставляет круглосуточную техподдержку.
В области Java разработки такой поставщик есть. Axiom JDK разрабатывает и поддерживает среду исполнения Java Axiom JDK Pro, сервер приложений Libercat и ряд других утилит. Все продукты входят в Единый реестр российского ПО и совместимы с российскими ОС, СУБД-оборудованием и облаками.
Технологии линейки Axiom JDK сочетают в себе преимущества открытого ПО и функционала, локализованного под российский рынок:
- Исходный код продуктов не находится в свободном доступе, а предоставляется клиентам после оформления подписки;
- Технологии разрабатываются в соответствии с концепцией жизненного цикла безопасной разработки SDL (Secure Development Lifecycle) и перед каждым релизом проходят через жесткий контроль качества, включающий структурный, статический, динамический анализы, регрессионное и PoC-тестирование и другие испытания;
- Поскольку в корпоративной разработке невозможно обойтись без сторонних компонентов, инженеры Axiom JDK создали доверенный репозиторий самых востребованных Java библиотек с исходными кодами, проверенными на предмет закладок и вредоносного ПО. Объем верифицированного кода составляет 4 Гб, и репозиторий постоянно пополняется;
- Среда исполнения Axiom JDK Certified сертифицирована ФСТЭК по 4 уровню доверия (УД), что позволяет использовать ее на объектах КИИ, где требуется сертификация информационных систем по ФСТЭК.
- Инженеры с 25-летним опытом развития Java и OpenJDK оказывают помощь 24/7 и выпускают экстренные патчи безопасности и фиксы;
- Axiom JDK Pro поставляется с готовыми конфигурациями TLS-сертификатов Минцифры, и является допустимой средой функционирования КриптоПРО JCP и КриптоПРО CSP.
В итоге, оформив подписку на Axiom JDK, вы получаете безопасные, отвечающие требованиям законодательства и гарантированно соответствующие исходному коду отечественные продукты с уникальными функциями и дополнительными инструментами, такими как микроконтейнеры и компилятор нативных образов, снижающими стоимость облачно-нативной Java разработки.
«Open-source — основа любой по-настоящему современной и эффективной ИТ-инфраструктуры. Использование open-source дает современному производству ряд серьезных преимуществ — прежде всего, управляемость, контролируемость и предсказуемость корневых продуктов и технологий, — но требует высокой квалификации технических сотрудников, – отмечает Александр фон Розен, член правления, технический директор ЕДИНОГО ЦУПИС. – С другой стороны, использование любого сложного инструментария, в том числе и проприетарного, немыслимо без квалифицированных инженеров. Хороший пример синергии отличной технической экспертизы вендора и популярного open-source-продукта — российский Axiom JDK Pro, который мы успешно используем более года».
Переходите на отечественную среду исполнения Java и будьте уверены в безопасности вашей инфраструктуры
Ознакомьтесь с кейсами компаний, уже мигрировавших на Axiom JDK Pro, в их числе — Национальная система платежных карт (НСПК), оператор Платежной системы Мир и Системы быстрых платежей, дочерние предприятия Газпром, Санкт-Петербургская Международная Товарно-сырьевая Биржа (СПбМТСБ). Или свяжитесь с нами сейчас, нажав на кнопку ниже, и наши инженеры проведут митап для вашей команды, предоставят демо-версию и помогут с миграцией!
Также подписывайтесь на наш Telegram-канал, чтобы быть в курсе новостей из мира Java.