최근 보안 관련 기사를 보면서 눈에 띄는 기사가 하나 보였다. 다름 아닌 ‘컴퓨터 백신’이라 불리는 안티 바이러스의 무용론에 대해 언급한 기사였다.
사회생활을 시작하고부터 지금까지 90% 가까이 보안업계에서 일을 해오다보니 아무래도 보안 관련 기사나 소식에 관심이 많이 가는 것은 어쩔 수 없다. 물론 내 전문 보안분야는 해킹이나 안티 바이러스 계열이 아니라 주로 기업형 보안 솔루션이나 서비스 혹은 DRM, 인증, SIEM 등의 솔루션이었다. 게다가 지금은 DNS를 기반으로 하는 DDoS 방어 서비스를 만들고 있기에 더더욱 안티 바이러스 분야는 내 주전공 분야가 아니다. 다만 관심은 가기에 안티 바이러스 무용론에 대해서 기사를 보고 나름 생각한 부분을 좀 적어보려고 한다.
안티 바이러스는 주로 ‘백신’이라 불린다. 한국에서는 안랩의 V3나 하우리의 바이로봇, 이스트소프트의 알약이 많이 쓰인다. 내가 다니는 회사는 카스퍼스키를 사용하고 있고, MS가 윈도에 기본으로 탑재한 디펜더도 괜찮은 안티 바이러스 제품이다. 해외에서는 시만택의 NAV(노턴 안티 바이러스)나 어베스트 등의 제품도 많이 사용한다고 한다.
어찌 되었건 많은 안티 바이러스 제품들이 있고, 무료로 또 유료로 사용되고 있는 것이 사실이다.
안티 바이러스도 비약적으로 많이 발전했다. 예전에는 검색 속도도 늦고 바이러스 DB의 업데이트도 늦곤 했는데, 지금까지 꾸준히 인기를 끌고 있는 제품들은 속도도 빠르고 바이러스 DB의 업데이트도 주기적으로 잘 이뤄지고 있다. 또 오탐이나 미탐도 많이 줄어든 편이다.
물론 국내 안티 바이러스 제품보다 해외 안티 바이러스 제품들이 더 높은 평가를 받고 있는 것은 사실이다. 하지만 국내 제품은 속도에 강점이 있고 해외 제품은 정확성에 강점이 있다. 그러니 대개 알아서 잘 찾아 쓰는 듯싶다. 그리고 요즘에는 ‘차세대 안티 바이러스’라 불리는 제품들도 많이 나오고 있는 상황이다.
시그니처 매칭 방식의 전통적 안티 바이러스 솔루션의 한계
하지만 안티 바이러스의 한계는 분명하다. 일단 안티 바이러스의 방식은 전통적으로 시그니처를 통한 패턴 매칭 방식이다. 악성코드의 특징을 시그니처로 만들고 그 시그니처와 파일을 비교하여 동일하거나 몇 % 이상 비슷하면 잡아내는 방식이다. 그러다보니 조건이 해당 악성코드 시그니처가 반드시 존재를 해야 검출할 수 있다. 즉, 알려지지 않은 신규 악성코드는 누군가가 감염되거나 신고되어 패턴을 분석하고 시그니처를 추출하지 않는 한 선제 대응이 불가능하다는 단점이 있다.
이는 시그니처 매칭 방식의 현재 안티 바이러스 솔루션이 갖고 있는 고질적인 문제이기도 하고, 모든 시그니처 매칭 형식의 솔루션이 갖고 있는 공통적인 문제이기도 하다.
또한 예전보다야 많이 빨라지기는 했지만 그래도 바이러스 시그니처 DB의 업데이트가 느리다. 이는 악성코드가 등장하면 그것을 분석하는데 보통은 사람이 많이 했기에 그랬다. 요즘은 워낙 바이러스 시그니처들이 많아 비슷한 유형의 변형 악성코드 분석이 좀 용이해졌다. 가상화 기법도 쓰고 머신러닝을 통해 분석하기도 하고 그래서 예전보다는 확실히 많이 빨라진 것은 사실이다.
하지만 어찌 되었건 누군가의 신고가 없다면 선제적으로 대응하기 어렵다는 단점은 존재한다. DB를 업데이트하지 않으면 무용지물인 것은 당연한 얘기고 말이다. 시그니처 DB의 업데이트가 빨라졌다고 하지만, 그것보다 더 빨리 신규 악성코드가 증가한다는 것도 문제다. 그래서 실시간 대응이 어렵고, 그래서 백신 무용론이 자꾸 나오는 것이다.
차세대 방식의 오탐 및 성능의 한계
앞에서는 전통적인 방식에 대해서 이야기했다. 요즘은 차세대 방식과 전통적인 방식을 혼용해서 안티 바이러스 솔루션이 나오기 때문에 따로 얘기하기는 어렵다. 전통적인 방식은 보통 시그니처에 100% 매칭이나 98% 이상의 매칭인 경우에만 탐지를 했다. 거기에 약간의 변형 정도를 잡아내는 정도였다. 그러다 보니 미탐은 나오는데 오탐이 나올 확률은 많지 않았다.
하지만 차세대 방식이라 불리는 것은 시그니처 매칭 방식은 비슷하게 쓰되 유사 시그니처를 자동으로 생성하고 그것에 대해 매칭을 한다. 와중 정상 패턴을 유사 시그니처로 인식하는 경우도 왕왕 발생하면서 오탐이 많아졌다. 차세대 방식은 기존 악성코드의 변형도 나름 잘 잡아내는 알고리즘을 사용하는데, 변형에 대해서는 미리 등록된 시그니처가 아닌 등록된 시그니처를 기반으로 내부적으로 알고리즘을 돌려 변형이라 예상되는 시그니처를 제작, 비교한다.(물론 다른 방식을 이용하는 경우도 있다) 그 변형 시그니처가 악성코드 시그니처가 아닐 가능성도 있기에 오탐이 종종 나온다.
뭐 가상화로 돌려서 행위를 인식해서 찾아낸다고 하는 행위기반 안티 바이러스 솔루션들도 마찬가지다. 정해진 액션 루트를 통해 찾아내는 방식이기 때문에 시그니처 매칭 방식과 크게 다를 바 없다. 다만 오탐은 이게 좀 덜하다. 하지만 상대적으로 느리다. 물론 요즘 PC의 성능이 워낙 좋아져서 상대적으로 속도를 만회하고 있기는 하지만서도.
없으면 옛날 것에 당한다
뭐 이런 이유 때문에 “과연 안티 바이러스 솔루션이 의미가 있느냐” 하는 백신 무용론이 자꾸 대두되는 것이 사실이다. 그러면 안티 바이러스는 아예 쓸모가 없는 것일까?
아니다. 없으면 더 골치 아픈 일이 일어날 수 있다. 먼저 아직도 인터넷에는 우리가 이미 사라졌다고 생각하는 수년 전, 혹은 십수 년 전의 악성코드들이 돌아다닌다. 다만 현재의 안티 바이러스들이 알아서 기존 악성코드들은 다 잡아주기 때문에 존재의 유무를 못 느낄 뿐이다. 만약 안티 바이러스 솔루션을 사용하지 않는다면 어느 한순간의 실수로 십수 년 전의 악성코드에 감염되어 난처해질 수 있다.
만약 지금은 없어졌다고 생각하는 1세대 악성코드의 대표 (C)브레인이나 다크 어벤저에 감염되었다고 생각해보자. 얼마나 황당하겠는가? 요 몇 년 사이에 벌어진 다양한 해킹 사고들을 보면 새로운 악성코드에 당한 것이 아니라 다 예전의 악성코드에 당했다는 것이었다. 이런 부분들을 생각해보면 안티 바이러스 솔루션의 중요성을 알 수 있을 것이다.
또한 사용자가 아무리 잘 방어하고 신경 써서 PC를 사용한다고 하더라도 웹페이지에서 자동 스크립트를 통해서 실행되는 악성코드까지 제어하기는 어렵다. 많은 랜섬웨어들이 이런 방식으로 감염을 시켰는데, 이는 사용자 문제보다는 웹서비스 서버의 문제고 관리자의 문제인지라 사용자의 제어 수준을 벗어났기에 힘들다는 것이다. 안티 바이러스의 실시간 감시 기능이 없다면 이런 경우에는 그냥 당하는 수밖에 없다.
이런 이유로 안티 바이러스가 계륵 같은 존재가 되는 것이 아닐까 싶다.
백신 무용론은 말도 안 되는 얘기
일단 위의 내용을 기반으로 대응방식을 생각해봐야 할 듯싶다.
전통적인 시그니처 매칭 방식의 안티 바이러스 솔루션은 아무래도 미래의 악성코드에 대응할 수 없는 것이 사실이다. 하지만 옛날 악성코드는 여전히 돌아다니고 있고 사용자의 의지가 아닌 상태에서의 감염도 가능하기 때문에 없는 안티 바이러스가 없으면 불안하다.
차세대 안티 바이러스라 불리는 솔루션들은 오탐이 있기는 하지만 어느 정도는 신규 악성코드에 대한 대응이 가능하다. 하기사 요즘은 차세대와 전통 방식을 혼용해서 솔루션을 내놓기 때문에 함께 쓰라는 얘기를 안 해도 함께 쓰게 되니까 다행이다.
즉, 안티 바이러스 무용론은 말도 안되는 얘기다. 새로운 악성코드에 대해서는 늘 조심하고 기존의 악성코드에 대해서는 지속적으로 시그니처 DB의 업데이트로 안티 바이러스를 최신으로 유지해서 방어하는 것이 현재로서는 최선의 방법이 아닐까 하는게 내 생각이다.
원문: 학주니닷컴