OpenSSL обходит проблему безопасности
Критической уязвимостью безопасности оказались две серьезные уязвимости. Тем не менее, им необходимо как можно скорее исправить ситуацию.
Поначалу казалось, что ошибка безопасности OpenSSL 3.x будет действительно ужасной. Хотя опасались, что это критическая ошибка, которая может привести к удаленному выполнению кода (RCE), при более внимательном рассмотрении она оказалась не такой уж и ужасной.
Это не значит, что это не плохо. Как CVE-2022-3786 («Переполнение буфера переменной длины адреса электронной почты X.509»), так и CVE-2022-3602 («Переполнение 4-байтового буфера адреса электронной почты X.509») имеют рейтинг CVE 8,8, что считается « высокий." Это означает, что они все равно могут причинить вам настоящие проблемы.
Если да, то вы используете OpenSSL версий от 3.0.0 до 3.0.6. Пользователям OpenSSL 1.1.1 и 1.0.2 не о чем беспокоиться. Однако не думайте, что вы можете игнорировать эти проблемы только потому, что ваша основная операционная система использует OpenSSL 1.x. Ваши приложения или контейнеры могут использовать уязвимую версию. Короче говоря, прежде чем снять обувь и вздремнуть, проверьте свой код.
В частности, вам нужно беспокоиться о переполнении буфера 3786, которое может быть вызвано при проверке сертификата X.509. Здесь злоумышленник может создать вредоносный адрес электронной почты, чтобы переполнить четыре байта в стеке, контролируемые злоумышленником. Это может привести к сбою системы или RCE.
В случае с 3602 вас беспокоит то, что в способе обработки OpenSSL сертификатов X.509 со специально созданным полем адреса электронной почты было обнаружено переполнение буфера стека. Опять же, это может привести к сбою или RCE.
Самый распространенный способ срабатывания любого из них — это когда сервер запрашивает аутентификацию клиента после подключения вредоносного клиента или когда клиент подключается к вредоносному серверу. На сегодняшний день успешных атак не было.
Брайан Фокс, соучредитель и технический директор Sonatype, компании, занимающейся безопасностью цепочек поставок программного обеспечения, отмечает: «Хотя ошибки переполнения памяти могут привести к наихудшим сценариям, детали этой конкретной уязвимости, похоже, указывают на то, что уровень сложности эксплойта очень высока. Для этой уязвимости требуется неверный сертификат, которому доверяют или который подписан органом по присвоению имен. Это означает, что органы власти должны иметь возможность быстро предотвратить создание сертификатов, предназначенных для этой уязвимости, что еще больше ограничивает область применения».
Почему это не было таким большим событием, как мы опасались поначалу? Уязвимости больше не считаются критическими, поскольку многие современные операционные системы не так уязвимы к своим конкретным дырам в безопасности.
Это связано с тем, что в некоторых дистрибутивах Linux, таких как Red Hat Enterprise Linux (RHEL), эксплуатируемый стек памяти перезаписывает только неиспользуемый соседний буфер. Кроме того, многие современные платформы реализуют защиту от переполнения стека. Ваша система все равно может выйти из строя, но маловероятно, что злоумышленник сможет осуществить RCE.
Но, как предупреждает OpenSSL, поскольку «OpenSSL распространяется в виде исходного кода, у нас нет возможности узнать, как каждая комбинация платформы и компилятора расположила буферы в стеке, и поэтому удаленное выполнение кода все еще может быть возможно на некоторых платформах».
Кроме того, хотя патч OpenSSL находится в исходной версии, это не означает, что в вашем дистрибутиве патч готов к использованию. Таким образом, вы не можете просто обновить программное обеспечение семейства Debian Linux с помощью...
$sudo apt-get обновление
$sudo apt-get обновление
...и будьте уверены, что вы будете в безопасности. Свяжитесь с вашим дистрибьютором Linux, чтобы убедиться, что патч OpenSSL 3.0.7 готов для вашей системы. Или вы всегда можете скачать и скомпилировать патч самостоятельно для своей системы.
Наконец, OpenSSL всегда рекомендует использовать последнюю версию (1.1.1s) и напоминает вам, что OpenSSL 1.1.1 поддерживается только до 11 сентября 2023 года. Пользователям более старых версий OpenSSL (например, 1.0.2) рекомендуется выполнить обновление до OpenSSL 3.0. . Имейте в виду, что выпуска OpenSSL 2 никогда не было. Если кто-то пытается заставить вас «обновиться» до OpenSSL 2, он нападает на вас.
Прежде чем исправлять и оставлять эту проблему позади, основатель Chainguard и Sigstore Дэн Лоренц хотел бы, чтобы вы помните, что даже если это оказалась критическая уязвимость OpenSSL, «это была всего лишь вторая за большую часть десятилетия. что код с открытым исходным кодом, по крайней мере, так же безопасен, как и проприетарный код с закрытым исходным кодом… Вместо того, чтобы обсуждать достоинства открытого исходного кода, нам следует вместо этого сосредоточиться на создании безопасного программного обеспечения, которое имеет инструменты, необходимые для более быстрого и беспрепятственного исправления ошибок путем рутирования. в безопасных по умолчанию мерах».