상세 컨텐츠

본문 제목

[알약루머] 3. 알약은 비트디펜더 엔진에 UI만 씌운 백신이다??

STORY

by ESTsoft 2012. 1. 25. 16:54

본문


'알약'은 비트디펜더 엔진빨이고 이 엔진에 UI만 씌운 백신에 불과하다??!!


'알약'이 멀티엔진을 사용하기 때문에 위와 같은 말씀을 하시는 분들이 계십니다. 정말 이런 이야기는 이스트빌딩 3층에서 근무하고 있는 '알약개발부문' 임직원들의 존재가치가 무의미해지는... 눈물을 흘릴 이야기입니다. '알약개발부문' 정말 열심히 일하고 더 좋은 제품을 만들기 위해서 노력하고 있습니다. 


백신프로그램에서 '엔진'이 중요하긴 합니다만, '엔진'이 전부는 아닙니다. 오늘은 이런 '잘못된 프레임'을 해소하고자 '알약'이 어떻게 동작하고 어떻게 만들어 지는지에 대한 내용을 간략히 소개하려고 합니다. 


백신프로그램이 '멀티엔진'을 사용하는 이유는?


 '알약'(국내 공개용2.1 기준)의 엔진은 자체엔진인 '테라엔진'과 '비트디펜더엔진' 그리고 '소포스엔진'의  트리플엔진으로 구성되어 있습니다. 최근 'VB100인증'에 참여하고 있는 '알약'은 해외용 버전이고, 해외버전의 경우 '테라 엔진'+'비트디펜더 엔진'으로만 구성되어 있습니다. 국내 사용자분들은 '소포스엔진'까지 선택하여 사용 가능하도록 서비스하고 있습니다.

 

'알약'뿐 아니라 세계적으로 유명한 백신인 G-DATA, F-secure, Trustport, Ashanpoo, Coranti 등도 '멀티엔진'을 탑재하고 있는데요. 백신 프로그램이 '멀티엔진'을 사용하는 이유가 뭘까요? 


그 이유는, 현실적으로 하나의 엔진(또는 하나의 업체) 보다는 '멀티엔진'이 전세계에 유포중인 모든 악성코드에 대응을 하거나 샘플을 수집하는데 유리하기 때문입니다. 현재의 악성코드는 국내 또는 국외의 구분없이 어디서든 만들어져서 어디로든 퍼지고 있는 상황입니다.


 '알약'의 경우, 주로 국내 사용자를 타겟으로 하는 악성코드는 자체엔진인 '테라엔진'을 통해 처리하고, 유럽이나 미주지역 사용자를 타겟으로 하는 악성코드는 '비트디펜더'/'소포스' 등의 검증된 엔진을 활용하여 대응하는 구조입니다. 

 

'멀티엔진'을 사용하는 것 만으로도 많은 기술개발이 필요합니다.


이런 상황이라면 백신은 당연히 많은 엔진을 사용하는 것이 유리합니다. 다수의 엔진을 사용하면 당연히 더 많은 악성코드로부터 더 안전하게 PC를 지킬수 있는것이 당연합니다. 


그러나, '멀티엔진'을 사용하면 보안 효과는 좋겠지만 반대급부로 발생하는 프로그램이 무거워지는 등의 '성능저하'이슈도 있고, 또 각기 다른 엔진을 한번에 사용하는것이기 때문에  엄청나게 발생하는 '오탐지'에 대한 대비도 해야합니다. 이런 복잡하고 다양한 기술적인 문제를 해결해야 사용자들이 사용할 수 있는 좋은 백신프로그램이 됩니다. 


'알약'의 경우, 트리플엔진을 사용하면서도 성능저하 문제가 발생하지 않도록 여러가지 기술을 사용하고 있고, '오탐검증시스템' 및 기타 '내부처리시스템'을 통해 오탐지를 최소화하는등의 커스터마이징 과정을 거치고 있습니다. 


'알약'의 '검사 프로세스'는 다음과 같이 개발되었습니다.


물론, 백신 프로그램에서 '엔진'은 중요한 역할을 합니다. 

하지만 같은 엔진을 사용하는 백신이라 하더라도 VB100-RAP테스트 같은결과를 보면 탐지력에서 차이가 있습니다. 이런 차이는 '백신'이라는 프로그램은 '엔진'외에도 개발해야할 부분들이 많고, 이런 기술력의 차이가 성능의 차이를 만든다는 것을 증명합니다.


<'알약'의 '검사기능' 프로세스 개요도>

  


[알약 검사 프로세스 자세히보기(더보기 클릭)]



앞서 말씀드렸듯 '알약'의 엔진은 자체엔진인 테라(Tera)엔진과 비트디펜더(Bitdefender) 엔진의 듀얼 엔진을 기본으로 하고 소포스(Sophos)엔진을 추가하여 트리플 엔진으로 동작 할 수 있도록 구성되어 있습니다. '엔진'은 파일이나 프로세스의 메모리 정보 등을 전달 받아서 악성인지 아닌지 여부를 판단해주고, 악성 코드인 경우 치료/제거 작업을 수행하는 역할을 합니다. 

  

하지만 '엔진' 자체로는 백신으로써 아무런 역할을 수행 할 수 없기 때문에 '알약'이 엔진에 파일이나 프로세스 정보를 전달해 주어야 하고 악성코드를 치료/제거 하기 위한 여러 가지 작업들을 수행해 주어야 합니다. 예를 들어, 자기자신을 은폐하는 악성코드의 경우 '알약'이 숨겨진 악성코드를 찾아 그 정보를 엔진에 질의해야 정상적인 검사가 이루어질 수 있고 은폐된 악성코드를 치료/제거 하기 위해서도 여러 가지 작업을 수행해야 합니다.


엔진이 백신에서 중요한 역할을 수행하기는 하지만 엔진 만으로는 백신을 만들 수 없습니다. '알약'은 특정 엔진에 종속되어 있지 않으며 여러 개의 엔진을 사용하기 위해 스마트스캔과 같은 다양한 최적화 기술을 통해서 악성코드 탐지 성능을 높이면서도 시스템 성능에 영향을 최소화 할 수 있도록 하고 있습니다.


위의 이미지는 사용자가 '알약'에서 '검사'를 클릭했을 경우에 진행되는 '검사 프로세스'만의 개요를 나타낸 것입니다. 좌측은 엔진부분이고, 우측의 프로세스는 제목만 적었지만 실제로 각 단계별 복잡한 개발이 필요합니다. '검사 프로세스'외에 '실시간감시', '자가보호', '기타 부가기능'등은 별도의 프로세스로 개발하여야 하고, 이런 프로세스들이 합쳐져서 하나의 백신 프로그램을 완성합니다. 이스트소프트 '알약개발부문'의 '알약클라이언트개발팀', '알약커널개발팀', '알약서버개발팀', '알약분석1/2팀', '알약대응팀', '알약운영팀'등이 각각의 영역에서 고유한 개발과 협업을 통해 더 좋은 '알약'을 위해 오늘도 열심히 만들고 있습니다. 


'테라엔진'도 좋습니다!! 그리고 계속 좋아지고 있습니다!


 앞서 말씀드렸듯, '테라엔진'은 국내 악성코드에 특성화되어 있는 엔진이며 트리플엔진의 첫번째 메인 엔진입니다. 세컨드 엔진인 '비트디펜더'나 '소포스'엔진은 해외발 악성코드의 탐지에 유리합니다. 


2011년 한해동안 알약에서 발표한 월간 보안동향보고서의 월별 TOP15 악성코드를 종합한 지난해 한해동안 '알약'이 잡아낸 엔진별 악성코드 탐지현황을 보면 이 중에서 '테라엔진'이 62%, '비트디펜더엔진'이 38%의 비율을 보이고 있습니다.

2011엔진별 탐지현황.xlsx



알약이 2.X버전대 들어오면서 기존의 엔진을 처음부터 다시 개발하였구요. 앞으로도 '테라엔진'의 업그레이드에 최선을 다할 계획입니다. '알약'을 사랑해주시고, 아껴주시는 사용자 여러분들 덕분에 지속적으로 발전하고 있습니다. 응원해주세요!! 감사합니다~!





관련글 더보기

댓글 영역