Сравнительно недавно на экраны кинотеатров вышел фильм «Крепкий
орешек 4.0». Одним из наиболее интересных моментов с «нашей» точки
зрения был эпизод с дистанционным включением автомобиля, после того как
герой-хакер применил парочку приемов социальной инженерии. Многие люди, посмотревшие фильм, утверждали, что в России такое невозможно в принципе…
Как это работает?
Общая схема автоматизированных систем диспетчерского контроля и
дистанционного управления транспортом выглядит так: автомобиль,
оборудованный блоком спутникового слежения, регулярно, обычно раз в
минуту, передает данные о своем местоположении через Интернет на сервер
сбора данных.
Функционально каждый блок состоит из трех основных частей - GPS-приемник, GSM/GPRS-модем и системный блок.
GPS-приемник передает следующую информацию о транспортном средстве:
текущее местоположение, скорость, ускорение и направление движения.
Системный блок имеет аналоговые и цифровые входы для подключения к
штатным датчикам транспортного средства и бортовому компьютеру, а также
опционально оснащается цифровыми выходами, что и дает возможность
управления транспортным средством. С помощью входов осуществляется
контроль основных параметров транспортного средства. Помимо этого с
помощью входов реализуются всевозможные тревожные кнопки, счетчики
пассажиропотока и т.д. Выходы позволяют отключить подачу топлива,
заблокировать двери, завести мотор и т.п. В случае подключения блока к
штатному бортовому компьютеру через АРМ можно воспользоваться всеми
функциями этого самого компьютера.
Сервер, получив данные с блока, визуализирует их на карте
диспетчера. Для слежения и управления транспортным средством
используется так называемое автоматизированное рабочее место (АРМ). АРМ
- это клиентский набор программ, в который входят отчетные формы для
получения сводной и статистической информации о транспортном средстве и
карта, на которой отображаются все транспортные средства, оборудованные
блоками.
Как это поломать?
Чтобы понять, каким образом можно взломать такую систему и самому
рулить всем транспортом, нужно лишь обратить внимание на каждый элемент
системы в отдельности. Атаку можно проводить по трем направлениям: блок
спутникового слежения, сервер сбора данных, АРМ.
Железный хак
Начнем с блока. Первый шаг – сбор информации о марке блока. Затем
необходимо определить, каким образом происходит программирование блока
перед началом работы. Здесь возможны несколько вариантов. Первый
вариант – программирование через USB-порт. К примеру, блоки марки
«Гранит-Навигатор.044» оснащены разъемом mini-USB, но для их
программирования потребуется спец.софт и прошивка.
Мастера реверс-инжиниринга могут попробовать написать и прошивку, и
программу-прошивальщик самостоятельно, но проще зайти на официальный
сайт производителя www.glorient.ru.
Поначалу кажется, что на сайте ничего нет, кроме каталога и прочей
ерунды. Однако, может быть, у сайта есть свой ftp? Да, такой
присутствует, и на нем выложено, помимо всего прочего, сервисное
программное обеспечение, которое нам и нужно. Что? Логин и пароль
требует ftp-сервер? Брутфорсер в руки и вперед, благо логин и пароль у
большинства учетных записей на этом сервере совпадают. Скачав все
необходимое мы должны получить физический доступ к блоку, чтобы
перепрошить его с нашими настройками, о которых поговорим чуть позже.
Вариант второй – производитель оснастил свой блок «фирменным»
разъемом на основе морально устаревшего RS-232 (он же СОМ-порт) или
LPT. Такой подход, к примеру, используется в блоках производства ЗАО
НПО «Техноцентр». Для перепрошивки этих блоков специальный софт не
требуется – достаточно любого терминального клиента (стандартный Hyper
Terminal из винды сгодится). Зато для этих блоков требуется специальный
микропрограмматор, без которого блок, напрямую подключенный к компу, не
будет реагировать на команды, подаваемые через терминал и вообще сгорит
из-за разницы во входном и выходном напряжении. Взлом блока через
связку «сервисный кабель+программатор» возможен, только если в твоем
городе есть сервисный центр производителя и там можно завладеть
программатором, или же если ты – гуру паяльника и сможешь намутить
программатор сам.
И, наконец, вариант номер три – программирование блока через смс-ки.
Ты можешь не верить, что такое возможно, но те же самые
«Гранит-Навигатор.044» могут быть запрограммированы на новые настройки
путем отправки на них всего двух смс-ок. Такой подход удобен для
взломщика в случае, если он знает сотовый номер сим-карты,
установленной в блоке. Для этого необходимо разобрать блок, вытащить из
него симку и вставить ее в свой телефон. PIN-код на такой сим-карте
отсутствует, поскольку блок сам вводить код не умеет, и хранить его
негде, а вводить его каждый раз вручную просто нет смысла. Если же
добраться до блока никак, а номер узнать нужно, то придется
использовать социальную инженерию, чтобы узнать номер у установщиков
блока или лиц, его обслуживающих.
Минус такого подхода в том, что изменить можно не все настройки, а
только основные. Определенные настройки в блоке можно изменить только
путем загрузки прошивки с компьютера. Например, «Гранит-навигатор.044»
можно использовать для прослушивания разговоров в салоне транспортного
средства. Для этого нужно включить опцию «автоматическое снятие трубки
при входящем вызове», которая активизируется только через кабель. После
ее включения можно позвонить на блок с любого телефона (даже со
стационарного) и слушать разговоры ничего не подозревающего водителя.
Если же эту опцию не включить, то при входящем звонке будет звучать,
причем очень громко, мелодия, и пока водитель не снимет трубку путем
нажатия кнопки на блоке, мы его не услышим.
А что же это за настройки, которые мы пытаемся изменить в блоке?
Основными настройками являются IP-адрес сервера сбора данных, порт
сервера, телефон диспетчера. Адрес сервера является статическим, и его
замена позволит нам подменить реальный сервер своим и получать все
данные. Порт сервера нужен для тех же целей. Телефон диспетчера нужен
для приема входящих звонков с блоков и вызова их на голосовую связь.
Блоки производства ЗАО НПО «Техноцентр» после программирования посылают
и принимают вызов только с номера, указанного в настройках блока, тогда
как «Гранит-Навигатор.044» может принимать звонки с любого номера. Это
позволяет взломщику ввести водителя транспортного средства в
заблуждение и получить определенный контроль над транспортным
средством. Если с водителем нужна только односторонняя голосовая связь,
то в настройках «Гранит-Навигатор.044» вообще не нужно указывать номер
диспетчера. В этом случае сам блок сможет только принимать звонки, но
не совершать их.
Примечательно, что многие блоки поставляются конечному потребителю с
некоторыми настройками по умолчанию. Обычно прописан адрес и порт
сервера завода-производителя. Узнать эти настройки можно по-разному.
Для блоков, прошиваемых через смс, формат сообщений и заводские
настройки указываются в паспорте устройства. Если блок прошивается
только через кабель, то настройки отображаются в окне терминала при
подключении к блоку.
Как видим, атаку непосредственно на железо реализовать сложно, а
иногда и невозможно. Чтобы ее реализовать, нужно приложить очень много
усилий, а результат не всегда будет приемлемым, ведь перед
переконфигурацией блока необходимо заиметь свой статический внешний
адрес и поднять свой сервер сбора данных. Для этого придется найти
дистрибутив сервера, и не всегда производитель софта и железа один и
тот же. К примеру, программное обеспечение от ЗАО НПП «Транснавигация»
поддерживает 20 типов блоков, ни один из которых эта фирма сама не
производит. Софт и железо от одного и того же производителя
используется только тогда, когда система не является массовой и потому
редко обновляется, совершенствуется.
Атака на софт.
Сервер сбора данных – обычная служба, которая записывает данные,
полученные с блока в СУБД (MSSQL или MySQL). Для приема данных
открывается порт, который при установке указывается и в настройках
блока. Нередко блоки используются с заводскими настройками, и порт
никто не меняет, что может помочь при поиске сервера-жертвы. Что дает
злоумышленнику взломанный сервер сбора данных? Первое – возможность
чтения/записи в базу данных. Можно лишить клиентов системы возможности
наблюдать за своими машинами, следить за любой машиной вне зависимости
от того, в какую группу она входит. К примеру, если автомобиль будет
украден, то его местоположение не удастся определить даже при
работающем блоке спутникового слежения, поскольку хакер удалил ее из
общего списка. Разграничение прав пользователей сможет выполнять сам
хакер, и клиенты не будут видеть вообще ничего, кроме пустого экрана.
Сейчас уже невозможно найти системы, работающие по схеме, отличной
от схемы «клиент-сервер». Поэтому нередко есть смысл проводить атаку не
только на сервер сбора данных, но и на клиентский АРМ. Защиту от
несанкционированного доступа производители АРМов выполняют по-разному.
К примеру, фирма предлагает доступ к данным через веб-интерфейс.
Соответственно аутентификация на основе сертфикатов и связки
«логин+пароль» в данном случае наиболее удобна для клиента. Причем
зачастую сертификатом и шифрованием пренебрегают, а защита от брутфорса
отсутствует. Поэтому перебор – первый вариант атаки. Если же для работы
с сервером требуется клиентское программное обеспечение, то здесь стоит
обратить внимание на возможность тестовой эксплуатации оборудования и
софта. Многие фирмы предлагают такую возможность. За это время можно
определить многие интересующие нас параметры – адрес сервера,
используемый порт, способы защиты. «Руссо-лайн», к примеру, предлагает
скачать программу-клиент с собственного сайта и залогиниться под
тестовой учетной записью. Куда сложнее дело обстоит с софтом фирмы
«Транснавигация». От копирования их софт защищается HASP-ключом и
тестовую эксплуатацию они не представляют. Поэтому приходится искать
веб-версию их клиента (она присутствует в стандартной поставке сервера
сбора данных).
После того как в руках хакера будет учетная запись в базе данных с
максимальными привилегиями и клиентская программа, можно приступить к
дистанционному управлению транспортом.
В статье нет готового примера реального взлома, поскольку ни одна
фирма, предоставляющая услуги дистанционного контроля и управления
транспортными средствами, не признает подобного факта в своей
биографии. Поэтому рассмотрены лишь возможности подобных систем и общий
алгоритм перехвата управления. Осуществить подобную атаку сложно, но
вполне возможно. Не надо думать, что подобные системы дальше МКАДа не
распространены. Все фирмы, упомянутые в данном материале, успешно
работают в регионах. В одной только Казани ежемесячно оснащается по 20
автомобилей оборудованием для спутникового слежения. В Ярославле весь
пассажирский транспорт управляется центральной диспетчерской службой на
основе спутниковой системы слежения. Так что стоит лишь немного
погуглить и с большой вероятностью найти поблизости от себя фирму,
клиентскими машинами которой можно будет порулить дистанционно…
|