Pull to refresh

Comments 84

yandex ну почему даже от багбаунти у разработчика остаётся такое впечатление? Edited: Ой, это оказывается не тот Яндекс, ну да ладно, путь так и останется.
Данные для авторизации в Яндексе мне не удалось выделить. Однако, длина пакета достаточно маленькая, поэтому точно можно сказать, что в посылке нет какого-нибудь OAuth токена

Просто на правах фантазии, возможно авторизация идет с телефона, яндекс возвращает телефону одноразовый пароль с малым временем жизни, а уже он передается на колонку…
Ну а какой еще есть способ передать колонке пароль от WiFi, если не в открытом виде? Колонка же должна самостоятельно подключиться.
Я не специалист в области информационной безопасности, но предположу, что можно зашивать на колонку при производстве ключ шифрования. Тогда можно будет с телефона слать данные защищенным образом. Тут есть проблема, что при компроментации ключа одной станции (например, получив физический доступ к внетренней памяти), будут скомпроментированы и все остальные.

Можно, конечно, раздавать каждой станции свой ключ, но тогда придется просить пользователя дополнительно вводить вручную или сканировать какой-нибудь QR-код с идентификатором колонки. Иначе телефон не будет знать, какой ключ использовать.

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

Вопрос в том, сколько пользователю держать руку над колонкой пока она наболтается с телефоном.

для этого давно придумали qr коды.

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

пи-пу-куррр-кир-курр-кир пии-кр-пиии-кр-пииюю-ПТУПТУТУ-шшшшпшшшкшшшшшшшпшшшш…
пи-пу-куррр-кир-курр-кир пии-кр-пиии-кр-пииюю-ПТУПТУТУ-шшшшпшшшкшшшшшшшпшшш

теперь все знают твой пароль )
Но имхо это настолько забавный процесс, что я бы и пострадал немного созерцая за голосовым общением двух девайсов ))
Вы наверное диал-ап не застали?

Именно потому что застал я это и пишу

И не только dial-up, но еще и запись на магнитофон игр ZX Spectrum
не, там длиииииииинный синхробайт был, а не пульсирующий
Колонка может вначале прошипеть свой уникальный открытый ключь и услышать закодированый ответ.

Тут возникает вопрос о качестве микрофона на смартфоне, а это независимый параметр от Яндекса

Микрофон достаточен для записи человеческой речи, в таком качестве что и человек и алиса эту речь распознают.
Значит, если сделать специальную кодировку, лучше оптимизированную под передачу данных чем речь, и еще добавить в нее коррекцию ошибок то все получится.
Если доступна двухсторонняя передача данных, то варианты есть. По алгоритму Diffie-Hellmann, например, можно сгенерировать секретный симметричный ключ для защиты канала, и уже им шифровать пароль.
А если двухсторонняя передача не доступна, то зашить в камеру закрытый ключ, а открытый разместить снаружи в виде QR-кода. Телефоном считать открытый ключ, зашифровать пароль и передать колонке.
Дополнительное действие для пользователя. Скорее всего тут делается упор на локальность процесса, чтобы записать этот звук с паолем даже с 2-х метров уже надо быть хорошо подготовленным, использовать какие-нить хорошие направленные микрофоны, заранее их установить, это ж не радиосигнал, который через стенку ловится.
Ну или просто выдрать звуковую дорожку с ютуба, инстаграмма и т.д., куда там еще юзеры выкладывать свои видео распаковки.
Скорее всего для Diffie-Hellmann-а не хватает пропускной способности аудиоканала. Одно дело пароль 8 символов только на станцию, другое дело килобайты информации туда-обратно
UFO just landed and posted this here
Давайте посмотрим википедию. Предположим, нам достаточно 128-битного ключа. Тогда обе стороны должны послать друг другу по 128 бит. Т.е. по 16 байт.
А потом пролистаем дальше и прочитаем что более-менее стойкий ключ 1024 бит. Но все равно не килобайты, да, согласеен.
Давайте посмотрим википедию. Предположим, нам достаточно 128-битного ключа. Тогда обе стороны должны послать друг другу по 128 бит.

А потом пролистаем дальше и прочитаем что более-менее стойкий ключ 1024 бит.

Вы сейчас явно про разные види ключей и про разные алгоритмы говорите.
128 — AES, симметричный шифр.
1024 — RSA, с открытым ключом.

В Diffie-Hellmann нужена пара ключей: открытый и секретный. В результате получим ключ (созданный двумя устройствами вместе) для симметричного шифрования типа AES чтобы потом с помощью него общаться.

*1024 бита на RSA уже маловато по нынешним меркам.

Существует, например, тот же ECDSA, стойкий ключ для которого всего 256бит

8 это минимум, у меня пароль 32 символа. Открытый ключ в HEX можно уместить в 20 байт, наверное.


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

Есть ещё NFC, скорее всего во всех телефонах уже. Видимо все равно это более геморно использовать именно для пользователя.
Кроме самой станции есть еще и другие устройства с Алисой, в которых может не быть bluetooth или NFC. Поэтому используется универсальный способ для всех устройств с микрофоном. Но хотя бы поксорить можно было…
Для подключения по wifi достаточно информации из линуксового wpa_supplicant.conf. Так вот, там внутри SSID и хеш (SSID; passphrase). Пароля в открытом виде нет.
И каким образом подключаться к сети с этим хэшем? По логике работы вайфая, хранить приходится открытый пароль и все так делают. В документации на wpa_supplicant.conf тоже ни про какие хэши информации не видно.

"все так делают"


Не все.


"В документации на wpa_supplicant.conf тоже ни про какие хэши информации не видно."


Видно. man wpa_passphrase

Генерация PSK заранее конечно интересно, но, к сожалению, на практике я не видел, чтобы так кто-то делал. Даже тут это руками требуется делать явно из-за проблем с совместимостью с чем-то иным, кроме WPA-PSK.
Такой способ передачи ключа первым использовал не Яндекс.
Он же используется в некоторых «китайских» IP-камерах (например камеры Digoo).
… и в оригинальном Amazon Dash Button.
Такая позиция вдохновила меня развить идею разработчиков Яндекса и сделать протокол, ориентированный на впечатление. Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?


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

Профессор серьезно посмотрел на него, держа перед собой вилку с кусочком моркови, но не произнес ни слова.

– Понимаете, любая мелодия передается как последовательность или комбинация цифр, – вдохновенно продолжал объяснять Ричард. – Цифры же отображают высоту звука, его длину, сочетания…

– То есть мотив, – подсказал профессор. Морковь все еще оставалась нетронутой.

Ричард усмехнулся:

– Мотив – весьма точное слово. Надо запомнить.

– Так будет проще выразить мысль. – Не попробовав морковь, профессор вернул ее на тарелку и спросил: – Значит, программа ваша имела успех?

– Не в этой стране. Оказалось, что годовые отчеты британских компаний в основном звучат как «Похоронный марш» из генделевского «Саула». Зато японцам она весьма приглянулась. У них вышло множество веселых корпоративных гимнов, которые начинаются очень задорно, но, если уж начистоту, к концу становятся чересчур шумными и скрипучими. Что самое главное, программа отлично показала себя в Штатах и имела коммерческий успех. Впрочем, теперь меня больше всего интересует другое: что будет, если убрать из нее счета? Превратить в музыку цифры, представляющие взмахи крыльев ласточки? Что мы тогда услышим? Точно не жужжание кассовых аппаратов, как того хочется Гордону.


Дуглас Адамс
Если бы Существо не щелкнуло тумблером, я бы никогда его не нашел. Оно
могло подождать, пока не подойду на расстояние вытянутой руки. Стоило мне
чуть ослабить внимание, оно могло бы обезоружить меня, выбить карабин из
рук. Но оно не сделало этого. Просто включило магнитофон и спокойно
встретило смерть…
Он кинулся к пульту. Где тумблер? Он шарил руками по приборной панели.
«Тюлилихум ааухум».
— Что ты делаешь, Мартин? — кричал полковник Яролимек, такой близкий и
такой бесконечно далекий.- Сейчас мы тебя вытащим, успокойся!
Мартин метался от одной секции к другой. «Тюлилихум ааухум»…
Есть!
Он коснулся плавно вращавшихся дисков. Накипевшая ярость нашла выход.
Он вырвал пленку, бросил на пол, топтал ногами. Потом рассмеялся. К чему все
это? Придут люди и сотрут последние следы какого-то «тюлилихум ааухум».
Он вдруг почувствовал, что должен укрыться.
— Куда ты, Мартин? — звал полковник Яролимек.
Он не мог ответить и сам не знал почему. Неуверенными шагами направился
к двери склада, где Дана Мразкова приняла свой последний бой. Они не должны
меня видеть. Но почему, почему?
Пошатываясь, ввалился он в помещение, привалился к стене и медленно
сполз на прохладный пол. Специфическая удушливая вонь ударила в ноздри.
«Тюлилихум ааухум».
— Почему я все время думаю об этой мерзости? — спросил он себя вслух.
И тут что-то произошло.
Мартин Данеш впервые в жизни увидел свет.
Он закричал от ужаса и неведомой прежде радости. Вечная тьма озарилась.
Красочные очертания выступили из темноты, закружились в сознании. Странные
переплетения, пульсирующие разноцветные прожилки… Это не просто свет,
подумал Мартин. Это глаз Существа.
Я скоро превращусь в Существо, я успел заразиться. Но я еще
сопротивляюсь, через слух это идет не так быстро. Медленнее, чем вам
хотелось бы, не правда ли? Кто вас сюда послал? Кто-то тщательно выбритый,
умытый и плотно позавтракавший?

