Уязвимости в программном обеспечении есть и всегда будут. Точно так же, как не бывает идеальной безопасности, не бывает и идеального кода. Это порождает вопрос: какой лучший способ исправить проблемы в ПО, особенно в больших масштабах? Как это часто бывает, когда речь заходит о вопросах безопасности, ответ: «Это зависит».

Кто выпустил баги?

Программное обеспечение с открытым исходным кодом позволяет любому — к лучшему или худшему — заглянуть внутрь и, надеюсь, исправить проблемы безопасности или функциональности. Но они также могут внедрить бэкдоры, которые могут остаться незамеченными, иногда годами, согласно исследованию 2022 года, опубликованному на 31-м симпозиуме по безопасности USENIX.

Закрытое программное обеспечение, с другой стороны, полагается на секретность своего исходного кода и экспертизу собственных разработчиков ПО — своего рода внутренняя секретная «приправа», которую, как надеются, поддерживают эксперты с солидной репутацией в области безопасности, где их мастерство по крайней мере достаточно, чтобы удержать клиентов и оставаться в бизнесе. Независимо от того, делают ли они свой исходный код доступным или нет, разработчики могут использовать такие документы, как OWASP Top Ten и SEI CERT Coding Standards, которые способствуют разработке безопасных практик кодирования.

Хотя программное обеспечение с открытым исходным кодом имеет корни еще в 1950-х годах, только в начале 1980-х годов программное обеспечение стало считаться защищенным авторским правом в Соединенных Штатах. Одним из результатов этого стало то, что многие поставщики, которые ранее поставляли исходный код как часть своих продуктов, перестали это делать. В 1980-х и 2000-х годах некоторые компании-разработчики ПО, такие как Microsoft, рассматривали программное обеспечение с открытым исходным кодом как своего рода экзистенциальную угрозу своему бизнесу, прежде чем принять его в 2010-х годах.

Сегодня Big Tech все больше способствует государственно-частному сотрудничеству в области безопасности программного обеспечения с открытым исходным кодом, до такой степени, что Белый дом провел саммит по его обеспечению безопасности в 2022 году, возможно, из-за широкомасштабной эксплуатации уязвимостей в программном обеспечении с открытым исходным кодом. В процессе написания этой статьи CISA объявила о публикации своей дорожной карты безопасности для программного обеспечения с открытым исходным кодом, подчеркивая как признание важности программного обеспечения с открытым исходным кодом в технологической экосистеме, так и их приверженность его обеспечению безопасности.

Компании, разрабатывающие закрытое программное обеспечение, также могут поручить кому-то обновление ПО в ответ на возникающие проблемы. Открытое ПО в целом в большей степени зависит от толпы добровольцев, которые вмешиваются и исправляют проблемы по мере их возникновения, — свойство, известное как Закон Линуса: «при достаточном количестве глаз все ошибки мелкие». Но поскольку добровольцев трудно собрать, их труднее заставить выполнять ежедневную рутину своевременного исправления ошибок — той части безопасности, которая не является гламурной — и обновления могут отставать. Однако это может меняться: программы вознаграждений за ошибки, предлагаемые Google, Huntr, — это способ монетизировать поиск и исправление уязвимостей в программном обеспечении с открытым исходным кодом.

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

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

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

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

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

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

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

Чтобы вы не думали, что у закрытого исходного кода лучший послужной список, даже самое широко используемое в мире закрытое программное обеспечение может содержать уязвимости годами, если не десятилетиями. Рассмотрим CVE-2019-0859. Обнаруженная Kaspersky Lab, это уязвимость использования после освобождения памяти (use-after-free), найденная в десятилетних версиях операционных систем Microsoft Windows, от Windows 7 до Windows 8, Windows 8.1, Windows 10 на стороне настольных компьютеров, а также в версиях Windows Server 2008 R2, 2012, 2012 R2, 2016 и 2019.

Дьявол кроется в деталях

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

В конечном счете все сводится к тому, насколько принимающая организация отзывчива к более широкому сообществу по безопасности. Например, ESET вносит значительный вклад в фреймворк MITRE ATT&CK® и предоставляет множество других инструментов безопасности, которые часто бесплатны или имеют открытый исходный код.

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

Читать полный анализ на WeLiveSecurity →