지난 2005년 경부터 일부 피싱에 사용된 Unicode RLO 방식을 이용하여 악성코드의 확장자를 다른 형태로 보이도록 하는 형태의 악성코드가 지속적으로 나타나고 있다. 유니코드란 아스키 코드보다 더 크게 모든 문자를 표현하는 문자셋이라 할 수 있다. 각 나라마다 고유의 문자들이 있는데 이를 ASCII 문자로만으로는 표현할 수가 없다.


일반적으로 문자는 왼쪽에서 오른쪽으로 읽지만, 일부 국가에서는 오른쪽에서부터 문자를 읽기도 한다. 이를 컴퓨터에 표현하기 위한 Unicoode는 바로 0x202E로 "Right to Left Override"라는 문자이다. 해당 문자에 대한 정보는 아래와 같다.

이전부터 악성 파일과 관련되어 모르는 exe 파일은 열어보아서는 안된다라는 내용의 이야기는 많이 들을 수 있었다. 그렇기에 일반적인 사용자들도 더 이상 모르는 실행 파일을 함부로 실행시키지는 않는다. 그렇기에 공격자들은 이러한 확장자를 감추려 하거나 변조하는 등으로 사용자를 속이려 한다. 유니코드 확장자 변조에는 위에서 언급한 0x202E가 사용된다. 아래 파일을 보자.

위 그림에서 볼 수 있듯이 파일의 이름은 "testrcs.mp4"이다. 일반적으로 보았을 때 그냥 정상적인 MP4 파일과 같이 볼 수 있다. 하지만 우측의 파일 유형을 보면 '화면보호기(scr)'로 나타나는 것을 확인할 수 있다. 어떻게 된 것일까? CMD를 통해 해당 디렉터리에서 파일의 이름을 다시 확인해보자.

CMD를 통해 확인한 결과에서는 "test 4pm.scr"로 나타나는 것을 확인할 수 있다. 바로 test라는 문자열과 4pm 이라는 문자열 사이에 0x202E가 들어가 있는 것이다. 그렇기에 0x202E 이후의 내용 "4pm.scr"은 반전되어 "rcs.mp4"로 나타내는 것이다. 이를 통해 scr파일을 mp4파일로 착각하도록 할 수 있다.


그렇다면 직접 실습을 진행해보자. 우선 RLO 유니코드 문자를 가지고 와야하는데 이는 0x202E로 바로 나타내도 되지만 편리하게 문자열 셋에서 구할 수가 있다. Windows+R을 입력한 뒤 나타나는 창에 charmap을 입력해보자. 그렇다면 아래와 같은 문자표가 나타난다.

그 다음 '고급 보기'를 체크하여 나타나는 항목에서 유니코드로 이동에 "0x202E"를 입력해준다. 그렇다면 아래의 그림과 같이 나타나는데 해당 문자를 복사해주면 준비가 끝난다.

두 개의 파일 1234abcd.mal과 2234abcd.mal을 준비한다. 그리고 두 번째 파일에서 원하는 부분에 해당 문자를 복사해보자. 아래와 같이 "2234ablam.dc"로 출력되는 것을 확인할 수가 있다. 

이와 같이 확장자를 변조할 수가 있으며, 이에 추가적으로 해당 실행파일이 아이콘 또한 변조된 이름과 같이 보이게 하면 자연스럽게 실행을 유도할 수가 있다. 따라서 어떠한 파일이든 다운을 받았다면 실행을 시키지 말고, 파일의 이름을 한번 의심해보고 반드시 파일의 유형까지 확인해보아야 한다.



Reference


http://egloos.zum.com/voidns/v/2409436

http://cleverdj.tistory.com/48

http://viruslab.tistory.com/1986

http://www.fileformat.info/info/unicode/char/202e/index.htm

http://jvinci.tistory.com/228


'Forensic > Theory' 카테고리의 다른 글

Pulling the Plug  (0) 2017.03.22
Windows Event Log (2) – 주요 이벤트 로그  (0) 2016.02.01
Windows Event Log (1) – 이벤트 로그의 개념  (2) 2016.02.01
Volume Shadow Copy 분석  (1) 2016.01.18
NTFS FIle System (9) $UsnJrnl  (0) 2016.01.16