보안

악성코드를 삭제하기 전에 알아야 할 5가지

Shel Sharma | CSO 2014.03.11
엉뚱한 위협 요소를 추적하는 데 자원을 낭비하지 않으려면 보안 팀에서 무시해도 괜찮은 악성코드와 실질적 피해를 입히는 악성코드를 구분할 수 있어야 한다.

현재 네트워크 환경에는 기존의 방어 수단을 회피할 수 있는 악성코드가 만연하다. 악성코드의 통신과 활동은 3분에 1번꼴로 이뤄진다고 한다. 그러나 이런 활동의 대부분은 비즈니스에 있어 별로 중요하지 않다.

'그렇다면 좋은 소식 아닌가'라고 생각할 수도 있다. 문제는 일상적인 사용자의 경우 중요하지 않은 악성코드와 (잠재적으로) 큰 피해를 입힐 악성코드를 구분할 마땅한 방법이 없다는 점이다. 그래서 많은 사람들이 엉뚱한 것을 쫓느라 시간과 자원을 낭비하는 동안, 정작 실제 악명높은 악성코드는 교묘히 감시망을 피해 활동하게 된다.

대부분의 보안 관리자들은 수백, 수천 개의 악성 활동 경보를 보여주는 악성코드 경보 대시보드에 대해 강박 관념을 갖고 있으며, 이를 확인하기 위해 잠 못 이루는 야근으로 이어진다. 분석해야 할 악성코드의 수는 까마득하게 많고 시간은 한정되어 있으니, 침해 사건에 대한 언론 보도가 빈번해지는 것도 그다지 놀라운 일은 아니다.

현실적으로 고급 악성코드 방어는 복잡한 작업으로, 여기에는 악성코드를 탐지하는 능력뿐만 아니라 최적의 보안 성과를 이끌어내도록 조치를 우선 순위화하는 능력까지 필요하다. 1차적으로 복잡한 네트워크 환경에서는 탐지 자체도 어려운 일이다. 공격의 라이프사이클을 며칠만 줄여도 공격으로 인한 피해 규모를 수백만 달러 줄일 수 있다.

그렇다면 어떻게 탐지 속도를 높여야 할까? 과도한 악성코드 경보에 의해 조성되는 불확실성에 대한 해법은 맥락(context)이다. 그렇다면 맥락을 어떻게 확인하는가? 첫 번째 단계는 무엇을 살펴야 하는지 아는 것이다. 무엇을 알아야 하는 지를 이해하게 되면 데이터 수집과 상관 관계 파악을 자동화할 수 있게 된다.

이와 같은 경우 조치를 결정하기 전에 확인해야 하는 사항은 다음과 같다.

의도(Intent)
악성코드의 형태는 다양하다. 대부분의 악성코드는 사용자에게 원치않는 광고를 표시하거나 무료 게임을 다운로드하도록 유인하는 정도의 기능을 하지만 대상화된 정교한 공격을 통해 이뤄지는, 피해를 입히고자 하는 의도를 가진 진보된 악성코드도 있다.

여기서 의도란 가볍게는 스팸 메시지를 보내는 봇넷부터, 특정 목표물을 대상으로 정보를 훔치고 파괴를 유발하도록 설계된 위협 요소에 이르기까지 다양하다. 악성코드의 진정한 의도를 파악하기란 어려울지도 모르지만 다음과 같은 여러 가지 두드러진 징후를 사용하면 판단하는 데 도움이 될 것이다.

- 복잡성(회피성): 악성코드에 대처하는 데 있어 절대적인 것은 없지만 일반적으로 회피를 위한 노력이 클수록 더 치명적인 위협으로 볼 수 있다. 실행 코드가 탐지를 피하기 위해 '지나칠 정도로' 노력하는 악성코드라면(예를 들어 페이로드를 암호화한다거나), 그렇지 않은 악성코드에 비해 더 위험한 것으로 간주할 수 있다.

- 전달 방법의 정교함: 악성코드를 해당 표적에 전달하기 위해 얼만큼의 노력과 공이 들이는 지는 공격자의 실력을 파악하는 좋은 지표이며 의도를 나타내는 징후이기도 하다. 특정 직원에게 맞춤화된 메시지를 통해 전파되는 악성코드는 대량 이메일을 통해 전파되는 악성코드에 비해 더 유해할 가능성이 높다.

- 의심스러운 기능: 악성코드의 코드에 의심스러운 기능, 예를 들어 키 입력이나 스크린샷을 포착하기 위한 호출 등이 포함됐다면 더 심각한 악성코드일 가능성이 높다.

악성코드의 평판과 의도를 확인하는 데 있어 바이러스토털(VirusTotal)과 같은 온라인 서비스가 매우 유용할 수 있다.

표적(Targets)
실력있는 공격자라면 어차피 원하는 것을 찾을 때까지 악성코드를 조작해 네트워크에 침입할 수 있겠지만 일반적으로 더 민감한 사용자와 기기를 목표로 하는 위협 요소를 먼저 처리하는 것이 좋다.

이를 위해서는 해당 기기 또는 시스템에 저장된 정보의 중요성을 바탕으로, 또는 사용자가 접근할 수 있는 정보의 중요도를 기준으로 조직의 기기와 네트워크 사용자를 분류해야 한다. 이를 위한 가장 좋은 방법은 다음과 같다.

- 조직 내의 주요 네트워크와 서브넷 목록 유지 관리

- 사용자의 민감도를 기준으로 주요 액티브 디렉토리 그룹 목록 유지 관리(예: 재무, 데이터센터, 임원 등)


IP 주소 관리 솔루션 또는 이와 유사한 장비를 사용해 기기, IP 주소, 네트워크 및 사용자의 실시간 매핑을 유지하라. 이 정보는 악성코드 다운로드를 발견하거나 명령/제어 경보가 발령되는 경우 위협의 우선 순위를 판별하는 데 중요하다.

감염 출처(The source)
감염원 역시 악성코드의 악성 수준을 판단하는 중요한 지표다. 가장 큰 적이 누구인지, 그리고 악성코드의 출처를 그 적과 연계할 수 있는지 생각하라. 항상 가능한 일은 아니지만 만일 가능하다면 공격의 심각도를 즉각 파악하고 조치의 우선 순위를 정하는 데 있어 도움이 될 것이다.

적을 찾는 가장 간단한 방법은 다운로드 URL IP 주소와 명령/제어 트래픽 IP 주소를 기반으로 지리적 위치를 찾는 것이다. IP 주소의 실제 위치를 찾는 데 도움이 되며 관련된 평판 데이터를 제공하는 여러 인터넷 사이트가 있다.

심각도(Severity)
악성코드 다운로드가 감염으로 이어지는 경우는 10% 미만이므로 심각하지 않은 악성코드의 다운로드 경보를 파헤칠 이유는 없다. 따라서 악성코드가 킬 체인에서 어느 위치에 있는 지에 대한 정보(예를 들어 다운로드 횟수, 감염 수, 명령 및 제어 콜백 수)는 심각도의 명확한 지표이며, 조치를 우선 순위화하는 데 있어 큰 도움이 될 수 있다.

어떤 악성코드 유형의 다운로드 횟수가 상당히 많지만 명령 및 제어 트래픽이 없다면 안티 바이러스 소프트웨어가 이를 잡아내거나 모든 시스템이 적절히 패치되어 해당 악성코드에 대한 취약점을 없앨 가능성이 높다.

반면 특정 감염 기기에 대한 명령 및 제어(C&C) 트래픽이 많은 경우 이 악성코드는 정보를 훔치거나 기타 손상을 입히고 있을 가능성이 높으므로 최대한 신속하게 진압해야 한다.

개선의 기본(Remediation basics)
악성코드의 추가 전파를 차단하고 피해를 통제하는 방법을 명확하게 이해하는 것은 위협을 완화하는 데 있어 매우 중요한 요소다. 위협 완화를 위한 세 가지 기본 사항은 다음과 같다.

- 감염 출처를 찾아 차단하기: 조치를 취하기로 결정했다면 방화벽이나 보안 웹 게이트웨이 기기를 사용해 악성코드를 호스팅하는 URL에 대한 접근을 차단한다. 이메일이 악성코드의 출처로 판명되는 경우 의심스러운 첨부 파일을 열지 않도록 사용자에게 전파한다.

- 명령 및 제어 트래픽을 식별해 차단: 방화벽 및 웹 로그를 살펴보고 C&C IP 주소를 확인하고 해당 IP 주소와의 통신을 차단한다.

- 감염된 기기 파악, 정리: 가장 많은 비용이 들고 가장 귀찮은 작업이다. 일반적으로 기기 하나를 정리하려면 시스템 이미지를 다시 작성해야 하는데 이는 많은 시간이 소요되는 작업이며 그동안 해당 직원은 자신의 기기를 사용할 수 없으므로 생산성도 떨어지게 된다. 사용자들이 정기적으로 자신의 기기를 백업하도록 해야 한다.

대대적인 사이버 공격에 대한 소식이 뉴스 헤드라인을 계속 장식하겠지만 낙담할 필요는 없다. 고차원적 공격을 차단하고 방어하기 위한 방법도 더 다양화되고 있다. 사이버 범죄자들의 방법이 진화하는 동안 방어적인 방법도 진화한다. 또한 식상한 표현이지만, 한 번의 공격 차단이 열 번의 치료보다 훨씬 더 유익하다는 것을 잊지 말아야 한다. editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.