Исследователи компании Sternum, занимающейся безопасностью Интернета вещей вкопанный в популярная сетевая вилка для домашней автоматизации от известного бренда устройств Belkin.
Модель, на которую они смотрели, Умная мини-вилка Wemo (F7C063) срок годности, по-видимому, подходит к концу, но мы нашли их множество в продаже в Интернете, а также подробные советы и инструкции по их настройке на сайте Belkin.
Какими бы старыми (в краткосрочном современном смысле) они ни были, исследователи отметили, что:
Наш первоначальный интерес к устройству возник из-за того, что несколько из них лежали в нашей лаборатории и использовались у нас дома, поэтому мы просто хотели посмотреть, насколько безопасно (или нет) их использование. [… T]это довольно популярное потребительское устройство[; основываясь на этих цифрах, можно с уверенностью предположить, что общий объем продаж только на Amazon должен исчисляться сотнями тысяч.
Проще говоря, есть много людей, которые уже купили и подключили эти устройства и прямо сейчас используют их для управления электрическими розетками в своих домах.
Проще говоря, «умная вилка» — это розетка, которую вы вставляете в существующую стенную розетку и которая вставляет управляемый Wi-Fi переключатель между сетевой розеткой на передней панели настенной розетки и идентичной сетевой розеткой на перед умной розеткой. Думайте об этом как об адаптере питания, который вместо преобразования, скажем, круглой евророзетки в треугольную британскую розетку, преобразует, скажем, розетку США с ручным переключением в розетку США с электронным переключением, которой можно управлять удаленно через приложение или веб-интерфейс.
S в IoT…
Проблема со многими так называемыми устройствами Интернета вещей (IoT), как гласит старая шутка, заключается в том, что буква «S» в «IoT» означает безопасность…
…имеется в виду, конечно, что кибербезопасности часто не так много, как можно было бы ожидать, или даже вообще нет.
Как вы можете себе представить, небезопасное устройство домашней автоматизации, особенно такое, которое может позволить кому-то за пределами вашего дома или даже на другом конце света включать и выключать электроприборы по своему желанию, может привести к большому количеству неприятностей.
Мы уже писали о незащищенности IoT в широком спектре различных продуктов, от интернет-чайники (да, действительно), которые могут привести к утечке вашего домашнего пароля Wi-Fi на камеры безопасности, которые мошенники могут использовать, чтобы сохранить свои глаз на вас а не наоборот, на сетевые диски, рискуя получить забрызганы программами-вымогателями прямо через интернет.
В этом случае исследователи обнаружили дыру удаленного выполнения кода в Wemo Mini Smart Plug еще в январе 2023 года, сообщили об этом в феврале 2023 года и получили для нее номер CVE в марте 2023 года (CVE-2023-27217).
К сожалению, несмотря на то, что почти наверняка многие из этих устройств активно используются в реальном мире, Belkin, по-видимому, заявила, что считает, что устройство находится «в конце своего жизненного цикла» и что поэтому дыра в безопасности не будет исправлена.
(Мы не уверены, насколько приемлемым было бы такое увольнение «по окончании срока службы», если бы устройство имело дефект в электрической схеме 120 В переменного тока или 230 В переменного тока, например, возможность перегрева и выделения вредных химических веществ или установки в огне, но кажется, что сбои в низковольтной цифровой электронике или прошивке в устройстве можно игнорировать, даже если они могут привести к тому, что кибер-злоумышленник многократно включит и выключит сетевой выключатель в устройстве по своему желанию.)
Когда дружелюбные имена - твой враг
Проблема, которую обнаружили исследователи, была старой доброй переполнение стекового буфера в той части программного обеспечения устройства, которая позволяет изменять т.н. FriendlyName
устройства — текстовая строка, которая отображается при подключении к нему с помощью приложения на телефоне.
По умолчанию эти устройства запускаются с понятным именем в соответствии со строками Wemo mini XYZ
, Где XYZ
обозначает три шестнадцатеричных цифры, которые, как мы предполагаем, выбраны псевдослучайно.
Это означает, что даже если у вас есть два или три таких устройства, они почти наверняка будут начинаться с разных имен, чтобы вы могли легко их настроить.
Но вы, вероятно, захотите переименовать их позже, чтобы их было легче отличить друг от друга в будущем, назначив понятные имена, такие как TV power
, Laptop charger
и Raspberry Pi server
.
Программисты Belkin (или, точнее, программисты кода, который оказался в этих устройствах под маркой Belkin, которые могли поставлять программное обеспечение для смарт-разъемов и другим торговым маркам), по-видимому, зарезервировали 68 байт временного хранилища для отслеживания новое имя в процессе переименования.
Но они забыли проверить, что указанное вами имя поместится в этот 68-байтовый слот.
Вместо этого они предполагали, что вы будете использовать их официальное телефонное приложение для выполнения процесса переименования устройства, и, таким образом, они могут ограничить объем данных, отправляемых на устройство, в первую очередь, чтобы предотвратить любое переполнение буфера, которое в противном случае могло бы произойти. возникают.
По иронии судьбы, они позаботились не только о том, чтобы удержать вас в пределах 68 байт, необходимых для правильной работы самого устройства, но даже о том, чтобы ограничить ввод всего 30 символами.
Мы все знаем, почему позволить клиентской стороне выполнять проверку ошибок, а не проверять вместо этого (или, что еще лучше, также) на стороне сервера, — ужасная идея:
- Код клиента и код сервера могут не соответствовать друг другу. Будущие клиентские приложения могут решить, что 72-символьные имена будут хорошим вариантом, и начать отправлять на сервер больше данных, чем он может безопасно обработать. Будущие кодировщики на стороне сервера могут заметить, что никто никогда не использовал полные зарезервированные 68 байтов, и безоговорочно решить, что 24 должно быть более чем достаточно.
- Злоумышленник может не заморачиваться с приложением. Генерируя и передавая свои собственные запросы на устройство, они тривиально обходят любые проверки безопасности, которые полагаются только на приложение.
Исследователи быстро смогли попробовать использовать все более длинные имена до такой степени, что они могли по желанию вывести из строя устройство Wemo, переписав конец буфера памяти, зарезервированного для нового имени, и повреждая данные, хранящиеся в байтах, которые сразу же следовали.
Повреждение стека
К сожалению, в операционной системе, основанной на стеке, большая часть программного обеспечения заканчивает тем, что ее временные буферы памяти на основе стека расположены так, что за большинством этих буферов следует другой жизненно важный блок памяти, который сообщает программе, куда идти, когда она закончит что делать. это делается прямо сейчас.
Технически эти фрагменты данных «куда идти дальше» известны как обратные адреса, и они автоматически сохраняются, когда программа вызывает так называемую функцияили подпрограмма, представляющий собой фрагмент кода (например, «распечатать это сообщение» или «открыть диалоговое окно с предупреждением»), который вы хотите использовать в нескольких частях вашей программы.
Адрес возврата волшебным образом записывается в стек каждый раз, когда используется подпрограмма, так что компьютер может автоматически «раскрутить» свой путь, чтобы вернуться туда, откуда была вызвана подпрограмма, которая может меняться каждый раз при ее активации.
(Если бы подпрограмма имела фиксированный адрес возврата, вы могли бы вызвать ее только из одного места в вашей программе, что сделало бы бессмысленным в первую очередь упаковывать этот код в отдельную подпрограмму.)
Как вы можете себе представить, если вы наткнетесь на этот волшебный адрес возврата до того, как подпрограмма завершит работу, то, когда она закончит работу, она доверчиво, но неосознанно «расмотается» не туда, куда нужно.
Если немного (или, возможно, много) удачи, злоумышленник может заранее предсказать, как творчески растоптать обратный адрес и тем самым преднамеренно и злонамеренно направить программу по ложному пути.
Вместо простого сбоя программа, направленная по ложному пути, может быть обманом запущена для выполнения кода по выбору злоумышленника, что приведет к тому, что известно как удаленное выполнение кода эксплойт, или RCE.
Две общие защиты помогают защититься от эксплойтов такого рода:
- Рандомизация макета адресного пространства, также известная как ASLR. Операционная система намеренно загружает программы в немного разные области памяти каждый раз, когда они запускаются. Из-за этого злоумышленникам становится сложнее угадать, как перенаправить ошибочные программы таким образом, чтобы в конечном итоге получить и сохранить контроль, а не просто привести к сбою кода.
- Стек канареек, назван в честь птиц, которых шахтеры брали с собой под землю, потому что они падали в обморок в присутствии метана, таким образом обеспечивая жестокое, но эффективное раннее предупреждение о риске взрыва. Программа преднамеренно вставляет известный, но случайный блок данных непосредственно перед адресом возврата каждый раз, когда вызывается подпрограмма, так что переполнение буфера неизбежно и обнаруживаемым образом перезапишет «канарейку», прежде чем она переполнится достаточно далеко, чтобы растоптать по важнейшему обратному адресу.
Чтобы их эксплойт работал быстро и надежно, исследователям нужно было заставить плагин Wemo отключить ASLR, что удаленные злоумышленники не смогли бы сделать, но при большом количестве попыток в реальной жизни злоумышленникам все же может повезти, угадайте правильно. по адресам памяти, используемым программой, и все равно получить управление.
Но исследователям не нужно было беспокоиться о проблеме канареечного стека, потому что приложение с ошибками было скомпилировано из исходного кода с отключенной функцией «вставить инструкции по безопасности для проверки канареек».
(Программы, защищенные Canary, обычно немного больше и медленнее, чем незащищенные, из-за дополнительного кода, необходимого в каждой подпрограмме для проверки безопасности.)
Что делать?
- Если вы являетесь владельцем Wemo Smart Plug V2, убедитесь, что вы не настроили домашний маршрутизатор, чтобы разрешить доступ к устройству «снаружи» через Интернет. Это уменьшает то, что известно на жаргоне как ваш площадь атаки.
- Если у вас есть маршрутизатор, поддерживающий Universal Plug and Play, также известный как UPnP, убедитесь, что он выключен. UPnP, как известно, позволяет внутренним устройствам непреднамеренно открываться для посторонних.
- Если вы программист, избегайте отключения функций безопасности программного обеспечения (таких как защита стека или проверка канареек стека) только для того, чтобы сэкономить несколько байтов. Если вам действительно не хватает памяти, постарайтесь уменьшить занимаемую площадь, улучшив код или удалив функции, а не снижая безопасность, чтобы вы могли втиснуть больше.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- ПлатонАйСтрим. Анализ данных Web3. Расширение знаний. Доступ здесь.
- Чеканка будущего с Эдриенн Эшли. Доступ здесь.
- Покупайте и продавайте акции компаний PREIPO® с помощью PREIPO®. Доступ здесь.
- Источник: https://nakedsecurity.sophos.com/2023/05/16/belkin-wemo-smart-plug-v2-the-buffer-overflow-that-wont-be-patched/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 15%
- 2023
- 24
- 30
- a
- в состоянии
- О нас
- Absolute
- AC
- приемлемый
- Доступ
- через
- активный
- адрес
- адреса
- продвижение
- совет
- После
- против
- Все
- позволять
- позволяет
- в одиночестве
- вдоль
- уже
- Также
- Amazon
- количество
- an
- и
- Другой
- любой
- кроме
- приложение
- техника
- Программы
- МЫ
- около
- AS
- предполагается,
- At
- автор
- автоматический
- автоматически
- автоматизация
- избежать
- назад
- Фоновое изображение
- BE
- , так как:
- было
- до
- Лучшая
- между
- больший
- птицы
- Немного
- Заблокировать
- граница
- Дно
- купил
- марка
- буфер
- переполнение буфера
- но
- by
- призывают
- под названием
- Объявления
- пришел
- камеры
- CAN
- заботится
- случаев
- Причинение
- Центр
- конечно
- изменение
- символы
- проверка
- контроль
- Проверки
- химических веществ
- выбор
- Выберите
- выбранный
- клиент
- тесно
- код
- цвет
- Общий
- Компания
- компьютер
- Свяжитесь
- считает
- потребитель
- контроль
- контроль
- преобразование
- может
- курс
- чехол для варгана
- Crash
- Грохот
- Творчески
- Крюки
- CVE
- Информационная безопасность
- данным
- решать
- По умолчанию
- подробный
- устройство
- Устройства
- различный
- Интернет
- цифры
- уменьшающийся
- непосредственно
- открытый
- Дисплей
- do
- приносит
- дело
- в течение
- Рано
- легче
- легко
- легко
- Эффективный
- Electronics
- конец
- окончания поездки
- достаточно
- ошибка
- особенно
- оценка
- Евро
- Даже
- НИКОГДА
- Каждая
- пример
- выполнение
- существующий
- ожидать
- Эксплуатировать
- использует
- взрыв
- дополнительно
- далеко
- неисправности
- Особенность
- Особенности
- февраль
- несколько
- окончание
- Для пожарных
- First
- соответствовать
- фиксированной
- мигающий
- недостаток
- следует
- след
- Что касается
- Форс-мажор
- найденный
- дружественный
- от
- передний
- полный
- будущее
- порождающий
- получить
- получающий
- Go
- идет
- хорошо
- большой
- было
- обрабатывать
- Есть
- имеющий
- высота
- помощь
- Отверстие
- Главная
- Home Automation
- Дома
- Вилла / Бунгало
- зависать
- Как
- How To
- HTTPS
- Сотни
- идея
- if
- картина
- немедленно
- улучшение
- in
- начальный
- небезопасный
- нестабильность
- Вставки
- вместо
- инструкции
- интерес
- Интерфейс
- в нашей внутренней среде,
- Интернет
- Интернет вещей
- в
- КАТО
- IT
- ЕГО
- саму трезвость
- январь
- жаргон
- всего
- Сохранить
- Знать
- известный
- лаборатория
- новее
- Планировка
- вести
- утечка
- оставил
- письмо
- позволяя
- ЖИЗНЬЮ
- такое как
- ОГРАНИЧЕНИЯ
- линий
- грузы
- места
- посмотреть
- смотрел
- серия
- удачи
- магия
- сделать
- ДЕЛАЕТ
- многих
- Март
- Маржа
- макс-ширина
- означает
- Память
- просто
- метан
- может быть
- Шахтеры
- модель
- Модерн
- БОЛЕЕ
- самых
- много
- имя
- Названный
- имена
- Необходимость
- необходимый
- Тем не менее
- Новые
- хороший
- нет
- "обычные"
- отметил,
- Уведомление..
- сейчас
- номер
- номера
- of
- от
- Официальный представитель в Грузии
- .
- Старый
- on
- ONE
- те,
- онлайн
- только
- открытый
- операционный
- операционная система
- Опция
- or
- заказ
- Другие контрактные услуги
- в противном случае
- наши
- внешний
- Магазины
- внешнюю
- за
- собственный
- владелец
- коробок
- часть
- части
- Пароль
- путь
- Пол
- Люди
- выполнять
- возможно
- Телефон
- приложение для телефона
- Часть
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Играть
- Много
- штекер
- подключи и играй
- Сменная
- Точка
- Популярное
- должность
- возможность
- Блог
- мощностью
- Точно
- предсказывать
- присутствие
- довольно
- вероятно
- Проблема
- процесс
- Продукция
- FitPartner™
- Программист
- Программисты
- Программы
- должным образом
- для защиты
- защиту
- обеспечение
- положил
- быстро
- ассортимент
- скорее
- реальные
- реальная жизнь
- реальный мир
- на самом деле
- получила
- записанный
- уменьшить
- снижает
- полагаться
- удаленные
- удаление
- НЕОДНОКРАТНО
- Сообщается
- Запросы
- обязательный
- исследователи
- зарезервированный
- ограничивать
- возвращают
- правую
- Снижение
- год
- маршрутизатор
- Run
- Бег
- s
- безопасный
- безопасно
- Сохранность
- Сказал
- sale
- главная
- Сохранить
- сообщили
- безопасность
- посмотреть
- казалось
- кажется
- отправка
- смысл
- послать
- отдельный
- набор
- установка
- несколько
- полка
- краткосрочный
- должен
- сторона
- просто
- сайте
- немного отличается
- умный
- So
- Software
- твердый
- Кто-то
- Источник
- исходный код
- Space
- стек
- стоит
- Начало
- диск
- хранить
- строка
- такие
- поставляется
- Поддержка
- Поверхность
- SVG
- Коммутатор
- система
- взять
- сказать
- говорит
- временный
- чем
- который
- Ассоциация
- мир
- их
- Их
- тогда
- Там.
- тем самым
- следовательно
- Эти
- они
- вещи
- think
- этой
- хоть?
- тысячи
- три
- время
- в
- слишком
- приняли
- топ
- Всего
- к
- трек
- переход
- прозрачный
- беда
- стараться
- ОЧЕРЕДЬ
- Оказалось
- Поворот
- два
- типично
- Uk
- В конечном счете
- Universal
- URL
- us
- использование
- используемый
- через
- с помощью
- жизненный
- стена
- хотеть
- стремятся
- предупреждение
- законопроект
- Путь..
- we
- ЧТО Ж
- известный
- были
- Что
- когда
- который
- КТО
- зачем
- Wi-Fi
- широкий
- Широкий диапазон
- будете
- Работа
- Мир
- беспокоиться
- бы
- письмо
- письменный
- Неправильно
- Да
- еще
- являетесь
- ВАШЕ
- зефирнет