SlideShare a Scribd company logo
1 of 22
Очень длинное
название презентации
Evil Printer: собираем
нескучную прошивку
Иван Бойко
Владимир Назаров
Антон Дорфман
Кто мы и с чего все началось
• Отдел безопасности промышленных систем управления
• Отдела анализа приложений
• Проект с принтером в технологической сети
• В этой сети находятся контроллеры, управляющие техпроцессом
• Была показана опасность такого соседства – с принтера атаковали
контроллер
Строение прошивки
• Загрузчик
• Проверяет чексуммы
• Распаковывает ядро и передает ему
управление
• Обфусцированное ядро
• Хитрый XOR по генерируемым таблицам
• Сжатые исполняемые модули
• Обычный zlib со стандартным сжатием
• Чексуммы
• Волшебное число минус сумма всех слов
(word) в прошивке
Формат разобран ===>
можем собирать свои
прошивки!
Создание модифицированных прошивок для Phaser 3320
Реверс прошивок:
• ОС VxWorks
• Архитектура ARM LE
• 11 модулей, среди них сетевой и ядро
Фреймворк для генерации нагрузок:
• Освобождение места из-под строк и коррекция Xref на них
• Использование блоков кода оригинальной программы как строительных кирпичиков для своего кода
• Размещение своего кода и данных в освобожденных блоках
• Настройка вызовов и переходов для своего кода
• Быстрая перенастройка размещения кода и данных
• Вся работа по генерации нагрузки – не выходя из IDA Pro ;-)
Как залить модифицированную прошивку в принтер
Удаленно
• Старые модели
• Новые через уязвимости в процессе обновления
Локально
• Через USB
• Запись во флеш-память программатором
Стенд для демо
• Принтер с Wi-Fi, доступным из-
за забора
• Завод, производящий
позитивный дым
• Процесс управляется ПЛК
• ПЛК отдает данные в SCADA
• Ноутбук, подключенный только
к Wi-Fi принтера
1
2
3
4
1 Принтер
2 ПЛК
3
4
SCADA
Ноутбук
Прокси из беспроводной сети в проводную
• Принтер - устройство с проводным и Wi-Fi
интерфейсами
• Почему бы не сделать полноценный шлюз
в проводную сеть?
• Демо: «чат» между ноутбуком
подключенном по Wi-Fi и SCADA в LAN SOFTWARE
PROXY
Прокси из беспроводной сети в проводную - демо
Управляем технологическим процессом
Функции нагрузки в прошивке принтера:
• FULL POWER – увеличение выбросов
дыма
• NORMAL POWER – включение
штатного режима
• SWITCH FACTORY OFF - Остановка
завода (ransomware )
• SWITCH FACTORY ON - Запуск
завода
Все действия вызываются командами с
ноутбука по Wi-Fi «из-за забора»
EVIL
PRINTER
Управление технологическим процессом – демо
Перехват печатаемых документов
• Отчет отправляется на печать из
SCADA через LAN
• Для их кражи достаточно пересылать
все печатаемые документы байт-в-
байт через Wi-Fi за забор
• Злоумышленник принимает и
распечатывает копию задания на
своем принтере
CRITICAL
DATA
EVIL
PRINTER
ATTACKERS
PRINTER
STOLEN
CRITICAL
DATA
Перехват документов - стенд
• Принтер (1) получает
данные от SCADA (2)
• Данные дублируются по
Wi-Fi на ноутбук (3)
• Ноутбук отправляет
данные на свой локальный
принтер (4)
1
2
3
4
1 Принтер
2 SCADA
3
4
Ноутбук
Принтер 2
Перехват документов – демо
Контроллер 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
Управление элементами принтера на примере термоузла
Управление термоузлом
• Основа печи - галогеновая лампа на
850 Ватт
• Печь управляется программно
• Контроль над прошивкой дает
возможность управления узлами
принтера
Управление элементами принтера на примере термоузла
Найдены области памяти отвечающие за регистры аппаратуры
Выявлен код, отвечающий за активацию режимов работы:
• FUSER_ON (включение нагрева)
• FUSER_OFF (выключение нагрева)
• STANDBY (ожидание)
• SLEEP (приостановка)
Выявлен код для получения текущей температуры «печки»
• Демо: Управление печью - включение режима постоянного нагрева
Управление термоузлом - демо
Последствия длительного нагрева
Испытания (на лампе в 600 ватт):
• до потемнения бумаги - 30 сек
• до появления дыма из принтера - 40 секунд
• до появления открытого огня - 120 секунд
Резюме
Разобрано строение прошивки
Реализованы следующие нагрузки:
• Прокси WLAN  LAN
• Управление техпроцессом
• Перехват документов
• Управление термоузлом
Благодарности
• Всему дружному отделу безопасности промышленных систем управления
• Сереже, Дмитрию Склярову и Михаилу Цветкову
• Компании Positive Technologies за возможность заниматься исследованием
безопасности принтеров
Принтеры повсюду - демо
Спасибо за внимание!
ptsecurity.ru

More Related Content

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

Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Expolink
 
Дмитрий Дудов. Индустриальная IPS своими руками
Дмитрий Дудов. Индустриальная IPS своими рукамиДмитрий Дудов. Индустриальная IPS своими руками
Дмитрий Дудов. Индустриальная IPS своими руками
Positive Hack Days
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективы
d_olex
 
[JAM 2.1] RootKIT (Dmitry Kostenich)
[JAM 2.1] RootKIT (Dmitry Kostenich)[JAM 2.1] RootKIT (Dmitry Kostenich)
[JAM 2.1] RootKIT (Dmitry Kostenich)
jam_team
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo Development
 

Similar to Evil Printer: собираем нескучную прошивку (20)

Основные возможности системы обнаружения вторжений HP TippingPoint
Основные возможности системы обнаружения вторжений HP TippingPointОсновные возможности системы обнаружения вторжений HP TippingPoint
Основные возможности системы обнаружения вторжений HP TippingPoint
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
 
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
Код безопасности. Иван Бойцов. "Secret Net Studio - Комплексная защита конечн...
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
 
Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?
 
Дмитрий Дудов. Индустриальная IPS своими руками
Дмитрий Дудов. Индустриальная IPS своими рукамиДмитрий Дудов. Индустриальная IPS своими руками
Дмитрий Дудов. Индустриальная IPS своими руками
 
PHP daemons into social games
PHP daemons into social gamesPHP daemons into social games
PHP daemons into social games
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Нюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOCНюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOC
 
IXIA IxChariot
IXIA IxChariotIXIA IxChariot
IXIA IxChariot
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективы
 
SOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge acceptedSOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge accepted
 
[JAM 2.1] RootKIT (Dmitry Kostenich)
[JAM 2.1] RootKIT (Dmitry Kostenich)[JAM 2.1] RootKIT (Dmitry Kostenich)
[JAM 2.1] RootKIT (Dmitry Kostenich)
 
Lirc или домашний медиацентр
Lirc или домашний медиацентрLirc или домашний медиацентр
Lirc или домашний медиацентр
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
 
Interactive Lab: Разработка Flash игр на Unity3D
Interactive Lab: Разработка Flash игр на Unity3DInteractive Lab: Разработка Flash игр на Unity3D
Interactive Lab: Разработка Flash игр на Unity3D
 

More from Positive Hack Days

Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
Positive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
Positive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Positive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
Positive Hack Days
 

