Дослідники компанії з безпеки Інтернету речей Sternum вкопаний популярна розетка домашньої автоматизації від відомого бренду пристроїв Belkin.
Модель, на яку вони дивилися, Wemo Mini Smart Plug (F7C063) Очевидно, термін придатності добігає кінця, але ми знайшли багато їх у продажу в Інтернеті, а також докладні поради та інструкції на сайті Belkin щодо їх налаштування.
Незважаючи на те, що вони старі (у короткостроковому сучасному розумінні), дослідники відзначили, що:
Наш початковий інтерес до пристрою виник через те, що кілька таких пристроїв лежали в нашій лабораторії та використовувалися вдома, тож ми просто хотіли побачити, наскільки безпечно (чи ні) їх використовувати. [… T]здається, це досить популярний споживчий пристрій[; b] ґрунтуючись на цих цифрах, можна з упевненістю підрахувати, що загальний обсяг продажів тільки на Amazon має обчислюватися сотнями тисяч.
Простіше кажучи, є багато людей, які вже купили та підключили ці пристрої, і зараз використовують їх для керування електричними розетками у своїх домівках.
«Розумна вилка», простіше кажучи, — це розетка, яку ви підключаєте до існуючої настінної розетки та яка встановлює керований Wi-Fi перемикач між розеткою на передній частині розетки та аналогічною на вигляд розеткою на стіні. передню частину смарт-вилки. Подумайте про це як про адаптер живлення, який замість, скажімо, круглої євророзетки у трикутну британську, перетворює, скажімо, американську розетку з ручним перемиканням на американську розетку з електронною комутацією, якою можна дистанційно керувати за допомогою програми або веб-інтерфейс.
S в IoT…
Проблема багатьох так званих пристроїв Інтернету речей (IoT), як говориться в старому жарті, полягає в тому, що буква «S» у «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, переписавши кінець буфера пам’яті, зарезервованого для нового імені, і пошкодивши дані, що зберігаються в байтах, які відразу йдуть за ним.
Пошкодження стека
На жаль, у стековій операційній системі більшість програмного забезпечення закінчується тим, що буфери тимчасової пам’яті на основі стеку розташовані так, що за більшістю цих буферів слідує ще один життєво важливий блок пам’яті, який повідомляє програмі, куди йти, коли вона закінчить, що це робиться прямо зараз.
Технічно ці фрагменти даних «куди йти далі» називаються зворотні адреси, і вони автоматично зберігаються, коли програма викликає те, що відомо як a функціяабо підпрограма, який є фрагментом коду (наприклад, «надрукувати це повідомлення» або «вивести діалогове вікно з попередженням»), який ви хочете використовувати в кількох частинах вашої програми.
Адреса повернення чарівним чином записується в стек кожного разу, коли підпрограма використовується, щоб комп’ютер міг автоматично «відмотати» свій шлях, щоб повернутися до місця виклику підпрограми, який може бути іншим щоразу, коли її активовано.
(Якби підпрограма мала фіксовану адресу повернення, ви могли б викликати її лише з одного місця вашої програми, що зробило б безглуздим турбуватися про упаковку цього коду в окрему підпрограму.)
Як ви можете собі уявити, якщо ви потоптаєте цю магічну адресу повернення до того, як підпрограма завершить роботу, тоді, коли вона закінчить роботу, вона довірливо, але неусвідомлено «відкрутиться» не в тому місці.
Якщо трохи (або, можливо, багато) пощастить, зловмисник зможе заздалегідь передбачити, як творчо потоптати зворотню адресу, і таким чином неправильно спрямувати програму навмисно та зловмисно.
Замість простого збою, неправильно спрямовану програму можна обманом змусити запустити код за вибором зловмисника, таким чином спричинивши те, що називається віддалене виконання коду експлойт, або RCE.
Дві поширені засоби захисту допомагають захиститися від експлойтів такого роду:
- Рандомізація макета адресного простору, також відома як ASLR. Операційна система навмисно завантажує програми в дещо інші місця пам’яті під час кожного їх запуску. Через це зловмисникам важче здогадатися, як неправильно скеровувати програми з помилками таким чином, щоб зрештою отримати та зберегти контроль, а не просто руйнувати код.
- Стек канарок, названий на честь птахів, яких шахтарі брали з собою під землю, оскільки вони втрачали свідомість у присутності метану, забезпечуючи таким чином жорстоке, але ефективне раннє попередження про ризик вибуху. Програма навмисно вставляє відомий, але випадковий блок даних безпосередньо перед адресою повернення кожного разу, коли викликається підпрограма, так що переповнення буфера неминуче й помітно перезапише «канарку» першою, перш ніж вона переповнить достатньо далеко, щоб розтоптати на дуже важливу зворотну адресу.
Щоб змусити свій експлойт працювати швидко та надійно, дослідникам потрібно було змусити штекер Wemo вимкнути ASLR, чого віддалені зловмисники не змогли б зробити, але з великою кількістю спроб у реальному житті зловмисникам все одно може пощастити, вгадати правильно за адресами пам’яті, які використовуються програмою, і в будь-якому випадку отримати контроль.
Але дослідникам не потрібно було хвилюватися про проблему зі стеком, оскільки програму з помилками було скомпільовано з вихідного коду з вимкненою функцією «вставити інструкції з перевірки канарки».
(Програми, захищені Canary, зазвичай трохи більші та повільніші, ніж незахищені, через додатковий код, необхідний у кожній підпрограмі для перевірки безпеки.)
Що ж робити?
- Якщо ви власник Wemo Smart Plug V2, переконайтеся, що ви не налаштували свій домашній маршрутизатор, щоб дозволити доступ до пристрою «зовні», через Інтернет. Це зменшує те, що на жаргоні називається вашим площа поверхні атаки.
- Якщо у вас є маршрутизатор із підтримкою Universal Plug and Play, також відомий як UPnP, переконайтеся, що його вимкнено. UPnP, як відомо, дозволяє ненавмисно відкрити внутрішні пристрої для сторонніх.
- Якщо ви програміст, уникайте вимикання функцій безпеки програмного забезпечення (таких як захист стека або перевірка стека), щоб заощадити кілька байтів. Якщо вам справді не вистачає пам’яті, постарайтеся зменшити обсяг пам’яті, покращивши свій код або видаливши функції, а не зменшивши безпеку, щоб можна було запхати більше.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою 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
- Здатний
- МЕНЮ
- абсолют
- AC
- прийнятний
- доступний
- через
- активний
- адреса
- адреси
- просування
- рада
- після
- проти
- ВСІ
- дозволяти
- дозволяє
- тільки
- по
- вже
- Також
- Amazon
- кількість
- an
- та
- Інший
- будь-який
- крім
- додаток
- техніка
- додатка
- ЕСТЬ
- навколо
- AS
- передбачається
- At
- автор
- автоматичний
- автоматично
- Автоматизація
- уникнути
- назад
- фонове зображення
- BE
- оскільки
- було
- перед тим
- Краще
- між
- більший
- Птахи
- Біт
- Блокувати
- border
- дно
- куплений
- марка
- буфера
- переповнення буфера
- але
- by
- call
- званий
- Виклики
- прийшов
- камери
- CAN
- який
- випадок
- викликаючи
- Центр
- звичайно
- зміна
- символи
- перевірка
- контроль
- Перевірки
- хімікалії
- вибір
- Вибирати
- вибраний
- клієнт
- тісно
- код
- color
- загальний
- компанія
- комп'ютер
- З'єднуватися
- вважає
- споживач
- контроль
- контроль
- перетворення
- може
- курс
- обкладинка
- Крах
- Гуркіт
- Творчо
- Круки
- cve
- Кібербезпека
- дані
- вирішувати
- дефолт
- докладно
- пристрій
- прилади
- різний
- цифровий
- цифр
- зменшується
- безпосередньо
- відкритий
- дисплей
- do
- робить
- справи
- під час
- Рано
- легше
- легко
- легко
- Ефективний
- електроніка
- кінець
- закінчується
- досить
- помилка
- особливо
- оцінити
- євро
- Навіть
- НІКОЛИ
- Кожен
- приклад
- виконання
- існуючий
- очікувати
- Експлуатувати
- подвигів
- вибух
- додатково
- далеко
- недоліки
- особливість
- риси
- лютого
- кілька
- закінчення
- Пожежа
- Перший
- відповідати
- фіксованою
- миготливий
- недолік
- потім
- Слід
- для
- Примусово
- знайдений
- дружній
- від
- перед
- Повний
- майбутнє
- породжує
- отримати
- отримання
- Go
- йде
- добре
- великий
- було
- обробляти
- Мати
- має
- голова
- висота
- допомога
- Hole
- Головна
- Головна Автоматизація
- Будинку
- будинок
- hover
- Як
- How To
- HTTPS
- Сотні
- ідея
- if
- картина
- негайно
- поліпшення
- in
- початковий
- небезпечно
- небезпека
- Вставки
- замість
- інструкції
- інтерес
- інтерфейс
- внутрішній
- інтернет
- Інтернет речей
- в
- КАТО
- IT
- ЙОГО
- сам
- січня
- жаргон
- просто
- тримати
- Знати
- відомий
- lab
- пізніше
- макет
- вести
- витік
- залишити
- лист
- здавати
- життя
- як
- МЕЖА
- ліній
- вантажі
- місць
- подивитися
- подивився
- серія
- удача
- магія
- зробити
- РОБОТИ
- багато
- березня
- Маржа
- макс-ширина
- засоби
- пам'ять
- просто
- метан
- може бути
- шахтарі
- модель
- сучасний
- більше
- найбільш
- багато
- ім'я
- Названий
- Імена
- Необхідність
- необхідний
- проте
- Нові
- приємно
- немає
- нормальний
- зазначив,
- Зверніть увагу..
- зараз
- номер
- номера
- of
- від
- офіційний
- часто
- Старий
- on
- ONE
- ті,
- онлайн
- тільки
- відкритий
- операційний
- операційна система
- варіант
- or
- порядок
- Інше
- інакше
- наші
- з
- Розетки
- поза
- над
- власний
- власник
- упаковка
- частина
- частини
- Пароль
- шлях
- Пол
- Люди
- виконувати
- може бути
- телефон
- додаток для телефону
- місце
- plato
- Інформація про дані Платона
- PlatoData
- Play
- Plenty
- штекер
- підключи і грай
- Підключено
- точка
- популярний
- положення
- можливість
- Пости
- влада
- точно
- передбачати
- наявність
- досить
- ймовірно
- Проблема
- процес
- Продукти
- програма
- Програміст
- Програмісти
- програми
- правильно
- захист
- захист
- забезпечення
- put
- швидко
- діапазон
- швидше
- реальний
- справжнє життя
- Реальний світ
- насправді
- отримано
- записаний
- зменшити
- знижує
- покладатися
- віддалений
- видалення
- ПОВТОРНО
- Повідомляється
- запитів
- вимагається
- Дослідники
- захищені
- обмежити
- повертати
- право
- Risk
- круглий
- маршрутизатор
- прогін
- біг
- s
- сейф
- безпечно
- Безпека
- Зазначений
- sale
- продажів
- зберегти
- say
- безпеку
- побачити
- здавалося
- Здається,
- відправка
- сенс
- посланий
- окремий
- комплект
- установка
- кілька
- Полиця
- короткий термін
- Повинен
- сторона
- просто
- сайт
- трохи відрізняється
- розумний
- So
- Софтвер
- solid
- Хтось
- Source
- вихідні
- Простір
- стек
- стенди
- старт
- зберігання
- зберігати
- рядок
- такі
- поставляється
- Опори
- поверхню
- SVG
- перемикач
- система
- Приймати
- сказати
- розповідає
- тимчасовий
- ніж
- Що
- Команда
- світ
- їх
- Їх
- потім
- Там.
- тим самим
- отже
- Ці
- вони
- речі
- думати
- це
- хоча?
- тисячі
- три
- час
- до
- занадто
- прийняли
- топ
- Усього:
- до
- трек
- перехід
- прозорий
- біда
- намагатися
- ПЕРЕГЛЯД
- Опинився
- Поворот
- два
- типово
- Uk
- Зрештою
- Universal
- URL
- us
- використання
- використовуваний
- використання
- через
- життєво важливий
- Стіна
- хотіти
- хотів
- попередження
- було
- шлях..
- we
- ДОБРЕ
- добре відомі
- були
- Що
- коли
- який
- ВООЗ
- чому
- Wi-Fi
- широкий
- Широкий діапазон
- волі
- з
- Work
- світ
- турбуватися
- б
- лист
- письмовий
- Неправильно
- так
- ще
- ви
- вашу
- зефірнет