Re: [sacm] [mile] iodef:SoftwareType

Gunnar Engelbach <gunnar.engelbach@threatguard.com> Thu, 26 March 2015 19:37 UTC

Return-Path: <gunnar.engelbach@threatguard.com>
X-Original-To: sacm@ietfa.amsl.com
Delivered-To: sacm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 405BC1B2DE2 for <sacm@ietfa.amsl.com>; Thu, 26 Mar 2015 12:37:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qk8YTGPnh4Ab for <sacm@ietfa.amsl.com>; Thu, 26 Mar 2015 12:37:50 -0700 (PDT)
Received: from mail-qg0-f54.google.com (mail-qg0-f54.google.com [209.85.192.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5DDBB1B2DA0 for <sacm@ietf.org>; Thu, 26 Mar 2015 12:37:49 -0700 (PDT)
Received: by qgh3 with SMTP id 3so99074070qgh.2 for <sacm@ietf.org>; Thu, 26 Mar 2015 12:37:48 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:organization:user-agent :mime-version:to:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=VwgK9JAsSfHIXpVN9lfScm3yrmRVJttzC7Asx9fcLO8=; b=l5FlVaLzmF9XUtUyoDASQ3N0De/Iz225FW3yUYQJnCeGdJBTUGYu/3yeLXRLaBCYFe EjDwt2+VQbRLWPPN7ZvAVEr2eEnYOMFVlh7am7kpj9NylfcDwPH4baatZQPLPhJsJ26p ERFCx0aDBUfDxRUf1ZnV0PfcYWMHYtIQi/x5s12zzmgQnhR81Zsf53ig7L7tjpKMW3o0 xHYU0Amm3TxvL/W7an1ZbmWAaOdXFUzbOycJk8kwPXpJAN6mwZw0gjRcC6lLh3+v0BjH sdJIJ8VQRQMoT5D7mVYNV+0th91gxB38fcoPHFEZjtNR6Ugv6zZ7OU/Qgo+uvVS01BDI w3aw==
X-Gm-Message-State: ALoCoQkWey4oQKZL0V+IL0Ers96vNlKAxEk/T1VBfw8sJuS3qpiisaezgrQuO9p69pF001RpSWcO
X-Received: by 10.141.28.78 with SMTP id f75mr21198740qhe.18.1427398662324; Thu, 26 Mar 2015 12:37:42 -0700 (PDT)
Received: from [172.16.1.22] (h69-128-196-138.cntcnh.broadband.dynamic.tds.net. [69.128.196.138]) by mx.google.com with ESMTPSA id t30sm4072975qge.28.2015.03.26.12.37.40 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Mar 2015 12:37:41 -0700 (PDT)
From: Gunnar Engelbach <gunnar.engelbach@threatguard.com>
X-Google-Original-From: Gunnar Engelbach <Gunnar.Engelbach@ThreatGuard.com>
Message-ID: <55146014.5030107@ThreatGuard.com>
Date: Thu, 26 Mar 2015 15:37:56 -0400
Organization: ThreatGuard, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Roman D. Danyliw" <rdd@cert.org>, "sacm@ietf.org" <sacm@ietf.org>
References: <B551AB38-A9E5-48C0-8049-F44122AF24AE@gmail.com> <551308DD.4040908@ThreatGuard.com> <9F61CC8E6ED7BC4DBA90C13F25D29C002DA5752B@umechpanz.easf.csd.disa.mil> <CAA=AuEdcmXdCe+iUfgLN3wnp98MZnNw5ULMmKnk+5wdrOA=Zmg@mail.gmail.com> <9F61CC8E6ED7BC4DBA90C13F25D29C002DA57678@umechpanz.easf.csd.disa.mil>, <CAA=AuEcBh3s6Hbkj_4G-OQCyGHHF0QkbusRXGbSWoatwgCtt=Q@mail.gmail.com> <359EC4B99E040048A7131E0F4E113AFCD93D88B0@marathon>
In-Reply-To: <359EC4B99E040048A7131E0F4E113AFCD93D88B0@marathon>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/sacm/rD3copPTstj7bLzhxH-ucy433b0>
Subject: Re: [sacm] [mile] iodef:SoftwareType
X-BeenThere: sacm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SACM WG mail list <sacm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sacm>, <mailto:sacm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sacm/>
List-Post: <mailto:sacm@ietf.org>
List-Help: <mailto:sacm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sacm>, <mailto:sacm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Mar 2015 19:37:57 -0000

There's a third type of software identifier, suitable for applicability 
testing in SACM:  self-determining.

In this type of identifier, a small set of attributes are collected from 
the endpoint and the value of these attributes are used to determine if 
a particular policy applies to that endpoint or not. This, in fact, 
represents the majority usage of CPE.  In this usage, the CPE identifier 
just refers to an executable function, the results of which determine 
applicability of the benchmark that references it.

For applicability testing, the needs are quite different than your list 
below, and I haven't yet seen anything related to SACM creating a 
requirement beyond applicability testing.  Except for your need number 
five:  that is valid for applicability testing.


A couple other notes, for what it's worth:

A CPE isn't just an identifier into an enumeration, the various parts 
have meanings.  The type of component it refers to, vendor, product, 
language, product version.  A bare CPE string still has utility, even 
without reference to an enumeration or a self-determination function.  
It's biggest drawback is that the content of any component in the string 
is largely non-deterministic.

Usage of a SWID, on the other hand, doesn't have to be as an XML blob.  
It has an identifier which can be used as a lookup for that XML blob.  
The SWID identifier, however, is an arbitrary string that can't be 
relied on to provide any other information, so it's only useful if a 
lookup is performed.

That is, CPE is both (a) and (b), as are SWIDs.


On 3/26/2015 12:20 PM, Roman D. Danyliw wrote:
> (Reposting to SACM already on MILE)
> Hello!
>
> The original thread on the MILE list [1] about iodef:SoftwareType, this thread, and an illuminating offline explanation by Adam Montville and Dave Waltermire, highlighted an important distinction as we consider how to reuse the existing information models.  There is a difference between (a) an identifier into an enumeration; and (b) a blob which is the entirety of the information.  In both (a) and (b), a reference to the underlying specification is necessary.
>
> The ENUM [2] draft provides support for (a).  The current iodef:SoftwareType of RFC5070bis [3] supports neither.  Section 4.4 of IODEF-SCI [4] supports both (a) and (b).  The caveats for using IODEF-SCI for (b) is that the blob has to be XML.  Likewise, the approach for (a) uses the @ContentID attribute and/or the now replaced iodefv1:Reference class (It was replaced by ENUM and Takeshi Takahashi, the editor, has noted this needs to be updated after 5070bis is complete in an earlier posting to this thread).
>
> Support for multiple approaches to identifying software was voiced several times.  The two most actively discussed options were CPE and swid.  CPE is an instance of (a) and swid is an instance for (b).
>
> Thinking through the needs, the representation for software should:
> (1) support (a) and (b)
> (2) support public extensions (with an IANA registry) and private approaches
> (3) blobs in formats other than XML?
> (4) support the ability to convey the configuration of the software?
> (5) ability to reason about software at different levels of versioning (x.x.x vs. x.x.* vs. x.*.*)?
> others?
>
> To the notion of public extensions in (2), which IANA registry should be used?  IODEF-SCI uses a single registry for a collection of classes that are semantically different.  Should a dedicated registry(ies) be used to track standards/formats that describe software?  If a dedicated registry is not used, how should implementers know which of the entries in the registry are valid software description standards/formats?
>
> Roman
>
> [1] http://www.ietf.org/mail-archive/web/mile/current/msg01660.html
> [2] draft-ietf-mile-enum-reference-format-14
> [3] draft-ietf-mile-rfc5070-bis-11
> [4] RFC 7203
>
>
> ________________________________________
> From: mile [mile-bounces@ietf.org] on behalf of Jerome Athias [athiasjerome@gmail.com]
> Sent: Wednesday, March 25, 2015 5:16 PM
> To: Wolfkiel, Joseph L CIV DISA ID (US)
> Cc: Gunnar Engelbach; MILE IETF; sacm@ietf.org
> Subject: Re: [mile] [sacm] iodef:SoftwareType
>
> so that would be better covered by OVAL (with CPE embedded), and/or
> some kind of MITRE MAEC (YARA included)/CybOX capabilities (mutex and
> in memory opcodes needed?)
>
> 2015-03-25 22:00 GMT+01:00 Wolfkiel, Joseph L CIV DISA ID (US)
> <joseph.l.wolfkiel.civ@mail.mil>:
>> I expect the MILE use case would also need to be able to deal with software for which the only available data is the name of a file and an execution path (e.g. "c:/program files/baddexec.jar").  This is out of the CPE case altogether, but would be critical to assist in either forensic analysis or malware detection.
>>
>> Joseph L. Wolfkiel
>> SCM Engineering Lead
>> DISA ID52
>> (301) 225-8820
>> Joseph.L.Wolfkiel.civ@mail.mil
>>
>>
>>
>> -----Original Message-----
>> From: Jerome Athias [mailto:athiasjerome@gmail.com]
>> Sent: Wednesday, March 25, 2015 4:28 PM
>> To: Wolfkiel, Joseph L CIV DISA ID (US)
>> Cc: Gunnar Engelbach; Adam W. Montville; MILE IETF; sacm@ietf.org
>> Subject: Re: [sacm] iodef:SoftwareType
>>
>> Hi,
>>
>> using CPEs, for example, in this case would be ok since using the
>> first part of it (application 'name', before the version - or with
>> '*') could cover the use case. (for SWID, I don't know)
>> Then, that's right that if we want, for MILE,  to cover use cases like
>> Policy P1 (e.g. CIS X Level 1) for Application A1 on Asset A1, and
>> Policy P2 (e.g. CIS X Level 2) for Application A1 (the same) on Asset
>> A2, etc.
>> it's a different story (ID, UID, GUID, context...)
>> Same for use cases where Software S1 + Software S2 is an issue, but
>> not when S1 used without S2, etc.
>> (context/groups)
>>
>> A model for Software/Application/Components (e.g. libraries) and
>> combinations of/relationships between them would have to provide the
>> granularity wanted/needed.
>> But this could be covered step by step.
>>
>>
>>
>>
>>
>> 2015-03-25 20:50 GMT+01:00 Wolfkiel, Joseph L CIV DISA ID (US)
>> <joseph.l.wolfkiel.civ@mail.mil>:
>>> We write most of our policies to the individual application level, but generally don't go to version.  If the MILE requirement includes the ability to specify to a given software instance on a particular device and you think the softwareType element needs to be able to deal with both constructs, then you'll definitely need the ability to handle different levels of granularity and be able to specify which type of identification you're making.
>>>
>>> Joseph L. Wolfkiel
>>> SCM Engineering Lead
>>> DISA ID52
>>> (301) 225-8820
>>> Joseph.L.Wolfkiel.civ@mail.mil
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: sacm [mailto:sacm-bounces@ietf.org] On Behalf Of Gunnar Engelbach
>>> Sent: Wednesday, March 25, 2015 3:14 PM
>>> To: Adam W. Montville; MILE IETF
>>> Cc: sacm@ietf.org
>>> Subject: Re: [sacm] iodef:SoftwareType
>>>
>>>
>>> As you say, it depends on the usage for the software identifier.
>>>
>>> For SACM that usage isn't likely to go beyond determining applicability
>>> because when it comes time to do the security checks then the policy
>>> implementation is likely to specify the particular endpoint attributes
>>> to be collected and not rely on any data associated with the software
>>> identification.
>>>
>>> It seems obvious to me that, with the goal of being able to support
>>> multiple software identification systems, that SACM would embed the raw
>>> identifier information below a tag that indicates which identifier type
>>> it is.
>>>
>>> As far as applicability checking goes, I can see two primary principles:
>>>
>>> 1) Avoiding false negatives
>>> 2) Efficiency
>>>
>>> Presumably a check system that has the ability to collect endpoint
>>> attributes and calculate security results from that also has the ability
>>> to self-determine its own applicability.  With that as a fallback, then
>>> the worst case is that every policy is attempted to be applied to every
>>> endpoint and execution halted for each found to self-determine
>>> non-applicability.
>>>
>>> Following from all that, if the decision point where policy assessment
>>> assignment is occurring is capable of parsing a particular software
>>> identifier well enough to positively remove a particular policy from the
>>> list of potentials, that should suffice.
>>>
>>>
>>> At first glance, this is not a very interoperable approach.  But from a
>>> practical usage standpoint the goal isn't to be perfect, it's to reduce
>>> resource utilization for security assessments below the threshold where
>>> it affects business operations.  I think it likely that the number of
>>> formats necessary to achieve that will be fairly small.  And adding
>>> support for new ones relatively simple.
>>>
>>>
>>> --gun
>>>
>>>
>>>
>>> On 3/25/2015 2:42 PM, Adam W. Montville wrote:
>>>> I’m cross-posting to SACM because this is a relevant discussion to that WG also.
>>>>
>>>> During today’s MILE session we discussed some options with respect to iodef:SoftwareType.  The room seemed to favor looking for a way to allow referencing software using more than one software identification mechanism.  It was also acknowledged that SACM might find use in being able to use different mechanisms of software identification.
>>>>
>>>> It could be easy enough to submit a given specification/data feed for expert review to the ENUM registry.  But, is this sufficient for our software identification needs?
>>>>
>>>> The potential issue is how the software identification will be relied upon downstream. If we want to take the software identification component at face value, then using the ENUM registry would likely be sufficient.  If, however, we need to specifically interpret or specifically apply portions of the software identification component, we need more information about (or a priori knowledge of) how to handle that type of software identification component.
>>>>
>>>> Perhaps it’s sufficient to rely on encapsulating the software identification element in another construct, which could potentially make this a non-issue.  For example, if we needed installation information for applicability, we could bundle the SoftwareType within a larger class which would have any corresponding information (e.g. exact location of the software on an endpoint) required for the particular case.
>>>>
>>>> Still, for cases (if they exist) where a fully specified software identification component is intended to be used to identify a broader software class, we may run into underspecification issues.  The same is true where a software identification component intended to classify software is needed for instance-level identification.
>>>>
>>>> It seems that some cases of software identification would require specification over and above that which would be obtained by simply using the ENUM registry.
>>>>
>>>> Thoughts?
>>>>
>>>> Adam
>>>> _______________________________________________
>>>> sacm mailing list
>>>> sacm@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/sacm
>>> _______________________________________________
>>> sacm mailing list
>>> sacm@ietf.org
>>> https://www.ietf.org/mailman/listinfo/sacm
>>>
>>> _______________________________________________
>>> sacm mailing list
>>> sacm@ietf.org
>>> https://www.ietf.org/mailman/listinfo/sacm
>>>
> _______________________________________________
> mile mailing list
> mile@ietf.org
> https://www.ietf.org/mailman/listinfo/mile
> _______________________________________________
> sacm mailing list
> sacm@ietf.org
> https://www.ietf.org/mailman/listinfo/sacm