Хабрахабр

Охранное агентство и «новые» технологии

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

Небольшое предисловие

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

Если дом стоит под охраной, то открытие с пультика вызывает сработку "тревоги" на ворота и через 2-3 минуты приезд серьёзных ребят. В доме есть гараж, ворота открываются с пультика и соответственно туда ставится машина. И как-то эта процедура немного напрягает, особенно зимой, да и вообще как-то теряется вся "магия". Чтоб этого не было, нужно сначала снять охрану (открыть тамбур, приложить ключик, закрыть тамбур, опять сесть в машину) и потом уже открывать ворота.

Конечно можно хитро сделать, чтоб открытие ворот снимало и сигнализацию, но до этого я ещё не добрался.

Приложение не именно их, но с ним они работают. Зато прознал, что у нашего охранного агентства есть чудо приложение "Мобильная клавиатура Феникс". С его помощью можно с телефона управлять сигнализацией, что уже более-менее возвращает радость от пользования всем этим.

А теперь сама история

Чтоб подключить управление охраной с приложения нужно приехать в офис охранного агентства, найти нужного инженера, заплатить за "настройку" в кассу 400 рублей и тебе будет выдана учётка, которая вбивается в настройки на телефоне и вуа-ля, можно рулить охраной как хочешь, получать пуш-уведомления и не знать горя.

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

В голове тем временем уже созрела идея — а не попробовать ли...

Можно брать и другие девайсы/инструменты, но у меня такие. Берём айфон подключаем его к маку, запускаем: rvictl -s iPhone_UDID, цепляемся к новому интерфейсу через Wireshark и глядим, как работает и что шлёт наше приложение.

Естественно ничего не шифруется и можно посмотреть, как именно шлются запросы и собственно их повторить. Работает оно, оказывается, через wamp протокол — это по сути почти тот же вебсокет.

Всё это для быстроты тестов можно поставить расширение для хрома типа "Web Socket Client" и пробовать там. Теперь пытаемся воспроизвести полученные запросы.

Убедившись, что всё работает именно так как ожидалось, быстренько пишем клиента например на node.

Это ускорит процесс. Подмечаем, что АПИ нам отвечает разными сообщениями когда юзер не найден вообще и когда пароль неверный.

Клиент перебирает все логины состоящие из 3-х букв. Наш клиент будет довольно тупой, но тем не менее эффективный. Пароль же перебирается в диапазоне от 0000 до 9999. Если логин существует — стартует перебор пароля по нему, если нет — переходим к следующему.

Логины перебрались довольно быстро (минут 10), получилось около 150 штук (сервисом не так чтоб много пользуются). Запускаем всё это и ждём. Никаких ограничений на проверку в АПИ нет. Пароль к каждому логину находится примерно за 8 минут. Причём можно долбить многопоточно.

При успешном подборе пароля АПИ выплёвывает такую информацию как: ФИО владельца, адреса (объектов может быть множество), некие токены (видимо для отправки пушей), ид сессии и так далее. Пароли подбирались в 100% случаях.

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

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

Радует одно, видимо какой-то всё-таки мониторинг у компании есть или может случайно заметили, но через некоторое время приложение перестало принимать пароли, и предложило обратиться в офис.

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

Может кому-то после этого захочется сделать свою систему немного побезопаснее, а кто-то, кто пользуется аналогичным сервисом со схожими паролями посмотрит на это с другой стороны и попросит принять меры. К чему это всё? Такими вот нехитрыми действиями немного повысится уровень безопасности.

Я специально не привожу тут названий и максимально обезличил все данные, дабы тот, кто узнает себя — сделал выводы 🙂

S. P. Данная статья носит исключительно информационный характер, описанные здесь проблемы на момент публикации уже не актуальны — компания приняла меры.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть