2018.01.30

67개 안티바이러스 엔진 모두 활용한 악성코드 탐지 9단계

Roger A. Grimes | CSO
사용자 PC 성능에 영향을 주지 않은 채 67개 안티바이러스 엔진들을 모두 사용하는 방법이 있다. 누군가의 컴퓨터를 정리하고 악성 프로그램을 탐지하고 제거하는 일을 일주일만 한다면 수십 건의 감염을 발견하는 것은 드문 일이 아니며, 여러가지 가짜 안티바이러스 프로그램을 설치하거나 악성코드 공격으로 데이터를 암호화해 사용자를 괴롭히는 사례들을 많이 접할 수 있다.

사용자들은 안티바이러스 프로그램이 부정확하고 자신의 눈앞에서 뜨는 명백한 악성코드를 놓치는 경우도 있다고 불평한다. 반면 이 소프트웨어가 사용자를 보호한다는 명목 아래 PC 성능을 건들일 경우, 사용자들을 더욱 성가시게 한다.

사실 '안티바이러스(antivirus)'라는 이름은 정확하게 들어맞지 않다. 요즘 컴퓨터 바이러스는 탐지 비율이 매우 낮게 만들기 때문에 이런 관점에서 본다면 정확한 용어는 아니다. 안티악성코드 프로그램이 더 정확한 단어이며 공급업체들도 이를 선호한다. 하지만 다들 안티바이러스로 알고 있기 때문에 이번 기사에서도 안티바이러스라고 부를 것이다.

모든 안티바이러스 소프트웨어는 상당 부분의 악성코드를 놓치고 있다. 이는 전문 악성코드 제작자가 자신의 악성코드와 봇넷 생태계가 탐지되기 시작하면 자체 업데이트하도록 설계하기 때문이다. 안티바이러스 엔진은 결국 수백만 개의 악성코드 변종을 탐지하지만 항상 이를 회피하기 위해 자체 수정된 것을 찾아내는 데에는 실패하곤 한다.

전체 정확도 비율은 항상 올라가고 내려간다. 그러나 일부 제품은 다른 제품보다 항상 점수가 더 좋기도 하다. 그러나 안티바이러스 제품은 100% 정확하지 않다. 1년 내내 제품이 지속적으로 정확할 수도 없다.

모든 사용자를 위한 최고의 악성코드 탐지
여기서 사용자가 해야 할 일이 있다. 안티바이러스 제품을 설치하는 일이다. 오랫동안 안정성과 성공을 거두고 시스템 성능에 영향이 없는 안티바이러스 제품이면 좋다(만약 조금의 성능 저하는 상관이 없다면 무시해도 된다).

그런 다음, 윈도우 시스인터널 프로세스 익스플로러(Windows Sysinternals Process Explorer) 또는 오토런(Autoruns)을 사용해 바이러스토털(VirusTotal)의 67개 안티바이러스 엔진에 대해 현재 실행중인 실행 파일을 테스트한다. 바이러스 토털에 올라와 있는 안티바이러스 엔진은 사용자들이 얻을 수 있는 최상의 정확성을 제공한다. 오진율이 적다는 얘기다. 자, 이제부터 단계별로 윈도우 컴퓨터에서 작업을 수행해보자.

1. 컴퓨터가 인터넷에 연결되어 있는지 확인하라.
2. 시스인터널닷컴(Sysinternals.com)으로 이동하라. 이는 마이크로소프트 사이트다.
3. 프로세스 익스플로러와 오토런을 다운로드하라. 이 두 사이트는 모두 무료다.
4. 이 프로그램의 압축을 푼다. 프로세스 익스플로러를 사용하는 경우, procexp.exe를 사용하라. 오토런을 사용하는 경우, autoruns.exe을 사용하면 된다.
5. 이 프로그램은 관리자 권한으로 실행되기 때문에 마우스 오른쪽 버튼을 클릭해 관리자 권한으로 실행한다.
6. 프로세스 익스플로러를 먼저 실행하라. 화면 상단의 옵션 메뉴를 선택하라.
7. 바이러스토털닷컴(VirusTotals.com)을 선택하고 확인하라.
8. 이렇게 하면 실행중인 모든 실행 파일이 구글에서 실행, 유지 관리하는 바이러스토털 웹사이트에 제출된다. 라이선스를 수락하라는 메시지가 나타나는 데, '네'라고 대답한 후, 바이러스 토털 웹사이트를 닫고 프로세스 익스플로러로 돌아가자.
9. 프로세스 익스플로러에서 바이러스 토털이라는 열을 볼 수 있다. 전송된 파일에 대한 해시(Hash) 값을 0/67, 1/67, 14/66 등과 같은 비율로 알려준다.

 
Credit: Roger Grimes/IDG

바이러스 토털 비율은 바이러스토털에 제출된 실행 파일(해시)을 악성으로 보고한 바이러스 엔진 수를 나타낸다. 현재 안티바이러스 엔진 목록은 67개이지만 이는 항상 변한다. 어떤 실행 파일이 왜 안티바이러스 엔진이 아닌 다른 안티 바이러스 엔진을 통해 검사되는지 모르겠지만 분모와 관계없이 분자가 0이 아니라면 악성코드를 갖고 있다는 의미가 된다.

만약 1/57 또는 2/57이라면 이는 악성코드가 아니며 오히려 오탐(false positive)일 확률이 높다. 하지만 필자는 수많은 엔진 가운데 하나에서만 탐지된 실제 악성코드를 본 적이 있다. 그래서 해당 프로그램을 만든 이름과 공급업체가 익숙한 지 중복 확인을 해야 한다. 이 때 해당 파일이 생소한 이름이라면 악성일 수 있다. 그러나 일반적으로 분자가 1일 경우는 이 정도에서 넘어가도 된다.

하지만 2일 경우는 조금 더 조사할 필요가 있지만 2일 경우에도 대부분 오탐일 확률이 높다. 다음 화면은 합법적인 공급업체인 윈집 컴퓨팅(Winzip Computing)과 관련된 2가지 오탐의 사례다.


Credit: Roger Grimes/IDG

확실하지 않은 경우, 신고된 비율을 클릭하기만 하면 바이러스토털 페이지로 이동해 어떤 안티바이러스 엔진이 악성코드로 보고했는지 여부를 표시한다. 바이러스토털은 페이지 상단에 2개의 기호를 표시한다. 하나는 붉은 악마이고, 다른 하나는 녹색의 웃는 얼굴이다.

화살표가 녹색 웃는 얼굴을 가리키면, 보통 바이러스토털의 경험에 비춰볼 때, 악의적이 않은 파일로 분류된다. 다음 화면에서 이 안티바이러스 프로그램은 해당 파일이 악의적인 것으로 99% 신뢰를 갖고 있다고 주장하지만, 다른 65개 안티바이러스 프로그램 가운데 하나도 이에 동의하지 않고 바이러스토털 자체 또한 동의하지 않으며 선택한 것은 녹색 웃는 얼굴이다.


Credit: Roger Grimes/IDG

그렇다면 종종 오탐을 보이는 프로그램을 추천하는 이유는 무엇인가? 첫째, 이는 바이러스 익스플로러의 문제가 아니라 바이러스토털의 태생적인 문제다. 일반적으로 연구, 정리 작업을 수행하는 안티바이러스 개발업체의 경우 오탐은 수시간 내에 해결된다.

이렇게 가벼운 오탐을 간과할 수 있다면 바이러스토털만큼 정확한 안티바이러스 엔진은 없다. 이는 약간의 실수를 범할 수 있지만, 다른 많은 유명 안티바이러스가 개별적으로 찾아내는 것만으로는 충분치 않다. 악성프로그램 제작자들도 67개의 다른 엔진들을 사용하기 때문이다. 하나의 안티바이러스 제품은 무엇인가 놓칠 수 있지만, 바이러스토털은 그렇지 않다.

대부분의 악성코드 프로그램은 분자가 3이상인 비율로 포착된다(예 13/67). 사실 필자는 분자가 3 이상일 때 오탐을 보지 못했다. 3이상의 숫자가 나온다면 프로세스 익스플로러에서 마우스 오른쪽 버튼을 클릭하고 파일 위치 경로를 확인한 다음, 해당 프로그램 파일이 절대적으로 신뢰하는 것이 아니라면 프로세스를 종료한다.

그런 다음 실행 파일과 관련된 파일을 수동으로 삭제한다. 그러나 이에는 위험이 따른다. 이는 항상 일부 애플리케이션이나 드라이버를 실행하는 데 필요한 것들이 함께 삭제될 수도 있기 때문에 주의해야 한다.

이것이 걱정된다면 파일이름을 바꿔라. 파일이름을 바꾸는 것만으로도 악성코드 프로그램이 다시 실행되는 것을 막는데 충분하다. 필자는 일반적으로 파일 확장자를 "thisismalware"로 끝나는 이름으로 바꾸어 놓아 다시 볼 때 자신이 한 것임을 기억할 수 있다. 보통 삭제하려는 파일이 악의적인 파일인지 확실하지 않으면 파일 이름을 바꾸고 일주일 동안 기다린 다음, 해당 파일을 삭제하면 이를 삭제하는 것이 어떤 영향도 미치지 않음을 확신할 수 있다.

때로는 악성코드가 사용자에 대항해 프로세스를 중단시키지 못하는 경우도 있다. 그렇다면 앞서 설명한 과정을 반복하되, 대신 오토런을 사용하라. 오토런을 통해 시작시 프로그램이 로드되지 않도록 프로그램 선택을 취소하라.

리부팅하고 프로세스 익스플로러를 다시 실행하라. 일반적으로 악성코드 프로그램이 실행되지 않고 삭제할 수 있다. 오토런 기능을 사용할 수 없고, 파일이 계속 충돌하는 경우, 안전모드로 부팅해 실행 파일을 찾은 다음, 삭제하거나 이름을 변경해야 한다. 필자는 이 단계를 넘어 대항하는 실행 프로그램을 본 적이 없지만 있을 수도 있다. 이 경우 바이러스토털을 사용해 대상 파일을 악의적인 것으로 판단한 안티바이러스 제품을 다운로드한 다음, 컴퓨터에서 실행해 파일을 제거하라. 파일을 수동으로 멈추는 것에 익숙하지 않다면 처음부터 삭제하는 것도 좋다.

바탕화면에서 프로세스 익스플로러 바로가기를 놓아두자. 항상 관리자 권한으로 실행하라. 필자는 보통 바탕화면 바로가기가 아닌 실행파일을 마우스 오른쪽 버튼으로 클릭해 속성을 선택한 다음, 호환성 탭을 선택해 모든 사용자에 대해 설정 변경을 선택한 다음 이 프로그램을 관리자 권한으로 실행을 선택한다. 64비트 윈도우를 실행하는 경우, 64비트 버전으로 실행해야 한다. 요즘은 64비트가 매우 흔하다.

모든 사람들은 프로세스 익스플로러와 오토런을 적어도 일부일에 한번 다운로드하고 실행하는 것이 좋다. 컴퓨터가 의심스러운 동작을 하는 경우에는 더 자주하는 것도 나쁘지 않다.

매번 악성코드가 탐지되진 않는다
사실 이 탐지 방법조차도 완벽하지 않다. 특성 악성코드는 이런 종류의 탐지를 회피할 수 있지만 현재로서는 드문 경우다. 물론 악성코드 제작자가 프로세스 익스플로러 또는 오토런에서 벗어날 수 있는 방법을 사용할 수도 있다. 하지만 지금까지 설명한 방법은 일반 사용자가 할 수 있는 최상의 보호 방법 가운데 하나다.

처음부터 감염을 피하기 위한 장기적인 조언은 브라우저 및 브라우저 애드인 소프트웨어와 같은 소프트웨어가 완전히 패치된 상태를 유지해야 한다. 무엇보다도 해서는 안되는 행동은 자동으로 설치하는 것에 속지마라. 마지막으로 서로 다른 사이트간 비밀번호를 공유해서는 안되며 이중요소 인증을 사용하라.

마지막 3가지 사항들만 제대로 지킨다면 자신은 최고의 보안 방어자가 될 것이다. 무엇보다 자신의 컴퓨터가 인터넷에 연결되어 있다면 어떤 방어도 완벽할 순 없으며, 최선의 탐지 방법을 적용하기 위해서는 조금의 시간 투자가 필요하다는 점을 잊지 말자.

그리고 모든 친구와 동료들에게도 이 탐지 방법을 전달하라. 공격자가 67개 안티바이러스 백신 프로그램을 이기는 것은 어렵다. editor@itworld.co.kr  


2018.01.30

67개 안티바이러스 엔진 모두 활용한 악성코드 탐지 9단계

Roger A. Grimes | CSO
사용자 PC 성능에 영향을 주지 않은 채 67개 안티바이러스 엔진들을 모두 사용하는 방법이 있다. 누군가의 컴퓨터를 정리하고 악성 프로그램을 탐지하고 제거하는 일을 일주일만 한다면 수십 건의 감염을 발견하는 것은 드문 일이 아니며, 여러가지 가짜 안티바이러스 프로그램을 설치하거나 악성코드 공격으로 데이터를 암호화해 사용자를 괴롭히는 사례들을 많이 접할 수 있다.

사용자들은 안티바이러스 프로그램이 부정확하고 자신의 눈앞에서 뜨는 명백한 악성코드를 놓치는 경우도 있다고 불평한다. 반면 이 소프트웨어가 사용자를 보호한다는 명목 아래 PC 성능을 건들일 경우, 사용자들을 더욱 성가시게 한다.

사실 '안티바이러스(antivirus)'라는 이름은 정확하게 들어맞지 않다. 요즘 컴퓨터 바이러스는 탐지 비율이 매우 낮게 만들기 때문에 이런 관점에서 본다면 정확한 용어는 아니다. 안티악성코드 프로그램이 더 정확한 단어이며 공급업체들도 이를 선호한다. 하지만 다들 안티바이러스로 알고 있기 때문에 이번 기사에서도 안티바이러스라고 부를 것이다.

모든 안티바이러스 소프트웨어는 상당 부분의 악성코드를 놓치고 있다. 이는 전문 악성코드 제작자가 자신의 악성코드와 봇넷 생태계가 탐지되기 시작하면 자체 업데이트하도록 설계하기 때문이다. 안티바이러스 엔진은 결국 수백만 개의 악성코드 변종을 탐지하지만 항상 이를 회피하기 위해 자체 수정된 것을 찾아내는 데에는 실패하곤 한다.

전체 정확도 비율은 항상 올라가고 내려간다. 그러나 일부 제품은 다른 제품보다 항상 점수가 더 좋기도 하다. 그러나 안티바이러스 제품은 100% 정확하지 않다. 1년 내내 제품이 지속적으로 정확할 수도 없다.

모든 사용자를 위한 최고의 악성코드 탐지
여기서 사용자가 해야 할 일이 있다. 안티바이러스 제품을 설치하는 일이다. 오랫동안 안정성과 성공을 거두고 시스템 성능에 영향이 없는 안티바이러스 제품이면 좋다(만약 조금의 성능 저하는 상관이 없다면 무시해도 된다).

그런 다음, 윈도우 시스인터널 프로세스 익스플로러(Windows Sysinternals Process Explorer) 또는 오토런(Autoruns)을 사용해 바이러스토털(VirusTotal)의 67개 안티바이러스 엔진에 대해 현재 실행중인 실행 파일을 테스트한다. 바이러스 토털에 올라와 있는 안티바이러스 엔진은 사용자들이 얻을 수 있는 최상의 정확성을 제공한다. 오진율이 적다는 얘기다. 자, 이제부터 단계별로 윈도우 컴퓨터에서 작업을 수행해보자.

1. 컴퓨터가 인터넷에 연결되어 있는지 확인하라.
2. 시스인터널닷컴(Sysinternals.com)으로 이동하라. 이는 마이크로소프트 사이트다.
3. 프로세스 익스플로러와 오토런을 다운로드하라. 이 두 사이트는 모두 무료다.
4. 이 프로그램의 압축을 푼다. 프로세스 익스플로러를 사용하는 경우, procexp.exe를 사용하라. 오토런을 사용하는 경우, autoruns.exe을 사용하면 된다.
5. 이 프로그램은 관리자 권한으로 실행되기 때문에 마우스 오른쪽 버튼을 클릭해 관리자 권한으로 실행한다.
6. 프로세스 익스플로러를 먼저 실행하라. 화면 상단의 옵션 메뉴를 선택하라.
7. 바이러스토털닷컴(VirusTotals.com)을 선택하고 확인하라.
8. 이렇게 하면 실행중인 모든 실행 파일이 구글에서 실행, 유지 관리하는 바이러스토털 웹사이트에 제출된다. 라이선스를 수락하라는 메시지가 나타나는 데, '네'라고 대답한 후, 바이러스 토털 웹사이트를 닫고 프로세스 익스플로러로 돌아가자.
9. 프로세스 익스플로러에서 바이러스 토털이라는 열을 볼 수 있다. 전송된 파일에 대한 해시(Hash) 값을 0/67, 1/67, 14/66 등과 같은 비율로 알려준다.

 
Credit: Roger Grimes/IDG

바이러스 토털 비율은 바이러스토털에 제출된 실행 파일(해시)을 악성으로 보고한 바이러스 엔진 수를 나타낸다. 현재 안티바이러스 엔진 목록은 67개이지만 이는 항상 변한다. 어떤 실행 파일이 왜 안티바이러스 엔진이 아닌 다른 안티 바이러스 엔진을 통해 검사되는지 모르겠지만 분모와 관계없이 분자가 0이 아니라면 악성코드를 갖고 있다는 의미가 된다.

만약 1/57 또는 2/57이라면 이는 악성코드가 아니며 오히려 오탐(false positive)일 확률이 높다. 하지만 필자는 수많은 엔진 가운데 하나에서만 탐지된 실제 악성코드를 본 적이 있다. 그래서 해당 프로그램을 만든 이름과 공급업체가 익숙한 지 중복 확인을 해야 한다. 이 때 해당 파일이 생소한 이름이라면 악성일 수 있다. 그러나 일반적으로 분자가 1일 경우는 이 정도에서 넘어가도 된다.

하지만 2일 경우는 조금 더 조사할 필요가 있지만 2일 경우에도 대부분 오탐일 확률이 높다. 다음 화면은 합법적인 공급업체인 윈집 컴퓨팅(Winzip Computing)과 관련된 2가지 오탐의 사례다.


Credit: Roger Grimes/IDG

확실하지 않은 경우, 신고된 비율을 클릭하기만 하면 바이러스토털 페이지로 이동해 어떤 안티바이러스 엔진이 악성코드로 보고했는지 여부를 표시한다. 바이러스토털은 페이지 상단에 2개의 기호를 표시한다. 하나는 붉은 악마이고, 다른 하나는 녹색의 웃는 얼굴이다.

화살표가 녹색 웃는 얼굴을 가리키면, 보통 바이러스토털의 경험에 비춰볼 때, 악의적이 않은 파일로 분류된다. 다음 화면에서 이 안티바이러스 프로그램은 해당 파일이 악의적인 것으로 99% 신뢰를 갖고 있다고 주장하지만, 다른 65개 안티바이러스 프로그램 가운데 하나도 이에 동의하지 않고 바이러스토털 자체 또한 동의하지 않으며 선택한 것은 녹색 웃는 얼굴이다.


Credit: Roger Grimes/IDG

그렇다면 종종 오탐을 보이는 프로그램을 추천하는 이유는 무엇인가? 첫째, 이는 바이러스 익스플로러의 문제가 아니라 바이러스토털의 태생적인 문제다. 일반적으로 연구, 정리 작업을 수행하는 안티바이러스 개발업체의 경우 오탐은 수시간 내에 해결된다.

이렇게 가벼운 오탐을 간과할 수 있다면 바이러스토털만큼 정확한 안티바이러스 엔진은 없다. 이는 약간의 실수를 범할 수 있지만, 다른 많은 유명 안티바이러스가 개별적으로 찾아내는 것만으로는 충분치 않다. 악성프로그램 제작자들도 67개의 다른 엔진들을 사용하기 때문이다. 하나의 안티바이러스 제품은 무엇인가 놓칠 수 있지만, 바이러스토털은 그렇지 않다.

대부분의 악성코드 프로그램은 분자가 3이상인 비율로 포착된다(예 13/67). 사실 필자는 분자가 3 이상일 때 오탐을 보지 못했다. 3이상의 숫자가 나온다면 프로세스 익스플로러에서 마우스 오른쪽 버튼을 클릭하고 파일 위치 경로를 확인한 다음, 해당 프로그램 파일이 절대적으로 신뢰하는 것이 아니라면 프로세스를 종료한다.

그런 다음 실행 파일과 관련된 파일을 수동으로 삭제한다. 그러나 이에는 위험이 따른다. 이는 항상 일부 애플리케이션이나 드라이버를 실행하는 데 필요한 것들이 함께 삭제될 수도 있기 때문에 주의해야 한다.

이것이 걱정된다면 파일이름을 바꿔라. 파일이름을 바꾸는 것만으로도 악성코드 프로그램이 다시 실행되는 것을 막는데 충분하다. 필자는 일반적으로 파일 확장자를 "thisismalware"로 끝나는 이름으로 바꾸어 놓아 다시 볼 때 자신이 한 것임을 기억할 수 있다. 보통 삭제하려는 파일이 악의적인 파일인지 확실하지 않으면 파일 이름을 바꾸고 일주일 동안 기다린 다음, 해당 파일을 삭제하면 이를 삭제하는 것이 어떤 영향도 미치지 않음을 확신할 수 있다.

때로는 악성코드가 사용자에 대항해 프로세스를 중단시키지 못하는 경우도 있다. 그렇다면 앞서 설명한 과정을 반복하되, 대신 오토런을 사용하라. 오토런을 통해 시작시 프로그램이 로드되지 않도록 프로그램 선택을 취소하라.

리부팅하고 프로세스 익스플로러를 다시 실행하라. 일반적으로 악성코드 프로그램이 실행되지 않고 삭제할 수 있다. 오토런 기능을 사용할 수 없고, 파일이 계속 충돌하는 경우, 안전모드로 부팅해 실행 파일을 찾은 다음, 삭제하거나 이름을 변경해야 한다. 필자는 이 단계를 넘어 대항하는 실행 프로그램을 본 적이 없지만 있을 수도 있다. 이 경우 바이러스토털을 사용해 대상 파일을 악의적인 것으로 판단한 안티바이러스 제품을 다운로드한 다음, 컴퓨터에서 실행해 파일을 제거하라. 파일을 수동으로 멈추는 것에 익숙하지 않다면 처음부터 삭제하는 것도 좋다.

바탕화면에서 프로세스 익스플로러 바로가기를 놓아두자. 항상 관리자 권한으로 실행하라. 필자는 보통 바탕화면 바로가기가 아닌 실행파일을 마우스 오른쪽 버튼으로 클릭해 속성을 선택한 다음, 호환성 탭을 선택해 모든 사용자에 대해 설정 변경을 선택한 다음 이 프로그램을 관리자 권한으로 실행을 선택한다. 64비트 윈도우를 실행하는 경우, 64비트 버전으로 실행해야 한다. 요즘은 64비트가 매우 흔하다.

모든 사람들은 프로세스 익스플로러와 오토런을 적어도 일부일에 한번 다운로드하고 실행하는 것이 좋다. 컴퓨터가 의심스러운 동작을 하는 경우에는 더 자주하는 것도 나쁘지 않다.

매번 악성코드가 탐지되진 않는다
사실 이 탐지 방법조차도 완벽하지 않다. 특성 악성코드는 이런 종류의 탐지를 회피할 수 있지만 현재로서는 드문 경우다. 물론 악성코드 제작자가 프로세스 익스플로러 또는 오토런에서 벗어날 수 있는 방법을 사용할 수도 있다. 하지만 지금까지 설명한 방법은 일반 사용자가 할 수 있는 최상의 보호 방법 가운데 하나다.

처음부터 감염을 피하기 위한 장기적인 조언은 브라우저 및 브라우저 애드인 소프트웨어와 같은 소프트웨어가 완전히 패치된 상태를 유지해야 한다. 무엇보다도 해서는 안되는 행동은 자동으로 설치하는 것에 속지마라. 마지막으로 서로 다른 사이트간 비밀번호를 공유해서는 안되며 이중요소 인증을 사용하라.

마지막 3가지 사항들만 제대로 지킨다면 자신은 최고의 보안 방어자가 될 것이다. 무엇보다 자신의 컴퓨터가 인터넷에 연결되어 있다면 어떤 방어도 완벽할 순 없으며, 최선의 탐지 방법을 적용하기 위해서는 조금의 시간 투자가 필요하다는 점을 잊지 말자.

그리고 모든 친구와 동료들에게도 이 탐지 방법을 전달하라. 공격자가 67개 안티바이러스 백신 프로그램을 이기는 것은 어렵다. editor@itworld.co.kr  


X