passive host characterization

Nick Diel nick at engineerity.com
Wed May 20 15:28:55 EDT 2009


Carter,

Another passive OS fingerprinting tool I know of is sinfp,
http://sourceforge.net/projects/sinfp.  I just took a look and they updated
their database 7 days ago.

This might be a nice alternative to p0f.

Nick

On Wed, May 20, 2009 at 10:11 AM, Carter Bullard <carter at qosient.com> wrote:

> Hey Nick,We can already report most of the data need to drive p0f's
> database,
> but, you have to use the ARGUS_GENERATE_START_RECORDS
> configuration option to have a single argus record that has all the
> data in it.  We have everything that p0f needs for the Syn except:
>    TCP Header reporting:
>       URG pointer value
>
>    TCP Option reporting:
>       MSS value
>       EOL presence
>       NOP presence
>       TIMESTAMP value
>       Option order
>
> p0f when looking at the response, needs an ACK seq number, which
> we have, but we don't preserve it if the connection continues, and
> we don't pay any attention to the TCP Timestamp, so that data is lost
> today.
>
> I can add a DSR that is specific to OS fingerprints, and start collecting
> the missing/non-retained information.  That will take just a little bit of
> time.
>
> I'd like to support a strategy that is currently being maintained.  My goal
> is to go after OS virtualization characterization, so a least a
> quasi-modern
> database would be ideal.
>
> Carter
>
>
>
> On May 20, 2009, at 11:26 AM, Nick Diel wrote:
>
> Carter,
>
> I think taking advantage of p0f's (http://lcamtuf.coredump.cx/p0f.shtml)
> passive OS fingerprinting engine would be a good baby step towards your
> goals.  While it is not really behavioral analysis, it is something very
> easy to use and would give you a good indication of the host OS.
>
> Even with the p0f database being old, I have found it to be quite accurate
> on my data sets, especially windows vs. unix.  Things get interesting when
> looking at unknown signatures, hosts who have different signatures on
> different ports, or hosts who signature changes.
>
> I believe argus already captures some of the components needed by p0f.  For
> OS detection based on syn packets p0f uses:
> # wwww     - window size (can be * or %nnn or Sxx or Txx)
> #         "Snn" (multiple of MSS) and "Tnn" (multiple of MTU) are allowed.
> # ttt      - initial TTL
> # D        - don't fragment bit (0 - not set, 1 - set)
> # ss       - overall SYN packet size (* has a special meaning)
> # OOO      - option value and order specification (see below)
> # QQ       - quirks list (see below)
>
> Options:
> # N       - NOP option
> # E       - EOL option
> # Wnnn       - window scaling option, value nnn (or * or %nnn)
> # Mnnn       - maximum segment size option, value nnn (or * or %nnn)
> # S       - selective ACK OK
> # T        - timestamp
> # T0       - timestamp with zero value
> # ?n       - unrecognized option number n.
>
> Quirks:
> # P     - options past EOL,
> # Z    - zero IP ID,
> # I    - IP options specified,
> # U    - urg pointer non-zero,
> # X     - unused (x2) field non-zero,
> # A    - ACK number non-zero,
> # T     - non-zero second timestamp,
> # F     - unusual flags (PUSH, URG, etc),
> # D     - data payload,
> # !     - broken options segment.
>
> Just my 2 cents,
> Nick
>
> On Wed, May 20, 2009 at 7:52 AM, Carter Bullard <carter at qosient.com>wrote:
>
>> Gentle people,
>> There are about a 100 topics for discussion regarding flow data, and I
>> would like to get some ideas/comments/reactions/opinions on better
>> host characterization.  Now that we have database support and
>> flow data labeling, it would be nice if we could add things like,
>> "I think this is a Mac", and then have something check that it was
>> a Mac the last time we looked.  Anomaly detection at its finest ;o)
>>
>> Most OS fingerprinting today is done from packet header peculiarities
>> and responses from specific challenges.  This type of characterization
>> strategy has a few drawbacks:  1) its a pattern matching strategy, which
>> has its limitations and 2) many times it involves active methods, where
>> you have to challenge the machine to get it to tell you what it is, which
>> has another set of limitations, especially when you deal with historical
>> data and you can't go back in time to probe the machine to tell you
>> what it was.   There is nothing wrong with these strategies, but there
>> should be other things we can do.
>>
>> If you look at a lot of argus data, you probably know  that most machines
>> give away what they are, or rather what they do and how they do it, by
>> accessing specific machines (license servers, update servers), requesting
>> specific DNS lookups, broadcasting availability of resources, or use
>> specific protocol types, like routing protocols, etc....
>>
>> Game machines are easy to see, routers, Mac's, Windows machines,
>> etc ...., all seem to do basically different things when they come up.
>>
>> I have a TiVo in my office, and I know its a TiVo because its always
>> wanting to connect to the mothership to participate in the various TiVo
>> services.  Argus data, with ralabel() adding the DNS domain name
>> for the destination address to the flow record, tells me that the src IP
>> address (which is DHCP'd) is the TiVo.   (don't really need the DNS
>> name, but it helps to explain the example).
>>
>> Now that Nero LiquidTV allows you to turn a PC into a TiVo,
>> it would be interesting to know if I could discriminate that behavior
>> from a real TiVo.
>>
>> When you consider OS virtualization and the need to understand what
>> is going on in your network, this type of problem can be generalized
>> into an interesting problem.
>>
>> I'm thinking that developing a compendium of host behaviors, especially
>> boot behaviors, would have some benefit, and I'm wondering if there is
>> interest in talking about it, and possibly doing it.
>>
>> Argus currently captures a few of the packet peculiarities that are used
>> in
>> contemporary OS identification, but it is not trying to specifically do
>> this.
>> I'm interested in understanding what we can do to add this feature to
>> argus,
>> and  I'm very interested in going after the behavioral aspects of network
>> traffic, to do a better job.
>>
>> What do you think?
>>
>> Carter
>>
>>
>
> Carter Bullard
> CEO/President
> QoSient, LLC
> 150 E 57th Street Suite 12D
> New York, New York  10022
>
> +1 212 588-9133 Phone
> +1 212 588-9134 Fax
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20090520/7f9f1ace/attachment.html>


More information about the argus mailing list