■ЛииШшщШIИ а[II
щщ^ВИРшР т!ТЩШ Щщр] [IIIIIII || "т
СМИРНОВ1 Александр Сергеевич МУЛЕЙС2 Рами Бассельевич САВЧУК3 Андрей Викторович ТОЛСТАЯ4 Анастасия Михайловна РУБИН5 Дмитрий Трофимович
АНАЛИЗ ВОЗМОЖНОСТИ ВНЕДРЕНИЯ ВРЕДОНОСНОГО КОДА В СИСТЕМЫ АВТОМАТИЗИРОВАННОГО УПРАВЛЕНИЯ НА ОСНОВЕ УЯЗВИМОСТЕЙ RFID-ТЕХНОЛОГИИ
Данная статья, посвящена исследованию уязвимостей технологии RFID, которые могут быть использованы, злоумышленником для. внедрения вредоносного кода в системы, управления, цепочками поставок и получения конфиденциальной информации, хранящейся, на RFID-метках.
Ключевые слова: технология. RFID, метка (тег), SQL-запрос, вирус, защита RFID-систем.
This article describes RFID-technoIogy vulnerabilities that can be used by a cyber criminal in order to infect information, to the system, of supply chain management to get confidential data from, the RFID-tag. Keywords: RFID-technology, tag, SQL, malware, RFID security.
Системы управления цепочками поставок (supply chain management) — это организационная стратегия и прикладное программное обеспечение, предназначенные для автоматизации и управления всеми этапами снабжения предприятия или организации и контроля всего товарооборота. Система охватывает весь цикл от закупки до распространения товаров [1]. Такие системы могут использоваться, например, в сетевых магазинах, где вводится единая система идентификации и учета товара.
Сетевые магазины в своей инфраструктуре имеют разветвленную логистику, а также зачастую владеют мясными фермами, молочными хозяйствами и тепличными комплексами,
чтобы снизить наценки на товар за счет исключения посредников в цепочке поставок. Все это заставляет искать новые технологии для отслеживания продукции от места производства до полок магазинов.
Последнее время для подобных целей все чаще применяется RFID-техно-логия (Radio Frequency IDentification — радиочастотная идентификация). У RFID-технологии есть ряд преимуществ [2].
Во-первых, появляется возможность помещать метки на товары или на контейнеры для их перевозки и не заботиться о том, что метки испортятся при попадании влаги или при механических повреждениях, так как они облачаются в специальные защитные корпуса.
Во-вторых, ЯРГО-метки все чаще встраиваются в контейнеры для перевозки. Контейнерное решение удобно тем, что метка может быть перезаписываемой, а значит, контейнеры могут использоваться несколько раз. В-третьих, ЯРГО-метка может содержать значительно больше информации, чем стандартный штрих-код — до 10 000 байт могут храниться на микросхеме метки площадью в один квадратный сантиметр, в то время как штриховые коды могут вместить только 100 байтов (знаков) информации. Наконец, для чтения информации с ЯРГО-меток не требуется прямая видимость метки, что существенно упрощает процесс считывания данных.
' — НИЯУ «МИФИ», аспирант;2 — Московский университет путей сообщения;
3 — НИЯУ «МИФИ», студент;4 — НИЯУ «МИФИ», студентка; 5 - НИЯУ «МИФИ», студент.
Таблица 1
Идентификатор метки (Tag) Содержание метки (ContainerContents)
123 Яблоки
234 Груши
Как и многие новые технологии и разработки, одновременно с новыми возможностями и большим потенциалом оптимизации затрат и продуктивности, ЯРГО несет в себе новые угрозы информационной безопасности. Эти угрозы связаны, прежде всего, со следующими факторами:
♦ небезопасный канал связи между метками и считывателями;
♦ доступ к меткам возможен с помощью любого считывателя;
♦ метки, как правило, не защищены от физического доступа;
♦ конструкция меток предполагает жесткие ограничения вычислительных ресурсов в целях снижения стоимости;
♦ протоколы связи между метками и считывателями максимально упрощены для оптимизации конструкции меток.
В связи с приведенными особенностями, существует множество различных атак на ЯРШ-системы. К примеру, в работе [3] приводится классификация атак РЧИ-систем, разделенным по уровням, аналогичным тем, что используются в модели ОЯ1. В работе [4] эта классификация атак модифицирована, и проведен анализ воздействий. Рассмотрим классификацию атак на ЯРГО-систему в зависимости от уязвимости ее компонентов:
♦ уровень инфраструктуры;
♦ уровень коммуникаций;
♦ физический уровень (оборудование ЯРГО).
На физическом уровне существуют различные типы атак, использующие уязвимости, связанные с принципом работы оборудования, который базируется на передаче информации по радиосигналам и ограничениями вычислительных возможностей ЯРГО-ме-ток. На уровне коммуникаций эксплуатируются уязвимости, связанные с особенностями протоколов использующиеся в ЯРГО-системах. Наконец, на уровне инфраструктуры эксплуатируются уязвимости приложений и баз-данных ЯРЮ-систем. Одним из видов атак на уровне инфраструктуры является инъекция вредоносных кодов. В данной статье рассматривается способ инъекции вредоносного кода (вируса) в ЯРЮ-системах на основе уязвимости в инфраструктуре ЯРШ-систем.
Вирус, заразивший одну систему учета сетевого магазина, может самостоятельно распространяться на RFID-мет-ках и заражать другие системы учета остальных сетевых магазинов. Таким образом, фактически появился вирус, который распространяется не по компьютерным сетям, а физически на носителях информации. Подобные вирусы крайне сложно идентифицировать. Поразив систему учета сетевых магазинов, они вполне могут вывести ее из строя или передавать важную конфиденциальную информацию злоумышленнику.
Системы учета сетевых магазинов обычно имеют следующую архитектуру. Существует некоторый поставщик продовольствия и магазин, где эта продукция реализуется. Для транспортировки продовольствия от поставщика в магазин используются многоразовые контейнеры, каждый из которых оборудован RFID-тегом, доступным для записи и чтения данных. Поставщик помещает в контейнер какой-либо продукт, например, яблоки или груши, и на RFID-метку записывается информация об этом товаре. После того как товар отгружен в магазине, информация из RFID-метки считывается и поступает в базу данных системы учета магазина.
Подобная RFID-система проста с точки зрения архитектуры. Она состоит из базы данных, нескольких считывающих/записывающих устройств, а также самого программного комплекса, осуществляющего обработку информации. Стандартная таблица Container (контейнер) базы данных подобной системы может выглядеть так, как показано в табл. 1
Согласно табл. 1 в контейнере с номером 123 хранятся яблоки, а в контейнере с номером 234 — груши. Цель злоумышленника — поразить хотя бы одну метку контейнера вирусом. Это можно сделать, изъяв один контейнер или непосредственно за-
писав информацию на него с ручного считывателя. Приведем пример тела вируса:
6aHaHbi;UPDATE Container SET ContainerContents = ContainerContents ||'';[деструктивный код]'';
В данной директиве указывается, что во все строки таблицы Container в поле ContainerContents (табл. 1) дописывается текст самого вируса. Выполняется это с использованием директивы UPDATE — обновления поля. Директива || показывает, что к содержанию ячейки ContainerContents необходимо добавить следующую строку '';[деструктивный код]'';. Следует отметить, что этот вариант вируса является рекурсивным [5]. То есть при повторном заражении системы строка ''¿[деструктивный код]''; будет добавлена к заражаемому полю еще раз. Для того чтобы обойти этот недостаток, создатели вируса могут использовать следующий прием. Большинство баз данных поддерживают механизм, согласно которому SQL-запрос может получить список всех выполняемых в данных момент SQL-запросов [6]. Так, например, в базах данных Oracle такой запрос выглядит следующим образом:
SELECT SQL_TEXT FROM $sql WHERE INSTR(SQL_TEXT,"')>0;
Аналогичные команды существуют и в PostgreSQL, и в MySQL. Следовательно, окончательная версия вируса будет иметь вид:
Contents=Клубника; UPDATE Container SET ContainerConte nts=ContainerContents || ';' || CHR(10) | | (SELECT SQL_TEXT FROM v$sql WHERE INSTR(SQL_TEXT,"')>0);
Тем не менее существует проблема при использовании такого приема. Так, во многих базах данных в зависимости от
нагрузки процессора и быстродействия может иметь место существенная задержка в выполнении SQL-запросов. Например, в базе данных PostgreSQL такая задержка приведет к тому, что в списке текущих исполняемых запросов будет значиться '<IDLE>'. Исключение составляет лишь Oracle, где задержка не сказывается на работе системы.
В результате запрос
SELECT SUBSTR(SQL TEXT,43,127) FROM $sql WHERE
INSTR(SQL TEXT, ..payload...)>0)
будет реализован без особых затруднений.
Можно предложить альтернативный способ обращения к исполняемым в настоящий момент SQL-запросам. Изменяя способ обращения к запросам, можно разнообразить вирусный код, а значит, сделать его обнаружение более сложным.
Новый прием базируется на программах, которые могут вывести на экран свой собственный код. Такие программы имеют следующую структуру. Они состоят из двух главных частей: области кода и области данных. Область данных — это область, где представлен текст программного кода. Область кода использует область данных для вывода текста программы, а потом использует область данных для вывода самой области данных.
Обратимся к конкретному примеру. На языке PostgreSQL программу подобного рода можно реализовать следующим образом:
SELECT substr(source,1,93) || chr(39) || source ||
chr(39) || substr(source,94) FROM (SELECT 'SELECT
substr(source,1,93) || chr(39) || source || chr(39)
| | substr(source,94) FROM (SELECT ::text as source) q;'::text as source) q;
Этот SQL-запрос выводит свой собственный текст и больше не выполняет никаких действий.
Для того чтобы добавить вредоносную часть кода в тело вируса, который распространяется указанным способом, необходимо добавить SQL-запрос в
область данных. Область данных не должна использоваться для репродукции собственного кода. Еще один вариант вируса, который будет лишен рекурсивности и сможет заражать базы данных, распространяясь лишь на RFID-метках, может быть реализован так, как показано ниже. При считывании данных с RFID-метки, для того чтобы обновить содержание базы данных, системное программное обеспечение использует запрос типа
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%'.
Рассмотрим пример того, как это может быть реализовано злоумышленником.
%content%' WHERE TagId='%id%';
SET @a='UPDATE Container SET NewCo ntents=concat(\'%content%\\\' WHERE TagId=\\\'%id%\\\';
SET @a=\', QUOTE(@a), \'; \', @a); %payload%; --';
UPDATE ContainerContents SET NewContents=concat('%content%\' WHERE TagId=\'%id%\'; SET @a=', QUOTE(@a), '; ', @a);
%payload%; -В идентификаторе %content%, записывается безобидное содержимое RFID-метки, но сразу после него следует закрывающая верхняя кавычка, которая позволяет после нее поместить основное тело вируса. Во второй строке приведенного выражения производится присвоение переменной a строки с телом вируса. Тело вируса находится в третьей строке. Приведен код, который обновляет поле NewContents для каждой записи. Первая часть кода — это первая строка вируса. Далее следует первая часть второй строки вируса вплоть до того места, где приводится экранированное содержимое переменной a. Это содержимое подставляется с помощью оператора MySql QUOTE, который отвечает за экранирование. Далее подставляется неэкранирован-ное содержимое при помощи пере-
менной a. Таким образом, подобная конструкция позволяет вирусу распространяться, копируя свое тело. RFID-вирус, заразивший систему, может распространяться, заражая другие RFID-метки, обрабатываемые атакуемой системой. Но такие вирусы опасны еще и потому, что они могут содержать условие. Согласно условию, любое деструктивное действие со стороны вирусов будет осуществляться только через определенный промежуток времени. Иначе говоря, у вируса будет время на распространение, и только после этого будет осуществлена сама атака. Например, все базы данных, пораженные вирусом, будут одновременно уничтожены. Такой вариант атаки возможен именно благодаря тому, что в SQL-синтаксисе предусмотрена возможность условного выполнения тех или иных команд.
Одним недостатком приведенного вируса является его привязка к конкретной структуре базы данных. То есть в самом вирусе используются наименования таблиц базы данных. Это означает, что злоумышленник должен заранее хорошо знать атакуемую им систему. Однако это не всегда означает универсальность вируса.
Чтобы обойти этот недостаток, необходимо изменить текст SQL-вируса таким образом, чтобы в нем отсутствовало указание на конкретную таблицу базы данных. Язык SQL позволяет это сделать. Но и у такого приема существуют минусы. Дело в том, что если запрос SQL будет недостаточно интеллектуальным с точки зрения выбора поражаемых таблиц, то могут быть изменены данные таблиц, которые необходимы для распространения вируса.
Поясним на примере. В случае с поставщиком и магазином к таким данным относятся номера меток. Таким образом, вирус, исказив номера меток, сам же преградит себе путь к распространению, так как RFID-система уже не сможет определить, в метки какого контейнера какие данные помещать.
Защититься от подобной атаки достаточно легко. Необходимо настроить базы данных таким образом, чтобы исключить из них значения, превыша-
ющие допустимые. Заметим, что полноценные вирусы, распространяющиеся на КРГО-метках, требуют большого объема памяти Щ
1. Harland, C.M. Supply Chain Management, Purchasing and Supply Management, Logistics, Vertical In tegra tion, Ma terials Man agemen t
an d Supply Cha in Dyn am ics. In : Slack, N (ed.) Blackwell Encyclopedic Dictionary of Operations Management. UK: Blackwell, 1996.
2. Жуков И.Ю., Шустова Л.И., Михайлов Д.М. Протокол аутентификации для RFID систем./ Проблемы информационной безопасности. Компьютерные системы, 2009. — № 3. — С. 41 - 45.
3. Aikaterini Mitrokotsa, Melanie R. Rieback and Andrew S. Tanenbaum. Classification of RFID Attacks. 2008, URL: http://www.cs.vu.nl/~ast/ publications/iwrt-2008.pdf.
4. Aikaterini Mitrokotsa and Michael Beye and Pedro Peris-Lopez. Classification of RFID Threats based on Security Principles. URL: http://lasecwww.epfl. ch/~katerina/papers/RFIDthreats.pdf.
5. Что такое компьютерный вирус? Habrahabr, 2011. URL: http:// habrahabr.ru/company/bitdefender/ blog/128180/.
6. Федорук В.Г. Основы языка SQL. Московский Государственный Технический Университет имени Н.Э.Баумана. URL: http://rk6.bmstu. ru2electr/nic_b//k/i/sapr/sql/sql_ tutor.html.
Литература
Общество с ограниченной ответственностью
С 1Е1_1ИАЛЬНЫЕ ТЕХНИЧЕСКИЕ И
КРИМИНАЛИСТИЧЕСКИЕ СРЕДСТВА
Лицензии ФСБ России ГТ № 0011838 от 27.06.2008 г. и A3 № 0015048 от 25.08.2008 г.
Ш Оснащение субъектов оперативно-розыскной деятельности, служб безопасности;
■ технические средства для обеспечения безопасности бизнеса;
■ криминалистическое оборудование.
Адрес: Москва, Ленинградское ш., д. 80, корп. 22 (Балтийская ул., д. 9) Почтовый адрес: 109052 Москва, а/я 61, ООО «СТИКС» тел./факс (495) 755-6199, 755-6410 E-mail: [email protected], [email protected]
S1