악성코드에 대하여 알면 위험으로부터 벗어날 수 있다

Posted at 2009/06/26 03:18 // in Malware // by 엔신
많은 사람들이 쉽게 악성코드(바이러스)에 쉽게 감염되기도 하고, 혹시나 감염이 되지 않았을까 걱정하기도 합니다. 이러한 피해와 두려움은 악성코드에 대한 무지로 인해 발생한다고 생각합니다. 그러므로 적을 알고 나를 알면 백전 백승이라고 하였듯이 악성코드에 대하여 알게 되면, 어떻게 하면 악성코드에 최대한 감염되지 않게 할 수 있고, 감염시 대처 방안을 간구할 수 있을 것이라고 생각합니다..그래서 혹시나, 제가 알고 있는 얕은 지식으로라도 도움이 될 수 있을지도 모른다는 생각에 한번 적어봅니다.

일단 악성코드에 대하여 설명해보겠습니다.

악성코드라는 말 그대로 악한 성질을 가지고 있는 코드(정확히는 악한 성질을 갖고 있는 프로그램이 되겠습니다.)입니다. 이러한 악성코드는 총체적인 단어로 사용이 되며, 세부적으로는 바이러스, 트로이목마, 웜바이러스, 애드웨어, 랜섬웨어 등이 존재합니다.


랜섬웨어란 몸값을 요구하는 프로그램입니다. 갑자기 이상한 소리하니 잘 이해가 안가시죠? 이 계열의 프로그램이 컴퓨터에 깔리게 되면 컴퓨터에 암호를 걸고 사용하지 못하게 한다거나, 특정 사이트나 메신져에 접속하지 못하게 하기도 합니다. 그렇게 한 후 대표적으로 팝업 사이트를 띄워 특정 사이트를 이용하거나 컴퓨터를 사용하고 싶으면, 어디로 돈을 보내라는 식의 요구를 합니다. 최근에는 가짜 백신으로 둔갑하여 허위로 컴퓨터에 바이러스가 감염이 되었으니 치료하고 싶다면 일정 금액을 결제하고 치료버튼을 누르라는 식으로 교묘해지고 있습니다. 그러나 실제로는 컴퓨터에 바이러스가 감염되지 않은 경우이겠지요. 그러므로 바이러스를 치료해준다거나, 애드웨어, 또는 악성코드를 제거해준다는 프로그램을 설치하고 사용하실 때에는 널리 사용되고 있는 제품을 사용하고, 또 다른 내용으로는 웹사이트를 서핑하다 액티브엑스 형식(은행 사이트에 들어가실때 프로그램 설치하라고 나오는 것 처럼)으로 프로그램을 설치하겠느냐고 나오는 것들에 대하여 내가 정말 필요한 프로그램인가 신중히 생각해보시고 결정하시길 바랍니다. 또는 정상적인 사이트인 경우에도 스폰서 제의를 통해 전혀 사이트 이용에 관련 없는 필요하지 않은 프로그램을 설치하라고 하는 경우도 있으니 대충 넘기셔서 설치하지 마시고 확인하고 설치하시기 바랍니다.


두 번째로 애드웨어가 있습니다. 애드웨어는 말 그대로 광고 프로그램입니다. 보통 때 처럼 컴퓨터를 사용하여 웹서핑을 하고 있는데 갑자기 광고 창이 뜨는 경우, 잘 웹서핑을 하고 있는 도중 갑자기 페이지가 바뀌면서 광고 페이지로 넘어가는 경우 애드웨어에 해당하는 프로그램이 설치되어 일정 시간 단위로 강제적으로 해당 사이트를 띄우거나 변경되도록 하는 경우라고 볼 수 있습니다.
이런 경우에 악성코드 제거 프로그램을 이용하여 고치는 경우가 다수입니다. 그래도 고쳐지지 않는 경우도 존재하는데, 이럴 때에는 제어판->프로그램추가/제거 메뉴로 가셔서 본인께서 사용하지 않는 프로그램이나 설치한 적이 없는 것 같은데 설치되어 있는 프로그램을 구분하셔서 제거하여 주시는 것이 좋습니다. 또한 액티브엑스로 설치가 된 경우에는 인터넷 익스플로러에서 제거를 해주셔야 합니다. 방법에 대하여서는 잘 모르실 듯 하여 프로그램을 이용할 수 있게 추천해드리겠습니다.

대표적으로 국가정보원에서 제작하여 배포하는 CleanAX라는 프로그램이 있습니다. 해당 프로그램은 일정 기간 사용하지 않은 액티브엑스를 삭제할 수 있습니다. 그러나 기간에 따른 자동 삭제 프로그램으로 세밀하지 못한 단점이 있기도 하지요 ^^ 다운로드는 http://www.ncsc.go.kr/Setup_CleanAX.exe 이나 포털 사이트에서 CleanAX를 검색하면 매우 많이 나옵니다.
두 번째로는 http://www.char.co.kr/ 사이트에서 받을 수 있는 불도저라는 프로그램을 추천합니다. 해당 프로그램은 액티브엑스 뿐만 아니라 설치된 프로그램과 BHO도 선택 삭제가 가능합니다. 액티브엑스에 대하여 뭘 삭제해야될지 모르시겠다면 액티브엑스 전체를 삭제하셔도 됩니다. 액티브엑스의 경우 삭제가 되어도 사용자가 다시 해당 사이트를 접속할 경우 설치가 되어 있지 않은 경우 설치하라고 뜨게 됩니다. 이때 설치하게 되면 예전처럼 정상적으로 이용이 가능해집니다. 그러므로 불필요한 액티브엑스는 제거되고 새롭게 정상적으로 이용되는 액티브엑스만 다시 설치가 되겠지요 ^^


세 번째로 트로이목마란, 정상적인 프로그램(트로이목마)안에 알게 모르게 악한 성질의 기능(트로이목마 안에 숨어있는 병사 정도?)을 감추고 있어서 사용자는 프로그램이 정상적인 기능을 하기 때문에 모를 수 있습니다. 하지만 내부적으로 사용자 모르게 어떠한 일처리를 수행하는 경우입니다. 예를 들면 내부적으로 사용자가 입력하는 비밀번호를 훔쳐서 특정 해커(크래커)의 이메일로 보낸다거나, 시작 프로그램이나 레지스트리에 컴퓨터가 시작될 때 어떠한 프로그램을 실행하도록 하는 것입니다.(트로이목마 뿐만 아니라 바이러스나 모든 악성코드들은 시작 프로그램이나 레지스트리 추가를 통하여 부팅시 프로그램이 자동으로 실행되어지도록 됩니다) 대체로 트로이 목마에는 백도어(Backdoor)라고 해서 해커(크래커)가 사용자의 컴퓨터에 접속할 수 있도록 사용자 모르게 뒷문을 열어두는 기능을 갖고 있어 해커로 하여금 사용자의 컴퓨터에 접속하여 마음껏 제어할 수 있게 하기도 합니다.

대체적으로 프로그램을 불법으로 사용할 수 있게하는 프로그램 등록번호 생성기(키젠), 프로그램 등록 패치에 숨겨져서 배포되는 경우가 대다수 입니다. 이러한 기능을 주로 수행하기 때문에 대부분의 키젠을 백신에서는 트로이목마로 진단하기도 합니다. 그러므로 불법 프로그램 사용하는 것은 사용자 컴퓨터에 위험을 초례하는 길이겠지요 ^^


네 번째로 바이러스입니다. 일반적으로 많이 접하는 단어이지만 정확히 무엇인지는 잘 모르실 것입니다. 바이러스란 정상적인 파일의 일부를 변형시켜 악성 기능을 삽입하거나, 변형을 가하여 정상적으로 작동하지 못하고, 또한 그러한 악성행동을 다른 컴퓨터나 다른 파일에도 감염시키는 행위(자기복제)를 하여 다른 시스템에 바이러스를 전파하는 프로그램입니다.

설명이 조금 어렵지요? 쉽게 이야기하면, 정상적으로 작동하는 파일이 있는데, 그 파일에 변형을 가하여 사용자 모르게 나쁜 짓을 한다거나, 사용자가 프로그램을 실행시켜야 하는데 있어서 필요한 파일에 변형을 가하여 정상적으로 프로그램이 실행되지 못하게 하는 것입니다. 또한 다른 파일이나 컴퓨터에 똑같은 변형이나 악성기능을 삽입하는 전파기능을 갖고 있습니다.

그 대상이 되는 파일이 주로 윈도우와 관련된 파일인 경우가 많아서 바이러스에 걸릴 경우 컴퓨터에 오류가 많이 발생하게 되는 것입니다.

감염이 되는 주로 이용되는 방법은 인터넷에 정상적인 파일인 것처럼 위장하여 올려지고, 사용자는 그 것을 받아 실행하게 됩니다. 이럴 경우 감염이 이루어지게 되는 것이지요. 그러니 확인되지 않은 프로그램을 함부로 실행하면 안되겠지요? 최근에는 프로그램뿐만 아니라, 워드파일, 엑셀파일,PDF파일, 플래시동영상파일, scr(스크린세이버)파일을 실행시킬 때 감염되는 형태를 띄기도 합니다. 그러므로 MS오피스를 사용하시는 분들은 보안 업데이트를 반드시 최신으로 해주시기 바랍니다. 또한 PDF에 사용되는 아크로벳리더나 플래시플레이어도  마찬가지로 되도록 최신 버전을 사용하여 주시기 바랍니다. 하나 추가로 알려드리면, 무조건 최신이라고 안전한 것은 아닙니다. 하시만 그래도 최신을 사용할 경우 이전에 도사리던 위험은 제거됐을 확율이 높겠지요.(원래는 프로그램마다 보안패치라고 하여 새롭게 업데이트 되는 경우가 있습니다. 이럴 경우에는 반드시 업데이트를 해주셔야 하는 것이 좋습니다.)


다섯 번째로 웜 바이러스라는 것이 있습니다. 위 내용의 바이러스과 유사한 기능을 합니다. 파일을 변형하여 사용하지 못하게 하거나 악성 기능을 삽입하지요. 다만 감염 경로가 다릅니다. 파일을 통한 감염보다는 네트워크를 통해서 감염이 됩니다. 예를 들면 학교나 피시방 같은 경우에는 한 교실에 수십대의 컴퓨터가 존재합니다. 이러한 경우 하나의 네트워크를 구성하게 되는 것이지요. 이 경우 네트워크를 통하여 자신과 같은 네트워크에 다른 컴퓨터가 존재하는지 네트워크로 데이터를 보내고, 바이러스에 감염이 될 수 있는 취약한 시스템(운영체제)인지 확인합니다. 취약한 시스템인 경우에는 바이러스에 감염이 되겠지요. 그래서 보통 학교같은 곳에서는 한대의 컴퓨터에 웜 바이러스가 걸린 경우 해당 학교의 모든 컴퓨터가 바이러스에 걸리기 쉽상입니다. 또한 한대한대 치료하여도, 다른 감염된 컴퓨터가 치료한 컴퓨터에 또 네트워크로 바이러스 데이터를 보내게 됩니다. 그러면 한대 치료하고 다른 한대 고치면, 이전에 치료했던 컴퓨터가 또 감염이 되어 있지요. 그래서 고쳐도 고쳐도 바이러스에 걸리니까 사람들은 포맷을 하지 않는 이상 고칠수 없다 라고 말하기도 합니다. 이러한 경우에는 바이러스를 치료하고 난 이후, 반드시 윈도우즈 업데이트를 실행하셔서 업데이트를 하셔야 이후에 감염이 되지 않습니다.웜 바이러스의 경우 네트워크로 대량의 데이터를 보내는 경우가 많이 있기에 컴퓨터가 느려지거나, 인터넷이 느려지는 증상이 많이 발생합니다.

웜 바이러스는 윈도우즈의 취약점을 통해 네트워크로 데이터를 보내기 때문에 윈도우즈의 취약한 부분을 패치하지 않는 이상 지속적으로 바이러스에 감염이 될 수 밖에 없습니다. 그러니 반드시 윈도우즈 업데이트를 하는 습관을 갖기를 추천합니다. 그러나 혹시 내 컴퓨터는 정품이 아니라서 업데이트가 되지 않는다 라고 생각 되실 때에는 한국정보보호진흥원 인터넷침해사고대응지원센터에서 운영하는 보호나라라는 사이트가 있습니다. 그 곳에서는 PC자동보안 업데이트라는 프로그램을 제공합니다. 이는 한국정보보호진흥원에서 제공하는 서버를 통해 보안패치를 하기 때문에 윈도우즈업데이트의 정품 인증이 되어 있지 않더라도 보안 패치를 할 수 있습니다.

http://www.boho.or.kr/index.jsp에 접속하시면 PC자동보안 업데이트 프로그램을 받으실 수 있습니다.


최 근에는 USB 메모리의 사용 빈도가 많아짐에 따라 USB 메모리를 매개체로 감염이 되는 바이러스들이 활개를 치고 있습니다. 다들 USB 메모리 사용 하고 계시죠? USB 메모리 사용에 있어서 몇가지 주의와 설정을 해 놓는다면 안전을 보장할 수 있습니다.
USB 메모리는 자동실행 기능이 있습니다. 시디롬에 CD를 삽입하면 자동으로 설치 화면이 뜨는 경우를 보신적이 있으실 겁니다. 그러한 기능이 USB 메모리도 가능합니다. 이 기능을 악용하여 바이러스가 USB 메모리가 바이러스를 전파하게 됩니다.
한 컴퓨터에 이미 바이러스가 감염이 되었다고 가정하겠습니다. 그 컴퓨터의 바이러스는 USB 메모리가 컴퓨터에 꼽혀질 경우 장치를 인식하여 해당 USB 메모리에 악성 파일을 복사하여 옮겨 놓습니다. 이 경우만 가지고는 사용자가 악성 파일을 실행하기 전까지는 바이러스가 감염이 되었다고 보기 어렵습니다. 하지만 파일을 복사하면서 autorun.inf 파일을 USB 메모리 루트에 생성해 놓습니다. 해당 파일이 USB메모리가 컴퓨터에 꼽힐 때 자동으로 실행될 내용을 담고 있습니다. autorun.inf 파일에는 대체로 USB 메모리에 심어진 악성 파일을 실행하는 명령이 들어 있는 경우가 대다수입니다. 대체로 숨김 파일, 또는 시스템 파일로 위장하기 때문에 모두 보기 옵션을 허용해놓지 않은 경우 눈으로 보이지 않은 경우가 많습니다.

이렇게 autorun.inf와 악성파일이 생긴 USB 메모리를 바이러스가 감염이 되지 않은 다른 컴퓨터에 꼽을 경우 USB 자동 실행 기능을 통하여 해당 컴퓨터에도 바이러스를 실행하여 감염시키게 됩니다. 이런 경로로 감염이 되다 보니, 바이러스에 감염된 USB를 여러 컴퓨터에 꼽게 된다면, 해당 컴퓨터들은 모두 바이러스에 감염이 되고 말겠지요.

윈도우즈 비스타, 윈도우즈XP의 경우 이 자동실행 기능이 기본적으로 enable되어 있습니다. 이 기능을 disable시켜 놓으면 USB 메모리에 바이러스가 심어지더라도, 자동실행 기능을 disable시켜 놓은 운영체제(컴퓨터)에서는 USB를 꼽더라도 자동으로 바이러스를 실행시키지 않으므로 어떠한 바이러스가 감염된 USB를 꼽더라도 어느정도 안전을 보장할 수 있습니다.(어느정도 라는 표현은 이 역시도 우회가 가능하기 때문입니다. 그러나 저는 그 정도로 잘 만들어진 악성코드는 보지 못하였습니다.)
이러한 자동실행을 방지 하는 방법은 프로그램을 이용하는 방법과 윈도우 기본 정책을 바꾸는 방법 등이 존재합니다.

http://2proo.net /entry/USB-%EC%97%B0%EA%B2%B0%EC%8B%9C-%EC%9E%90%EB%8F%99%EC%8B%A4%ED%96 %89-%EC%A4%91%EC%A7%80%ED%95%98%EA%B8%B0에 나와 있는 국정원에서 배포하는 USB 자동 실행 차단 프로그램을 설치하여 자동실행을 막을 수 있으며, http://comlog.kr/79에 나온 것처럼 윈도우즈 기본 정책을 바꿔 USB의 실행을 막을 수 있습니다.


꼼꼼하게 읽으셨다면 악성코드가 무엇인지 알게 되었을 것이라 생각됩니다. 위에서 설명한 종류 말고도 더 다양한 종류의 악성코드들이 존재합니다. 대표적이고 유명한 것들을 설명한 것이니 제한적으로 생각하지 마시고, 또한 최근에는 위처럼 분류하기 어려울 정도로 복합적인 기능을 갖는 경우도 많이 존재합니다.

최 근 동향으로는 게임 비밀번호 스틸(훔치는) 바이러스가 많이 퍼지고 있습니다. 특정 게임을 타겟으로 만들어져서, 감염시 특정 게임 로그인을 하게 되면 아이디와 비밀번호가 이메일이나 다른 방법으로 해커(크래커)에게 전달이 되게 됩니다. 국내보단 중국쪽에서 국내 유저들을 타겟으로 많이 만들어지는 것 같습니다.
또 다른 것은 다운로더라는 것이 있습니다. 감염시 인터넷으로 특정 악성프로그램을 다운로드하여 실행시키게 됩니다. 다운로드한 프로그램은 성인광고창을 일정 시간단위로 띄우거나, DDoS(분산서비스공격) 공격에 좀비PC의 역할을 하는 프로그램이 대표적입니다. 이럴 경우 자기도 모르게 특정 서버를 공격하게 되므로, 인터넷이 느려질 수 있습니다.


추가적으로 백신에 대해서 설명해보겠습니다.

백 신 프로그램에 대표적으로 국산은 우리의 바이러스 체이서 ^^, 그리고 V3, 알약, 엔프로텍트, PC그린, 바이로봇 등이 존재합니다. 해외 제품으로는 노턴안티바이러스, Avast, 카스퍼스키, Avira, NOD32, 비트디펜더, 맥아피, AntiVir 등이 있습니다. 대체적으로 아직까지는 국산 제품보다 해외 제품이 바이러스를 더 많이 진단하는 편이라, 해외 백신을 추천하는 사람들이 많습니다. 저는 그러한 내용에 반대를 하는 입장입니다. 바이러스란 각 나라나 문화에 따라 유행하는 종류가 다릅니다. 국내에서는 최근에 네이트온 바이러스라고 하여 네이트온을 통해 전파되는 바이러스가 유행하기도 하였고, 2090 바이러스라는 것도 유행하였습니다. 그러한 바이러스가 국내에서 유행할 때 해외에서는 conficker 바이러스나 오바마와 관련된 내용이 들어가 있는 바이러스, 트위터 서비스를 통해 감염되는 바이러스 등이 널리 퍼졌었습니다.

이럴 경우 해외 백신의 경우 그 지역에 유행하는 바이러스에 대하여 집중적으로 치료를 할 수 있게 서비스 할 것이고, 국내에서는 국내 환경에 맞게끔 유행하는 바이러스를 치료할 수 있게 서비스 할 것입니다. 만약 해외백신을 사용한다면 이러한 내용에 있어서 국산에서 유행하는 바이러스 치료에 대한 서비스는 국내 백신보다 업데이트가 더딜수 밖에 없습니다. 해외라면 반대의 상황이 되겠지요.

이 렇듯 치료하는 부분이 차이가 발생할 수 있으므로 국내 환경에서는 국내 백신이 오히려 더 잘 맞을 것이라고 저는 개인적으로 판단합니다.(모든 분의 의견은 아니므로 개인적이라고 표현하겠습니다.) 그래서 주변에 컴퓨터에 대하여 잘 모시는 분들이 백신을 무엇을 써야 하느냐고 묻는다면 거리낌 없이 국내 백신을 추천합니다.

물론 사용자분께서 해외 사이트를 많이 접속하고, 국내보단 해외 환경이 중점이라면 그 지역에 대한 서비스가 빠르게 업데이트되는 백신을 사용하는 것이 좋습니다.

그 렇다고 백신만 설치해 놓는다고 컴퓨터가 항상 안전한 것은 아닙니다. 백신은 패턴 위주의 바이러스 검사를 주로 행합니다. 그러므로 새로운 바이러스가 나올 경우 새로운 바이러스에 대한 패턴을 확보하지 못하여 업데이트를 하지 못하였다면, 그 백신은 그 바이러스에 무방비 상태가 되어버립니다. 그래서 백신의 경우 업데이트가 중요한 것입니다. 새로운 바이러스가 나오면 빠르게 업데이트 되어야 그 바이러스에 대하여 대처할 수 있게 되기 때문이죠. 백신의 이러한 패턴 위주의 바이러스 검사는 패턴에 없는 바이러스를 진단하지 못한다는 태생적인 한계 갖고 있습니다. 그러므로 백신을 설치해 놓았다고 절대적으로 안심하지는 마시고, 항상 업데이트하여 최신의 상태를 유지하여야 합니다. 물론 패턴 위주의 바이러스 검사 외에도, 백신에 따라 휴리스틱 기능이 존재하기도 합니다. 휴리스틱 기능을 통해 패턴이 업데이트되지 않아도 바이러스를 잡을 수 있는 경우도 있지만, 오히려 오진을 하는 경우도 많은 편입니다. 그러므로 이부분에 대하여서는 더 자세히 언급하지 않겠습니다.


또한 방화벽 프로그램을 설치하면 무조건 안전하다는 잘못된 상식을 갖고 있는 경우도 있습니다. 방화벽이 바이러스를 막지는 못합니다. 방화벽은 네트워크 패킷이 들어오고 나가고에 대하여 규칙에 따라 승인하고 또는 거부합니다. 일반 사용자의 경우 방화벽을 설치하여도 규칙에 대하여 잘 모르기 때문에 무용지물이나 마찬가지라고 생각이 됩니다. 또한 윈도우즈 자체의 윈도우즈 방화벽의 효능을 무시하는 경우를 많이 보아 왔습니다. 하지만 윈도우즈 방화벽만으로도 충분히 개인 사용자 입장에서는 그 역할을 톡톡치 합니다. 그러므로 윈도우즈 방화벽 사용을 추천합니다.

윈도우즈 방화벽을 사용할 경우 특정 프로그램이 네트워크 패킷을 외부로 보내기 이전에 그 것을 허용할 것인지 말지 선택할 수 있는 팝업창을 띄웁니다. 이 경우 정상적인 프로그램의 경우도 모두 해당되기 때문에 번거로울 수 있지만, 정상적인 프로그램의 경우 한번 승인해 놓으면 그 이후에는 선택하여도 되지 않으므로 규칙이 생성된 경우에 해당하여 이후에는 지속적으로 허용이 되어집니다. 만일 악성코드 프로그램이 외부로 데이터를 보낼려고 할 경우에도 방화벽은 허용 여부를 사용자에게 묻게 됩니다. 이 때 사용자는 팝업창을 통해 사용자가 원하는 정상적인 프로그램이 아닐 경우 거부를 하여 악성코드가 외부와 접속하는 것을 막을 수 있습니다. 물론 이후에 제어판의 방화벽 설정에서 이전에 선택한 내용에 대하여 변경이 가능합니다.

이렇게 보듯 방화벽은 사용자의 선택에 따라 역할을 극명하게 다르게 나타냅니다. 사용자의 판단이 제일 중요하겠지요. ^^


이렇게 악성코드에 대하여 알아 보았습니다. 원래에는 제가 활동하는 모 카페에 적었던 글이지만, 제 블로그에도 적어 더 많은 분들에게 도움이 될 수 있었으면 합니다.
작성 당시의 생각보다 장문의 글이 되면서, 안그래도 없는 글 재주로 인하여 말이 매끄럽지 못한 점 양해 바랍니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/06/26 03:18 2009/06/26 03:18

Zero Wine Malware Analysis Tool

Posted at 2009/04/05 17:57 // in Malware // by 엔신

악성코드를 분석하기 위해 무작정 Debugger를 사용하여 리버싱하는 행동은 오히려 분석을 비효율적으로 만들어 상당한 시간을 소요하게 할 수 있다. 또한 간단하게 어떠한 악의적인 행동을 하는지 분석하고자 할 때 효율적이지 못하다.

최근에는 자동화 툴을 이용하여 어느 정도 행동 패턴을 파악할 수 있는 툴이 존재하며 예를 들면 SysAnalyzer 같은 툴이 존재한다. 본인도 SysAnalyzer를 사용하여 간단하게 행동 패턴을 분석하고 난 다음 상세한 분석을 시도하는 편이다.

해외 사이트를 웹서핑하다가 Zerowine이라는 툴을 알게 되었고, 한번쯤 사용해봐야겠다고 마음먹고 있었는데, 생각보다 새로운 것을 접하는 행동은 번거로움이 따르는 일이라 지금에 이르러서야 사용해 볼 수 있었다.

관련 정보를 찾아 본 결과 Debian 기반의 자동 악성코드 분석 툴이라는 정보를 확인했고, QEMU나 VMware를 사용하여 이용할 수 있다는 것을 알 수 있었다.

QEMU가 무엇인지 확인하여 보았더니 VMware와 같은 가상 머신 소프트웨어라고 한다. 그러나 GUI 인터페이스를 지원하지 않고 성능이 VMware보다 우수하지 못하여 최근에는 많이 외면(?)받는다고 한다.

처음에는 QEMU로 Zerowine을 에뮬레이트할려고 했는데 QEMU를 윈도우용으로 받아서 해서 그런지 몇 가지 오류가 발생해서 그냥 VMware로 사용해보았다.

qemu-img.exe convert c:\zerowine_vm\zerowine.img -O vmdk c:\zerowine_vm\zerowine.vmdk


위와 같은 QEMU의 컨버트 기능으로 zerowine.img 파일을 zerowine.vmdk으로 컨버팅 시켰다.

Vmware용 이미지로 만들었으므로 VMware에서 새로운 가상 머신을 추가하여야 한다. 데비안 기반이므로 Linux를 선택하고 커널 버전 정보를 2.6.x kernel로 선택한다.

이것저것 설정하면서 메모리는 256정도로 설정하고 네트워크는 NAT로 설정한다. 그러나 악성코드 분석 시에는 NAT로 할지 Host Only로 할지 상당히 잘 선택하여야 한다. 본인은 NAT로 설정하였지만 NAT로 설정하여 동일 네트워크에 악성코드를 감염 전파시키는 경우가 발생할 수 있으므로 선택에 신중을 기하길 바란다.

디스크와 관련된 부분에서는 새로운 가상 디스크를 만들 필요가 없다. Zerowine를 VMware 이미지로 만들어 놓은 것이 있으므로 기존에 만들어놓은 것을 사용하면 된다.

계속 Next를 하다 보면 최종에서 VMware 버전에 따라 컨버팅할 것인지 그냥 쓸 것인지 선택하는 메뉴가 나올 수 있지만 그냥 사용하여도 무관하므로 그냥 사용하는 것을 선택하면 된다.

새로운 가상머신 추가가 완료되면 자동으로 리눅스 부팅이 되며 정상적으로 부팅 되면 로그인하여야 하는데 로그인 계정은 root이며 비밀번호는 zerowine을 입력하면 로그인 할 수 있다.

악성코드를 분석을 하고자 하는 사람이라면 리눅스를 사용해 본 사람일 것으로 판단이 된다.

Ifconfig 명령을 사용하여 이더넷 어댑터(랜카드)가 잡혔는지 확인한다. 정상적으로 잡히고 ping과 같은 명령을 사용하여 외부와 연결 테스트를 확인하여 정상적이라면 NAT 설정을 통하여 자동으로 인터넷을 잡은 것이다.

본인의 경우는 VMware의 DHCP 기능을 꺼놓고 사용하기 때문에 ifconfig 명령을 사용하였더니 lo 라는 loopback 장치만 확인이 가능하였다.

eth0에 ip를 설정하였으나 장비가 없다고 한다. 바로 eth1에 설정하였으니 정상적으로 설정이 되었다. route 명령어를 사용하여 외부와의 통신을 허용할지 말지는 위에서 언급하였듯이 본인에게 달려있는데 필자는 통신을 허용하기로 하였다.

route add default gw 192.168.8.2


이제 네트워크 설정이 완료되었다.

Zerowine의 경우 Web을 통하여 악성코드를 업로드하고 결과를 확인이 가능하다. 8000번 포트를 사용하여 웹으로 접근이 가능하게 만들어져 있다. 그러므로 웹브라우저를 이용하여 http://192.168.8.100:8000/에 접속하였더니 아래와 같은 페이지가 뜬다.

파일을 업로드 할 수 있고 Analyze memory 옵션도 제공하고 있다.

위와 같은 검색 결과를 보여주며 Analyze Memory 옵션을 선택하게 되면 위와 같이 메모리 상에 올라간 데이터를 dump할 수도 있다.

Report 메뉴를 누르면 위와 같이 정보가 나오게 되고 다시 Report 메뉴를 누르면 해당 정보가 사라지게 된다.

Strings 메뉴를 선택하였을 때의 모습이다.

File Header 메뉴를 선택했을 때의 모습이다. PE 구조를 기반으로 정보가 나오게 되고 Import 되는 함수를 확인할 수 있다.

Signature 메뉴를 선택했을 때이다. 테스트에 사용된 악성코드의 경우 시그너쳐 정보로 "___b0th____" 라는 뮤텍스를 생성한 정보에 대하여 확인이 가능하다.

python 기반으로 제작된 것으로 보이며 가상 머신이므로 시스템에 감염될 염려가 없으므로 안전하다는 점을 장점으로 볼 수 있지만 언제나 그렇듯 자동화 툴 만으로는 부족한 부분을 경험하게 되므로 전적으로 신뢰하지 말고 참조하는 용도로 사용하면 적당한 툴로 보인다.

Zerowine :
http://sourceforge.net/projects/zerowine

QEMU :
http://www.nongnu.org/qemu/

참고사이트:
http://zenfosec.blogspot.com/2009/01/automated-malware-analysis-with.html
http://space.zdnet.com.cn/html/72/313972-2779965.html

이올린에 북마크하기
2009/04/05 17:57 2009/04/05 17:57

악성코드 정의

Posted at 2009/03/14 00:29 // in Malware // by 엔신
바이러스(VIRUS) 정의
바이러스(Virus)란 정상 파일의 일부를 변형시켜 여기에 자기 자신 또는 자신의 변형을 복사하여 유해한 작동을 하는 악성프로그램이다. 바이러스에 감염되면 파일 변형, 시스템 오류, 작동 불능 등을 일으킬 수 있다. 바이러스는 자기복제를 통해 파일을 감염시키는 특징이 있다. 주로 이메일, 파일다운로드, 액티브X 컨트롤을 통해서 감염 된다.

웜(WORM) 정의
웜(Worm)이란, 네트워크 상에 연결되어 있는 특정한 컴퓨터에서 다른 컴퓨터로 스스로 알아서 확산 되도록 특별하게 설계된 프로그램이다. 바이러스와 달리 파일을 감염시키는 것이 아니라 실행코드 자체로 번식하여 주로 PC 상에서 실행되는 것이 대부분이다. 이메일, 보안취약점, 공유폴더에 의해 감염된다.

트로이(Trojan) 정의
트로이목마(Trojan Horse)는 외견상으로는 정상적인 프로그램이나 실질적으로는 해커가 숨겨놓은 기능을 수행하는 프로그램을 말한다. 정상적인 프로그램과 번들되어 함께 침투하는 경우가 많다. 은닉된 기능은 가벼운 장난부터 하드디스크 포맷, 백도어 오픈, 정보유출(비밀번호,쿠키 등), 쉘 획득 등 다양하다. 자체 전파 감염 기능은 없다.

악성 애드웨어(ADWARE) 정의(스파이웨어도 이쪽에 포함)
강제적인 광고를 사용자 PC에 띄워서 사용자의 불편과 프라이버시 침해를 야기하는 프로그램. 주로 인터넷사이트 홍보 목적으로 배포하며 쇼핑, 포르노, 도박 사이트의 광고페이지를 노출하고 강제 연결시킨다. 정당한 동의를 얻지 아니하거나, 제거가 매우 곤란한 경우, 또는, 사용자의 인터넷 생활을 방해하는 정도가 심각한 경우 등에는 악성 애드웨어로서 제거 대상이 된다.

하이재커(HIJACK) 정의
강제로 특정 사이트로 연결하거나 특정 검색엔진을 사용하게 하는 악성코드
또는 특정 사이트를 거쳐서 정보를 유출한 후 사용자가 원하는 사이트로 이동하기도 함.

//////////////////////////////////////////////////////////////////////
악성코드는 위와 같은 악의적인 목적을 가진 프로그램을 모두 지칭하는 말임.

최근 추세로는 시스템의 파괴가 목적이 아니라 Adware처럼 광고를 띄우거나 시스템을 감염시켜 DDoS 공격의 좀비로 이용된다. 감염자는 별다른 증상이 없으므로 감염된지 모르고 있지만, 실제로는 일정 시간 단위로 Command & Control Server에 접속하여 명령을 하달 받는다. C&C Server에서 특정 사이트를 공격하는 명령이 내려지면 수 많은 감염된 좀비 시스템은 조금씩 특정 사이트로 데이터를 보내거나 접속을 시도하지만, 수백, 수천대의 컴퓨터가 특정 사이트에 동시에 접속하게 되면 해당 사이트는 마비가 되는 DDoS공격이 주류를 이루고 있다.
요약하자면 DDoS 공격와 Adware의 추세로 보아 시스템파괴가 아닌 돈이 되는 목적으로 흐름이 옮겨가고 있다.(이미 옮겨온듯)

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=106&eid=mIkqZ5P9YB7EcPBFmZjYrP+b+YlCdAn0&qb=7JWF7ISx7L2U65OcIOuwlOydtOufrOyKpCDtirjroZzsnbQg7Juc&enc=utf8&pid=fkLyWloi5T0sstOvdGZsss--273784&sid=SbNxeT5fs0kAAFug7e8

이올린에 북마크하기
2009/03/14 00:29 2009/03/14 00:29

[Trojan] Tigger/Syzor.A

Posted at 2009/03/13 13:47 // in Malware // by 엔신
해외 사이트를 통해 참고한 바 주요 기능으로는 아래와 같다.
-    Windows Defender, Windows Firewall, Outpost, Avira, Kaspersky, AVG, and CA사 제품의 사용을 disables한다
-    안전모드 상태에서 루트킷을 설치하고, kernel debugger를 disables한다.
-    Keylog와 system 정보, 스크린샷, Com hook를 통한 brower envet를 훔치고, 비밀번호와 웹 쿠키, 인증서를 훔치게 된다.
-    Promiscuous 모드로 FTP와 POP3 비밀번호를 스니핑하게 된다.

그러나 실제로 Windows Firewall은 disable되지는 않았다. 백신과 관련된 함수 부분에서는 Windows Firewall과 관련된 부분을 찾지 못하였다.(잘못된 분석으로 판단됨. 혹은 내가 못 찾은건지도)

추가적으로 아래 프로세스가 실행중이라면 종료시켜 버린다.
# Firefox.exe
# IEXPLORE.EXE
# SHELLPRO.EXE
# STOCKS.EXE
# WAOL.EXE

트로이목마답게 자체 전파기능을 가지고 있지는 않다.
C:\Documents and Settings\Administrator\Local Settings\Temp
C:\WINDOWS\system32\drivers
temp 경로에는 6KB의 7~8자리의 랜덤한 숫자 파일명으로된 exe파일을 생성하고
drivers 경로에는 78KB의 11자리의 랜덤한 문자 파일명으로된 sys파일을 생성하게 된다.

한글 윈도우에서는 services.exe 파일 오류가 발생하며 운영체제가 정상적으로 작동하지 않게 된다.
좀 더 확인이 필요하겠지만 영문윈도우에서는 services.exe 오류가 나타나지 않았다는 사람이 있으므로
영문 윈도우나 비스타를 대상으로한(Windows Defender 검사로 추측) 악성코드인듯 싶기도 하다.

사용자 삽입 이미지

해외 사이트에서도 밝히고 있듯이 굉장히 정교하게 만들어졌다고 한다.
내가 봐도 정교한듯.....난 잘 모르지만
세세하게 temp 경로에 생성된 exe파일의 경우 Mircosoft Coporation과 버전에 대한 파일정보가 들어가 있었다. 하나 특이사항은 언어가 러시아어로 되어 있다는 점....
2008 11월에 처음 발견되었다고 한다. 국내보다는 해외쪽에서 유명세를 떨치고 있는듯...
현재 분석 해보는 중이나 실력이 미비하여 완료할 수 있을지 모르겠다.
V3-Lite에서는 두번째 샘플 채취한것에서 언패킹하고 나온 UPX를 다시 언패킹해서 나온 오리지날 파일은 진단하지 못하였다.(알약은 진단)
검사 결과항목에서 보면 V3와 nProtect가 진단을 하지 못한 걸로 나와 있고,
DrWeb은 모든 파일을 다 진단하지 못한다고 나와 있었다.
아무래도 바이러스 체이서가 DrWeb 엔진이므로 Tigger 자체를 진단하지 못하는 것으로 판단이 된다.


가장 먼저 수집한 샘플 파일 malware.exe의 검사 결과
http://www.virustotal.com/ko/analisis/9793aa8627174c2f45355888904d2b09

해당 파일을 unpacking하였더니 나온 UPX로 된 파일을 다시 unpacking하여 나온 오리지날 파일 검사 결과
http://www.virustotal.com/ko/analisis/59cee3e592a54b8d674293f0cb7a1207

악성코드 감염시 생기는 랜덤숫자 7~8자리 .exe파일 검사 결과
http://www.virustotal.com/ko/analisis/741c9a62ecfd03e0a51f015472b78882

악성코드 감염시 생기는 랜덤파일명.sys 파일 검사 결과
http://www.virustotal.com/ko/analisis/9eb011afa6cb3f6758752abb40358f5a

추가.
HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed
Type: REG_BINARY, Length: 80, Data: 69 E7 B5 B6 94 CF 1A 4E 6F 3A 19 B3 81 DD 5C 83
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\tdss
Type: REG_SZ, Length: 92, Data: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\3288828.exej
HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Type: REG_MULTI_SZ, Length: 92, Data: \??\C:\WINDOWS\system32\drivers\ws2ifsl.sys,
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Services\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\System\CurrentControlSet\Control\SafeBoot\Network\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\SYSTEM\ControlSet002\Services\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\SYSTEM\ControlSet002\Services\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Services\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Services\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Minimal\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Minimal\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Network\fhbsfczjhop.sys\ImagePath
Type: REG_EXPAND_SZ, Length: 96, Data: \??\C:\WINDOWS\system32\drivers\fhbsfczjhop.sys
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Network\fhbsfczjhop.sys\Type
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Network\fhbsfczjhop.sys\Start
Type: REG_DWORD, Length: 4, Data: 2
HKLM\SYSTEM\ControlSet002\Control\SafeBoot\Network\fhbsfczjhop.sys\ErrorControl
Type: REG_DWORD, Length: 4, Data: 0
HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Type: REG_MULTI_SZ, Length: 188, Data: \??\C:\WINDOWS\system32\drivers\ws2ifsl.sys, , \??\C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\3294765,

요약을 하게 되면,
레지에 tdss를 등록하여 3288828.exe가 실행되도록 하고
fhbsfczjhop.sys 파일을 서비스에 등록하여서 안전모드(최소모드,네트워크모드)로 부팅하여도 작동되게끔 만든다.
또한 현재 사용중인 C:\WINDOWS\system32\drivers\ws2ifsl.sys 파일을 재부팅시에
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\3294765 이 파일로 변경한다.
PendingFileRenameOperations 값은 보통 파일 이름을 바꾸거나 삭제하는 것으로 알고 있는데
여기서는 3294765 파일이 생성이 되고 위와 같이 나오는 것으로 보아 파일 자체를 교체하는 것으로 예상이 됨.
3294765 파일은 UPX를 언패킹한 파일 그 자체임...

사용된 파일명은 랜덤한 값이므로 그때그때 다름


이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/03/13 13:47 2009/03/13 13:47

BlackEnergy_DDoS_Bot_분석

Posted at 2009/02/25 01:31 // in Malware // by 엔신
처음으로 분석한 악성코드입니다.
미비한 실력으로 잘못 분석된 부분이 있을 수 있습니다.
잘못된 부분은 알려주시고, 필요한 분이 계실지 모르지만 도움 되셨으면 합니다.

이올린에 북마크하기
2009/02/25 01:31 2009/02/25 01:31