Содержание статьи
Сравнительно недавно на экраны кинотеатров вышел фильм «Крепкий орешек 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 автомобилей оборудованием для спутникового слежения. В Ярославле весь пассажирский транспорт управляется центральной диспетчерской службой на основе
спутниковой системы слежения. Так что стоит лишь немного погуглить и с большой вероятностью найти поблизости от себя фирму, клиентскими машинами которой можно будет порулить дистанционно…