Добрый день, ДЕФКОН! Я рад быть здесь.
Меня зовут Джен Брансфилд, я главный инженер по безопасности в Tenacity и настолько люблю свою работу, что когда наступают выходные, я просто не могу дождаться утра понедельника! Сегодня я расскажу вам о том, как вооружить своего кота, это забавная история, со своими победами, поражениями и целой кучей слайдов.
Итак, зачем мне нужно было вооружать своего питомца?
Известно, что 15% мирового интернет-трафика посвящено кошкам.
Кроме того, я часто делаю презентации по системам безопасности для технических и нетехнических специалистов.
Я заметил, что технические детали утомляют людей, они начинают скучать, закатывают глаза и думают о посторонних вещах.
Чтобы привлечь их внимание, я стал разбавлять свои презентации слайдами с изображениями кошек и рассказывать о них разные забавные истории.
Например, я начинаю презентацию с этого изображения:
Я как раз заканчивал одну из своих презентаций, когда ко мне подошел мужчина и сказал: «Я хочу подарить тебе этот кошачий ошейник, в нем есть GPS, модуль сотовой связи, и ты можешь в любой момент отследить местонахождение кота, и если Вас это беспокоит, то Вы можете отправить СМС, и Вы получите ответ с ее GPS-координатами».
Я бы не был собой, если бы мне не пришла в голову мысль: «Если мы добавим к этому ошейнику маленький WiFi-сниффер, то получим настоящую Battle Pussy!» Что касается служебных собак, то на другой хакерской конференции AT Outerz0ne я встретил Леди Мерлин, которая выгуливала свою собаку в шлейке, жилете с большими карманами по бокам, что делало его похожим на настоящую служебную собаку.
Я сказал, что круто, у меня в кармане наверняка Ананас, хакерский роутер, который перехватывает весь бесплатный трафик? Она ответила, что нет, это то же самое, что пользоваться ноутбуком, который подпрыгивает на коленях и мешает работать, но Ананас - хорошая идея! Следующие слайды показывают, как служебные собаки используются в армии: на первом изображена просто служебная собака, а на двух других показаны собаки, пережившие приключение в заднице: их выбрасывают из самолета в воду или заставляют прыгать в объятиях десантник.
Вы видите, что у десантника на лице кислородная маска? Собака тоже в маске, потому что прыжок предстоит с высоты 30 тысяч футов.
На этом слайде изображен настоящий морской котик.
Это правда, ВМС США используют морских животных для защиты гаваней и поиска плавучих мин.
А если вы попытаетесь незаметно заплыть в порт, чтобы взорвать его, рядом с вами тут же всплывет дельфин Флиппер с экшн-камерой GoPro на плавнике.
В 60-е годы под эгидой ЦРУ действительно проводились исследования возможности слежки за домашними кошками, как показано на следующем слайде.
Это «кот-прослушка» с вживленным в ухо микрофоном, антенной вдоль позвоночника и передатчиком с источником питания, расположенным на груди.
Такое мог придумать только человек, курящий что-то очень крепкое.
Я не шучу, они получили финансирование на этот проект и испытали первый экземпляр акустического кота.
Принесли его в комнату, где сидели несколько парней и читали вслух, чтобы кот мог их слушать.
Но она убежала и исчезла, и это стала первая и последняя попытка использовать акустическую кошку.
Прекратили тестирование не потому, что это была плохая идея, а потому, что с этими непоседливыми котами очень сложно работать.
Однако они обнаружили очень интересную вещь, к которой я вернусь позже.
Теперь расскажу о требованиях, которые предъявлялись к моему Battle Pussy.
Главным требованием было не причинить вред кошке.
Я не люблю кошек, но не хочу причинять им вред. Следующим условием была комфортность «одежды», то есть кошке должно было быть удобно как в одежде, так и в шлейке – жилете.
Нам не нужны были мигающие огни или что-то еще, что могло бы превратить нашу кошку в добычу, которую легко обнаружить.
GPS должен был записывать путевые точки с соответствующими отметками даты и времени, чтобы, когда кошка вернется, ее можно было отследить, где она была.
Сниффер Wi-Fi должен был синхронизировать время с модулем GPS и собирать SSID Wi-Fi и другие сигналы, связанные с Wi-Fi, для последующего анализа.
Идея заключалась в том, чтобы надеть на кошку ошейник или шлейку и позволить ей бродить по окрестностям.
Ошейник или шлейка должны содержать GPS-приемник и сканер Wi-Fi для обозначения на карте точек беспроводного доступа Wi-Fi, как это делается в боевых условиях.
Мы также использовали дополнительное оборудование для отслеживания, такое как Mr Lee Cat Cam, камера, крепящаяся на ошейнике, Pet Tracker и гарнитура Garmin. Для обеспечения совместной работы всех устройств можно было использовать портативный компьютер GumStix малого форм-фактора Stix длиной около 11 см, но довольно дорогой, микропроцессор Cotton Candy того же форм-фактора и миниатюрный ТВ-приемник Rock Chip 3066 с двухъядерный процессор A9, который можно подключить к телевизору для приема потокового HD-видео.
Поэтому я схватил банку пива и сел, чтобы все обдумать.
Мне нужен был небольшой форм-фактор, GPS, Wi-Fi и сотовая связь.
Как будет выглядеть такое устройство? Возможно, как смартфон, который всегда у меня в кармане.
Но нам нужно было приложение, которое бы работало на Android, то есть нужно было написать соответствующий код для Android и Wi-Fi. Может быть, такое приложение уже существует? Я нашел, скачал и установил классное приложение под названием WIGLE WiFi из магазина мобильных приложений Android, а затем выбрал кота-добровольца для своих тестов.
Это кот моего друга Ривси по имени Скитзи.
Это чертовски большой кот с длиной тела 55 см, обхватом груди 50 см и обхватом шеи 30 см.
Теперь нам понадобилась Кошачья шубка, или «плащ для кота», возможно что-то вроде этого:
Если вы введете в Google «кошачье пальто», вы увидите целую кучу фотографий девушек в кошачьих пальто, так что это не вариант, поэтому я погуглил «собачье пальто» и нашел то, что может мне подойти.
План был такой: кладу в пальто свое оборудование, одеваю пальто на кота, кот идет гулять, а записанные данные восстанавливаю, когда он возвращается домой.
Последовательность действий показана на слайдах.
Здесь он выглядит немного испуганным.
Потом мы выпустили кота.
И это закончилось провалом! Перелезая через забор, кот потерял плащ; видимо, оно висело на нем слишком свободно.
Мы поймали кота, снова надели на него плащ, затянули его покрепче и попробовали еще раз.
И вот мы сидим и ждем, и ждем, и ждем.
мы ждали его 18 часов, а когда открыли дверь, то увидели, что кот вернулся голый, без своего боевого одеяла.
Мы потерпели неудачу! Мы отследили последний известный GPS-маркер, но одеяла там не было.
Из этого эксперимента мы извлекли следующие уроки:
- с кошками очень сложно работать;
- всегда проверяйте свою работу, прежде чем отправлять дорогостоящее оборудование в открытый доступ, при совершении дорогих покупок на Amazon мы можем получить аккаунт Prime;
- Забота о том, чтобы кошке было комфортно в одежде, приводит к ее потере.
вам нужно использовать устройство с такими же возможностями, но гораздо меньшего размера.
- малый форм-фактор;
- низкое энергопотребление;
- делает именно то, что вам нужно, ни больше, ни меньше;
- Совместим с различными чипами и позволяет использовать различные решения.
- это открытая электронная платформа, основанная на простом в использовании аппаратном и программном обеспечении, интересная для тех, кто занимается интерактивными проектами;
- имеется множество слотов расширения для подключения датчиков, сами платы Arduino можно устанавливать друг на друга;
- используется для создания роботов, автомобилей с дистанционным управлением, систем домашней безопасности и т. д.
Он имеет очень миниатюрный форм-фактор, имеет открытый исходный код и очень дешев.
К недостаткам Arduino можно отнести плохую документацию, сомнительное качество и тот факт, что на то, чтобы во всем разобраться, уходит целая вечность.
Это все хорошо, но я никогда не работал с Arduino, фирменным ПО и наборами мелких микросхем, я не профессиональный программист и паять не умею.
Но Билл сказал: «Не волнуйтесь, это легко!» Мой план действий состоял из следующих пунктов:
- узнайте как можно больше об Arduino и изучите основные понятия;
- выбираем наиболее подходящий форм-фактор для вооружения нашего кота;
- засунь всю электронику в ошейник, а потом придумай что-нибудь для служебной собаки.
Самым удивительным было то, что я обнаружил библиотеки программного обеспечения для Wi-Fi, GPS и SD-карты.
На сайте Джереми Блюма jeremyblum.com я нашел множество видеороликов о сборке всевозможных устройств на базе Arduino. После всего этого я посчитал, что стал экспертом в этом деле.
Итак, у меня была плата расширения Arduino Wi-Fi и плата расширения Itead Studio GPS.
Мне нужно было дать плате Wi-Fi функцию сборщика данных с записью на SD-карту, а плате GPS функцию трекера, также с возможностью записи данных на карту и объединения их в одно целое.
С платой Wi-Fi все прошло отлично: установка прошла легко, драйвера, скачанные с сайта Arduino, работали, и после небольшой игры с параметрами и переменными все получилось как надо.
А вот с GPS все было не так просто.
Существует линия NMEA (Национальная ассоциация морской электроники), определяющая стандарты рабочих параметров GPS — приема, передачи, координат и т. д. Процесс загрузки модуля можно осуществлять из любого места на земле — вы просто подключаете этот модуль к источнику питания.
источник, и он начинает «слушать» пространство.
Устройство обнаруживает 3 спутника, определяет положение, и это занимает от 2 до 15 минут в зависимости от местных условий.
Плата расширения GPS также имела плохую документацию, и в коробке с комплектом не было инструкций.
Мне потребовалась неделя, чтобы разобраться, почему модуль не работает, и в итоге я понял, что нужна скорость передачи данных 34840 бод, которую я до сих пор нигде не могу найти.
Итак, я собрал все компоненты вместе.
и потерпел неудачу.
Оказалось, что используется более 80% памяти Arduino, количество библиотек и переменных слишком велико, а 32 КБ памяти Arduino Uno совершенно недостаточно — чип просто не может справиться с такой нагрузкой.
Итак, я купил микропроцессор Arduino Mega 2560 с 256 КБ памяти, соединил все обратно, запустил, и все заработало!
Ардуино Мега 2560 имело:
- больше памяти, что было намного лучше;
- больше портов, что было намного лучше;
- большего размера, что было намного хуже.
Я продолжил поиск небольших платформ и нашел микропроцессор под названием Spark Core, который представлял собой комбинацию двух модулей на одной плате — модуля Wi-Fi спереди и чипа Arduino сзади.
Для этого я купил GPS-чип GP-635T и плату для карты памяти SparkFun MicroSD Breakout.
Поскольку мне сказали, что доставку Arduino Mega Mini придется ждать несколько недель, а все остальные платформы либо слишком велики, либо имеют слишком мало памяти, я остановил свой выбор на продукте Spark. Платформа Spark Core имела следующие технические характеристики:
- 32-битный процессор ARM M3;
- Память 128 КБ, больше, чем мне нужно;
- совместимость с SPI и I2C, то есть протоколами взаимодействия микроконтроллера, внешних компонентов и Интернета;
- чип Wi-Fi TI CC3000;
- Совместимости с Arduino не было.
Меня это не расстроило, и я снова начал создавать свой продукт. Все начинается с языка программирования Scratch, но я обнаружил, что в нем нет библиотек, необходимых для работы моего устройства.
Несмотря на это, это было очень круто, поэтому я обратился к команде разработчиков Peekay123 в поисках решения, и вот что из этого вышло:
- Кто-то выкладывал на форуме библиотеки для SD-карт и у меня они работали!
- Кто-то выкладывал на форуме библиотеки для GPS, они работали и были совместимы с моим GPS-модулем!
Но мне захотелось их связать! Были библиотеки для чипа Adafruit CC3000, которые можно было скачать с сайта Adafruit, чтобы использовать их для сбора данных Wi-Fi, я их скачал, установил и все заработало! Итак, у меня был GPS, работающий на Spark, SD-карта, совместимая со Spark, набор SSID, работающий на Spark, и теперь мне нужно было соединить все эти мелочи вместе.
Для этого потребовалась пайка!
Кто из вас умеет паять, поднимите руки! Видите – в зале всего пара человек! Моим последним занятием было изучение искусства пайки.
При этом я усвоил несколько важных правил, например, что паяльник нужно держать не за жало, а за ручку.
Второе правило заключалось в том, что нельзя никуда совать руки, чтобы не обжечься паяльником.
Правило третье гласило, что в Интернете все выглядит просто, но на самом деле это далеко не так.
Итак, сначала я разместил на плате модуль GPS и устройство чтения SD-карт и подключил все это к контроллеру Spark. Выглядело все хорошо, поэтому я решил проверить, как оно работает.
Домашнее тестирование прошло отлично! Взял с собой аппарат и погулял по дому - всё работало отлично! Показывало, что вот моя сеть, вот Wi-Fi моего соседа и так далее.
Но когда я взял его с собой в машину и немного покатался, меня ждало фиаско.
В чем была причина? Все дело в том, что Spark был ярким примером «Интернета вещей», а это значит, что его ни в коем случае нельзя отключать от Интернета! В данном случае из домашней сети Интернет. Разговаривал с ребятами на форумах о том, что происходит с устройством при езде на машине.
Оказалось, что чип Spark должен быть подключен к известной ему точке доступа, чтобы начать работать.
Оказалось, что пока он был подключен к моей домашней сети Wi-Fi, все работало без ошибок, но как только я отошел на полмили, устройство перестало работать.
Я смог отсканировать уникальный 32-значный код SSID, который используется для идентификации моей беспроводной локальной сети.
Чтобы Spark мог подключиться к нему, он использует именно этот код. Произошло вот что: когда контроллер потерял сигнал от домашней сети WI-FI и попытался подключиться снова, он искал сеть именно с этим SSID, но не нашел ее.
Это значит, что мне просто нужно было успеть удалить этот код из памяти чипа, чтобы после потери сигнала из одной сети он смог подключиться к другим сетям.
После того как я это сделал, проблем с WiFi больше не было.
Следующим шагом было тестирование GPS. Я немного поездил и нашел точки доступа Wi-Fi, все работало отлично, я проехал еще полмили и проверил координаты GPS. Я ехал по шоссе, и на карте было видно, что я нахожусь у озера.
Вернувшись домой, я обнаружил, что существующие библиотеки GPS не могут корректно преобразовать спутниковые данные в координаты на карте.
Оказалось, что у меня нет библиотек GPS. Итак, я приобрел TinyGPS++, набор библиотек, которые извлекают данные NMEA, полученные модулем GPS, такие как положение, высота, скорость, дата, время, курс и т. д., и передают их в чип Arduino. Это было то, что мне было нужно, но со Spark это не сработало.
Я поговорил с Биллом, и он предложил использовать библиотеки для порта Arduino. Я снова погрузился в область космической науки.
Это как с ракетой: заправляешь ее топливом, ставишь в исходное положение, нажимаешь красную кнопку, и она взрывается.
Или ракета сначала взлетает, а потом взрывается.
Или все-таки полетит в космос, и тогда вы скажете: «Да это космическая наука!» Немного хуже, когда внутри ракеты сидит обезьяна.
По сути, я обнаружил, что мне нужно поменять местами Arduino и Sparks, чтобы все заработало.
Для этого мне пришлось заняться кодированием библиотек для портов Sparks, что не проще, чем космическая наука.
Итак, следующая специальность, которую я освоил, — программист. Но в итоге у меня все заработало как надо.
Следующей проблемой было энергопотребление.
Пришлось думать о том, как улучшить его характеристики.
Я решил использовать аккумулятор mini Elite 3,7 В, 500 мАч, который мой друг Рикки использовал для своих моделей самолетов, и приступил к тестированию его производительности.
Оказалось, что вариант экономии энергопотребления путем периодического отключения и включения питания всего устройства меня не устраивает. Дальше я сделал так, чтобы основной чип можно было перевести в режим глубокого сна, а модуль GPS продолжал работать.
«Прием» данных каждые 30 секунд разрядил батарею за 4 часа, сбор данных каждые 10 минут увеличил время работы до 8 часов.
Наконец пришло время сделать воротник.
Оказалось, что выпаивать детали в два раза веселее, то есть сложнее, чем паять, и я в процессе сжег много полезных мелочей.
Интернет мне опять не помог, но видео на YouTube несколько улучшили мое понимание процесса.
Я спросил своего друга Джо, что мне делать, и он посоветовал мне связаться с ребятами из NovaLabs в Рестоне, штат Вирджиния.
Именно Тед, сумасшедший учёный и по совместительству злой гений, помог мне изучить EAGLE, и Брайан, мастер пайки, научил меня, что правильное оборудование требует правильной пайки.
Они сделали мою жизнь намного проще.
Далее я начал разрабатывать конструкцию кошачьего ошейника.
Это можно сделать несколькими способами.
Джо предложил сшить несколько полосок и вставить между ними мое оборудование.
Я пошла к Майку и купила красивую косу с леопардовым принтом, которая идеально подошла нашей кошке.
Теперь мне нужно было сшить их вместе.
Кто из вас знает, как это делается? Это искусство наших бабушек, поэтому мне нужна была бабушка.
Это бабушка моей жены, ее зовут Нэнси, и она очень рада с вами познакомиться.
Она с радостью нам помогла и за 1 доллар сшила два воротника — внешний и внутренний, который должен был защищать электронику от повреждений и влаги.
В «Спарке» было несколько мигающих светодиодов, которые я не хотел ставить на кота, поэтому я их удалил.
Пришло время снова обратиться за помощью к нашему коту-волонтеру.
Этот ублюдок должен мне потерянный сотовый телефон! Первым шагом было проверить его с пустым ошейником, чтобы увидеть, не потеряет ли кошка его, как это произошло со шлейкой.
В новом боеприпасе кот выглядел так — сверху можно увидеть кольцо, к которому крепился заряд в виде патрона.
Он должен сориентировать положение ошейника на шее кошки так, чтобы GPS-приемник внутри всегда был направлен вверх.
Итак, мы вставили электронику в ошейник, надели его на кота и отправили его гулять.
Когда он пришел домой, я снял ошейник и ничего не нашел! Проверил электронику - всё работает! Мы снова надели на кота ошейник и отправили его на улицу.
Он залез в кусты и висел там 20 минут, облизываясь.
Я рассказал об этом Ривзу, он подошел к кустам, начал их трясти, и кот выскочил.
Мы решили изменить технологию работы таким образом:
- выньте ошейник на улицу и подождите соединения с GPS 5-10 минут;
- подвести кошку к ошейнику и надеть ошейник на кошку;
- отправьте кошку на прогулку в ошейнике.
Данные, извлеченные из ошейника, выглядели так:
Здесь были дата, время, широта, долгота, название точки доступа Wi-Fi SSID, сигнал и его расшифровка.
Я снял на видео его перемещения по полученным координатам, и оказалось, что все это время проклятый кот даже не выходил из двора, и первым местом, где он зарегистрировался, была машина.
Мы нашли еще одну кошку по имени Коко и протестировали на ней ошейник.
Полученные данные были гораздо разнообразнее, а зона ее перемещений — гораздо шире.
Во время своего путешествия она, вероятно, охотилась на мышей.
В целом наш прибор работал отлично, результаты исследований возвращались туда, где они были нужны.
Вот так мне удалось создать свою Battle Pussy! Осталось решить вопрос, как улучшить служебную собаку.
Итак, служебных собак троллят в Интернете больше, чем кого-либо еще.
Для них можно использовать продукт Smoocon под названием WiFi Pineapple и пульт дистанционного управления телевизором TV B Gone на базе контроллеров Adafruit/Radiosnack. Устройство TV in Gone используется для одновременного отключения всех телеприемников в общественных местах.
Все это можно поместить в шлейку-жилет или собачий рюкзак.
Чтобы все это работало, вам понадобится программа Karma для обработки ответов на запросы в режиме Answers Probes, DNS Spoof, маршрутизирующая все в Pineapple, и модуль RandomRoll.
На следующем слайде показано, как выглядит TV Gone в разобранном виде.
Это потребовало моих талантов пайщика, и в результате я получил компактный модуль, который модифицировал, выпаяв светодиоды.
Теперь все это нужно было патчить, не дай Бог кто-то такое сделает! В этом мне помогла Ирина и друзья из компании JoAnn's Fabrics, расположенной в Стерлинге, штат Вирджиния.
Так нам удалось создать комплект оборудования под названием «Denial of Service Dog», то есть «собака на отказ в обслуживании» с Wi-Fi-модулем.
У меня есть видео, показывающее, как это работает. Видно, что на внешней стороне жгута имеется блок со светодиодом, и когда я нажимал на кнопку пульта, он начинал мигать зеленым светом, указывая на то, что телепрограмма включена, а затем автоматически выключался.
Сейчас я покажу вам, как выглядело соединение на экране смартфона, когда я сидел в машине.
Сначала я нахожу точку доступа Wi-Fi Теги: #информационная безопасность #Разработка мобильных приложений #программирование #Конференции #arduino #Adafruit #scratch #Pineapple #WIGLE WiFi #Arduino Mega Mini #Spark Core
-
Фиас И Семь Смертельных Граблей Застройщика
19 Oct, 24 -
Ракета Wind River Сильна
19 Oct, 24 -
X5 Retail Group – Воры И Мошенники?
19 Oct, 24 -
Коворкинг В Ижевске.
19 Oct, 24 -
Сони Эрикссон. Что Она Нам Готовит?
19 Oct, 24 -
Воскресная Опера В Википедии
19 Oct, 24