Computer >> 컴퓨터 >  >> 시스템 >> Windows

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

다른 많은 기술 전문가들과 마찬가지로, 저도 최근 인터넷 익스플로러(IE)의 레거시 스크립팅 엔진(jscript.dll)에서 발견된 새로운 치명적 취약점 관련 권고문들을 접했습니다. 이 취약점은 현재 실제로 악용되고 있는 상황입니다. 이런 일 자체는 언제든 일어날 수 있죠. 하지만 저를 불편하게 한 것은 웹 곳곳에 퍼진 비관론과 공포 분위기였습니다. 대부분은 패닉 상태일 뿐, 문제를 분석하고 우아한 방식으로 완화할 수 있는지 검토하려는 노력은 거의 없었습니다.

사실 마이크로소프트는 이미 공식 우회 방법(workaround)을 안내하고 있습니다. 해당 라이브러리에 대한 접근을 차단하면 됩니다. 하지만 이 방법 역시 부작용이 있습니다. 인쇄 오류, 그룹 정책 편집기 접근 문제 등 몇 가지 장애가 발생할 수 있습니다. 그래서 저는 고민해 보았습니다. 시스템을 불안정하게 만들지 않으면서도 취약점의 영향을 줄일 수 있는 방법이 없을까?

문제의 범위

이 취약점은 인터넷 익스플로러의 스크립팅 엔진에 존재합니다. 즉, 이 엔진을 호출하는 모든 프로그램이 메모리 손상을 유발할 수 있으며, 임의 코드 실행으로 이어질 가능성도 있습니다. 주요 대상은 인터넷 익스플로러이며, 경우에 따라 마이크로소프트 오피스, 그리고 일반 가정 환경에서는 찾아보기 어려운 일부 레거시 애플리케이션이 해당됩니다.

해결책은 간단합니다. 인터넷 익스플로러를 실행하지 않고, 다른 프로그램에서 수상한 파일이나 링크를 열지 않으면 됩니다. 사실 이건 언제나 지켜야 할 기본 수칙입니다. 진짜 문제는 만약 "실수로" 이 취약점을 유발할 수 있는 페이지를 인터넷 익스플로러로 열었다면 어떻게 되느냐는 것입니다.

인터넷 익스플로러 실행 금지하기

윈도우에는 특정 애플리케이션의 실행을 금지하는 옵션이 오래전부터 존재합니다. 레지스트리나 그룹 정책 편집기(Pro 버전 사용자용)를 통해 설정할 수 있으며, 목록에 등록된 프로그램의 실행을 차단합니다. 구체적인 방법은 다음과 같습니다. gpedit.msc를 실행하고, 사용자 구성 > 시스템으로 이동한 후, "지정된 Windows 응용 프로그램 실행 안 함(Don't run specified Windows applications)" 정책을 엽니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

정책을 사용으로 설정합니다. 그런 다음 옵션(Options:) 영역에서 표시(Show)를 클릭하고 iexplore.exe를 금지 애플리케이션 목록에 추가합니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

이 정책은 의도한 대로 작동하지만, 윈도우 탐색기나 시작 메뉴를 통해 프로그램을 실행할 때만 적용된다는 한계가 있습니다. 다른 경로를 통한 실행은 차단하지 못하며, 애플리케이션이 jscript.dll 라이브러리를 사용하는 것도 막지 못합니다. 걱정하지 마세요, 그 부분도 곧 다룰 겁니다. 천천히 순서대로 진행하겠습니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

레지스트리로 설정할 경우, 애플리케이션을 등록하는 경로는 다음과 같습니다.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies

IFEO(Image File Execution Options) 활용하기

이 매우 유용하고 강력한 기능은 GWX 관련 글에서도 소개한 바 있습니다. IFEO를 사용하면 시스템의 어떤 프로그램이든 동작 방식을 변경할 수 있습니다. 여기서는 Debugger(디버거) 기능을 활용해, iexplore.exe의 실행을 기본 동작 대신 빈 cmd 셸을 실행하도록 변경합니다. 즉, 아무 작업도 수행하지 않고 자바스크립트 라이브러리도 호출하지 않는 더미(dummy) 실행을 만드는 것입니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

이렇게 설정하면 인터넷 익스플로러를 "실행"할 수는 있지만, 실제로는 명령 프롬프트 셸이 생성되었다가 즉시 종료되는 것에 불과합니다. 어떤 방식으로 인터넷 익스플로러를 호출하더라도 실질적으로 실행되지 않으므로, jscript.dll 라이브러리가 메모리에 로드될 위험이 크게 줄어듭니다.

주의할 점은, 이 방법은 인터넷 익스플로러에만 영향을 미치며 다른 프로그램의 라이브러리 사용까지 막지는 못한다는 것입니다. 예를 들어 마이크로소프트 워드에서 jscript.dll 함수를 참조하는 비정상 형식의 내장 객체가 포함된 문서를 여는 경우가 있을 수 있습니다. 하지만 특히 인터넷 익스플로러처럼 네트워크에 연결되는 프로그램에 의한 라이브러리 사용 위험은 확실히 감소합니다. 시스템의 다른 도구들이 이 라이브러리를 여전히 필요로 하더라도, 외부 네트워크 리소스에 연결하지 않는다면 위험은 크게 낮습니다.

IFEO의 장점은 레지스트리 키 설정 외에 아무것도 필요로 하지 않는다는 점입니다. 원래대로 되돌리고 싶다면 Debugger 문자열 값만 삭제하면 즉시 기존 기능이 복구됩니다.

마지막으로, 백신·안티멀웨어 소프트웨어를 사용 중이라면 일부 프로그램은 이 설정을 잠재적인 IFEO 하이재킹으로 감지할 수 있습니다. 이 점만 인지하고 넘어가면 됩니다. 오히려 더 스마트한 컴퓨터 보안 방식을 받아들이는 계기가 될지도 모르죠. 이 주제는 다음 기회에 다루겠습니다.

jscript.dll 직접 다루기

앞서 설명한 방법은 문제를 근본적으로 해결하는 것이 아니라, 인터넷 익스플로러의 실행 가능성을 줄여 위험을 회피하는 것입니다. 올바른 해결책은 라이브러리를 업데이트하는 것입니다. 기술적으로는 새로 패치된 버전을 기존 버전 위에 복사하면 끝나지만, 윈도우 업데이트 메커니즘은 그보다 복잡하게 작동합니다.

따라서 현실적인 완화 방법은 라이브러리의 실행 권한을 제거하는 것입니다. 권고문에 나온 대로 명령줄에서 처리할 수도 있고, 윈도우 탐색기를 사용할 수도 있습니다. 명령줄을 권장하는 이유는 시스템 라이브러리의 소유권을 가져와 보안 설정을 변경할 수 있게 하기 위해서입니다. 또는 ExecTI를 통해 cmd(또는 탐색기)를 열어 권한을 조작할 수도 있습니다. ExecTI는 프로그램을 최고 권한(TrustedInstaller)으로 실행할 수 있게 해주는 유틸리티로, 필수 윈도우 관리자 유틸리티 목록에서 소개한 바 있습니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

목표는 목록에 있는 모든 그룹 또는 사용자에 대해 "읽기 및 실행(Read & execute)" 확인란의 선택을 해제하는 것입니다. 하지만 부작용이 존재합니다. 예를 들어 Administrators 그룹의 실행이 거부되면, 앞서 언급한 그룹 정책 편집기가 제대로 실행되지 않습니다. 이는 표준 사용자로 실행하는 것의 중요성도 보여줍니다. Users 그룹에 대해 Jscript 실행을 거부하더라도, 표준 사용자 환경이라면 여전히 인터넷 익스플로러를 사용할 수 있고 시스템 기능에도 영향이 없습니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

JScript.dll 실행이 거부된 그룹 정책 편집기. 레이아웃이 깨져 있는 모습.

어차피 할 일은 이게 전부이므로, 읽기 및 실행을 비활성화해 두었다가 공식 패치를 적용할 때(물론 적용하고 싶다면 말이죠) 필요에 따라 켜고 끄면 됩니다. 어떤 환경에서는 패치를 적용하고 싶지 않거나 적용할 수 없고, 심지어 인터넷 익스플로러를 사용해야 할 수도 있습니다. 하지만 일반 가정 환경에서는 그럴 가능성이 낮습니다. 여기서는 기업 보안을 논하는 것이 아니니, 포크를 내려놓으시길 바랍니다. 마지막으로 인터넷 익스플로러 실행 파일 자체에도 동일하게 실행 권한을 제거할 수 있습니다.

추가 조치 - 로컬 스크립팅 방어

인터넷 익스플로러를 어쩔 수 없이 사용해야 하는 상황이라면, 인터넷 옵션에서 Active Scripting을 비활성화할 수 있습니다. 이건 사실 오래된 상식이라 여기서 깊이 다루지 않겠습니다. 더 실용적인 조치는 로컬 디스크에 저장된 자바스크립트 파일이 Microsoft Based Script Host(wscript)를 통해 실수로 실행되지 않도록 하는 것입니다. 이것이 윈도우 10에서도 기본 동작입니다. 하지만 실제로 브라우저 환경 밖에서 로컬 자바스크립트 파일을 실행해야 할 이유는 거의 없습니다.

Windows에서 Internet Explorer 차단하기 - jscript.dll 취약점 실전 대응 가이드

설정 방법은 간단합니다. file.js 같은 더미 자바스크립트 파일을 하나 만든 뒤, 마우스 오른쪽 버튼 > 연결 프로그램(Open with)을 클릭하고 텍스트 편집기를 선택하세요(추가 앱 목록에 있습니다). 이렇게 하면 로컬에 저장된 자바스크립트 파일을 더블클릭하더라도 텍스트 파일로 열리게 됩니다.

결론

공포를 나침반 삼지 마세요. 일부 보안 문제는 심각하며 세심한 검토가 필요합니다. 하지만 다른 문제들은 인터넷에서 떠도는 소문만큼 끔찍하지 않을 수 있습니다. 이번 취약점도 물론 좋은 상황은 아닙니다. 하지만 인터넷 익스플로러를 실행하지 않는 것만으로도 사실상 해결됩니다. 더불어 아무 파일이나 함부로 실행하지 않는 기본 수칙만 지키면 충분히 안전합니다.

이 글에서는 상황을 차분하게 개관하고, 활용할 수 있는 선택지들을 정리해 드렸습니다. 가장 핵심은 IFEO의 강력한 기능을 사용해 인터넷 익스플로러의 실행을 원천적으로 막을 수 있다는 점입니다. 이렇게 하면 메시지나 공지를 위해 iexplore.exe를 하드코딩하는 오래된 게임 런처든, 본인의 무심한 더블클릭이든, 불필요한 위험을 줄일 수 있습니다. 라이브러리의 실행 권한을 비활성화할 수도 있고, 시스템이 표준 사용자 중심으로 설정되어 있다면 기능 저하 없이도 충분히 대응 가능합니다. 이제 안심하고 즐거운 웹 서핑을 즐기시길 바랍니다.