Онджей Нефф, Белая трость калибра 7.62
А зачем гадать, когда можно взять со станции модуль, отвечающий за авторизацию, и отреверсить его?
Krupnikas Но ведь пароли от wifi не всегда состоят из 8 цифр или букв, тоесть поддерживается кастомная длинна ключа. Что если попробовать сломать буфер внутри. Разобраться в остальных данных, передаваемых через протокол, написать кастомный фазер…
Вот это правильный вектор развития, переполнение уже тянет на серьезную уязвимость.
8 символьный пароль ломается за 4/8 часов на старой видеокарте (не каждый кончено, но многие).
Вообще WiFi там много всего, а вот что он звуком передается, это прикольно. И услышать его гораздо сложнее чем ловить хэндшейки. Так что да, уязвимость не особо опасна, блогерам просто не очень приятно будет, если у них пароли везде одинаковые.

А безопасно его передавать можно по разному, как предложили выше используя ДиффиХелмана, или комбинацию подстановки/замены (Цезарь и другие) (не безопасно, но звук уже не поможет, тут мобилку придется крутить, хотя бы один раз).
Добавлю, что звук с расстоянием очень сильно угасает, и чтобы его корректно перехватить надо стоять с микрофоном рядом с устройством в момент активации, что будет несколько подозрительно. Лично у меня первая колонка только 3 его раза смогла правильно распознать пароль и активироваться. У родителей со второго раза заработала.
Ну, а если у вас вообще имеется свободный доступ в помещение с колонкой (наверное это будет дом вашего друга), то вряд-ли вам нужно будет взламывать его вайфай, разве что для понта.
Да, лентяев везде хватает, поленились даже элементарно шифрануть…
Они разукрасили процесс активации Станции, сделали его необычным.

Китайская WIFI камера Q7 точно также первый раз настраивается — телефон свистит, пока не подключится камера.

А холодильники LG насвистывают результаты самодиагностики.

Холодильник "Донбасс" или "Днепр" у нас на даче в 80-х годах тоже Уже умел насвистывать самодиагностику.
Сосед Коля пришёл, послушал, продиагностировал "Всьо, йому… пришла" (заглушено свистом холодильника)

Механик Петр так автомоторы диагностирует :)
Здравствуйте, Сергей.
Меня зовут Эльдар, я работаю в команде безопасности Яндекса.

Прошу прощения за то, что не ответили на письмо в «Охоту за ошибками». Мы его разобрали, но на этапе ответа на обращение случился организационный баг — письмо не было отправлено. Проведём работу над ошибкой.

Как вы верно подметили в посте, эту особенность сложно назвать уязвимостью. Мы думали, как сделать настройку более безопасной и не менее удобной для пользователя — самым приемлемым вариантом (в первую очередь, из-за длины ключей и размера шифротекста) показалось использование для обмена сессионными ключами алгоритма ECDH, однако взвесив риски и возможные неудобства, остановились на текущем алгоритме.

Спасибо.
Здравствуйте, Эльдар.

Понимаю, баги бывают везде :)
Благодарю за ответ. В этот раз письмо пришло. Прикрепил его скриншот к посту.

Спасибо.

