Автор: Christian Haschek
История о том, как мы нашли, исследовали (с помощью сообщества в Reddit) и в итоге обнаружили, кто подключил вредоносное устройство к нашей сети.
На прошлой неделе я получил сообщение и фото от своего коллеги.
Рисунок 1: Сообщение с просьбой проверить, куда подключено неизвестное устройство Raspberry Pi
Поскольку в основном я работаю удаленно, то попросил коллегу отключить и поместить найденное устройство в надежное место, а также сделать фотографии всех компонентов и образ SD карты. У меня большой опыт работы с разными проектами, где использовалось Raspberry Pi, и я был уверен, что смогу разобраться, в чем дело.
На тот момент никто не подозревал, что устройство используется во вредоносных целях. Все думали, что кто-то из сотрудников проводит эксперимент.
Компоненты устройства
Найденное устройство состояло из трех блоков:
· Raspberry Pi модель b первого поколения.
Загадочный USB-ключ.
SD карта размером 16 Гб (с повышенной скоростью).
Рисунок 2: USB ключ и SD карта
Первое, что нужно было сделать: спросить, у кого есть доступ к этому сетевому узлу.
Оказалось, что ключ от этого небольшого шкафа был всего у 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, кто помог мне в решении этой загадки.
Источник: