new clients 3.0.1.beta.3 on server
Carter Bullard
carter at qosient.com
Fri Mar 13 15:22:20 EDT 2009
Gentle people,
There is new clients code on the server:
ftp://qosient.com/dev/argus-3.0/argus-clients-3.0.2.beta.3.tar.gz
This fixes all known problems with argus-2.x data compatibility.
Fixes ./configure issues with "-lz".
There are some outstanding issues, but I don't have any reproducibility
on the problems with rastrip() and rastream() as of yet, so this
distribution should be usable.
This version has working copies of all the discussed software, including
database support and user data analysis (thats how we've referred to
it).
I would like to mention the user data programs a bit here.
The purpose of this technology is to identify the protocol that is being
used in a give flow. The concept is to generate a set of protocol
signatures, and to match the user data captured in argus records with
those signatures to give some assurance that the ports/addresses
are using the protocols they are suppose to use. A kind of channel
assurance technology.
The program rauserdata() will take in any number of argus records,
and generate a set of application fingerprints, that describe the
"observed" patterns in application data. These fingerprints are
used by raservices(), to label flows with the best guess as to what
application was seen in this flow.
To run rauserdata() against an argus archive in directory dir, type:
rauserdata -R /path/to/dir -M encode 32 > protocol.sig
This may run for a little while. The file is rather interesting.
Here are
the entires that my run generated against all the DNS traffic I've had
for the past few days.
Service: domain udp port 53 n = 12675 src = " 00
00010000000000 " dst = " 84 000100 00 00 "
Service: domain udp port 53 n = 4922 src = " 00
00010000000000 " dst = " 80 00 00 00 00 "
Service: domain udp port 53 n = 3469 src = "
01000001000000000000 " dst = " 000100 00 00 "
Service: domain udp port 53 n = 1075 src = "
00100001000000000001 " dst = " 8500000100 00 0000 "
Service: domain udp port 53 n = 1 src =
"112A0100000100000000000006636D73" dst =
"112A8180000100040005000306636D73"
Service: domain udp port 53 n = 1 src =
"3FEA0010000100000000000108627469" dst =
"3FEA8500000100010000000008627469"
Service: domain udp port 53 n = 1 src =
"9C63001000010000000000011473736C" dst =
"9C63850000010001000000001473736C"
When you build your sig file, you would probably throw away the entries
whose "n =" is less than something like 0.01% of the total number of
samples.
The "n = x" numbers provide raservices() with a notion of the
distribution of
patterns in a given protocol, so it can make a better guess, if it has
to.
I have a std.sig file in ./support/Config, that is a starting point
for building
your own signature file. I do not think that it is a particularly
good set of
signatures, so its just a starting point. Generating a good
signature file
will take time, and I hope that this list will help to generate many
many
signatures as time goes.
To use the signatures, use raservices() to label flows with the
"service" label.
raservices -f protocol.sig -r argus.file -s +label
this will print the services label that raservices generates. You
should see
that it should do a good job. The included std.sig has some entries
that
help to hightlight some of the features, such as "is there encrypted
data"?
If so, it has some tests for that.
Please give these programs a run, and lets start talking about how to
use
them effectively on the mailing list.
Hope all is most excellent,
Carter
More information about the argus
mailing list