SOT

Security Orchestration Tools

Напишите нам на sales@securityvision.ru или закажите демонстрацию

Открытый и закрытый исходный код, различные типы лицензий и их влияние на кибербезопасность

Открытый и закрытый исходный код, различные типы лицензий и их влияние на кибербезопасность

Руслан Рахметов, Security Vision

 

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

 

Начнем с базовой классификации типов ПО по назначению:

  • Системное (общее) ПО: управляет взаимодействием прикладного программного обеспечения с аппаратным обеспечением устройства и обеспечивает работу прикладного ПО. Примерами системного ПО будут операционные системы (ОС), драйверы устройств, утилиты ОС, микропрограммы (прошивки) устройства, системы управления базами данных (СУБД), средства разработки ПО, а также средства защиты информации.

  • Прикладное (специальное) ПО: выполняет бизнес-задачи посредством взаимодействия с пользователями. Примерами прикладного ПО будут различные офисные приложения (почтовые клиенты, редакторы документов и таблиц), средства совместной работы, мессенджеры, браузеры, бизнес-приложения (ERP, HRM, CRM системы и т.д.).

 

По способу приобретения, использования и распространения ПО можно разделить на следующие типы:


1. Свободное и открытое программное обеспечение (англ. FOSS, Free and open-source software)


1.1. Свободное ПО

Свободное ПО - это софт, который распространяется на условиях, позволяющих пользователям эксплуатировать его в любых целях. В английской интерпретации такой тип ПО называется Free software или Libre software - второе название подчеркивает не бесплатное его распространение, а именно свободу пользователя распоряжаться своей копией как угодно, вне зависимости от цены, которую он заплатил за такое ПО. Программа считается свободной, если она буквально "уважает" свободы пользователя, а именно предоставляет ему 4 права:

  • Исполнять (запускать) программу в любых целях;

  • Изучать работу программы и изменять (модифицировать) её так, чтобы она соответствовала специфическим требованиям пользователя;

  • Распространять копии исходной программы;

  • Распространять копии модифицированной пользователем программы.

 

Идеология свободного ПО подразумевает, что оно может быть коммерческим, поддерживается и стремление коммерческих компаний по оказанию платной профессиональной технической поддержки свободного ПО. Продажа свободного ПО (и исходного, и модифицированного) также поддерживается, при этом подчеркивается, что если лицензия на ПО запрещает пользователям делать копии программы и продавать их, то такая лицензия (и программа) не является свободной. При работе со свободным ПО важно учитывать и юридические правила: была разработана концепция «копилефт» (англ. Copyleft, буквально «авторское лево») в противовес привычного всем «копирайта» (англ. Copyright, авторское право), которая подразумевает, что разработчик программы официально признаёт её свободной и требует, чтобы все модифицированные и расширенные её версии также были свободными. Кроме копилефт-лицензий есть и более либеральные системы лицензирования - например, «разрешительная лицензия» (permissive software license) не требует, чтобы модифицированные версии программы были свободными, при этом должна сохранятся информация о разработчике оригинала с указанием авторских прав, а лицензия типа «общественное достояние» (public domain) не предусматривает оформление и защиту авторских прав вообще.

 

Американская некоммерческая организация «Фонд свободного программного обеспечения» (англ. Free Software Foundation, сокращенно FSF), основанная в 1985 году идеологом свободного софта Ричардом Столлманом, подчеркивает, что у авторов свободных программ есть юридические способы защиты от попыток недобросовестных игроков сделать его программу закрытой - фактически, присвоить себе программу, например, с целью дальнейшей продажи без указания авторства. Одним из таких способов является использование лицензии GPL (GNU General Public License) версии 3 - это копилефт-лицензия, которая юридически защищает свободное ПО от попыток наложить дополнительные ограничения на программу и превратить её в проприетарную. Версия GPL v3 была выпущена в 2007 году, а Ричард Столлман указывал, что с её выходом будет урегулирована некорректная практика использования ПО с лицензией GPL старых версий в некоторых устройствах, разработчики которых запрещают пользователям изменять и запускать модифицированные версии ПО. Члены FSF до сих пор внимательно относятся к свободам пользователей конечных устройств - например, недавно был анонсирован проект Librephone, в рамках которого планируется разработать ОС для смартфонов на базе Linux, которую будет поддерживать сообщество свободного ПО.

 

1.2. Открытое ПО

