Сегодня дико "плясал с бубном".
Была задача на один компьютер установить поддержку нескольких так называемых "торговых площадок" - так в нашей стране называют сайты для гос- и других аукционных закупок.
По опыту я знал, что это муторная задача, потому что программы, предлагаемые такими сайтами, написаны как будто студентами-аутсорсерами между парами на коленке.
Тут ещё есть нюанс: сеть с доменом Active Directory, пользователи не имеют прав администратора компьютера, запуск программ и скриптов запрещён из временных каталогов (это предотвращает запуск шифровальщиков из фишинговых писем и вского шлака с сайтов). Для установки программ с кривыми инсталляторами создан скрипт, устанавливающий переменые окружения TEMP и TMP.
Поручил это дело сотруднику.
Сотрудник успешно установил и протестировал ПО для
http://sberbank-ast.ru,
https://www.roseltorg.ru/,
http://etp.zakazrf.ru/,
http://www.etp-micex.ru/, но не смог установить компоненты для сайта
https://www.rts-tender.ru/.
Пришлось разбираться самому.
Оказалось, что:
- Программа установки rts-tender.ru.exe (это инсталлятор installshield) распаковывает в %TEMP% файл "rts-tender.ru.tmp", который на самом деле .exe
- Запускает "rts-tender.ru.tmp" в отдельном сеансе (!!! Зачем???), переменные окружения в этом новом сеансе берутся из реестра и запуск обрубается групповой политикой.
- "rts-tender.ru.tmp" являет собой ещё один инсталлятор installshield, он распаковывает в профиль пользователя, в %appdata%\local\rts-tender, три программы и запускает их: "cadescom.exe", "RTSCA.exe", "RTScryptoutils.exe".
- cadescom.exe - инсталлятор старой версии браузерного плагина Крипто Про, требует административных привилегий, но там он был не нужен, поскольку уже установлен плагин последней версии
- Программа RTSCA.exe устанавливает корневые сертификаты сайта rts-tender.ru в профиль пользователя. Сами сертификаты не опубликованы, вытаскивать их из этой программы проблематично.
- Программа RTScryptoutils.exe устанавливает некие программы, в Windows 7 x64 они не устанавливаются и не работают, на самом деле не нужны.
Получается, что, запустив программу "от имени администратора", получаем неработоспособный результат: сертификаты установлены у администратора компьютера, но не у пользователя. Запускаем с правами пользователя - получаем отказ в программе установки cadescom. Вариант выдать пользователю права администратора не рассматриваю как грубое нарушение политики безопасности.
Вот ЭТО явно сделано просто "на отъебись". У меня большое подозрение, что ПО самого сайта сделано не лучше и его использование настолько же небезопасно.
Я вижу только одно логичное объяснение многослойности инсталлятора: в РТС-тендер наняли исполнителя-кодера без какого либо контроля результата его работы, дали ему некие программы и сказали сделать автоматический инсталлятор, исполнитель ничтоже сумняшеся завернул их в installshield, получил расчёт и отправился восвояси. Следующий этап - по итогам попыток внедрения был нанят другой исполнитель на тех же условиях и завернул пакет ещё в один installshild, задав признак повышения привилегий.
После этого уже не вызывает удивления отсутствие возможности обратиться в техническую поддержку rts-tender.ru с самого сайта и неполнота статей в разделе "вопрос-ответ".