security by ch4nsec

[보안] 요즘 유행하는 APT에 대해 알아보자(Advanced Persistent Threat)

보안 개론에서 자주 등장하는 APT에 대하여 설명한다.

#security#general#APT

APT란?

APT(Advanced Persistent Threat)란, 직역하면 지능적 지속 위협이다. 지능적으로 공격하는 것이 뭘까? 그리고 APT는 피해자에게 어떤 영향을 줄까? 하나씩 알아보자.


물리 보안에서의 예시

도둑질을 예시로 들어보자. (원래 보안에서 가장 만만한 예시가 물리보안이다.) 원활한 설명을 위해 이 집 저 집 찔러보면서 얻어걸리기만 바라는 좀도둑같은 예시는 빼도록 하자.

아래의 예시는 이해를 돕기 위한 예시로, 당연히 따라하면 안되며, 실제로 이행했을 때의 법적 책임은 본인에게 있다.

도둑질을 하기 위해서는 어떤 과정이 필요할까?

먼저 대상을 선정할 수 있다. 그리고 대상을 정할 때에도 여러 가지 기준을 생각해볼 수 있을 것이다. 대상이 소유하고 있는 재산의 정도도 고려사항이 될 수 있고, 대상(장소)의 경비 수준도 고려사항이 될 수 있을 것이다. 여러 기준을 적용하여 결과적으로 위험성은 적고 리턴이 큰 대상을 선정하게 된다.

다음으로 정보수집을 필요로 할 것이다. 원활한 절도(?)를 위해 구체적인 정보를 얻는 과정이다. 집의 구조는 어떻고, 어느 방에 훔칠 물건들이 많은지, 집이 비어있는 시간대는 언제고, 적용중인 경비 시스템의 특징과 사각지대의 유무 등 몰래 침입하고 범행을 수행하기까지의 과정에서 필요한 정보를 얻는다.

그리고 수집한 정보를 바탕으로 계획을 수립한다. 어느 시간대에, 어디로 침입해서, 어디를 털고(?), 어디로 빠져나올지, 그리고 변수가 발생했을 때 어떻게 대처할지 등을 구체적으로 계획한다. 그리고 계획을 바탕으로 실행에 착수한다. 실제로 침입하고, 금품을 찾아 챙기고, 흔적을 최대한 남기지 않으면서 탈출한다.

GPT의 힘을 살짝 빌렸다. 사실 정상적인 활용은 아니라 프롬프트 일부를 가렸다.

그래서 이게 APT와 무슨 연관성이 있을까?

도둑질이라는 행동을 계획하고 실행하기까지에는 많은 것을 고려해야 한다. 타깃 선정부터 시작해서 타깃의 약점과 그에 따른 구체적인 범행 계획 등 상황에 따라 모든 것이 달라진다. 이는 APT에서 말하는 Advanced(지능형, 지능적)의 의미와 일맥상통한다. APT 역시 타깃을 선정한 뒤, 사전 조사를 통해 시스템의 약점을 파악하고, 공격 수단을 선정해 공격한다. 침투에 성공한 이후에도 지속적으로 시스템에 악영향을 미치는 공격이 APT이다.

이렇게 특정 타깃을 대상으로 대상에 적합한 공격방식을 선정하여 지속적인 위협을 가하는 형태의 공격을 APT라고 한다.


APT의 특징

APT의 특징은 정말 간단하다. A(Advanced), P(Persistent), T(Threat)다.

Advanced, 지능적

여기서 말하는 지능적이라는 말의 핵심은 공격대상에 따라 맞는 전략을 채택한다는 점이다. 그렇기 때문에 다수의 타깃을 대상으로 하는 자동화된 공격은 해당되지 않는다.(위의 예시에서 아무 집이나 찔러보는 좀도둑같은 사례를 뺀 이유다.) 최신 업데이트가 적용되지 않은 운영체제를 대상으로 알려진 취약점을 이용한 1-day 공격을 수행할 수도 있고, 내부자에게 피싱 메일을 보내 내부자의 인증 정보를 탈취하여 침투할 수도 있다. 타깃의 환경에 따라 여러 공격 방식을 활용할 수 있기 때문에 APT라는 용어는 특정 공격을 지칭하는 용어는 아니다.

Persistent, 지속적

여기서 말하는 지속적이라는 말의 핵심은 장기간에 걸친 공격이다. 시스템에 계속 남아있든, 다음에 다시 침투하든, 하나의 시스템을 대상으로 반복적인 공격을 진행하는 행위를 말한다. 대표적인 방식은 백도어를 심는 것이다.

Threat, 위협

가장 간단하다. 시스템에 해가 되는 행위를 말한다. 보통 위의 두 가지를 만족하면 이미 위협에 해당한다. (침투만 하고 빠져나오기만 하진 않을 테니까.. 애초에 침투부터 범죄다.)

정리하자면..

APT는 공격 대상을 다양한 수단을 통해 지속적으로 공격하는 행위를 말한다고 볼 수 있다. 특정 공격을 지칭하는 용어는 아니고, 타깃을 선정하고 타깃에 적합한 공격방식을 선택한 뒤 침투하여 장기간에 걸쳐 피해를 가하는 공격 방식, 그러한 공격 프로세스를 통칭하는 용어다.


APT의 절차

APT 절차 다이어그램
APT 절차 다이어그램 (출처: imperva.com)

APT의 절차는 크게 Infiltration(침투) -> Expansion(확장) -> Extraction(추출)의 3단계로 이루어진다고 볼 수 있다.

1단계 - 침투(Infiltration)

타깃에 최초 침투하기까지의 과정이다. 먼저 타깃을 선정한 후 타깃에 대한 사전 조사를 진행한다. 대상 기업의 조직 구성이나 직원 정보, 사용중인 시스템 등이 조사 대상이 된다.

이후 조사한 정보를 바탕으로 공격 방식을 결정한다. 대상 시스템에 침투 가능한 취약점이 존재할 경우 해당 취약점을 활용할 수도 있고, 만약 그렇지 않다면 대상 기업의 직원에게 사회공학기법을 활용할 수도 있다. (실제로도 피싱 활용 빈도가 높은 편이라고 한다.) 최초 침투에 성공한다면 시스템에 악성코드(통칭 백도어)를 심어 외부에서 지속적으로 접근을 가능하게 하는 것으로 침투 단계가 마무리된다.

2단계 - 확장(Expansion)

여기서 확장은 영향력을 확장한다는 뜻으로, 쉽게 말해 Privilege Escalation(권한 상승)이다. 권한 상승 취약점을 악용하거나 관리자 계정을 탈취하여 더 많은 영향력을 행사할 수 있도록 하는 과정이다. 더 높은 권한을 취득한 후 시스템 내의 민감한 데이터를 찾아 접근하는 것으로 확장 단계가 마무리된다.

3단계 - 추출(Extraction)

민감한 데이터를 추출하는 과정이다. 중요 파일, 회원 개인정보, 기타 DB 데이터 등의 데이터를 공격자의 C2C(Command and Control) 서버로 보낸다. 이 과정에서 모니터링을 우회하기 위해 DDoS 등의 방법을 활용할 수도 있다. (위 그림에서 White noise attack에 해당하는 부분이다.) 데이터 추출 후에는 로그를 정리하는 등의 작업을 통해 탐지를 피해 공격활동을 이어나갈 수도 있고, 필요 시 추가 데이터를 유출할 수도 있다.


일반적인 보안 조치

1. 기본적인 보안 솔루션 활용

Firewall(방화벽), IDS/IPS 등을 활용하는 방법이다. Firewall(방화벽)은 source, destination(출발지, 목적지) IP 주소, 프로토콜 종류, port 번호 등에 의한 차단을 진행한다. 허가되지 않은 방식의 트래픽을 차단하는 1차 방어선의 역할을 한다.

IDS(Intrusion Detection System)는 이상징후를 탐지하여 공격 징후를 알리는 역할을 하고, IPS(Intrusion Prevention System)는 탐지된 공격을 차단하는 역할을 한다. 이 둘은 통상적인 네트워크 흐름이 아니라고 판단되는 행위를 탐지하고 차단하는데, 대표적으로 차단하는 행위로 DDoS, 바이러스, 백도어 등이 있다.

2. 주기적인 업데이트

주기적인 업데이트는 보안에 있어서는 필수다. 알려진 취약점에 대한 패치를 진행하여 공격 벡터(공격 수단)를 줄일 수 있다. 당연한 내용이니 자세한 설명은 넘어간다.

3. 최소 권한 부여

해당 서비스의 직원의 역할에 필요한 권한만 부여하는 것이다. 직원에게 필요 외의 권한이 부여될 경우, 공격자 입장에서는 상대적으로 적은 노력을 들이고도 상위 권한의 동작을 수행할 수 있게 되기 때문이다. 권한 내의 동작이더라도 중요한 데이터를 다루는 경우 2FA(Two-Factor Authentication, 2단계 인증)를 사용하는 것도 좋은 방법이다.