2017-02-14 27 views
1

저는 최근에 네트워크 서비스 또는 로컬 시스템 대신 IIS AppPool ID를 사용하려고했습니다.dcomcnfg의 AppPool 로컬 활성화 권한 시스템 전체에 큰 보안 위험이 있습니까?

는 이와 같이 나는 기계 - 기본 권한 설정이 COM 서버 응용 프로그램에 대한 로컬 활성화 권한을 부여하지 않는

추악한 오류를 건너 왔어요 CLSID {6E46607A-7347-471B-A98C-BC9E49B07248} 상기 사용자가 사용할 APPID는 어드레스 애플리케이션 컨테이너에서 실행 불가능 SID를 (LRPC 사용)에 LocalHost (불가에서 AppPool을 \ MyAppPool SID (S-1-5-82-476059244-1685105758-59475158-1390954050-72429515)를 IIS). 이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 으로 수정할 수 있습니다.

내 APPID가이 오류에서 누락 된 것을 발견했을 때 레지스트리를 검색하여 어떤 구성 요소인지 (디버깅 여부에 따라) 알아 냈습니다.

웹 서버의 요청을 처리하는 VC++ out-of-process OLE/COM 서버입니다. (Yay, 1990 's called). 왜 이것이 DCOM과 관련된 것인지 잘 모르겠다. 의도적으로 VS2008의 기본 MFC/OLE 서버 템플릿의 사고로 인한 것일까?

Google의 강력한 기능을 사용하는 경우이 구성 요소의 dcomcnfg 설정을 변경하여 일반적인 IIS AppPool \ MyAppPool 사용자에게 로컬 활성화 권한 (실제로 시도했습니다!)을 허용하고 w3wp를 확인하는 일반적인 경로를 따랐습니다. exe는 동일한 ID로 실행 중입니다.

또한이 exe는 해당 사용자가 읽고 실행할 수 있음을 확인했습니다.

그러나 오류는 계속 유지됩니다.

컴퓨터 전체에서 (개별 구성 요소 노드 대신 내 컴퓨터 노드를 통해) 동일한 사용 권한을 설정하면 구성 요소가 올바르게로드됩니다. 큰 보안 위험이있는 것 같습니다. 그렇지?

오류가 발생한 경우 프로세스 모니터를 사용하여 레지스트리 키 또는 파일 액세스 문제를 찾아 보거나 액세스가 필요한 다른 구성 요소를 식별하려고했습니다. 그러나 아무것도 그것의 머리를 키우지 않았다.

DCOM 권한 시스템 전체를 설정하면 문제가 해결된다는 것을 감안할 때 - 권한이 설정되어야하는 다른 DCOM 구성 요소 나 서비스가 있다는 것을 느낀다.

그래서 )이 문제를 진단하는 방법이 있습니까? DCOM이 내린 결정을 알아 차리시겠습니까? 사용 권한을 설정해야하는 중앙 DCOM 브로커가 있습니까? 디버깅/프로세스 모니터는 도움이되지 않습니다. b) AppPool 로컬 활성화 정책을 컴퓨터 전체에 설정해도 괜찮습니까?

올바른 결정을 내리는 데 도움을 주신 모든 분들께 감사드립니다.

+0

난 그냥 이걸 발견,하지만 불행히도 로그 파일을 진단하는 Microsoft 내부 도구가 필요합니다! https://blogs.msdn.microsoft.com/distributedservices/2009/06/19/tracing-in-com-and-complus/ – GilesDMiddleton

답변

1

Q1. App Pool 계정에 컴퓨터 전체의 로컬 DCOM 활성화 권한을 부여하는 것은 나쁜 습관입니까?

대답 : 예, 좋지 않습니다.Secure DCOM Best Practices

기본에서 값

Q2

이러한 권한을 느슨하게하는 것은 좋지 않습니다에 따르면 : 왜 구성 요소가 여전히 실패를?

A2

:이 문제의 조합이었다

  1. 프로세스 모니터는 내 AppPool을 ID가 HKEY_CLASSES_ROOT\WOW6432Node\AppID\{C33D7656-D310-4684-9482-A486787E4E3B} 키 레지스트리를 읽을 수 없습니다 문제를 선택했다. AppPool ID에 대한 읽기 권한을 활성화하면 한 걸음 더 나아갔습니다.

  2. 사용할 수없는 AppID에 대한 이벤트 로그 메시지는 실마리입니다. 요청 된 클래스에 대한 AppID REG_SZ 항목이 없습니다. 그래서 보안 설정은 선택되지 않았습니다. 나는 다음과 같은 키의 안전성을 보장하기 위해 필요한 존재 : HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{6E46607A-7347-471B-A98C-BC9E49B07248} with String Value AppID={C33D7656-D310-4684-9482-A486787E4E3B}

  3. MSDN 문서 AppID 당으로

What is AppID

+1

잘 찾아서이 문제로 고생했습니다. – koreus737