바이러스 백신과 악성코드의 몇가지 오해
* 백신, 설치만으로는 악성코드로부터 해방될 수 없다.
백신의 가장 큰 한계는 해당 백신이 처리할 수 있는 악성코드만 진단, 퇴치가 가능한 점이다. 사용자가 백신 프로그램을 설치한 후에도 신종 악성코드는 계속 제작되고 발견된다. 그러므로 엔진을 계속 업데이트 해주어야 한다. 백신 제작사들은 신종 바이러스의 진단/치료 기능이 추가될 때마다 이에 대한 정보를 업데이트해 고객들에게 제공한다
또한 백신 프로그램이 시스템에 설치돼 있다고 해서 모든 악성코드를 검사/치료할 수 있는 것은 아니다. 일부 사용자는 엔진 업데이트를 하면 자동으로 악성코드를 진단하는 것으로 착각하기도 하는데, 최신 엔진을 사용하더라도 시스템 감시와 같은 기능을 사용하지 않으면 실행되는 악성코드를 실시간으로 막을 수 없다.
최신 엔진을 사용해도 진단되지 않는 신종 악성코드에 감염 위험은 있지만 최선의 예방책은 지속적으로 엔진을 업데이트해주고 시스템 감시 기능을 사용하는 것이다.
* 시스템 감시 기능은 악성 코드의 접근을 차단하는 것이지, 네트워크를 통한 악성코드의 공격을 예방하는 것은 아니다.
백신은 기본적으로 기억장소에서 실행중인 프로그램이나 파일의 악성코드 감염 여부를 검사한다. 대부분의 백신이 파일 종류를 파악해 파일의 특정 영역 내용을 검사하기 때문에, 파일이 완전하지 않다면 진단하지 못하는 경우가 많다.
백신의 시스템 감시 기능은 사용자가 접근하는 파일의 감염 여부를 검사해 사전에 사용자가 감염된 파일에 접근하는 것을 차단해준다. 이런 특징으로 인해 악성코드에 감염된 파일을 다른 컴퓨터의 공유 폴더를 이용하여 파일을 복사할 때, 파일을 받는 컴퓨터쪽 백신의 시스템 감시 기능은 파일이 전송되는 중간에 파일을 검사하지 않고 파일이 모두 복사되고 파일이 닫히는 시점에서 파일을 검사/진단하여 악성코드 유무를 사용자에게 알려준다.
이렇게 백신이 악성코드 감염여부를 검사하는 시점이 파일에 대한 모든 작업이 완료된 후이다 보니, 사용자는 현재 사용하는 백신의 문제로 악성코드의 감염을 차단하지 못했다고 오해할 수 있는 것이다. 또한 이러한 이유로 현재 네트워크을 통해 전달되는 내용의 안전성을 백신에서 검사하지 못하는데, 이것은 인터넷으로 파일을 다운로드 받을 때도 마찬가지다. 인터넷으로 파일을 모두 다운로드 받은 후에 악성 코드 감염 여부를 확인할 수 있기 때문이다.
그리고 시스템 감시 기능은 악성코드가 실행하는 파일 삭제와 정상적인 파일 삭제를 구별할 수 없다. 예를 들어 I-Worm/ExploreZip는 확장자가 DOC, XLS, PPT 등의 파일을 공유폴더에서 찾아 파일을 삭제하는 특징적인 증상을 가지고 있다. 공유된 시스템의 시스템 감시 기능은 웜 자체가 복사되지 않고 파일 삭제 명령만 네트워크로 전달되므로, 백신이 파일 삭제 자체를 막지는 못하는 것이다.
이러한 문제를 해결하기 위해서는 백신과 함께 침입탐지 프로그램 등이 함께 사용되어야 한다. 단, 이럴 경우 네트워크의 속도가 저하될 수 있다는 것은 염두에 두어야 한다.
* 악성코드에 계속 재감염되는 것이 꼭 백신의 문제는 아니다.
동일한 악성코드에 재감염될 때 흔히 자신이 사용하는 백신에 문제가 있는 게 아닌가 생각하는 경향이 있다. 물론, 백신이 특정 악성코드를 놓치는 경우도 있지만, 그런 경우보다는 다음과 같은 경우가 대부분이다.
가) 공유 폴더
공유 폴더는 일종의 시스템 폴더로, 여러 사용자가 공동으로 사용할 수 있다는 점에서 매우편리한 기능이다. 하지만, 공유 폴더가 바이러스나 웜의 전파에 있어서도 이러한 편리성의 동일하게 제공한다는 데 문제가 있다. 자신의 시스템에서 바이러스나 웜을 모두 진단/치료 했을 경우라도 공유 폴더를 사용하고 있다면, 다른 사람이 다시 해당 폴더의 파일을 감염시키거나 웜 파일을 생성시킬 수 있다. 즉, 아무리 자신의 컴퓨터를 잘 관리한다 하더라도, 공유 폴더를 잘못 사용하면 언제라도 악성코드에 노출될 수 있다는 것이다.
바이러스 백신은 외부로부터의 파일 복사나 감염 시도 자체를 막지 못하고, 파일 복사 후 혹은 바이러스 감염 후 사용자에게 이를 알려준다. 물론, 백신의 실시간 감시가 실행되어 있다면 사용자가 악성코드를 실행하기 전에 경고해 주지만, 이 또한 감염 후의 경고일 뿐 감염 자체를 막는 것은 아니다.
나) 보안 패치 미적용
최근 대부분의 시스템이 네트워크로 연결되면서 보안상 취약성을 이용해 전파되는 웜이나 바이러스가 많이 등장하고 있다. 특히 보안상 취약성은 해커들이 해킹을 시도할 때도 많이 사용된다. 백신은 네트워크로 주고받는 내용 자체를 검사하는 것이 아니므로 공격 자체를 막지 못한다.
따라서 웜이 생성되거나 바이러스에 감염된 후의 파일에서 감염 사실을 진단하므로 지속적으로 재감염될 수 있는 것이다. 이러한 공격을 원천적으로 차단하려면 보안 패치를 반드시 적용하고, 침입탐지 제품 등을 사용하는 것이 좋다.
* 백신은 정상적인 파일을 오진할 수 있다.
백신도 정상적인 파일을 악성코드로 진단하는 경우가 발생한다. 일반적으로 백신은 검사하는 파일에서 악성코드로 의심되는 코드를 사용해 진단하는데, 검사하는 파일과 백신에서 정의한 악성코드 내용이 동일할 경우, 이를 악성코드로 오진할 수 있다. 최근 휴리스틱(Heuristic) 진단 기능으로 알려지지 않은 악성코드를 진단하는 제품들이 많이 있지만, 이러한 이유로 정상적인 파일을 악성코드로 진단할 가능성이 높은 것이다.
* 제품마다 악성코드 분류가 다르기 때문에 진단하지 않는 샘플이 존재할 수 있다.
바이러스 백신은 제작하는 회사의 제품 정책에 따라 악성코드의 분류가 다를 수 있다. 실제 백오리피스와 같은 원격제어 프로그램이 처음 선보였을 때, 백신 업체의 전통적인 트로이목마 정의와는 다소 달랐기 때문에 일부 업체는 백신은 바이러스만 진단/치료하는 제품으로 여겨 한동안 백오리피스를 진단하지 않기도 했었다.
최근 대부분의 백신은 백오리피스와 같은 백도어를 악성코드로 분류하고 진단한다. 다만, 회사의 제품 정책에 따라 조크(Joke) 프로그램이나 해킹 툴을 진단하지 않을 수도 있다. 조크 프로그램은 사용자에게 해가 없지만 마치 악성코드로 오해하는 행동을 하는 프로그램이다.
사용자에게 직접적인 해를 입히지 않지만 악성코드로 오해해 컴퓨터 전원을 꺼버리는 등의 예기치 않은 행동을 할 수 있어 일부 업체에선 조크 프로그램을 진단하지만 몇몇 업체에선 조크 프로그램을 악성코드로 분류하지 않고 있다. 그 외 명백한 복사나 해를 끼칠 목적으로 제작되었지만 프로그램 버그로 문제가 발생하는 프로그램을 의도된 바이러스(Intended virus)로 분류하기도 하지만 명백한 오류로 전혀 실행되지 않는 바이러스는 사용자에게 해가 없기 때문에 진단하지 않는 경우도 있다.
일반적으로 기업에서 백신을 도입하기 위해 인터넷에서 악성 코드를 다운로드 받아 검색률을 비교하는데, 이때 백신 제작 회사의 제품 정책에 따라 진단되지 않는 샘플도 포함 될 수 있다. 따라서, 일반 회사에서 실제 악성코드를 수집해 테스트하는 것은 그리 좋은 방법은 아니며, 진단하지 못하는 제품이 무조건 성능이 떨어진다고 단정하기 전에 백신 제작 회사에 어떤 이유로 진단하지 않는지 알아보는 것이 중요하다.
* 백신 하나로 현존하는 모든 악성코드를 진단, 치료할 수 없다.
많은 제품에서 현존하는 모든 악성코드를 진단/치료할 수 있다고 주장하고 있다. 하지만, 백신은 기본적으로 알려진 악성코드를 진단할 수 있는 반면, 악성코드는 하루에도 수십, 수백 개씩 새롭게 발견되고 있어 현실적으로 하나의 제품이 모든 악성코드를 진단, 치료할 수 없다. 일반적으로 열 개 내외의 악성코드가 감염의 대다수를 차지하므로 최신 엔진을 계속 유지하면 대부분의 악성코드로부터 보호될 수 있다.
* 시스템의 이상 증세의 원인이 모두 바이러스나 웜은 아니다.
컴퓨터는 하드웨어적인 문제와 소프트웨어적인 문제가 존재한다. 일부 사람들은 시스템의 이상 증상을 모두 바이러스나 웜 탓으로 돌리는데, 제품 불량, 사용자 실수 등 다양한 원인으로 시스템에 문제가 발생할 수 있다.
따라서, 모든 시스템 이상을 바이러스나 웜의 탓으로 돌리는 것은 옳지 않다. 시스템에 이상이 있을 땐 일단 백신이나 여타의 보안 프로그램을 이용해 악성코드 감염여부를 검사하고, 감염되지 않았음에도 시스템 이상 증세가 나타난다면 AS 등 적절한 조치를 통해 해결해야 한다.
* 백신도 바이러스에 감염된다.
이상하게 들리지 모르지만 백신도 하나의 프로그램이므로 바이러스에 감염될 수 있다. 대신 대다수 백신은 자기 자신을 검사해 변형되었으면 사용자에게 알려주는 기능이 있다. 이땐 반드시 백신 업체에 바이러스 감염으로 추정되는 파일을 보내서 확인해야 한다.
또한 일부 바이러스나 웜은 백신 프로그램이 설치되어 있으면 백신 관련 파일을 삭제하거나 실행을 방해하는 것도 있다. 이런 종류의 악성코드를 Retro 혹은 Anti-Anti-Virus로 분류한다. 대표적인 예로 Win32/Klez.worm 시리즈가 있는데 이들 변형 중 일부는 알려진 백신을 삭제하며 실행 중인 프로그램 중 'Virus'와 같은 문자열이 존재하면 백신 자체를 삭제해버린다. 이 경우 전용 백신으로 치료해야 한다.
--------------------------------------------------from somewhere
"휴리스틱 스캐너" 라는 것입니다.
이것은 바이러스의 완벽한 확인을 하는 것이 아니라, 파일을 분석해서
여러 프로그램안의 명령어들을 분석해, 바이러스(악성코드)의 가능성을
표시해주는 것입니다.
그래서 확실히 바이러스라고 탐지해주는 것이 아니라, 바이러스일 가능성이 높다 라는 보고를 하게 되는 스캐너류입니다. 이것은 오탐률이 높기 때문에 일반적으로 잘 쓰이지는 않습니다.
---------------------------------------------------from somewhere
즉..
DB에 등록되어 있지 않는 것들을 탐지하는 진단.
* 백신, 설치만으로는 악성코드로부터 해방될 수 없다.
백신의 가장 큰 한계는 해당 백신이 처리할 수 있는 악성코드만 진단, 퇴치가 가능한 점이다. 사용자가 백신 프로그램을 설치한 후에도 신종 악성코드는 계속 제작되고 발견된다. 그러므로 엔진을 계속 업데이트 해주어야 한다. 백신 제작사들은 신종 바이러스의 진단/치료 기능이 추가될 때마다 이에 대한 정보를 업데이트해 고객들에게 제공한다
또한 백신 프로그램이 시스템에 설치돼 있다고 해서 모든 악성코드를 검사/치료할 수 있는 것은 아니다. 일부 사용자는 엔진 업데이트를 하면 자동으로 악성코드를 진단하는 것으로 착각하기도 하는데, 최신 엔진을 사용하더라도 시스템 감시와 같은 기능을 사용하지 않으면 실행되는 악성코드를 실시간으로 막을 수 없다.
최신 엔진을 사용해도 진단되지 않는 신종 악성코드에 감염 위험은 있지만 최선의 예방책은 지속적으로 엔진을 업데이트해주고 시스템 감시 기능을 사용하는 것이다.
* 시스템 감시 기능은 악성 코드의 접근을 차단하는 것이지, 네트워크를 통한 악성코드의 공격을 예방하는 것은 아니다.
백신은 기본적으로 기억장소에서 실행중인 프로그램이나 파일의 악성코드 감염 여부를 검사한다. 대부분의 백신이 파일 종류를 파악해 파일의 특정 영역 내용을 검사하기 때문에, 파일이 완전하지 않다면 진단하지 못하는 경우가 많다.
백신의 시스템 감시 기능은 사용자가 접근하는 파일의 감염 여부를 검사해 사전에 사용자가 감염된 파일에 접근하는 것을 차단해준다. 이런 특징으로 인해 악성코드에 감염된 파일을 다른 컴퓨터의 공유 폴더를 이용하여 파일을 복사할 때, 파일을 받는 컴퓨터쪽 백신의 시스템 감시 기능은 파일이 전송되는 중간에 파일을 검사하지 않고 파일이 모두 복사되고 파일이 닫히는 시점에서 파일을 검사/진단하여 악성코드 유무를 사용자에게 알려준다.
이렇게 백신이 악성코드 감염여부를 검사하는 시점이 파일에 대한 모든 작업이 완료된 후이다 보니, 사용자는 현재 사용하는 백신의 문제로 악성코드의 감염을 차단하지 못했다고 오해할 수 있는 것이다. 또한 이러한 이유로 현재 네트워크을 통해 전달되는 내용의 안전성을 백신에서 검사하지 못하는데, 이것은 인터넷으로 파일을 다운로드 받을 때도 마찬가지다. 인터넷으로 파일을 모두 다운로드 받은 후에 악성 코드 감염 여부를 확인할 수 있기 때문이다.
그리고 시스템 감시 기능은 악성코드가 실행하는 파일 삭제와 정상적인 파일 삭제를 구별할 수 없다. 예를 들어 I-Worm/ExploreZip는 확장자가 DOC, XLS, PPT 등의 파일을 공유폴더에서 찾아 파일을 삭제하는 특징적인 증상을 가지고 있다. 공유된 시스템의 시스템 감시 기능은 웜 자체가 복사되지 않고 파일 삭제 명령만 네트워크로 전달되므로, 백신이 파일 삭제 자체를 막지는 못하는 것이다.
이러한 문제를 해결하기 위해서는 백신과 함께 침입탐지 프로그램 등이 함께 사용되어야 한다. 단, 이럴 경우 네트워크의 속도가 저하될 수 있다는 것은 염두에 두어야 한다.
* 악성코드에 계속 재감염되는 것이 꼭 백신의 문제는 아니다.
동일한 악성코드에 재감염될 때 흔히 자신이 사용하는 백신에 문제가 있는 게 아닌가 생각하는 경향이 있다. 물론, 백신이 특정 악성코드를 놓치는 경우도 있지만, 그런 경우보다는 다음과 같은 경우가 대부분이다.
가) 공유 폴더
공유 폴더는 일종의 시스템 폴더로, 여러 사용자가 공동으로 사용할 수 있다는 점에서 매우편리한 기능이다. 하지만, 공유 폴더가 바이러스나 웜의 전파에 있어서도 이러한 편리성의 동일하게 제공한다는 데 문제가 있다. 자신의 시스템에서 바이러스나 웜을 모두 진단/치료 했을 경우라도 공유 폴더를 사용하고 있다면, 다른 사람이 다시 해당 폴더의 파일을 감염시키거나 웜 파일을 생성시킬 수 있다. 즉, 아무리 자신의 컴퓨터를 잘 관리한다 하더라도, 공유 폴더를 잘못 사용하면 언제라도 악성코드에 노출될 수 있다는 것이다.
바이러스 백신은 외부로부터의 파일 복사나 감염 시도 자체를 막지 못하고, 파일 복사 후 혹은 바이러스 감염 후 사용자에게 이를 알려준다. 물론, 백신의 실시간 감시가 실행되어 있다면 사용자가 악성코드를 실행하기 전에 경고해 주지만, 이 또한 감염 후의 경고일 뿐 감염 자체를 막는 것은 아니다.
나) 보안 패치 미적용
최근 대부분의 시스템이 네트워크로 연결되면서 보안상 취약성을 이용해 전파되는 웜이나 바이러스가 많이 등장하고 있다. 특히 보안상 취약성은 해커들이 해킹을 시도할 때도 많이 사용된다. 백신은 네트워크로 주고받는 내용 자체를 검사하는 것이 아니므로 공격 자체를 막지 못한다.
따라서 웜이 생성되거나 바이러스에 감염된 후의 파일에서 감염 사실을 진단하므로 지속적으로 재감염될 수 있는 것이다. 이러한 공격을 원천적으로 차단하려면 보안 패치를 반드시 적용하고, 침입탐지 제품 등을 사용하는 것이 좋다.
* 백신은 정상적인 파일을 오진할 수 있다.
백신도 정상적인 파일을 악성코드로 진단하는 경우가 발생한다. 일반적으로 백신은 검사하는 파일에서 악성코드로 의심되는 코드를 사용해 진단하는데, 검사하는 파일과 백신에서 정의한 악성코드 내용이 동일할 경우, 이를 악성코드로 오진할 수 있다. 최근 휴리스틱(Heuristic) 진단 기능으로 알려지지 않은 악성코드를 진단하는 제품들이 많이 있지만, 이러한 이유로 정상적인 파일을 악성코드로 진단할 가능성이 높은 것이다.
* 제품마다 악성코드 분류가 다르기 때문에 진단하지 않는 샘플이 존재할 수 있다.
바이러스 백신은 제작하는 회사의 제품 정책에 따라 악성코드의 분류가 다를 수 있다. 실제 백오리피스와 같은 원격제어 프로그램이 처음 선보였을 때, 백신 업체의 전통적인 트로이목마 정의와는 다소 달랐기 때문에 일부 업체는 백신은 바이러스만 진단/치료하는 제품으로 여겨 한동안 백오리피스를 진단하지 않기도 했었다.
최근 대부분의 백신은 백오리피스와 같은 백도어를 악성코드로 분류하고 진단한다. 다만, 회사의 제품 정책에 따라 조크(Joke) 프로그램이나 해킹 툴을 진단하지 않을 수도 있다. 조크 프로그램은 사용자에게 해가 없지만 마치 악성코드로 오해하는 행동을 하는 프로그램이다.
사용자에게 직접적인 해를 입히지 않지만 악성코드로 오해해 컴퓨터 전원을 꺼버리는 등의 예기치 않은 행동을 할 수 있어 일부 업체에선 조크 프로그램을 진단하지만 몇몇 업체에선 조크 프로그램을 악성코드로 분류하지 않고 있다. 그 외 명백한 복사나 해를 끼칠 목적으로 제작되었지만 프로그램 버그로 문제가 발생하는 프로그램을 의도된 바이러스(Intended virus)로 분류하기도 하지만 명백한 오류로 전혀 실행되지 않는 바이러스는 사용자에게 해가 없기 때문에 진단하지 않는 경우도 있다.
일반적으로 기업에서 백신을 도입하기 위해 인터넷에서 악성 코드를 다운로드 받아 검색률을 비교하는데, 이때 백신 제작 회사의 제품 정책에 따라 진단되지 않는 샘플도 포함 될 수 있다. 따라서, 일반 회사에서 실제 악성코드를 수집해 테스트하는 것은 그리 좋은 방법은 아니며, 진단하지 못하는 제품이 무조건 성능이 떨어진다고 단정하기 전에 백신 제작 회사에 어떤 이유로 진단하지 않는지 알아보는 것이 중요하다.
* 백신 하나로 현존하는 모든 악성코드를 진단, 치료할 수 없다.
많은 제품에서 현존하는 모든 악성코드를 진단/치료할 수 있다고 주장하고 있다. 하지만, 백신은 기본적으로 알려진 악성코드를 진단할 수 있는 반면, 악성코드는 하루에도 수십, 수백 개씩 새롭게 발견되고 있어 현실적으로 하나의 제품이 모든 악성코드를 진단, 치료할 수 없다. 일반적으로 열 개 내외의 악성코드가 감염의 대다수를 차지하므로 최신 엔진을 계속 유지하면 대부분의 악성코드로부터 보호될 수 있다.
* 시스템의 이상 증세의 원인이 모두 바이러스나 웜은 아니다.
컴퓨터는 하드웨어적인 문제와 소프트웨어적인 문제가 존재한다. 일부 사람들은 시스템의 이상 증상을 모두 바이러스나 웜 탓으로 돌리는데, 제품 불량, 사용자 실수 등 다양한 원인으로 시스템에 문제가 발생할 수 있다.
따라서, 모든 시스템 이상을 바이러스나 웜의 탓으로 돌리는 것은 옳지 않다. 시스템에 이상이 있을 땐 일단 백신이나 여타의 보안 프로그램을 이용해 악성코드 감염여부를 검사하고, 감염되지 않았음에도 시스템 이상 증세가 나타난다면 AS 등 적절한 조치를 통해 해결해야 한다.
* 백신도 바이러스에 감염된다.
이상하게 들리지 모르지만 백신도 하나의 프로그램이므로 바이러스에 감염될 수 있다. 대신 대다수 백신은 자기 자신을 검사해 변형되었으면 사용자에게 알려주는 기능이 있다. 이땐 반드시 백신 업체에 바이러스 감염으로 추정되는 파일을 보내서 확인해야 한다.
또한 일부 바이러스나 웜은 백신 프로그램이 설치되어 있으면 백신 관련 파일을 삭제하거나 실행을 방해하는 것도 있다. 이런 종류의 악성코드를 Retro 혹은 Anti-Anti-Virus로 분류한다. 대표적인 예로 Win32/Klez.worm 시리즈가 있는데 이들 변형 중 일부는 알려진 백신을 삭제하며 실행 중인 프로그램 중 'Virus'와 같은 문자열이 존재하면 백신 자체를 삭제해버린다. 이 경우 전용 백신으로 치료해야 한다.
--------------------------------------------------from somewhere
"휴리스틱 스캐너" 라는 것입니다.
이것은 바이러스의 완벽한 확인을 하는 것이 아니라, 파일을 분석해서
여러 프로그램안의 명령어들을 분석해, 바이러스(악성코드)의 가능성을
표시해주는 것입니다.
그래서 확실히 바이러스라고 탐지해주는 것이 아니라, 바이러스일 가능성이 높다 라는 보고를 하게 되는 스캐너류입니다. 이것은 오탐률이 높기 때문에 일반적으로 잘 쓰이지는 않습니다.
---------------------------------------------------from somewhere
즉..
DB에 등록되어 있지 않는 것들을 탐지하는 진단.