상세 컨텐츠

본문 제목

IE 보호 모드에서 비보호 모드 프로세스 실행

Internet Explorer

by 탑~! 2012. 3. 30. 12:51

본문

IE 보호 모드에서 비보호 모드 프로세스 실행

IE 보호 모드에서 비보호 모드 프로세스 실행

Posted 2009/05/13 16:49

UAC 환경(Windows Vista, Windows 7)의 IE7, IE8 보호모드에서 동작하는 ActiveX에서 실행 파일을 실행할 경우(브로커 프로세스) 비보호 모드로 열린다는 보안 경고창이 나온다.
이 문제를 해결하려면 아래와 같이 자동 권한 상승 정책을 레지스트리에 등록해주어야 한다. {347DAD60-9849-4921-89B6-16FA1B7936CC}는 임의의 GUID값이다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{347DAD60-9849-4921-89B6-16FA1B7936CC}]
"AppName"="실행 파일명"
"AppPath"="실행 파일 위치(디렉토리)"
"Policy"=dword:00000003


또 다른 문제는 이 자동 권한 상승 정책을 IE 프로세스가 아닌 외부에서 추가하는 경우 ieuser.exe(IE7), iexplore.exe(IE8)에서 권한 상승 정책을 캐싱하고 있기 때문에 바로 적용이 안 된다는 것이다. ieuser.exeiexplore.exe 프로세스를 종료해야만 적용할 수 있다. 하지만 설치 과정에서 프로세스를 종료하는 것은 부담스러운 일이다.

이 문제를 해결하기 위해서 2007년 6월에 배포된 IE 보안 업데이트에 아래와 같은 새로운 API가 추가되었다.

HRESULT IERefreshElevationPolicy(VOID);

자동 권한 상승 정책을 레지스트리를 등록하고 ieframe.dll에 있는 IERefreshElevationPolicy 함수를 호출해주면 추가된 자동 권한 상승 정책이 바로 적용된다.
주의할 점은 IERefreshElevationPolicy를 호출할 때 반드시 IE 프로세스가 실행 중인 계정에서 호출해야 한다는 것이다. 별도의 관리자 계정이나 시스템 계정(Windows Installer의 경우 서비스에서 설치를 수행해 시스템 계정으로 설치가 되는 것으로 보인다)에서 호출할 경우 보안 경고창이 뜰 수 있다.

아래는 공식 블로그에 있는 예제 코드이다.

HRESULT RefreshPolicies()
{
HRESULT hr = E_NOTIMPL;

HMODULE hDll = LoadLibrary(L"ieframe.dll");
if (NULL != hDll)
{
typedef HRESULT (*PFNIEREFRESHELEVATIONPOLICY)();
PFNIEREFRESHELEVATIONPOLICY pfnIERefreshElePol = (PFNIEREFRESHELEVATIONPOLICY) GetProcAddress(hDll, "IERefreshElevationPolicy");
if (pfnIERefreshElePol)
{
hr = pfnIERefreshElePol();
} else {
DWORD error = GetLastError();
hr = HRESULT_FROM_WIN32(error);
}
FreeLibrary(hDll);
} else {
DWORD error = GetLastError();
hr = HRESULT_FROM_WIN32(error);
}
return hr;
}

참조 : http://blogs.msdn.com/b/ie/archive/2007/06/13/new-api-smoothes-extension-development-in-protected-mode.aspx

 


'Internet Explorer' 카테고리의 다른 글

IE10 랜더링 문제 해결 방안  (0) 2013.05.28
IE 신뢰사이트  (0) 2012.03.30
ProtectedModeHelper  (0) 2012.03.30
IE Protected Mode 해제  (0) 2012.03.30
IE Protected Mode API  (0) 2012.03.30

관련글 더보기