brunch

브런치북 DDoS 개론 05화

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Jan 29. 2021

DDoS-5 (DDoS 공격 탐지방법-2)

DDoS 공격을 어떻게 탐지할 수 있을까요?

DDoS 공격을 탐지하는 인라인 장비와 아우트라인 장비를 포함하여 대부분의 장비는 임계치를 이용하여 공격 여부를 판단합니다. 특정 클라이언트가 공격 대상 서버로 얼마나 많은 트래픽을 짧은 시간에 보내는 지를 모니터링하다가 임계치를 넘을 경우 공격으로 인식하는 것인 기본적인 탐지 원리입니다.


여기서 탐지의 정확도를 높이기 위해 트래픽 양뿐만 아니라 트래픽을 보내는 시간 값을 추가하여 탐지의 정확도를 높이는 전략을 사용합니다. 아래 <그림 3>과 같이 가로축은 시간이고 세로축은 트래픽 양을 나타내는 그래프가 있습니다. 


즉, 시간에 따라 트래픽 양이 어떻게 변화하는지를 표현한 그래프입니다. 트래픽 양에 대한 임계치는 Trigger Rate, Middle Line, High Severity Rate라는 값이 있고, 시간 값에 대한 임계치는 Host Detection Start/End Latency, Severity Duration값들이 있습니다. 각각의 임계치에 대해 설명을 하면 아래와 같습니다.



Trigger Rate : 경보가 발생되기 위해 반드시 넘어야 하는 트래픽 양(이하 1차 임계값)


High Severity Rate : 경보가 High레벨로 올라가기 위해 넘어야 하는 트래픽 양(이하 2차 임계값)


Middle Line : Trigger Rate와 High severity Rate 사이의 75%의 트래픽 양(이하 중간값)


Start Latency : Trigger rate값 이상에서 얼마 동안 있어야 공격으로 탐지할지 결정하는 시간 값(이하 시작 판단시간)


End Latency : Trigger rate값 이하에서 얼마 동안 있어야 공격 경보를 종료할지 결정하는 시간 값(이하 종료 판단시간)


Severity Duration : High레벨 경보로 등급이 올라가기 위해 High Severity Rate값 이상에서 머물러야 하는 시간 값(이하 등급 판단시간)



아래 <그림 1>에서 트래픽 양이 증가하다가 1차 임계값을 통과하면 바로 경보가 시작되지 않고 시작 판단시간이 경과된 시점에서 Low 레벨 경보가 시작됩니다. 이후에 트래픽 양은 중간값을 넘지 못하고 아래에서 유지되다가 1차 임계값 이하로 떨어집니다. 이때 바로 경보가 종료되는 것이 아니고, 종료 판단시간 동안 트래픽 양이 1차 임계값을 다시 통과하지 못하면 해당 공격 경보를 종료하게 됩니다.


여기서 시작 판단시간이 필요한 이유는 트래픽이 급하게 올라갔다가 짧은 시간 내에 떨어지는 것은 공격보다는 정상적인 사용자들의 트래픽 사용 증가일 확률이 높기 때문에 어느 정도의 시간 동안 트래픽이 유지되어야 공격일 확률이 높기 때문입니다. 마찬가지로 종료 판단시간의 경우에는 공격 트래픽이 떨어졌다고 바로 공격 알람을 종료해 버리면, 트래픽 양을 잠시 중시시켰다가 다시 재개하는 공격을 개별적인 공격이 아니고 하나의 연속된 공격으로 관리하기 위해 필요한 값이라고 할 수 있습니다.


< 그림 1 >  Low 레벨 공격 탐지를 위해 사용하는 트래픽 양과 시간 값


다음으로 Medium 레벨 공격이 탐지되는 원리를 알아보도록 하죠. 아래 <그림 2>와 같이 트래픽이 1차 임계값을 통과해서 시작 판단시간이 지나면서 Low레벨 경보가 생성됩니다. 이후에 트래픽 양이 중간값을 넘어서 2차 임계값을 넘으면 바로 Medium레벨 경보로 상향됩니다. 그러나 2차 임계값을 등급 판단 시간 동안 유지하지 못하고 다시 떨어지면 High레벨로 상향되지 못하고 계속 중 값 값 이상에서만 트래픽 양이 머물러 있으면 Medium등급만 유지되게 됩니다.


< 그림 2>  Medium 레벨 공격 탐지를 위해 사용하는 트래픽 양과 시간 값


마지막으로 High 레벨 공격이 탐지되는 원리를 알아보죠. 아래 <그림 3>와 같이 트래픽이 1차 임계치를 통과하여 시작 판단시간 동안 트래픽을 유지하면 Low레벨 경보가 발령되고 트래픽 양이 2차 임계치를 넘어서면 Medium값으로 경보 등급이 상향됩니다. 이후에 2차 임계치 이상의 트래픽 양을 등급 판단시간 동안 유지한 시점에 경보 등급이 High로 상향 조정됩니다. 


< 그림 3 >  High 레벨 공격 탐지를 위해 사용하는 트래픽 양과 시간 값


이런 원리를 이용하여 3개 등급의 경보가 적절히 발생될 수 있도록 1,2차 임계값과 시간 값들을 적절히 조정해 줘야 합니다. 모니터링하는 서버의 평소 트래픽에 비해서 1,2차 임계값이 너무 낮으면 공격 경보가 자주 발생될 것이고, 임계값이 너무 높으면 공격이 발생되더라도 공격 경보가 발생되지 않을 것입니다. 아래 <그림 4>을 보면 모니터링 대상 장비 별로 설정한 임계치 및 시간 값을 기준으로 공격으로 공격 경보 리스트를 캡처한 그림입니다.


해당 경보들은 고유 ID, 트래픽 변화를 간편하게 확인하기 위한 미니 트래픽 그래프, 공격 강도를 확인할 수 있는 경보 레벨, 탐지된 공격 트래픽을 pps단위와 bps단위로 환산한 양, 공격 대상 IP, 탐지된 DDoS 공격의 종류, 공격이 시작 및 종료된 시간, 지속시간 등을 확인할 수 있습니다. 이 리스트를 통해 공격 종류 및 강도, 공격 대상 별로 정렬해서 일목요연하게 공격에 대한 발생 현황을 확인 가능합니다. 


< 그림 4 > DDoS 공격으로 탐지된 경보 리스트


좀 더 자세한 탐지 내역 확인하기 위해 해당 리스트를 클릭하면 아래 <그림 5>과 같이 좀 더 세부적인 탐지 내역을 확인 가능합니다. 확대된 그래프를 통해 TCP SYN과 RST 트래픽 양이 시간에 따라 어떻게 변화되었는지를 확인이 가능합니다. 그래프 하단의 Top Traffic Pattern에서는 트래픽을 보낸 IP주소와 공격 대상이 되는 IP주소를 확인할 수 있고, 각각의 출발지 IP가 얼마나 많은 트래픽을 공격 대상으로 보냈는지 Top 10 방식으로 정렬되어 표시되어 있습니다.


이를 통해 보안담당자는 같은 시간대에 해당 서버에서 실제 서비스 장애가 발생되었는지, CPU 등의 사용량이 높아졌는지 등을 확인하여 해당 트래픽이 서버에 영향을 미치는 레벨인지 판단이 가능합니다. 이를 통해 해당 서버에 대한 임계치 조정을 통해 조금씩 공격 탐지 정확도를 높여 갈 수 있습니다.


< 그림 5 >  DDoS 공격 경보에 대한 상세 내역


방어 장비를 최초로 도입한 이후에는 최초 모니터링 대상 및 임계치를 설정할 때 정확한 과거 데이터가 없기 때문에 일반적으로 장비의 기본값으로 모니터링을 시작합니다. 이후에 발생되는 공격 경보를 검토하여 해당 알람이 실제 서버에 영향을 미쳤는지 확인하고, 서비스에 영향이 없었다면 임계치를 좀 더 높이 설정하여야 합니다. 반대로 특정 서버의 서비스에 영향이 발생하였는데 방어 장비에서 별다른 공격 경보가 나타나지 않았다면 임계치를 지금보다 더 낮춰야 합니다.


모든 보안 장비가 마찬가지겠지만 장비를 도입하여 설치만 하였다고 모든 공격이 정확하게 자동으로 차단되지는 안습니다. 담당자 혹은 공급업체를 통해서 지속적인 모니터링과 임계치 조정, 장비 추가 도입 혹은 구성 변경에 따른 장비의 설정값 변경 등 인력과 운영 시스템의 지원이 지속적으로 이루어져야 장비 도입에 대한 효과를 기대할 수 있습니다.

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