APT 공격 등장의 배경
해킹은 계속 시도 되고 있고 해킹을 막기 위한 기술 또한 진화되고 있다. 하지만 해킹의 기법(기술이라고 하기엔 쫌 그렇다..) 중 APT 공격에 대해서 만큼은 보안업계에서도 대응이 쉽지 않은 모양새다. 지금까지 보안 업계는 대부분 네트워크와 응용 수준에서의 보안 기술 개발에 집중해왔다. 어떻게 하면 컴퓨터에 저장되고 네트워크를 통해 전송되는 데이터를 “강력하게 암호화”해서 유출되더라도 기밀성을 유지할 것인가, 그리고 해커의 공격을 어떻게 하면 “네트워크에 흘러가는 패킷을 캡쳐”해서 탐지해낼 것인가에 집중해 왔다. 그 결과 데이터 암호화와 네트워크 보안에서 훌륭한 솔루션들이 개발되었다.
하지만 해커들도 가만히 있지는 않는다. 수 많은 TCP/IP 프로토콜의 취약성을 찾아내고 공격해왔던 해커들이지만 이젠 더 이상 TCP/IP의 취약성 만으로는 그저 DDOS와 같은 서비스의 장애를 유발하는 단순한(?) 공격밖에는 할 수 없는 상황이 된 것이다. 그래서 해커들은 어쩔 수 없이 보다 긴 시간과 보다 다양한 기술을 접목하여 복잡한 과정을 거칠 수 밖에 없는 해킹을 시도하게 되었다. 이러한 공격의 형태를 APT 공격이라고 한다.
APT 공격의 시작 – 침투 단계의 방어
해커들은 과거에는 손쉽게 가능했던 IP스푸핑이나 세션하이재킹과 같이 원격에서 공격대상 서버와 컴퓨터에 직접 침투가 어렵게 되자 이메일, USB, 웹페이지를 통한 악성코드 감염, 사회공학적 기법과 같이 간접적인 접근 방법을 동원하여 공격 대상 컴퓨터가 위치한 네트워크에 침투 거점을 확보하는 방법을 활용한다.
침투 거점의 확보는 대부분 컴퓨터에 대한 원격제어가 가능한 악성 프로그램을 감염시키는 형태로 이루어진다. 이 악성 프로그램은 침투한 컴퓨터의 키보드 입력 캡쳐, 화면 캡쳐, 원격제어, 다른 컴퓨터로의 원격접속과 명령 실행 등을 할 수 있는 “에이전트(Agent)” 형태를 띄고 있다. 그리고 이 에이전트는 실시간 혹은 배치(batch:정해진 시간에 일시적으로 작업하는 형태)로 해커와 통신할 수 있도록 만들어져 있는 것으로 알려져 있다.
이 에이전트는 일반적으로 알려진 악성코드 처럼 침투한 컴퓨터 자체를 공격하지 않기 때문에 블랙리스트 방식의 공격패턴으로 악성코드를 탐지하는 “백신”으로는 탐지할 수 없다. 백신으로 탐지할 수 없기 때문에 침투 단계의 방어가 어려운 이유이기도 하다.
APT 공격의 침투단계에서 악성코드 격인 해커의 “에이전트”를 탐지하기 위해서는 화이트리스트(White-List) 방식의 보안솔루션이 필요하다. 화이트리스트 방식의 보안 솔루션은 PC나 서버에 설치되는 시점에 실행코드가 담긴 모든 파일의 MD(Message Digest : Hash 함수에 의해 생성되는 일정 길이의 코드, 파일의 무결성을 검사하기 위한 기법)를 생성하여 보관하고 있다가 명령코드가 담긴 파일이 실행되거나 메모리로 로딩될 때 다시 MD를 생성하여 보관하고 있던 MD와 비교하는 방식으로 파일의 존재 여부와 실행허용 여부를 결정하게 된다. 만약 변조된 파일 이거나(악성코드 감염) 기존에 없던 새로운 파일(악성코드 감염)이라면 실행을 차단하게 된다. (RedCastle과 WhiteCastle 이라는 국산 보안 솔루션이 갖고 있는 기능)
그외에도 침투 단계에서 APT 공격을 차단하기 위해서는 기존의 이메일에 첨부된 첨부파일을 검사할 수 있는 이메일 보안 솔루션과 컴퓨터의 USB 포트를 사용하지 못하도록 차단하는 솔루션, 정해진 안전한 웹사이트 이외에는 접속하지 못하도록 웹 서핑을 차단할 수 있는 웹필터 등의 네트워크 기반 보안 솔루션도 활용될 수 있다. 하지만 이러한 네트워크 기반의 침입차단시스템(예방통제시스템)을 통과한 APT 공격의 침투를 최후방에서 방어할 수 있는 솔루션이 바로 WhiteCastle과 같은 화이트리스트 방식의 보안소프트웨어다.
APT 공격의 본격화 – 탐색/유출 단계의 방어
침투에 성공하면 해커는 에이전트가 보내주는 정보를 수집하고 분석한다. 에이전트가 설치된 컴퓨터에서의 주요 서버에 대한 접속정보(서버IP, ID/PASSWORD) 등 공격대상 서버에 2차 침투하기 위한 중요한 정보를 얻을 수도 있고 주요 데이터베이스에서 컴퓨터로 다운로드해 둔 돈이 될만한 정보(개인정보)가 담긴 파일을 얻을 수도 있다. 이 단계에서는 에이전트로부터 수집된 정보를 전송받아 분석하는 것이 해커의 주 활동이 될 것이다.
어찌보면 침투단계보다 수집단계의 적발이 더 어려울 수도 있다. 해커는 수집된 정보를 작게 분할하여 일정 시간 간격으로 전송받기 때문에 침입탐지장비에게 인지되지 않을 가능성이 크다. 또한 에이전트가 컴퓨터에 직접적인 공격을 가하는 것이 아니기 때문에 백신 등에 의해 탐지가 어렵다.
만약 해커가 탐색/유출 단계에서 원하는 모든 것을 얻었다면 곧바로 에이전트가 설치된 컴퓨터를 파괴(공격)하고 빠져나갈 것이다. 하지만 필요로 하는 정보를 획득하지 못했다면 분석한 정보를 바탕으로 원하는 정보가 있거나 공격대상으로 삼은 서버나 컴퓨터를 공격하게 된다.
APT 공격의 마무리 – 공격/수집 그리고 파괴 단계의 방어
해커가 앞 단계에서 실제 공격하고자 하는 대상 서버의 정보를 모두 수집하였다면 실제 공격에 나선다. 실제 공격에 나서는 경우는 대부분 2차 침투하고자 하는 서버의 관리자 계정의 ID와 비밀번호의 획득에 성공하는 경우가 대부분이다. 과거 농협의 경우와 2013년 방송사 및 금융사의 공격의 경우도 실제 공격에 사용된 PMS 및 백신 업데이트 서버의 관리자 접속 정보가 탈취 되었기 때문에 가능했을 것이다.
이 단계의 방어는 1차적으로 공격 대상이 될 수 있는 서버에 ID와 패스워드 만으로는 접속하지 못하도록 이중인증 시스템(AuthCastle)을 구축하는 것이 필요하다. 서버에 접속할 때 ID와 패스워드 이외의 공인인증서, OTP(One Time Password), ARS 인증 등을 통해 2차 인증을 받아야만 접속할 수 있도록 시스템을 구성해야한다.
그리고 이중인증 시스템을 구축했다 하더라도 안심할 수 없다. 왜냐하면 320 사태나 과거 농협의 해킹 처럼 서버에서 실행중인 시스템관리 용도의 소프트웨어에 대한 취약성을 공격할 경우 서버에 직접 접속하지 않더라도 시스템의 관리자 권한(root 및 Administrator) 을 탈취하여 운영체제 및 애플리케이션의 명령어를 실행하거나 중요 파일에 접근(읽기/실행/수정/삭제)할 수 있기 때문이다. 따라서 이러한 공격을 차단하기 위해서는 RedCastle SecureOS와 같은 커널기반에서 파일에 대한 접근(읽기/실행/수정/삭제)등을 정책기반으로 통제할 수 있는 보안SW를 설치하고 해커에게 악용될 수 있는 명령어나 파일에 대한 접근, 서버의 네트워크 통신 포트에 대한 접근통제, 위협명령어에 대한 실행 통제, 더 나아가 중요 명령어에 대한 2차 승인 후 실행(AuthCastle) 등을 구현해야만 한다.
또한 최근의 APT 공격과 해킹에 활용되는 악성코드들은 대부분 운영체제나 애플리케이션의 “제로데이(Zero-Day) 취약성”을 공격하는 경우가 대부분이다. 제로데이 취약성을 공격하는 악성코드는 기존의 백신에서 탐지하지 못하는 경우가 대부분이기 때문에 백신을 무력화시키게 된다. 따라서 제로데이 취약성을 공격하는 악성코드를 탐지하고 실행을 차단하기 위해서 화이트리스트 기반의 보안SW(WhiteCastle)를 서버와 PC에 설치하는 것이 필수적이라 할 수 있다.
해커가 이 단계의 공격에 성공할 경우 그 피해는 상상하기 어려울 만큼 클 수 밖에 없다. 기업이나 기관의 중요 정보가 저장되어 있고 중요 서비스가 실행중인 “서버”가 그 공격 대상인 경우가 대부분이기 때문이다.
하지만 많은 IT 관리자들은 서버 내에서의 정책 수립이 어렵고 관리가 힘들다는 이유로 아직도 SecureOS의 도입을 망설이는 경우가 대부분이고 도입했다 하더라도 제대로 활용하지 않는 경우가 대부분이다. 하지만 만약 이러한 공격이 발생할 경우 피해의 규모와 비지니스 영향도를 생각한다면 도입과 구축 그리고 정책을 수립하고 적용하는 것이 정답이라 할 것이다.
관련 포스트 보기
APT 방어 시스템 구축 방안 및 네트워크 기반 APT 방어 솔루션에 대한 오해