17.01.2019

Любопытный случай обнаружения вредоносного устройства Raspberry Pi

image

История о том, как мы нашли, исследовали (с помощью сообщества в Reddit) и в итоге обнаружили, кто подключил вредоносное устройство к нашей сети.

Автор: Christian Haschek

История о том, как мы нашли, исследовали (с помощью сообщества в Reddit) и в итоге обнаружили, кто подключил вредоносное устройство к нашей сети.

На прошлой неделе я получил сообщение и фото от своего коллеги.

Рисунок 1: Сообщение с просьбой проверить, куда подключено неизвестное устройство Raspberry Pi

Поскольку в основном я работаю удаленно, то попросил коллегу отключить и поместить найденное устройство в надежное место, а также сделать фотографии всех компонентов и образ SD карты. У меня большой опыт работы с разными проектами, где использовалось Raspberry Pi, и я был уверен, что смогу разобраться, в чем дело.

На тот момент никто не подозревал, что устройство используется во вредоносных целях. Все думали, что кто-то из сотрудников проводит эксперимент.

Компоненты устройства

Найденное устройство состояло из трех блоков:

  • · Raspberry Pi модель b первого поколения.

  • Загадочный USB-ключ.

  • SD карта размером 16 Гб (с повышенной скоростью).

Рисунок 2: USB ключ и SD карта

Первое, что нужно было сделать: спросить, у кого есть доступ к этому сетевому узлу.

Оказалось, что ключ от этого небольшого шкафа был всего у 4 человек:

  1. У менеджера.

  2. У охранника.

  3. У моего коллеги.

  4. У меня.

Никто из вышеперечисленных людей ничего не знал про найденное устройство. Коллеги из IT-отдела были так же озадачены, как и я. Я слышал истории, когда людям платили вознаграждение за несанкционированное подключение подобного рода штуковин, и по этой причине мне стало особенно интересно разобраться, что произошло на самом деле.

Модель USB ключа

За помощью в решении этой загадки я обратился на Reddit, и ключ был опознан как микропроцессор, по функционалу практически не уступающий Rasberry Pi: nRF52832-MDK. Очень мощное считывающее устройство с поддержкой Wi-Fi, Bluetooth и RFID.

Рисунок 3: USB ключ (модель nRF52832-MDK)

Вне всякого сомнения, этот USB ключ предназначался для того, чтобы старая версия Raspberry Pi могла работать по Wi-fi и Bluetooth.

Исследование образа SD карты

На SD карте оказалось несколько разделов. Большинство с файловой системой ext4 (linux), и один загрузочный с fat16.

Рисунок 4: Структура разделов образа

Подключаем образ.

В своей системе на базе дистрибутива Debian я получил первую важную информацию: образ на SD карте был создан и установлен при помощи Resin.

Рисунок 5: Разделы образа SD карты, созданного в Resin

Что такое Resin?

Resin (сейчас переименован в Balena) представляет собой платный веб-сервис, при помощи которого можно создавать образы для IoT-девайсов, настраивать эти устройства, получать обновления и осуществлять взаимообмен данными с Resin.

Resin также устанавливает VPN на устройстве, чтобы собранные данные передавались безопасно. Очевидно, что создатель планировал забрать свой девайс, поскольку устройство хранило следы в виде учетной записи для подключения к платному сервису.

Детальное исследование разделов

Первый раздел называется «resin-boot».

Рисунок 6: Содержимое раздела resin-boot

Сразу же попадается на глаза файл config.json. Неужели мы сорвали быстрый джекпот?

Рисунок 7: Содержимое файла config.json, находящегося в разделе resin-boot

Что мы можем понять, изучив этот файл:

  • На устройстве используется приложение «logger». Не очень хороший знак.

  • Имя пользователя, которое, скорее всего, является именем учетной записи в сервисе Resin, привязанной к этому устройству.

  • На устройстве используется VPN на 443 порту.

  • Дата регистрации. Регистрация (или первая настройка) была 13 мая 2018 года.

Поиск по имени пользователя

Когда я загуглил имя пользователя, найденное в файле config.json, то обнаружил человека в том же самом городе, где было найдено устройство. Компания проверила свою картотеку по этому человеку, но ничего обнаружено не было.

Очень странным было то, что я обнаружил сайт от 2001 года, где родители «одаренных детей» писали статьи о себе и по каким-то причинам ставили подписи в виде домашнего адреса и номера телефона. Теперь у меня было имя и адрес всей семьи.

Рисунок 8: Схожий сайт с тем, что был обнаружен мной

На самом деле, я мог идти по ложному следу, поскольку схожие имена пользователей могут использоваться разными людьми. Пока просто запомним найденное имя.

Раздел resin-data

В директории с данными не оказалось ничего интересного (как, например, собранной информации). Мне лишь удалось обнаружить приложение на базе Node.js, которое было сильно обфусцировано, и на данный момент я не могу сказать, зачем это приложение было нужно.

Кажется, происходил контакт с ключом через последовательное соединение, но мне не удалось понять, какие данные собирались. Могу только предположить, что собирались профили движения (перемещения) для Bluetooth и Wi-fi устройств на близлежащей территории и, возможно, сырые Wi-Fi пакеты.

Но я нашел нечто намного более интересное: файл LICENSE.md.

Рисунок 9: Содержимое файла LICENSE.md

Странно… Почему это приложение содержит столь конфиденциальную информацию. Я погуглил компанию из раздела об авторских правах, и что бы вы думали?

Человек, использовавший имя пользователя, найденное в конфигурационном файле, является совладельцем этой компании.

Для меня остается загадкой, зачем совладельцу компании распространять подобного рода устройства в городе.

Поиск домашнего адреса злоумышленника

В третьем разделе (resin-state) я нашел еще один интересный файл в директории /root-overlay/etc/NetworkManager/system-connections/ с именем resin-wifi-01. И что бы вы думали было в этом файле?

Рисунок 10: Содержимое файла resin-wifi-01

В этом файле оказалась учетная запись к Wi-Fi сети, которая использовалась для настройки (или тестирования) устройства. Но этот Wi-Fi не принадлежал компании. А что мы делаем, чтобы найти местонахождение по имени сети? Идем в wigle.net, вводим SSID (эквивалентно имени сети) и находим точку на карте.

Рисунок 11: Имя и адрес оказались неактуальными

Думаете найденный адрес совпал с адресом родителей одаренных детей? Сервис wigle.net выдал адрес, где было найдено подозрительное устройство.

Послесловие

Я проверил логи DNS-сервера и обнаружил точную дату, когда найденное устройство впервые оказалось в сети. Я проверил логи RADIUS-сервера, чтобы посмотреть, кто из сотрудников находился в помещении в то время, но нашел только множество сообщений об ошибках, что были попытки подключения по Wi-Fi при помощи деактивированной учетной записи.

Деактивированная учетная запись принадлежала бывшему сотруднику, кто (по каким-то причинам) договорился с руководством о том, что будет хранить ключ от помещения некоторое время, пока не вывезет все свои вещи из здания (не спрашивайте, почему).

Что сейчас?

Сейчас этим делом занимаются юристы. Я свою работу выполнил, а остальное выходит за рамки моей компетенции.

Это был очень интересный случай, и я бы хотел поблагодарить всех, участвующих в дискуссии на Reddit, кто помог мне в решении этой загадки.