Загадочное дело о Raspberry Pi в шкафу для сетевого оборудования

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Как-то я получил от своего отца (мы вместе с ним работаем на одного клиента) сообщение с приложенной фотографией.


Сообщение от отца

Я попросил его отключить устройство, положить в безопасное место, сфотографировать со всех сторон и сделать образ SD-карты (потому что в основном я работаю удалённо). Я работал над многими проектами с Raspberry Pi и был уверен, что разберусь в назначении этого устройства.

В тот момент ещё никто не думал, что оно может быть зловредным, скорее, все думали, что это экспериментирует кто-то из сотрудников клиента.

Детали


Устройство состояло из трёх частей:

  • Raspberry Pi B первого поколения
  • Загадочный USB-донгл
  • SD-карта на 16 ГБ (с высокой скоростью)


USB-донгл и SD-карта

В первую очередь: опросить всех, кто имеет доступ к шкафу с сетевым оборудованием


Доступ к этому небольшому шкафу имеет очень ограниченный круг людей. Ключ от этой двери был только у четырёх человек:

  1. У менеджера
  2. У завхоза
  3. У моего коллеги
  4. У меня

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

Что это за USB-донгл?


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


USB-донгл nRF52832-MDK

Без всяких сомнений, он обеспечивал старому Raspberry Pi подключение к WiFi и Bluetooth. Отлично, так значит, у этой штуки теперь и WiFi есть…

Пришло время разобраться с образом SD-карты


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


Так образ выглядит в GParted

Отлично, примонтируем его.

Мой debian box указал мне на первую серьёзную улику: это установка resin.


Разделы Resin на SD-карте

Что такое Resin?


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

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

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


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


Что-нибудь бросается в глаза? Здесь есть config.json. Сразу джекпот?


config.json в разделе resin-boot

Что можно извлечь из этого файла:

  1. Приложение, развёрнутое на этом resin-устройстве, называется "logger". Плохой знак.
  2. У нас есть username. Похоже, это имя пользователя аккаунта resin, связанного с этим устройством.
  3. Подтверждение того, что устройство использовало VPN через порт 443
  4. Дата регистрации. Оно было зарегистрировано (или впервые развёрнуто/настроено?) 13 мая 2018 года.

К слову об имени пользователя...


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

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


Не тот сайт, но похожий

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

resin-data


В папке data не хранилось никаких данных (читай: собираемых данных), но в ней лежало сильно обфусцированное приложение на nodejs, и я до сих пор не знаю точно, что оно делает. Похоже, оно общается через последовательное соединение с донглом, но я не могу разобраться, какие данные оно собирает. Могу только предположить, что приложение собирало профили движения устройств Bluetooth и WiFi по соседству (рядом с офисом менеджеров) и, возможно, сырые WiFi-пакеты.

Однако я обнаружил нечто гораздо более интересное: файл LICENSE.md.


Скриншот файла LICENSE.md

Странно… Зачем это приложение на nodejs хранит конфиденциальное ПО? Я загуглил компанию из заголовка Copyright, и угадайте, что я нашёл?

Человек с именем пользователя, найденным в файле config, является её совладельцем


Моему пониманию не поддаётся, почему сооснователь компании мог бы распространять эти устройства по городу, но…



Получаем домашний адрес нападавшего


Ещё одну очень интересную деталь я нашёл в третьем разделе (resin-state), это был файл по пути /root-overlay/etc/NetworkManager/system-connections/. Файл называется resin-wifi-01 и угадайте, что в нём находится?


Внутри содержались параметры и пароль сети WiFi, которую использовали для настройки устройства (или для его тестирования). Это точно не была сеть WiFi компании. И что же делать, если нужно найти место, соответствующее имени WiFi? Заходим на wigle.net, вводим SSID (=имя WiFi), и сайт сообщает, в каком месте мира он находится.


Место и имя изменены

Помните адрес с сайта родителей одарённых детей? По данным Wigle.net, именно по нему настраивали наше устройство Pi.

Возмездие


Как и когда Pi попало в шкаф?


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

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

Что было дальше


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

Для меня это была очень интересная головоломка, и я хотел бы поблагодарить всех пользователей Reddit, которые помогли мне собрать все её фрагменты.
Источник: https://habr.com/ru/company/qiwi/blog/674132/


Интересные статьи

Интересные статьи

Вторая часть полностью посвящена описанию программного обеспечения, используемого на роботе. Так как разработанный робот (pi-tank) по большому счету рассчитан на начинающих роботострои...
Статья расскажет, как можно работать с сетевым трафиком. На примере нескольких дампов сетевого трафика будет разобрана работа нескольких полезных инструментов, показаны п...
Краткое содержание Инженеры дата-центров часто сталкиваются с проблемой перегрева серверов и предпринимают много различных действий для ее устранения. Некоторые их действия дают возм...
Привет, друзья! Меня зовут Петр, я представитель малого белорусского бизнеса со штатом чуть более 20 сотрудников. В данной статье хочу поделиться негативным опытом покупки 1С-Битрикс. ...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.