autorun.inf 를 악용하는 악성코드 종합 대책 #4/4
| 분류: 컴퓨터 사용 경험 | 최초 작성: 2010-09-26 01:36:49 |
< 읽기 전에 >
1. 이 글은 필자가 집필하여 발행한 전자책 "계정 및 정보보호를 위한 가이드 북(제8판)" 의 제6장 부분 중 관련 부분을 재편집한 것입니다. 모두 4개의 게시물로 구성되어 있습니다.
2. 이 글은 과거 필자가 등록한 다음 게시물의 내용을 포함합니다.
281. [[LINK::281]]
294. [[LINK::294]]
317. [[LINK::317]]
3. 원래 이 분야에 전문적인 지식이 없는 일반인을 대상으로 하여 작성된 글이기 때문에, 핵심 내용에 비해 설명이 깁니다. 이 점 참고하시기 바랍니다.
4. autorun.inf 악용 악성코드와 관련된 몇 가지 문제들.지난 회로 사실상 대처법에 대한 이야기는 모두 한 것 같습니다. 이번 회는 마무리로써, 이와 관련된 몇 가지 문제를 간단하게 짚어본 후에 끝낼 것입니다. 주로 악성코드를 치료한 후의 사후처리와 관련된 것입니다.
(1) 윈도우 비스타/윈도우 7에서 자동 실행 기본 설정을 변경하기윈도우 비스타 이후의 윈도우즈에서는 자동 실행이 감지되었을 때에 기본적으로 세 가지 행동 중 하나를 취하도록 설정할 수 있습니다. ① 기존의 윈도우즈 XP에서처럼 언제나 자동으로 실행하거나 ② 언제나 자동 실행을 무시하거나 ③ 자동 실행을 수행할지 여부를 사용자에게 질문하거나. 초기 설정 상태는 ③ 의 상태이며, 사용자의 선택에 따라 ①이나 ②의 설정으로 수정할 수 있습니다. 이 설정을 수정하기 위해서는 다음의 절차를 따르면 됩니다.
① 시작 버튼을 누른 후 나타나는 검색/실행 창에 gpedit.msc 를 입력합니다. 윈도우즈 정책 편집기가 실행됩니다.
② [컴퓨터 구성] → [관리 템플릿] → [Windows 구성 요소] → [자동 실행 정책] 으로 이동합니다.
③ 세부 항목 중 [자동 실행의 기본 동작]을 더블클릭합니다.
④ 자동 실행을 구 버전의 방식으로 되돌리려면(권장하지 않음), 사용 여부를 “사용(E)” 로 설정한 후, “자동 실행 명령을 자동으로 실행”을 선택합니다. 자동 실행을 항상 무시하려면, 사용 여부를 “사용(E)” 로 설정한 후, “자동 실행 명령을 실행하지 않음”을 선택합니다. 항상 자동 실행 여부를 묻도록 설정하려면(초기값), 사용 여부를 “구성되지 않음(C)” 이나 “사용 안 함(D)” 으로 설정합니다.
그림. “자동 실행의 기본 동작” 설정 화면. 기본적으로 “구성되지 않음(C)”이나 “사용 안함(D)” 상태라면 항상 자동 실행 전 사용자에게 자동 실행 여부를 물어봅니다. 그 외 “사용(E)”을 선택한 상태라면 동작 설정에 따라 항상 자동 실행을 수행하거나, 항상 자동 실행을 무시하게 됩니다. (윈도우 비스타의 실행 화면이지만, 윈도우 7의 설정 항목도 동일합니다.)
(2) autorun.inf를 악용하는 악성 코드를 치료한 후 숨김/시스템 속성의 파일/폴더를 확인할 수 없는 경우윈도우즈에서는 숨김 파일은 그 속성상, 시스템 파일은 그 중요성상 기본적인 설정으로 탐색기상에서 그 파일들이 보이지 않도록 하고 있습니다. 이 설정은 탐색기의 설정에서 간단하게 변경할 수 있습니다.
그림. 탐색기에서 [도구]→[폴더 옵션]→[보기] 탭에서 다음의 두 설정을 변경하면 됩니다.
그러나 악성코드에 감염된 경우에(혹은 감염되었다가 치료된 후에도) 이러한 숨김/시스템 속성 파일이 보이도록 설정할 수 없는(설정하여도 다시 원래대로 설정이 되돌아가 버리는) 문제가 발생합니다.
대개 악성코드들은 autorun.inf 나 악성코드 본체 자신을 탐색기상에서 발견할 수 없도록 하기 위하여 이들 파일에 숨김 속성과 시스템 속성을 걸어두고, 숨김/시스템 속성 보기 옵션을 사용자가 수정할 수 없도록 하기 위하여 이 설정을 바꿀 수 없도록 변조한 후, 이 값이 올바른 값으로 돌아가지 않도록 계속 모니터링합니다. 문제는, 악성코드 퇴치 프로그램을 이용하여 이 악성코드를 치료하더라도, 악성코드 퇴치 프로그램이 이 변조된 설정까지 원래대로 돌려주지는 않는다는 것입니다. (그것이 악성코드 실행의 결과인지 여부를 악성코드 퇴치 프로그램으로서는 알 수 없기 때문입니다.) 따라서, 이 부분은 사용자가 수동으로 원상복구 시켜야만 합니다. 다음의 설정을 따르시면 됩니다. 다만 역시 레지스트리를 수동으로 건드리는 부분이므로 주의하시기 바랍니다.
만약 직접 레지스트리를 수정하는 것이 자신이 없다면, 다음 레지스트리 설정 파일을 다운로드 받아 압축을 푼 후, Show_Hidden_All.reg 파일을 더블클릭 하시면 시스템에 적용이 됩니다. 이 파일은 아래에 설명하고 있는 절차를 한 번에 처리해 줍니다.
다운로드 (크기: 409Byte)■
숨김 속성의 기본 값 설정을 복구하기① 레지스트리 에디터를 실행합니다. (실행창에 regedit)
② 레지스트리에서 다음의 항목을 찾아갑니다.
HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Windows → CurrentVersion → Explorer → Advanced → Folder → Hidden → SHOWALL
(3) 오른쪽 패널에서 CheckedValue 키를 찾는다. 없으면 만들고, 그 값은 16진수 1로 한다. 만약 값이 다르거나 10진수로 되어 있다면 16진수 1로 변경해준다.
그림. CheckedValue 의 값을 16진수 1로 변경합니다.
④ 이제 디폴트 설정은 원상복구 되었으므로, 다음의 값을 찾습니다.
HKEY_CURRENT_USER → Software → Microsoft → Windows → CurrentVersion → Explorer → Advanced
⑤ 오른쪽 패널에서 hidden 값을 찾는다. 없으면 값을 만들어 주고, 값을 16진수 1로 입력한다.
■
시스템 속성의 기본 값 설정을 복구하기 ("보호된 운영체제 파일 숨기기“ 설정을 해제할 수 없는 경우)① 레지스트리 에디터를 실행한다. (실행창에 regedit)
② 레지스트리에서 다음의 항목을 찾아간다.
HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Windows →
CurrentVersion → Explorer → Advanced → Folder → SuperHidden
③ 오른쪽 패널에서 UncheckedValue 키를 찾는다. 없으면 만들고, 그 값은 16진수 1로 한다. 만약 값이 다르거나 10진수로 되어 있다면 16진수 1로 변경해준다. 아울러 CheckedValue 값도 16진수 0으로 되어 있는지 확인한다. (일부 악성코드는 이 값도 2로 바꾼다.)
그림. UncheckedValue값을 16진수 1로 변경합니다.
④ 이제 다음의 레지스트리를 찾아간다
HKEY_CURRENT_USER → Software → Microsoft → Windows → CurrentVersion → Explorer → Advanced
⑤ 오른쪽 패널에서 ShowSuperHidden 값을 찾는다. 없으면 값을 만들어 주고, 값을 16진수 1로 입력한다.
(3) autorun.inf 로 감염되는 악성코드를 치료한 후 해당 드라이브에 접근할 수 없는 경우자동 실행 설정이 켜져 있는 상태에서, autorun.inf 를 이용하여 감염되는 악성코드에 감염된 하드 디스크 드라이브나 USB 드라이브 등을 치료한 후, 해당 드라이브에 접근하려고 하면 “연결 프로그램을 찾을 수 없다”는 오류가 발생하면서 해당 드라이브에 탐색기를 이용해 접근할 수 없는 문제가 발생합니다.
그림. 다음과 같이 오류가 발생하면서 해당 드라이브에 접근할 수가 없게 됩니다. 이런 상황에 당황하여 디스크를 포맷하는 경우가 많은데, 간단히 해결할 수 있습니다.
이 문제는 레지스트리에 autorun.inf를 저장하는 윈도우즈의 특성과 관계가 있습니다. 악성코드와 autorun.inf 파일은 해당 드라이브에서 제거되었지만, 레지스트리에 이전의 autorun.inf 파일 정보가 그대로 남아 있어 윈도우즈 시스템이 레지스트리의 정보를 계속 참조하기 때문에, 연결할 대상을 잃어버린 윈도우즈가 오동작하는 것입니다.
따라서 이 문제를 해결하기 위해서는 레지스트리에 남아 있는 USB 드라이브의 자동 실행 설정을 삭제하여야 합니다.
① 레지스트리 에디터를 실행합니다. (실행창에 regedit)
② 레지스트리에서 다음의 항목을 찾아갑니다.
HKEY_CURRENT_USER → Software → Microsoft → Windows →
CurrentVersion → Explorer → MountPoints2
③ MountPoints2 이하의 항목들 중 CLASS ID 형태로 되어 있는 모든 키를 삭제합니다. 다만 해당 드라이브를 나타내는 키가 어떤 키인지 알 수 있다면 그 키만 삭제하여도 됩니다.(이 값들은 삭제하여도 일반적으로 문제를 일으키지 않으므로 모두 삭제하셔도 됩니다.)
그림. 네모칸 부분의 정보들을 모두 삭제합니다.
④ 시스템을 다시 시작합니다. (다시 시작하지 않아도 적용은 됩니다.)