wiki:WikiStart
Last modified 4 months ago

Time Machine

*If you are interested in participating in Time Machine development, please make yourself known on the mailing list. ICSI's resources for this project are unfortunately limited at this time and we appreciate any help.*

About

There are times when it would be extraordinarily convenient to record the entire contents of a high-volume network traffic stream, in order to later "travel back in time" and inspect activity that has only become interesting in retrospect. Two examples are security forensics—determining just how an attacker compromised a given machine—and network trouble-shooting, such as inspecting the precursors to a fault after the fault.

To perform this task efficiently, the packets are first stored in a ring buffer in the memory (RAM), later the packets are copied to (hard) disk. This allows the time machine to smoothen capture bandwidth peaks in memory and store huge amounts of traffic on disk, covering several days of network traffic. The time machine is designed to work in Gbps environments.

Since it is not feasible to capture the complete load of a fully utilized Gbps link to disk, the time machine utilizes a mechanism called "connection cutoff" to reduce the the amount of data to process. This "connection cutoff" only records the first X bytes of every monitored connection (identified via the 5-tupel of source and destination IP and Port and the transport protocol). Indeed this approach it does not impair the analysis capabilities (unless the cutoff is set to low) because most of the "interessting" data is located in the first few packets of a connection. The effiency of this approach comes from leveraging the heavy-tailed nature of network traffic: because the bulk of the traffic in high-volume streams comes from just a few connections.

To take full advantage of this recording it is import to be able to quickly locate certain packets. For example one might be interested in all packets of a specific connection or all packets from one IP address. This is achieved by indexing stored packets. The indexes to create can be specified, for example one could create indexes for the connection 5-tupel, for IP address pairs, for IP addresses, etc. One can than issue a queries for a specific index to the time machine and the time machine will lookup the query in its index and will return all stored packets matching the query.

To further streamline the analysis capabilities we have coupled the TimeMachine with the Bro network intrusion detection system (IDS) www.bro-ids.org. Thus the IDS can directly interact with the TimeMachine and request historic traffic to represent it to a security analyst or to do retrospective analysis.

Download

Latest release of Time Machine can be found at the link below. A new release at ICSI will follow soon.

 TimeMachine-20090206

Development

Run the following command to checkout TimeMachine's master:

git clone git://git.bro-ids.org/time-machine 

Browse source through Trac or  Git HTTP

Mailing Lists

 User Mailinglist

Tracker Accounts

In order to file a ticket you must be an authenticated user. If you need an account, please send an email to time-machine@… and we will create one for you.

History

2010-02-26 - Project moved to ICSI from it's previous location. Old URL:  http://www.inet.tu-berlin.de/menue/research/network_measurement/time_machine/time_machine/

License

The TimeMachine is a joint project of the Technische Universität Berlin, the Technische Universität München, and the ICSI (University of California Berkeley). It is open-source and published under the BSD license.