백신(안티바이러스)의 성능을 논하는데 가장 많이 이용되는 항목이 바로 진단률(Detection Rate)입니다. 권위(!)있는 평가기관에서도 진단율과 오진율(False Positive), 그리고 검사하는 시간 등을 순서를 매기는 중요한 항목으로 배치하고 있습니다.
하지만, 사용자가 판단하고자 할 때에 진단율은 저멀리 하늘에 떠 있는 무지개와 같습니다. 보이기는 보이지만, 뜬구름처럼 사용자에게 현실적으로 다가오지 못하기 때문 아닐까 생각됩니다.
미국의 버지니아 주에 위치한 정보 보안 업체인 Cyveillance 사는 백신이 새로운 악성 프로그램(Malware)가 출현하고 나서 어느 정도 시점에 이르러야 진단을 하게 되는지 흥미로운 실험을 한 결과를 공개했습니다.
현재 악성 프로그램은 하루에 적어도 수천에서 수만개 이상 새롭게 또는 변형되어 출현하고 있으며, 백신 업체에서는 시그내처, 휴리스틱, 클라우드 기반의 기술 등등 다양하면서도 복잡한 기술을 결합하여 악성 프로그램에 대응하는 형국입니다.
백신업체에서는 새로운 악성 프로그램이 출현하게 되면, 이에 대한 정보를 습득하고 난 후 일정 기간(1-2일, 위험하지 않을 경우에는 수일 더 추가) 내에 진단할 수 있을 것이라고 생각할 수 있습니다만, 현실을 그렇지 않다는 것을 보여주고 있습니다.
이 연구의 목적은 새롭게 출현하는 악성 프로그램에 대해 전통적인 시그내처 방식을 이용하여 진단하는 유명한 안티바이러스 제품이 얼마나 빨리 대응하는 지 알아 보기 위함입니다.
이용된 악성 프로그램은 해당 회사가 보유한 기술로 습득한 것으로 2010년 5월 20일부터 22일(3일)간, 약 2억개의 도메인, 1억9천만개의 웹사이트, 8천만개의 블로그, 9만개 이상의 게시판, 수천개의 IRC/채팅방, 수십억 통의 이메일, 짧은 URL 서비스 등에서 수집한 것입니다.
다만, 사용된 샘플은 인터넷에서 주로 수집한 것으로 실제 우리가 USB로 감염되거나, 감염된 파일을 다운로드하는 등 현실적인 사용과는 약간 차이가 있을 수 있습니다만, 어느정도 감안하여 이해하시기 바랍니다.
<그림 1. 악성 프로그램 출현 후 1일 이내에 진단한 비율>
NOD32(38%)이 가장 높은 진단율을 보였으며, McAfee(23%), F-Secure(22%)가 그 뒤를 이었습니다.
<그림 2. 시일이 경과하면서 진단율이 증가>
<그림 3. 약 30일간 증가되는 진단율>
표에서 보듯이 보통 8일 정도 이후가 되어야 진단율이 약 90%정도 이릅니다. 즉, 즉각적인 대응은 솔직이 실망스럽고, 일주일의 시간 후에서야 어느정도 된다는 것입니다. 그런데, 그러는 동안에 새로운 악성 프로그램이 휴가를 가는 것은 아니지 않을까요?
마지막으로 악성 프로그램이 출현한 후에 이를 대응 즉, 진단하는데 걸리는 평균 시간은 아래와 같습니다.
<그림 4. 악성 코드에 대응하는 데 걸리는 평균 시간>
위의 표에서 NOD32는 약 2.2일이 소요되어 1등을 차지했습니다. 그 뒤를 Kaspersky(3.8일) 순서입니다. Sophos, Trend Micro의 경우에는 약간 무척 부진한 상황을 보여 주고 있습니다.
지금까지 나온 결과를 보면, 솔직이 실망감이 몰려 들 수 밖에 없습니다.
백신 업체에서는 이러한 대량 물량 공세에 효과적으로 대응할 수 있는 기술을 마련해야 할 것으로 보입니다.
사용자 측면에서는 백신이 모든 것을 막아 줄 수 있다는 환상을 버리고, 이제 보안은 내 자신이 먼저 지켜야 한다는 생각을 가져야 하며, 보다 안전하게 인터넷을 사용할 수 있는 방법을연구하여 이용해야 할 것입니다.
즉, 스팸은 사용자의 실수를 이용하기 때문에, 보통 사용자 책임으로 돌리기 쉽습니다만, 사용자가 모두 책임지기에는 너무나 억울할 수 밖에 없습니다. 보낸 사람을 일일이 확인할 수도 없을 뿐더러, 대부분 보안에 대해 충분한 지식을 가지고 있지 못한 경우가 대부분입니다.
따라서, 스팸에 대한 문제는 바로 메일 서비스를 제공하는 회사(포탈)이 어느 정도 책임을 지고 해결을 해야 한다고 봅니다.
특히, 일반 회사와 같이 독자적인 메일 시스템을 구축하는 경우에 메일에 대한 안티 스팸/바이러스 장비나 소프트웨어를 구비하지 않는 경우가 대부분입니다. 이러한 경우에는 당연히 구비해야 하며, 사용자 수가 50명 미만인 경우에는 구글이 제공하는 무료 서비스를 이용하는 편이 훨씬 낫습니다.
바이러스, 즉 악성 프로그램을 인터넷에서 다운로드하거나, 사용자의 PC에서 의심스러운 파일이 발견될 때에 이를 여러 가지 안티바이러스 제품으로 통합적으로 검사해 주는 사이트가 있습니다. 대표적인 사이트는 VirusTotal과 Jotti가 있으며, 이들 사이트는 모두 무료로 제공됩니다.
우리가 익히 알고 있는 시만텍, 맥아피, 어베스트!, V3와 같이 약 30 여가지 안티바이러스 제품으로 동시에 검사하기 때문에 정말 새로운 바이러스가 아닌 경우에는 어디 한곳에 진단되기 마련입니다.
또한, 검사하기 위해 업로드한 샘플은 안티바이러스 제작사로 샘플로 자동으로 전송되어, 신종인 경우 즉시 반영할 수 있도록 도움을 주고 있습니다.
여기까지는 컴퓨터를 사용하는 즉, 착한 사용자의 입장입니다.
만약, 악성 프로그램 제작자가 새로운 악성 프로그램을 만들었다고 가정해 봅니다. 이게 진단되는지 검사하려면 앞에서 언급한 바이러스 검사 사이트에서는 할 수가 없습니다. 해볼려면, 어쩔 수 없이 PC나 가상 머신에 각각의 안티바이러스 제품을 설치하여 테스트하는 힘든 과정이 남아 있습니다.
하지만, 궁하면 통하는 법!
어둠의 시장을 위해서 제공되는 바이러스 검사 사이트가 공개되었습니다. 사이트는 현재까지 2개가 알려져 있으며 아래 화면은 그중 하나입니다.
오히려, 더 나은 점이 보이는데, 바로 검사하고자 하는 안티바이러스 제품을 선택할 수 있다는 점입니다.
단점으로는 무료가 아닌 유료 사이트로, 한번 검사할 때마다 파일당 1달러 또는 1개월당 40달러로 할인 판매하고 있다고 합니다.
최근 Best Buy에서는 디지털 사진 액자 프로그램의 판매를 중지한 것으로 알려졌는데 그 이유는 프로그램이 바이러스에 감염된 것이라고 합니다. 다행이도 이 바이러스는 Insignia NS-DPF10A 라는 제품에만 한정되어 감염되었으며, 이 제품은 10.4인치 액자 크기라고 합니다.
Best Buy에서는 거의 한달 가량 이 바이러스에 대해 인지하고 있었으며 이 문제를 처리할 때까지 고객들에게 알리지 않고 있었다.
이 바이러스는 이미 오래전에 출현한 바이러스로 최신의 안티 바이러스 제품에서는 대부분 진단 및 치료가 가능하다고 합니다.
# 평가를 통과한 제품 Agnitum Outpost BitDefender AntiVirus Bullguard Bullguard CA eTrust ESET NOD32 F-Secure Anti-Virus 2008 GDATA Anti-virus Grisoft AVG McAfee VirusScan Microsoft Forefront MWTI eScan PCTools Anti-Virus Quick Heal Quick Heal Symantec Endpoint Protection VirusBuster VirusBuster
# 평가를 통과하지 못한 제품 AEC Trustport Antivirus Alwil avast! Avira AntiVir CA Antivirus Doctor Web Dr. Web Fortinet Forticlient Frisk F-PROT Ikarus Virus Utilities Iolo Antivirus Kaspersky Anti-Virus Kingsoft AntiVirus Norman Virus Control PCTools Spyware Doctor Redstone Redprotect Rising Antivirus Sophos Anti-Virus Trend Micro OfficeScan
참고로, 위의 결과가 바이러스를 잘 잡는다 못 잡는다의 핵심적인 기준이 될 수는 없다는 점을 주의하시기 바랍니다.
요즘에는 바이러스(웜, 등등 통칭해서 악성 프로그램)들의 전파 속도는 인터넷의 발달로 인해 거의 빛의 속도를 따라가고 있다. 어제 유럽에서 새로 발견된 악성 프로그램은 오늘 내 컴퓨터에서 조용히 잠복하는 세상이다.
하지만, 악성 프로그램을 진단 치료하는 안티 바이러스 벤더의 입장에서 보면, 정보의 홍수 아니 악성 프로그램의 홍수 속에 업무가 기하급수적으로 증가하고 있다. 특히, 이메일을 통해 감염되는 악성 프로그램(거의 트로이 목마)은 한번 퍼지기 시작하면 스패머의 활약에 힘입어 엄청난 속도로 전파되는 특징을 가지고 있다.
이러한 악성 프로그램이 우리가 사용하는 안티바이러스 제품에 샘플을 수집하여 이를 데이터베이스화하는데 걸리는 시간은 얼마나 되는지 궁금하지 않은가?
미국의 유명한 안티 스팸 업체인 컴터치(CommTouch)는 악성프로그램 발생 센터(Malware Outbreak Center)라는 프로그램을 통해 이메일로 전염되는 악성 프로그램을 보안 벤더들이 얼마나 빨리 대응하는지 자세히 보여 준다.
우리가 많이 사용하는 윈도우 운영체제에서는 바이러스 등 악성 프로그램의 피해가 매우 심각합니다만, 매킨토시의 경우 어느 정도 바이러스 제작자의 타겟이 아니므로 바이러스가 거의 없다고 볼 수 있었습니다.
하지만, 드디어 매킨토시를 공격하기 위한 첫번째 바이러스(정확히는 트로이 목마)가 발견되었다는 소식입니다.
이 바이러스는 한 포르노 웹사이트에서 제공하는 소프트웨어(동영상 코덱)에 숨겨져 있으며 사용자가 이를 모르고 다운로드하여 실행할 경우에는 컴퓨터의 제어권을 빼앗기게 된다고 합니다. 즉, 포르노 동영상을 보기 위해서는 이 가짜 코덱을 설치해야 한다고 속여서 감염을 시도합니다.
가장 먼저 발견하여 언급한 곳은 인티고(Intego)라는 매킨토시 관련 포럼으로 알려졌으며 애플은 이 사실을 공식 확인했다고 합니다.
한 편, 보안 벤더 중 하나인 트렌드 마이크로 社는 이 바이러스가 2006년에 유행했었던 ZLOB의 변종으로 윈도우용 트로이 목마가 매킨토시로 진화한 것이리고 밝혔습니다.
이러한 사실을 본 때 앞으로는 윈도우 운영체제 뿐만 아니라 매킨토시 운영체제에서도 바이러스에 대한 다양한 연구와 이를 방어하기 위한 보안 프로그램 개발이 진행될 것으로 생각됩니다.
물론 기존의 보안 벤더에서는 매킨토시용 안티 바이러스 제품을 개발 중이거나 판매 중인 곳도 있습니다만, 이제 올것이 온것이라~는 느낌을 지울 수가 없습니다.
일련의 보안 자료를 보면, 해가 가면 갈수록 바이러스, 웜 등의 악성 프로그램의 발생 건수가 기하급수적으로 증가하고 있습니다.
일반적으로 안티 바이러스 제품은 서명(시그내처) 기반의 진단 기술을 사용하기 때문에 바이러스가 발견된 이후에 그에 대한 데이터베이스가 업데이트되는 형편입니다. 물론, 일부 안티 바이러스 제품은 사전 방역, 휴리스틱 진단 기법을 통해 아직 발견되지 않은 악성 프로그램을 미리 예방할 수도 있습니다. 하지만, 장점이 있으면 단점이 있는 법! 오진의 가능성이 서명 기반의 안티 바이러스 제품보다 높다는 단점이 존재합니다.
우스갯소리로 안티바이러스 분석팀은 일년내내 일을 해도 다 못한다는 말이 있습니다. 그만큼 갈수록 업무가 증대되고 있으며 사람이 수작업으로 진행한다면 처리할 수 있는 일에는 보나마나 한계가 있을 수 밖에 없습니다. 최근 보안 벤더들은 자동으로 처리할 수 있는 가상화 기술/소프트웨어를 도입하여 사용합니다.
악성 프로그램 제작자들은 새로운 악성 프로그램을 탄생(!)시키기 보다는 기존의 악성 프로그램을 변형하는 방법을 주로 취합니다. 물론 작성자는 자신의 코드를 충분히 이해할 수 있다는 가정을 한다면, 변종(Variant)을 떡 주므르듯이 마구 만들어서 널리 감염시킬 수 있을 것입니다.
최근 외국의 유명한 보안 전문가는 최근 안티 바이러스 제품의 허를 찌르는 글을 하나 게재했습니다.
서명 기반의 바이러스 백신 제품의 기술로는 바이러스로 검출되는 코드(이하 스크립트와 동일함)는 동일한 패턴이 나타나면 거의 100% 진단할 수 있는 기술을 보유하고 있습니다.
여기서 언급하는 스크립트는 인터넷 익스플로러에서 동작하는 악성 프로그램을 말합니다.
하지만, 코드의 일부분에 공백이나 숫자등을 채우는 이른바 패딩(padding) 기법으로 변조할 경우에는 제대로 바이러스 여부를 진단할 수 없다고 합니다.
이렇게 채우는 값을 최대 255 바이트까지 늘릴 경우에는 거의 대부분의 바이러스 백신에서 제대로 진단하지 못한다는 테스트 결과도 나온 적이 있습니다.
상식적으로 생각해 봐도, 악성 프로그램의 변종을 만들어 내는 것은 스페이스 바~ 누르는 것처럼 아주 쉽겠죠?
아래 그림은 악성 스크립트를 vi 편집기로 본 화면입니다.
그리고, 헥사 덤프(16진수로 보여주는)로 본 화면입니다. 중간에 0x00 값을 많이 채워넣었습니다.
이러한 방식으로 코드를 변조한 상태에서 바이러스토탈(http://www.virustotal.com)에서 진단한 결과를 보면 32개 제품 중에 15개 제품만이 악성 프로그램으로 진단하였다는 결과가 나온 적이 있습니다.
한 편, 스크립트에서 의미없는 0으로 채워진 값을 제거한 상태에서는 32 제품 중에 25개 제품이 진단에 성공하였습니다.
마이크로소프트의 관계자에 따르면 이러한 공백 처리 부분은 인터넷 익스플로러의 구조적인 설계에 기인한다고 수년 전에 발표한 적이 있습니다. 하지만, 구조적인 설계가 잘못된 경우라고 한다면 IE7이 나오면서 이러한 문제를 보완하는 새로운 설계가 나와야 하는 것은 아닐까요?
참고로 이러한 문제점에 대항하기 위해 맥아피의 바이러스 스캔(VirusScan) 제품에서는 스크립트스캔(ScriptScan)이라는 전용 모듈을 추가하여 이러한 문제점에도 불구하고 충분히 진단이 가능한 기술을 추가한 상태입니다. 아래 동영상 참조하세요.
결론을 간단히 추려보면 다음과 같습니다. 컴퓨터에 바이러스 백신을 믿고 백업과 같은 진짜 중요한 과정을 생략하면 언젠가 키보드를 치고 후회할 날이 생깁니다. 따라서, 몇 가지 조언을 드리면서 말씀을 줄일까 합니다.
윈도우 업데이트에 항상 신경 씁니다. - 매달 2번째 주 화요일입니다.
믿을만한 안티스파이웨어 제품을 설치하여 이 또한 주기적으로 검사합니다.
쓸데 없는 사이트(예를 들면, 성인 사이트, 와레즈 사이트)는 가급적 방문하지 않습니다.
P2P 프로그램은 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋습니다.
가장 중요한 것은 바로 백업입니다. 중요한 데이터는 CD/DVD 등에 별도로 저장하는 것이 좋습니다. 하지만 가장 귀찮은 작업이기도 하지요.