본문 바로가기
AhnLab 보안in

SWF 파일 포맷의 취약점을 노린 악성코드 증가

by 보안세상 2020. 4. 5.

2008.08.06

 

취약한 SWF 파일과 멀티 다운로더

어도비사의 플래쉬로 유명한 SWF 파일포맷에 취약점 이 존재하여 이를 노린 악성코드가 폭발적으로 발견 보고되었다. 이 취약점은 Movieclip 구현을 위한 필드를 모아둔 Tag 중에서 SceneCount 값이 음수일 경우 발생한다. 이것은 SWF 파일 구조중 Tag type 'DefineSceneAndFrameLabelData' 필드에 속하며, 악용하기 위한 쉘코드는 JPEG 이미지를 표현하는데 사용되는 비트맵 정보를 가진 Tag 부분에 위치한다. 다음은 취약한 SWF 파일에서 쉘코드내 복호화 루틴 부분과 이를 복호화하여 멀티 다운로더가 업로드된 호스트 부분을 표시한 것이다.

[그림 1] 취약한 SWF 쉘코드 복호화 모습



대부분의 취약점이 그러하듯 SWF 취약점 역시 궁극적으로 멀티 다운로더를 다운로드 & 실행하여 해당 시스템에 대량의 트로이목마를 설치하는 것이 목적이다.

다음 [그림 2]는 취약한 SWF 파일에 대하여 암호화를 적용한 형태로서 대다수의 샘플이암호화되어 있으며, SWF Encrypt 라는 상용도구로 만들어진다. 그러나 이 도구는 SWF 파일내에 액션스크립트에 해당 부분만을 암호화 시켜주므로 실제로는 쉘코드가 위치하는 해당 태그영역과는 전혀 관련이 없다.

[그림 2] SWF Encrypt 로 보호된 취약한 SWF 샘플



이러한 류의 악성코드 제작자들은 분석을 지연시킬 목적으로 SWF Encrypt를 사용했지만 이는 이미 취약한 SWF 파일을 생성하는 자동화된 도구에서 쉘코드 암호화가 이루어져 있음에도 불구하고 의미없이 해당 툴을 사용했다는데 있다. 이를 되짚어 생각해보면, 이와 같이 기하급수적으로 제작된 악성코드의 상당수가 자동화된 악성코드 제작 도구에 의존하고 있다는 것을 반증하는 것으로 취약점의 동작원리도 제대로 이해하고 있지 못한 상태에서 취약한 SWF 파일을 만들어내는 툴을 사용하여 대량으로 찍어 내듯이 제작된다는 것이다.

즉 이러한 점을 고려해볼 때, 우리는 대다수의 중국의 스크립트 키드(script kids)와 싸우고 있다고 생각된다. 한편으로는 이러한 도구를 만들어 낼 수 있는 실력이 어느 정도 있는 제작자들은 도구를 만들어서 스크립트 키드에게 팔아 돈을 벌고 스크립트 키드들은 이 도구를 이용하여 자신이 원하는 정보를 탈취하거나 탈취된 정보를 돈을 받고 파는 형태가 일반적인 중국의 악성코드 제작의 순환 고리라 하겠다.

사용자들은 이 취약점을 악용한 공격으로부터의 피해를 예방하기 위해서는 플래쉬 플레이어를 업데이트 하는 것이 가장 손쉬우면서도 가장 효과적인 방법이다. 그러나, 아쉽게도 플래쉬 플레이어는 기본값으로 한 달에 한번씩만 자동 업데이트 되도록 되어 있다. 플래쉬 플레이어가 설치 되어 있다면 다음 경로에서 FlashUtil9f.exe (버전에 따라서 파일명 다름)를 실행하여 안내되는 메시지에 따라서 최신버전으로 업데이트 하도록 한다.


[그림 3] 플래쉬 플레이어 업데이터


출처: 안철수연구소 ASEC리포트 6월호