Re: [Zeek-Dev] connection $history - 'g' for gap

2019-04-09 Thread anthony kasza
I like the idea of logging gap ranges for a connection. Could a vector be
used to store gap start and gap stop offsets?

-AK

On Tue, Apr 9, 2019, 11:01 Jim Mellander  wrote:

> Thanks.  I was thinking of something a bit different - the total amount of
> the content gap is useful, but in some cases it might be useful to know
> where the content gaps occurred, whether in the head of the connection,
> which likely is impactful for protocol analysis, or in a long tail, where
> it probably doesn't affect analysis.
>
> Perhaps some tunable setting indicating that "I only care about content
> gaps in the first 10K (or whatever) of the connection" could address that...
>
> On Tue, Apr 9, 2019 at 9:36 AM Justin Azoff  wrote:
>
>>
>>
>> On Mon, Apr 8, 2019 at 8:13 PM Jim Mellander  wrote:
>>
>>> It might be valuable to have some (optional) way of accessing the byte
>>> counts consisting the content gap(s).  If the content gap is somewhere in a
>>> long tail, but DPD still fails, then the explanation could be something
>>> other than a content gap.
>>>
>>> On the other hand, maybe you're just thinking about content gaps at the
>>> head of a connection before it has been fully analyzed.
>>>
>>
>> This is the missed_bytes field:
>>
>> missed_bytes: count   = 0 
>> Indicates the number of bytes missed in content gaps, which is
>> representative of packet loss. A value other than zero will normally cause
>> protocol analysis to fail but some analysis may have been completed prior
>> to the packet loss.
>>
>> --
>> Justin
>>
> ___
> zeek-dev mailing list
> zeek-dev@zeek.org
> http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev
>
___
zeek-dev mailing list
zeek-dev@zeek.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev


Re: [Zeek-Dev] Writing a Protocol Analyzer Plugin

2019-03-13 Thread anthony kasza
I'm sure there is at least one other Carl Sagan fan on list. I feel like if
I wish to make an analyzer from scratch, I must first invent the universe.

-AK

On Wed, Mar 13, 2019, 15:44 anthony kasza  wrote:

> I tried changing the name provided to the setup script as suggested. Doing
> so gives me many errors when I try to ./configure the plugin from within
> the conn-taste/ directory. CMake states that DEMO::CONNTASTE-events.bif is
> "reserved or not valid for for certain CMake features". It complains about
> many of the file names.
>
> Additionally, all the files in conn-taste/src/ look like
> DEMO::CONNTASTE.cc  :(
>
> -AK
>
> On Wed, Mar 13, 2019, 13:43 Michael Dopheide  wrote:
>
>> I believe you want to change this line:
>>
>> ./start.py ConnTaste "Connection Byte Offset Tasting" ...
>>
>> to
>>
>> ./start.py Demo::ConnTaste "Connection Byte Offset Tasting" ...
>>
>> -Dop
>>
>>
>> On Wed, Mar 13, 2019 at 2:35 PM anthony kasza 
>> wrote:
>>
>>> Many thanks for the quick responses!
>>>
>>> I am receiving these errors:
>>> ```
>>> error in /usr/local/bro/share/bro/base/init-bare.bro, line 1: plugin
>>> Demo::ConnTaste is not available
>>> fatal error in /usr/local/bro/share/bro/base/init-bare.bro, line 1:
>>> Failed to activate requested dynamic plugin(s).
>>> ```
>>>
>>> After executing these commands:
>>> ```
>>> git clone --recursive https://github.com/zeek/zeek.git
>>> cd zeek
>>> ./configure
>>> make
>>> DIST=`pwd`
>>>
>>> cd aux/bro-aux/plugin-support
>>> ./init-plugin -u ./conn-taste Demo ConnTaste
>>> BRO_PLUGIN_PATH=`pwd`
>>>
>>> cd ${DIST}
>>> cd ../
>>> git clone https://github.com/esnet/binpac_quickstart.git
>>> cd binpac_quickstart
>>> pip install docopt jinja2
>>> ./start.py ConnTaste "Connection Byte Offset Tasting"
>>> ${BRO_PLUGIN_PATH}/conn-taste/ --tcp --buffered --plugin
>>>
>>> cd ${BRO_PLUGIN_PATH}/conn-taste
>>> ./configure --bro-dist=${DIST}
>>> make
>>>
>>> cd ${DIST}
>>> ./configure
>>> make
>>> make install
>>>
>>> bro -NN Demo::ConnTaste
>>> ```
>>>
>>> I'm guessing there is some environment variable I am missing as I tried
>>> zeek/testing/btest/plugins/protocol.bro as Robin suggested and the
>>> @TEST-EXEC statements worked as expected.
>>>
>>> -AK
>>>
>>> On Wed, Mar 13, 2019, 09:51 Vlad Grigorescu  wrote:
>>>
>>>> On Wed, Mar 13, 2019 at 10:17 AM anthony kasza 
>>>> wrote:
>>>>
>>>>
>>>>> However, the docs don't detail much beyond creating a built in
>>>>> function. A colleague pointed me at this quickstart script for binpac:
>>>>> https://github.com/grigorescu/binpac_quickstart
>>>>>
>>>>
>>>> Oops! Sorry about that. Try this one:
>>>> https://github.com/esnet/binpac_quickstart
>>>>
>>>> That has a '--plugin' option. That will at least get the boilerplate
>>>> stuff built, and then you can start digging into the protocol specifics.
>>>>
>>>>   --Vlad
>>>>
>>> ___
>>> zeek-dev mailing list
>>> zeek-dev@zeek.org
>>> http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev
>>>
>>
___
zeek-dev mailing list
zeek-dev@zeek.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev


Re: [Zeek-Dev] Writing a Protocol Analyzer Plugin

2019-03-13 Thread anthony kasza
I tried changing the name provided to the setup script as suggested. Doing
so gives me many errors when I try to ./configure the plugin from within
the conn-taste/ directory. CMake states that DEMO::CONNTASTE-events.bif is
"reserved or not valid for for certain CMake features". It complains about
many of the file names.

Additionally, all the files in conn-taste/src/ look like
DEMO::CONNTASTE.cc  :(

-AK

On Wed, Mar 13, 2019, 13:43 Michael Dopheide  wrote:

> I believe you want to change this line:
>
> ./start.py ConnTaste "Connection Byte Offset Tasting" ...
>
> to
>
> ./start.py Demo::ConnTaste "Connection Byte Offset Tasting" ...
>
> -Dop
>
>
> On Wed, Mar 13, 2019 at 2:35 PM anthony kasza 
> wrote:
>
>> Many thanks for the quick responses!
>>
>> I am receiving these errors:
>> ```
>> error in /usr/local/bro/share/bro/base/init-bare.bro, line 1: plugin
>> Demo::ConnTaste is not available
>> fatal error in /usr/local/bro/share/bro/base/init-bare.bro, line 1:
>> Failed to activate requested dynamic plugin(s).
>> ```
>>
>> After executing these commands:
>> ```
>> git clone --recursive https://github.com/zeek/zeek.git
>> cd zeek
>> ./configure
>> make
>> DIST=`pwd`
>>
>> cd aux/bro-aux/plugin-support
>> ./init-plugin -u ./conn-taste Demo ConnTaste
>> BRO_PLUGIN_PATH=`pwd`
>>
>> cd ${DIST}
>> cd ../
>> git clone https://github.com/esnet/binpac_quickstart.git
>> cd binpac_quickstart
>> pip install docopt jinja2
>> ./start.py ConnTaste "Connection Byte Offset Tasting"
>> ${BRO_PLUGIN_PATH}/conn-taste/ --tcp --buffered --plugin
>>
>> cd ${BRO_PLUGIN_PATH}/conn-taste
>> ./configure --bro-dist=${DIST}
>> make
>>
>> cd ${DIST}
>> ./configure
>> make
>> make install
>>
>> bro -NN Demo::ConnTaste
>> ```
>>
>> I'm guessing there is some environment variable I am missing as I tried
>> zeek/testing/btest/plugins/protocol.bro as Robin suggested and the
>> @TEST-EXEC statements worked as expected.
>>
>> -AK
>>
>> On Wed, Mar 13, 2019, 09:51 Vlad Grigorescu  wrote:
>>
>>> On Wed, Mar 13, 2019 at 10:17 AM anthony kasza 
>>> wrote:
>>>
>>>
>>>> However, the docs don't detail much beyond creating a built in
>>>> function. A colleague pointed me at this quickstart script for binpac:
>>>> https://github.com/grigorescu/binpac_quickstart
>>>>
>>>
>>> Oops! Sorry about that. Try this one:
>>> https://github.com/esnet/binpac_quickstart
>>>
>>> That has a '--plugin' option. That will at least get the boilerplate
>>> stuff built, and then you can start digging into the protocol specifics.
>>>
>>>   --Vlad
>>>
>> ___
>> zeek-dev mailing list
>> zeek-dev@zeek.org
>> http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev
>>
>
___
zeek-dev mailing list
zeek-dev@zeek.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev


Re: [Zeek-Dev] Writing a Protocol Analyzer Plugin

2019-03-13 Thread anthony kasza
Many thanks for the quick responses!

I am receiving these errors:
```
error in /usr/local/bro/share/bro/base/init-bare.bro, line 1: plugin
Demo::ConnTaste is not available
fatal error in /usr/local/bro/share/bro/base/init-bare.bro, line 1:
Failed to activate requested dynamic plugin(s).
```

After executing these commands:
```
git clone --recursive https://github.com/zeek/zeek.git
cd zeek
./configure
make
DIST=`pwd`

cd aux/bro-aux/plugin-support
./init-plugin -u ./conn-taste Demo ConnTaste
BRO_PLUGIN_PATH=`pwd`

cd ${DIST}
cd ../
git clone https://github.com/esnet/binpac_quickstart.git
cd binpac_quickstart
pip install docopt jinja2
./start.py ConnTaste "Connection Byte Offset Tasting"
${BRO_PLUGIN_PATH}/conn-taste/ --tcp --buffered --plugin

cd ${BRO_PLUGIN_PATH}/conn-taste
./configure --bro-dist=${DIST}
make

cd ${DIST}
./configure
make
make install

bro -NN Demo::ConnTaste
```

I'm guessing there is some environment variable I am missing as I tried
zeek/testing/btest/plugins/protocol.bro as Robin suggested and the
@TEST-EXEC statements worked as expected.

-AK

On Wed, Mar 13, 2019, 09:51 Vlad Grigorescu  wrote:

> On Wed, Mar 13, 2019 at 10:17 AM anthony kasza 
> wrote:
>
>
>> However, the docs don't detail much beyond creating a built in function.
>> A colleague pointed me at this quickstart script for binpac:
>> https://github.com/grigorescu/binpac_quickstart
>>
>
> Oops! Sorry about that. Try this one:
> https://github.com/esnet/binpac_quickstart
>
> That has a '--plugin' option. That will at least get the boilerplate stuff
> built, and then you can start digging into the protocol specifics.
>
>   --Vlad
>
___
zeek-dev mailing list
zeek-dev@zeek.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev


[Zeek-Dev] Writing a Protocol Analyzer Plugin

2019-03-13 Thread anthony kasza
Hello Zeek Devs,

I would like to write a protocol analyzer and need some direction. I would
like to write something simple which works on TCP, similar to the ConnSize
analyzer. I would like my analyzer to be distributed as a plugin, similar
to MITRE's HTTP2 analyzer, so I am following the docs here:
https://docs.zeek.org/en/stable/devel/plugins.html

However, the docs don't detail much beyond creating a built in function. A
colleague pointed me at this quickstart script for binpac:
https://github.com/grigorescu/binpac_quickstart

The quickstart script seems to be intended for writing a protocol analyzer
which gets merged into the Zeek source. This is not how plugins operate.

I'm looking for some guidance on how to proceed. Thanks in advance.

-AK
___
zeek-dev mailing list
zeek-dev@zeek.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/zeek-dev