2.3 - Phase 1 진행 상황

프로그래밍/패킷 캡쳐 2009. 6. 11. 15:45
시험기간이라 많이 못하는게 아쉽네요... 빨리 시험 끝나서 전체적인 시스템을 완성시켜보고 테스트 해 보고 싶습니다 :)

목적이 점점 구체적으로 정해지는게 느껴집니다.

이 시스템은 두 관점으로 볼 수 있습니다.
1. 일반 사용자 (PC)를 대상으로 하는 시스템
: 이 경우에는 현제 트래픽의 흐름을 프로세스와 매칭시켜 볼 수 있고, 원하지 않는 프로그램의 트래픽을 막을 수 있도록 하는 시스템을 목표

2. 라우터( ex. 백본망)을 대상으로 하는 시스템
: 이 경우에는 라우터에서 트래픽을 관리 하는 시스템
: 기존에는 포트를 막는 방식으로 프로세스를 제한해 왔지만 이 시스템을 이용하여 Signature를 추출하고
: 이 Signature 기반으로 트래픽의 프로세스를 유추하여 트래픽을 관리 하는 시스템을 목표


현재는 2번까지는 갈 수 없더라도 [1] + [Signature 추출 및 매칭] 의 시스템을 목표로 하고 있습니다.
[1] 번 시스템을 먼저 구성하는게 우선 일 것 같군요
[1] 번 시스템의 구성을 다시 한 번 살펴보면 다음과 같이 크게 3개의 Phase 로 구성됩니다

Phase 1 : 패킷들을 잡아 프로세스별로 나눠 저장하는 모듈
-  이 부분에 대해서는 [2-2] 의 글에서 어느정도 작성 하였습니다.
-  현재 까지 완성된 버전에서는 약간의 메커니즘이 변경되어 나중에 다시 언급하도록 하겠습니다.

Phase 2 : 프로세스별로 저장된 패킷들을 그룹알고리즘[각주:1]으로 그룹하고 정답지[각주:2]를 만드는 과정
- 아직 이 부분까지 구현을 하지 않아 추상적으로만 그룹과정을 생각해봤습니다.
(표로 넣으려고 했는데 표 셀 합치기가 되질 않네요....)

[프로세스명] ┳ [TCP]  ┳  [Server]  - 일반적으로 SYN 을 받은쪽이 Server
                   ┃            ┗  [Client]   - 일반적으로 SYN 을 보낸쪽이 Client
                   ┃
                   ┗ [UDP] (UDP 는 아직 고려하지 않습니다.)

다음과 같이 추상적으로 그룹을 생각해 봤습니다. 앞으로 더욱 많이 생각해봐야 될 부분인 것 같습니다.



Phase 3 : 정답지를 이용하여 실제 트래픽에 적용하여 정답률과 오답률을 측정(그래프로 보여줄 예정)
ex)
TP : A 패킷을 A Process 로 판단, TN : A 패킷을 B Process 로 판단
- 정답률 : TP / TP + TN



막상 쓰고보니 별게 없군요... 현재까지 진행사항을 올린뒤 포스팅을 마치겠습니다.

Phase 1 과정에 다음과 같이 프로세스별로 폴더가 만들어지고 파일이 생성되게 됩니다.


devenv 라는 프로세스에서 발생된 패킷들을 저장햇네요 'ㅡ')!



언제나 프로그래머를 괴롭히는거라면 벌레(…)겠죠. 이 전 버전에서 몇 가지 버그를 잡느라 혼났습니다.
가장 큰 버그라면 자꾸 프로세스명이 svchost만 잡히는 겁니다.... 이 전글을 보시면 아시겟지만 TCP Table에
svchost만 잡히는 스크린샷을 볼 수 있을겁니다. 전 원래 그런것인줄알앗는데 프로그램 코딩상의 문제였습니다.

그것을 수정하고 나니 잘 나오는것(…) 처럼 보이긴하는데... 또 까보면 무슨현상이 발생햇는지 며느리도 모르겟죠 ...

^^ 좋은 하루 되세요. 
  1. 프로세스별로 구분된 패킷들을 의미가 있는 단위로 구분하는 과정 현재는 다음과 같은 과정으로 그룹 1. 프로세스명 2. TCP, UDP 3. Server,Client (TCP Only) [본문으로]
  2. 그룹알고리즘으로 그룹된 의미가 있다고 여겨 지는 패킷들의 공통점을 찾아 특정 Signature를 모아놓은 Sheet [본문으로]
: