Question about inter arrival flow times.

Agents Fel Cvut sebastian.garcia at agents.fel.cvut.cz
Thu Aug 15 10:20:07 EDT 2013


Hi list.

I'm working right now on a machine learning method to detect the
botnet behavior on the network.
I was trying to find out if it is possible to extract a metric that I
will call "inter flow arrival time". I need to have the same
information as in the inter packet arrival times, but for flows.

The idea is that when you group flows using racluster, I can't know
how were the flows 'distributed' over time.

Let me show you an example of what I need:

Imagine that you have these unidirectional flows:

StartTime                  Dur      RunTime  Proto SrcAddr Sport
Dir DstAddr Dport   State Tos TotPkts   TotBytes    Trans   Mean
StdDev   Rate
2011/08/17 12:30:09.866165 0.048681 0.048681 tcp x.x.x.x 1027 ->
y.y.y.y 80 sER 0 4 629 1 0.048681 0.000000 61.625688
2011/08/17 12:30:09.873948 0.032258 0.032258 tcp x.x.x.x 1027 <-
y.y.y.y 80 SEC 0 3 253 1 0.032258 0.000000 62.000124
2011/08/17 15:50:40.572955 0.016209 0.016209 tcp x.x.x.x 2597 ->
y.y.y.y 80 sER 0 3 182 1 0.016209 0.000000 123.388236
2011/08/17 15:50:40.588790 0.000000 0.000000 tcp y.y.y.y 80 -> x.x.x.x
2597 S   0 1 62  1 0.000000 0.000000 0.000000
2011/08/17 16:19:57.888519 1.951620 1.951620 tcp x.x.x.x 1795 ->
y.y.y.y 80 sER 0 5 675 1 1.951620 0.000000 2.049579
2011/08/17 16:19:57.896315 0.009000 0.009000 tcp x.x.x.x 1795 <-
y.y.y.y 80 SEC 0 3 308 1 0.009000 0.000000 222.222232

You can see 6 flows and you know the inter arrival flow time because
you can compute it from the start time.


You can also use bidirectional flows and you will have these flows:

StartTime                  Dur      RunTime Proto SrcAddr Sport    Dir
DstAddr   Dport  State SrcJitter DstJitter Tos TotPkts TotBytes Trans
Mean     Stddev Rate   SIntPkt SIntDist SIntPktAc SIntActDi SIntPIdl
SIntIdlDist
2011/08/17 12:30:09.866165 0.048681 0.048681 tcp x.x.x.x 1027 ->
y.y.y.y 80 sSER 17.219834 7.567 0   7     882   1  0.048681 0
123.251 16.227  0     16.227    16.129    0        16.129
2011/08/17 15:50:40.572955 0.016209 0.016209 tcp x.x.x.x 2597 ->
y.y.y.y 80 sSER 7.9475    0     0   4     244   1  0.016209 0
185.082 8.1045  0     8.1045    8.10      0        0
2011/08/17 16:19:57.888519 1.951620 1.951620 tcp x.x.x.x 1795 ->
y.y.y.y 80 sSER 733.31775 4.204 0   8     983   1  1.95162  0
3.58676 487.905 0     487.905   4.5       0        4.5

You can see 3 bidirectional flows. Now you still can compute the inter
flow arrival time using the start time. In this case the inter flow
arrival time should be:
Between flow 1 and 2: 12,030.71 seconds
Between flow 2 and 3: 1,757.32  seconds

However, if you use racluster to group together the flows, you will get

StartTime                           Dur        RunTime Pro SrcAddr
Sport Dir DstAddr Dport     State SrcJit DstJi Tos TotP TotBy Tr Mean
 StdDev Rate   SIntPkt SIntD SIntPA SIntActD SIntPI SIntID
2011/08/17 12:30:09.866165 13789.973* 2.01651 tcp x.x.x.x 0 -> y.y.y.y
80 sSER 542.97 8.442 0   19   2109  3  0.6721 0.9048 0.0013 224.056 0
   224.05 10.314   0      10.314

But now, there is no way to find out the 'inter flow arrival time'
from this information.
All the 'jitter' metrics are also related to the inter packet arrival time only.

Do you know if I can compute this 'inter flow arrival time' from the
racluster output? Do you think it could be a good measurement to add?
BTW I'm using argus clients 3.0.7.7 and argus 3.0.6.1

Thanks a lot for your time
sebas



More information about the argus mailing list