Исследование возможных атак на системы умного дома с использованием электронных ключей и способы защиты от них
Автор: Стариковский Андрей Викторович, Жуков Игорь Юрьевич, Михайлов Дмитрий Михайлович, Зуйков Александр Васильевич, Толстая Анастасия Михайловна
Журнал: Спецтехника и связь @st-s
Статья в выпуске: 4, 2012 года.
Бесплатный доступ
Данная статья посвящена описанию возможных атак на системы автоматизированного управления зданием с использованием электронных ключей. Электронные ключи позволяют обеспечить разграничение доступа в различные помещения здания. Для реализации атаки злоумышленник использует уязвимости RFID -технологии, на которой построена работа электронных ключей. Уязвимые места технологии содержатся в компьютерной системе.
Лектронный ключ, технология rfid, метка, разграничение доступа
Короткий адрес: https://sciup.org/14967109
IDR: 14967109
Текст научной статьи Исследование возможных атак на системы умного дома с использованием электронных ключей и способы защиты от них
С овременные дома все больше напоминают большие компьютеры.
Системы видеонаблюдения, датчики охраны и задымления, системы контроля доступа, электронные замки, медиасистемы – все это уже установлено в большинстве современных автоматизированных зданий [1, 2]. Особое значение в таких зданиях имеет система обеспечения контроля входа/выхо-да посетителей и сотрудников.
Долгое время в качестве подобных систем использовались магнитные брелки. Но системы на «магнитной технологии» были крайне непрактичны, так как фактически позволяли без особых проблем получить доступ в здание практически любому человеку [3]. Для этого необходимо было просто скопировать ключ. А так как идентификаторы всех ключей идентичны, то получить полную информацию о том, кто, когда и как вошел в здание, а также, чей ключ был скопирован, не представлялось возможным. Такие системы защищали, пожалуй, только от случайных гостей.
В связи с этим сегодня широкое распространение в системах автоматизации зданий приобретают электронные ключи. Электронные ключи или, как их еще называют, ключи второго поколения – это брелоки или пластиковые карточки, которые необходимо приложить к специальному электронному замку для его открытия. Подобные ключи, как правило, уникальны для каждого, кто имеет допуск в здание. Система, построенная на использовании подобных ключей, позволяет вести учет того, кто и когда входил или выходил из помещения.
Помимо реализации допуска в само здание, система электронных ключей обеспечивает разграничение доступа в различные помещения и отдельные-комнаты.
В отличие от магнитных ключей, в которых хранится лишь постоянный идентификационный номер, электронные ключи построены на базе технологии RFID и обладают расширенным функционалом.
RFID (Radio Frequency Identification – радиочастотная идентификация) – это технология бесконтактной автоматической идентификации объектов при помощи радиочастотного канала связи. По своим функциональным возможностям RFID-технология очень близка к используемой в настоящее время технологии штрихкодов. Тем не менее данная технология имеет существенные преимущества [4].
Технология RFID позволяет удаленно идентифицировать объект с помощью портативного устройства (считывателя), если на объект помещена специальная метка. В метке хранится информация об этом объекте. За одну секунду возможно идентифицировать большое количество объектов. Информацию в метке можно перезаписывать. Если на базе технологии RFID строится система допуска в здание, то администратор системы имеет гибкий механизм изменения алгоритма доступа в здание, а также в отдельные его помещения [4]. Пропуска (метки) обычно исполняются в виде белых пластиковых карт, черных брелоков или браслетов. Несмотря на все преимущества таких ключей, системы на базе подобных электронных систем могут быть достаточно уязвимы. Существует вероятность того, что пропуск в здание или в секретное помещение может получить посторонний человек, обманув всю систему, используя уязвимости технологии RFID. Прежде чем пояснить, как злоумышленнику удается реализовать подобную атаку, уделим немного внимания стандартной архитектуре RFID-систем [5]. RFID-система представляет собой совокупность следующих компонент: ♦ RFID-метка;
-
♦ RFID-антенна;
-
♦ RFID-считыватель;
-
♦ компьютерная система обработки данных.
В приведенной на рис. 1 схеме особое внимание стоит уделить компьютерной системе. Фактически это система, обрабатывающая данные с RFID-меток, ведущая учет идентифицируемых объектов и служащая для хранения данных об объектах учета, а также реализующая алгоритмы разделения доступа. Обычно компьютерная система состоит из базы данных, программного модуля обработки информации с RFID-меток и системы управления базой данных. Именно в компьютерной системе содержатся уязвимые места, которые позволяют злоумышленникам реализовывать атаки с использованием электронных ключей.
Пусть злоумышленник является рядовым служащим, карточка которого запрограммирована таким образом, чтобы разрешать ему доступ только в собственный кабинет, и исключает возможность прохода, например, на склад, где хранится ценная аппаратура. Обычно на карточке такого сотрудника записывается его уникальный идентификатор. Но сотрудник может изменить данные на карточке таким образом, чтобы разрешить себе проход на территорию склада.
Для этого необходимы всего лишь две вещи – RFID-считыватель с возможностью перезаписи данных на метках и знание простого языка запросов к базам данных – SQL. SQL-запрос – это некоторая строка, написанная на специальном языке программирования, позволяющая производить манипуляции с базой данных: вносить и удалять
Таблица 1. База данных программного комплекса, контролирующего доступ в здание
Id |
Name |
Surname |
Department |
Warehouse |
101 |
Ivan |
Osipov |
R&D |
No |
180 |
Anton |
Morozov |
Head office |
Yes |
200 |
Sergey |
Azarov |
Certification |
No |
информацию, а также видоизменять ее [6]. Так, например, база данных программного комплекса, контролирующего доступ в здание, может выглядеть так, как показано в табл. 1 .
В базе хранятся идентификаторы сотрудников (Id), их имена (Name), фамилии (Surname), департамент, где они работают (Department), а также разрешение к доступу на склад (Warehouse). SQL-запросы к данной базе данных выглядят следующим образом:
SELECT name FROM database WHERE id =101;
INSERT INTO database (surname) VALUES (Azarov);
UPDATE database SET name=Petrov WHERE id=180;
При исполнении первого запроса система ищет имя сотрудника (name) из базы данных database, где идентификатор сотрудника 101. Второй запрос позволяет внести нового сотрудника с фамилией Azarov в базу данных. Третий запрос позволяет изменить фамилию сотрудника с идентификатором 180 c Morozov на Petrov.
Однако подобная система уязвима. Так, например, для удобства разработки запросов существует конструкция, именуемая «экранирование». То есть,


Компьютер
Рис. 1. Схема стандартной RFID-системы если программист поставит символ /* в запросе, то оставшаяся часть запроса не будет исполнена. Этот механизм был предусмотрен для удобства написания комментариев к коду, чтобы разработчики могли создавать хорошо документированные программные коды. Однако, используя именно этот механизм, злоумышленники имеют возможность видоизменять логику работы системы RFID-контроля доступом. Предположим, логика системы доступа построена следующим образом. Когда сотрудник прикасается к считывателю у двери, с метки считывается идентификатор (request_id). Этот идентификатор специальным программным модулем обработки данных подставляется в запрос следующего вида:
SELECT name FROM database WHERE id = requested id AND warehouse=YES;
То есть, если только что нанятый работник компании, например, Осипов И., постарается войти на склад, то из базы данных не считается его имя, так как в условиях поиска установлен параметр «NO». Если программный модуль от базы данных с ответом на запрос не получит имя, то есть ответ придет пустым, то в доступе на склад будет отказано.
А теперь представим, что Осипов И. – злоумышленник. Пусть он в свою карточку записал вместо идентификатора 101 следующую строчку:
101; /*
Программный модуль, считав такую строчку, сформирует следующий запрос:
SELECT name FROM database WHERE id = 101;/* AND warehouse=YES;
То есть все, что находится после знака /*, в изначальном запросе выполнено не будет. Это означает, что Осипов И. будет пропущен на склад, ведь никакой проверки на его возможность доступа на склад проводиться не будет.
Злоумышленник, помимо того, что может сам пройти на склад, также способен провести туда сколько угодно сообщников. Для этого ему необходимо еще немного видоизменить запрос. Так на вход в здание (не на склад) запрос считывателя выглядит проще:
SELECT name FROM database WHERE id = requested id;
Для разделения команд в языке SQL используется символ «;» (точка с запятой). Внедряя этот символ в запрос, злоумышленник получает возможность выполнить несколько команд в одном запросе.
В данном случае злоумышленник может поместить в метку следующее значение:
101;INSERT INTO warehouse (id, name, surname, department, warehouse) VALUE (1,Hacker,Hacker,Pirates,YES);
По логике программного средства, работающего с RFID-считывателем, в результате подстановки значения, считанного из тега, должен быть выполнен запрос типа:
SELECT name FROM database WHERE id = requested id;
Но на практике получится следующее:
SELECT name FROM database WHERE id = requested id;
INSERT INTO warehouse (id, name, surname, department, warehouse) VALUE (1,Hacker,Hacker,Pirates,YES);
Таким образом, в таблицу администраторов будет добавлена незапланированная создателями системы посторонняя запись, в результате чего злоумышленник сможет беспрепятственно обеспечить доступ в здание и на склад сразу группе посторонних лиц.
Защититься от подобной атаки не сложно. Для этого требуется уделить особое внимание разработке системы обработки данных с меток.
Во-первых, необходимо проверять то, что передается с метки на считыватель. То есть, если подразумевается, что на метке хранится исключительно идентификатор, то необходимо программно проверять то, что этот идентификатор не превышает допустимого значения и действительно является числом.
Во-вторых, многие базы данных имеют встроенные системы защиты от выполнения сразу нескольких запросов за одну транзакцию. Это повышает защищенность системы. Но программисты обычно не пишут дополнительные проверки и не конфигурируют базы данных так, чтобы исключить возможность исполнения второго несанкционированного запроса ■
Список литературы Исследование возможных атак на системы умного дома с использованием электронных ключей и способы защиты от них
- Кусакин И.И. Программно-аппаратный комплекс автоматизированного контроля целостности инфраструктуры жилых помещений для социального обеспечения. XV Международная телекоммуникационная конференция молодых ученых и студентов «Молодежь и наука»./Тезисы докладов. В 3-х частях. Ч.3. -М.: НИЯУ МИФИ, 2012. -С. 156 -157.
- Стариковский А.В., Жуков И.Ю., Михайлов Д.М., Толстая А.М., Жорин Ф.В., Макаров В.В., Вавренюк А.Б. Исследование уязвимостей систем умного дома./Спецтехника и связь, 2012. -№ 2. -С. 55 -57.
- Ворона В.А., Тихонов В.А. Системы контроля и управления доступом. -М.: Горячая линия -Телеком, 2010. -272 с.: ил.
- Стариковский А.В., Жуков И.Ю., Михайлов Д.М. Усовершенствованный протокол аутентификации бюджетных RFID-меток./Спецтехника и связь, 2012. -№ 1. -С. 25 -27.
- Маниш Бхуптани, Шахрам Морадпур. RFID-технологии на службе вашего бизнеса (RFID Field Guide: Deploying Radio Frequency Identification Systems./Троицкий Н. -М.: Альпина Паблишер, 2007. -290 с.
- Алекс Кригель, Борис Трухнов. SQL. Библия пользователя. Язык запросов SQL. 2-е издание (SQL Bible, 2nd edition). -М.: Диалектика, 2009. -752 с.