마지막으로 단말에서의 APT 탐지 방식을 알아보도록 하겠습니다. 기존의 바이러스 백신의 경우 알려진 악성코드는 탐지가 가능하지만 알려지지 않은 악성코드는 탐지가 불가능하였습니다. 이런 단점을 보완하기 위해 단말에서 직접 악성 여부를 검사할 수 있는 샌드박스 기능을 추가하여, 알려지지 않은 악성코드도 탐지가 가능하게 되었습니다. 그뿐만 아니라 네트워크와 이메일에서 탐지된 악성코드의 다양한 정보(IOC: 공격 침해 지표)를 공유받아 다른 단말기기에서 발생하는 공격행위를 빠른 시간 안에 정확하게 탐지할 수도 있습니다.
아래 <그림 1>과 같이 단말 PC에 생성되는 파일, 레지스트리, 프로세스, 네트워크 행위 정보를 공유받아 별도의 정적, 동적 분석을 하지 않더라도 공격 탐지가 가능한데, 이렇게 공격이 탐지된 이후에 생성된 파일을 삭제하거나, 변경된 레지스트리를 복구하거나, 악성코드의 프로세스를 중단시키고, C&C 서버와 통신하는 네트워크 트래픽을 차단하는 등의 방법을 통해 공격 차단이 가능합니다.
기존에는 공격을 탐지하고 차단하는 것으로 대응이 끝났지만, APT 공격의 경우 침투한 단말을 통해 주위의 다른 단말과 서버에 악성코드를 확산시키는 특성을 가지고 있기 때문에 추가적인 대응이 필요합니다. 그래서 아래 <그림 2>과 같이 확인된 공격행위의 전 과정을 별도로 수집할 수 있는 기능을 제공하여 어떻게 단말의 파일을 생성하고 레지스트리를 수정하고, 서비스를 등록했는지에 대한 내역을 시간대 별로 정보를 저장할 수가 있습니다.
이렇게 분석된 결과를 통해 다른 단말을 검사하여 동일한 침해 지표를 있는지 검사를 수행할 수 있습니다. 기존에는 공격행위가 있어야 공격을 탐지할 수 있었다면, 사전에 다른 단말에서 탐지된 공격 특성을 파악하여 보안담당자의 탐지 행위를 피하기 위해 악성코드만 설치되어 있고 공격행위를 하지 않고 잠복하고 있는 단말이 있는 경우에도 공격이 시작되기 전에 조사하여 악성코드가 설치된 단말을 탐지할 수 있는데 이러한 방식을 위협 사냥(Threat Hunting)이라고 부릅니다.
기존의 공격 방어가 수세적인 입장에서 공격이 이루어져야만 대응을 하는 개념이었다면, 이제는 공세적인 방식을 통해 공격을 일어나기 전이라도 사전에 대응을 하는 개념이 나오기 시작하였습니다. 코로나 19 상황에 비유하자면 증상이 나타나야만 검사를 받고 감염이 판별되면 치료를 받는 것이 일반적인 방식이었다면, 증상이 없더라도 상시 검역소로 가서 검사를 받고 치료하는 방식이 위협 사냥 방식과 같은 개념이라고 할 수 있습니다.
지금까지 설명한 APT 공격에 대한 대응을 위해 사내보안팀이 파악해야 하는 사항에 대해 아래 <그림 3>와 같이 정리하였습니다. 최초 공격자가 이메일을 통해 악성코드를 사내 엔드포인트(단말)에 설치를 성공시키면, 내부 전파를 통해 여러 단말을 감염시켜 단말을 모니터링하면서 계정 정보와 사내 서버 접속 정보를 수집합니다. 이후 AD(계정관리 서버: Active Directory) 서버의 계정을 탈취하여 사내 중요 데이터에 대한 접근에 성공하여 데이터를 외부 서버로 유출시키거나 파괴하는 행위를 통해 원하는 목적을 달성하게 됩니다.
이때 이러한 공격에 대응하는 보안팀의 입장에서는 공격이 어떤 경로를 통해 이루어졌는지, 감염된 호스트는 무엇이며 감염 규모는 얼마인지, 사내 중요 데이터에 접근이 이루어졌는지, 데이터에 대한 유출이 이루어졌는지에 대한 사실을 파악하여야 공격에 대한 대응이 가능합니다.
모든 공격이 단말을 통해 시작되고, 대부분의 공격 기간 동안 단말을 중심으로 공격이 수행되기 때문에 단말을 모니터링하고 대응을 하는 것이 무엇보다 중요하게 되었습니다. 아쉽게도 대부분의 조직에서는 바이러스 백신 정도의 방어수단만 존재하는 상황에서 이러한 APT 공격에 대한 방어가 여러모로 힘든 점이 존재하기 때문에, 지속적인 방어수단에 대한 투자와 보안담당자의 교육을 통해 대응이 필요합니다.
이상으로 34회 걸친 네트워크 보안 이야기를 마무리하려고 합니다. 방화벽을 시작으로 VPN, DDoS, APT 공격에 대해 나름대로 풀어서 설명을 한다고 했는데, 독자에게 네트워크 보안에 대해 조금이라도 이해가 되었으면 합니다.