Время прочтения: 13 мин.

Что не так со СКУД?

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

  • Карты и RFID считыватели
  • Базы данных
  • Серверы управления

Каждый из этих компонентов может быть подвержен угрозам безопасности. Поэтому, чтобы обеспечить безопасность СКУД, нужно рассмотреть каждый компонент и предпринять меры защиты.

Карты и RFID считыватели

RFID Reader служит источником питания для карточки. Получив энергию от считывателя, метка карточки включается и передает сигнал, который уже читается при помощи считывателя.

Рисунок 1. RFID программатор — считыватель (reader)

Так как считыватели чаще всего вмонтированы в стену, а «взлом» с применением физической силы нам не интересен, перейдём к теме RFID карточек.

Согласно проведенному исследованию «Security Management Magazine», более половины организаций (51%) все еще используют устаревшие карты с низкой частотой (125 кГц), которые были разработаны более 25 лет назад. Эти карты могут быть взломаны с помощью дубликатора, который можно приобрести онлайн за 15 долларов.

Рисунок 2. RFID дубликатор

Мы уже выяснили, что низкочастотные RFID карточки легко поддаются чтению и копированию, особенно если у карты нет протокола шифрования. Теперь попробуем определить: уязвима ли наша RFID карта?

Чтобы определить тип карты, достаточно посмотреть на её обратную сторону. К примеру, у меня это HID Proximity:

Рисунок 3. Определение типа карты

Ну или же (если нет наклейки, которую придётся отдирать) можно посмотреть на лицевую сторону карты:

Рисунок 4. HID ProxCard II

Поищем в интернете и посмотрим характеристики данной карточки:

Рисунок 5. Характеристики RFID карты

Как мы видим, данная карта использует стандарт HID Proximity, работая на низких частотах. Обмен информацией между данной картой и proximity-считывателем осуществляется по открытому протоколу, что делает «проксимити» карты достаточно уязвимыми для злоумышленников.

Существует множество производителей чипов для RFID карт, RFID карты бывают: с защитой и без, низкочастотные и высокочастотные. Рассмотрим характеристику на примере нескольких чипов и покажем, какие являются безопасными, а какие нет.

Примеры небезопасных чипов представлены в таблице ниже:

Таблица 1. Примеры небезопасных RFID карт

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

Примеры безопасных чипов представлены в таблице ниже:

Таблица 2.  Примеры безопасных RFID карт

Кейс: исследуем технологию эксплуатации уязвимости СКУД.

Как узнать номер карты?

Бесконтактно, через одежду/сумку/карман можно незаметно скопировать дамп карты на расстоянии до 10 см, например, в транспорте.

Считывание данных с карты производится с помощью RFID Reader, который можно даже самостоятельно собрать на Arduino. Считывание выглядит примерно следующим образом:

Рисунок 6. Считывание данных с карты

Получили расшифрованный UID карты доступа, в нашем случае это 64 битовый блок – «0х00000000|3S8877BDF2»

Эксплуатация

Записываем данные на пустую карту или эмулируем на «Proxmark 3» (инструмент радиочастотной идентификации), после чего беспрепятственно проходим в здание/помещение.  

Гайд по Proxmark 3, пригодится при составлении обоснования необходимости замены устаревшего СКУД у руководства,  представлен в официальном репозитории проекта.

Рисунок 7. Proxmark 3

Рекомендации по повышению безопасности карт доступа:

  • Во избежание инцидентов, схожих с представленным кейсом, рекомендуется использовать СКУД с высокочастотными картами доступа с шифрованием, к примеру смарт-карты MIFARE Plus и Mifare DESFire, которые имеют шифрование Triple-DES и AES.
  • Если же у компании нет возможности использования высокочастотных карт доступа, то сотрудникам рекомендуется хранить такие RFID карточки в чехлах с защитой от копирования. Также следует оповестить физическую охрану на объекте о необходимости дополнительного контроля за перемещением посетителей.

Базы данных и серверы управления

Также немаловажным аспектом обеспечения кибербезопасности СКУД является фактическое размещение инфраструктуры СКУД. Как организован доступ к данной инфраструктуре, где размещена БД СКУД?

Существует множество баз данных СКУД, в каждой компании может быть установлена та или иная база данных. Примерное соотношение БД в системах СКУД представлено на рисунке 8:

Рисунок 8. Соотношение БД в системах СКУД

Для начала нужно понять, есть ли вообще доступ к базе данных «извне». Находится ли БД в общей сети компании, или же она расположена только в локальной выделенной сети, к которой доступ ограничен.

Для этого можно просканировать внутреннюю сеть (мы же помним, что сканирование можно делать только после соответствующего согласования с Департаментом Безопасности) при помощи сканера nmap, и попытаться найти открытые порты. Искать стоит среди портов, которые заняты базами данных по умолчанию (зачастую порт «по умолчанию» не меняют), к примеру:

  • tcp/3050 – FireBird, Interbase
  • tcp/3306 – MySQL
  • tcp/6432 – PostgreSQL
  • tcp/1433 – MSSQL
  • и другие

Для примера можно взять порт TCP 3050. Начать сканирование можно при помощи команды:

nmap –sS –p3050 –open 192.168.0.0/24

Пример вывода nmap для различных портов:

Рисунок 9. Открытые порты nmap

Допустим, что nmap нашел открытые порты в нашей сети. Далее можно воспользоваться любой программой, к примеру, программой IBExpert, чтобы попробовать подключиться к БД с СКУД.

Для авторизации можно попробовать перебрать все стандартные логины и пароли для баз данных (например, SYSDBA, masterkey;sa и другие). Есть вероятность, что пароль по умолчанию не был сменён при настройке БД или установлен примитивный (qwerty123 и т.д.).

Рисунок 10. Пример окна программы IBExpert

После получения доступа возможны следующие векторы атаки:

  • Кража конфиденциальной информации: злоумышленник может украсть информацию о сотрудниках, посетителях или гостях. Эта информация может включать в себя имена, адреса, телефоны, электронные адреса, фотографии и другие личные данные.
  • Незаконный доступ: злоумышленник может получить доступ к запретным зонам, используя скопированные карты доступа, а также повысить привилегии доступа.
  • Манипуляции с данными: злоумышленник может изменить или удалить данные в базе данных СКУД, что может привести к ошибкам в системе и открытию доступа к незащищенным зонам.
  • Вымогательство: злоумышленник может использовать доступ к базе данных СКУД для вымогательства денег у владельца объекта (к примеру, зашифровать всю БД).

Мониторинг СКУД

Необходимо регулярно анализировать журналы событий доступа. Это поможет выявить любые аномальные действия сотрудников или попытки несанкционированного доступа к системе. Для примера, можно упомянуть программу для мониторинга событий – Splunk.

Рисунок 11. ПО Splunk , окно просмотра БД

В табличном виде можно просмотреть статистику входов/выходов, найти какие-либо аномалии.

Рисунок 12. Пример запроса Splunk

Для выявления аномалий в логах системы контроля и управления доступом (СКУД) можно использовать различные методы, в том числе:

  • Анализ поведения пользователей: если у пользователя есть доступ к определенным зонам, то его активность должна быть согласована с его рабочим расписанием. Пользователь, который пытается получить доступ к недоступным ему зонам в неподходящее время, может считаться аномальным.
  • Анализ частоты входа/выхода: пользователи, которые часто входят и выходят из зон, могут считаться аномальными. Это может быть вызвано, например, неправильной установкой устройства для контроля доступа, или использованием чужой карты доступа.
  • Анализ отклонений от нормы: для каждого пользователя можно определить типичную активность в системе. Любые отклонения от этой нормы могут указывать на аномальную активность.
  • Анализ необычных событий: необычные события, являющиеся нехарактерными для СКУД могут указывать на попытки взлома.

Определение аномалий в логах СКУД может происходить на основе анализа отклонений от нормальных паттернов поведения пользователей и системы.

Пример лога СКУД:

