2017-11-09 1 views
0

내 목표는 패킷 캡처 분석기를 구축하는 올바른 방법은 무엇. 이 파일에는 수백/수천 개의 패킷이있을 수 있습니다.분석 패킷 캡처 :</p> <p><strong>입력 :</strong> PCAP 파일 (또는 캡처 파일)

출력 : 트래픽에 대한 정보의 무리가이 문제를 해결하기

- How many TCP streams? 
- How many UDP streams? 
- For a given client (source IP): 
    o How many TCP connections were opened 
    o How many concurrent TCP connections were opened. 
    o What was the longest and shortest session 
    o What is the re-transmission ratio for a given stream? 
- Given a protocol (say HTTP) identify how many streams had this protocol. 
- etc 

한 가지 확실한 방법 스트림입니다 :

  1. 캡처 & 스토어를 읽어 데이터의 캡처 된 데이터 선택의 폭탄.
  2. 위의 각 쿼리에 대해 데이터 수집 (즉, 모든 스트림 분석, 통계 캡처) 특수 기능을 작성하십시오.
  3. 출력을 덤프하십시오.

나는 이것을 위해 scapy (파이썬 라이브러리)를 사용할 계획이었습니다. 내가 구현에 뛰어 전에

, 나는이 문제에 대한 다른 가능한 방법에 대한 자세한 내용은 궁금 :

  1. 쉽게 작업을 다른 프레임 작품/라이브러리가 있습니까?

  2. AI/ML 기반 프레임 워크에서 활용할 수있는 완전히 다른 접근 방식이 있습니까? [AI/ML에 대한 사전 경험이 없습니다]

  3. 데이터 세트에 대해 몇 가지 질문을하고 질문에 응답 할 수있는 프레임 워크를 구현하는 가장 좋은 방법은 무엇입니까?

는 [I 그러나 다른 가능한 옵션으로 열고, 파이썬과 C 매우 능숙입니다]

업데이트 : 10/11월 :에 내가 원하는 것을 매우 유용한 시작으로 https://github.com/vichargrave/espcap :이 발견 do ..

+0

을 livecapturing위한 훌륭한 패키지입니다. 이 질문에 어떤 세부 사항이 빠져 있습니까? – Bhakta0007

답변

0

Pyshark를 사용하는 것이 좋습니다. 이것은 tshark 래퍼입니다. 그것은 또한 모든 tshark 필터, 디코더 lib를 지원하며 ... 사용하기 쉽습니다! 이 .pcap 파일을 구문 분석하고이가 보류 된 이유는 확실하지 않다

https://pypi.python.org/pypi/pyshark

import pyshark 
cap = pyshark.FileCapture('/root/log.cap') 
cap 
>>> <FileCapture /root/log.cap> 
print cap[0] 
Packet (Length: 698) 
Layer ETH: 
     Destination: BLANKED 
     Source: BLANKED 
     Type: IP (0x0800) 
Layer IP: 
     Version: 4 
     Header Length: 20 bytes 
     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) 
     Total Length: 684s 
     Identification: 0x254f (9551) 
     Flags: 0x00 
     Fragment offset: 0 
     Time to live: 1 
     Protocol: UDP (17) 
     Header checksum: 0xe148 [correct] 
     Source: BLANKED 
     Destination: BLANKED 
    ... 
dir(cap[0]) 
['__class__', '__contains__', '__delattr__', '__dict__', '__dir__', '__doc__', '__format__', '__getattr__', '__getattribute__', '__getitem__', '__getstate__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_packet_string', 'bssgp', 'captured_length', 'eth', 'frame_info', 'gprs-ns', 'highest_layer', 'interface_captured', 'ip', 'layers', 'length', 'number', 'pretty_print', 'sniff_time', 'sniff_timestamp', 'transport_layer', 'udp'] 
cap[0].layers 
[<ETH Layer>, <IP Layer>, <UDP Layer>, <GPRS-NS Layer>, <BSSGP Layer>] 
+0

감사 합니다만, 나는 분명히 pyshark의 기능을 탐구 할 것입니다. – Bhakta0007

+0

탐험 할 대체 도서관을 주었기 때문에 답을 듣습니다. 나는 여전히 가능한 접근법에 대한 다른 해답을 찾고있다. – Bhakta0007

관련 문제