Menu

Tree [e4889d] default tip /
 History

Read Only access


File Date Author Commit
 config 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 dist 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 doc 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 etc 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 m4 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 src 2017-10-23 s_zander s_zander [e4889d] Flow timeout fix
 .hgtags 2015-12-07 Sebastian Zander Sebastian Zander [ad69d1] Added tag 0.3 for changeset 8c86cc640234
 AUTHORS 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 COPYING 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 ChangeLog 2017-10-23 s_zander s_zander [feeab4] Fix flow timeout bug with trace file mode and s...
 INSTALL 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 Makefile.am 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 Makefile.in 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 NEWS 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 README 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 aclocal.m4 2017-07-13 s_zander s_zander [1d8678] - fix non-default log file name bug, now cchef ...
 autogen.sh 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 config.h.in 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release
 configure 2017-07-13 s_zander s_zander [1d8678] - fix non-default log file name bug, now cchef ...
 configure.ac 2015-12-07 Sebastian Zander Sebastian Zander [bbec3e] Initial release

Read Me

Covert Channels Evaluation Framework (CCHEF)
--------------------------------------------

CCHEF is a framework for evaluating covert channels in network protocols.
It can be used to test covert channels across real networks using real
overt traffic as cover. It can also be used to emulate covert channels
with overt traffic from traffic traces to evaluate covert channels with
a specific overt traffic mix.

CCHEF can be used for multiple purposes:
- test existing intrusion detection software, firewalls
- evaluate the capacity of covert channels under 'realistic' conditions 
- develop new methods for eliminating, limiting or detecting covert
  channels

The aim of CCHEF is not to become actually used for circumventing security
measures. Thus absolutely no attempts have been made to hide the presence of
the CCHEF application used as sender/receiver - it is a normal user space
application stored in the file system.

For basic installation instructions read the file INSTALL.

When there are questions or problems please read the FAQ
(doc/FAQ) first and have a look at the CCHEF documentation
in the doc directory before contacting the author. 

Oh, and beware CCHEF is experimental software!

WEB SITE

Here you can download the complete user and developer
documentation and the latest version of the CCHEF sources: 

https://sourceforge.net/projects/cchef/

DOWNLOAD

The software is available as source distribution from: 

https://sourceforge.net/projects/cchef/

GETTING STARTED

Installation of CCHEF is straight-forward (see INSTALL). 

After a successful installation there should be two executables in <prefix>/bin:
cchef and compare.

cchef is the actual covert channels evaluation tool. compare can be used
to compare the send bits vs. the received bits and compute bit error rates etc.

CCHEF is controlled via XML config files. These config files specify the type
of covert channel, whether the channel is uni- or bi-directional etc. 

Some example config files are installed in <prefix>/etc/cchef. IP addresses
and file names in the examples must be modified by you before running CCHEF!

Example config files are provided for the following scenarios:

1) Produce a list of flows and their common TTL value (TTL value of the majority
   of packets) based on traffic data from a traffic trace. This list is needed 
   before NoiseTTL can be used to emulate noise in TTL field related channels.
   (TTL is the Time to Live field in the IP header.) Modify the the basettl.xml
   file and run CCHEF:

   hostA>cchef -c basettl.xml

   This will output a file with flow IDs and most common TTL values in forward
   and backward direction.

   This is an example of using CCHEF, but actually not using any covert channels.
   CCHEF can be used to just perform analysis of traffic data in trace files or
   captured on live interfaces. For another example see the flowlen.xml config 
   file.

2) Emulate the use of covert channels with overt traffic taken from traffic trace
   files. In this case there is no actual traffic send across the network. Overt
   traffic is read from a trace and the covert channel is encoded. CCHEF allows
   the simulation/emulation of channel noise. After channel noise is applied the 
   covert channel is decoded and bit error statistics are computed.

   To emulate covert channels with overt traffic from a trace modify the trace-sr.xml
   config file and run:

   hostA>cchef -c trace-sr.xml

3) Trace file based emulation can also be performed in two steps using the 
   trace-send.xml and trace-recv config files. Modify both config files. First run:

   hostA>cchef -c trace-send.xml

   This will produce a trace file with the covert data encoded in the overt traffic. 
   Then the covert data can be decoded by running:

   hostA>cchef -c trace-recv.xml

   Note: the trace file produce in the first step can be used as input for testing
   covert channel detection tools, intrusion detection systems, firewalls etc.

4) Establish a unidirectional channel from a sender to a receiver and (repeatedly)
   send a text file. Edit the config files text-send.xml and text-recv.xml so
   that IP addresses are the IP addresses of the two hosts and all file names
   point to valid files and directories (in particular it is required to create
   a send.txt file at the sender. Then start CCHEF:

   hostA>cchef -c text-send.xml
   hostB>cchef -c text-recv.xml

5) Estalish a bi-directional channel between two peers over which IP packets
   are tunneled. Edit the config files tun-peer1.sml and tun-peer2.xml so that
   IP addresses are the IP addresses of the two peers. Then start CCHEF:

   hostA>cchef -c tun-peer1.xml 
   hostB>cchef -c tun-peer2.xml

   Overt traffic between hostA and hostB is required to carry the covert data.

The compare application compares two bit files produced by CCHEF. A CCHEF sender
will produce the files 'BitsSendPayload' and 'BitsSendTransport'. A CCHEF receiver
will produce the files 'BitsRecvPayload' and 'BitsRecvTransport'. The payload
files contain the bit streams on payload level, this means the covert bits
send by the sender and the covert bits recovered by the receiver. The transport
files contain the bit streams that are actually send over the channel at transport 
level including transport headers, framing bits etc.

To compare the send and received bits at transport level run:

compare -i BitsSendTransport -o BitsRecvTransport

To compare the send and received bits at payload level run:

compare -i BitsSendPayload -o BitsRecvPayload -b 16

Here 16 is the number of bytes per transport block. It needs to be set to the same
value as specified in the CCHEF config file. Otherwise block loss statistics will 
be wrong!

Man pages for the tools are in the doc subdirectory.

LICENSE

CCHEF is releases under the terms of the GNU General Public Licence version 2
(GPLv2). Please see the the file COPYING for details.

CONTACT

If you have problems, questions, ideas or suggestions, please contact me:

Sebastian Zander (sebastian.zander@gmx.de)

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.