Извиняюсь, что вклиниваюсь. Ну а что такое 'доверенная среда'? Я не понимаю такой терминологии от слова совсем. И где предупреждение, что данный звук не должен быть нигде распространен? Сейчас можно поискать по ютубу записей настройки данных девайсов и наверняка найдутся те у кого пароль от вайфая используется на ещё каких-либо сервисах. Такой себе конечно пример… ну а вдруг.

Даже если вы расшифруете эти пароли с видео, что они вам дадут?

Гораздо успешнее можно поискать ключи от AWS, например, на StackOverflow или GitHub. Кторые должны храниться в надежном месте и не быть доступными никому.

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

С тех пор, как существует сфера информационной безопасности. Риски оценивают не в вакууме. Если открытый пароль используется в условиях, когда риски его утечки минимальны, то это не проблема. Вы вот руками вводите пароль для вайфая на клавиатуре — стоящий за спиной все увидит. Равно, пароль доступен в открытом виде. Допустимый это риск? Да, в подавляющем большинстве случаев допустимый. Так же и здесь. Колонка настраивается в доверенной изолированной среде — личной комнате человека.
Когда человек вводит пароль руками, он понимает, что видеозапись этого на Youtube лучше не публиковать. Вся проблема, как это часто случается, в неожидаемом поведении вещей, а производителю лень поставить лишнюю сноску в инструкции.
С тех пор, как существует сфера информационной безопасности. Риски оценивают не в вакууме.

Ну расскажите мне как риски в этом случае оценивались и что это за термин такой "доверенная среда" за пределы которой Алису выносить нельзя. Это вообще нормально употреблять самовыдуманные термины которых фактически не существует?


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

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


Вы вот руками вводите пароль для вайфая на клавиатуре — стоящий за спиной все увидит.

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


Колонка настраивается в доверенной изолированной среде — личной комнате человека.

Это ваши фантазии. Ничто не ограничивает человека активировать колонку там где ему хочется. И мало того, что ничто не ограничивает, так еще его никто и не предупреждает.

Какую-то демагогию развели на пустом месте. trusted environment это общеизвестный термин. Читайте и разбирайтесь. Со стороны яндекса в данном случае единственная претензия это отсутствие предупреждения, что при настройке что-то передается по воздуху и на людях это лучше не делать.
trusted environment это общеизвестный термин. Читайте и разбирайтесь.

Нет такого общеизвестного термина. Есть термин trusted execution environment, но это совсем не про то. Читайте и разбирайтесь прежде чем писать.


… единственная претензия это отсутствие предупреждения...

Все равно это очень странная ерунда

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


КМК, поднять на колонке внутренний WiFi чисто для настройки не стоило бы совершенно ничего в смысле программирования, и позволило бы обойтись без передачи пароля plain text'ом.
Тогда мы получаем уязвимость «другое устройство создаёт такой wifi или подключается к wifi колонки и подслушивает пароль».

Вряд ли. Если ssid и пароль наклеены на стикере в инструкцию — за те 10 мин, пока длится подключение, даже АНБ не успеет подобрать пароль. Денег это стоит… чуть дороже стикера. Если защиту WPA не использовать совсем, но хотя бы использовать https (это тоже бесплатно!) — даже если кто-то запишет траффик, пароль вынимать оттуда будет ооочень долго. Случай, когда злой дядька постоянно сидит рядом и готов построить mitm атаку, это как-то слишком параноидально. Случай с поддельной точкой доступа обходится очень просто — после успешного подключения к колонке нажать на аппаратную кнопку, помигать лампочкой… Получить обратную связь по другому каналу.
Случайно записанный свист расшифровывается очень просто и быстро.

И такая процедура настройки всегда убогая, медленная и геморная даже для айтишника, который знакомы со всеми этими вашими вайфаями, сколько я не настраивал подобные девайсы. Обычно вайфай этот запускается открытый, т.е. пароли опять летят в открытом виде, только здесь еще хуже, т.к. wifi пакеты таки поймать в разы проще, и летят они дальше. Шифрованная с фиксированным паролем — спуфится без проблем. Делать шифрованную точку с уникальным паролем для каждого устройства — гемор и пользователю, и производителю. Все это не стоит того мизерного бонуса к безопасности, который это все дает.
У меня возникло ощущение, что когда-то и где-то я читал этот комментарий…
Меня раздражало первое время когда на ютубе и везде было очень много рекламы с криками «Алиса, ....», от чего моя колонка активировалась и отвечала «звукам из телика».
И продолжает это делать.
Дома как огня боюсь упоминать в разговоре всяческих знакомых Алис :)
Установил на ноутбук дочери Алису, чтобы дочь могла нормально найти нужные ей мультики (дочери 3 года, зовут Алиса). Каждый раз, когда зову дочь погромче из другой комнаты — ноутбук отвечает.
У меня возле телевизора колонка активировалась при просмотре фильма «В гостях у Элис»
Да у меня Алекса от Амазон периодически ушки навостряет… Хотя казалось бы с чего ибо дома говорим в основном по русски.
Если что, домашние Wi-Fi камеры Dahua (лидер рынка наравне с Hikvision) под брендом Imou получают пароль от Wi-Fi сети таким же насвистыванием или ку-ку-каньем.
UFO just landed and posted this here

