Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evil Printer: собираем нескучную прошивку

272 views

Published on

Вокруг нас есть устройства, которые выполняют важную работу, но их безопасностью зачастую пренебрегают. Эти устройства — сетевые принтеры и МФУ. Докладчик рассмотрит варианты расширения стандартных возможностей этих устройств с помощью модификации прошивки. Будут показаны реальные боевые нагрузки для атак на корпоративные и промышленные сети.
Докладчик: Антон Дорфман, авторы: Владимир Назаров и Иван Бойко.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Evil Printer: собираем нескучную прошивку

  1. 1. Очень длинное название презентации Evil Printer: собираем нескучную прошивку Иван Бойко Владимир Назаров Антон Дорфман
  2. 2. Кто мы и с чего все началось • Отдел безопасности промышленных систем управления • Отдела анализа приложений • Проект с принтером в технологической сети • В этой сети находятся контроллеры, управляющие техпроцессом • Была показана опасность такого соседства – с принтера атаковали контроллер
  3. 3. Строение прошивки • Загрузчик • Проверяет чексуммы • Распаковывает ядро и передает ему управление • Обфусцированное ядро • Хитрый XOR по генерируемым таблицам • Сжатые исполняемые модули • Обычный zlib со стандартным сжатием • Чексуммы • Волшебное число минус сумма всех слов (word) в прошивке Формат разобран ===> можем собирать свои прошивки!
  4. 4. Создание модифицированных прошивок для Phaser 3320 Реверс прошивок: • ОС VxWorks • Архитектура ARM LE • 11 модулей, среди них сетевой и ядро Фреймворк для генерации нагрузок: • Освобождение места из-под строк и коррекция Xref на них • Использование блоков кода оригинальной программы как строительных кирпичиков для своего кода • Размещение своего кода и данных в освобожденных блоках • Настройка вызовов и переходов для своего кода • Быстрая перенастройка размещения кода и данных • Вся работа по генерации нагрузки – не выходя из IDA Pro ;-)
  5. 5. Как залить модифицированную прошивку в принтер Удаленно • Старые модели • Новые через уязвимости в процессе обновления Локально • Через USB • Запись во флеш-память программатором
  6. 6. Стенд для демо • Принтер с Wi-Fi, доступным из- за забора • Завод, производящий позитивный дым • Процесс управляется ПЛК • ПЛК отдает данные в SCADA • Ноутбук, подключенный только к Wi-Fi принтера 1 2 3 4 1 Принтер 2 ПЛК 3 4 SCADA Ноутбук
  7. 7. Прокси из беспроводной сети в проводную • Принтер - устройство с проводным и Wi-Fi интерфейсами • Почему бы не сделать полноценный шлюз в проводную сеть? • Демо: «чат» между ноутбуком подключенном по Wi-Fi и SCADA в LAN SOFTWARE PROXY
  8. 8. Прокси из беспроводной сети в проводную - демо
  9. 9. Управляем технологическим процессом Функции нагрузки в прошивке принтера: • FULL POWER – увеличение выбросов дыма • NORMAL POWER – включение штатного режима • SWITCH FACTORY OFF - Остановка завода (ransomware ) • SWITCH FACTORY ON - Запуск завода Все действия вызываются командами с ноутбука по Wi-Fi «из-за забора» EVIL PRINTER
  10. 10. Управление технологическим процессом – демо
  11. 11. Перехват печатаемых документов • Отчет отправляется на печать из SCADA через LAN • Для их кражи достаточно пересылать все печатаемые документы байт-в- байт через Wi-Fi за забор • Злоумышленник принимает и распечатывает копию задания на своем принтере CRITICAL DATA EVIL PRINTER ATTACKERS PRINTER STOLEN CRITICAL DATA
  12. 12. Перехват документов - стенд • Принтер (1) получает данные от SCADA (2) • Данные дублируются по Wi-Fi на ноутбук (3) • Ноутбук отправляет данные на свой локальный принтер (4) 1 2 3 4 1 Принтер 2 SCADA 3 4 Ноутбук Принтер 2
  13. 13. Перехват документов – демо
  14. 14. Контроллер LPEC1 (Engine Controller) управляет следующими устройствами: • ADC • HVPS (High Voltage Power Supply) • LSU (Laser Scanning Unit) • Clutch • Fan • Fuser («печка») – Toner fix (Pressure and Heating with Lamp) • Motor • OptionTray • Power • Sensor • UART Управление элементами принтера на примере термоузла
  15. 15. Управление термоузлом • Основа печи - галогеновая лампа на 850 Ватт • Печь управляется программно • Контроль над прошивкой дает возможность управления узлами принтера
  16. 16. Управление элементами принтера на примере термоузла Найдены области памяти отвечающие за регистры аппаратуры Выявлен код, отвечающий за активацию режимов работы: • FUSER_ON (включение нагрева) • FUSER_OFF (выключение нагрева) • STANDBY (ожидание) • SLEEP (приостановка) Выявлен код для получения текущей температуры «печки» • Демо: Управление печью - включение режима постоянного нагрева
  17. 17. Управление термоузлом - демо
  18. 18. Последствия длительного нагрева Испытания (на лампе в 600 ватт): • до потемнения бумаги - 30 сек • до появления дыма из принтера - 40 секунд • до появления открытого огня - 120 секунд
  19. 19. Резюме Разобрано строение прошивки Реализованы следующие нагрузки: • Прокси WLAN  LAN • Управление техпроцессом • Перехват документов • Управление термоузлом
  20. 20. Благодарности • Всему дружному отделу безопасности промышленных систем управления • Сереже, Дмитрию Склярову и Михаилу Цветкову • Компании Positive Technologies за возможность заниматься исследованием безопасности принтеров
  21. 21. Принтеры повсюду - демо
  22. 22. Спасибо за внимание! ptsecurity.ru

×