본문 바로가기

Security Indicator/Insight

[히스토리-2] 그들의 방식으로 섬멸하라.(온라인 보안서비스)

앞서 히스토리-1에서 수동으로 이루어지는 OS의 보안패치를 온라인으로 사전 검증하여 설치하는 것에 대해 언급을 하였다.  사실 동 시기에 같이 고민하여 진행한 내용이기도 하였고, 단기 간에 너무 많은 일들을 해야 하고 실행해야 하는 것에 대한 부담이 없었던 것은 아니다.

 

그럼에도 불구하고 실제 살펴본 현실은 냉혹할 정도로 암담했다. 운영중인 서비스의 문제가 아니라 환경적인 이슈가 정말 극에 달할 정도로 심각한 상황이었다.  매일 수십, 수 백여 개의 서비스들이 당한지도 모르게 악성코드 감염에 이용되고 있었고 서비스 방문자들의 감염 비율은 거의 80%에 달할 정도로 심각한 상태였다.  아는 것이 병이라고 차라리 몰랐으면 사고 발생 이후에 아는 체만 했었으면 되었을 것을, 그러지 못한 것이 스스로에게 병이었다.

 

매일 같이 수십만 대의 PC가 감염이 되고, 수시로 감염된 파일들은 업데이트가 되는 상황에서 할 수 있는 것은 그리 많지 않았다.  지키고자 하는 서비스만 지키면 되는 것이 아니라 아예 환경 자체를 개선해야만 그나마 서비스의 안정성을 높일 수 있다는 판단은 2005년 무렵의  젊은 혈기에 의기가 넘치는 판단이기도 했었다. 누구도 하지 않으며, 누구도 알지 못하는 이 거대한 위험을 어떻게든 진압하는 것이 사명처럼 느끼기도 했었다.  물론 이 일의 시작이 이후 십 년간의 기나긴 혈투의 시작이 될지는 정말 생각도 하지 못했지만 말이다...

 

1. 현황

 아무도 알지 못했다.  매일같이 수십, 수백여 개의 유명 서비스들이 해킹을 당하고 이 당시의 해킹이라고 하면 과시형 해킹( 홈페이지 변조 정도)이 전부인 것으로 알았지만 깊이 조사를 하고 연구한 결과는 달랐다.  내부의 DB를 모두 탈취하고 이후 서비스 소스를 변경하여 모든 방문자들에게 공격코드가 자동 실행되도록 하였으며, 패치가 되지 않은 상당수 PC들은 하염없이 감염이 되고 있었다.  감염 성공비율은 80%가량.  하루에 감염되는 PC의 수량을 상상하기 조차 힘들 지경이었다.  이 당시에만 해도  보안산업은 서비스에 대한 이해가 없었으며, 단지 보안 서비스라 하면 접근제어를 위한 Firewall과  침입 탐지를 위한 IDS 정도가 전부인 상황.  악성코드에 대한 대응은 백신에서 대응하는 부분으로 한정되어 있었으며  소스코드에 대한 보안 가이드조차 없을 때였다.  또한 서비스 산업은  보안산업이라는 부분에 대해 단지 물리적인 접근을 막는 Security guard의 개념에 머물러 있을 때였으니 지금 생각하면 말도 안 되는 부분이라 하겠지만 그 혼돈의 시기는  이런 상황이었다는 것이 정확하다.

 

-문제의 관찰

- 수십만 대의 PC가 매일 감염이 된다.

- 사용자 정보는 수시로 탈취당한다. 

- 셀 수 없이 많은 서비스들이 공격에 이용당하고 있다. 그 현실조차 인지 못하는 상황.

- 매일 같이 감염된 PC의 악성코드들은 원격에서 통제되며 자동으로 새로운 바이너리로 갱신된다.

 

-대응의 문제

- 소스코드를 수정해야 하나, 그 어떤 솔루션이나 서비스도 어디를 수정해야 할지 알려주지 못함.

- IDS에서 패턴 탐지 불가 ( 갱신 인력 자체가 없었다. 또한 공격을 모르는데 어떻게...)

- 악성코드의 대응 루틴중 백신 회사에 신고 시  대응은 평균 일주일 이상 소요( 사용자가 업데이트 안 하면 계속 그대로)

 

전체적으로 공격은 지능적이고, 자동화되어 있으며, 거의 리얼타임에 가까운 업데이트와 악성코드 배포를 위한 배포망 관리도 체계화되어 있었다.  반면 대응 측면에서는  수동적이고, 혹여 알게 되더라도 개별 이슈 대응 시간이 일주일 이상 소요. 또한 사용자 PC를 보호할 수 있는 방안은 백신 외엔 없는 상황.

 

이 당시 느낀 절망감과 무력감은 정말 말하기 힘들 정도였다. Drive by download ( 이 용어가 있기 한참 전 )를 설명하기 위해 외부 발표도 했었으나 그 당시 받았던 정말 많은 질문은  "어떤 사용자가 웹사이트에 있는 보이지 않는 링크를 누가 클릭하겠는가?"였다.  암담하지 않은가?  IE 브라우저의 취약점을 이용해 방문만 하면 감염된다는 것을 그 누구도 알지 못했고, 관심도 없었고 보안산업에서도 이후로도 오랜 기간 생각과 철학을 바꾸는데 시간이 소요되었다. 효과적인 대응은 더욱 오래 걸렸고.   지금이야 인텔리젼스라는 측면으로 많은 위협정보들이 공유되고 알려지지만 대야생기의 시작 무렵에는 그런 개념 자체가 있을 리가 없었다. 오직 이 정보는 우리만 알고 있어야 한다는 사상이 지배적이었다.

 

<2006년 외부 발표중 정리한 위협 상황>

2. 대응의 시작

 

문제가 관찰되고 세 가지 관점에서 방안을 찾기 시작했다.

 - 취약성을 없애기 위해  보안패치를 쉽게 적용

 - 이미 감염된 다수의 PC들을 해방시키기 위해서 빠른 대응 및 리얼타임 대응에 가깝게 서비스 구축

 - 근본적인 서비스 취약성을 제거하기 위한 방안 제공 ( 이건 차후에도 계속되었다. 성공. 실패 유무를 떠나 이런 시도 자체가 있었고 지금까지 영향을 주고 있다는 점은 명확하다.)

 

보안패치는 ActiveX로 온라인 상에서 바로 적용되도록 만들어서 구현됨. 또한 동시에 감염 PC에 존재하는 악성코드를 제거하기 위해  대응 시간이 오래 걸리는 거의 오프라인 백신 서비스 관점에서 온라인 서비스 관점으로 프레임을 옮기는 시도를 실시.  이 당시의 백신은 사용자가 업데이트를 하지 않으면 업데이트되지 않는 형태였다. 

 

2005년 2월 발표된 정보보호 실천수칙

2005년 발표된 정보보호 수칙을 보면 현황을 짐작할 수 있다.  백신은 업데이트하지 않으면 실행되지 않았으며, 보안패치도 다운로드하여 설치해야 하는 상황이 현실이었음을 알 수 있지 않은가?

 

공격자들과의 현격한 격차를 마주한 상황에서 핵심적으로 노력한 것은 원인 제거 이외에도 현상의 제거에도 주력해야 하는 것이었고, 매일 같이 수 십 개의 악성코드를 신고하여도 그 효과가 미미한 것은 대응 시간의 문제도 있지만 사용자가 업데이트하지 않으면 반영되지 않는 현상도 큰 문제라고 보였다. 또한 그럼에도 동일 사고가 계속 중복해서 발생되는 것을 보았을 때 이미 알려진 악성코드에서 Unknown ( 보안 서비스들이 탐지하지 못하는.)으로 변화하는 것이 일반적이었다.  즉 빠른 대응을 하지 않는다면 문제는 계속된다는 점이었다.

 

대응의 핵심

 - 악성코드 유포가 확인되면 즉시 대응 루틴의 적용

 - 서비스 방문 사용자를 대상으로 ActiveX를 통해 악성코드 제거 루틴 설치 및 적용

 

대응 시간을 일주일 이상에서 하루 단위로 줄이고, 또한 사용자의 업데이트 없이도 자동적으로 대응하도록 기획하고 운영하는 것이 핵심이었다.  원인 제거를 위한 패치 서비스를 기획하고 론칭한 이후 곧이어 온라인 백신 서비스를 론칭하였으며, 명백히 서비스의 클린에는 영향을 주었다.  그 결과가 다른 곳으로 튀기 전에는 말이다.

 

3. 종결

 

온라인 상에서 보안패치를 실행하고 , 전용백신을 통해 온라인 상에서 바로 제거하는 대응을 지속한 결과는 특정 게임 기반의 공격에서 전체 온라인 서비스 기반으로 확산되는 것이 눈에 띄게 나타났다.

<전용백신을 통한 일평균 제거 현황. 2006년 발표자료 발췌>

위의 이미지는 온라인 백신을 통해 서비스 방문자만을 대상으로 일별로 제거한 기록이다. 특정 게임으로 한정되어 정보를 탈취하는 형태에서 다른 서비스를 대상으로 확대하는 현상이 관찰된 기록이기도 하다. 

 

서비스를 온라인으로 실행해서 대응시간을 확보하고 공격자들에게 변경할 시간을 주지 않는 전략은 주효했다. 그러나 아직도 남은 것은 서비스들에 대한 보안성을 어떻게 확보할 것인가 하는 문제가 남아 있었다.

 

지금에서야 새로울 것도 없는 이야기이지만 모든 것의 처음은 고통스럽고 힘들다. 더욱이 문제의 본질을 모두가 보지 못하는 상황에서 그 문제를 해결하기 위해서는 뼈를 깎는 고통이 수반된다. 더불어 주위의 엄청난 불만과 질시를 받을 수밖에 없었다.  17년가량 지난 이 문제를 회고하는 것은 이 문제는 아직 끝나지 않았으며, 대응 측면에서도 오랜 기간 대응 레벨을 높여오면서 간신히 문제는 정리되었기에 기록 차원에서 정리가 필요하여 남긴다. 이미 2006년 외부 발표를 하는 시점에서는 문제의 해결을 위한 급한 이슈들은 진행된 상태였기에 사회적으로 공감대와 이슈를 환기시키는 것이 필요했고 주요 핵심 사안들에 대해서 공유 차원에서 진행한 것이었다. ( 아무도 몰랐고, 지금은 기억도 못하겠지만..)

 

이후 모든 중요 서비스들에서 시간이 지나면서 온라인 보안 서비스들이나 정보를 지키기 위한 대응 서비스들이 시작되었음은 명확하다.  이 방향에서 너무 과도하게 사용자의 불편을 일으키는 내용들도 있었고, 공격자들의 불편을 위해 과도하게 단계들이 도입된 시작이기도 하다.

 

핵심요약은 다음과 같다.

 - 대응 서비스들의 온라인화의 시작 (리얼타임 대응). 시작이었다고 본다.

 - 공격자들과의 대응 차이를 줄임.

 - 후방에 느슨하게 있던 보안 서비스들을 전면으로 끌어내어 대응하게 함

 

보안산업과 IT서비스 산업 양쪽에서 비난을 듣긴 했지만 (지금도? ㅎ) 이 과정이 없었다면 더욱 큰 사회적 비용과 고통 속에서 헤매었을 것은 분명하다.  변화를 두려워하는 산업 그리고 위험을 인지하지 못하는 서비스들. 그리고 이후로도 오랜 기간의 개인적인 전투와 전쟁은 계속 되게 된다.  2005년이 근 10년간의 처절한 전쟁의 시작이 될 줄은 꿈에도 몰랐고, 이후 엄청난 개인적 희생을 치르고 서야 일정 수준의 결말을 보게 된다.  어쩌면 인텔리젼스라는 용어의 시작이었을지도 모를 2013년 3.20 사건이 이 전투의 하이라이트였다.  개인적으로 가지 말았어야 할 것에 눈을 돌리고, 외면하지 못한 댓가는 빛날 수도 있었던 청춘의 시기를 모조리 헌납하게 되었다. 

 

2005년 이후 근 10년간 가장 많이 되뇌었던 말이었는데..  " 십만의 적을 막기 위해 장판교에서 홀로 막았지만  앞이 아니라 뒤에서도 화살을 맞고 있는 상황이 지금이다."  지금도 별반 다르지는 않다.

 

대양을 향한 항해는 잠시 쉴 수는 있어도 멈추지는 않을 것이다. 그 자리가 어디이든 간에..

 

- 바다란 세상 가장 낮은 곳의 또 다른 이름.