Отсутствуют конфигурационные файлы логического диска macroscop
Я давно увлекаюсь информационной безопасностью, но одно дело – понимание поверхностной логики работы программного обеспечения, и совершенно другое – понимание логики его внутренней реализации. Внешне любая программа может выглядеть замечательно и гармонично, создавая иллюзию полной безопасности и защищённости, но стоит углубиться, копнуть глубже, и на поверхности окажутся нелицеприятные факты, которые могут привести к взлому системы и, в конечном счёте, к утечке или потере данных, а также временным и финансовым потерям. Причиной наличия уязвимости в приложении может быть как банальная невнимательность, катастрофическая нехватка времени, алгоритмическая или архитектурная сложность, незнание особенностей работы или реализации стороннего API, так и корыстный умысел. Зачастую сложно судить о том, что конкретно могло послужить причиной возникновения той либо иной уязвимости, но более важным моментом является скорость реакции разработчиков по её устранению.
Сегодня же пойдёт речь об уязвимости, обнаруженной мной в процессе знакомства с программным комплексом для IP-камер MACROSCOP от резидента технопарка «Сколково» компании ООО «Сателлит» (г. Пермь). MACROSCOP является именно программным комплексом, так как в состав решения входит целый ряд приложений: серверная и «всё в одном» часть для операционных систем семейства Microsoft Windows (от развития Linux решения разработчики недавно отказались), клиентская часть для Windows, Android, iOS и Windows Phone, конфигуратор, программа подключения Web-камер, проигрыватель файлов собственного формата, программа локального просмотра и резервного копирования архива, программа мониторинга состояния системы, различные интеллектуальные модули, а также приложения для интеграции с некоторыми сторонними системами и широкие возможности по интеграции с любым программным обеспечением посредством SDK. В MACROSCOP много плюсов и, тем не менее, он не лишён недостатков, чему можно посвятить отдельную статью: ведь не всегда разработчики афишируют отрицательные стороны своего продукта.
Проверка данного запроса оправдала мои ожидания: браузер предложил сохранить данные по указанной ссылке, а это ни что иное как видеопоток в режиме реального времени с канала под именем «Улица». Следующим по порядку у меня возник вопрос о том, как заполучить названия всех каналов видеосистемы. На этот вопрос дают ответ сами разработчики в своём SDK, где для получения названий каналов, их идентификаторов и настроек в MACROSCOP необходимо выполнить следующий запрос:
Ответ на запрос приходит в xml-формате. На основании этого ответа можно сформировать запрос на получение видео в режиме реального времени с любого канала. На первый взгляд мне показалось, что нет ничего особенного в том, что разработчики используют недокументированную учётную запись для внутренних целей программы, но меня терзали смутные сомнения, и я решился не останавливаться на достигнутом.
В MACROSCOP этот код используется при применении первой конфигурации, тогда создаётся учётная запись superuser, которая недоступна из настроек программы, обладает определёнными привилегиями и всегда остаётся неизменной. Из кода видно, что происходит инициализация экземпляра класса Random, затем получение двух массивов произвольных данных определённой длины, далее получение из них строк и в конечном счёте md5 хэша. Вроде бы никакого подвоха: использование произвольной последовательности данных и необратимые преобразования, но не было бы тогда уязвимости и этой статьи, если бы не использование класса Random, в сути которого и кроется вся проблема.
Подобранная учётная запись может быть использована в дальнейшем для определённых целей. Из мною обнаруженных – это, как ранее было отмечено, возможность просмотра видео по всем каналам в режиме реального времени, а также возможность применения любой конфигурации для сервера. Последняя возможность представляет собой наибольшую угрозу, т.к. может быть получен полный контроль над сервером. В простом представлении атака на изменение конфигурации реализуется следующим образом: злоумышленник может подготовить запрос на изменение конфигурации, в которой, например, в качестве задачи для одной из камер будет выполняться сценарий по предоставлению удалённого доступа к серверу. В этом запросе будет использоваться ранее полученная учётная запись, а также учтены такие моменты как номер ревизии, идентификатор и дата изменения конфигурации. После проникновения на сервер злоумышленником может быть установлен бэкдор, изменены лог-файлы, а старая конфигурация восстановлена из резервной копии.
По предварительной проверке учётная запись superuser не может быть использована, например, для получения доступа к архиву записей каналов и текущей конфигурации (хотя я могу и ошибаться), но с высокой долей вероятности она может быть использована и для других целей, о которых разработчикам должно быть известно лучше.
Разработчики были уведомлены об уязвимости в MACROSCOP, а через 2 недели (12 марта 2014 г.) они её закрыли выпуском версии программы 1.9.72. Теперь код генерации встроенной учётной записи выглядит следующим образом:
В новой редакции кода используется криптостойкий класс генерации случайных данных вперемешку с Guid, что гарантирует практическую невозможность подбора учётной записи, к тому же разработчиками была закрыта возможность использования данной учётной записи в двух ранее указанных запросах к серверу. Тем не менее по-прежнему эта учётная запись используется при применении конфигурации, но скорость перебора в данном случае гораздо меньше: минимальный запрос к серверу составляет порядка 10 Кб, что в 10 раз больше по трафику ранее возможного способа, а подверженными риску с обновлением остаются только старые пользователи. Дело в том, что для существующей конфигурации пара хэшей не модифицируется при установке новой версии программы, так что эту процедуру остаётся проделать только самостоятельно. Самое главное, если используется многосерверная конфигурация, то пара хэшей и соответственно сама конфигурация должны совпадать на всех серверах. Иначе возникнет конфликт при применении новой конфигурации. Таким образом, для новоиспечённых пользователей MACROSCOP, кто только начинает пользоваться программой, с версии 1.9.72 уязвимость нестрашна, а вот для старых пользователей существует небольшой риск, который может быть устранён следующим образом:
– останавливаем службу MacroscopServer или завершаем работу standalone версии на компьютере;
– открываем в 16-ричном редакторе файл конфигурации «Current.CmnConf», расположенный в папке программы (предварительно лучше сделать резервную копию файла);
– находим в файле строку «Alarus.Config.SystemEditions», а именно второй результат вхождения;
– сразу чуть ниже результата поиска будут находиться две строки длиной в 32 символа – это и есть данные встроенной учётной записи;
– меняем на произвольные значения содержимое строк с учётом допустимых символов из набора «0123456789ABCDEF», не изменяя при этом длину строк;
– сохраняем конфигурацию;
– запускаем службу или standalone версию программы;
– в случае использования многосерверной конфигурации выполняем те же действия, только в качестве строк используем ранее отредактированные значения или просто заменяем конфигурацию на исправленную.
Подводя итоги, не могу не пожелать всем разработчикам не повторять ошибок с использованием стандартного класса Random, а использовать криптостойкие реализации алгоритма генерации случайных данных, и также оперативно реагировать на потенциальные угрозы в приложениях.
В данной базе знаний размещены ответы на часто задаваемые технические вопросы, а также описаны методы диагностики и способы устранения часто встречающихся технических проблем.
Если ответ на интересующий вопрос не удалось найти в базе знаний, можно попробовать найти его в техническом описании продукта.
Восстановление настроек из архива
Как вернуть настройки (конфигурацию) Macroscop?
В Macroscop можно вернуть одну из использовавшихся ранее настроек (конфигураций) системы. Ниже приведено описание, каким образом это сделать.
Восстановление настроек из архива не во всех случаях можно осуществить успешно.
Восстановление настроек из архива для Macroscop версий 2.2 и выше.
- Остановить серверное приложение Macroscop.
- Перейти в папку настроек сервера Macroscop (по умолчанию C:\ProgramData\MacroscopServerConfigs) и удалить всё содержимое папки (в том числе все подпапки), за исключением файла license.lic. (Поскольку папка настроек сервера является скрытой папкой, в параметрах просмотра Проводника Windows нужно включить отображение скрытых элементов, либо явно задать путь в адресной строке Проводника.)
- Зайти на любой диск с видеоархивом, зайти в папку архива настроек (например, для диска D: это папка D:\MacroscopArchive\ConfigsBackups), перейти в подпапку с датой нужной конфигурации и открыть папку с длинным названием. Там окажутся либо две папки: LogicDrives и ServerConfigs, тогда файлы настроек размещены в папке ServerConfigs; либо только папка LogicDrives, тогда файлы настроек размещены непосредственно в папке с длинным названием.
- Скопировать архивные файлы настроек (за исключением файла license.lic) в папку C:\ProgramData\MacroscopServerConfigs.
- Запустить серверное приложение Macroscop.
Восстановление настроек из архива для Macroscop версий ниже 2.2.
Файлы настроек серверных приложений Macroscop версий ниже 2.2 размещаются в той же папке, из которой запускается само серверное приложение. Ниже приведена инструкция для примера, в котором приложение Macroscop Сервер установлено по умолчанию (в папку C:\Program Files\MacroscopServer).
USB-ключ защиты Macroscop ни к чему не привязан. Таким образом, можно установить Macroscop Сервер на другом компьютере, переставить ключ на этот компьютер и активировать лицензию через интернет (либо перенести файл licence.lic из папки C:\ProgramData\MacroscopServerConfigs «старого» сервера на новый). При этом просмотр архива на «старом» сервере без USB-ключа будет возможен только с помощью утилиты Локальный просмотр и резервное копирование архива. При возврате ключа штатный доступ к архиву из клиентских приложений восстановится.
В многосерверной системе следует добавить в конфигураторе «новый» сервер, открепить каналы от «старого» сервера и привязать их к «новому».
Подробно процессы настройки серверов и камер, сохранения и загрузки конфигурации каналов, а также использования утилиты локального просмотра и копирования архива, описаны в Руководстве администратора Macroscop.
Нужно скачать дистрибутив с актуальной версией с сайта, со страницы Поддержка / Дистрибутивы, вставить ключ в USB-порт сервера и установить ПО Macroscop. По окончании установки будет предложено запустить Macroscop Конфигуратор и установить лицензию; нужно согласиться и следовать шагам мастера установки лицензии; мастер установки автоматически активирует USB-ключ на сервере.
Подробно процессы установки ПО Macroscop и активации ключей описаны в Руководстве администратора Macroscop.
Для клиентских компьютеров лицензии не нужны. Лицензия (ключ защиты и файл лицензии) устанавливается на сервере, на котором будет обрабатываться видеопоток от камер и храниться архив. В файле лицензии указаны: тип лицензии, количество каналов, количество модулей. Максимальное количество одновременно подключаемых к системе клиентских рабочих мест зависит от выбранного при покупке типа лицензии (ML, LS, ST). Для Macroscop NVR количество одновременно подключаемых к системе клиентских рабочих мест не ограничено.
Настройка и работа
Для обновления версии ПО Macroscop нужно скачать дистрибутив с актуальной версией с сайта, со страницы Поддержка / Дистрибутивы и установить ПО Macroscop «поверх» существующей версии.
Для установки следует запустить скачанный исполняемый файл и следовать шагам мастера установки.
Достаточно обновить только серверное ПО, поскольку обновление клиентского ПО осуществляется автоматически, при подключении клиента к обновлённому серверу Macroscop.
Подробно процессы установки и обновления ПО Macroscop описаны в Руководстве администратора Macroscop.
Единственным легитимным способом доступа к настройкам системы является вход под правами пользователя с правами конфигурирования. В системе может быть несколько таких пользователей, но не менее одного (система не позволяет удалять единственного пользователя с правами на конфигурирование). Если известны имя и пароль такого пользователя, для настройки следует заходить под его аккаунтом.
Если неизвестен пароль ни одного пользователя с правами на конфигурирование, то единственным решением является сброс конфигурации. При этом все настройки системы (настройки серверов, камер и прав пользователей, планы объектов, профили экрана) будут утеряны; то есть придётся настраивать систему заново. Также не удастся получить доступ к видеоархиву из клиентских приложений.
В то же время, можно читать и экспортировать архив с помощью утилиты Локальный просмотр и резервное копирование архива. Таким образом, можно скопировать текущий архив (каталоги MacroscopArchive в корне архивных дисков) на отдельные носители для получения к нему в дальнейшем автономного доступа.
Для сброса конфигурации сервера следует выполнить следующие действия:
1. Остановить средствами Windows службу MacroscopServer (либо закрыть приложение Macroscop Standalone).
В многосерверной системе, перед тем, как выполнять следующие действия, необходимо остановить все серверы Macroscop.
2. Перейти в каталог ProgramData на системном диске (по умолчанию, C:\ProgramData).
3. Удалить подкаталог ConfigsBackups (C:\ProgramData\ConfigsBackups).
4. Перейти в подкаталог MacroscopServerConfigs (C:\ProgramData\MacroscopServerConfigs) и удалить все файлы и подкаталоги, кроме файла licence.lic.
В многосерверной системе выполнить шаги 2–4 для всех серверов Macroscop. Затем шаги 5–7 для одного из серверов, который будет назначен главным.
5. Запустить средствами Windows службу MacroscopServer (либо приложение Macroscop Standalone).
6. Запустить приложение Macroscop Конфигуратор и подключиться к серверу Macroscop, используя следующие данные для авторизации: пользователь rootбез пароля.
7. Настройте сервер, включая параметры архива, после чего примените серверные настройки.
В многосерверной системе выполните для каждого из последующих серверов шаги 5–7, после чего подключитесь конфигуратором к главному серверу и подключите к нему подчинённые серверы.
Для снижения рисков от подобных ситуаций, помимо хранения логина/пароля администратора, рекомендуется сохранять конфигурацию каналов.
Подробно процессы настройки серверов и камер, сохранения и загрузки конфигурации каналов, а также использования утилиты локального просмотра и копирования архива, описаны в Руководстве администратора Macroscop.
Ниже приведены примеры настройки автоматического запуска Macroscop Клиент или автоматического открытия окна просмотра Macroscop Standalone (без ввода имени пользователя и пароля) при старте компьютера или запуске приложения из ярлыка.
Для примеров использованы следующие параметры:
Папка установки приложения Macroscop Клиент: C:\Users\UserName\AppData\Local\Programs\Macroscop Client\
Папка установки приложения Macroscop Standalone: C:\Program Files\Macroscop Standalone\
Адрес сервера: 192.168.0.100
Порт сервера: 8081
Имя пользователя Macroscop: operator
Пароль пользователя Macroscop: qwerty77
Имя пользователя Windows: UserName
! Кавычки в строках примеров, при указании полного пути к файлу, обязательны !
Чтобы настроить автозапуск Macroscop Клиент при старте компьютера, в системном реестре Windows, в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run необходимо создать строковый параметр с именем MacroscopClient и значением "C:\Users\UserName\AppData\Local\Programs\MacroscopClient\MacroscopClient.exe" -server 192.168.0.100 –port 8081 -user operator-password qwerty77
Чтобы настроить автозапуск окна просмотра приложенияMacroscopStandaloneпри старте компьютера, в системном реестре Windows, в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run необходимо создать строковый параметр с именем MacroscopClient и значением "C:\ProgramFiles\MacroscopStandalone\Macroscop.exe" -server 192.168.0.100 -port 8081 -user operator -password qwerty77
Чтобы настроить автозапуск Macroscop Клиент из ярлыка на рабочем столе, нужно вызвать на ярлыке правой кнопкой мыши всплывающее меню, выбрать пункт Свойства, в открывшемся окне свойств, во вкладке Ярлык, ввести в поле Объект строку "C:\Users\UserName\AppData\Local\Programs\MacroscopClient\MacroscopClient.exe" -server 192.168.0.100 -port 8081 -user operator -password qwerty77
Чтобы настроить автозапуск окна просмотра приложенияMacroscop Standalone из ярлыка на рабочем столе, нужно вызвать на ярлыке правой кнопкой мыши всплывающее меню, выбрать пункт Свойства, в открывшемся окне свойств, во вкладке Ярлык, ввести в поле Объект строку "C:\Program Files\Macroscop Standalone\Macroscop.exe" -server 192.168.0.100 -port 8081 -user operator -password qwerty77
1. "Проблемы с расширением лицензии": если речь идёт об ошибке ввода,- её нет, т.к. вручную ничего не вводится, а выбирается с помощью file explorer; если речь идёт о дополнении ранее установленной лицензии,- мимо,- это новая установка и первая лицензия; тут как раз случай " вообще не применяется лицензия и выдаётся ошибка". Вообще-то я просил Вас попытаться воспроизвести проблему на Вашем ПК и подтвердить, или опровергнуть мой опыт попыток на 2-х ПК разной конфигурации и разніх ОС (XP и 7).
2. Поскольку Вы делаете продукт "для людей",- функция "удалить лицензию" нужна. Даже странно, что это требует отдельного пояснения.
При помощи тех, у кого имеется лицензия, стало известно, что при добавлении нового диска под запись в полностью заполненный массив, на него, как ни странно, она не начинается вестись. Не помогает перезапуск службы, даже когда заканчивается запись на текущий диск, запись продолжается на другие, ранее заполненные, диски, но не на новый пустой. На него запись начинается только после того, как будут в очередной раз перезаписаны некоторые подряд идущие диски. Логика далеко не ясна, но она явно неправильная.
Добрый день! Подскажите, кто сталкивался с проблемой: при просмотре архива, сервер перезапускается. Мощности компьютера хватает с запасом. Версия ПО Macroscop 1.8.63. Заранее спасибо за помощь.
kent
Гость
Очень бы не помешала, в настройках подключения канала, отдельная строка (URL) для второго потока. Приведу пример - есть трех потоковая ( H264, MPEG-4, MJPEG) камера Edimax IC-3030Wn, явным образом Макроскопом она не поддерживается, но как Universal RTP camera она видна.
запрос на H264 RTSP поток /192.168.1.34/ipcam_h264.sdp
запрос на MPEG-4 RTSP поток /192.168.1.34/ipcam.sdp
В текущих настройках конфигуратора можно выбрать или один или второй вариант оба сразу никак. А хотелось бы писать в архив H264 поток, в максимально доступном разрешении 1280х1024, а на второй MPEG-4 в разрешении 640х480 натравить детектор движения Макроскопа.
Интегрируем наше ПО с Macroscop, есть вопросы:
kent, благодарим за ценные советы!
Сергей, добрый день!
1. Такое возможно реализовать, используя SDK Macroscop для разработки внешний модулей.
Выдержка из SDK:
5.1.3 Экспорт распознанных автомобильных номеров
Параметр channelid отвечает за идентификатор экспортируемого канала.
Параметр starttime является временем начала экспорта, finishtime – временем окончания экспорта. Значение параметров starttime и finishtime необходимо указывать в локальном времени.
Настраивать сервер MACROSCOP необходимо конфигуратором той же версии, что и сам сервер.
После запуска MACROSCOP Demo Windows вам будет предложено выбрать что установить:
Автоматически будет установлен MACROSCOP проигрыватель в папку:
C:\Program Files (x86)\MacroscopPlayer\
После этого откроется окно установщика, который установит ПО MACROSCOP Demo на ваш компьютер.
Мастер установки MACROSCOP Demo Windows попросит вас настроить антивирус и файрвол на вашем компьютере. Рекомендуем переключить антивирус и файрвол в режим обучения и следовать их предложениям.
Сетевой трафик MACROSCOP желательно исключить из антивирусного сканирования, иначе может быть значительно повышена нагрузка на сервер.
Установка MACROSCOP Demo Windows будет произведена в каталог:
C:\Program Files\Macroscop Demo\
Данный путь изменить невозможно.
После запуска MACROSCOP Windows вам будет предложено выбрать что установить:
- Установить MACROSCOP Сервер (32 бита)
- Установить MACROSCOP Клиент (32 бита)
- Установить MACROSCOP Standalone (32 бита) Клиент+Сервер
- Установить MACROSCOP Мониторинг (32 бита)
- Установить MACROSCOP Сервер (64 бита)
- Установить MACROSCOP Клиент (64 бита)
- Установить MACROSCOP Standalone (64 бита) Клиент+Сервер
- Установить MACROSCOP Мониторинг (64 бита)
- Открыть инструкцию
Мастер установки MACROSCOP Windows сообщит об удачном завершении работы программы.
Для завершения установки:
- Вставьте лицензионный USB ключ, который поставляется в комплекте с программным обеспечением MACROSCOP.
- Выйдите из программы установки, для этого нажмите "Завершить".
Запускаем программу MACROSCOP Конфигуратор для настройки системы. В ходе настройки будет предложено установить файл лицензии, который поставляется на диске с программным обеспечением MACROSCOP или высылается по электронной почте.
MACROSCOP Конфигуратор позволяет: редактировать настройки сервера, устанавливать лицензию на сервер (файл .lic), создавать пустую конфигурацию, загружать конфигурацию на сервер из файла.
По умолчанию создается пользователь root с пустым паролем.
Для установки MACROSCOP Linux Server потребуется интернет. Скрипт установки install.sh производит скачивание и установку дополнительных пакетов: mono-runtime, mono-complete, ffmpeg, firebird2.5-superclassic, smartmontools.
Данный скрипт предназначен для установки на Ubuntu 11.10 x64 (Server или Desktop Edition) и выше.
Переходим в /home/macroscop, даем права на исполнение скрипту установки install.sh, запускаем скрипт.
cd /home/macroscop/
chown -hR root:root /home/macroscop
chmod -f -R 777 /home/macroscop
sudo ./install.sh
Подбор параметров сервера
Для подбора аппаратной платформы, предназначенной для установки сервера или удаленного рабочего места Macroscop, следует пользоваться калькулятором на странице «Поддержка / Калькулятор»
Читайте также: