2.4 - Phase 2.ing 진행 상황

프로그래밍/패킷 캡쳐 2009. 6. 14. 00:42
Phase 1의 주요 기능이 트래픽을 잡아 프로세스별로 저장하는 것이였다면 

Phase 2의 주요 기능은 저장된 데이터를 읽고, 프로세스 별로 최대한 비슷한 행동을 한 녀석끼리 그룹을 하고, 

특정(specified) 알고리즘등을 사용하여 Process당 좋은 Signature[각주:1]를 여러개 추출하는게 목적입니다. 

Real-Time을 생각한다면 이 Signature는 길이와 개수에 제한이 있을 것같네요. 하지만 그건 나중에 생각하죠 :)



조금더 자세하게 들어 가보겠습니다.

1. 프로세스 별로 최대한 비슷한 행동을 한 녀석끼리 그룹



이렇게 그룹 하는 방법외 다른 방법이라면 IP, Port, Received Time들 간의 연관관계를 이용하여 그룹 하는 방법도 있겠네요. :)  더 깊게 들어 가면 너무 복잡해 지므로, 일단 Ver 1.0 을 빨리 만드는게 목적이니 간단하게 나눠 보려고 합니다. 충분히 변경될 부분입니다만 지금 아무리 생각해도 어떤 방식으로 하는게 더 좋을지는 실험을 거치지 않은 상태이기 때문에 Phase 3 이 완성되고 분석률이 나오면 다시 짚는 시간을 갖도록 하겠습니다. 


2. 특정 알고리즘을 사용하여 Signature를 추출

이 부분에 대해서는 전 포스팅에도 있듯이 몇 가지 간단히 생각해둔 알고리즘을 사용하려 합니다.

- '패킷의 첫 4 bytes': 구현하기 가장 쉬운 알고리즘으로 처음에는 이 알고리즘을 적용하여 테스트 할 계획입니다.

- 'LCS'(Longest Common Subsequence): 기본적인 LCS 알고리즘으로는 여러가지 문제에 의해 판별하기가 힘들거라 생각하지만 조금씩 변경해 나가면 좋은 결과를 보여줄 거라 생각합니다. '패킷의 첫 4 bytes' 알고리즘이 완성되어 어느정도 분석률이 나오면 이 알고리즘도 적용 할 계획입니다.


1 과정을 거쳐 그룹된 패킷들을 2에 의해 Signature가 추출되게 됩니다. 

대충 Phase 2의 윤곽이 잡힌 것 같으니 다시 프로그래밍 세계로 접속해야 겠군요 :)
좋은 하루 되세요 ^^
( 아래는 현재 진행 상황 입니다. )


Fig. 현재는 생각지 않지만 추후에는 성능 측정부분도 추가 계획입니다.


Fig. Capture 화면


Fig. Phase 1에 의해 저장된 .p1 파일 읽기


Fig. 저장된 파일을 읽은 모습
  1. 프로세스를 대표할 수 있는 특정 문자 혹은 값 [본문으로]
: