USB-накопитель eyeDisk с биометрической защитой, который «невозможно взломать»

Самые современные методы биометрической защиты не всегда означают повышенную безопасность. Провал разработчиков eyeDisk на самом деле показывает более общие тенденции. К сожалению, в IT-отрасли случается так, что под впечатлением «блестящих» новых технологий люди забывают об основах безопасности.

Разработчики рекламировали eyeDisk как «невзламываемый» USB-накопитель — и успешно оформили на «Кикстартере» более $21 тыс. предварительных заказов.

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

Сканирование и распознавание занимают примерно 0,5 секунды.



Флэшка на 32 ГБ продаётся за $99, а инвесторы в рамках краудфандинговой кампании могли заказать её за $50. Самая дорогая флэшка на 128 ГБ стоит $178 ($89). Продажи начались в марте 2019 года.

«Невзламываемая» флэшка привлекла внимание хакеров из PenTestPartners. Они пишут, что первым делом подключили носитель к виртуальной машине Windows. Оно распозналось как три устройства, в том числе USB-камера. Инфракрасная камера делает забавные чёрно-белые фотографии: например, у бородатых людей не видно бороды.

Затем пентестеры вскрыли eyeDisk и рассмотрели его внутренности. Впоследствии это не пригодилось для взлома, но такова стандартная процедура. Они обратили внимание на любопытный факт: на плате присутствует три MCU (выделены красным и зелёным цветом на фотографиях), но среди них нет центрального блока управления, у каждого чипа своя роль.



Синим цветом показана камера, а фиолетовым — две микросхемы tssop8 (PUYA P25Q040H SPI NOR Flash).



Затем пришло время программного обеспечения. Последние версии пакетного снифера Wireshark умеют прослушивать трафик по USB. Для справки, USB mass storage представляет собой оболочку для команд SCSI, так что общий паттерн выглядит примерно так:



Здесь указаны LUN (Logical Unit Number), под которым распознаётся устройство, и блок дескрипторов команд CDB (Command Descriptor Block). В данном случае верхний пакет отправляет команду SCSI с опкодом 0х06 и получает ответ от устройства. В терминологии USB слово “In” обозначает направление к хосту, “Out” — к устройству.

Содержимое первого пакета:



Содержимое ответного пакета:



А вот какие пакеты передаются в момент разблокировки устройства после успешной аутентификации. Сначала команда SCSI с хоста:



И ответ устройства:



Красным цветом показан пароль, который установлен для устройства. Как видим, он передаётся в открытом виде. А ведь прослушать шину USB не представляет никакой сложности, о чём разработчики совершенно не подумали. Или это были фрилансеры, которым прямо не сказали реализовать шифрование паролей (см. статью «Веб-разработчики пишут небезопасный код по умолчанию»: в вебе такая же проблема).

Синим цветом на скриншоте выделены 16 байт хэша радужной оболочки глаза — второй фактор двухфакторной аутентификации.

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

Вот и всё, что представляет собой «невзламываемый» накопитель eyeDisk.

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

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

Прослушивание трафика очень часто позволяет выявить уязвимости в устройствах Интернета вещей и другой периферии. Разработчикам иногда забывают, что любой канал передачи можно прослушать. Модные современные технологии вроде сканирования радужной оболочки или другая биометрия не добавят безопасности, если пренебрегать шифрованием.



Примите участие в PKI опросе от GlobalSign до 24 мая 2019 г. и вы получите возможность выиграть призы, один из которых Amazon Gift Card на сумму 500$.


Опрос доступен по ссылке: www.surveymonkey.com/r/GlobalSignPKI-2019

Комментарии (14)


  1. Sly_tom_cat
    15.05.2019 11:16

    А я правильно понял что на компе должны стоять «дровцы», которые этот пароль и хеш радужки сверяют?

    И смысл?

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


    1. Vitaly83vvp
      15.05.2019 12:56

      Ага. А это ПО поддерживает все платформы? Что-то мне подсказывает, что нет.
      А по факту, да, все проверки нужно делать на самом устройстве. Глядишь, и уязвимостей станет меньше.
      Хотя, я в принципе не могу понять что же такое секретное можно там хранить. И, если на флешке что-то особо секретное, то, может, проще физически доступ к ней ограничить. Для корпораций смысл я вижу, а для обычных пользователей — нет.


      1. Antervis
        15.05.2019 18:44

        Ага. А это ПО поддерживает все платформы? Что-то мне подсказывает, что нет.

        wireshark вполне себе кросс-платформенная утилита, имеет даже portable версию. Воспроизвести все шаги для взлома флешки на обычном пк и без глубоких хакерских познаний можно минут за 10-15. В статье они, кстати, приводятся


        1. zagayevskiy
          16.05.2019 06:00

          Вопрос про ПО от флешки был.


        1. maxvalrus
          16.05.2019 11:03

          Полагаю имелась ввиду кроссплатформенность софта от eyeDisk. А раз надо ставить софт, то TrueCrypt или VeraCrypt в данном случае выглядят куда безопаснее чем эти модные штучки, еще вопрос как внутри данные шифруются.


  1. PoliTeX
    15.05.2019 11:21
    +1

    А что, правда, что такой камерой можно надежно сканировать радужку?

    фото
    image


    1. DaemonGloom
      15.05.2019 11:43

      Правда, только это делается на других углах и расстояниях — нужно прямо посмотреть в камеру с указанного производителем расстояния… В Самсунгах такая же технология стоит, вполне неплохо работает.


      1. PoliTeX
        15.05.2019 11:55

        Ничесе, алгоритмы дошли. Спасибо.


  1. AlexLur
    15.05.2019 12:32
    +1

    А лучше бы отреагировали, чтобы не было огласованно… Подпортили себе репутацию


  1. lonelymyp
    15.05.2019 20:49

    Не совсем понял в чём собственно суть взлома?

    Как написано в статье, пароль в открытом виде передаётся только после успешной аутентификации, то есть получается надо сначало взломать компьютер пользователя, выудить оттуда пароль и уже с этим паролем можно штатным образом открыть флешку.

    Но этак любую защиту можно «взломать», кейлоггером подсмотреть пароль и потом этим паролем штатно снять защиту.


    1. dartraiden
      15.05.2019 20:58

      Но этак любую защиту можно «взломать», кейлоггером подсмотреть пароль и потом этим паролем штатно снять защиту.
      Кейлоггер «подсматривает» пароль при вводе, а описанный в статье случай — подсматривание при дальнейшей передаче пароля.

      Корректная аналогия: вы вводите пароль во вконтактике, а пароль улетает открытым текстом по незащищённому HTTP.

      Кроме того, против кейлоггеров тоже есть защита. Например, драйверы типа KeyScrambler.


    1. Barafu_Albino_Cheetah
      15.05.2019 22:59
      +1

      Тырим флешку. На свой компьютер ставим ПО производителя. Смотрим в флешку "неправильным" глазом. При этом Wiresharkом получаем правильный пароль. Открываем флешку паролем, без глаза.
      Наверняка так же можно сэмулировать handshake и тогда ПО производителя не понадобится.


    1. rPman
      16.05.2019 10:12

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


  1. SynmanProff
    16.05.2019 13:13

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