More from Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

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

  • 1. Очень длинное название презентации Evil Printer: собираем нескучную прошивку Иван Бойко Владимир Назаров Антон Дорфман
  • 2. Кто мы и с чего все началось • Отдел безопасности промышленных систем управления • Отдела анализа приложений • Проект с принтером в технологической сети • В этой сети находятся контроллеры, управляющие техпроцессом • Была показана опасность такого соседства – с принтера атаковали контроллер
  • 3. Строение прошивки • Загрузчик • Проверяет чексуммы • Распаковывает ядро и передает ему управление • Обфусцированное ядро • Хитрый XOR по генерируемым таблицам • Сжатые исполняемые модули • Обычный zlib со стандартным сжатием • Чексуммы • Волшебное число минус сумма всех слов (word) в прошивке Формат разобран ===> можем собирать свои прошивки!
  • 4. Создание модифицированных прошивок для Phaser 3320 Реверс прошивок: • ОС VxWorks • Архитектура ARM LE • 11 модулей, среди них сетевой и ядро Фреймворк для генерации нагрузок: • Освобождение места из-под строк и коррекция Xref на них • Использование блоков кода оригинальной программы как строительных кирпичиков для своего кода • Размещение своего кода и данных в освобожденных блоках • Настройка вызовов и переходов для своего кода • Быстрая перенастройка размещения кода и данных • Вся работа по генерации нагрузки – не выходя из IDA Pro ;-)
  • 5. Как залить модифицированную прошивку в принтер Удаленно • Старые модели • Новые через уязвимости в процессе обновления Локально • Через USB • Запись во флеш-память программатором
  • 6. Стенд для демо • Принтер с Wi-Fi, доступным из- за забора • Завод, производящий позитивный дым • Процесс управляется ПЛК • ПЛК отдает данные в SCADA • Ноутбук, подключенный только к Wi-Fi принтера 1 2 3 4 1 Принтер 2 ПЛК 3 4 SCADA Ноутбук
  • 7. Прокси из беспроводной сети в проводную • Принтер - устройство с проводным и Wi-Fi интерфейсами • Почему бы не сделать полноценный шлюз в проводную сеть? • Демо: «чат» между ноутбуком подключенном по Wi-Fi и SCADA в LAN SOFTWARE PROXY
  • 8. Прокси из беспроводной сети в проводную - демо
  • 9. Управляем технологическим процессом Функции нагрузки в прошивке принтера: • FULL POWER – увеличение выбросов дыма • NORMAL POWER – включение штатного режима • SWITCH FACTORY OFF - Остановка завода (ransomware ) • SWITCH FACTORY ON - Запуск завода Все действия вызываются командами с ноутбука по Wi-Fi «из-за забора» EVIL PRINTER
  • 11. Перехват печатаемых документов • Отчет отправляется на печать из SCADA через LAN • Для их кражи достаточно пересылать все печатаемые документы байт-в- байт через Wi-Fi за забор • Злоумышленник принимает и распечатывает копию задания на своем принтере CRITICAL DATA EVIL PRINTER ATTACKERS PRINTER STOLEN CRITICAL DATA
  • 12. Перехват документов - стенд • Принтер (1) получает данные от SCADA (2) • Данные дублируются по Wi-Fi на ноутбук (3) • Ноутбук отправляет данные на свой локальный принтер (4) 1 2 3 4 1 Принтер 2 SCADA 3 4 Ноутбук Принтер 2
  • 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. Управление термоузлом • Основа печи - галогеновая лампа на 850 Ватт • Печь управляется программно • Контроль над прошивкой дает возможность управления узлами принтера
  • 16. Управление элементами принтера на примере термоузла Найдены области памяти отвечающие за регистры аппаратуры Выявлен код, отвечающий за активацию режимов работы: • FUSER_ON (включение нагрева) • FUSER_OFF (выключение нагрева) • STANDBY (ожидание) • SLEEP (приостановка) Выявлен код для получения текущей температуры «печки» • Демо: Управление печью - включение режима постоянного нагрева
  • 18. Последствия длительного нагрева Испытания (на лампе в 600 ватт): • до потемнения бумаги - 30 сек • до появления дыма из принтера - 40 секунд • до появления открытого огня - 120 секунд
  • 19. Резюме Разобрано строение прошивки Реализованы следующие нагрузки: • Прокси WLAN  LAN • Управление техпроцессом • Перехват документов • Управление термоузлом
  • 20. Благодарности • Всему дружному отделу безопасности промышленных систем управления • Сереже, Дмитрию Склярову и Михаилу Цветкову • Компании Positive Technologies за возможность заниматься исследованием безопасности принтеров