В опенсорсе меньше уязвимостей? Похоже, что да

cdkbgdmszq3_quzzukfrqvqfthg.jpeg

Безопасность через неясность работает в некоторых редких ситуациях: например, указать нестандартный порт SSH для защиты от брута или закамуфлировать критически важный объект, как сова на фотографии (см. приёмы обфускации кода). Да, есть такие экзотические методы. Но обычно наилучшую защиту обеспечивает максимальная открытость кода.

Чем меньше секретов в коде программы — тем безопаснее.

Насколько справедливо это парадоксальное утверждение? Посмотрим на статистику.
Статистика Project Zero за 2019–2021 годы говорит сама за себя. В таблице указаны 0day, то есть самые опасные уязвимости, найденные специалистами Project Zero:

*Apache, ASWF, Avast, AWS, c-ares, Canonical, F5, Facebook, git, Github, glibc, gnupg, gnutls, gstreamer, haproxy, Hashicorp, insidesecure, Intel, Kubernetes, libseccomp, libx264, Logmein, Node.js, opencontainers, QT, Qualcomm, RedHat, Reliance, SCTPLabs, Signal, systemd, Tencent, Tor, udisks, usrsctp, Vandyke, VietTel, webrtc, Zoom

Project Zero — это группа вайтхэтов, то есть этичных хакеров, которых спонсирует Google. Они ищут 0day-уязвимости во всех продуктах, после чего дают разработчикам стандартные 90 дней (+ещё 14) на закрытие уязвимости, прежде чем обнародовать её в открытом доступе.

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

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

Как видим, тезис о безопасности опенсорса имеет под собой основания. В опенсорсе действительно меньше уязвимостей, а каждую из них быстрее устраняют, чем в проприетарных системах вроде Windows, macOS и iOS.

К сожалению, в бочке мёда есть ложка дёгтя.


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

Посторонний человек может даже сделать вывод, что безопасность опенсорса — это какой-то миф. Дело в том, что тезис об абсолютной надёжности был неправильным изначально. Своей относительно высокой безопасностью Open Source заслужил слишком высокую репутацию, которая далека от реальности.

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

-ad-iosgbusvyiojznr5tzmygdy.png
Эшелонированная оборона

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


Больше всего уязвимостей находят в мобильных системах. При этом уязвимости в смартфонах закрываются медленнее всего.

Примечание. На первый взгляд кажется, что в iOS находят гораздо больше уязвимостей, чем в Android. На самом деле статистика сильно искажена из-за методики выпуска обновлений безопасности Apple, которая выпускает патчи для приложений iMessage, Facetime и Safari/WebKit в виде обновлений iOS. То есть уязвимости в отдельных приложениях записыаваются в статистику уязвимостей iOS.

В эту статистику попала и последний 0day для iOS, который эксплуатировался несколько лет и был закрыт только 13 сентября 2021 года в iOS 14.8 (CVE-2021–30860). В данном случае зловред устанавливается через скрытые сообщения iMessage незаметно для пользователей. Для взлома достаточно знать только телефонный номер жертвы и AppleID. Подробнее см. технический отчёт Project Zero.

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

Пользователи Android могут рутануть смарфон и поставить свободную прошивку LineageOS (продолжение известного проекта CyanogenMod), см. инструкцию на Хабре и дополнение к ней. Естественно, код прошивки LineageOS открыт для изучения.

Что ж, сторонники свободного ПО часто говорят, что открытый код безопаснее. Благодаря непрерывному аудиту в нём меньше закладок и опасных багов. Судя по статистике Project Zero, так оно и есть.

ffssur--_pf9pdldbqfkyufidpo.jpeg

© Habrahabr.ru