The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project The YapLink Project

Кибердельфин. Как создавался Flipper — «швейцарский нож хакера»

BlackPope

Местный
Регистрация
27.04.2020
Сообщения
242
Реакции
35
Хакерство и пентестинг хоть и ассоциируются с сидением за компьютером, вовсе им не ограничиваются: подобраться к некоторым устройствам или беспроводным сетям можно только лично. В такие моменты думаешь: вот бы существовал этакий хакерский мультитул, который будет всегда под рукой и позволит работать в полевых условиях! А пока одни мечтают, другие делают именно такой девайс и готовятся производить его серийно. Называется это чудо-устройство Flipper.

Если для перехвата Wi-Fi все же бывают портативные устройства, то работа с железом в полевых условиях сейчас выглядит так. Ты берешь с собой ноутбук, подходящую отладочную плату с прошивками на все случаи жизни, несколько антенн, адаптеров, плат расширения и внешний аккумулятор для автономности. И не забудь о целом ворохе проводов, чтобы соединять все перечисленное. Добавь органайзер для хранения мелочовки и самодельные корпуса для защиты хрупких компонентов при передвижении. Знакомо?

INFO

Павел Жовнер — гик, задрот и богомол (как он представляется в профиле на «Хабрахабре») — знаком с такой ситуацией даже слишком хорошо. Организуя на питерском ZeroNights 2018 CTF-конкурс, он с нуля разработал подобие вендингового аппарата с кассовым терминалом, который работал на картах RFID. Проблему ненадежного крепления плат он тогда решил радикально: залил текстолит с компонентами ровным слоем прозрачной эпоксидной смолы. Это был его первый опыт создания своих гаджетов, который и раздул страсть к таким самоделкам.

WWW
  • Процесс создания считывателя в картинках
  • Как создавался ящик с NFC


Позже произошло другое важное для истории Flipper событие. ИБ-исследователи обратили свое внимание на протокол Apple для обмена файлами (AirDrop) и заинтересовались его безопасностью. Появилась открытая реализация под названием OpenDrop, и стало возможно посылать файлы на айфоны с любого устройства, а не только с гаджетов Apple. Достаточно Raspberry Pi, чтобы начать рассылать всем прохожим картинки на их айфоны, при условии, что они разрешили прием «ото всех».


В интервью «Хакеру» Павел рассказал, как развлекался с этой возможностью.
До iOS 13, когда ты слал картинку по AirDrop, ее превью показывалось на экране телефона до того, как получатель нажимал «принять» или «отклонить». Я сделал девайс из Raspberry Pi Zero W с батарейкой, который рассылал такие картинки, а моя подруга написала бота для Telegram @AirTrollBot, чтобы генерировать на лету картинку с подписью и нужным соотношением сторон. Часто телефон называется «Света iPhone» или «Юля iPhone», этим я и пользовался, обращаясь к владельцам устройств по имени прямо на картинке.
Я просто сидел в метро и иногда видел сразу по десять человек. Всех бомбил персонализированными картинками. Через эту штуку я познакомился с кучей людей и ходил на экспресс-свиданки по пути от метро до работы. Бот может добавлять на картинку никнейм в телеграме, и многие догадывались написать мне. Ну а мальчикам можно анонимно посылать разные приколы. Например, видишь, что это телефон Вадима, и шлешь ему «Вадим — лох!». Потом смотришь, как он с недоумением оглядывается по сторонам. Очень весело.
Однако у Raspberry Pi нет своего дисплея, непонятно, что происходит на устройстве, голый текстолит платы рвет подкладку карманов, и его очень легко повредить, а распечатанные на 3D-принтере корпуса выглядят жалко, и пользоваться ими неудобно. Каждый раз, когда пытаешься собрать что-то подходящее из готовых модулей и компонентов, получается бесформенный «бутерброд» из плат, который разваливается от любого чиха.


Толчок в нужном направлении дал проект pwnagotchi.

Этот очаровательный виртуальный питомец нуждается в рукопожатиях, которые контроллеры беспроводных сетей отправляют на этапе создания нового соединения. В активном режиме сбор пакетов с хешами для ключей WPA сопровождается деавторизацией пользователей и принудительным обрывом подключений, чтобы ускорить процесс. И пусть симпатичная внешность цифрового зверька тебя не обманет — внутри у него работают нейронные сети на основе краткосрочной памяти и методы глубокого обучения с подкреплением. Все это помогает устройству гибко настраивать оптимальные параметры перехвата и анализа трафика в сети.



Впрочем, Flipper вдохновлен не одними тамагочи. Олдовые товарищи наверняка вспомнят проект персонального коммуникатора Cybiko, который позволял своим владельцам в начале нулевых годов самостоятельно создавать динамические беспроводные сети. А различные модули расширения открывали новые возможности, например воспроизведение MP3 и чтение карточек SmartMedia. Вместе с солидной (по тем временам) библиотекой программ и игр это помогло создать вокруг девайса сообщество увлеченных пользователей.



Так сформировались главные черты будущего устройства: универсальный карманный инструмент хакера для исследования беспроводных сетей. Максимально открытый проект, чтобы каждый мог доработать гаджет под свои нужды. И симпатичный тамагочи, который бы подарил этой вещи индивидуальность.

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



Наконец, именно в корпусе предстояло разместить все внутренние антенны для беспроводных интерфейсов (о них далее), а также несколько разъемов. На деле это оказалось не самой простой задачей: набор доступной периферии менялся несколько раз, размеры и форма PCB также претерпели не одну итерацию. Все это приходилось всякий раз учитывать и адаптировать соответствующим образом сам корпус.



Как ты наверняка уже заметил, у Flipper необычный дизайн. Талисманом проекта (и персонажем тамагочи) стал кибердельфин. Это одновременно и отсылка к рассказу «Джонни-мнемоник» Уильяма Гибсона (знаковый автор жанра киберпанк, если ты не в курсе), и намек на природное любопытство дельфинов и их эхолокатор, который позволяет с помощью волн воспринимать окружающий мир. Кстати, именно форма плавника (flipper — это «плавник» на английском) обыграна в изгибах корпуса.

Кстати, модный внешний вид Flipper — это заслуга ребят из студии промышленного дизайна DesignHeroes, с которыми Павел Жовнер познакомился в хакспейсе «Нейрон». У них уже был большой опыт разработки и изготовления корпусов для электронных устройств из самых разных материалов. Именно они помогли с эскизами будущего продукта, 3D-моделями и первыми напечатанными прототипами.



Экран

Павел Жовнер считает экран одним из ключевых компонентов будущего устройства и готов часами рассказывать всем желающим о преимуществах и недостатках разных технологий. Неудивительно, что к выбору экрана для Flipper он подошел со всей обстоятельностью. Для портативных девайсов, ориентированных на питание от аккумулятора, энергопотребление подсветки дисплея очень важно, и если она потребляет слишком много, то это сильно сократит время автономной работы.

Наиболее экономичны экраны E Ink, и в упоминавшемся pwnagotchi используется как раз такой экран. Увы, у них низкая — порядка секунды — скорость обновления, и даже банальная навигация по вкладкам в меню способна растянуться на долгое время. Если же прибегать к частичному обновлению, без перерисовки всего содержимого кадра, то на экране остается видимый след предыдущего изображения (так называемый image ghosting).



В результате для Flipper был выбран старый добрый графический ЖКИ-дисплей с разрешением 128 на 64 точки и диагональю 1,4 дюйма. Монохромное изображение обладает хорошей контрастностью, так что его видно даже при ярком солнце на улице, а низкое энергопотребление (около 400 мкА без подсветки) позволяет всегда отображать актуальную информацию на дисплее.



Конечно, наилучшим вариантом для хакерского девайса был бы экран по технологии Sharp memory, которая позволяет в режиме ожидания обновлять картинку лишь раз в несколько секунд, отправляя остальное устройство целиком в сон. Само изображение при этом никуда не пропадает. Именно такие дисплеи используются в современных смарт-часах и фитнес-браслетах. Однако у них все еще негуманная стоимость (порядка 20 долларов), что никак не укладывается в бюджет Flipper.

Выбор процессора

Выбор чипа — это определяющий момент, и от него будут зависеть многие параметры будущего устройства.

Raspberry Pi

Первоначально проект Flipper строился на основе дешевого (10 долларов) одноплатника Raspberry Pi Zero W. Выпущенный в 2017 году, этот микрокомпьютер объединял в себе одноядерный ARM-процессор, 512 Мбайт оперативной памяти, выводы GPIO, USB и беспроводные интерфейсы Wi-Fi и Bluetooth. Вокруг этого устройства сформировалось дружное сообщество любителей и профессионалов. На фоне этих плюсов низкая производительность и проблемы с перегревом микросхемы казались терпимыми.

А когда энтузиасты обнаружили способ запускать мониторный режим с инъекцией пакетов на адаптере Wi-Fi (патчи nexmon), то тут уже подключились разработчики Kali и объявили об официальной поддержке «малинки» в своих сборках Linux. В результате общими усилиями получился практически идеальный инструмент для хакера и пентестера. Не хватало лишь схемы для аккумуляторного питания, функции спящего режима и кое-какой периферии для работы с остальными вариантами беспроводной связи.

По задумке авторов Flipper, за все это должен был отвечать отдельный малопотребляющий микроконтроллер, который предполагалось объединить с центральным процессором RPi. Это позволило бы держать микроконтроллер постоянно включенным для атак по наиболее простым сценариям, а ЦП подключать уже для действительно серьезных вещей.



Однако позже от «малинки» пришлось отказаться совсем. Выяснилось, что ни один из поставщиков Raspberry Pi Zero не готов продавать разом партии от тысячи штук. Со стороны это выглядит так: экстремально дешевый одноплатник производится на заводах, распространяется между крупными дистрибьюторами, но «в народ» попадает лишь по несколько штук в одни руки. Похоже, «малинка» (или по крайней мере ее бюджетная версия) продается по цене, близкой к себестоимости, и лишь окупает себя и не направлена на получение прибыли. Для промышленного и массового применения на сайте Raspberry Pi Foundation рекомендуется использовать Compute Module. Но он и стоит уже совсем других денег — 40 долларов.

i.MX6

Когда оказалось, что Raspberry — это не вариант, в команде Flipper было принято тяжелое решение делать устройство фактически с нуля, на основе существующего SoC (System-on-Chip). Выбор был ограничен тем, что далеко не все производители готовы работать с небольшой компанией, закупающей лишь несколько тысяч микросхем.



В результате поисков была подобрана новая основа для Flipper — i.MX6 ULZ. Это урезанная версия одноядерного процессора Cortex-A7, без видеоядра и некоторых интерфейсов. По производительности они с «малинкой» оказываются примерно на равных, но i.MX6 значительно выигрывает в энергоэффективности.

К сожалению, найти столь же удачный альтернативный адаптер Wi-Fi разработчикам Flipper пока не удалось. К потенциальному кандидату предъявляются серьезные требования: поддерживать современные стандарты беспроводной сети, уметь работать в диапазонах 2,4 ГГц и 5 ГГц и допускать разблокировку мониторного режима сторонними патчами. И при этом еще быть достаточно дешевым в крупных партиях (меньше 10 долларов). Если у тебя есть подходящий модуль на примете — смело пиши ребятам на форуме.

STM32

Пока аппаратная часть проекта, связанная с «большими» компонентами — процессором и адаптером беспроводной связи, забуксовала, остальная часть схемы с обвязкой и микроконтроллером шаг за шагом воплощалась в коде и железе. Здесь основой стал МК STM32L412 с тактовой частотой 80 МГц, 128 Кбайт флеша и 40 Кбайт ОЗУ. По сравнению с хорошо известной серией F4 эти микроконтроллеры появились относительно недавно, но уже завоевали популярность за небольшое энергопотребление и хороший набор современной периферии.

В Flipper микроконтроллер не только реагирует на нажатия кнопок, чтобы ретранслировать их центральному процессору: именно он взаимодействует с низкоскоростными беспроводными интерфейсами и экраном. Более того, поселившийся в устройстве дельфин-тамагочи тоже работает на микроконтроллере, чтобы всегда быть готовым откликнуться на зов хозяина. Увидев все это в действии, в команде Flipper решили: а чем это не полноценное устройство?


Так на свет и появился Flipper Zero.

Flipper Zero
Первым устройством, которое Павел Жовнер и его команда представят миру, будет именно Flipper Zero — версия Flipper на микроконтроллере. Вариант с полноценным компьютером и модулем Wi-Fi будет называться Flipper One, и он пока что только в планах.



433 МГц



За беспроводную связь в устройстве отвечает сразу несколько микросхем. Одна из них — CC1101 производства Texas Instruments позволяет Flipper работать на частоте 433 МГц сразу с несколькими типами модуляции: 2FSK, 4FSK, GFSK и MSK. В основном на этой частоте работают самые примитивные устройства: датчики, звонки, шлагбаумы и прочее.

При этом, как правило, используется один из распространенных протоколов обмена информацией: KeeLoq, Came или DoorHan. Встроенный в Flipper анализатор подскажет, с чем именно ты имеешь дело в конкретный момент. И даже если узнать точный протокол не удалось, девайс всегда сможет как минимум повторить ранее записанный ответ.

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

RFID



Следующий беспроводной интерфейс ориентирован на карточки доступа с NFC-антенной, такие как, например, ЕМ-4100. У них примитивный формат хранения данных, поэтому с помощью Flipper ты без труда сможешь считывать, копировать и эмулировать уже имеющиеся экземпляры. При желании полученный ID карты можно отправить на другой Flipper.

ИК-порт



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

Выводы GPIO



Для тех, кому по душе более низкоуровневое взаимодействие с железом, разработчики Flipper вынесли на одну из боковых граней непосредственно выводы GPIO от микроконтроллера. Помимо питания и базовых цифровых сигналов, на них также доступна разнообразная периферия: ADC, SPI, UART, I2C, PWM и многое другое. Таким образом, ты сможешь подключать к девайсу другие компоненты и расширить возможности Flipper. Правда, пока непонятно, получит ли развитие концепция плат расширения, как у Arduino или Raspberry Pi, — все-таки девайс позиционируется как законченное устройство.

USB-C



Изначально у Flipper на основе RPi Zero было много разъемов на корпусе: несколько USB, MicroHDMI и слот для карточки памяти. В версии на STM32 оставили только один USB-порт для зарядки и перепрограммирования (на самом микроконтроллере уже прошит соответствующий бутлоадер). В 2020 году Type-C наконец-то начинает выглядеть почти как стандарт, так что, если у тебя уже есть блок питания для четвертой «малинки», сможешь заряжать Flipper и с его помощью тоже.

Впрочем, куда важнее другое: микроконтроллер STMF412 может работать как USB Device, так что с подходящей прошивкой Flipper при подключении к компьютеру будет выглядеть и как HID-устройство, и как флешка, и как COM-порт (но вряд ли все сразу, конечно).

Краудфандинг



Сегодня Flipper пока существует в виде прототипов. До середины весны новые рабочие версии регулярно изготавливались в Китае и пересылались разработчикам в Россию. Однако коронавирус внес свои коррективы, и многие сроки авторам пришлось пересмотреть. Сейчас они планируют анонсировать кампанию по сбору средств на серийное производство девайса и в мае выйти на одну из краудфандинговых площадок. Первые экземпляры доберутся до обладателей не раньше зимы, и мы, конечно же, не упустим случая написать обзор.
 
Верх