본문 바로가기

안랩人side/안랩팀워크

보안전문가가 말하는 내 PC 좀비 안 만드는 방법

내가 즐겨 찾는 인터넷 쇼핑몰이 악성코드에 감염되었다면?
내가 가입한 대형 포털 사이트에서 누군가 내 개인 정보를 해킹해간다면?
이런 문제를 해결하기 위해 지난 8월 안철수연구소는 신개념 웹 보안관제 서비스인 '사이트케어(AhnLab SiteCare)'를 출시했다. '사이트케어'가 어떤 역할을 하는지 직접 기획, 개발한 김창희 선임연구원과 박종필 주임연구원의 이야기를 들어보았다.


-'사이트케어'는 기존 웹 방화벽과 어떻게 다른가요?
'사이트케어'는 웹 콘텐츠 관점에서 보는 솔루션이고, 방화벽은 서버 관점, 소스 관점에서 패킷 중심으로 보는 솔루션이에요. 웹 서버가 인터넷 서비스 상에서 인터넷 라인에 물리면 그 사이에 웹 방화벽이 패킷들을 들여다봐요. 외부에서 공격이 들어오는지를 보는 거죠. 라인 중간에 물려서 패킷을 보니까 성능 이슈가 생겨요. 왜냐하면 단순한 서비스여도 사람이 많이 몰리면 서버는 버거워하하는데, 가운데 걸쳐서 지나다니는 걸 보니 많은 기능을 주면 줄수록 성능에 문제가 생기죠. 또 웹 서버만 볼 수 있기 때문에 요즘처럼 사용자가 올려놓은 콘텐츠, 광고처럼 다른 콘텐츠에 붙는 서비스는 전혀 알 수가 없는, 약간 폐쇄적인 보안 장비에요. '사이트케어'는 이 문제를 해결하기 위한 것이고요.

-‘사이트케어’는 웹 서버가 아닌 웹사이트 내 콘텐츠 검사로 사용자 보호에 초점을 맞춘다고 했는데, 웹 서버 검사와 웹사이트 내 콘텐츠 검사의 차이점은 무엇인가요?
개발자가 서비스를 하기 위해 웹 서버에 콘텐츠를 올리는데, 서버에 있는 소스와 웹브라우저 상에 보이는 것은 달라요. 즉, 개발되는 내용과 웹브라우저에 보이는 내용이 다른거죠. 왜냐하면 웹브라우저 입장에서는 보이는 화면 자체가 개발자가 만들어 놓은 환경에 따라 조합된 마지막 결과물이거든요. 그러다보니 서버에 있는 소스가 마지막 결과물이 되기 위해서 어떤 형태로 변화하는지를 전혀 알 수 없어요. 그리고 웹2.0에서 가장 중요한 요소 중 하나가 동적인 스크립트에요. 즉, 이 쪽에서 프로그래밍된 내용에 따라서 환경에 동적으로 뭔가가 생성되고 동적으로 변화하는 콘텐츠가 있어요.

이렇게 변화하는 콘텐츠나 동적인 콘텐츠, 심지어는 동적으로 페이지가 바뀔 수도 있기 때문에 이런 것을 일일이 다 보려면 서버에만 붙어서는 확인하기 어려워요. 그래서 웹브라우저 입장에서 이것들이 동적으로 움직일 때 어떤 결과물을 내는지, 그리고 어떤 현상이 계속 움직이는지까지 봐야 해요.

'사이트케어' 출시 전에 출시한 '사이트가드'는 백신처럼 설치하는 솔루션이에요. 사용자가 URL을 입력하여 사이트에 들어갈 때마다 그 페이지가 안전한지 아닌지를 검사해요. 그런 데이터를 2년 넘게 모아보니 웹에 대한 공격이 예전처럼 웹 방화벽만으로는 보호할 수 없는 형태들이 보였어요. 공격자가 스크립트를 여러 단계로 암호화, 난독화, 은닉화하기 시작하더라고요.

암호화, 은닉화한 코드는 웹 방화벽이 해석할 수가 없어요. 오직 브라우저에서만 해석할 수 있죠. 플래시의 취약점을 이용해서 악의적인 코드를 실행시킨다든지 하는 행위를 브라우저 관점에서 봐줘야 해석이 가능해요. 이러한 사례가 점차 쌓이다 보니 '사이트케어'를 만들 때는 브라우저 관점에서 해석하는 컨셉으로 만들었죠. '사이트케어'는 사용자가 웹브라우저를 통해서 어떤 위협에 처할지, 콘텐츠들이 변화하면서 어떠한 위협을 가할지 등을 중점적으로 보는 솔루션이에요.

-웹 방화벽이 탐지할 수 없는 난독화 스크립트를 좀더 자세히 설명해주시겠어요?
웹 방화벽은 시그니처 위주로 탐색을 해야 하기 때문에 문자의 형태가 똑같아야 해요. 그런데 난독화 스크립트는 변수 하나의 길이가 약 300자에요. 사람은 못 알아보는 형태로요. 그런데 웹 방화벽은 시그니처를 기반으로 하기 때문에 매일 검사를 해도 검사를 못하고 혹시나 말도 안 되는 시그니처를 웹 방화벽에 올리면 그것이 수시로 바뀌어요. 즉, 코드를 재생산할 수 있는 구조이기 때문에 실제로 그것을 돌려봐서 최종적인 결과물을 보지 않는 한 모르는 거죠.

그런데 웹 방화벽은 웹 서버와 인터넷망 사이에 물려 있는 거라서 중간에서 해석을 할 수가 없어요. '사이트케어'는 URL 콘텐츠를 실제로 브라우저가 작동하는 것처럼 작동을 시켜서 그 결과가 문제가 생기면 사용자에게 알려주는 거죠.

-'사이트케어'를 개발하면서 에피소드가 있었다면?
저희가 프로젝트를 진행하면서 가장 큰 애로사항이 결혼과 출산이었어요. 3월에 엔진이 나왔는데 그때 제 결혼 날짜가 3월 13일이고, 다른 팀원이 1주일 전이었어요. 한창 바쁜 시기여서 나머지 사람들이 두 명의 몫까지 맡아서 주말에 나와서까지 일을 하고 매일 12시 넘어서 집에 들어가곤 했죠.

재밌던 건 결혼뿐 아니라 출산까지 겹친 거였어요. 두 달 간 매일 야근을 하고 마침내 엔진이 발표되었어요. 관제형 '사이트케어'는 8월에 나왔고, 얼마 뒤에 납품형 서비스가 나왔는데 한 팀원이 10월에 출산이고 제 딸 출산 예정일이 12월, 다른 팀원이 1월 말이에요. 프로젝트 팀이 결성되자마자 결혼 2번에 출산이 3번이나 있어서 힘들기도 하고 많이 재밌기도 했어요.

또 PM(프로젝트 매니저)의 에피소드 하나를 말하면, 초창기 때는 웹 콘텐츠를 봐야 하기 때문에 가상 환경에 웹브라우저를 띄워서 사이트들을 계속 브라우징했어요. 그래서 위험한 상황이 생기면 그것을 DB화했죠. 낮과 밤 없이 일을 하던 PM이 집에서 화면을 띄우고 브라우징을 한 적이 있었어요. 잠깐 화면을 켜놓고 나간 사이에 아내가 와서 모니터를 보게 됐는데 때마침 성인 사이트가 브라우징되고 있어서 매우 난감했다고 하더라고요.

-내 컴퓨터가 좀비PC가 되지 않게 하려면 어떻게 해야 하나요?
일단 이상한 사이트는 들어가지 말고, 컴퓨터는 정기적으로 포맷을 해야 해요. 또 윈도우 OS(운영체제)는 최신 버전의 보안 패치들을 계속 업데이트해야 하고요. 좀비PC가 된 컴퓨터들을 분석해보면 대부분 보안 패치를 안 했거나, 백신 소프트웨어는 깔았어도 최신 업데이트가 안 되어 있거나, 아니면 보안 제품이 아예 없는 경우가 많아요. 운영체제만 최신 패치를 설치하는 게 아니라, 플래시 플레이어나 어도비 리더 같은 응용 소프트웨어도 주기적으로 업데이트를 해줘야 해요. 많은 분들이 업데이트 공지가 뜨면 귀찮아서 꺼버리곤 하는데 꼭 설치해야 해요.

어느 때부터인가 '좀비PC'라는 말이 널리 쓰이고, 뉴스에서는 해킹으로 인한 대형 포털 사이트의 개인 정보 유출 기사가 심심치않게 올라오고 있다. 날이 갈수록 해킹 기술은 진화하고 이에 따라 컴퓨터 보안의 중요성은 점점 커져간다. 오늘 하루도 내가 안전하게 파일을 다운받고, 안전하게 인터넷 쇼핑을 할 수 있는 것은, 이런 보안 개발자들의 애환과 노고가 있기 때문이 아닐까. Ahn

 

대학생기자 박해리 / 성균관대 문헌정보학과