본문/내용
백신 프로그램의 동작 원리
백신 프로그램이 컴퓨터 바이러스를 진단하는 방법은 바이러스의 종류에 따라 여러 가지가 있으나 가장 기본적인 방법은 바이러스에 공통적으로 포함되어 있는 특정한 문자열을 찾아내는 방법이 일반적으로 많이 사용되고 있다. 이러한 방법은 컴퓨터 바이러스 코드를 구분하여 감염여부를 판단하는 시간을 줄일 수 있어 파일의 개수가 많을 경우 유리하다. 국내에서 개발된 백신 프로그램을 이와 같이 진단속도를 빠르게 하는 기능을 중요시하고 있는데 이는 속도를 중시하는 국내 컴퓨터 사용자의 습성을 위한 것이기도 하다. 이러한 경향은 감염된 바이러스를 치료하기 위해 시스템을 재부팅하는 회수에도 제한을 두는 경우가 많은데 참고로 해외 컴퓨터 사용자의 경우는 재부팅에 관계없이 완벽한 치료와 많은 바이러스 진단 개수를 중요시 하는 반면 국내 사용자는 빠른 진단, 치료 속도와 편리한 사용자 인터페이스를 많이 중요시 한다. 그러나 바이러스를 진단하는 방법 중 속도만을 중요시 하여 문자열 검색만을 사용하는 것은 한계가 있다. 전에도 언급했듯이 컴퓨터 바이러스는 끊임없이 발전하고 있고 그에 대한 변형 바이러스가 계속 발견되고 있기 때문에 문자열 검색만으로는 바이러스 제작자를 따라갈 수 없기 때문이다.
그래서 여러 부가적인 방법을 사용하게 되는데 그 중 하나가 시뮬레이션 기법이다. 즉 컴퓨터 메모리 내부에 가상의 메모리 공간을 할당하고 다른 공간과 격리된 상태에서 바이러스로 추정되는 코드를 실행시키는 것이다. 그래서 나타나는 증상으로 바이러스 진위 여부를 판단하는 기법인데 이러한 방법은 알려지지 않은 바이러스의 진단 기법으로도 사용되어지고 있다. 백신프로그램은 일단 발견된 코드를 분석하여 일정한 규칙을 찾아내고 이에 따라 동일한 코드가 있을 경우 바이러스로 판단, 치료하게 되는데 새로운 종류의 바이러스는 진단 기능을 추가하기 전에 문자열 검색만으로 바이러스로 진단할 수 없기 때문이다.