Мобильное приложение GV-Eye для Android хранит ключ API внутри установочного пакета и отправляет его по незашифрованному HTTP. Три уязвимости, о которых GeoVision сообщила 30 сентября 2026 года, затрагивают сборки до версии 3.6.0 включительно. Тот, кто добудет ключ, сможет обращаться к сервисам GeoVision от имени приложения. Исправление вышло в версии 3.7.2.
Детали уязвимостей
Две уязвимости связаны с тем, как программа обходится с ключом API, то есть с учётными данными для доступа к программному интерфейсу сервиса. Разработчики прописали ключ прямо в коде клиента, а не на сервере. Установочный пакет Android распаковывается без серьёзных усилий, поскольку инструменты обратной разработки доступны всем. Шифрование пакета не спасает: ключ нужен самому приложению в момент запуска. Спрятанный внутри клиента секрет рано или поздно извлекают. Обратная разработка не требует доступа к серверам вендора и не оставляет там следов. Достаточно скачать приложение из магазина и разобрать его на части. Проверки, которые программа проходит перед публикацией в Google Play, разбор пакета не исключают.
Третья уязвимость касается передачи ключа. В одном из запросов приложение помещало ключ в строку адреса URL. Соединение шло по HTTP, а не по HTTPS, и данные не шифровались. Ключ уходил по сети в открытом виде. Наблюдатель на том же участке сети перехватывает запрос и забирает ключ. Для этого подойдёт публичная точка доступа, гостевой сегмент беспроводной сети или чужой маршрутизатор. Строка адреса вдобавок оседает в журналах прокси-серверов и промежуточных узлов, а оттуда ключ попадает к тем, кто журналы читает.
GV-Eye - клиент для удалённого просмотра видео с камер и регистраторов GeoVision. Приложение ставят на смартфоны сотрудники охраны, администраторы объектов, владельцы магазинов и офисов. Ключ API в таких схемах обычно открывает доступ к серверной части: списку устройств, видеопотокам, части настроек. С его помощью посторонний может следить за тем, что попадает в объектив, менять расписания записи, отключать уведомления. Какие именно операции разрешает утёкший ключ, в бюллетене не сказано. Масштаб ущерба зависит от того, как настроены права на стороне сервера и какие сервисы обслуживает ключ.
Видеонаблюдение редко бывает изолировано от остальной инфраструктуры. Камеры в офисах, на складах и в торговых залах фиксируют людей и рабочие процессы. Архив таких записей относится к персональным данным, поэтому его утечка грозит компаниям не только репутационными потерями. Если ключ открывает доступ к архиву или к прямым потокам, посторонний получает записи, не оставляя признаков взлома.
Об использовании этих уязвимостей в реальных атаках GeoVision не сообщает. Бюллетень вышел под номером GV-Eye-2026-09-01. Три идентификатора CVE распределены так: два относятся к встроенному ключу, один - к передаче по HTTP. Отдельного рейтинга опасности в бюллетене нет, поэтому сравнивать эти уязвимости с другими по шкале CVSS не получится. Формулировки про затронутые сборки немного расходятся: в одном месте названы версии 3.6.0 и более ранние, в другом - сборки до 3.6.0. Обновляться нужно всем, у кого установлена любая версия старее 3.7.2.
Обновление V3.7.2 доступно в Google Play. Те, кто ставил приложение из корпоративного каталога или вручную, могут запросить файл у поддержки GeoVision по адресу support@geovision.com.tw. Отдельная мера - отозвать старый ключ и выпустить новый, если сервис это позволяет. Замена ключа нужна и после установки патча. Обновление приложения не поможет, если ключ успел утечь: он останется рабочим до тех пор, пока его не отзовут на стороне сервера. Администраторам стоит просмотреть журналы обращений к ключу за последние месяцы и поискать запросы из незнакомых сетей.
Защита на уровне сети тоже пригодится. Серверы GeoVision с доступом из интернета ограничивают списком доверенных адресов. Для удалённого просмотра лучше использовать виртуальную частную сеть (VPN), а не открытые порты. Сеть видеонаблюдения разумно держать в отдельном сегменте, чтобы компрометация одного узла не открывала путь к остальным.
Хранить секреты в клиентских приложениях - распространённая ошибка. Мобильный клиент попадает к пользователю целиком, и любой секрет внутри него перестаёт быть секретом. Обмен по HTTP усугубляет положение. Ключи положено держать на сервере, а весь трафик переводить на HTTPS. Такой порядок не защищает от всех сценариев, но заметно сокращает число мест, откуда ключ может утечь. В GV-Eye нарушены оба правила сразу, причём в одном и том же продукте.
Для владельцев систем видеонаблюдения GeoVision эта история неприятна простотой возможной атаки. Никаких сложных цепочек, никакого долгого наблюдения за сетью. Для этого хватит сетевого анализатора и распакованного пакета приложения. Обновление до 3.7.2 закрывает обе бреши. Проверить журналы обращений к ключу всё равно не помешает, особенно если сотрудники открывали приложение через публичные сети.
Ссылки
- https://dlcdn.geovision.com.tw/TechNotice/CyberSecurity/2026/Security_Advisory_GV-Eye-2026-09-01.pdf