В наше время ни одно устройство с сетевым подключением не защищено от потенциального взлома. Даже фотоаппарат.
На хакерской конференции DEF CON 2019 Эяль Иткин из Check Point Software Technologies показал первый в мире действующий эксплоит для протокола PTP (Picture Transfer Protocol). Многие современные DSLR поддерживают передачу файлов по WiFi. В данном случае описана зловредная точка доступа WiFi, к которой автоматически подключаются окружающие камеры.
Экплоит работает и при физическом подключении камеры к компьютеру по PTP/USB. В обоих случаях злоумышленник может установить соединение с камерой и загрузить на неё исполняемый код. Например, для шифрования всех изображений на карте.
Для примера Эяль Иткин из Check Point загрузил на камеру Canon EOS 80D демо-версию зловреда-вымогателя, который шифрует файлы на флэш-карте. Иткин предполагает, что это вполне реальная модель монетизации: часто там хранятся фотографии важных жизненных событий, поэтому люди захотят заплатить, чтобы получить их обратно.
Кроме вымогателя, теоретически возможны и другие способы использования эксплоита:
- Полное выведение из строя
- Использование камеры для шпионажа (она уже делает фотографии)
Модель Canon выбрали, потому что этот производитель контролирует более 50% мирового рынка цифровых камер. Кроме того, вокруг камер Canon сложилось обширное моддерское движение. Активисты провели реверс-инжиниринг прошивки и аппаратного обеспечения для выпуска свободных прошивок с расширенной функциональностью: см. Magic Lattern и Canon Hack Development Kit (CHDK).
Но аналогичные методы применимы и для других камер, поскольку все они поддерживают PTP стандартным образом. А этот протокол обладает важными свойствами, которые благоприятствуют взлому:
- никакой аутентификации и шифрования (протокол изначально создавался под USB, тогда не предполагалось существование PTP/IP);
- поддержка десятков сложных команд с богатой функциональностью;
- поддержка WiFi.
В связи со взломом компания Canon выпустила патч и предупреждение безопасности, в которой рекомендует пользователям соблюдать меры предосторожности, не подключаться к подозрительным WiFi и отключать сетевые функции, если те не используются.
Видеодемонстрация
Технические детали атаки
Первым делом хакер провёл реверс-инжиниринг и анализ прошивки камеры. Оказалось, что она зашифрована AES, а ключа нет. Но сообщество Magic Lattern уже решило эту проблему. Они использовали ROM Dumper и раздобыли ключи.
Дамп загружается в IDA, а у Magic Lattern есть хорошая база с документированными адресами, откуда вызывается та или иная функция. В камерах Canon используется проприетарная ОС реального времени DryOS. Благодаря ей девайс способен перезагрузиться всего за три секунды.
Вот список команд PTP с опкодами в DryOS. Чтобы найти необходимый код в прошивке, достаточно запустить поиск соответствующей константы, указанной в списке для каждой команды.
Поверхностный анализ некоторых функций, которые работают с командами PTP показал, что они довольно сложно реализованы (148 уникальных обработчиков в одной функции) и там присутствуют явные уязвимости на переполнение буфера.
Иткин нашёл четыре уязвимости с переполнением буфера при вызове четырёх команд PTP (SendObjectInfo, NotifyBtStatus, BLERequest, SendHostInfo): номера уязвимостей CVE-2019-5994, CVE-2019-5998, CVE-2019-5999, CVE-2019-6000). Интересно, что две уязвимости связаны с обработкой Bluetooth, хотя данная модель камеры не поддерживает Bluetooth.
Теперь оставалось собрать подходящий эксплоит, что и было сделано. Но автор не остановился на этом и для более наглядной демонстрации решил написать программу-вымогатель, которая будет шифровать файлы на флэш-карте. Причём идея была в том, чтобы не реализовать собственную криптографию, а использовать функции шифрования AES, встроенные в саму прошивку Canon! В поисках криптографических функций Искин даже нашёл сами ключи шифрования.
Из-за проприетарной реализации оказалось затруднительно понять, как вырабатывается ключ в прошивке. Но это понимание необязательно для использования криптографических функций, сказал Иткин. По команде зловреда они успешно шифруют фотографии на карте и вычисляют корректную подпись.
Иткин также разработал способ установки вредоносного обновления прошивки на камеру без участия пользователя (CVE-2019-5995).
В презентации на DEF CON автор говорит, что это первый эксплоит для протокола PTP и «надёжный способ захвата большинства DSLR без эксплуатации каких-либо уязвимостей».
Автор: GlobalSign_admin