Как стать автором
Поиск
Написать публикацию
Обновить

Они взломали пылесос, принтер и даже зубную щетку: пять реальных кейсов

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров13K
Всего голосов 56: ↑55 и ↓1+67
Комментарии42

Комментарии 42

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

Гораздо интереснее подглядеть, что там в принтере у бухгалтера. Даже названия заданий на печать могут быть интересными ("Приказ о премировании Петрова". "Приказ об увольнении Иванова").

В этом плане современный протокол IPP может быть даже поинтереснее, чем древний LPD или JetDirect.

А с учётом того, что прошивки принтеров невероятно глючные, и неверно сформированный запрос может с легкостью привести, например, к перезагрузке принтера (а не быть просто отвергнутым с ошибкой), а, значит, кто-то там где-то в принтере может, получив ошибочный запрос, сделать что-то неприличное (например проехаться по памяти - просто так же перезагрузка не происходит), я б очень поостерегся давать сетевой доступ к принтеру, на котором печатаются важные документы, не то, что в открытый Интернет, а даже и в пределах локальной сети.

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

Ваша точка зрения частично справедлива удалённая печать мемов действительно выглядит как хулиганство уровня script-kiddie. Но именно такие забавные случаи обнажают дыры, которые потом эксплуатируют для атак.

Да, современный IPP удобнее LPD, но его «интересность» — палка о двух концах. Через ipptool можно вытащить не только названия заданий, но и метаданные документов (например, через атрибут job-name). А если принтер корпоративного уровня (вроде Xerox AltaLink) с поддержкой PostScript — тут уже открывается поле для RCE через инъекции в интерпретатор. Та еще задачка, верно? 

Но это я о чем, глючные прошивки фича для хакеров: когда речь заходит о неверно сформированных запросах, мы сразу попадаем в зону риска переполнения буфера или коррупции памяти. Взять ту же CVE-2021-3928 в HP LaserJet с CVSS 9.8 — через PJL-команду @PJL SET COPIES=999 можно было не только вызвать краш, но и через артефакты в куче инжектить произвольный код. А PostScript, превращается в скрытый бэкдор: на примере Xerox через PS-документы можно было вытащить логины админа из NVRAM, записать скрипты для персистентности в /var/ или даже подменить прошивку через executive-модуль — и всё это по сети, без физического доступа.  

Так что «мелкое хулиганство» с печатью мемов это лишь пристрелка)

Да, современный IPP удобнее LPD, но его «интересность» — палка о двух концах. Через ipptool можно вытащить не только названия заданий, но и метаданные документов (например, через атрибут job-name).

Название заданий это и есть job-name

В IPP даже предусмотрена возможность вытащить сам документ. Не знаю, реализуют ли ее корпоративные принтеры.

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

"Взлом" это описание действий, а не оценка последствий.

Я не про оценку последствий, а про модель угроз.

В целом, считаю угрозу узнать что-то о распечатанном документе (а лучше его целиком прихватить) более интересной для обсуждения, чем угрозу неожиданно потратить весь тонер.

К тому же, в отличии от безвозвратно утраченного тонера, подглядывание данных даже не оставляет следов.

Если Вы обнаружите, что в Ваше отсутствие в Ваше жилище кто-то проник и насрал на полу, то главным тут является наличие возможности проникновения, а не действие совершённое в этот раз.

Так же и тут, как пользователь, Вы понятия не имеете, что ещё понапихано в используемое Вами железо и какие возможности это даёт людям попадающим в группу "кто угодно с доступом в интернет".

Любой замок можно взломать. Но уровень квалификации, необходимый для этого, разный.

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

Поэтому масштаб возможного ущерба имеет значение.

Люди, срущие на полу, вряд ли осилят взлом банковского хранилища.

Зависит от хранилища

А те, которые осилят, вряд ли будут делать это с единственной целью насрать на полу.

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

Есть аспект, который часто упускают: где грань между ответственностью пользователя и обязанностью регуляторов? Например, после истории с 28 тыс. принтеров, печатающих мемы, стало ясно, что многие компании даже не меняют пароли по умолчанию. Но если пользователи годами игнорируют базовые меры, а производители экономят на Security by Design не пора ли ввести обязательную сертификацию IoT-устройств, как это сделано в авиации или медицине? В ЕС уже пытаются внедрить Cyber Resilience Act, но хватит ли таких инициатив, чтобы заставить рынок выпускать устройства с изолированными компонентами и автоматическими обновлениями или мы обречены на вечную гонку, где умный чайник 2025 года взламывается через BLE-ключ, как принтер из 90-х?

Мне вот интересно как вы думаете, что эффективнее жёсткие законы с штрафами за уязвимости или публичное давление через рейтинги безопасности типа «CyberScore для IoT»? Может, пора создать аналог краш-тестов, но для умных устройств xd

Еще слышал историю как взломали умные инсулиновые помпы через уязвимость в Bluetooth, производитель заявил: «Это пользователи не обновили прошивку». Но как требовать ответственности от пациентов, если обновление стирает их настройки и требует перепрошивки через ПК? Где тут грань между правом на жизнь и правом на безопасность?Или другой пример: если ваш «умный» замок взломают через дефолтный пароль, а злоумышленник ограбит дом — кто виноват? Вы, производитель или регулятор, который не запретил продажу таких замков?

P.S. пора бойкотировать бренды, которые десятилетиями игнорируют CVE

Вы затронули нерв индустрии — вопрос ответственности в IoT действительно упирается в системные пробелы. Пример с инсулиновыми помпами, как я понимаю это про Medtronic MiniMed: уязвимость CVE-2019-10966 позволяла через BLE перехватывать данные и дистанционно управлять устройством, это  у меня по крайней мере вызывает ужас. 

Регуляторы пытаются реагировать — например, FDA выпустило guidelines по кибербезопасности медицинских устройств, обязывая патчиться в 90 дней для критических CVE. Но как это работает на практике?  Компания Orvibo попалась на утечке данных более чем двух миллиардов записей из базы данных, включая пароли и информацию об устройствах умного дома, но рынок всё ещё наводнён девайсами вроде замков Lockly с CVE-2021-3609 (обход аутентификации через Bluetooth).

Cyber Resilience Act ЕС пока лишь в черновиках он обяжет патчить CVE уровня 7.0+, но сроки и механизмы неясны. А добровольные инициативы вроде IoXT Alliance (сертификация по 8 параметрам безопасности) —> шаг вперёд. Еще пример китайский гигант Tuya (провайдер IoT-платформ) в 2023 году получил CVE-2023-25917 - RCE через облачный API. Это очевидно вызывает обоснованные опасения, учитывая широкое распространение их недорогих модулей на рынке.. Их модули за $1.5 доминируют на рынке, но Secure Boot там всё ещё экзотика.

И вот вопрос: Если регулятор введёт обязательные пентесты для IoT, а цена устройств вырастет в 2x согласится ли массовый рынок? Или предпочтёт дешёвые гаджеты с бэкдорами, как та же Orvibo?

Но если пользователи годами игнорируют базовые меры

Пользователи не в курсе того, что производитель сделал устройство смотрящее портами в интернет и ждущее пары логин-пароль "admin:admin" , потому что никакому хоть сколь либо разумному человеку, такая дичь в голову не придёт.

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

Лично я считаю, что пора вводить уголовную ответственность для

Я за уголовную ответственность для людей, которые этот функционал сделали.

Не вижу никакой разницы между строителем оставившим незакреплёнными тяжести на верхних этажах стройки и кодером оставившим зашитыми дефолтные логин-пароль.

Я что-то сомневаюсь, что штрафы помогут.

Современный принтер - это ОЧЕНЬ сложная штука. Причем собранный из очень разношерстных запчастей. Производители не обязательно пишут прошивки целиком сами. Какие-то компоненты могут закупаться или аутсорситься.

Если говорить о современных протоколах, таких, как IPP (печать), eSCL/WSD (сканирование), они все HTTP-based. И вот в моей, например, Kyocera ECOSYS даже на уровне релизации HTTP-серверов видно, что их собрали из разных мест. Ну т.е., там у неё внутри пяток разных HTTP-серверов. Трудно себе представить, что кто-то специально в одном проекте запланировал HTTP сервер 5 раз написать.

Это я к тому, что производители принтеров могут даже не очень понимать, что у них там под капотом. Понабрали запчастей (уверен, у каждой запчасти все бумажки в порядке), свинтили вместе какими-то внутренними HTTP proxy и в продакшен.

Ну обложите вы их штрафами, и что? Принтерский бизнес станет стрёмным и перейдет туда, где штрафы не грозят. На рынке останется сплошной Pantum. Они, кстати, судя по всему сами свои прошивки пишут, уж больно у них необычные, самобытные ошибки, не похожие на других :)

Современный принтер - это ОЧЕНЬ сложная штука.

Ну вот пусть упрощают имеющееся и, прежде чем впихивать новое, думают о последствиях для себя лично.

P.S. пора бойкотировать бренды, которые десятилетиями игнорируют CVE

О чем вы говорите! Куча примеров, когда те же производители принтеров блокировали тысячи принтеров при обновлении! И что, с тех пор продажи HP упали? Или, не к столу помянута, MS Windows? Или Xiaomi?
Люди глупы и ленивы. Вот и вся причина. Как покупатели, так и производители.
Одни не хотят платить за надежность, а вторые готовы экономить на безопасности.

Потенциальные проблемы - если на регуляторов вешать - они ж начнут приоритетзировать не игнор/не игнор CVE а облака в нужных местах, предоставление данных кому надо (а потом и с автоматическим отбором каких надо данных на самих устройствах) и возможность отказа в предоставлении услуг кому НЕ надо.

Хотя делать да - что-то стоит. С компьютерами ж проблему решили более менее как осознали (ну да - цена - в том числе что кое кому потребовалось несколько попыток и до сих пор Windows может перезагрузится сама когда не просят а вот хотя бы запустить все приложения что были открыты раньше не говоря уже про восстановление контекста - может не всегда. Ну так - есть macOS/Linux да и в Windows все же настраивается), с мобилками решили по большей части (а в меньшей - понимают что проблема - есть и все же надо решать), хотя и вой "да зачем обновления андроида/"...которые при этом часто еще и ломают то что не стоило бы ломать, что интересно - про iOS особо воя не слышно). Да - появляются приколы вида "Google несколько раз продлевала официальный изначально заявленный срок обновлений для Chromebook'ов и тут от них требуют продлить ОПЯТЬ потому что школам хочется денег сэкономить"

Про какую винду идет речь в тексте? Если у тебя нет админских прав, то и драйвер ты выбрать не можешь, какое "окно выбора".

В статье рассматриваются современные версии винды типо 10/11, где автоматическая установка драйверов через Windows Update стандартный процесс. Даже без прав администратора система может загружать WHQL-подписанные драйверы из репозитория Microsoft. Однако мамины хацкеры эксплуатируют это доверие, подменяя VID/PID устройств (например, через кастомную прошивку), чтобы Windows распознала их как оборудование доверенного вендора. В таких случаях драйверы устанавливаются автоматически, без запроса прав пользователя, что превращает легитимный механизм в угрозу.  

Нет, в статье написано, "Через диалоговое окно проводника, запущенное в контексте SYSTEM, достаточно выполнить Shift + ПКМ для открытия PowerShell с привилегиями администратора."

А стандартный процесс, когда винда молча ставит дрова, понятен. Непонятно чего добьется мамкин хакер, когда для его устройства поставятся дрова от мыши logitech.

Непонятно чего добьется мамкин хакер, когда для его устройства поставятся дрова от мыши logitech.

Я так понимаю, месье никогда не слышал про BadUSB?

Не слышал. Флэшка прикидывается сетевой картой и сливает трафик. Как страшно жить. В ней же еще должен быть GSM модем, чтобы трафик сливать. И обычную сетевуху она должна заменить, иначе откуда трафик возьмется.

Жаль, что мы так и не узнали про диалоговое окно.

Флэшка прикидывается сетевой картой и сливает трафик.

Нет, в нужный момент (ночью, когда все спят) флешка прикидывается клавиатурой и начинает печатать — скажем, Win-R, CMD, Enter и так далее.

Мораль: мне еще в старших классах школы объяснили, что если совать куда попало, потом может быть придется лечиться от вирусов.

Про принтеры как-то мутно. Вот они нашли пол млн принтеров, т.е. столько белых IP-адресов только для принтеров арендованы?

Тут на всю организацию не каждый берет, а кто-то на один только принтер? Какой может быть сценарий использования принтера в глобальном интернете?

Печальная реальность уязвимых сетей.. малые офисы и домашние сети часто подключают принтеры напрямую к роутеру с публичным IP, игнорируя базовую сегментацию. Устаревшие роутеры с включенным UPnP автоматически пробрасывают порты вроде 9100 (JetDirect) или 631 (IPP), открывая устройства в интернет «для удобства». Ну IPv6-сетях всё ещё проще каждый девайс получает глобальный адрес по умолчанию, и если файервол не настроен, принтер становится мишенью.  

Сервисы вроде Shodan сканируют интернет, находя такие устройства по специфичным ответам например, по заголовкам Xerox или HP. Многие из этих принтеров — жертвы автоматических пробросов портов или ошибок в VLAN. Злоумышленники используют их для ддоса, перехвата документов через PJL-команды или даже внедрения шелл-кода.

Так что это не «аренда IP под принтер», а грубые ошибки конфигурации. Проверьте свой роутер вдруг и ваш принтер уже светится в Shodan как мишень для хакеров))

Устаревшие роутеры с включенным UPnP автоматически пробрасывают порты вроде 9100 (JetDirect) или 631 (IPP), открывая устройства в интернет «для удобства»

Никогда такого не видел.

Что до UPnP, с ним принтер сам должен попросить пробросить свои порты наружу. Зачем бы это ему?

Принтер сам по себе, конечно, не просит проброса портов, видимо я не так выразился, это делает не он, а хост-система (чаще всего ПК или сервер в сети), где установлен драйвер или ПО для управления печатью. Многие из них используют UPnP для автоматического открытия нужных портов "для удобства", особенно если речь про старые JetDirect-интерфейсы и IPP-протокол.

