[SecViz] Afterglow: Is it possible to split a field?

Paul Halliday paul.halliday at gmail.com
Mon Mar 15 08:44:45 EDT 2010


I verified the code from the command line, it works fine.

I see why it is failing though:

Property File Error, unrecongnized entry: $fields[2], line 1
Property File Error, unrecongnized entry: $hit_count, line 2

I guess the properties file isn't taken literally?

On Sat, Mar 13, 2010 at 10:16 PM, Raffael Marty <raffy at raffy.ch> wrote:

> I think that's because count is not an int, but a string. Is that possible? I think you can try to cast it to an int...

>

>  Raffael

>

> --

> Raffael Marty,                               Founder @ Loggly

> @zrlram                                         raffy.ch/blog

>

> On Mar 13, 2010, at 5:05 PM, Paul Halliday wrote:

>

>> That seems to colour everything yellow; I am tired though, I could be

>> missing something simple..

>>

>> I have this:

>>

>> $fields[2] =~ /Count\:\s+(\d+)/;

>> $count = $1;

>> color.target="yellow" if ($count==1);

>> color.target="gray70" if ($count<=20);

>> color.target="gray50" if ($count<=50);

>> color.target="orangered" if ($count<=100);

>>

>> I get this:

>>

>> http://www.pintumbler.org/files/scans_2010-03-13.png

>>

>> What am I missing?

>>

>> On Sat, Mar 13, 2010 at 3:20 PM, Bob Fox <dauntingbob at yahoo.com> wrote:

>>> Paul:

>>>

>>> I always find split clumsy and tend to solve such problems with a regex...

>>>

>>> Perhaps something like:

>>>

>>> $fields[2] =~ /Count\:\s+(\d+)/;

>>> $count = $1;

>>> color.event="yellow" if ($count<=20);

>>>

>>>

>>> -----------

>>> Bob Fox

>>>

>>>

>>>

>>> ________________________________

>>> From: Paul Halliday <paul.halliday at gmail.com>

>>> To: Raffael Marty <raffy at raffy.ch>

>>> Cc: secviz-visualization at secviz.org

>>> Sent: Fri, March 12, 2010 10:11:38 PM

>>> Subject: Re: [SecViz] Afterglow: Is it possible to split a field?

>>>

>>> Even after reading up on Perl's 'split' I cant seem to get this to

>>> work (I couldn't hobble your example together either).

>>>

>>> $fields[2] looks like this:

>>>

>>> 172.16.0.1 Count: 20

>>>

>>> I am trying this:

>>>

>>> $count=split(' Count: ',$fields[2]);

>>>

>>> color.event="yellow" if ($count[1]<=20);

>>>

>>> Any pointers would be nice :)

>>>

>>> Thanks!

>>>

>>> On Wed, Mar 10, 2010 at 2:15 PM, Raffael Marty <raffy at raffy.ch> wrote:

>>>> Oh, I see... I think you are breaking some functionality if you do that.

>>>> Not sure though. Anyways, you could do something like format your data this

>>>> way:

>>>>

>>>> A,B,C|D

>>>>

>>>> Then in your properties file, split by | again:

>>>>

>>>> color = $count=split("|",$fields[2])[0]; return "red" if ($count > 100)

>>>>

>>>> I haven't tested this (my perl code might be off too, been in Python land

>>>> for too long), but it should work... Hopefully ;)

>>>>

>>>>  Raffael

>>>>

>>>> --

>>>> Raffael Marty,                               Founder @ Loggly

>>>> @zrlram                                         raffy.ch/blog

>>>>

>>>> On Mar 10, 2010, at 9:44 AM, Paul Halliday wrote:

>>>>

>>>>> I have been working on this:

>>>>>

>>>>> http://www.pintumbler.org/code/edv

>>>>>

>>>>> The problem I was having was that I was already using the 3 fields:

>>>>>

>>>>> src_ip, dst_ip, signature

>>>>>

>>>>> I wanted to add a little depth by adding an event count for each

>>>>> unique (src->dst->signature) entry; a 4th field.

>>>>>

>>>>> I changed a couple lines in afterglow.pl:

>>>>>

>>>>> on line 438 I added:  $other = $fields[3];

>>>>>

>>>>> and on line 474 I changed it to read:

>>>>> @fields=($source,$event,$target,$other);

>>>>>

>>>>> Now I can do:

>>>>>

>>>>> src_ip, dst_ip, signature,count using count to colorize the objects:

>>>>>

>>>>> http://www.pintumbler.org/files/allevents_2010-03-10_thumb.png

>>>>>

>>>>> It needs some work but its close to what I was looking for.

>>>>>

>>>>> Thanks.

>>>>>

>>>>> On Wed, Mar 10, 2010 at 12:56 PM, Raffael Marty <raffy at raffy.ch> wrote:

>>>>>> Hi Paul,

>>>>>>

>>>>>> Sure you can do that.

>>>>>>

>>>>>> Let's say you have a three column input:

>>>>>>

>>>>>> 10.0.0.1,20.2.2.2,100

>>>>>> 12.2.2.2,10.0.0.1,12

>>>>>>

>>>>>> So, you have a source address, destination address, and a count. Then do

>>>>>> this:

>>>>>>

>>>>>> cat file | afterglow -t -c file.properties | ....

>>>>>>

>>>>>> What is important is the -t, which tells AfterGlow to only visualize two

>>>>>> columns. The third column will still be available in your config file. So,

>>>>>> the file.properties would look something like:

>>>>>>

>>>>>> color.target = "red" if ($fields[2]>100)

>>>>>>

>>>>>> Note, it's $fields[2], not 3! What you could also:

>>>>>>

>>>>>> color = "green" if (fields()>100)

>>>>>>

>>>>>> Hope this helps. Looking forward to seeing your output on secviz.org.

>>>>>> What's the use-case you are after?

>>>>>>

>>>>>> Cheers

>>>>>>

>>>>>>  Raffael

>>>>>>

>>>>>> --

>>>>>> Raffael Marty,                               Founder @ Loggly

>>>>>> @zrlram                                         raffy.ch/blog

>>>>>>

>>>>>> On Mar 10, 2010, at 5:56 AM, Paul Halliday wrote:

>>>>>>

>>>>>>> Or have field[3] available?

>>>>>>>

>>>>>>> I want to colour a source or target based on its count of events.

>>>>>>> Is this possible?

>>>>>>>

>>>>>>> Thanks.

>>>>>>> _______________________________________________

>>>>>>> SecViz-Visualization mailing list

>>>>>>> SecViz-Visualization at secviz.org

>>>>>>> http://eight.pairlist.net/mailman/listinfo/secviz-visualization

>>>>>>

>>>>>>

>>>>

>>>>

>>> _______________________________________________

>>> SecViz-Visualization mailing list

>>> SecViz-Visualization at secviz.org

>>> http://eight.pairlist.net/mailman/listinfo/secviz-visualization

>>>

>

>



More information about the SecViz-Visualization mailing list