- PVSM.RU - https://www.pvsm.ru -

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

USB-донгл и SD-карта
Доступ к этому небольшому шкафу имеет очень ограниченный круг людей. Ключ от этой двери был только у четырёх человек:
Никто из них ничего не знал, поэтому я спросил своих коллег из отдела ИТ, но они тоже были в недоумении. Я слышал, что некоторым людям платят за то, чтобы они устанавливали такие устройства в места, где их быть не должно, и поэтому мне стало очень интересно выяснить, чем же оно на самом деле занимается.
В помощь для решения этой загадки я призвал Reddit [1] и пользователи сайта почти сразу идентифицировали донгл как устройство с микропроцессором, сравнимым по возможностям с самой Rasberry Pi: nRF52832-MDK [2]. Очень мощное устройство для чтения WiFi, Bluetooth и RFID.

USB-донгл nRF52832-MDK
Без всяких сомнений, он обеспечивал старому Raspberry Pi подключение к WiFi и Bluetooth. Отлично, так значит, у этой штуки теперь и WiFi есть…
SD-карта содержала несколько разделов. Большинство имело формат ext4 (linux) и один fat16 (загрузочный).

Так образ выглядит в GParted
Отлично, примонтируем его.
Мой debian box указал мне на первую серьёзную улику: это установка resin.

Разделы Resin на SD-карте
Resin (теперь переименованный в Balena) [3] — это платный веб-сервис IOT [4], в котором можно генерировать образы для устройств IOT, развёртывать эти устройства и обмениваться обновлениями и данными с resin.
Также Resin устанавливает на устройство VPN, чтобы собранные данные передавались защищённо. Очевидно, устройство должны были забрать, потому что оно оставляет след — сервис-то платный.
Первый раздел называется "resin-boot".

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

config.json в разделе resin-boot
Что можно извлечь из этого файла:
Загуглив имя пользователя, найденное в файле config.json, я обнаружил человека в том же городе, где было найдено Pi. Компания проверила свои записи об этом человеке, но ничего не нашла.
Достаточно странно, что я нашёл веб-сайт 2001 года, на котором родители «одарённых детей» писали статьи о них и по какой-то причине подписывали свои статьи домашними адресами и телефонами. Итак, у меня есть фамилия и адрес всей этой семьи.

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

Скриншот файла LICENSE.md
Странно… Зачем это приложение на nodejs хранит конфиденциальное ПО? Я загуглил компанию из заголовка Copyright, и угадайте, что я нашёл?
Моему пониманию не поддаётся, почему сооснователь компании мог бы распространять эти устройства по городу, но…
Ещё одну очень интересную деталь я нашёл в третьем разделе (resin-state), это был файл по пути /root-overlay/etc/NetworkManager/system-connections/. Файл называется resin-wifi-01 и угадайте, что в нём находится?

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

Место и имя изменены
Помните адрес с сайта родителей одарённых детей? По данным Wigle.net, именно по нему настраивали наше устройство Pi.
Я проверил логи DNS и обнаружил конкретные дату и время, когда устройство Pi впервые было замечено в сети. Я проверил логи RADIUS, чтобы понять, кто из сотрудников был на территории в это время, и увидел множество сообщений об ошибках, что к WiFi пытался подключиться деактивированный аккаунт.
Этот деактивированный аккаунт принадлежал бывшему сотруднику, который (по какой-то причине) договорился с руководством о том, что ему оставят на несколько месяцев ключ, прежде чем он не вынесет все свои вещи из здания (не спрашивайте меня, почему так случилось...).
Потом этим вопросом занялся юридический отдел, я выполнил свою роль, остальное не относилось к моим должностным обязанностям.
Для меня это была очень интересная головоломка, и я хотел бы поблагодарить всех пользователей Reddit, которые помогли мне собрать все её фрагменты.
Автор:
boris-the-blade
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/376483
Ссылки в тексте:
[1] призвал Reddit: https://www.reddit.com/r/sysadmin/comments/9xveq5/rogue_raspberrypi_found_in_network_closet_need/
[2] nRF52832-MDK: https://wiki.makerdiary.com/nrf52832-mdk/
[3] Resin (теперь переименованный в Balena): https://www.balena.io/
[4] веб-сервис IOT: https://www.balena.io/what-is-balena
[5] Источник: https://habr.com/ru/post/674132/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674132
Нажмите здесь для печати.