3.1 - 실험 시작

프로그래밍/패킷 캡쳐 2009. 6. 19. 00:19
실험 시작했습니다.

패킷들을 FLOW별로 저장하고 그들에게서 시그니처를 추출하여 다시 패킷들에 매칭시키는 방법입니다.

일단 시그니처 추출 전략은 단순히 패킷의 첫 4 BYTE를 들을 시그니처리스트로 뽑앗고 다음은 그에 결과입니다.



Fig. 원본 데이터 5MB


Fig. 결과 화면

충격과 공포의 결과였습니다. 물론 시그니처가 분명한 행동만 계속 하면 정답률은 올라가겟지만 그런 행동을 해도 이건 복구할 수 가 없는 수치로 다다릅니다.

순수 정답률 : 0.694%, 순수 오답률 96.172%     -_-오 마이 갓....

왜 이럴까 고민을 해봅시다. 


문제점
1. 프로그램 실행전에 맺어진 세션에 대해서는 자료가 Update 되지 않는 메커니즘 때문에 못잡는 패킷 증가
2. 패킷마다 첫 4 byte를 보면 의미 없는 시그니처가 너무 많이 잡힘

해결책
1. 프로그램 시작전 맺어진 세션의 ACK에 대해서는 계산에 포함하지 않습니다.
2. Sig 개수가 꽉 차면 Sig를 정리 하는 과정을 갖습니다.
- Process 별로 가장 많이 나온 상위 10개의 Signature만 살리고 나머지는 모두 지웁니다.


추가 사항
- History Storage 개념 추가
Signature로 매칭이 안될 때 기존에 매칭이 되었던 Flow 정보를 이용하여 History를 생성하고 이를 이용해 2차 매칭을 시도합니다.
: