백신(안티바이러스) 소프트웨어는 겉보기처럼 단순한 제품이 아닙니다. 등장 이후 경쟁력을 높이기 위해 각 제품마다 새로운 기능이 계속 추가되어 왔고, 최근에는 다양한 기기와 운영체제와의 호환성을 보장하기 위해 클라우드 환경에서 작동하는 제품도 등장했습니다. 하지만 백신 소프트웨어가 아무리 발전해도 한 가지는 여전히 해결되지 않았습니다. 바로 자신이 '가짜'인지 아닌지를 사용자에게 알려주지 않는다는 점입니다. 당연히 가짜 프로그램은 진짜처럼 보이기 위해 온갖 수단을 동원합니다. 그렇다면 어떻게 가려낼 수 있을까요?
백신 프로그램의 작동 원리
백신 프로그램은 본질적으로 컴퓨터 내부의 악성 코드를 탐지하는 소프트웨어입니다. 애플리케이션 코드에 나타나는 일반적인 패턴을 검사하는 방식으로 작동하며, 쉽게 말해 데이터베이스에 등록되지 않은 바이러스라도 의심스러운 행동 패턴을 찾아내어 감지합니다. 물론 모든 정상적인 백신은 자체적으로 구축한 알려진 바이러스 데이터베이스를 활용해 파일을 스캔하기도 합니다.
다만 개발자들은 자사 소프트웨어의 데이터베이스에 세상의 모든 바이러스가 담길 수 없다는 사실을 잘 알고 있습니다. 그래서 '휴리스틱(heuristics)'이라 불리는 행동 분석 기법을 함께 사용하여, 잠재적으로 바이러스일 가능성이 있는 코드까지 탐색합니다.
일부 사용자는 검사 과정에서 오탐(false alarm)이 발생하면 그 백신이 가짜라고 오해하기도 하는데, 위에서 설명한 작동 방식을 고려하면 이는 사실이 아닙니다. 그렇다면 어떤 기준으로 사기성 또는 가짜 백신을 판별할 수 있을까요?
EICAR 테스트란?

예전에 백신 소프트웨어를 테스트하는 가장 대표적인 방법 중 하나가 바로 EICAR 테스트였습니다. EICAR 테스트 파일은 68바이트 크기의 명령줄 파일로, 정상적인 백신 프로그램이라면 이를 바이러스로 인식해야 한다는 것을 증명하기 위해 만들어졌습니다. 공식 사이트에서 무료로 다운로드할 수 있습니다.
하지만 이 테스트에도 한계가 있습니다. 많은 최신 백신 프로그램은 EICAR 테스트용 시퀀스를 굳이 구현하지 않아 해당 파일을 바이러스로 감지하지 않습니다. 더 심각한 문제는 가짜 백신도 이 파일을 쉽게 감지하도록 만들 수 있다는 점입니다. EICAR 테스트는 선량하고 단순했던 시절의 산물일 뿐, 신뢰를 전제로 한 이런 테스트가 통하지 않는 시대는 이미 지나갔습니다.
그렇다면 어떻게 가짜 백신을 알아볼 수 있을까?
당연히 가짜 프로그램은 '진짜'를 만드는 것보다 적은 노력으로 작성됩니다. 그래서 가짜 백신 프로그램은 대체로 용량이 가볍습니다.
그런데 개발자가 일부러 쓰레기 데이터를 잔뜩 채워 넣으면 어떻게 될까요?
이럴 때 주목해야 할 것이 검사 속도입니다. 백신 프로그램은 대부분 Windows의 입출력(I/O) 규약을 통해 하드 드라이브에 접근하는데, 하드 드라이브는 본질적으로 매우 느린 장치이기 때문에 모든 백신의 검사 속도는 비슷한 수준에 머무릅니다. 따라서 "다른 제품보다 훨씬 빠르다"고 주장하는 백신이 있다면 경계해야 할 신호입니다. 물론 실존하는 소프트웨어일 수 있고 실제로 빠르게 검사할 수도 있지만, 어떤 백신도 500GB 분량의 파일을 2분 만에 검사할 수는 없습니다. 어느 제품도요. SSD를 사용하더라도 현재 기술로는 불가능합니다. 그렇게 빠른 속도로 검사가 끝난다면 강하게 의심해야 합니다.
또한 가짜 백신 프로그램은 컴퓨터에 수많은 문제가 있다고 탐지해내면서도 무료 체험판을 제공하지 않고, 문제를 해결하려면 일정 금액을 지불하라고 요구하는 경향이 있습니다.
하지만 무엇보다 확실한 방법은 검색 엔진에서 해당 백신 이름 뒤에 '가짜(fake)'라는 단어를 붙여 검색해 보는 것입니다. 검색 결과에 삭제 방법이나 가짜임을 확인해 주는 사이트들이 나타난다면 답은 이미 나온 것입니다. 아래 이미지는 그러한 검색 결과가 어떤 모습인지 보여줍니다.

탐정 기분을 느껴볼 준비가 되셨나요?
가짜 백신을 감별하는 데 도움이 되는 다른 유용한 팁이 있다면 댓글로 알려주세요!
이미지 출처: BigStockPhoto의 Antivirus Definition Closeup Showing Computer System Security