본문 바로가기

IT, Security

앞으로 백신 프로그램은 예방 용도로만 활용되는 걸까?

 

최근 개인적으로 충격적인(?) 경험을 했습니다. 제 개인적인 습관이, 변화하는 보안 트렌드에 따라가지 못했기 때문입니다. 제 컴퓨터에는 Ubuntu, XP, 7 세 가지의 운영체제가 설치되어 있습니다. 어제는 XP로 웹서핑을 하던 중에, 갑자기 JAVA가 실행되는 것을 발견했지요. 물론 이는 좋은 현상이 아닙니다.

1. 발단

해당 웹 사이트는 뉴스 사이트였고, JAVA가 실행될 이유는 없었으며, 이는 JAVA가 취약점에 노출되었다는 사실을 알 수 있습니다. Ubuntu에는 Anti-Virus가 없지만, XP와 7에는 각각 AlYac과 Norton Anti-Virus가 설치되어 있었습니다. 문제는 AlYac의 실시간 감시가 새로운 자바 취약점 코드를 감지해내지 못했다는 겁니다.

대략적인 웹 공격의 루트를 생각해본다면, [웹 페이지 로딩 – 취약점(Expliot) 다운로드 – (보안 패치가 없을 경우) 취약점 코드 실행 – 추가적인 악성 파일 다운로드 – 활동]이라는 루트로 어느 정도 정리될 수 있을 것입니다. 처음에는 이 사실을 잊고, 그냥 웹 서핑을 했습니다. 그런데 문득 트레이 아이콘을 확인해 보니, AlYac은 온데간데 없더군요. 순간 아차! 싶었습니다. 내가 당했구나!! 해당 악성파일의 기능 중에 Kill-AV가 있었던 겁니다. AlYac의 보호 기능은 무용지물이 된 채 종료되었습니다. 일단 전 OS를 종료한 후 7으로 부팅하여, Norton AntiVirus로 쥐잡기 검사(모든 설정을 최대한 민감하게)를 실행했습니다.

여기에서 나름 재미있는 일이 일어났지요. Norton은 예상대로, XP 드라이브의 JAVA 임시 폴더에서 취약점에 관련한 악성 파일을 진단하였습니다. 또한 시스템 내로 퍼진 몇 가지 파일을 검출해 냈습니다. 그런데 시스템이 계속 느려지더니, 결국에 다른 문제가 있음을 깨달았습니다. 그리고 Kaspersky Online Scanner로 검색해본 결과, 악성 dll 파일이 시스템 곳곳에 잠입하고 있음이 드러났습니다.

 

 

이는 Windows를 새로 설치한 현재 컴퓨터에서 검출한 것입니다. 저는 드라이브가 7개 정도 있기 때문에, 감염은 단순히 포맷을 한다고 완벽히 치료되지 않았습니다. 처음 이 usp10.dll 파일은 포맷하기 전의 Windows 7 바탕화면에서 발견되었습니다. 굉장한 충격이었지요. Norton은 이것을 발견하지 못했습니다. 안타깝게도.

아이러니하게도, 정작 취약점과 일부 코드를 통해 종료된 AlYac은 이 중요 악성 파일을 검출할 수 있었다는 것입니다. Norton이 만약 XP에 설치되어 있었다면, JAVA의 취약점이 있는 와중에도 Norton 만의 방어 체계(Download Intelligence 등)로 인해 악성코드가 활동할 수 없게 되었을 것입니다. JAVA의 취약점으로 인해 최초 파일이 다운로드 되더라도, 막아지기 때문에 이후 다운로드는 활성화 되지 못했겠지요.

그리고 만약 Norton이 검출하지 못해도, 7에 AlYac이 설치 되어 있었다면, 해당 파일은 AlYac에 의해 진단되었을 것입니다. 그러나 섣불리 판단하기엔 무리가 있습니다. Usp.dll은 극히 일부의 파일이고, Norton은 분명, 이 파일을 제외한 여러 가지 dll 파일을 검출하였다는 점입니다.

물론 데이터는 남아 있지 않아, 사진으로 설명하기엔 힘들지만요.

2. 해결

결국 전 OS를 포맷하기로 마음 먹었습니다. 멀티 부팅은 악성 코드의 활동을 효과적으로 억제할 수 있지만, 감염된 dll은 대부분 삭제 되기 때문에 Norton이 치료한 이후 XP의 부팅이 불가능한 문제가 생겼기 때문입니다. 결국 불안에 휩싸여 현재 XP와 7을 모두 포맷한 후 다시 설치하였습니다.

그리고 Windows 7에 Avast!를 설치해서 혹시나 검사를 해 보았더니, 위와 같이 검사 결과가 나오더군요. 위의 것은 일부이고, usp10.dll은 극히 퍼져나가 100여개 정도 검출이 되었습니다. Avast!는 이것을 진단하였고, 치료하였습니다.

Usp10.dll 파일의 VirusTotal 결과를 확인해보십시오.

3. 의문

저는 이번 일을 통해 의문을 갖게 되었습니다. 제가 말하고자 하는 것은 Norton에게 실망했다느니, AlYac의 실시간 보호 기능이 약했다느니, 역시 avast!다, 뭐 이런 선동적인 말을 하고자 하는 것이 아닙니다. 위의 세 가지 백신은 모두 충실한 백신입니다. 반대의 경우도 얼마든지 있을 수 있습니다.

하지만 지구 상에 컴퓨터와 악성 위협은 많고, 실시간으로 대처하지 못하는 일명, 0-day attack 이란 것이 있습니다. 저 또한 0-day 공격에 당했던 것이지요. 만약 그렇다면, 당하고 나서는 어떻게 해야 할까요? 악성 위협 파일은 하나로 되지 않습니다. 1개의 패키지가 실행되면 수 십 가지의 추가 파일이 퍼져 나가는 것이지요. 이는 모두 악성 파일입니다. 극히 조심했지만, 이미 악성코드가 활동 중이라면, 지금 나의 백신이 하나의 악성 위협으로부터 퍼진 모든 악성 코드를 제거할 수 있을까요?

저는 모든 파일을 검출할 수 있을 것이라 생각하진 않습니다. 일부는 검출할 수 있겠지요.

물론 이렇게 생각할 수도 있습니다. "1개의 패키지로 여러 가지의 악성 파일이 퍼져나갔다고 모두 독립적인 것은 아니니, 중요 몇 가지 악성 파일만 검출할 수 있다면 남은 다른 파일은 활동을 못하게 될 것이므로 안심해도 좋다." 또한, 컴퓨터에 관심이 없는 사람들은 별로 신경 쓰지 않고 계속해서 사용할 것입니다. 그러나 자신이 컴퓨터 포맷이라는 것을 알고, 조금이라도 이런 것에 관심이 있다면 위와 같은 생각으로 안심할 수 있을까요?

어디에 다른 악성 파일이 남아있을지 모르는데요?

더불어 백신 프로그램은 유료입니다. 하나의 백신으로 완벽한 치료가 되지 않는다면, 여러 가지 백신 프로그램을 한꺼번에 사두고 사용해야 되는 걸까요?

4. 혼란

예방 목적으로의 안티 바이러스 시스템은 꾸준히 진화 해 왔습니다. 퍽하면 죽는 자체 보호라도 일단 개발은 되어 있었고, Norton의 경우에도 Download Intelligence, SONAR, File Insight, Norton Community 등 시그니처에 없는 악성코드를 검출하고, 또한 PC에 안착하는 것을 방지하기 위해 여러 가지 시스템이 있습니다. HIPS와, Cloud라는 개념을 통한 추가 확장 방지 시스템도 개발되어 사용되고 있습니다. 하지만 과연 이것들이 검출이 아닌 치료에 큰 도움이 될까요?

그 모든 것을 요리조리 회피한 악성파일이, 미처 예방수단이 없는 0-day 공격을 이용해 사용자 PC에 안착한다면, 결국 AlYac과 Norton 같은 결과가 나올 수 있습니다. AlYac은 예방은 불가했으나 몇 가지 dll의 검출은 가능했지요. 그러나 예방 불가로 인해 자체 보호가 해제되고 결국 PC를 보호할 수 없었고, Norton은 예방은 가능했으나 결국 실행 이후의 악성코드를 검출하지 못했습니다.

그럼 결국, 어떤 안티 바이러스 소프트웨어를 사용한다 하더라도, 사용자는 시스템 포맷을 고려할 수 밖에 없을 것입니다. 누구나 정상적인 컴퓨터와, 어떠한 위협도 없는 컴퓨터를 사용하고 싶어 하지, 잠재적인 위협요소를 끌어안고 사용하고 싶어하지는 않습니다. 최근 계정 도용 이슈가 성난 파도처럼 퍼져나가고 있는 이 상황에서 말입니다.

굉장히 혼란스러운 느낌입니다. 더불어 백신은 돈을 주고 사야합니다. 물론 최근 경향은 무료백신도 좋은 게 많다, 이지만 대부분의 무료백신은 몇 가지 기능이 빠져있기 마련입니다. 결국 돈을 주고 n년 단위의 보호를 받게 될 때, 위에 서술한 이야기에 해당되게 될 경우 어떻게 될까요? 신고를 통해 업데이트를 요구할까요? 물론 맞는 말이지만 그것은 악성 파일이 무엇인지 알 때나 해당 되는 것이며, 대부분의 사람들은 그런 파일을 구별할 줄 모릅니다.

어떠한 백신도 완벽하진 않습니다. 하지만 악성 위협은 나날이 발전하고 있으며, 더욱 더 교묘해집니다. 모든 악성 파일을 사전에 진단하고 검출할 수 있으면 좋겠지만 그것은 말이 되지 않습니다. 그렇다면 지금 시대의 백신 프로그램, 안티 바이러스 프로그램은 그저 예방의 목적으로만 활용되는 걸까요? 미처 예방하지 못하고 감염되면 속수무책으로 당한 뒤, OS를 재설치 하는 것밖에는 방법이 없는 걸까요? 당연하지만 포맷에는 복구 개념도 포함입니다.

만약 그저 예방만의 목적이라면, 백신 프로그램은 '치료'의 목적이 아닌, OS의 정상적인 생활을 조금 더 연장 시켜주는 '인공호흡기'의 목적이라고 보아야 타당할 것입니다. 관련 커뮤니티에서 '악성코드에 감염되었습니다!! 도와주세요!'라는 글이 올라오면, 답변은 '완벽하게 치료하려면 그냥 포맷하세요. 방법은 검색하시구요'라는 답변이 달릴 겁니다. 예전에도 한번 이런 의문을 가져본 적이 있습니다. 작금에 한번 몸소 경험하면서 글로 적어보았습니다.