비보호 모드로 동작하는 프로세스 실행 뜨는 보안 경고 처리하기

                                                                                         07 5 18정중희

 

 

Low Integrity로 열린 보호 모드의 익스플로러에서 외부 프로세스를 열려는 시도를 할 때 아래와 같은 경고 창이 뜨는 것을 볼 수 있다.

 

사용자 삽입 이미지

 

이는 MS가 명시하고 있는 윈도우의 Integrity Level 규칙에 어긋나는 동작임을 말해주는 경고 창이다. 보안을 위해 사용자에게 공지하고 사용여부를 묻는 방식이다.

이를 방지하기 위한 방법으로 경고 창 내 체크 박스를 이용하는 방법과, 익스플로러를 관리자 권한으로 실행하여 보호모드 오브젝트에 접근하는 방법, 그리고 레지스트리에 실행할 프로그램 명을 등록해 주는 방법 등이 있다.


 

첫째, 사용자가 직접 위 경고창 내의 이 프로그램에 대한 경고를 다시 표시 안함(S)” 에 체크를 하게 되면, 이 정책 정보가 레지스트리에 기록되어 다음 번 실행부터는 경고창을 띄우는 일이 없이 자동 허용하게 된다.

HKEY_CURRENT_USER 혹은 HKEY_LOCAL_MACHINE

SOFTWARE

Microsoft

Internet Explorer

Low Rights

ElevationPolicy

{00000000-0000-0000-0000-000000000000}

 AppName="사용할 프로세스.exe"
AppPath="
프로세스의 풀 경로"
  Policy=(DWORD) 00000003


Low Rights 권한 상승 정책 레지스트리 위치

 

이 방법은 사용자에게 자율적인 등록을 가능하게 하는 이점이 있으나, 최소한 1회 경고창을 접하게 된다는 문제가 있다. (물론 이는 MS에서 권고하는 바이나, 사용자는 불편함을 감수해야 한다.)

 

둘째, 관리자 권한으로 실행하는 방법에는 익스플로러의 아이콘에 마우스 커서를 위치 시키고 오른쪽 버튼을 누른 후 팝업 메뉴에서 관리자 권한으로 실행(Run As Administrator) 을 눌러 익스플로러를 실행 시키거나, 프로그램을 실행 하고자 하는 웹 사이트를 신뢰된 사이트로 등록시켜 주는 방법이 있다.

 

개발자적인 측면에서 보안 경고창을 막을 대안으로 위의 레지스트리 관련 작업들을 프로그램 배포시 자동으로 셋팅해 주는 방법을 생각해 볼 수 있다. 그러나 윈도우 Vista UAC(User Account Control)은 기본적으로 익스플로러를 Low Integrity Level로 실행 시키기 때문에 익스플로러 레지스트리에 접근 할 수 있는 권한 자체를 가지고 있지 않다. 대신 익스플로러는 현재 프로세스를 감지하여 설치 작업이라면 IEInstal.exe 라는 설치 대행 모니커를 불러들이고 모든 설치에 관련된 부분을 위임한다. IEInstal.exe High Integrity Level로 관리자의 권한을 가지고 시스템 폴더 및 레지스트리에 자유롭게 기록하거나 읽을 수 있는 프로세스이다.

 

사용자 삽입 이미지

IEInstal.exe 프로세스 속성

 

 

유추해 보면 프로그램 배포시 관리자 권한으로 레지스트리에 읽고 쓰기가 가능하므로 위의 방법을 프로그램 코드 내에 삽입하는 방법을 이용하면 가능한 해결책인 듯 보인다.

그러나 막상 적용하여 보면 다시 경고창이 뜨는 것을 확인 할 수 있을 것이다.

 

실제로 익스플로러는 일반 모드로 실행시 Low Integrity Level로 실행이 되며, 그와 동시에IEUser.exe라는 Midium Integrity Level 모니커 프로세스가 실행된다. IEUser.exe 는 익스플로러에 의해 캐시된 모든 인터넷 정보를 관리 / 유지 한다.

 

사용자 삽입 이미지


                                   IExplore.exe
IEUser.exe의 속성

 

그러므로 앞의 예와 같이 IEInstal.exe 모니커를 통해 레지스트리 수정이 가해지고 익스플로러를 재 시작 하게 되더라도, IEUser.exe는 캐시된 예전 정보를 가지고 있기 때문에, 강제적으로 IEUser.exe 의 프로세스를 재 시작 해야 할 필요가 있다.

 

위와 같은 레지스트리 기록 방식으로 Active-X opt-in 정책에 의해 발생되거나, 비보호 모드 프로세스의 실행 시 발생되는 경고창을 사전 차단할 수 있다.

 

Ps: Opt-in 정책에 의해 발생되는 경고창은 IEUser.exe 를 재시작 하지 않아도 가능했다.


사용자 삽입 이미지
 

Windows VISTA IE7.0 디렉토리 내부

블로그 이미지

요다할아범

,