Ха-ха. Доверенная среда. Играешь такой в онлайн игру, а тебе из колонок по тимспику "Алиса, запри двери, выключи свет и включи газ". Это будет покруче Xbox shutdown троллинга https://www.google.com/url?sa=t&source=web&rct=j&url=https://m.youtube.com/watch%3Fv%3DanslUJ5SCIs&ved=0ahUKEwjK_6Hr8_jkAhXttYsKHSkkCFwQo7QBCCcwBA&usg=AOvVaw2VOSbvnLcdaBxlwANA1dK8

Отдельная благодарность за это видео, я давно так не смеялся. Спасибо.
Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?

Даёшь передачу данных в жанре Heavy Metal! Хотя бы соляками

Я правильно понимаю, что достаточно подарить жертве умную колонку от Яндекса и каким-то образом перехватить звук активации? Конечно, достаточно странный вектор атаки, но он имеет место быть… И пользователи узнают об этом не из инструкции, а на хабре.

UFO just landed and posted this here

Ну зачем они изобрели такие костыли? Почему нельзя это было сделать через Bluetooth или стандартным подключением к Wi-Fi колонки?


Собственно самый простой метод настройки уже придуман: у Apple и Samsung с их наушниками и другой техникой (HomePod/AppleTV) почему нельзя было использовать такой же метод?

image

Ну, Я, экономы: вместо чтобы просто выдать награду каждому, кто о проблеме или баге в безопасности сообщит, они стали устраивать конкурс среди всем приславших репорты, чтобы потратить на всех один приз. Ок, может, «призовых мест» там в конкурсе не одно, а три (и приза тоже три — т.е. экономия раза в 2.5 меньшая), но и конкурс, как бы помягче сказать, впору проводить скорее не среди исследователей, а среди разработчиков Я — кто больше скосячил.

Думаю, кстати, что приз автора ушел как раз разрабу, который такую авторизацию придумал.

P.S. Не то чтобы на баунти-выплаты кто-то планирует прожить, но интерес такой подход подогревает, плюс дает положительную обратную связь исследователям и сообществу (сабмитишь в компанию баг, а тебя не то что в полицию сдают, а еще и награждают, т.е. стимулируют поиски потенциальных дыр, а, значит, конкретной компании не пофиг). А с таким подходом, как в приведенном автоответе так и хочется задать «вопрос на засыпку»: какова вероятность, что следующие баги будут отправляться в Я, а не просто сразу на Хабре разбираться (в лучшем случае)?
Такое впечатление, что Я специально свои поделия детища сначала громко выпускает, а потом тихо топит, забивая в мелочах.
Имхо, среди российских Bug Bounty Яндекс — вполне уверенный среднячок: на голову превосходит ВК с их «Ого, как исправить эту проблему? *Молчание месяц* А мы знаем об этой проблеме из внутренних источников, что же ты на чёрный рынок не пошёл, лошок?))))», но уступает нескольким хорошим программам.

Но есть тот момент, который меня стабильно раздражает: Яндекс берет сервис, размещает на своём домене, клеит свои логотипы, а потом, когда там обнаруживается критическая дыра, заявляет «А это сервис партнёров)))))», денег нет, но проблема исправлена. Весьма сомнительные ощущения.
Это вы еще про Wi-Fi Smart Config не слышали, там, конечно, есть опциональное AES шифрование, большинство разработчиков «забывают» его включить.
Без шифрования пароль открытым текстом передается по Wi-Fi
Ответ Яндекса в стиле: «Часы не варить!»
Sign up to leave a comment.

Articles

Change theme settings