KiwiSDR представляет собой software-defined radio (SDR), которое можно подключить, например, к одноплатному компьютеру Seeed BeagleBone Green (BBG), Raspberry Pi и так далее. KiwiSDR поставляется либо в виде отдельной платы, либо сразу с BBG, GPS-антенной и корпусом.

На этой неделе пользователи обнаружили, что в одном из последних обновлений разработчик удалил из кода бэкдор, который позволял подключаться к девайсам с root-правами. После этого удаленный администратор мог вносить изменения в конфигурацию, и, что гораздо хуже, получить доступ не только к самому KiwiSDR, но и к Raspberry Pi, BBG или другому устройству, к которому SDR подключен.

По словам самого автора, бэкдор в KiwiSDR был нужен только для удаленного администрирования и отладки. На днях разработчик опубликовал «исправление ошибки» на GitHub проекта, тихо удалив бэкдор, что вызвало негативную реакцию со стороны сообщества. Более того, после этого все оригинальные сообщения и комментарии автора, в которых хотя бы мельком упоминался бэкдор, были удалены.

Первым эту проблему заметил Марк Джессоп, инженер и радиооператор. Он наткнулся на интересное свежее сообщение на форуме, в котором автор проекта KiwiSDR признавался, что имеет удаленный доступ ко всем устройствам.

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

После этого другой пользователь откопал на форуме еще более старую ветку (2017 года), в которой разработчик KiwiSDR писал, что бэкдор в коде действительно дает ему удаленный доступ ко всем устройствам. Интересно, что теперь форум на сайте KiwiSDR и вовсе стал недоступен.

Как отмечает ИБ-исследователь, известный под псевдонимом Hacker Fantastic, в настоящее время в сети доступны около 600 KiwiSDR с бэкдором. Дело в том, что такие устройства, как правило, обновляются редко, если обновляются вообще. То есть, несмотря на удаление бэкдора из кода, многие KiwiSDR так и останутся уязвимы.

Хотя в основном эти устройства работают как радиоприемники, любому удаленному атакующему, который воспользуется бэкдором, будет предоставлен root-доступ на уровне консоли. То есть потенциальный злоумышленник может захватить контроль над девайсом, а затем попробовать двинуться дальше, расширив атаку на устройства, к которым подключен KiwiSDR.

Сам бэкдор весьма прост: несколько строк кода позволяют разработчику (или кому-то другому) получить удаленный доступ к любому KiwiSDR, введя его URL-адрес в браузере и добавив пароль в конце. К примеру, ниже можно увидеть, как пользователь Twitter под ником xssfox использует бэкдор для root-доступа к своему BeagleBone. Делается это с помощью простого запроса HTTP GET: http://radio-device-domain.example.com:8074/admin?su= kconbyp

Интересно, что пароль kconbyp, использованный выше, является старым, его хэш SHA256 раньше присутствовал на устройствах KiwiSDR. Более новый хэш отличается, то есть пароль «kconbyp» не будет работать на более поздних версиях KiwiSDR, там используется новый мастер-пароль.

При этом Джессоп пишет, что бэкдор, скорее всего, действительно создавался с добрыми намерениями, а разработчик KiwiSDR всегда был очень отзывчивым, быстро исправлял ошибки и охотно добавлял новые функции.

Пока не найдено никаких признаков того, что бэкдором вообще злоупотребляли, однако использование HTTP-соединения вызывает вполне понятные опасения. К тому же многие пользователи считают любые бэкдоры недопустимыми, и неважно, используют они HTTPS или нет.

Пользователи, которые захотят проверить, осуществлялся ли к их устройствам удаленный доступ, могут воспользоваться для этого командой zgrep -- "PWD admin" /var/log/messages*. Чтобы избавиться от бкэдора, потребуется выполнить обновление до версии 1.461.

3 комментария

  1. Аватар

    B4lTaZAR-QiTh1.0

    17.07.2021 в 12:50

    И чё его потянуло совершить камин-аут? 🙂
    Интересно другое.. это же соурс… как люди могли не увидеть там бэкдора? Так еще и который вел логирование подключений;))

    • Аватар

      0d8bc7

      18.07.2021 в 01:10

      А это один из приколов опен-сорса 🙂 Исходники открыты, и поэтому считается, что, если там есть что-то плохое, то это обязательно кто-нибудь обнаружит, но вот мы сами исходники проверять не будем, пусть это делает кто-нибудь другой. (Кстати, возможно, это даже в какой-то мере справедливо из-за того что многие просто не могут себе позволить анализировать огромное количество кода.*) А поскольку те другие люди, которые должны проверять исходники, могут думать точно так же, в итоге получается, что их не анализирует почти никто, и лишь единицы иногда вмешиваются в ситуацию и спасают день. И это не считая того, что заниматься этим способны в принципе не все пользователи, а только умеющие читать чужой код программисты.
      Я, конечно, могу ошибаться. Но, с другой стороны, если бы многие сами читали исходный код — может, в современном опен-сорсном софте всё-таки было бы поменьше уязвимостей?
      * Возможно, опен-сорс был бы эффективнее, если бы у сообщества была инфраструктура для разделения труда, если можно так выразиться. Т.е. получается, что одних только коммитов, issue, пулл-реквестов, комментариев, счётчика лайков и форков недостаточно.

      • Аватар

        B4lTaZAR-QiTh1.0

        19.07.2021 в 12:53

        Не, ну почему? Как только коммит оставил разраб с фокусом на интимную часть его софта, так сразу все пользователи зашевелились. 😁 У любого софта есть те, кто читает код от начала и до конца, просто не все оставляют комментарии;) И чем менее популярен продукт, тем менее меньше таких людей, тем с меньшей вероятностью они могут оставить предупреждение. Этот бэкдор ведь автор оставил, значит на то причина была. 😄🤷‍♂️ Остальные просто вырежут его у себя и продолжат использовать. Хотя я думаю им еще и пользовались — так удобнее же. 🙂 Не до конца понимая, что бэкдорчик достаточно серьезный.

Оставить мнение