Skip to content

Смотреть мир по-русски

Переведи английское сообщение для русских

Menu
Menu

OpenSSL дал всем тревожную усталость

Posted on 02/11/2022

изображение героя Изображение создано Waifu Diffusion v1.3 (float16) — 1girl, кимоно, скрещивание животных, клаксон, громкие звуки, подавляющее, красное небо, облака, буря, длинные волосы, фиолетовые волосы, желтые глаза, лисьи уши, толстые очертания, чернила контуры, черные контуры

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

Дополнительные сведения о CVE-2022-3786 и CVE-2022-3602 см. в публикации команды OpenSSL под названием CVE-2022-3786 и CVE-2022-3602: переполнение буфера адресов электронной почты X.509 .

Мара хакер
< Mara > tl;dr. Уязвимость представляет собой комбинацию двух сил сложности, сходящихся таким образом, которого никто не ожидал: форматы X.509 для цифровых сертификатов и Punycode , стандарт кодирования для помещения символов, непредставимых в DNS, в DNS (таких как我很伤心.example кодируется в xn--hpq721bdf90g.example ). Это работает и в адресах электронной почты. Проблема заключалась в том, что если вы указали неправильный адрес электронной почты в сертификате TLS, это могло привести к удаленному выполнению кода из-за переполнения буфера на некоторых платформах. К счастью, это определение «некоторых платформ» не включает Ubuntu на процессорах amd64.

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

Для получения дополнительной информации об этом см. эту статью , в которой объясняется, как работает эта атака, как вы можете воспроизвести ее дома с помощью уязвимой версии OpenSSL и, наконец, почему это не является практической проблемой. Если бы какая-либо организация захотела использовать это, это почти наверняка привело бы к тому, что сертификат был бы замечен в журналах прозрачности сертификатов, а затем потенциально была бы поставлена ​​под вопрос способность всего центра сертификации выдавать сертификаты. Это, вероятно, приведет к тому, что центру сертификации не будет разрешено выдавать сертификаты до тех пор, пока ситуации, которые позволили этому органу выдавать сертификаты, не будут исправлены и не оценены независимо.

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

Нума удален
< Numa > Да, mTLS не существует, требует использования настраиваемых центров сертификации и, безусловно , был бы отличным способом использовать эту уязвимость, чтобы не допустить ничего хорошего. У нас вообще нет ничего подобного.
Мара хм
< Мара > О, это может быть очень плохо . О боже, это может быть так плохо.

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

Кейди злится
< Cadey > Технически это соответствует определению «CRITICAL» в определениях OpenSSL . Теоретически это может привести к произвольному выполнению кода, контролируемого злоумышленником, но на практике для большинства пользователей этого не произойдет.

Почему я расстроен

Есть две большие вещи, которые расстраивают меня в этой паре уязвимостей.

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

Однако на каком-то уровне это кажется немного непростительным. Ubuntu и CentOS являются одними из крупнейших пользователей OpenSSL. Люди, работающие в Canonical и Red Hat, вносят свой вклад в OpenSSL. Я чувствую, что они должны иметь некоторое представление о том, что делают наиболее распространенные среды. Конечно, они не смогут помешать какому-нибудь встроенному устройству в Палау передать ACE указатель с адреса электронной почты в сертификате, но я очень надеюсь, что Ubuntu и CentOS — это цели, о которых они действительно заботятся и проверяют их. .

Второе, что меня беспокоит, это то, что, кажется, сегодня, 1 ноября 2022 года, ошибка была понижена с «КРИТИЧЕСКОЙ» до «ВЫСОКОЙ» . Чтобы дать команде OpenSSL максимально возможную пользу от сомнений, это несколько разумно. По мере того, как они продолжали копаться в вещах и исследовать, насколько уязвимы люди, они поняли, что их первоначальная оценка проблемы была неверной. Это означает, что люди, которые говорили, что это очень плохо, точно сообщали о том, что они понимали в то время. На каком-то уровне именно так работает научный процесс: у вас есть гипотеза, вы ее проверяете, сообщаете о результатах. Это просто расстраивает, что это заняло так много времени, чтобы понизить его. Я был готов к критической уязвимости, и я уверен, что другие люди тоже.

Я беспокоюсь, что это будет рассматриваться как причина не воспринимать «КРИТИЧЕСКИЕ» раскрытия информации всерьез, как мы должны . «КРИТИЧЕСКАЯ» ошибка ДОЛЖНА рассматриваться как критическая. С точки зрения общественного здравоохранения, людям сказали, что что-то действительно плохое вот-вот выйдет в течение недели, а затем из-под них вытащили ковер, и теперь это «нет, мы были неправы, вы, вероятно, в порядке».

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

Оказывается, рекомендации OpenSSL были более разрушительными, чем сама уязвимость.

— дкп (@tweetdkp) 1 ноября 2022 г.

В NixOS включена защита стека, поэтому она никогда не была уязвима для этой проблемы. Моя статья , в которой говорилось, что нужно перекомпилировать nginx с OpenSSL 1.x, была не нужна. Тем не менее, это был классный способ продемонстрировать overrides в nixpkgs, поэтому я все равно буду считать это победой.

Зона горячего дубля™️

Возможно, нам нужно перестать писать новый критический с точки зрения безопасности код на C. Вот полное содержимое одного из патчей, исправляющих CVE-2011-3602 :

 --- a/crypto/punycode.c +++ b/crypto/punycode.c @@ -181,7 +181,7 @@ int ossl_punycode_decode(const char *pEncoded, const size_t enc_len, n = n + i / (written_out + 1); i %= (written_out + 1);  - if (written_out > max_out) + if (written_out >= max_out) return 0;   memmove(pDecoded + i + 1, pDecoded + i,

Для тех из вас, кто плохо знает C, вот моя попытка объяснить, что происходит. Это функция, которая декодирует текст punycode в соответствующий текст Unicode. Одна из вещей, которые он делает, — это копирование данных из входного буфера, их декодирование и помещение результатов в выходной буфер. Этот оператор if здесь, чтобы предотвратить переполнение буфера и то, что будет дальше. Если это «что будет дальше» находится в стеке, то значение потенциально может переполниться, и тогда это значение станет адресом возврата для вызова этой функции.

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

Возможно, нам как отрасли нужно более серьезно относиться к формальным проверкам, безопасности памяти и связанным с ними вещам. Возможно, добавление Rust в ядро ​​Linux — это хорошо. Rust также был недавно добавлен в ядро ​​Windows, и никто не заметил его присутствия.

Кэйди это кофе
< Cadey > Или, по крайней мере, мы можем работать над уменьшением нашей зависимости от C для критически важной для безопасности инфраструктуры, такой как управление сеансами TLS с помощью таких вещей, как rustls или использование crypto/ tls Go.
Нума удален
< Numa > Но если мы напишем что-то на Rust, то это не будет работать на моем кластере Alpha VAX, полном машин OpenVMS, на котором выполняется логика для безопасного кластера серверов Gopher!

Кэйди это кофе

аватарка для Кейди
Ксе @cadey
M11 01 2022 21:36 (UTC)

Ссылка на сайт
  • A learning a day
  • A Smart Bear
  • AddyOsmani.com
  • AddyOsmani.com (AddyOsmani.com)
  • Adwyat Krishna
  • Alex Turek
  • All That is Solid
  • André Staltz
  • Ars Technica
  • arxivblog (arxivblog)
  • Atoms vs Bits
  • AVC
  • Basic Apple Guy
  • Ben Thompson
  • Benedict Evans
  • Blog – storytelling with data
  • Bob Nystrom
  • Built For Mars
  • Caleb Porzio
  • Christian Heilmann
  • Christopher C
  • Chun Tian (binghe)
  • Codrops
  • Cold Takes
  • Daily Infographic
  • Dan Luu
  • Daniel Lemire's blog
  • David Amos
  • David Perell
  • David Walsh Blog
  • Derek Sivers
  • Desvl
  • Devon's Site
  • Digital Inspiration
  • DKB Blog
  • dropsafe
  • DSHR
  • Dunk
  • DYNOMIGHT
  • eagereyes
  • Endless Metrics
  • Engadget
  • Engadget (Engadget)
  • Entitled Opinions
  • Exception Not Found
  • Experimental History
  • Farnam Street
  • Fed Guy
  • Felix Krause
  • Florent Crivello
  • FlowingData
  • FlowingData (FlowingData)
  • Free Mind
  • Full Stack Economics
  • Funny JS
  • Future A16Z
  • GeekWire (GeekWire)
  • Glassnode Insights
  • Hacker News Daily
  • Harvard Health
  • Human Who Codes
  • Hunter Walk
  • Infographics – Cool Infographics
  • Information is Beautiful
  • Irrational Exuberance
  • Jacob Kaplan-Moss
  • Jakob Greenfeld
  • James Sinclair
  • Jason Fried
  • Jeff Kaufman
  • Joel on Software
  • John Resig
  • John's internet house
  • Johnny Rodgers
  • Julia Evans
  • Julian.com
  • Kevin Cox
  • Kevin Norman
  • KK – Cool Tools
  • KK – Recomendo
  • KK – The Technium
  • Krishna
  • Laurence Gellert's Blog
  • Lee Robinson
  • Lines and Colors
  • Lyn Alden – Investment Strategy
  • Martin Fowler
  • Matt Might's blog
  • Mobilism Forums
  • More To That
  • Morgan Housel
  • My Super Secret Diary
  • NASA Astronomy Picture
  • Neckar's New Money
  • News Letter
  • Nick Whitaker
  • Nicky's New Shtuff
  • nutcroft
  • Paul Graham
  • Paul Graham: Essays
  • Penguin Random House
  • Philip Walton
  • Phoenix's island
  • Product Hunt
  • Prof Galloway
  • Psyche
  • Python Weekly
  • Quanta Magazine
  • Rachel
  • Real Life
  • Riccardo Mori
  • Sasha
  • Science & technology
  • Science current issue
  • Scott Hanselman's Blog
  • Sébastien Dubois
  • Secretum Secretorum
  • Seth's Blog
  • Shu Ding
  • Sidebar
  • SignalFire
  • SignalFire (SignalFire)
  • Simon Willison's Weblog
  • Simons Foundation
  • Singularity HUB
  • SLIME MOLD TIME MOLD
  • Slyar Home
  • Spencer Greenberg
  • Stay SaaSy
  • Stephen Malina
  • Strange Loop Canon
  • Stratechery
  • Tech Notes
  • TechCrunch
  • TechCrunch (TechCrunch)
  • The Commonplace
  • The Intrinsic Perspective
  • The Latest in Hearing Health | HeardThat
  • The Rabbit Hole
  • The Verge
  • TLDR Newsletter
  • Tom's blog
  • Tomasz Tunguz
  • Troy Hunt
  • Tychlog
  • Uncharted Territories
  • Visual Capitalist
  • Visual.ly (Visual.ly)
  • Visualising Data
  • Vitalik Buterin
  • Weichen Liu
  • What's New
  • Works in Progress
  • Workspaces
  • Writing
  • Xe's Blog
  • xkcd.com
  • xkcd.com (xkcd.com)
  • Yihui Xie
  • Zoran Jambor
  • АВК (AVC)
  • Адвиат Кришна (Adwyat Krishna)
  • Арс Техника (Ars Technica)
  • Астральный кодекс десять (Astral Codex Ten)
  • Астрономическая фотография НАСА (NASA Astronomy Picture)
  • Атлантический океан (The Atlantic)
  • безопасный (dropsafe)
  • Бенедикт Эванс (Benedict Evans)
  • Бесконечные показатели (Endless Metrics)
  • Билл Гейтс (Bill Gates)
  • Блог — сторителлинг с данными (Blog – storytelling with data)
  • Блог | Хранитель (Datablog | The Guardian)
  • Блог ДКБ (DKB Blog)
  • Блог Дэвида Уолша (David Walsh Blog)
  • Блог Дэниела Лемира (Daniel Lemire's blog)
  • Блокчейн (BlockChain)
  • Боковая панель (Sidebar)
  • Бретт Винтон (Brett Winton)
  • Будущее A16Z (Future A16Z)
  • Вайхен Лю (Weichen Liu)
  • Визуализация данных (Visualising Data)
  • Визуальный капиталист (Visual Capitalist)
  • Виталик Бутерин (Vitalik Buterin)
  • Внутренняя перспектива (The Intrinsic Perspective)
  • Все
  • Гарвардское здоровье (Harvard Health)
  • Грань (The Verge)
  • Дерек Сиверс (Derek Sivers)
  • Джейсон Фрайд (Jason Fried)
  • Джефф Кауфман (Jeff Kaufman)
  • Джулия Эванс (Julia Evans)
  • ДИНАМАЙТ (DYNOMIGHT)
  • Дуглас Вагетти (Douglas Vaghetti)
  • Дэвид Амос (David Amos)
  • Ежедневная инфографика (Daily Infographic)
  • Ежедневные новости хакеров (Hacker News Daily)
  • Еженедельник Питона (Python Weekly)
  • Журнал "Уолл Стрит (The Wall Street Journal)
  • Журнал Кванта (Quanta Magazine)
  • Записка Безумного Неда (The Mad Ned Memo)
  • Зоран Джамбор (Zoran Jambor)
  • Илон Маск (Elon Musk)
  • Интернет-дом Джона (John's internet house)
  • Инфографика – Классная инфографика (Infographics – Cool Infographics)
  • Информационный бюллетень TLDR (TLDR Newsletter)
  • Информация прекрасна (Information is Beautiful)
  • Иррациональное Изобилие (Irrational Exuberance)
  • Исключение не найдено (Exception Not Found)
  • Используйте (Make Use Of)
  • Ихуи Се (Yihui Xie)
  • Канал Дурова (Durov's Channel)
  • Кевин Кокс (Kevin Cox)
  • КК – крутые инструменты (KK – Cool Tools)
  • КК – Рекомендую (KK – Recomendo)
  • КК – Техниум (KK – The Technium)
  • Колоссальный (Colossal)
  • Кристиан Хайльманн (Christian Heilmann)
  • Кришна (Krishna)
  • Кроличья нора (The Rabbit Hole)
  • Кэти Вуд (Cathie Wood)
  • Лин Олден – Инвестиционная стратегия (Lyn Alden – Investment Strategy)
  • Линии и цвета (Lines and Colors)
  • Марк Гурман (Mark Gurman)
  • Мозговые выборки (Brain Pickings)
  • Мой супер секретный дневник (My Super Secret Diary)
  • Морган Хаузел (Morgan Housel)
  • Морской (Naval)
  • Наткрофт (nutcroft)
  • Наука &amp;amp;amp;amp;amp;amp; технологии (Science & technology)
  • Неизведанные территории (Uncharted Territories)
  • нетерпеливые глаза (eagereyes)
  • Никаких классификаций
  • Новостная рассылка (News Letter)
  • Новые деньги Неккара (Neckar's New Money)
  • Обучение в день (A learning a day)
  • Обыденность (The Commonplace)
  • Обычный яблочный парень (Basic Apple Guy)
  • Охотничья прогулка (Hunter Walk)
  • Параг Агравал (Parag Agrawal)
  • Перевод из твиттера
  • Подробнее об этом (More To That)
  • Поиск продукта (Product Hunt)
  • Полная экономика стека (Full Stack Economics)
  • Практичный разработчик (The Practical Developer)
  • Проф Галлоуэй (Prof Galloway)
  • Психея (Psyche)
  • Рабочие области (Workspaces)
  • Рабочие пространства (Workspaces)
  • Реальная жизнь (Real Life)
  • Риккардо Мори (Riccardo Mori)
  • Рэй Далио (Ray Dalio)
  • Рэйчел (Rachel)
  • Саша (Sasha)
  • Себастьен Дюбуа (Sébastien Dubois)
  • СЛАЙМ ПЛЕСЕНИ ВРЕМЯ ПЛЕСЕНИ (SLIME MOLD TIME MOLD)
  • Статистика стеклянных узлов (Glassnode Insights)
  • Стеф Смит (Steph Smith)
  • Стратехия (Stratechery)
  • Текущий выпуск науки (Science current issue)
  • Тим Кук (Tim Cook)
  • Томаш Тунгуз (Tomasz Tunguz)
  • Трой Хант (Troy Hunt)
  • Фонд Саймонса (Simons Foundation)
  • ХАБ Сингулярности (Singularity HUB)
  • Хакер Новости (Hacker News)
  • Хакер полдень (Hacker Noon)
  • Холодные приемы (Cold Takes)
  • Цифровое вдохновение (Digital Inspiration)
  • Что нового (What's New)
  • что твердо (All That is Solid)
  • Экономика полного стека (Full Stack Economics)
  • Экономист (The Economist)
  • Энономист (Enonomist)
  • Энономист Печать (Enonomist Print)
  • Якоб Гринфельд (Jakob Greenfeld)

твиттер

На вашем сайте нет Метки, поэтому здесь нечего показывать.

  • Февраль 2023
  • Январь 2023
  • Декабрь 2022
  • Ноябрь 2022
  • Октябрь 2022
  • Сентябрь 2022
  • Август 2022
  • Июль 2022
  • Июнь 2022
  • Май 2022
  • Апрель 2022
  • Март 2022
©2023 Смотреть мир по-русски | Design: Newspaperly WordPress Theme