2017-02-14 13 views
1

Я недавно пытался использовать идентификатор IIS AppPool вместо сетевой службы или локальной системы.Разрешает локальное разрешение активации AppPool System Wide в dcomcnfg большой риск для безопасности?

Как таковой я наткнулся уродливой ошибки

Параметры разрешений машины по умолчанию не предоставляют локальную активацию разрешения для приложения COM-сервера с CLSID { 6E46607A-7347-471B-A98C-BC9E49B07248} и APPID будет доступна для пользователя IIS AppPool \ MyAppPool SID (S-1-5-82-476059244-1685105758-59475158-1390954050-72429515) с адреса LocalHost (Использование LRPC) работает в контейнере приложения Unavailable SID (Недоступно). Это разрешение безопасности может быть , измененное с помощью инструмента администрирования служб компонентов.

Как вы можете заметить, мой APPID отсутствовал в этой ошибке, я искал реестр и выяснил, какой компонент он был (также отлаживается).

Это автономный сервер OLE/COM VC++, который обрабатывает запросы с нашего веб-сервера. (Yay, 1990-е годы назывались). Я не совсем уверен, почему это связано с DCOM, нет ничего «распределенного» по этому поводу по дизайну, может быть, более случайно или артефакта шаблонов серверов MFC/OLE по умолчанию для VS2008?

Пользуясь полномочиями Google, я выполнил типичный маршрут изменения параметра dcomcnfg для этого компонента, чтобы разрешить моему IIS AppPool \ MyAppPool пользователю разрешение на локальную активацию (я все их пробовал на самом деле!) И подтвердил, что w3wp. exe работает как одна и та же идентичность.

Я также убедился, что этот exe был удобочитаемым/исполняемым этим пользователем.

Однако ошибка по-прежнему сохраняется.

Только установив одинаковые разрешения общесистемный (через узел «Мой компьютер», а не отдельный узел компонента) правильно загрузила компонент. Это похоже на большой риск для безопасности. Это?

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

Учитывая, что настройка системы разрешений DCOM устраняет проблему - мне кажется, что есть еще один компонент или служба DCOM, для которой установлены разрешения, но я не могу узнать, какой.

So a) Есть ли способ дальнейшей диагностики этой проблемы? Вынюхивают решения, принимаемые DCOM? Есть ли центральный калькулятор DCOM, который также нуждался в разрешениях? Отладка/Монитор процессов, похоже, не помогают. б) Можно ли настроить локальную политику активации AppPool на всю ширину?

Огромное спасибо всем, кто помогает мне принять правильное решение.

+0

Я только что нашел это, но, к сожалению, файлы журналы требуют внутренних инструментов Microsoft для диагностики! https://blogs.msdn.microsoft.com/distributedservices/2009/06/19/tracing-in-com-and-complus/ – GilesDMiddleton

ответ

1

Q1. Неправильно ли вам предоставлять учетные записи активации DCOM для вашего аккаунта App Pool на компьютере?

A1: Да, это плохо. Согласно книге Secure DCOM Best Practices

Это не очень хорошая идея, чтобы ослабить эти разрешения от значения по умолчанию значения

Q2: Почему компонент еще не удается?

A2: Это было сочетание задач:

  1. Процесс мониторинга DID подхватить вопрос, что моя личность AppPool была не в состоянии прочитать ключ реестра HKEY_CLASSES_ROOT\WOW6432Node\AppID\{C33D7656-D310-4684-9482-A486787E4E3B}. Включение разрешения на чтение для моего идентификатора AppPool позволило мне сделать еще один шаг.

  2. Сообщение журнала событий о недоступном AppID было ключом. Для запрашиваемого класса не было записи REG_SZ AppID. Поэтому настройки безопасности не собирались. Мне нужно было обеспечить следующий ключ существует: HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{6E46607A-7347-471B-A98C-BC9E49B07248} with String Value AppID={C33D7656-D310-4684-9482-A486787E4E3B}

Согласно документации MSDN AppID и What is AppID

+1

Хорошая находка, она борется с этим. – koreus737

Смежные вопросы