Аналитики компании Check Point обнаружили шесть уязвимостей в имплементации протокола Picture Transfer Protocol (PTP), использующегося в камерах Canon. Эксплуатация этих проблем в конечном итоге приводит к захвату контроля над устройством и позволяет злоумышленнику установить на зеркалку любую малварь (в том числе и «по воздуху», если камера поддерживает беспроводные соединения). Исследователи продемонстрировали такую атаку на примере зеркальной камеры Canon EOS 80D, которую в итоге заразили вымогателем через Wi-Fi соединение.
Сначала эксперты внимательно изучили реализацию PTP в камерах Canon. Затем они изучили все 148 поддерживаемых команд, а после сузили список до 38 из них, которые имеют input-буфер. Таким образом было выявлено шесть различных проблем. Список уязвимых команд и их уникальные идентификаторы можно увидеть ниже. При этом стоит отметить, что не все эти уязвимости необходимо задействовать для несанкционированного доступа к камере.
- CVE-2019-5994 - переполнение буфера в SendObjectInfo (opcode 0x100C);
- CVE-2019-5998 - переполнение буфера в NotifyBtStatus (opcode 0x91F9);
- CVE-2019-5999– переполнение буфера в BLERequest (opcode 0x914C);
- CVE-2019-6000– переполнение буфера в SendHostInfo (opcode 0x91E4);
- CVE-2019-6001– переполнение буфера в SetAdapterBatteryReport (opcode 0x91FD);
- CVE-2019-5995 – «тихое» обновление прошивки на вредоносную.
Вторая и третья уязвимости, найденные в командах, оказались связанны с Bluetooth, хотя изучаемая камера вообще не поддерживает этот тип соединения.
Исследователи рассказывают, что начали проверку камеры с обычного подключения к компьютеру с помощью кабеля USB. Беспроводное соединение не может быть использовано, когда камера подключена через USB, однако специалисты все равно могли тестировать и корректировать свой эксплоит, использующий вторую уязвимость из списка выше, пока не добились выполнения кода через USB-соединение.
Но после переключения на беспроводное соединение эксплоит попросту переставал работать, а в работе камеры происходил сбой. Дело в том, что отправка уведомления о состоянии Bluetooth при подключении через Wi-Fi сбивала камеру с толку (особенно учитывая, что она даже не поддерживает Bluetooth).
Тогда исследователи продолжили поиски других багов и обнаружили проблему, которая разрешает удаленное обновление прошивки без взаимодействия с пользователем. Реверс-инжиниринг помог выявить ключи для проверки легитимности прошивок и их шифрования.
Такое обновление прошивки будет иметь все правильные подписи, а камера примет его за легитимное. В итоге эксперты не только смогли создать эксплоит, работающий как через USB, так и через Wi-Fi, но вместе с этим обнаружили способ шифрования файлов на карте памяти камеры. Для этого были задействованы те же криптографические функции, которые использовались для процесса обновления прошивки. Видеоролик ниже демонстрирует атаку на Canon EOS 80D через Wi-Fi и заражение камеры шифровальщиком.
В настоящее время Canon уже опубликовала бюллетень безопасности, посвященный обнаруженным проблемам. Документ гласит, что компании не известно об использовании этих багов злоумышленниками, а также содержит ссылки на обновленные версии прошивок. Так, для европейских и азиатских пользователей обновления до версии 1.0.3. доступны с 30 июля текущего года, а для американских владельцев уязвимых камер обновление было опубликовано 6 августа.