Things are moving on this item. Here’s a current screenshot of the application in action:
I consider the code for this “alpha” quality at best. If you’re brave and want to give it a try, keep reading:
I still haven’t created a VM image for this yet, but you can download the Java web application (I use Glassfish as the container) and UNIX/Linux (I use Debian) sensor sources from this web site:
https://sourceforge.net/projects/flower-nfa/
All code is available in the Subversion repository.
The current status is that the network map and tabular chart functions work well along with the “constraint” (i.e., specifying traffic patterns to view) mechanism. Both IPv4 and IPv6 traffic can be profiled and queried.
On the client end, Firefox 3 and Safari 4 both work quite well. Safari (really, Webkit) has a minor issue with the title graphic – it doesn’t scale as the window grows and shrinks. That doesn’t impact the functionality at all.
Firefox 3.5 has introduced some pretty significant bugs in SVG rendering that make the scale functionality of the map work poorly; I’ve encountered numerous browser hangs and crashes when I scale the image past about 2.0x and try to move it. It looks to me like maybe they’ve done some work with the text rendering that has introduced this new instability. Hopefully that will be resolved quickly. I’ll try to figure a concise way to file a bug report about it.
Chrome has the same issues as Safari. Chrome also renders the SVG text differently than Safari or Firefox; not a big deal but it does impact readability a little bit.
Opera works, but is “tweaky”. Hard to really describe exactly how.
Internet Explorer does not work at all, of course (no SVG capability). Adobe’s plug-in might work, but I’ve never tried it.
The “flower_config.xml” file in the web application root directory contains the specifications for the networks to profile and some protocol information to normalize non-TCP flows. That must be modified to match your environment.
User name and password for the application are hard-coded as “flower/flower”. I’ll add a real authentication mechanism as things progress towards a beta release.
I use a URL base of “/flower”, but theoretically you should be able to choose whatever you want. (Strike that, the sensor is hard-coded to use “http://. . .:8080/flower’ – I will fix that, though).
Available constraints are: “tcp, udp, esp, ipv4, ipv6, sip , dip , port , protocol ” Additional constraints are easy to add as I find the need.
The analysis engine runs on Debian Linux (and probably most other Linux distributions). It requires libcurl and libpcap. Compilation is a simple: “./autogen.sh;./configure;make” The resulting executable is src/sensor and is executed with the following options:
-b Executes the sensor in the background
-s <address> Analysis server IP address to report to
-d <device> Ethernet device to listen on (i.e., eth0)
If not run as background, you will be presented with a prompt: “FCE>”. Here you can query the running analysis engine. Just type “help” to see the available commands.
Posted by justindthomas
Posted by justindthomas
Posted by justindthomas 