trailofbits / differ

Detecting Inconsistencies in Feature or Function Evaluations of Requirements
GNU Affero General Public License v3.0
67 stars 4 forks source link

Network Comparator Research #11

Closed ameily closed 1 year ago

ameily commented 1 year ago

As part of #10, we need to do some initial work to determine what is feasible and what existing tools we can use to:

  1. Monitor a process's network traffic and store it to a pcap file on disk.
  2. Filter a pcap to only a specific process, executable, port, or flow that matches a query.
  3. Compare 2 pcap files, ignoring expected randomness such as client ports, timestamps, etc. We could either compare the pcaps themselves or output flow data that we compare against
  4. Query a pcap looking for specific flows or data

The output of this task is some discussion on this issue regarding what is a available and proposed solutions. Once we find an ideal approach, create follow-on issues under the epic to work on next.

ameily commented 1 year ago

I spent some time researching this today and I'm going to deprioritize this for the time being and go in a different direction instead for several reasons:

So, instead of creating a new framework for capturing network traffic and analyzing or comparing the results, I think the best solution is to add a new feature in DIFFER to compare both the server binary and the client, using the same extensible comparator component.

ameily commented 1 year ago

The initial version of this has been completed using the pcap file comparator. The functionality of the packet capture and comparison is somewhat basic for the time being:

  1. capture traffic on a single network interface
  2. compare only tcp or udp flows