2012년 8월 16일 목요일

유해 가능 프로그램

2005년 8월 회사 사보를 담당하시는 분으로부터 유해 가능 프로그램에 대한 원고를 부탁 받고 작성했던 글입니다. 그런데 지금와서 찾아보니 사보가 블로그 형태로 바뀌면서 예전에 작성했던 원고를 찾지를 못하겠네요..

오늘 다시 정리를 하면서 읽어보니 어제 본 브레이킹 배드(Breaking Bad)라는 미국 드라마의 큰 줄거리와 원고의 서론 부분이 비슷하네요. 그 드라마는 암 말기 판정을 받은 화학 선생님이 가족의 생계를 위해 알고 있는 화학 지식으로 마약을 제조하면서 벌어지는 에피소드들을 다룬 드라마입니다.

흔히 유해 가능 프로그램은 양날의 검이라고 많이들 이야기 합니다. 좋은 목적으로 쓰면 보안 점검이나 시스템 점검 도구이지만 해킹의 목적을 위해 사용하면 악성코드와 다를 바 없는 프로그램이 되는 것이지요.

특히 침해 사고가 발생한 시스템들을 분석하다 보면 윈도우 시스템에서 패드워드를 덤프(Dump)해내는 툴, 네트워크를 스캐닝하는 중국산 툴 그리고 원격 제어를 위한 툴들과 같이 좋은 목적의 툴들을 악의적인 목적으로 변경한 유해 가능 프로그램들을 한 두개씩 발견하기도 합니다.

재미있는 에피소드로 예전 침해 사고가 발생한 시스템에서 발견한 중국 언더그라운드에서 개발한 네트워크 스캐닝 툴을 엔진에  진단 추가한 적이 있었습니다. 며칠 후 어떤 기업의 보안 담당자님으로부터 왜 보안 검사를 위해 자신이 쓰는 툴을 진단했냐는 항의가 있었습니다. 이러한 에피소드가 양날의 검이라는 표현이 적합함을 보여주는 좋은 사례이겠지요.

결국 어떠한 좋은 프로그램이라도 그 것을 용도에 맞게 잘 쓸려는 사람의 노력과 의지가 필요하다고 생각 됩니다.

+-----------------

악성코드에 관련된 이야기를 하기 전에 필자가 몇 주 전 읽은 뉴스위크의 기사 하나를 먼저 이야기 하고자 한다. 최근 미국 전역에서 문제가 되는 일명 메스라고 불리는 메스라메탐페타민이라는 마약에 대한 기사인데 미 연방 정부의 집계에 의하면 1억 2000만 명이 메스라는 마약을 시도하고 150만 명이 상용 중으로 미국 전역에 광범위하게 퍼져 있다고 한다. 메스라는 마약은 가난한자의 코카인이라고 불리는 것처럼 그 주성분은 일반 약국에서 판매하는 감기약의 주성분 중 하나인 에페드린을 사용하고 있다.
필자가 이 메스라는 마약에 대해서 이야기하는 것은 이 마약 기사를 보고 온라인의 가상 세계에서 펼쳐지는 "악성코드의 세계"와 비슷하다는 생각을 했기 때문이다. 악성코드의 분류 중에서 유해가는 프로그램이라는 형태가 있다. 유해가능 프로그램은 해당 프로그램 자체는 선의의 목적으로 개발되었으나 해킹 또는 악성코드와 같은 악의적인 목적에 사용되는 프로그램들을 통칭한다. 메스라는 마약 제조에 사용되는 에페드린이 감기약을 제조하기 위한 선의의 목적으로 사용되었으나 이를 악의적인 목적으로 마약 제조에 사용되고 있다는 점에서 필자가 말하고자 하는 유해가능 프로그램과 유사하다고 볼 수 있을 것이다.

선의의 목적으로 제작된 프로그램들을 악의적인 목적으로 사용되는 유해가능 프로그램은 구체적으로 어떠한 것인지 알아 보도록 하자. 먼저 유해가능 프로그램에 대해 연구소에서는 다음과 같이 정의하고 있다.

* 유해 가능 프로그램 (Potentially Unwanted Program) 
정상 목적으로도 사용되지만 사용자가 인지하지 못하거나 악용되어 사용자를 불편하게 하거나 해를 끼칠 수 있는 프로그램

이러한 정의를 가지는 유해 가능 프로그램은 다양한 형태와 기능을 가지는 상용 또는 무료 프로그램으로 구성되어 있지만 사용 목적 자체가 원래 제작의 취지에 벗어난다는 점이 기존에 알려진 악성코드와 다르다고 볼 수 있다. 그리고 유해 가능 프로그램 대부분은 자체적인 전파 기능과 감염 활동을 하지는 않는다. 일반적으로 유해 가능 프로그램이 설치되는 경로들을 분석해보면 드로퍼(Dropper)와 같은 다른 악성코드에 의해 설치되는 것이 대부분이며 다른 시스템에 대한 자동화 공격과 시스템 자원의 외부 유출 등에 사용되고 있다. 이러한 방법 외에도 악의적인 해커에 의해 시스템이 직접적으로 해킹을 당한 후 유해가능 프로그램을 설치하여 해킹한 시스템의 재 침입과 시스템 자원의 외부 유출을 시도하는 경우에도 사용되고 있다.

이러한 악의적인 목적에 활용되는 유해 가능 프로그램은 주로 다음과 같은 형태로 나누어 볼 수 있으며 기능적인 측면으로만 본다면 악성코드가 가지고 있는 기능 중의 하나로도 생각해 볼 수 있다.

1) 원격제어 형태
원격제어 형태는 원격지에서 시스템 관리의 목적으로 제작된 정상 프로그램이나 악의적인 목적으로 특정 시스템을 외부에서 사용자 동의 없이 마음대로 조작하는 것에 사용되고 있다.

2) 키로거 형태
키로거는 시스템 모니터링의 용도로 개발된 정상 프로그램이나 이를 악용하여 사용자가 입력하는 키보드 입력값을 중간에서 가로채어 외부에서 사용자가 현재 어떠한 키보드 입력을 하고 있는지 확인하는 프로그램이다. 이로 인해 사용자의 개인정보나 금융 정보 등이 유출될 수도 있다.

3) 파일 전송 형태
파일 전송 형태는 일반적으로 파일의 업로드 및 다운로드를 통한 시스템 관리를 주목적으로 제작된 정상 프로그램이다. 이러한 기능을 악용하여 특정 시스템을 와레즈 서버로 이용한다던가 시스템에 있는 특정 파일들을 사용자 모르게 외부로 유출하는 기능으로 사용되고 있다.

4) 시스템 유틸리티 형태
시스템 유틸리티 형태는 시스템 관리자들이 시스템 관리를 위해서 사용되는 정상 프로그램들이다. 그러나 이를 악용하여 시스템의 취약한 부분을 검색한다던가 시스템에서 실행 중인 보안 프로그램의 강제종료 등에 사용되고 있다.

