이 번 포스트는 유니코드를 사용하여 사용자의 눈속임을 통한 악성파일 실행을 유도하는
공격방법에 대하여 살펴보겠습니다.

유니코드를 이용한 공격은 2005년경 부터 사용되어져 왔으며 최근 이메일 피싱에 자주 사용이
되어 많이 알려진 것 같습니다.

유니코드란 한 마디로 표현하면 "모든 문자를 표현하는 문자셋" 입니다.
각 나라마다 고유의 필요한 문자들이 있는데 컴퓨터는 이러한 것들을 표현하지 못합니다.

그렇기 때문에 참조할 것이 필요한데 바로 "참조" 할 것이 문자셋이라 생각 하시면 됩니다.
그래서 컴퓨터마다 Character map 이란 문자표가 있는 것이지요.




피싱에 사용되어진 유니코드는 U+202E (Right-To-Left-Override) 으로 확장자를 다른 형태로
보이도록 하여 사용자의 눈속임을 통한 악성코드 파일실행이 목적이 되겠습니다.


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


악성코드 실행파일이 예전엔 대부분 EXE 형태의 확장자로 유포가 되다보니 지금은 사용자들의 눈에
익숙해져 쉽게 실행하지 않게 되죠.. 그래서 악성코드 제작자들도 다양한 방식으로 실행을 유도 하도록
고심한 흔적이 역력합니다.



대부분 이메일을 통하여 악성파일이 유포되고 있으며 .ZIP 형태의 압축파일을 첨부하여 다운로드
하도록 하고 있습니다. 또한 이와 같은 Invoice 내용의 피싱공격이 다수 보고 되고 있습니다.





해당 압축파일을 확인해보면 확장자가 .DOC (MS워드문서파일) 처럼 보이지만 실제로는
.EXE 형태의 실행파일로 되어 있으며 사용자가 문서파일로 착각하도록 하여 실행을 유도하고 있습니다.





파일의 속성을 확인하면 .DOC 문서파일이 아닌 응용프로그램(.exe)으로 확인이 됩니다.
아이콘도 실제 문서파일과 동일하게 바꾸어 사용자가 쉽게 알아차리지 못하도록 하고 있습니다.






해당 파일을 콘솔에서 확인 해보면 실제 .doc 파일이 아닌 cod.exe로 표시가 되는 것을
확인할 수 있습니다.

즉, 윈도우NT 이 후의 버전에서는 유니코드를 사용하여 문자를 표시하기 때문에 확장자를
정상적으로 보여주지 못하는 것입니다.




그럼 어느 부분에 유니코드가 사용되었는지 Hex Editor로 살펴보겠습니다.



_Coll 문자열 다음에 알 수 없는 문자값 E2 80 AE 값이 들어가 있네요.

해당 유니코드가 삽입되면 글자를 오른쪽에서 왼쪽으로 입력할 수가 있어 .exe .src 등
실행파일 확장자를 문서파일등 공격자가 원하는 확장자로 쉽게 변경을 할 수 있습니다.

대부분 글씨를 쓸 때 왼쪽에서 부터 시작하지만 오른쪽에서 부터 시작하는 나라도 있기 때문에
이러한 유니코드가 사용되어지고 있습니다.

저도 가끔 해킹 관련 동영상을 볼 때 메모장에다 오른쪽에서 부터 쓰는 것을 본 적이 있는거 같네요.
어쨌든 위의 방식을 사용하면 어떠한 확장자로도 다 표현할 수 있기 때문에 사용자의 각별한주의가 필요합니다.



참고로 약간의 팁을 드리자면 저도 테스트 하면서 알게 되었는데 이러한 형태의 악성코드가
대부분 .zip 파일 형태로 배포가 되고 있으며 특정 압축 프로그램에서는 문자열 오류로 인하여
압축이 풀리지 않는 것을 확인 하였습니다. (zip 압축파일 형태에만 해당됩니다.)

 - 테스트 프로그램

1. 알집     --> 압축해제 됨
2. 반디집  --> 압축해제 됨
3. 7zip     --> 압축해제 됨
4. 빵집   --> 압축해제 되지않음
5. 윈도우 압축(zip)폴더 --> 압축해제 되지않음

  ※ 단, 7z 으로 압축이 되어있을 경우는 빵집 프로그램에서도
     압축해제가 되기 때문에 잘 살펴 보시길 바랍니다.

어떠한 파일이든 압축을 풀기 전 바.이.러.스. 검사를 꼭! 하시기 바랍니다.