Хакер - СКУД глазами хакера. Атакуем системы контроля доступа на основе RFID

Хакер - СКУД глазами хакера. Атакуем системы контроля доступа на основе RFID

hacker_frei

https://t.me/hacker_frei

Thund3rb0lt

Содержание статьи

  • Как устроен EM4100?
  • Векторы атак на СКУД с EM410X
  • Копирование оригинального пропуска
  • Генерация новых UID на основе существующих
  • Брутфорс значений идентификаторов
  • Пара слов о считывателях
  • Компрометация за одно фото
  • Методы защиты

Взлом элек­трон­ных тур­никетов на вхо­де в зда­ние — завет­ный хакер­ский флекс, который так любят показы­вать в кино. В этой статье я рас­ска­жу о сис­темах уда­лен­ного кон­тро­ля дос­тупа (СКУД) на осно­ве RFID, и мы вмес­те раз­берем­ся, нас­коль­ко прос­то под­делать самый рас­простра­нен­ный иден­тифика­тор EM4100.

Термины

  • СКУД (англ. PACS) — ком­плекс обо­рудо­вания, пред­назна­чен­ный для огра­ниче­ния дос­тупа на охра­няемом объ­екте. Минималь­ная кон­фигура­ция такой сис­темы — это бу­хой вах­тер элек­трон­ный замок на осно­ве RFID.
  • RFID — спо­соб авто­мати­чес­кой иден­тифика­ции объ­ектов с помощью ради­осиг­налов, хра­нящих­ся на тран­спон­дерах (RFID-мет­ках).
  • RFID-мет­ка — сбор­ное устрой­ство для хра­нения информа­ции, сос­тоящее из интеграль­ной схе­мы (чипа) для выпол­нения опе­раций с сиг­налом и информа­цией, антенны для переда­чи и при­ема сиг­нала и, опци­ональ­но, батареи питания (не рас­простра­нено в пов­седнев­ном при­мене­нии — дорого и избы­точ­но).

Бо­лее под­робную информа­цию о RFID мож­но най­ти в Википе­дии.

EM410X — край­не популяр­ная модель­ная линей­ка иден­тифика­торов, раз­работан­ная ком­пани­ей EM Microelectronics. В пов­седнев­ной жиз­ни они при­меня­ются самыми раз­ными спо­соба­ми: от исполь­зования в СКУД государс­твен­ных (и не толь­ко) учрежде­ний до мар­киров­ки и уче­та живот­ных.

Сю­да вхо­дят чипы с иден­тифика­тора­ми EM4100, EM4102, EM4105 и EM4200, которые раз­лича­ются объ­емом памяти (от 64 до 128 бит) и областью при­мене­ния.

ИДЕН­ТИФИКА­ТОРРА­БОЧАЯ ЧАС­ТОТАОБЪ­ЕМ ПАМЯТИРАЗ­МЕР UIDКРИП­ТОГРА­ФИЯСФЕ­РА ПРИ­МЕНЕ­НИЯEM4100100–150 кГц64 бита5 байтНетСКУД, логис­тикаEM4102100–150 кГц64 бита5 байтНетУчет и мар­киров­ка живот­ныхEM4105100–150 кГц128 бит8 байтНетУчет и мар­киров­ка живот­ныхEM4200100–150 кГц128 бит8 байтНетСКУД, логис­тикаФор­маль­но все эти иден­тифика­торы работа­ют на час­тоте 125 кГц, одна­ко могут исполь­зовать диапа­зон час­тот, ука­зан­ный в таб­лице выше.

На­ибо­лее широко исполь­зуют­ся (и прос­ты в понима­нии) иден­тифика­торы EM4100, поэто­му мы оста­новим­ся имен­но на них.

КАК УСТРОЕН EM4100?

Струк­тура дан­ных в иден­тифика­торе EM4100 выг­лядит сле­дующим обра­зом.

Са­мая важ­ная для нас в этой схе­ме груп­па из голубых и синих битов, которые вмес­те сос­тавля­ют 5 байт (40 бит) и слу­жат уни­каль­ным иден­тифика­цион­ным кодом RFID-мет­ки.

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

ВЕКТОРЫ АТАК НА СКУД С EM410X

Ни в одной из вари­аций у EM410X нет крип­тогра­фии или какого‑то дру­гого спо­соба защиты. Поэто­му все век­торы атак, которые мне уда­лось обна­ружить, свя­заны либо с прин­ципи­аль­ными недос­татка­ми самих иден­тифика­торов, либо с их небезо­пас­ной экс­плу­ата­цией.

В качес­тве цели ата­ки давай рас­смот­рим авто­ном­ную (не интегри­рован­ную с про­чими сис­темами) СКУД с бес­контак­тны­ми счи­тыва­теля­ми. Это самый прос­той вари­ант для понима­ния и вос­про­изве­дения ата­ки.

Итак, наша цель — получе­ние как минимум одно­го пос­тоян­ного физичес­кого дос­тупа в помеще­ние, вход в которое огра­ничен с исполь­зовани­ем этой тех­нологии. 

Копирование оригинального пропуска

Пос­коль­ку EM410X не исполь­зует никакой защиты переда­ваемых дан­ных, их копиро­вание не пред­став­ляет ни малей­шей слож­ности.

Я не буду здесь рас­смат­ривать получе­ние валид­ного про­пус­ка для копиро­вания, как и сам про­цесс соз­дания кло­на. Все это может силь­но раз­личать­ся в кон­крет­ных слу­чаях. Осо­бо любопытс­тву­ющим могу пореко­мен­довать гай­ды от Lab401 и Dangerous Things.

Од­нако это слиш­ком прос­то, не прав­да ли? Как нас­чет того, что­бы нем­ного рас­ширить количес­тво дос­тупных нам валид­ных про­пус­ков без получе­ния их ори­гиналь­ных физичес­ких копий?

Генерация новых UID на основе существующих

Пред­ста­вим, что у нас есть абс­трак­тная орга­низа­ция, СКУД в которой исполь­зует иден­тифика­торы EM4100. Ста­нет ли она закупать каж­дый из них по отдель­нос­ти?

Зай­дем с дру­гой сто­роны. Что будет про­ще для спе­циалис­та, который нас­тра­ивает сис­тему: заносить каж­дый иден­тифика­тор в базу по отдель­нос­ти или зарегис­три­ровать их груп­пой?

Ско­рее все­го, ты уже понял, к чему я пыта­юсь тебя под­вести. При извес­тном UID одно­го из валид­ных иден­тифика­торов с боль­шой веро­ятностью «сосед­ние» по зна­чению UID-иден­тифика­торы тоже будут рас­позна­ны сис­темой как валид­ные.

Рас­смот­рим при­мер: у нас есть иден­тифика­тор с UID 12 00 EC DA A1. При уве­личе­нии (или умень­шении) стар­шего бай­та мы дол­жны получить так­же валид­ное для сис­темы зна­чение иден­тифика­тора. Таким обра­зом, сле­дующие UID будут иметь зна­чения

12 00 EC DA A2

12 00 EC DA A3

12 00 EC DA A4

12 00 EC DA A5

12 00 EC DA A6

...

Все они с высокой долей веро­ятности будут валид­ными.

Дей­стви­тель­но ли это так? Не всег­да. На прак­тике в сис­теме может не быть каких‑то иден­тифика­торов из спис­ка, или их мог­ли заб­локиро­вать. Про­верить это мож­но толь­ко вжи­вую на кон­крет­ном при­мере, но раз­ве это не добав­ляет в задачу нем­ного здо­рово­го азар­та?

Брутфорс значений идентификаторов

При виде спис­ка из пре­дыду­щего пун­кта у тебя мог воз­никнуть впол­не логич­ный воп­рос: воз­можно, быс­трее и надеж­нее будет вос­поль­зовать­ся брут­форсом? И дей­стви­тель­но, это не худ­ший вари­ант, бла­го для его реали­зации сущес­тву­ет мно­жес­тво удоб­ных решений, таких как Flipper Zero, Proxmark III и DIY на Arduino. Единс­твен­ный минус такого метода — сот­рудни­ки охра­ны явно не будут прос­то сто­ять и смот­реть, как ты под­носишь к счи­тыва­телю стран­ное устрой­ство.

Кста­ти, раз уж мы загово­рили о методе гру­бой силы, как нас­чет пос­читать общее количес­тво воз­можных зна­чений иден­тифика­торов? Если ты с ходу отве­тил: 2565 вари­антов, то мои поз­драв­ления!

Хо­тя, стоп... а всег­да ли 2565?

Пара слов о считывателях

Мы пока что говори­ли толь­ко об иден­тифика­торах и тех проб­лемах, которые свя­заны кон­крет­но с ними. Но как нас­чет счи­тыва­телей иден­тифика­торов, которые и «при­нима­ют решение», про­пус­кать то или иное лицо на охра­няемый объ­ект?

Что ж, тут есть свои нюан­сы. Хотя количес­тво бай­тов, сос­тавля­ющих UID иден­тифика­тора, никог­да не меня­ется (их всег­да пять), это не озна­чает, что все они будут исполь­зовать­ся для про­вер­ки валид­ности.

Ве­роят­но, ты сей­час не сов­сем понима­ешь, как такое воз­можно. Что­бы вый­ти из этой нелов­кой ситу­ации, советую про­читать статью про Wiegand — широко рас­простра­нен­ный интерфейс свя­зи меж­ду устрой­ством чте­ния иден­тифика­тора и кон­трол­лером.

Ес­ли крат­ко, то боль­шинс­тво «дешевых», а так­же ста­рых сис­тем СКУД исполь­зуют Wiegand-26, который спо­собен переда­вать толь­ко 24 бита дан­ных (и 2 бита чет­ности), что, как ты понима­ешь, сущес­твен­но сок­раща­ет рас­счи­тан­ный нами ранее пул воз­можных зна­чений иден­тифика­тора до 2563.

Сог­лашусь, это все еще мно­го. Хотя есть один спо­соб сок­ратить их чис­ло до 256 либо отбро­сить необ­ходимость брут­форса в целом...

Компрометация за одно фото

Ни­ког­да не задумы­вал­ся, что за стран­ные циф­ры нанесе­ны на твою RFID-кар­ту?

Ко­неч­но, они здесь не прос­то так. На самом деле по фак­ту эти циф­ры явля­ются частью UID, но в де­сятич­ном фор­мате.

Рас­смот­рим при­мер с этой кар­ты:

  • 0008671306 = 0x0084504A — 4 бай­та UID;
  • 132 = 0x84 — ID кли­ента отдель­но;
  • 20554 = 0x504A — 2 стар­ших бай­та отдель­но.

Ори­гиналь­ный UID иден­тифика­тора: 4E 00 84 50 4A.

INFO

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

По­луча­ется, час­то все­го по одной фотог­рафии иден­тифика­тора мож­но соз­дать его валид­ную для про­веря­ющей сис­темы копию либо понизить количес­тво переби­раемых зна­чений вплоть до 256 вари­антов. Неп­лохо, прав­да? 

МЕТОДЫ ЗАЩИТЫ

Те­перь, ког­да ты узнал о воз­можных век­торах атак на СКУД, у тебя навер­няка воз­ник воп­рос: мож­но ли защитить­ся от рас­смот­ренных выше атак или хотя бы смяг­чить их пос­ледс­твия?

И да, и нет. Нес­мотря на то что про­изво­дите­ли таких сис­тем раз­рабаты­вали спо­собы выяв­ления «кло­нов», внед­рение допол­нитель­ных сис­тем про­вер­ки иден­тифика­торов нецеле­сооб­разно, и наибо­лее прос­тым решени­ем будет перей­ти на Mifare 1k — не менее популяр­ные иден­тифика­торы, но уже с под­дер­жкой крип­тогра­фии, которые мы рас­смот­рим в сле­дующей статье.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei



Report Page