Нашел источник про то как на устаревших роутерах автоматически обрабатывает запросы на проброс, и любое устройство или приложение в локальной сети может инициировать такую операцию, независимо от того, запрашивал её сам принтер или нет.

Так что все таки это не "шапка из фольги" )

Есть организации, у которых просто сетка класса C с "белыми" адресами. Если в такую сетку воткнуть принтер, у него тоже появится белый адрес.

“In IoT, S stands for Security” ©

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

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

а вот свидетели ipv6 хотят дать каждой зубной щетке белый адрес (что и не нужно в принципе, и достаточно опасно). основной аргумент, что нат не файрвол, используйте файрвол и все ок. вот только нат есть в 90% случаев, а файрвола нет или его надо готовить..

Действительно, NAT часто воспринимается как некий "псевдо-файрвол", создающий иллюзию безопасности. Но в эпоху IPv6, настоящая защита сети требует активного управления доступом и грамотной настройки файрвола, а не пассивного спрятаться за Нат.

Роберт Пайк как-то высказал мысль, что простенький замок на двери, которым все умеют пользоваться, даёт более сильную защиту, чем сложная система безопасности, которую еще надо правильно настроить.

оно не псевдофайрвол и вообще не файрвол, но есть в большинства пользователей и не требует настройки

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

вот только нат есть в 90% случаев, а файрвола нет или его надо готовить.

А почему вы решили, что нет файервола? И почему «нат есть в 90% случаев»? У меня вот на маршрутизаторе есть файервол для IPv6 и по умолчанию закрыты все подключения по IPv6 снаружи внутрь. Устройства внутри сети имеют доступ к интернету по IPv6, но не наоборот. Если мне нужно открыть доступ к какому-то сервису внутри своей сети я просто прописываю соответствующее правило, которое открывает TCP или UDP порт на конкретно заданный IPv6 адрес. Для того же IPv4 это более геморройно, потому что нужно не просто открыть порт, а выделить порт с внешнего адреса маршрутизатора и указать на какую машину и какой порт будет доставка внутри сети. Если мне нужно вывести в интернет два веб-сервера разных, то их нужно разносить по портам (что не выглядит хорошо, порт нужно будет указывать в адресной строке) или каким-то образом получать второй IPv4 адрес (теоретически, практически я даже не знаю потянет ли большая часть домашних маршрутизаторов такое). Для IPv6 я просто создаю правило в файерволе для каждого своего сервера. Всё просто и хорошо читается.

Ну а NAT сейчас есть практически в 100% случаев только по той причине, что без него невозможно жить в сети IPv4. Производители явно не будут продавать устройства, где пользователям надо будет всё руками настраивать, поэтому и преднастроенный NAT есть практически в любом маршрутизаторе.

Простые домашние пользователи на простом домашнем Сохо решении не вытаскивают какие-то кластеры из серверов наружу, нв не нужно им это, они сервер этот не поднимут. А что касается наличия каких-то предустановленных фишек, разумеется производитель старается дать что-то проще. Только вот в куче готового оборудования нат есть, а с файерволом непонятно как. Точнее уже даже понятно, видимо часто никак так как проблемы связанные со всяким взломом умных устройств, которые по идее за натом и никак не пробрасывались, скорее всего вызваны именно доступом по ipv6

Файервол на вашем домашнем шлюзе нужен в любом случае. Просто с IPv4 у вам появляется связка NAT+Firewall, которую гораздо сложнее настраивать, чем просто Firewall для IPv6. Если думаете, что для защиты сети вам будет достаточно NAT, то ок. Когда ты Неуловимый Джо, возможно это сработает... а возможно и не сработает.

Тоже постоянно возникает этот вопрос в голове когда пользуюсь Home Assistant, с одной стороны удобно, с другой есть определенные сомнения по безопасности особенно когда весь умный дом завязан на HA. Очень удобно для злоумышленника - не надо сканить на предмет конкретных уязвимых девайсов. Достаточно знать уязвимость HA чтобы получить доступ ко всему.

Просто не открывайте прямой доступ к HA из интернета. Используйте VPN. Он для этого и создан, а не для обхода багов сети, как сейчас многие стали думать.

Минус варианта с VPN в том, что надо каждый раз его включать, и мобильный клиент НА не будет получать уведомления от сервера. Есть ещё один безопасный вариант: мобильный клиент HA умеет использовать клиентский сертификат для авторизации. Себе я настроил доступ через отдельную виртуалку с nginx reverse proxy. Так что сам HA никаким образом не отсвечивает в инете. По идее можно такую же комбинацию настроить и на хосте самого HA, если нет отдельной виртуалки. Ну и стоит заморочиться с отдельными сертификатами на каждое устройство, чтобы в случае кражи/утери можно было отозвать доступ.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий