첫 포스트에서는 단순히 모든 프로그램에 포트를 할당해주는 방법인 포트 기반 트래픽 분류 방법에 대해 알아보았습니다.
앞 포스트에서도 설명했다시피 인터넷과 컴퓨터 기술이 발달하면서 단순한 포트 할당만 가지고는 모든 프로그램을 커버하기 힘들어졌고
이에 따라 네트워크 트래픽을 분류하기 위해 좀 더 분석적인, 다양한 방법을 시도하게 됩니다.
이번 포스트에서는 페이로드 기반 트래픽 분류 방식에 대해 알아보겠습니다.
2. 페이로드 기반 트래픽 분류
모든 프로그램에 번호를 붙여주는 방법이 안 된다면
실제로 네트워크에 흘러다니는 트래픽을 확인해 보는 방법을 사용할 수 밖에 없겠지요.
페이로드 기반 트래픽 분류 방식은 바로 이러한,
네트워크 트래픽의 패킷을 직접 검사하여 트래픽을 구분해보고자 하는 방법입니다.
네트워크 트래픽을 전송하는 패킷의 내용을 들여다보면 여러가지 정보가 들어 있습니다.
패킷을 전송한 IP, 패킷을 전송받을 IP, 어떤 프로토콜을 이용하여 전송하였는지, 어떤 포트를 사용할 것인지...
그 중 페이로드(Payload)란 네트워크 트래픽 안에 들어있는 패킷의 실제 내용을 의미합니다.
위 이미지는 Windows Power Shell에 대한 ICMP 응답 패킷입니다.
16진수로 이루어진 실제 데이터를 인코딩해 보면 오른쪽과 같은 문자열을 볼 수 있습니다.
Windows PowerS hell이라는 문자열이 실제로 들어있는 것을 볼 수 있습니다.
이렇듯이 특정한 응용 프로그램 트래픽의 페이로드에는 항상 특정한 문자열이 들어있을 것이라 가정하고
"그 특정한 문자열이 들어있다면 이 응용 프로그램의 트래픽일 것이다" 라고 알아내는 방법이 바로
페이로드 기반 트래픽 분류 방법입니다.
페이로드 기반 트래픽 분류 방법에서는 이 특정한 문자열을 시그니처(Signature) 라고 부릅니다.
특정한 문자열이 바로 트래픽을 분류해주는 서명이 되는 것이지요.
페이로드 기반 트래픽 분류 방법은 이 시그니처를 정의할 수만 있다면 매우 높은 정확도를 가진다고 합니다.
AT&T의 연구원 Subhabrata Sen의 연구결과에 따르면 페이로드 기반 트래픽 분류 방법을 이용한 P2P 트래픽 분류에서 95%에 해당하는 데이터의 트래픽 분류에 성공했다고 합니다.
제가 사용하는 인터넷 내역을 다른 사람에게 95%나 들킬 수 있다고 생각하면 조금 무섭네요.
페이로드 기반 트래픽 분류 방법은 매우 정확한 트래픽 분류 방법이지만 한가지 난점이 있습니다.
바로 시그니처를 어떻게 정의할 것인가 라는 부분입니다.
페이로드 기반 트래픽 분류 방법은 미리 정의된 시그니처에 대해서는 높은 정확도를 가지지만
시그니처가 정의되어 있지 않다면 트래픽을 구분해낼 수 없습니다.
즉, 새롭게 만들어진 프로그램은 그에 해당하는 시그니처를 정의하기 전에는 구분할 수 없다는 것입니다.
하루에도 수십, 수백종류의 프로그램이 만들어지는 현대에서 이 점은 꽤 큰 난점이라고 생각할 수 있을 것입니다.
때문에, 시그니처를 자동으로 정의하기 위해 다양한 방법이 시도되고 있기도 합니다.
'Network 이야기' 카테고리의 다른 글
Network Traffic Classification - 3 (0) | 2018.12.23 |
---|---|
Network Traffic Classification - 1 (0) | 2018.12.23 |