Flipper Zero: как устроен хакерский тамагочи

Неде­лю назад вы, ско­рее все­го, ниче­го не зна­ли о Паше Жов­не­ре, а потом он набрал на Kickstarter мил­ли­он дол­ла­ров за день. Его про­ект – это «тама­го­чи для хаке­ров», назы­ва­ет­ся Flipper Zero. Это такой дель­фин­чик, кото­рый любит про­слу­ши­вать радио­ка­на­лы, заби­вать радио­ка­на­лы, откры­вать раз­ные зам­ки, выклю­чать теле­ви­зо­ры в аэро­пор­тах — то есть делать всё, что так любят делать хакеры.

Flipper Zero

Наши дру­зья из под­ка­ста «Запуск зав­тра» позва­ли Пашу Жов­не­ра в под­каст, что­бы узнать, насколь­ко слож­но про­из­ве­сти такое устрой­ство, кто над ним рабо­та­ет и вооб­ще насколь­ко всё это законно.

Вот пол­ная вер­сия, в ней мно­го матер­ной руга­ни и уди­ви­тель­ных исто­рий. А в тек­сте — корот­ко и няшно.

О Павле

Мне 30 лет, я из дерев­ни, про­стой чувак, кото­рый рабо­тал на строй­ке, и вот пошёл зани­мать­ся вся­ки­ми шту­ка­ми. Я успел пора­бо­тать в дата-центре, кру­тил хво­сты интер­не­там, роутин­гам, марш­ру­ти­за­ци­ям, носил сер­ве­ра, куда-то встав­лял патч-корды, отве­чал на тике­ты, сидел с ноут­бу­ком с рабо­тя­га­ми в под­соб­ке, пус­ко­на­ла­жи­вал пожар­ную систе­му, пер­де­ли сире­ны, всё ора­ло, всё лома­лось. В общем, я мно­го чего успел поде­лать в сво­ей жизни.

О Flipper Zero

Это муль­ти­тул для про­грам­ми­стов. Как швей­цар­ский нож для зад­ро­тов, кото­рые инте­ре­су­ют­ся тех­но­ло­ги­я­ми, а ещё для пентестеров. 

Пен­те­сте­ры — это penetration testing, тест на про­ник­но­ве­ние. Это хаке­ры, кото­рым запла­ти­ли за «Взло­май­те нас, пожа­луй­ста. Мы вам запла­тим, а вы рас­ска­жи­те, какие у нас были уяз­ви­мо­сти». Целый класс хакеров-пентестеров вынуж­де­ны сами себе делать инстру­мен­ты, скле­и­вать изо­лен­той какие-то мик­ро­схе­мы, про­то­ти­пи­ро­вать. Про­во­да тор­чат, всё раз­ва­ли­ва­ет­ся. А у нас это собра­но в малень­кую коро­боч­ку, по фор­ме похо­жую на бре­лок от авто­мо­биль­ной сиг­на­ли­за­ции с экранчиком.

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

Тут же инфра­крас­ный порт. Он уме­ет как пере­да­вать сиг­нал, так и при­ни­мать. В него заши­та база пуль­тов: все теле­ви­зо­ры всех марок, кото­рые мы зна­ем. Мож­но ска­зать «выклю­чи все теле­ви­зо­ры», и он будет пере­би­рать все теле­ви­зо­ры, кото­рые зна­ет, что­бы посы­лать все эти сиг­на­лы. Или ты можешь взять нуж­ный пульт, напра­вить в наш девайс, сохра­нить сиг­нал и кон­ди­ци­о­нер в офи­се выклю­чать, пока основ­ной пульт у офис-менеджера.

I-Button — это кон­такт­ные клю­чи от домо­фо­нов, такие желез­ные таб­лет­ки. На «Флип­пе­ре» есть кон­такт­ная пло­щад­ка, кото­рая одно­вре­мен­но по фор­ме и как счи­ты­ва­тель, и как эму­ля­тор. Мож­но счи­тать дан­ные с клю­ча, запи­сать дан­ные на ключ или эму­ли­ро­вать ключ. 

RFID 125 кГц — это те бес­кон­такт­ные кар­точ­ки, кото­ры­ми поль­зу­ют­ся для вхо­да в офи­сы, или круг­лые бес­кон­такт­ные таб­лет­ки от домо­фо­нов. Это совсем тупые кар­ты, кото­рые не име­ют обыч­но ника­ких средств аутен­ти­фи­ка­ции, про­сто про­шит какой-то номер. 

Ещё есть GPIO, это general purpose input-output. Это про­сто дыроч­ки, куда ты можешь вста­вить про­во­доч­ки, то есть что­бы под­клю­чить­ся к мик­ро­вол­нов­ке или пере­про­шить роу­тер. В общем, туда мож­но встав­лять что угодно.

Атаки типа Bad USB

На «Флип­пе­ре» есть USB-стек, кото­рый поз­во­ля­ет рабо­тать с USB. Как это может быть устроено: 

  1. Ком­пью­тер дове­ря­ет по умол­ча­нию клавиатуре. 
  2. Если ты встав­ля­ешь в ком­пью­тер кла­ви­а­ту­ру, ты обыч­но сра­зу можешь печа­тать. И если ты, допу­стим, в рабо­чий ком­пью­тер встав­ля­ешь кла­ви­а­ту­ру, то если у тебя какая-то осо­бо умная кла­ви­а­ту­ра, она может сэму­ли­ро­вать, как буд­то там на самом деле нажи­ма­ют­ся кнопки. 
  3. Такая эму­ли­ро­ван­ная кла­ви­а­ту­ра может нажать кноп­ку «Пуск», потом напи­сать cmd.exe, открыть тер­ми­нал, напи­сать там кучу тек­ста сра­зу за секун­ду, создать у тебя малень­кий вирус, сохра­нить как бинар­ный файл, запустить. 
  4. У тебя на пол­се­кун­ды что-то морг­нёт на ком­пе, и ты не поймёшь.

Это назы­ва­ет­ся ата­ка типа Bad USB. Есть и дру­гие вари­ан­ты — напри­мер, ата­ка по USB через сете­вой протокол.

Это называется атака типа Bad USB. Есть и другие варианты — например, атака по USB через сетевой протокол

Можно ли так всё взломать?

Люди оши­боч­но дума­ют, что, напри­мер, с помо­щью радио­мо­ду­ля мож­но взять и начать всё ломать, всё нач­нёт откры­вать­ся. Это не так. Там есть ана­ли­за­тор про­то­ко­лов: ты можешь посмот­реть, напри­мер, исполь­зу­ет ли твой пуль­тик от авто­мо­биль­ной сиг­на­ли­за­ции такое-то шиф­ро­ва­ние; или твоя гараж­ная дверь — мож­но ли её ата­ко­вать или нет.

Нам при­во­дят часто в при­мер игру Watch Dogs, где чувак с теле­фо­ном всё взла­мы­ва­ет. И прав­да, есть очень при­ми­тив­ные про­то­ко­лы, в кото­рых ты можешь пере­брать все ком­би­на­ции за две мину­ты, и гараж откро­ет­ся. В Аме­ри­ке таких много. 

Есть совре­мен­ные нор­маль­ные систе­мы с шиф­ро­ва­ни­ем типа rolling code, кото­рые со счёт­чи­ком. Это исполь­зу­ют даже дешё­вые авто­мо­биль­ные сиг­на­ли­за­ции. Нель­зя про­сто услы­шать сиг­нал и повто­рить. Но спо­со­бы их ата­ко­вать тоже есть. 

Если гово­рить о USB-атаках, то на ком­пью­те­ре уже могут быть какие-то сред­ства защи­ты. Напри­мер, если ты напи­шешь вирус, а на ком­пью­те­ре будет анти­ви­рус — он обнаружится. 

Насколько сложно было разработать «Флиппер»

Это очень слож­ная работа.

Мне нра­вят­ся ком­мен­та­то­ры, кото­рые пишут: «Я за 2$ на Arduino собе­ру то же самое. Про­сто не хочу». Но когда начинается…

У нас там куча антенн — четы­ре антен­ны: Sub 1 GHz, RFID, NFC, Bluetooth. Чипы и про­цес­сор мы поку­па­ем. Пла­та — наша, гото­вых реше­ний для неё нет. Есть ещё мно­го раз­ных мате­ри­а­лов: вста­воч­ка для инфра­крас­но­го пор­та, джой­стик, несколь­ко мел­ких деталей.

Огром­ный кусок бюд­же­та — это софт, кото­рый мы будем писать ещё очень дол­го, пото­му что это всё стро­ит­ся вокруг про­грамм­но­го обес­пе­че­ния, вокруг прошивки.

Боль­шую роль игра­ют пром­ди­зай­не­ры — это люди, кото­рые раз­би­ра­ют­ся в про­из­вод­стве вещей. Они рожа­ют не про­сто визу­аль­но кра­си­вое реше­ние. Они дума­ют, как это про­из­во­дить: как это будет выко­вы­ри­вать­ся из пресс-форм; где какая тол­щи­на пла­сти­ка, что­бы это не раз­ле­те­лось; где какие рёб­ра жёст­ко­сти; что будет запа­дать; как китай­цы будут это всё соби­рать; удоб­но или нет. Напри­мер, если неудоб­но соби­рать и про­цент бра­ка боль­шой — всё сломается.

Пром­ди­зай­не­ры берут все эти вопро­сы на себя. Они пока­зы­ва­ют тебе кар­тин­ку. Ты гово­ришь: «Класс­но», или «Не класс­но. Тут пере­де­лать. Тут не тот user experience. Такая кноп­ка слиш­ком мяг­кая или слиш­ком жёст­кая. Тут выгля­дит некра­си­во. У нас дру­гой стиль. Слиш­ком по-детски. Слиш­ком зло» и всё такое. А они уже реша­ют все тех­ни­че­ские вопросы.

Тесто­вая пар­тия плат. На этом листе четы­ре пла­ты, кото­рые мож­но отло­мать и вста­вить в гото­вое устройство 

О сборе денег на проект

День­ги на «Флип­пе­ра» соби­ра­ли через кра­уд­фандинг на сай­те Kickstarter. 

Мы напи­са­ли, что если мы соби­ра­ем 100 тыс. дол­ла­ров, то мы дела­ем кор­пу­са раз­но­го цве­та. Если мы соби­ра­ем 300 тысяч — добав­ля­ем Bluetooth. Если 700 тысяч — NFC. Мы ожи­да­ли, что в пер­вый день, по про­гно­зам, будет от 60 до 120 тысяч. Сум­ма соби­ра­ет­ся. Потом через час ещё 100 тысяч, потом 300 тысяч, потом через 26 часов — мил­ли­он дол­ла­ров. Наши самые опти­ми­стич­ные про­гно­зы про­би­ло в 10 раз.

Мы всё это дела­ли на свои день­ги внут­ри, у нас ника­ких инве­сти­ций, ниче­го. И люди, к кото­рым мы при­хо­ди­ли про­сить день­ги, гово­ри­ли: «Да что-то фиг­ня какая-то. Нет рын­ка, непо­нят­ная хрень». И они, эти же люди, зво­нят: «Вау, класс! Молод­цы, супер!». Тоже хочет­ся ска­зать им: «Ну, что вы теперь скажете?»

О мил­ли­о­нах. Сей­час мне зво­нят одно­класс­ни­ки, кото­рые 20 лет со мной не обща­лись, я вооб­ще забыл их име­на. Они гово­рят: «Паша, ты что, миллионер?». 

Нет, конеч­но: эти день­ги, нач­нут сни­мать­ся с карт толь­ко в кон­це авгу­ста. Весь сен­тябрь они будут пытать­ся спи­сать эти день­ги с карт, пото­му что даже сей­час эти день­ги не спи­са­ны. Это вооб­ще ниче­го, это про­сто цифер­ка на экране, кото­рая потен­ци­аль­но спи­шет­ся у людей в кон­це кам­па­нии, если она будет успеш­но завер­ше­на. А это тоже под вопро­сом. Может слу­чить­ся что угодно. 

Сей­час я езжу в марш­рут­ке, «Доши­рак» себе зава­ри­ваю. Ника­ких мил­ли­о­нов нет ещё. 

О хакерах

Я не люб­лю сло­во «хакер». Мне нра­вит­ся сло­во «зад­рот», пото­му что хакер в мас­со­вом созна­нии — это тот, кто вору­ет у вас день­ги из кармана.

На самом деле, хак — это clever trick. Напи­сать малень­кую про­грамм­ку, кото­рая уме­ща­ет­ся в кило­байт, кото­рая дела­ет кру­тые шту­ки — это хак. Пере­про­шить роу­тер, кото­рый начи­на­ет рабо­тать как устрой­ство в 10 раз доро­же — это хак. А с...ть у вас день­ги с кре­дит­ной кар­ты — это про­сто scam, это ника­кой не хак. Но я не исполь­зую здесь на рус­ском сло­во «хакер», пото­му что, опять же, в созна­нии непра­виль­ная ассоциация. 

О легальности

Мы про­ра­ба­ты­ва­ем юри­ди­че­ский момент. Устрой­ство не попа­да­ет под опи­са­ние спец­сред­ства, не явля­ет­ся устрой­ством неглас­но­го сбо­ра инфор­ма­ции, оно не запи­сы­ва­ет звук и не поз­во­ля­ет тебе про­ни­кать в поме­ще­ние. Для срав­не­ния: элек­трон­ные отмыч­ки клас­си­фи­ци­ру­ют­ся как спец­сред­ства. Наше устрой­ство из короб­ки абсо­лют­но легально. 

Вме­сте с тем ответ­ствен­ность лежит на поль­зо­ва­те­ле. Если ты купишь в мага­зине обыч­ную Wi-Fi-карточку, вста­вишь её в ноут­бук и ска­ча­ешь в интер­не­те про­грам­му, она нач­нёт ломать Wi-Fi. Мы же из-за это­го не запре­ща­ем Wi-Fi. То же с ножа­ми — они легальны. 

Об ответственности

Я не счи­таю это ору­жи­ем. Если твоя маши­на уго­ня­ет­ся бре­ло­ком за 50–100 бак­сов, то, навер­ное, про­бле­ма всё-таки в тво­ей сиг­на­ли­за­ции, а не в этой шту­ке. Все инстру­мен­ты для мошен­ни­че­ства, для авто­угон­щи­ков, они все про­да­ют­ся. На «Ави­то» напи­ши, там будет весь спектр.

В мире есть пло­хо защи­щён­ные сиг­на­ли­за­ции и гараж­ные две­ри, кото­рые мож­но открыть про­стым устрой­ством. Это мож­но было сде­лать и рань­ше, и сей­час. Если в про­да­же появи­лись хоро­шие ломы, кото­рым удоб­но раз­би­вать стёк­ла в маши­нах, это не зна­чит, что вино­ва­ты ломы. 

О знаниях и умениях

Я ниче­му осо­бен­но не учил­ся. Во всём нашем про­ек­те, мне кажет­ся, я самый тупой чело­век: если взять каж­до­го по отдель­но­сти, он свою сфе­ру зна­ет настоль­ко хоро­шо, что… Без этих людей я нико­гда бы вооб­ще ниче­го даже близ­ко подоб­но­го не сделал. 

Я умею в основ­ном рабо­тать с сетя­ми, пере­да­чей дан­ных, систе­ма­ми управ­ле­ния досту­пом. В желе­зе я пол­ный про­фан. То есть я гуг­лю онлайн-калькулятор, что­бы закон Ома вве­сти, что­бы посчи­тать, какой про­во­док надо. 

Есть люди, кото­рые любят свою маши­ну кру­тить в гара­же, рас­та­чи­вать ей пря­мо­ток, порш­ни. А я пред­по­чи­таю гнать на ней изо всех сил, что­бы при­е­хать туда, куда мне нуж­но, с ветер­ком. То есть я учусь на прак­ти­ке. Мне нуж­но что-то, у меня есть какая-то безум­ная фан­та­зия, и я ищу, как её реа­ли­зо­вать, сижу, что-то читаю.

Мне ино­гда пишут рекру­тё­ры: «Вы топо­вый про­грам­мист на GitHub в Рос­сии, в Python». Я гово­рю: «Да, пото­му что у меня есть один скрип­тик на 100 стро­чек, кото­рый я когда-то напи­сал, кото­рый ока­зал­ся всем нужен». Но я не про­грам­мист, я не умею программировать. 

Если вы меня, допу­стим, при­гла­си­те рабо­тать каким-то про­грам­ми­стом, я про­сто ска­жу: «Изви­ни­те, я не умею». Это будет правдой. 

И многое другое

В пол­ной вер­сии под­ка­ста — как Паша зна­ко­мил­ся через AirDrop, как откры­ва­ет­ся ком­па­ния в США и поче­му там слож­но полу­чить ИНН, в чём суть хакер­ско­го под­хо­да по жиз­ни и что будет с про­ек­том даль­ше. Слу­шай­те, но маму и деток от экра­на уберите.