brunch

브런치북 APT 개론 13화

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Mar 23. 2021

APT-13 (네트워크 기반 APT 공격 탐지방법)

다음으로 네트워크를 통해 APT 공격을 탐지하는 방법을 알아보죠. 외부에서 유입되거나, 내부에서 외부로 나가는 트래픽을 검사하면 단말(호스트)이 감염되는 단계뿐만 아니라 감염이 이루어진 이후에 감염된 단말과 C&C 서버 간 통신(Call back)을 하는 두 가지 단계를 통해 공격을 탐지할 수 있습니다.



아래 <그림 1>과 같이 먼저 단말에서 웹브라우저를 통해 악성코드가 포함된 웹서버에 방문하여 악성코드가 단말에 다운로드될 경우 악성코드가 단말에 도달하기 전에 네트워크를 통해 APT 탐지장비에서 먼저 악성코드를 탐지할 수 있습니다.



< 그림 1 >  네트워크에서 APT 공격을 탐지하는 방식 (출처: FireEye)



그리고 이미 악성코드를 유포하고 있는 URL이 다른 사용자의 장비에서 탐지된 경우 중앙 서버를 통해 해당 URL 정보를 공유하여 차단이 가능합니다. 단말이 이미 악성코드에 감염된 이후에 라도 Callback(C&C 서버와의 통신) 단계를 통해 감염된 단말의 탐지가 가능합니다. 이미 알려진 C&C 서버 리스트를 이용하여 통신 여부를 모니터링하고 트래픽 내에서 C&C 서버와의 통신에서 자주 사용하는 패턴을 확인하여 감염 여부를 파악할 수 있습니다.



악성코드 여부를 확인하는 방법은 크게 정적 분석과 동적 분석방식이 있는데 이 두 가지를 모두 활용할 수 있습니다. 네트워크 트래픽으로 유입되는 HTML, JPG, EXE, ZIP 등을 파일 단위로 추출하고 재조립해서 우선 알려진 악성코드인지 여부를 지금까지 알려진 패턴과 비교해 보 악성 여부를 확인해 보는 방법이 정정 분석이고, 다음으로 가상 시스템에 올려서 악성 동작 여부를 확인하는 방법이 동작 분석입니다. 이렇게 악성코드로 판별되면 분석 결과를 중앙 서버로 보내 다른 장비에서도 활용할 수 있도록 공유됩니다.



그리고 내부 단말에서 외부로 통신하는 내용을 모니터링하고 있다가 알려진 C&C 서버와 통신하는지, 통신내용 중에 C&C 서버와 통신 시 나타나는 특정 패턴이 있는지를 확인하여 악성코드에 감염되었는지 여부를 판단할 수도 있습니다. 



아래 <그림 2>은 네트워크 레벨에서 트래픽이 들어올 경우 패킷을 재조립하고 파일을 분리하여 다양한 검사를 통해 악성코드 여부를 판별하여, 감염된 단말을 식별하는 방식을 설명한 그림입니다. 분리된 파일이나 트래픽에서 알려진 악성코드가 있는지 Static Rule을 이용해 우선 악성 여부를 검사합니다. 이 단계에서 악성인 걸로 판단되면 다음 단계까지 검사할 필요가 없겠죠. 기존의 알려진 악성코드가 아니라면 Dynamic Analsis(동적 분석) 단계로 넘어가게 됩니다. 이 단계에서 다양한 OS를 가상 시스템으로 만들어 두고 해당 파일이나 트래픽을 가상 시스템으로 주입시켜 악성 동작 여부를 모니터링하게 됩니다. 



이 단계에서 악성으로 판별되면 차단 룰을 생성하여 이후 동일한 악성코드가 들어오면 별도의 동적 분석절차를 거칠 필요 없이 바로 차단할 수 있게 됩니다. 또한 분석 결과와 악성 동작의 특성을 파악하여 장비 공급사에 전송하고 분석 결과를 통해 향후 다른 고객사에 사용 중인 장비에 Static Rule로 공유하여 신속하게 악성 여부를 판단하거나, 이미 내부 단말이 악성코드로 감염되어 있더라도 파악된 동작특성과의 유사성을 파악하여 이미 감염된 단말의 악성코드 판별에 활용하게 됩니다.



< 그림 2 >  네트워크에서 APT 공격 분석 아키텍처 (출처 : FireEye)



아래 <그림 3>는 실제로 악성코드에 감염되어 인터넷을 통해 C&C 서버와의 통신 내역이 탐지된 경보를 캡처한 그림입니다. 미라이(Mirai)라는 악성코드에 감염된 단말(192.5.90.150)이 지정된 C&C 서버(192.168.150.14)와 통신하는 HTTP 방식의 통신내용을 네트워크 탐지장비가 확인하여 해당 트래픽을 차단한 경보 내용입니다. 여기서는 이미 다른 단체의 탐지장비를 통해 해당 악성코드가 확인되어 패턴 정보가 공유되고 있기 때문에 신속하게 탐지가 된 경우입니다. 즉 이미 단말이 감염되어 있는 상태에서 Callback통신정보가 장비에서 확인되어 공격으로 탐지된 경우입니다. 이런 경우 출발지와 목적지의 서버 및 단말장비를 별도의 백신 등을 통해 치료가 필요한 상황이라고 할 수 있습니다.



< 그림 3 >  단말과 외부 C&C 서버가 통신 탐지 내역 (출처 : FireEye)


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari