Ако извлечете сертификата от флаш паметта на робот-прахосмукачка Shark RV2320EDUS, можете да изпълнявате root команди на други прахосмукачки Shark в рамките на същия регион на AWS: да наблюдавате през камерата, да управлявате робота, да четете картата на къщата и да придобиете паролата за Wi-Fi в некриптиран вид.
Изследовател, публикуващ под псевдонима tokay0, качи метода онлайн в понеделник, след като го е тествал само върху прахосмукачки, които сам е закупил. Тогава уязвимостта все още не е била коригирана.
Той твърди, че SharkNinja, компанията зад марките за домакински уреди Shark и Ninja, разполага с неговия доклад от март.
Политиката, прикачена към този сертификат, никога не е била ограничена само до устройството, което я притежава. Ако я представите на облачния брокер на Shark, той приема всичко, което публикувате, адресирано до всяко устройство, което обслужва.
Без увреждане на паметта, без ескалация на привилегии, без парола за отгатване. Командата, която се изпълнява, е обикновено поле в т.нар. „device shadow“ – документ за състоянието на всяко устройство, който AWS съхранява в облака.
Изпращането на актуализация на документа за състоянието, съдържаща това поле, до темата (topic) на дадено устройство води до изпълнение на командата, ако устройството поддържа съответния обработчик.
Той доказа този път за достъп между различни модели, като получи отдалечен достъп (reverse shell) до модел AV1102ARUS, закупен единствено като цел, и след това използва този достъп, за да извлече видео на живо от вградената камера, докато роботът се движи.
Сертификатът се извлича лесно с помощта на отвертка. Дънната платка извежда UART пинове, U-Boot конзолата не изисква парола, а въвеждането на init=/bin/sh в параметрите за зареждане дава достъп до root конзола, където индивидуалният ключ и сертификатът на устройството се съхраняват в директорията /mnt/res/vapp/certs/ като обикновени файлове.
Сертификатите са обвързани със съответния AWS регион, което е единственото ограничение в случая: ключ, извлечен в един регион, дава достъп само до устройства в същия регион. За достъп до друг регион е необходим друг сертификат, предоставен там и съдържащ същата дефектна политика.
Този проблем е класифициран като IOT_POLICY_OVERLY_PERMISSIVE_CHECK, а AWS го оценява като критичен, предупреждавайки в документацията си, че компрометиран сертификат с подобна политика позволява на атакуващия да „чете или променя документи за състоянието, задачи или изпълнения на задачи за всички ваши устройства“.
Изследователят тълкува това като пропуск при предоставянето на нови сертификати, който така и не е обхванал по-старите устройства. Ето защо достъпът до различни модели е проработил и защо твърдението му, че всяка свързана с интернет прахосмукачка Shark е уязвима, трябва да се раздели на две части.
Заглавието на неговата публикация споменава милиони устройства. Числото, което той е потвърдил, е по-малко. Наблюдавайки един регион на AWS в продължение на 24 часа, tokay0 е преброил 1 517 605 уникални серийни номера на Shark, от които 673 816 (или 44%) са изпратили Exec_Response, което той приема като потвърждение, че устройството изпълнява обработчика на команди. Това са наблюдавани устройства, които отговарят, а не тествани или компрометирани, като той добавя, че реалният брой вероятно е по-висок.
Според хронологията на tokay0, той се е свързал с SharkNinja на 1 март и е изпратил подробности на 11 март. Компанията е потвърдила получаването на следващия ден, на 27 април му е съобщила, че докладът се разглежда, а на 3 юли е поела ангажимент да изпрати потвърдена дата за приключване до петък, 10 юли. Никакъв имейл обаче не е пристигнал.
Той публикува информацията на 13 юли. Според него производителят е омаловажил сериозността и е поставил под въпрос необходимостта от издаване на CVE идентификатор.
В публикуваната си политика за разкриване на уязвимости, специално по отношение на IoT доклади, SharkNinja се задължава да „предоставя редовни актуализации, докато докладваната уязвимост не бъде отстранена“. Същата политика изисква от изследователите да пазят конфиденциалност, докато компанията не потвърди корекцията или не разреши писмено разкриването.
До четвъртък SharkNinja не беше публикувала нищо за уязвимостта. Медията The Hacker News се свърза с компанията за коментар относно статуса на корекциите и графика за разкриване на информацията, като статията ще бъде актуализирана при получен отговор.
Освен това няма регистриран CVE. На 11 юни изследователят е поискал идентификатор от MITRE в качеството им на последна инстанция за присвояване (която се занимава с уязвимости, непокрити от друг орган), но не е получил отговор до момента на публикуването. Липсата на идентификатор, CVSS оценка или официално предписание затруднява интеграцията на проблема в системите за управление на уязвимости.
Потребителите не могат да инсталират корекцията сами. Тя трябва да се приложи в AWS акаунта на SharkNinja, а не във фърмуера на робота. Според насоките за отстраняване на AWS, несъответстващата политика се заменя чрез изпращане на ограничена версия с CreatePolicyVersion и флага setAsDefault, което я прави активна за всеки сертификат, който я използва.
Не се изисква разпространение на нов фърмуер. Правилното преиздаване на сертификатите обаче е по-дългият процес, който стои зад това и който tokay0 препоръча още през март.
Докато SharkNinja не приложи някое от решенията, единствената налична мярка за защита за собствениците е да изключат прахосмукачката от Wi-Fi мрежата. Това прекратява управлението през приложението, графиците и картите, превръщайки устройството в обикновена прахосмукачка.
tokay0 не е публикувал своите скриптове, докато уязвимостта е активна. Той прецени останалите си разкрития като твърде незначителни, за да ги описва.
Той също така не е изследвал останалата част от свързаната линия продукти на SharkNinja, като смарт грилове и безжични сонди за месо, които според него вероятно също са уязвими. Тези продукти идват от същата компания, чиято политика обещава редовни актуализации, докато даден проблем не бъде отстранен. Четири месеца по-късно този конкретен проблем все още не е разрешен.