본문 바로가기
AhnLab 보안in

클라우드 시스템이 악성코드를 놓칠 수 없는 이유!

by 보안세상 2020. 4. 11.

2011.05.27

 

 안티바이러스 제품(백신)은 "더 많은" 악성코드를 "더 빨리" 그리고 오류 없이 "더 정확히" 잡는 것이 목표입니다. PC와 같이 보호해야 하는 장치와 위협에 대응하는 센터를 가상의 단일 네트워크로 묶어서 바라보는 클라우드 개념 이 세 가지 목표를 달성하는데 있어 새로운 패러다임을 가져다 줍니다. 여기서는 “더 빨리”에 대해서 살펴보기로 할까요.

그림 1 안티바이러스 제품 성능의 주요 요소

 

“더 빨리” 대응하기 위해서는 세 가지가 만족되어야 합니다. 더 빠른 샘플과 위협정보의 수집, 더 빠른 분석과 진단, 더 빠른 엔진 배포가 필요하다. 이 세 가지는 서로 비슷한 수준으로 향상되어야 합니다. 어느 한 분야가 느리다면 의미가 반감되고 마는데요. 예를 들어 정보의 탐지와 분석은 10분 이내에 처리되었는데 엔진 배포를 통한 대응에 하루가 걸린다면 빠른 대응이라고 하기엔 부족할 것입니다.


사실 가장 이상적인 "더 빨리" 기능은 사전 방어(Proactive Defense)와 같은 기능입니다. 이는 엔진업데이트 없이 제품 자체적으로 샘플의 행동이나 어떤 휴리스틱적 특징을 보고 악성 여부를 판단하는데요. 악성코드가 제작되기도 전에 대비하는 차원이지요. 악성코드가 나오자 마자 잡아낼 수만 있다면 최고일 것입니다. 이론적으로 사전방어 기능보다 더 빠른 대응 방법은 없습니다. 이론대로 잘 만들어졌다면 사전방어 기능은 대부분의 신종 악성코드를 잡아낼 것 입니다.


그러나 안타깝게도 메이저 업체의 사전방어기능은 많은 경우에 있어 무용지물이 되고 맙니다. 왜냐하면 악성코드 제작자는 개발한 악성코드를 배포하기 전에 진단되는지 안 되는지 사전 테스트를 하기 때문입니다.  만약 진단된다면? 진단하지 않을 때까지 변종을 만들어내고 테스트를 거듭한다.  진단되지 않는 버전이 나오면 그제서야 배포를 시작한다. 때문에 아무리 좋은 사전방어기능으로 무장하고 있다고 해도 악성코드를 미리 막을 수는 없다. 진단되지 않을 때까지 테스트하기 때문이다. 결국 악성코드를 사전적으로 미리 막아 보려는 노력은 그 노력에 비해 효과는 크지 않다고 볼 수 있다. 결국 악성코드가 나타난 이후에 얼마나 빠른 대응할 수 있는가? 이것이 중요하다.

 

그림 2 악성코드 제작자는 악성코드를 배포하기 전에 AV제품으로 기진단되고 있지는 않은지 확인한다


클라우드 시큐리티의 가장 큰 특징은 샘플과 위협 데이터를 중앙 센터에서 모아서 집중 분석하고 진단하는 것입니다.

 모든 샘플은 중앙 서버로 모이고 자동으로 또는 분석가에 의해서 진단 처리됩니다. 여기에 재미있는 상황이 있는데요. 악성코드 제작자 입장에서는 사전 진단 테스트를 하려면 샘플을 스스로 보안 업체에 보내야만 하기 때문입니다. 네트워크 스캔으로 악성코드를 검사하다 보니 샘플을 보안업체에 보내기 전까지는 진단되는지 안 되는지 알 수가 없습니다. 제작한 악성코드를 배포하기 전에 테스트를 해봐야겠는데 테스트를 하자니 샘플을 보안 업체로 보내야 되고 안보내자니 테스트를 할 수 없는 상황입니다. 매우 찜찜하지만 악성코드 제작자 입장에서는 테스트를 안 할 수는 없으니 결국 샘플을 보낼 수 밖에 없지요. 악성코드 제작자가 스스로 샘플을 보내기 때문에 빠른 대응에 필요한 첫 번째 단계 즉 빠른 샘플 수집단계가 저절로 만족돼버리는 상황이 연출됩니다.


ASD의 경우 하루에 수십만 개의 신규 샘플이 접수됩니다. 접수된 샘플의 상당수는 정상 파일이기 때문에 이들을 분석하여 악성코드를 걸러내는 것은 매우 어려운 도전 과제입니다. 악성코드 제작자가 직접 샘플을 보내 주었다 해도 수많은 정상 샘플 사이에 묻혀서 지나가 버리기 십상이구요. 샘플은 정적으로 또 동적으로 자동 분석 처리됩니다. 샘플이 자동 처리된다는 것은 사전방어기능과 같이 미리 만들어진 알고리즘에 의해서 처리되는 것입니다. 따라서 악성코드 제작자는 반복적으로 샘플을 서버로 보내서 테스트를 진행하고 진단되지 않는 샘플을 배포하는 전략은 일견 여전히 유용하다고 볼 수 있습니다.


그러나, 자동 처리된 샘플은 이후에도 계속 모니터링 됩니다. 클라우드 시스템 어디선가 악성 행위를 하지는 않는지, 다른 형태로 변경되지는 않는지, 어떤 특이한 행동을 하지는 않는지 등등 계속 모니터링 됩니다. 악성코드는 본질적으로 뭔가 나쁜 짓을 하는 프로그램입니다. 나쁜 짓을 하기 위한 프로그램은 정상적이지 않은 뭔가 특이한 구석이 있기 마련입니다. 그 본연의 목적을 달성하기 위해 시스템에 어떤 형태로든 위해를 가할 수 밖에 없습니다. 이런 특이점들은 서로서로 연관관계를 맺는 경우가 많고, 이들 특이 사항들이 모이고 모여서 샘플의 본질을 드러냅니다. 악성코드가 처음에 잘 숨었다 해도 활동을 시작하기 위해서 꼼지락 하는 순간 발견돼버리고 마는 것입니다.

 

그림 3 클라우드 시큐리티 네트워크 내에서 악성코드가 숨을 곳은 없다


클라우드 시큐리티 시스템이 없었던 시절의 악성코드는 '닌자'같은 존재였습니다. 눈에 보이지도 않거니와 소리도 없이 살금 살금 다가와 우리를 해쳤다. 속수무책으로 당할 수 밖에 없었지요. 그러나 이제는 다릅니다. 이젠 악성코드가 눈에 보입니다. 오히려 특이하기 때문에 잘 보이게 됩니다. 영화 매트릭스를 생각해 볼까요. 남자가 봐도 멋있는 키아누 리브스가 주인공 ‘네오’가 되어 인간을 연료(?)로 사용하는 매트릭스 시스템을 종횡무진하고 다닙니다. 그러나, 매트릭스 시스템을 우리가 쓰는 PC라고 생각해 보면 ‘네오’는 시스템을 위협하는 악성코드입니다. 시스템 입장에서 보면 ‘네오’와 같이 시스템을 어지럽히는 특이한 프로그램은 제거하는 편이 낫습니다. 비록 영화에서는 악역이지만 클라우드 시스템은 시스템에서 문제를 일으키는 프로그램을 찾아서 제거하는 "스미스"와 닮았다고 할 수 있습니다. ‘스미스’는 시스템에 문제를 일으키는 악성코드를 놓치지 않고 끝까지 추적합니다. 같은 맥락으로 PC가 클라우드 시큐리티에 참여하고 있는 이상 악성코드는 더 이상 숨을 수 없을 것입니다. Ahn 


 

그림 4 시스템의 안정적인 운영을 위하여 불철주야 노력하는 안철수연구소 ASD 클라우드 시스템 운영 센터의 모습

 황용석프로그래머

안철수연구소에서 ASEC 분석1팀의 책임연구원으로 활약하고 있으며 세계 최고 수준의 진단율과 위협 대응력을 목표로 클라우드 기반 시큐리티 시스템 ASD(AhnLab Smart Defense)를 개발하고 있다.