2021-09-15 08:05:00, User: Alice, Access Granted, Door: Main Entrance, Access Point: Turnstile 1 CARD_ID: 123123, CARD_TYPE: RFID_Low_Frequency

Этот лог сообщает, что пользователь Alice получила доступ через главный вход, используя турникет 1. Такие логи могут быть записаны в системе СКУД при каждом событии доступа. Определение аномалий в таких логах может включать в себя анализ поведения пользователей, связанных с конкретными объектами доступа, времени доступа, частоты доступа и т.д.

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

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

Пример аномального лога СКУД:

2021-09-15 03:45:00, User: Bob, Access Denied, Door: Server Room, Access Point: Swipe Card 2
2021-09-15 03:45:23, User: Bob, Access Denied, Door: Server Room, Access Point: Swipe Card 2

Этот лог сообщает, что пользователь Bob пытался получить доступ к серверной комнате в необычное время (03:45). Если ограничения доступа настроены таким образом, что пользователю Bob не разрешено получить доступ в данное помещение в это время, то это может быть признаком аномалии.

Кроме того, если событие произошло несколько раз за короткий промежуток времени, это может указывать на потенциальную угрозу безопасности.

Практический пример

Рассмотрим практический пример анализа лога для выявления аномалий на основе метода анализа частоты входа/выхода. Предположим, что мы имеем лог-файл доступа к помещениям, который содержит следующие записи:

2021-04-02 10:33:43 | ACCESS | DOOR_001 | AUTH_SUCCESS | CARD_1234567890
2021-04-02 10:34:12 | ACCESS | DOOR_002 | AUTH_FAILED | CARD_0987654321
2021-04-02 10:34:53 | ACCESS | DOOR_001 | AUTH_SUCCESS | CARD_0987654321
2021-04-02 10:35:27 | ACCESS | DOOR_001 | DOOR_OPENED | CARD_1234567890
2021-04-02 10:35:37 | ACCESS | DOOR_001 | DOOR_CLOSED | CARD_1234567890
2021-04-02 10:36:12 | ACCESS | DOOR_003 | AUTH_SUCCESS | CARD_5555555555
2021-04-02 10:36:28 | ACCESS | DOOR_003 | DOOR_OPENED | CARD_5555555555
2021-04-02 10:37:07 | ACCESS | DOOR_002 | AUTH_SUCCESS | CARD_1234567890
2021-04-02 10:37:13 | ACCESS | DOOR_002 | DOOR_OPENED | CARD_1234567890
2021-04-02 10:37:22 | ACCESS | DOOR_002 | DOOR_CLOSED | CARD_1234567890

Этот лог содержит информацию об аутентификации (AUTH_SUCCESS/ AUTH_FAILED), доступе к дверям (DOOR_OPENED/DOOR_CLOSED) и использованных картах (CARD_XXXXXXXXXX).

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

with open('skud.log') as f:
    for line in f:
        fields = line.strip().split('|')
        if len(fields) == 5 and fields[2] == 'DOOR_001' and fields[3] == 'AUTH_SUCCESS':
            card_id = fields[4].strip()
            next_line = f.readline()
            next_fields = next_line.strip().split('|') if next_line else None
            if not next_fields or len(next_fields) != 5 or next_fields[2] != 'DOOR_001' or next_fields[3] != 'DOOR_CLOSED' or next_fields[4].strip() != card_id:
                print(line.strip())

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

Меры по безопасности СКУД

  1. Шифрование данных.

Необходимо защитить данные, передаваемые между компонентами системы СКУД, с помощью шифрования. Это позволяет предотвратить перехват данных и доступ к ним злоумышленниками. Примеры алгоритмов шифрования, которые могут использоваться:

  • AES-128/192/256
  • RSA
  • Blowfish
  • и другие.
  1. Установка брандмауэров.

