Как стать автором
Обновить

Как я случайно поучаствовал в Bug Hunting Яндекса и взломал почти все умные колонки и ТВ

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров33K
Всего голосов 196: ↑195 и ↓1+233
Комментарии64

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

аферы с прошивкой колонок командой "yandex f*ck".

Можно поинтересоваться, что это была за афера?

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

Нет, мы не занимались никакими промышленными прошивками, 99% всех обратившихся имели одну колонку и были обмануты с помощью гигантского недочета со стороны Яндекса, который развязывал руки мошенникам, но компании плевать на это :-)

Поискал в Яндексе об этом дополнительную информацию, и представляете, не нашёл) всё обсценная лексика виновата, видимо.

Сейчас попробовал тоже поискать — действительно не нашел. Хотя я неправильно указал название, правильно: «YNDXFuck».
Возможно, я видел это в ТГ. Если будет время, поищу и дополню.
Но факт остаётся фактом: проверку на сервере ввели из-за «YNDXFuck», и они совершали сомнительные действия за денежное вознаграждение.
Хотя там, где я это видел, была оговорка, что они всегда сообщали клиенту о взломе устройства. Но у них появились дилеры, а вот они не всегда были честны.
Это всё, что я знаю, и я не углублялся в проверку этой информации.

Мне кажется они бы и дальше продолжали, если бы разработчики находились не в России.

В ответ же получаем json файл с настройками, достаточно объёмный, а за блокировку отвечает параметр subscription, который достаточно легко подменить (Но это я пока не раскрою).

В оригинальной колонке эта проверка обходилась просто переименованием этой строки в бинарнике. Бинарник не мог найти этот параметр в json и по умолчанию считал подписку действующей, а на серверной стороне ограничений не было — вся логика была в самой Станции.

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

Дилеры в планы не входили, можете поверить на слово)) Наоборот, после такого печального опыта, мы отгородились от перекупов как смогли: измененный звук активации с уведомлением о прошивке и требование привязки колонки в Telegram боте. Но люди есть разные, некоторых успешно "кидали" на вторичке, продав шитую колонку, как обычную.

Там уже все снесено.

👻 Проект YNDXFuck закрывается окончательноПо решению правообладателя, поддержка заканчивается 2 апреля в 00:00.

- Активировать колонку после сброса будет невозможно

- OTA обновления и прочие исправления не будут поставляться

- Бот будет отключен

- Android приложение перестанет работать

- Вики и инфраструктура будут отключены

Канал вскоре прекратит свое существование, чат "Обсуждение YNDXFuck" будет отвязан от проекта, тематика сменится на обсуждение умных устройств Яндекса (без обсуждений взлома устройств/прочих черных схем, которые мы не одобряем)
Не сбрасывайте свои устройства.С любовью, YNDXFuck.
Спасибо, что были с нами.

Почти не осталось информации, но по новостям канала можно сделать такие предположения.

В 2022 году появилась альтернативная прошивка YNDXF*CK, которой можно было прошить несколько моделей станций.

Она позволяла обойти валидацию проданных и неоплаченных по подписке станций.

Технология прошивки была такой

- отвязываем станцию от аккаунта

- загружаем из Linux предоставленным инсталлятором альтернативную прошивку

В дальнейшем инсталлятор был переписан под Windows. Станция получала автоматические обновления с сервера разработчиков.

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

2 апреля 2024 по согласованию с Яндекс проект свернул свою деятельность.

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

Но в дальнейшем yndxf*ck стали прошивать те же продавцы с Авито, и недобросовестные люди, желающие "сэкономить".

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

Юридические вопросы конечно хорошо, но и сам Яндекс мог бы сделать страницу для проверки станции на блокировки/подписку. И печатать, а ещё лучше отливать на пластике корпуса крупным шрифтом серийный номер станции.

Этот сервис есть, можно по SN проверить.
Другое дело, что уже толку от него нет, когда устройство уже на руках, а деньги отданы.

Такой сервис есть. И серийники на колонках есть. Но мошенники знают и об этом и просто их подделывают используя серийники от станций без подписки.

Эмм. Ну это же решается простейшим образом:

1) Включаем и ждем когда загрузится

2) "Алиса, назови свой серийный номер и статус подписки"

3) "Алиса, вызови полицию по адресу ... тут мошенник"

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

Почему "узнаешь поздно", если сам сервер Яндекса в момент покупки явно подтверждает чем данное устройство является? Т. е. это настоящее устройство или оно взломано так, что не существует способа на серверной стороне найти отличие от настоящего.

Это тоже фиксится элементарно:

В каждом устройстве прошиваем уникальный токен
Если появляется на связи его дубль колонка должна сказать "Ваше устройство взломано. Дальнейшее функционирование невозможно. Обратитесь к продавцу или в сервисный центр". Легитимный покупатель устройства получит новый токен. Копия работать не будет.

В этом случае вообще можно защитой не парится. Хоть вообще в опенсорс клиентскую часть выложить.

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

Ко мне обращалось просто много людей с такой проблемой и я описываю обобщённый реальный кейс.

Спасибо за разъяснение. Единственное замечание - вся проверка технически элементарно реализуема голосовым запросом. Т. е. покупатель должен просто спросить.

Да, но для этого надо 2 условия.
1. покупатель должен знать об этом.
2. у устройства должен быть доступ в интернет.
Вариант с предупреждением при включении устройства оба эти пункта решает.

"По меркам яндекса, это не уязвимость"?

Ну и хрен с ними, зато читать было весело.

Долго ждал, ну когда же..

"удалось ..., даже получить вознаграждение от Яндекс"
"... но получить ничего от Яндекс"

Так было ли получено вознаграждение?

За макс да, за дуо нет.

Какая сумма вознаграждения, если не секрет?

За Макс заплатили наверное потому, что он из устройств второго приоритета, соответственно и выплаты понижены. :)

На ББ Яндекса есть пункт в исключениях на оплату вознаграждений, может он и повлиял на ничего от Яндекс?:

любые атаки на железо, которые требуют изменения конфигурации платы, удаление чипов с печатной платы, ее перепрограммирования или использования дорогостоящих специфичных устройств и атак. Нам интересны атаки, которые позволяют через подключение к JTAG, USB и другим физическим интерфейсам устройства получить высокопривелигированный доступ;

Ага, очень размытые формулировки.
Например:

Перманентное повышение прав = запись, перепрограммирование (как то же надо закрепляться).
Или интерфейс emmc/sdio. Является интерфейсом - да. Требует дорогого оборудование, ну не знаю, картридер 100-200р.

Писали бы внятно, что только через пользовательские разъёмы.

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

Удачи Вам в дальнейших исследованиях, будет интересно почитать :)

Как участник ББ-программ скажу, что вознаграждение всё же мотивирует достаточно, а также показывает отношение компании к исследователям.

Спасибо.

Странно не склонять слово «Яндекс».

Молодец, крут! Мне вот, наоборот, было неинтересно исследовать яндекс на амложике после колонок других вендоров на нём.

Плюс, насколько я знаю, ажиотаж с багбаунти на иотах у крупных игроков поутих. Денег дают меньше, либо не дают вовсе. Видать мода на колонки с голосом прошла. Теперь надо ИИ в каждую розетку совать.

Почему неинтересно?

Так всё идентично в плане обхода защиты чипа.

Слава референс дизайну и SDK от производителя. С другой стороны - проще портировать софт между платформами. Например, Алису на колонки от Xiaomi, где она вероятно, никогда не появится.

Опа, каменты зачислили +) -ох уж эти капиталисты...

Это круто, подозреваю что подобные уязвимости есть и в колонке от вк

Мой знакомый взламывал колонку от ВК: там всё намного проще, так как debug порт распаян и к нему можно просто подключиться. Но точный алгоритм мне не известен (правда помню, что что-то с прошивкой нужно было сделать хитрое)

Очень интересно, ждём продолжения!

Так сколько заплатили-то хоть?

Во второй части будет, но хватило на покупку 3 штук дуо в разном состоянии, попадания на мошенника и мороженое для дочери. Никакой цели что-то заработать не преследовал. Только было очень интересно.

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

Я хочу это оставить на финал второй части.

Понял, спасибо

За такую работу Яндекс обязан в тестировщики взять.

Но только после 5-ступенчатого собеседования, а то мало ли что! /s

Точно, находить реальные баги это вам не литкод решать, второе важнее! :)

И обязательно с )отдельным собеседованием по алгоритмам. Без этого в Яндексе даже полы не моют!

архитектуру микросервисов забыл, как без архитектуры?

А каким образом Яндекс разрешил публикацию данного материала? Потому что по ощущениям, вы чуть ли не 0-day уязвимость опубликовали.

С чего Яндекс должен вообще разрешать?

А то, что я направлял в рамках баг-хантинга, я ещё не разглашал.
Вот по «Максу» срок уже вышел по неразглашению, согласно оферте Яндекса.
А вот «Дуо» — хоть мне и отказали, но я пока не буду выкладывать и выжду временные рамки.

Так всё то же. Разглашение конфиденциальной или чувствительной информации. Нет?

Ну для этого, я должен вначале NDA подписать.

Неподписание не снимает ответственности.

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

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

думаю в Xiaomi Smart Display 10R (у нее тоже есть вариация с подпиской яндекса) должно быть что то подобное

У меня нет этого устройства, так что увы.

Интересно было почитать.

было жгучее желание (да оно и сейчас есть) написать свой uniproxy с локальным распознаванием

А вот на самом деле почему на гитхабе нет ни одного проекта, реализующего взаимодействие с uniproxy? Не говоря уж о реализации самого бекэнда

Ну дак свой сервер в колонку штатными средствами не вписать. Можно попробовать конечно яндекс забомбить запросами для добавления возможности вписывать свой сервер.

Молодец автор) я хочу хакнуть игровую консоль от триколора, та что позиционировалась как аналог пс4) там тоже секьюрбут и амлогик, но благо проц можно найти чистый и поставить его ;)

ну нетушки, еще столько дейвасов на wince не отреверсено :) :) :) помню я была приставка motorola на win ce, ее как то хакали уже.

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

Публикации