Алгоритм работы классической системы управления доступом выглядит так:
Если применить этот алгоритм, заменив номер карты на изображение лица, наступит локальный апокалипсис, потому что картинка намного объёмнее, чем номер карты. А это значит, что её передача на сервер займёт больше времени, а сопоставление образов в базе данных на сервере — намного больше, чем поиск номера ключа. Если в офисе много сотрудников, которые постоянно перемещаются, имеется ненулевая вероятность, что придётся улыбаться замку в ожидании открытия двери по нескольку минут.
Чтобы избежать этого, вместо простой IP-камеры используют интеллектуальное устройство, мощности которого достаточно для распознавания лица, а база лиц хранится на устройстве. Обычно в качестве такого устройства выступает мощный Android-гаджет или компактный ПК под управлением Windows или Linux.
Центральный сервер в этом случае используется для синхронизации баз посетителей, обновления ПО считывателей и администрирования всей системы.
Перемещение вычислительной нагрузки с сервера на внешнюю границу устраняет необходимость отправки на обработку конфиденциальных данных, например, изображений. Время отклика становится приемлемым, требования к полосе пропускания уменьшаются.
Однако вместе с вычислительной мощностью на граничные узлы перемещаются и другие задачи. Это изменение добавляет две примечательные проблемы:
Мы тоже хотим поскорее оказаться в будущем, где для покупки билета достаточно улыбнуться турникету, но считаем необходимым исключить ситуацию, когда улыбнулся кто-то другой, а деньги списались у вас.
Как показывает наше исследование Identified and Authorized: Sneaking Past Edge-Based Access Control Devices, системы управления доступом с идентификацией по лицу имеют множество неприятных уязвимостей: их можно взломать, обмануть, предъявить вместо лица человека его фотографию на экране айфона и даже заделаться администратором и удалить всё начальство из списка допущенных в помещение.
Рассмотрим одно из самых уязвимых устройств нашего исследования — ZKTeco FaceDepot 7B
Система контроля доступа ZKTeco FaceDepot. Источник: Trend Micro
Устройство поставляется в прочном металлическом корпусе с экраном и фронтальной камерой, направленной на посетителя. Распознавание лиц происходит внутри устройства. Фото, сделанные при аутентификации, не отправляются на центральный сервер — процессорной мощности планшета вполне достаточно, чтобы проводить распознавание самостоятельно.
Типичное развёртывание СКД ZKTeco FaceDepot включает в себя несколько таких устройств и центральный сервер, через который синхронизируется между устройствами база пользователей.
Металлический корпус защищает СКД от физического вмешательства, но всё портит открытый USB-порт в нижней части устройства. Он предназначен для обслуживания устройства.
Уязвимость № 1 — открытый USB-порт. Источник: Trend Micro
Ещё одна глобальная уязвимость ZKTeco — прошивка устройства, которая базируется на версии Android Lollipop 5.1.1, выпущенной в апреле 2016 году. Сегодня актуальной версией Android является десятая. За прошедшие годы OS получила множество доработок, связанных с безопасностью. Очевидно, что в пятой версии ничего подобного не предусмотрено.
Экран с версией Android на СКД ZKTeco FaceDepot. Источник: Trend Micro
Поскольку это Android, пользователь может перейти на главный экран и запускать приложение. Например, он может запустить ApkInstaller и установить любой Android-пакет APK с подключённого к USB-порту носителя.
APK Installer, запущенный на СКД. Источник: Trend Micro
Производитель устройства ограничил возможность доступа к меню и приложениям только для пользователей с правами администратора, но как показало дальнейшее изучение устройства, это не является проблемой, потому что устройство всё-таки взаимодействует с сервером и делает это по HTTP.
Устройство взаимодействует с сервером по HTTP. Вся информация передаётся в открытом виде и может быть легко перехвачена. Хуже всего то, что в открытом виде передаются административные команды — регистрация пользователя, назначение пользователю роли администратора, удаление пользователя и синхронизация.
Злоумышленник, получивший доступ к сети, к которой подключён планшет, сможет прослушивать сетевой трафик между СКД и сервером и получить необходимую для проведения атак информацию.
Как ни печально, разработчикам устройства удалось дополнительно усилить уязвимость, связанную с отсутствием шифрования данных: они сделали совершенно дырявую процедуру аутентификации устройства.
Единственный признак легитимности устройства на сервере — это токен, который передаётся в cookie. Токен устанавливается при первой регистрации устройства на сервере и, по нашим данным, никогда не меняется.
Значение токена сохраняется как cookie. Источник: Trend Micro
Учитывая, что «секретный» токен передаётся открытым текстом, любой HTTP-клиент может выдать себя за легитимную СКД. Мы в наших экспериментах использовали curl — простую утилиту, работающую в командной строке.
Например, вот так мы зарегистрировали нового пользователя в системе и задали для него изображение:
Первая команда регистрирует на сервере пользователя с именем Bogus, вторая — устанавливает для него фотографию. Источник: Trend Micro
Файл userdata.post содержит данные, которые мы передали на сервер через POST. В нашем случае файл содержит следующие данные:
Содержимое файла с картинкой для передачи на сервер. Источник: Trend Micro
Существующий администратор может продвигать нового пользователя до администратора, используя консоль на устройстве. Текущий администратор должен сначала войти в систему устройства через распознавание лиц, а затем получить доступ к системной консоли для запуска процесса продвижения. Как только пользователь получает повышение до уровня администратора, устройство отправляет отчёт на сервер, уведомляя его об изменении статуса.
Но поскольку любой пользователь, владеющий токеном, может имитировать легитимный сетевой трафик между устройством и сервером, ничто не помешает ему выполнить следующую команду и сделать любого пользователя администратором:
Установка privilege=14 делает пользователя администратором. Источник: Trend Micro
После очередной синхронизации сервера и всех зарегистрированных на нём устройств СКД новый администратор будет признаваться во всей офисной сети.
URL сохранённых на сервере фотографий предсказуем, поэтому перечисление всех URL-адресов и загрузка фотографий — элементарная задача. Для получения доступа к этим URL не требуется никакой аутентификации.
Например, по следующему URL сервер отдаст фотографию пользователя с идентификатором «11111»:
Для сбора изображений можно сделать простой скрипт, который будет перебирать идентификаторы пользователей от «00000» до любого числа и скачать все имеющиеся в системе фото.
Поскольку вся связь между устройством и сервером происходит по HTTP, относительно легко перенаправить все устройства СКД на фальшивый сервер, используя отравление ARP (Address Resolution Protocol — протокол разрешения адресов).
После того, как мы заставили целевое устройство взаимодействовать с нашим поддельным сервером, мы смогли отправить устройству нужные нам обновления во время одного из его регулярных сеансов синхронизации. Эта техника может использоваться для различных атак. Например, можно подсунуть конечным устройствам фотографию пользователя, для которого требуется организовать незаконный доступ в помещение компании.
Учитывая количество возможных вариантов для атаки, проверка этого способа была уже в какой-то степени излишеством. Но учитывая простоту и доступность такой атаки даже для далёкого от техники человека, мы всё-таки проверили, получится ли обмануть СКД с помощью фотографии зарегистрированного в системе человека, имеющего доступ в офис. И были очень удивлены, когда после перебора нескольких вариантов атака сработала: камера ZKTeco FaceDepot оказалась благосклонна к фото, продемонстрированным на iPhone X и iPhone XS, но отказалась пропускать по этому же фото на экране смартфонов iPhone 6, Samsung A10, Samsung S8, Samsung S9, Samsung S10, Samsung S10+ и Samsung Note 10.
Устройство контроля доступа ZKTeco FaceDepot — не единственное протестированное в рамках нашего исследования. К сожалению, и другие устройства содержали серьёзные уязвимости, которые заставляют всерьёз усомниться в том, что с их помощью можно создать действительно защищённый периметр физического доступа в помещения компании.
Все обнаруженные в устройствах уязвимости присутствуют в перечне Top 10 Web Application Security Risks, составленного проектом OWASP:
Чтобы сделать устройства контроля доступа более безопасными, производителям следует руководствоваться следующими рекомендациями:
Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…
Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…
Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…
У частных продавцов на Авито появилась возможность составлять текст объявлений с помощью нейросети. Новый функционал доступен в категории «Обувь, одежда,…
24 апреля 2024 года в Москве состоялась церемония вручения наград международного конкурса Workspace Digital Awards. В этом году участниками стали…
27 июня Яндекс проведет гик-фестиваль Young Con для студентов и молодых специалистов, которые интересуются технологиями и хотят работать в IT.…