이러한 다양한 형태의 유해가능 프로그램이 악의적인 목적에 활용되고 있는 가장 큰 이유는 악성코드 제작자 또는 악의적인 해커들이 일반적으로 보안 업체들은 상용 또는 무료로 배포하는 정상 프로그램은 진단하지 않는다 점을 악용한다고 볼 수 있다. 이러한 문제로 정상 프로그램이지만 그 기능에 따라서 악의적인 목적으로 많은 프로그램들이 사용되고 있는 실정이다. 그리고 보안 업체의 입장에서도 유해 가능 프로그램 대부분이 상용 또는 무료로 배포되고 있는 정상 프로그램들이라는 점에서 적절한 대응을 하는데 많은 어려움이 따르게 되는 것이다. 그 원인이 상용 프로그램의 경우에는 악의적인 목적에 사용 되었다고 하여 해당 프로그램을 진단하게 된다면 해당 프로그램 제작사와 보안 업체 간의 법적 공방 등으로 번지는 부작용을 초래할 수도 있기 때문이다. 그러므로 보안 업체의 입장에서는 적절한 대응을 하지 못한다는 점과 상용 프로그램 제작사와의 관계라는 여러가지 어려움들이 발생하게 된다.
이러한 문제로 보안 업체에서는 유해 가능 프로그램이 어떠한 것이라는 것과 제품의 별도 옵션을 통해서 사용자의 선택에 의해서만 진단이 가능하도록 하고 있다. 그리고 유해 가능 프로그램이 진단이 될 경우에는 해당 프로그램이 어떠한 기능을 가지고 있는 프로그램인지 사용자가 충분히 인지하도록 하고 사용자의 선택에 의해서만 삭제 할 수 있도록 하고 있다.

보안 업체에서 유해 가능 프로그램에 대한 대응을 잘 수행하는 것도 중요하지만 컴퓨터 사용자의 보안 의식도 이에 못지 않게 중요하다. 유해 가능 프로그램 자체가 프로그램의 사용자가 선의의 목적으로 사용하는가 아니면 악의적인 목적으로 사용하는가에 따라서 프로그램 자체의 정의가 달라 질 수 있다는 점에서 컴퓨터 사용자의 보안 의식이 특히나 중요하다고 볼 수 있다. 유해 가능 프로그램에 대한 대비를 하기 위해서는 다음과 같은 주의 사항을 참고하는 것이 좋을 법하다. 그러나 유해 가능 프로그램이라고 하여 컴퓨터 사용자가 준수해야 할 보안 수칙이 특별한 것은 아니며 일반적인 악성코드에 대한 대비를 하는 것과 비슷하다고 이해를 하면 좋을 것 같다.

1) 사용하는 시스템에 백신 및 개인용 방화벽과 같은 보안 프로그램을 설치하고 항상 최신 엔진으로 업데이트하도록 한다.

2) 사용하는 윈도우 시스템에 보안 패치를 설치하여 유해가능 프로그램이 이용할 가능성이 있는 윈도우 취약점을 없애도록 한다.

3) 사용하는 시스템의 사용자 계정에 비밀번호 설정하고 비밀번호는 다른 사람들이 쉽게 생각할 수 없는 것을 설정하도록 한다.

4) 인터넷 또는 메일에 첨부된 확인되지 않은 파일을 다운로드 하여 실행 할 경우에는 최신 엔진으로 업데이트한 백신으로 검사하도록 한다.

위 와 같은 보안 수칙은 앞서 서술한 바와 같이 유해 가능 프로그램 뿐만 아니라 악성코드 감염에 대한 대비를 할 수 있는 것이므로 개인 컴퓨터 사용자라면 반듯이 지키는 것이 좋다.

아무리 좋은 프로그램이라도 그것을 사용하는 사람이 어떠한 목적으로 해당 프로그램을 사용하는가에 따라서 독이 될 수도 있고 약이 될 수도 있다. 이러한 독을 제조하지 않는 것이 가장 중요하지만 그것이 어렵다면 독을 해독할 수 있는 약에 대한 지식을 충분히 가지고 있어야지만 피해를 입지 않고 예방 할 수 있을 것이다. 이제 글 서문에서 필지가 이야기한 메스라는 마약에서 사용되는 감기약의 주성분 중 하나인 에페드린과 유해 가능 프로그램이 어떠한 공통점이 있는지 모두들 공감할 수 있으리라 본다.
예전 대학 시절, 맹자의 성선설(性善說)과 순자의 성악설(性惡說) 중 과연 인간은 어디에 더 가까운 것인지 열띤 토론을 했던 기억을 마지막으로 본 글을 마무리 하고자 한다.

댓글 없음:

댓글 쓰기