Открытое программное обеспечение (англ. Open Source) поставляется вместе с исходными текстами программ и должно соответствовать ряду критериев:

  • распространение и продажа программ не ограничивается;

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

  • разрешается распространение модифицированных версий программы с сохранением условий Open Source-лицензии оригинальной версии программы;

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

 

Таким образом, открытое ПО имеет много общего со свободным ПО - например, концепция свободного ПО требует, чтобы программу можно было изменять и распространять её модифицированные копии, для чего требуется доступ к исходному коду, поэтому большинство Open Source программ являются также и свободными программами. Однако у данных двух подходов есть определенные идеологические отличия, которые подчеркивает Ричард Столлман.

 

Open Source Initiative является американской коммерческой организацией, основанной в 1998 году для поддержки разработчиков и продвижения открытого ПО. На сайте Open Source Initiative приведен список различных типов Open Source-лицензий - в частности, там присутствуют такие популярные лицензии, как:

 

2. Проприетарное ПО


Противоположностью свободному ПО является проприетарное ПО, в котором правообладатель (автор, разработчик) сохраняет за собой все права на ПО и запрещает конечным пользователям распространять и модифицировать его. У проприетарного ПО может быть как закрытый исходный код (closed-source software), так и доступный исходный код (source-available software), что, однако, не делает его софтом с открытым исходным кодом (Open Source). Кроме того, проприетарное ПО может быть как платным (коммерческим), так и бесплатным (freeware).


Примерами моделей монетизации платного ПО могут быть:

  • коммерческое ПО (COTS/MOTS, поговорим о нём далее);

  • Adware - программа бесплатна, но пользователи видят рекламу, доход от показа которой идёт разработчику;

  • Donationware - программа бесплатна, но разработчик предлагает пользователям сделать ему добровольное пожертвование (донат);

  • Shareware - условно-бесплатное ПО, которое либо работает в течение определенного времени (trial, триал), а потом требует приобретения, либо отображает пользователю навязчивые сообщения (nags, наги) о необходимости купить программу. Сюда же можно отнести ПО, распространяемое по модели Freemium, в котором бесплатен только базовый функционал, а продвинутые возможности доступны уже после оплаты.

 

3. Готовое коммерческое программное обеспечение (англ. COTS, Commercial-off-the-Shelf)


Коммерческое ПО, доступное для покупки широкому кругу бизнес-пользователей, подразумевает «коробочное» исполнение (без кастомных модулей), внедрять и настраивать которое может либо сам покупатель, либо интегратор (партнер производителя), при этом для ПО обеспечивается техническая поддержка от производителя. Большинство программных продуктов на рынке - это именно COTS-решения, однако, если речь идёт о разработке или доработке решения на заказ (кастомизация от производителя), то будет использоваться уже другой термин - MOTS (Modified Off-The-Shelf, модифицированное производителем ПО), иногда встречается термин bespoke software (буквально - сделанное на заказ ПО).

 

Рассматривая различные типы ПО и СЗИ, которые планируется внедрять в компании, специалисту по ИБ нужно учитывать ряд аспектов:


1) Обязательно нужно следить за лицензионной чистотой используемого ПО и СЗИ. Например, лицензия может запрещать использование ПО/СЗИ в интересах третьих лиц, поэтому в холдинговой структуре будет юридически некорректно использовать продукт (скажем, SIEM) для защиты дочерних компаний. Аналогичные сложности могут возникнуть и в случае необходимости установки какого-либо ПО на устройство, которое не принадлежит компании - скажем, на личный смартфон руководителя или на ноутбук, стоящий на балансе другого юридического лица.


2) Сложившееся мнение о высокой безопасности Open Source решений по сравнению с проприетарным ПО связано с распространенностью программ этих типов. Например, Microsoft выпускает массу многофункциональных коммерческих решений, которые эксплуатируются в крупных компаниях по всему миру и этим привлекают злоумышленников, регулярно находящих опасные уязвимости в них; с другой стороны ОС семейства BSD (FreeBSD, NetBSD, OpenBSD) достаточно компактны и выполняют базовый набор функций, а их относительно небольшая распространенность (по сравнению с теми же ОС Windows) снижает интерес атакующих к ним. Несмотря на то, что уязвимостей в продуктах Microsoft было найдено на порядки больше, чем в BSD, сложно однозначно утверждать, что BSD ОС лучше написаны и более безопасны - если они станут такими же популярными, как Windows, то станут такой же мишенью для хакеров.


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


4) Управление уязвимостями может быть нетривиальным при работе с Open Source: необходимость следить за уязвимостями в upstream-пакетах, различные модули и компоненты, многообразие версий и типов ОС, высокие требования к экспертизе Linux-администраторов могут осложнить оперативное выявление и устранение уязвимостей и ошибок.


5) Зависимость крупномасштабных Open Source продуктов от кода, который пишут никем не контролируемые энтузиасты, также является вызовом. С одной стороны, многие атакующие нацелены на популярные GitHub-проекты, получив доступ к которым можно внести широкомасштабные вредоносные изменения - для этого взламывают аккаунты разработчиков или пытаются получить права на внесение изменений за счет социальной инженерии (например, представляясь готовым помочь энтузиастом). С другой стороны, сами разработчики могут нарушить правила Open Source сообщества об отсутствии дискриминации и внедрить деструктивные возможности в проект из-за хактивизма - так случилось в 2022 году с популярным npm-пакетом node-ipc, в который автор внес деструктивный функционал, атаковавший российских и белорусских пользователей.


6) Злоумышленники пользуются неразберихой и быстрыми изменениями в Open Source сообществе - например, используют технику typosquatting для создания поддельных вредоносных пакетов, имена которых похожи на оригинальные, и атакуют пользователей, допускающих опечатки при поиске.


7) Атаки на цепочки поставок стали большой сложностью в мире ИБ, и Open Source страдает от них в большой степени. Например, в 2024 году атакующие внедрили бэкдор в утилиту для сжатия данных XZ, которая входит в состав большинства дистрибутивов Linux - их действия были обнаружены, но в случае успеха атаки они получили бы несанкционированный удаленный доступ к миллионам инсталляций.


8) Отсутствие технической поддержки некоторых Open Source продуктов тоже может отпугнуть те компании, у которых в штате нет сильного Linux-администратора, который способен самостоятельно решить проблему. С учетом дефицита опытных специалистов, возможны сложности с поиском и удержанием такого эксперта.


9) Вместе с описанными особенностями решений класса Open Source нельзя забывать и про недостатки некоторых проприетарных решений с закрытым кодом, разработчики которых оперируют ложным принципом «Безопасность через неясность» (англ. Security through obscurity) и надеются, что закрытый исходный код поможет защитить продукт от эксплуатации уязвимостей в нём.

ИБ для начинающих СЗИ Low code No code ИБ

Похожие статьи

Масштабное обновление Security Vision SIEM
Масштабное обновление Security Vision SIEM
Безопасность кода: почему это должно волновать разработчика с первой строки и до релиза?
Безопасность кода: почему это должно волновать разработчика с первой строки и до релиза?
CyBОК. Глава 3. Законы и регуляторные нормы. Часть 5
CyBОК. Глава 3. Законы и регуляторные нормы. Часть 5
Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Из чего состоит ретроспективный анализ в ИБ
Из чего состоит ретроспективный анализ в ИБ
Антифрод системы - что это и как работает
Антифрод системы - что это и как работает
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Между печеньем и морковкой: удержание команды в условиях неопределенности
Между печеньем и морковкой: удержание команды в условиях неопределенности
Возможности новой версии продукта Security Vision VM
Возможности новой версии продукта Security Vision VM
DMA-атака и защита от нее
DMA-атака и защита от нее
«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ
«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ

Похожие статьи

Масштабное обновление Security Vision SIEM
Масштабное обновление Security Vision SIEM
Безопасность кода: почему это должно волновать разработчика с первой строки и до релиза?
Безопасность кода: почему это должно волновать разработчика с первой строки и до релиза?
CyBОК. Глава 3. Законы и регуляторные нормы. Часть 5
CyBОК. Глава 3. Законы и регуляторные нормы. Часть 5
Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Из чего состоит ретроспективный анализ в ИБ
Из чего состоит ретроспективный анализ в ИБ
Антифрод системы - что это и как работает
Антифрод системы - что это и как работает
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Сетевая песочница как защита от угроз ИБ: как работает sandbox
Между печеньем и морковкой: удержание команды в условиях неопределенности
Между печеньем и морковкой: удержание команды в условиях неопределенности
Возможности новой версии продукта Security Vision VM
Возможности новой версии продукта Security Vision VM
DMA-атака и защита от нее
DMA-атака и защита от нее
«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ
«Черный ящик», «белый ящик» и «серый ящик»: сравнение методов тестирования в ИБ