Хакеры выходят в оффлайн... и побеждают

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

На последней хакерской конференции Black Hat известный хакер Коди Брошес (Cody Brocious), по совместительству разработчик Mozilla Project, рассказал публике, как во время путешествий по миру его внимание привлёк гостиничный цифровой замок фирмы Onity, который работает на магнитных карточках вместо ключа. Поскольку развидеть подобную игрушку он уже не смог, он принялся ковырять её механизм защиты, выполнив его полный reverse engineering. И, конечно - нарыл просто жуткие уязвимости, которые позволяют открывать любой такой замок буквально мгновенно. Небольшая проблема заключалась лишь в том, что цифровые замки от Onity установлены примерно в 70% западных отелей, являясь своеобразным стандартом надежности и солидности гостиницы.

И пока Onity уже год думает, что же со всем этим теперь делать, давайте в преддверии отпускного сезона поговорим о том, как самостоятельно изготовить простой фломастер-отмычку, который позволит мгновенно открыть любую гостиничную дверь современного многозвездочного западного отеля/гостиницы. Конечно, нам интересна исключительно образовательная компонента этого хака, поэтому далее понадобится немного знаний в электронике и популярный микроконтроллер Arduino под рукой - всё остальное будет изложено в статье ниже.


Вводная теория

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

Классический гостиничный замок Onity HT locks, который вы, вероятно, видели в американских фильмах, представляет из себя электронный замок, который открывается специальной магнитной карточкой (Onity key card), которая выполняет функцию ключа.

Есть два типа таких карточек. Во-первых, это обычная карточка клиента (guest card), которая выдается постояльцу на время его пребывания в номере, и которая содержит на себе уникальный криптографический ключ-код для данной конкретной двери. И, во-вторых, также есть универсальная карточка от всех замков этажа для обслуживающего персонала гостиницы, которая содержит свой отдельный код-ключ (master sitecode).

Продолжая приближаться к проблеме - каждый такой замок содержит порт для его подзарядки (DC charger port) в нижней части замка. Этот неприметное гнездо создано для обслуживающего персонала, через которое можно не только подзаряжать батарею замка, но и использовать его для перепрограммирования - присвоения замку того самого уникального криптографическиого ключа.

Думаю, что читатель уже догадался, что нужно воспользоваться именно этим сервисным гнездом для получения доступа. Но на этом этапе ждёт первый (и последний) облом - в замке нет интерфейса, через который можно было бы запросить искомый код-ключ. Данный "служебный" интерфейс позволяет лишь напрямик работать с памятью замка, т.е. записывать туда тот самый ключ. Фактически, этот разъем не дает доступа к сервисной логике запрос-ответ как раз из соображений безопасности, но взамен... он даёт полный низкоуровневый доступ к флэшке замка для любых операций с её памятью!

Коди Брошес утверждает, что его простейшая "электронная отмычка" на базе Arduino открывает любой подобный замок ровно за 200 миллисекунд, которые тратятся на полный цикл подключения-считывания ключа из памяти и открытия замка штатным образом. Используя эту технологию, можно также записывать ранее "сграбленный" ключ на пустые карточки-болванки, внешне полностью воспроизводя валидный ключ-карточку отеля. Учитывая, что также легко можно считывать и мастер-пароль для всех дверей гостиницы - раздолье для криминальных элементов, конечно, открывается просто невиданное.


Хакерим своими руками

Поскольку в нашей местности предпочитают амбарные замки, давайте посмотрим, что представляет в техническом плане эта универсальная хакерская отмычка гостиничных номеров.

По заявлению её автора - она обойдется вам не более чем в $30. И хотя первые образцы хакерской прошивки порой давали сбои и пасовали перед некоторыми моделями замков, на данный момент она усовершенствована до 100% срабатывания.

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

  • Классический метод, который был представлен на Black Hat (вот его оригинальная PDF-презентация);
  • Доработанный метод, созданный на основе первого, представлен позже фирмой Trustwave's SpiderLabs (главная теория которого описана здесь), и в котором используется тот самый прикольный фломастер в качестве отмычки. Принципиальная схема доступна по этому адресу;
  • Оба метода зиждутся на низкоуровневой логике работы замка, подробно изложенной здесь. Обратите внимание, что после порции теории и логики (а именно после заголовка Sketch), там приводится код самой прошивки.

Суммируя можно заключить, что всё очень просто, если у вас имеются минимальные базовые понятия о программировании и электронике. В качестве лишь одного примера для наглядности, приведу центральную команду для чтения секретного ключа замка:

00000000000000000000000000000000000000001010001111AAAAAAAA1BBBBBBBB1CCCCCCCC

Команда чтения представляет собой единую (непрерывную) последовательность байтов (командная группа), где начальная часть из 0 - постоянная часть пакета, A - старшая часть адреса считываемой памяти, B - младшая часть адреса считываемой памяти, а C - это контрольная сумма всей перечисленной части пакета, которая берется от него путем простой логической операции XOR: A ^ B ^ 0x1D.

Собственно, сами адреса ключей (A:B), как и было сказано выше, располагаются на постоянных смещениях, вот они:

  • Код обычной карточки (sitecode): 4 байта начиная с 0x114 (здесь первый байт-индикатор всегда = 0x00);
  • Код мастер-ключа: 3 байта начиная с 0x124 (если первый байт-индикатор = 0x80, значит мастер-пароль установлен, в противном случае этот байт будет = 0xFF)
  • Кодовые ключи: 0x412C (здесь первый байт для замков всегда = 0xFF, скорее всего, этот код зарезервирован для различного специализированного оборудования, создаваемого на основе данных замков, например, в домофонах Onity).

Для тренировки потребуется и сам замок, который можно свободно купить на барахолке eBay примерно за $50 (например, найдя его по этому запросу). Хочу сказать, как обладатель оного - замок на карточке чрезвычайно удобен и очень эффектно смотрится, просто не стоит ему доверять какие-то критические двери (например, в квартиру, где деньги лежат). А перепрошивать его вы теперь и сами умеете, поэтому на покупке программатора можно будет сэкономить (купив лишь заранее пустую карту - spare card).

В заключение этого пункта предлагаю посмотреть, как всё это будет смотреться в действии и в полном сборе.

Первое видео - классический вариант от Коди Брошеса:

Второе видео - доработанный до "фломастерного" форм-фактора вариант от фирмы SpiderLabs:

А вот и сам комплект этого замка в разобранном виде:


Послесловие о масштабах бедствия

Напоследок, немного статистики для осмысления последствий этой оффлайновой проделки хакера.

Гостиничные электронные замки Onity популярной серии HT (Tesla) производятся с 2003 года. Всего произведено более 5 млн. экземпляров, которые чрезвычайно популярны в отелях. Их главное преимущество - частые утери или невозврат карточек-ключей не являются проблемой - для восстановления "ключа" или перепрограммирования замка на новый код нужно не более 5 минут. Замок остаётся независимым от аварийного отключения электричества в сети. Опять же, согласно полицейской статистике, такие замки считаются очень надежными, - их не любят традиционные воры-медвежатники, потому как электроника - чаще всего компетенция уже следующего по отношению к ним поколения.

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

Игорь САВЧУК,
Blogerator.ru

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!