MenuIcon

Owl-Networks Archive

LoginIcon

autorun.inf 를 악용하는 악성코드 종합 대책 #2/4

| 분류: 컴퓨터 사용 경험 | 최초 작성: 2010-09-26 00:27:40 |



< 읽기 전에 >

1. 이 글은 필자가 집필하여 발행한 전자책 "계정 및 정보보호를 위한 가이드 북(제8판)" 의 제6장 부분 중 관련 부분을 재편집한 것입니다. 모두 4개의 게시물로 구성되어 있습니다.

2. 이 글은 과거 필자가 등록한 다음 게시물의 내용을 포함합니다.

281. [[LINK::281]]
294. [[LINK::294]]
317. [[LINK::317]]

3. 원래 이 분야에 전문적인 지식이 없는 일반인을 대상으로 하여 작성된 글이기 때문에, 핵심 내용에 비해 설명이 깁니다. 이 점 참고하시기 바랍니다.



2. 적에 대처하기 위해 알아야 하는 사실들


(1) “USB 디스크를 내 컴퓨터에 꽂기만 해도 감염된다”는 말의 의미


앞에서 잠깐 이야기한 바 있지만, 이 autorun.inf 파일은 처음 디스크가 “읽혀질 때”에 레지스트리(정확히는 MountPoints2 라는 이름 아래)에 정보가 입력됩니다. 처음 그 컴퓨터에 USB 디스크가 연결될 때에 이 디스크를 인식하면서 관련 정보를 찾아 저장한다는 이야기지요. 따라서 아직 디스크가 탐색기 등을 통해서 읽혀지기 전이라도, 이미 이 정보는 레지스트리에 저장되어 있게 됩니다. 그리고 디스크 인식이 완료되면 바로 autorun.inf 파일에 의해서 지정된 프로그램이 실행되겠죠. 일련의 과정을 살펴보면, USB 디스크를 연결한 후 탐색기로 한 번도 이 USB 디스크를 열어보지 않더라도, 이미 자동 실행 데이터는 레지스트리에 들어 있으며, 또한 자동 실행 기능을 통해 이미 악성코드는 실행이 되어버렸다는 것을 알 수 있습니다.

게다가, 이후에 이 디스크가 다시 이 컴퓨터에 연결되면, 윈도우즈는 그 디스크의 일련 번호를 바탕으로 하여 일단 레지스트리에 관련 정보가 있는지부터 찾습니다. 만약에 거기에 이미 저장된 자동 실행 정보가 있다면, 디스크의 autorun.inf 파일에 관한 정보는 아예 찾지도 않은 채 그대로 실행을 해버리게 됩니다. 그 결과, 심지어는 이미 그 디스크 안에 autorun.inf 파일이 삭제되어 존재하지 않더라도, 자동 실행 기능은 그대로 동작하고 그 결과 USB 디스크에 숨어있던 악성코드는 실행이 되는 것이지요. 이런 특성 때문에, “감염된 USB 디스크를 컴퓨터에 꽂기만 해도 악성코드에 감염”된다는, 약간은 선정적이고 선동적인(그러나 그다지 틀렸다고 말하기도 곤란한) 문구가 등장하게 되는 것입니다.

과거 재기록 불가능한 디스크에 대해서는 이러한 부분이 분명 의미를 갖고 있습니다. 어차피 한 번 읽어들인 autorun.inf 파일은 삭제되거나 변경될 일이 없었기 때문입니다. CD-ROM 등에서 어떤 파일을 찾고 읽는 속도가 상당히 느리기 때문에, 이런 동작 방식을 채택하여 속도를 끌어올릴 수 있었지요. 그러나 현재처럼 autorun.inf 파일 자체가 변경되거나 삭제될 수도 있는 상황에서는 이 정책은 상당한 문제점을 안고 있는 동작 방식입니다.


(2) 일을 더 키운 마이크로소프트의 늑장 대응


자동 실행 기능이 윈도우즈 XP에 이르러 그 적용 범위가 확장되었지만, 마이크로소프트에서는 이러한 기능을 무효화시킬 수 있는 방법 역시 제공하고 있었습니다. 윈도우즈의 설정을 조금만 수정하면, 자동 실행 기능을 특정한 유형의 디스크에서는 사용하지 않도록 설정할 수도 있고, 아예 자동 실행 기능을 사용하지 않도록 설정할 수도 있습니다. 레지스트리를 수정하여야 하는 조금은 복잡한 문제가 있지만, 자동 실행 기능을 사용하거나 하지 않거나 하는 등의 기본적인 설정은 윈도우즈 XP 등에서 제공하는 정책 편집기 등을 통한다면 간단하게 설정이 가능했습니다. 그럼에도 문제는 점점 더 커져만 갔습니다. 왜일까요?

사실인즉슨, 윈도우즈 2000에서부터 윈도우즈 서버 2008까지의 모든 윈도우즈에는 자동 실행을 해제하는 부분에 버그가 있었습니다. 자동 실행 기능을 끄더라도 autorun.inf 는 여전히 읽어들여져 레지스트리에 저장되었습니다. 또한 미디어를 삽입할 때에는 자동 실행 기능이 실행되지 않았지만, 탐색기 등에서 해당 미디어를 여는 순간에는 여지없이 작동을 해 버렸습니다. 설정이 무용지물이었던 셈이죠.

이러한 버그는 2009년 초에야 수정되었습니다. 마이크로소프트는 보안 패치 950582, 953252, 967715를 발표하고, 이를 통하여 각각 윈도우즈 2000, 윈도우즈 XP, 윈도우 비스타[서비스팩 1 및 그 이전], 윈도우즈 서버 2003, 윈도우즈 서버 2008의 관련 문제점을 수정하였습니다. (윈도우 7에는 이 문제점이 존재하지 않습니다.) 따라서 이 패치를 수행한 후에는 정상적으로 자동 실행 기능을 끌 수 있습니다. 그러나 문제는 여전히 존재하고 있습니다. 대부분의 컴퓨터 사용자들에게 있어서, 자동 실행을 끄는 방법은 결코 쉽다고는 할 수 없기 때문입니다.

결국, 윈도우 비스타에 이르러, 마이크로소프트는 기존의 자동 실행 방식에 수정을 가합니다. 자동 실행 기능이 켜져 있으면 무조건 자동 실행 설정에 따라 동작하였던 윈도우즈 XP까지의 방식을 버리고, autorun.inf 파일이 발견되면 이를 실행할 것인지의 여부를 사용자에게 물어보는 방식으로 일대 전환을 한 것이지요. (물론 윈도우 비스타나 윈도우 7에서도 설정을 변경하면 윈도우즈 XP의 방식으로 무조건 자동 실행이 되도록 만들 수도 있습니다. 당연히, 권장은 하지 않습니다만.)

(3) "탐색(X)“ 메뉴를 통해 열어도 소용없습니다.

자동 실행과 관련하여 일반에 널리 퍼져 있는 오해가 하나 있습니다. 한 때 저도 그렇게 알고 있었습니다만, 이동식 디스크를 열 때에 마우스 오른쪽 버튼을 클릭하고 “열기(O)”나 “탐색(X)”을 클릭하여 열면 자동 실행이 동작하지 않는다는 이야기가 있었습니다. 일단 이 부분은 명백히 사실입니다. 앞에서 예시한 autorun.inf 파일에서 "open=" 열의 설정에 의해 자동 실행이 되는데, 이 부분은 마우스 오른쪽 버튼 메뉴의 “열기(O)”나 “탐색(X)” 메뉴를 이용하여 디스크에 접근할 때는 적용되지 않기 때문입니다. 그러나 이러한 지식은 악성코드의 공격을 막기 위한 방법으로는 어림도 없는 방법입니다. 아래의 그림은 실제의 악성코드가 사용한 바 있는 autorun.inf 파일의 예입니다.

pic_03.png


그림. 대부분의 autorun.inf 악용 악성코드에 이용되는 설정. 열기(open) 또는 탐색(explore)을 이용하여 탐색기에서 해당 디스크를 열 때에도 자신이 실행될 수 있도록 명령행을 입력해 두고 있습니다.


위에 보신 대로, “shell\open\command=”, “shell\explore\command=” 명령행 설정에 의하여, 각각 “열기(O)”나 “탐색(X)”을 이용한 디스크 접근 시에도 악성코드가 실행될 수 있도록 이미 준비가 되어 있기 때문에, 이 방법으로는 악성코드의 침투를 막지 못합니다.


다음 게시물에서 계속됩니다.

☞ 태그: autorun, MountPoints2, autorun.inf, 자동실행, 악성코드, KB967715,

☞ 트랙백 접수 모듈이 설치되지 않았습니다.

☞ 덧글이 없고, 트랙백이 없습니다.

덧글을 남기시려면 여기를 클릭하십시오.
[483] < [386] [372] [366] [361] [360] ... [359] ... [358] [357] [355] [352] [350] > [19]

(C) 2000-2018, Owl-Networks. Powered by Perl. 이 페이지는 HTML 5 표준에 따라 작성되었습니다.