EXTERNAL: Re: Raconvert does not produce the same binary output file

Ngo, John W john.w.ngo at lmco.com
Fri Oct 2 14:44:58 EDT 2015


Carter,

Thanks for looking into the issue.  It could be possible I’m not printing all the fields.  Here are the current fields I am printing:

stime flgs proto saddr sport dir daddr dport spkts dpkts sbytes dbytes state

In short, all I’m really doing is just printing out the default fields given to me when running the ra –r command.  I know there are a ton of other fields I can include.

Do you have a suggestion as to what other fields I should be printing out in order to properly convert back to *?

Thanks,
John

From: Carter Bullard [mailto:carter at qosient.com]
Sent: Friday, October 02, 2015 2:37 PM
To: Ngo, John W (US) <john.w.ngo at lmco.com>
Cc: Argus <argus-info at lists.andrew.cmu.edu>
Subject: EXTERNAL: Re: [ARGUS] Raconvert does not produce the same binary output file

John,
Thanks, I’ll look into it.  It is possible that you are not printing enough fields to convey all the information needed to get the printouts to be the same.
The Flgs fields have a massive amount of information that is summarized.  the “*” and the “e” as an example, these are indications of encapsulation types.  Are you printing out all the fields needed to preserve all the encapsulation information needed to retain the “*” ???

If you are using total packets and total bytes in the conversion, then you aren’t retaining enough information to preserve the direction arrows or the state information.

So, …, by printing out only 8-10 of the 150 fields we have, you will get a data minimizing effect, and as a result you won’t get identical output.
To preserve certain fields, you may need to add a few fields.  What fields are you using ????

Carter

On Oct 2, 2015, at 2:22 PM, Ngo, John W <john.w.ngo at lmco.com<mailto:john.w.ngo at lmco.com>> wrote:

Hi Carter,

Thanks a bunch for working on the issue!  It is very much appreciated!!

So the good news is that I’m no longer getting that strtol error when I run raconvert.

The bad news is that I’m still seeing discrepancies in the data.

Attached are the results using the new raconvert.c file you had sent to me.  It ran against the same argus binary file I had sent to you last time. Only the filenames have been shortened for simplicity.  Here are the steps I have used to generate the files:

1.)    Starting with the Argus binary archive, convert to Netflow:
ra -r argus.2015-09-14.gz -zc, > argus.2015-09-14.ra

2.)    Convert Netflow to Binary
raconvert -r argus.2015-09-14.ra -w argus.2015-09-14_derived.gz

3.)    Convert Binary back to Netflow
ra -r argus.2015-09-14_derived.gz -zc, > argus.2015-09-14_derived.ra

4.)    Diff argus.2015-09-14.ra  and argus.2015-09-14_derived.ra

I made sure to use the “-z” option to print the TCP state machine to preserve the state this time.  Unfortunately I am seeing the following differences as shown in my screenshots below:

-          The direction appears to be off.  Some <?> are missing the first ‘<’ upon conversion.  Sometimes it should be bi-directional, but it gets converted to uni-directional.
-          The state CON is converted to REQ.  Sometimes it is converted INT.
-          All asterisk * flags are converted to e.

<image001.png>

<image002.png>

Please let me know if I am missing something.

Thanks!
John

From: Carter Bullard [mailto:carter at qosient.com]
Sent: Monday, September 28, 2015 10:43 PM
To: Ngo, John W <john.w.ngo at lmco.com<mailto:john.w.ngo at lmco.com>>
Cc: Argus <argus-info at lists.andrew.cmu.edu<mailto:argus-info at lists.andrew.cmu.edu>>
Subject: EXTERNAL: Re: [ARGUS] Raconvert does not produce the same binary output file

Hey John,
Here is a raconvert.c that should be better than what you’ve experienced.  Its fixes the errors and generates consistent data.
In order to get the data to behave, especially TCP traffic, you need to provide raconvert.1 enough information to preserve the state that you want.  The way to preserve the state field and the direction, is to use the “-z” option when creating the ascii csv file.
This will print the TCP state machine, rather than SYN, CON, FIN, CLO.  This data is needed to seed the conversion algorithm with enough info to set the direction and the TCP state.

So this works for me with your data … we use racount.1 to test simple integrity of the data:
  racount -r argus.file
  ra -r argus.file -zc, | raconvert -c, -w - | racount
  ra -r argus.file -zc, | raconvert -c, -w - | ra -zc, | raconvert -c, w - | racount

These seem to generate the same data using your data.
Give this new raconvert.c a run, and give us a thumbs up or down !!!

Carter

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20151002/20290f05/attachment.html>


More information about the argus mailing list