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

На конференции PanSec 2015, прошедшей в Токио на прошлой неделе, сотрудники Xuanwu Lab крупнейшего китайского телеоператора Tencent продемонстрировали ряд кибератак подменой штрихкода, считываемого встроенным в кассовый бокс сканером. В результате атаки на машину устанавливался шелл, позволяющий удаленно подавать команды. Такие атаки, поименованные BadBarcode, довольно просты в исполнении. Исследователи также отметили, что при этом трудно определить, что требует патч — сами сканеры, хост-система или и то, и другое, а возможно, эти устройства вообще ни при чем.

«Мы не знаем, какие планы могут быть у злоумышленников, — комментирует Ян Юй (Yang Yu), который проводил исследование вместе с коллегой — Хайпершемом Ма (Hyperchem Ma). — BadBarcode поможет выполнить любую команду на хост-машине или внедрить троянскую программу. То есть теоретически BadBarcode позволяет выполнять любые действия». В прошлом году Юй получил от Microsoft $100 тыс. в рамках программы Mitigation Bypass Bounty — за демонстрацию трех вариантов обхода ASLR и DEP.

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

В ходе презентации Юй и Ма показали преобразованные в ASCII-код команды Ctrl+, которые можно использовать для активации горячих клавиш. Они регистрируются с префиксом Ctrl+ и используются для запуска стандартных диалоговых средств управления, таких как OpenFile, SaveFile, PrintDialog. Применяя горячие клавиши, атакующий сможет просмотреть файловую систему компьютера, запустить браузер или исполнить различные программы.

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

Исправить этот баг сложно, так как, по свидетельству Юя, он не привязан к конкретным моделям сканеров — например, к изделиям Esky, Symbol, Honeywell или TaoTronics. «BadBarcode — это не уязвимость определенного продукта, — поясняет Юй. — Такие атаки возможны во всех отраслях, использующих сканирование штрихкодов. BadBarcode также нельзя уверенно отнести к проблемам сканеров или хост-систем. По этой причине мы никак не могли решить, кому из производителей доложить о находке».

Юй рекомендует производителям сканеров штрихкода применять дополнительные функции помимо стандартных, используемых по умолчанию. Дефолтная передача на хост-машину управляющих символов ASCII, по мнению исследователя, тоже порочная практика. Кроме того, хостеры IoT должны хорошенько подумать, прежде чем использовать сканеры штрихкодов, эмулирующие клавиатуру, и в любом случае отключить горячие клавиши.

Категории: Уязвимости