Брандмауэры могут использоваться для ограничения доступа к системе СКУД. Они могут быть настроены таким образом, чтобы блокировать доступ к системе СКУД с IP-адресов, которые не являются доверенными. Примерами таких брандмауэров могут быть:

  • Cisco ASA: обеспечивает безопасный доступ к сети, используя фильтрацию трафика и анализ потоков данных. ASA также поддерживает VPN-подключения и многофакторную аутентификацию.
  • Fortinet FortiGate: обеспечивает защиту сети от вредоносного программного обеспечения и других угроз, используя межсетевые экраны, IPS, VPN и антивирусную защиту.
  • Juniper SRX: обеспечивает безопасность сети, используя многослойные методы защиты, такие как межсетевые экраны, IDS/IPS, VPN, антивирусную защиту и управление доступом.
  • Check Point Firewall: обеспечивает безопасность сети, используя межсетевые экраны, антивирусную защиту, IPS и другие методы защиты. Также поддерживает многофакторную аутентификацию и VPN.
  • Palo Alto Networks: обеспечивает безопасность сети, используя межсетевые экраны, IPS, антивирусную защиту и другие методы защиты. Поддерживает многофакторную аутентификацию, VPN и системы мониторинга.
  1. Обеспечение безопасности сети.

Необходимо обеспечить безопасность сети, в которой работает система СКУД. Это может включать в себя установку механизмов детектирования вторжений (IDS) и систем защиты от DDoS-атак. В таким могут относится:

  • Snort: использует базу правил для обнаружения атак на сеть. Поддерживает множество протоколов и имеет мощные функции для обработки и анализа событий.
  • Suricata: предлагает многофункциональные возможности обнаружения и анализа трафика сети. Suricata поддерживает множество протоколов, включая HTTP, SMTP, FTP и DNS, и может использоваться для обнаружения угроз на всех уровнях сети.
  • OSSEC: поддерживает множество операционных систем и имеет гибкие настройки правил для обнаружения угроз на основе логов и событий.
  • Bro: поддерживает множество протоколов и может быть настроена для обнаружения различных типов атак на сеть.
  • Snorby: графический интерфейс для системы IDS Snort, который облегчает анализ событий и обнаружение угроз. Snorby предоставляет пользователю информацию о возможных угрозах и помогает в принятии решений по безопасности.


Кроме того, по возможности, необходимо ограничить доступ к сети, на которой работает СКУД, сделав физически изолированный сегмент ЛВС.

  1. Проверка источников аутентификации.

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

  1. Установка ограничений на частоту запросов.

Необходимо ограничить количество запросов, поступающих от одного IP-адреса, чтобы предотвратить попытки атаки на систему СКУД методом перебора паролей.

  1. Использование специализированных средств аудита безопасности.

Необходимо использовать специализированные средства аудита безопасности, чтобы выявлять уязвимости и проблемы в системе СКУД. К таким средствам могут относится:

  • Nessus: это один из самых популярных инструментов аудита безопасности, который может использоваться для сканирования уязвимостей и обнаружения рисков безопасности в системах СКУД.
  • OpenVAS: может использоваться для проверки наличия уязвимостей и рисков безопасности в сетях СКУД.
  • Retina Network Security Scanner: может использоваться для проверки наличия уязвимостей и рисков безопасности в системах СКУД, используя множество методов сканирования.
  • QualysGuard: это облачный сервис аудита безопасности, который может использоваться для проверки наличия уязвимостей и рисков безопасности в сетях и системах СКУД.
  • Rapid7: может использоваться для проверки наличия уязвимостей и рисков безопасности в системах СКУД, используя автоматические методы сканирования и анализа данных.
  1. Использование многофакторной аутентификации.

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

  • Биометрических данных,
  • Одноразовых кодов TOTP/OTP,
  • USB-ключей.
  1. Обновления.

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

  1. Основы ИБ.

Нужно обеспечить защиту паролей и логинов, используемых для доступа к компонентам СКУД. Ни в коем случае не использовать стандартные пароли, регулярно обновлять их, использовать сложные пароли. Хранить пароли, используя современные стандарты хэширования.

  1. Усиление физической безопасности.

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

  • установку датчиков движения,
  • видеокамер,
  • датчиков звука,
  • усиление дверей и окон в помещении.

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