On 10 December 2014 at 20:28, enygma <
eny...@phpdeveloper.org> wrote:
>> > Then in a "Vulnerability" sub-section (for human-readability,
>> > naturally):
>> >
>> > 1. Severity (from [low, medium, high])
>> > 2. CVE ID (optional)
>> > 3. CWE ID (optional)
>> > 4. Affected Version(s)
>>
>> what syntax are we going to use for version ranges especially? do we just
>> use composer/npm style here? in that case the version can be a single string
>> but for easier readability multiple separate versions and version ranges
>> should be supported as well
>
>
> I could see it being similar to the Composer version definitions (again,
> more possibility for crossovers between the two projects) and just having
> sets like [">=3.2.0", "4.0.3"]. Like with PHP itself, there's been numerous
> CVE-related issues that were fixed in like a 5.4.x and 5.5.x versions at the
> same time. That way you'd only need one record for both issues. (relevant:
>
https://getcomposer.org/doc/01-basic-usage.md#package-versions)
Composer version syntax would be ideal. It's an existing known system
that would ensure consistency across various data imports and thus
make implementation less of a PITA handling edge cases.
>> > 5. Status (from [Open, In Progress, Disputed, Completed])
>>
>> I guess "completed" would then imply that at least one newer version is
>> available that is not vulnerable but I guess seeing the remediation type it
>> just means that no additional work is planned at this point. in this sense
>> the status could also revert back ?
>
> Since the data is related to the vulnerability and not really a "tracker" of
> things being fixed, yes - I could see it reverting back if the same
> vulnerability popped up again in a later version. I guess that brings to
> light one interesting point....is the intent of this document to be:
>
> 1. A "feed" of the vulnerabilities as they're reported and fixed or
> 2. A data source that lists all vulnerabilities and can be updated like with
> Status changes
Technically, there shouldn't need to be a distinction so treating the
source as a "feed" is perfectly valid. If you take Atom as an example,
you can alter individual entries and revise the date in an "updated"
field so that readers can replace old entries with fresher data.
Most people are likely to view it as a flat file database since the
size of data for many projects is unlikely to necessitate pagination.
We'll inevitably need to handle pagination in some manner.
> In #1, you'd possibly have the same vulnerability information duplicated
> multiple times. It's possible, given the right structure, that for #2 a
> single entry could have multiple of the sub-sections, each with the
> happening of the vulnerability. So like:
>
> vulnerabilities: [
> {
> status: "Fixed",
> versions: ["3.4.2"]
> },
> {
> status: "Open",
> versions: [">=5.1.0"]
> }
> ]
>
> So that the main data for the vulnerability (like title and description) are
> kept out of the vulnerability instances.
Agreed.
>> > 9. Risk (from [low, medium, high], a combination of exploitability,
>> > prevalence, detectability and impact)
>>
>> we might also give some "suggestions" on how to use the risk or what
>> should be what risk level.
>
>
> Agreed but this one is tricky. What might be considered a "high" for a
> templating project (ex. not preventing XSS) would be a "low" for others. As
> always, the answer would mostly be a great big "it depends" heh.
Such assessments need context and objective measurements. Actually the
whole raison d'etre for CVSS scoring and vector abbreviations was to
allow stakeholders prioritise tasks when mitigating issues by tackling
those with higher severity compared to other CVSS scored
vulnerabilities. If we decided to offer guidance, it needs to meet
similar criteria - comparability for prioritisation. That means taking
into account not only the dire consequences of a given issue, but also
factors like exploitation difficulty, access required to exploit, any
user interactivity required, etc.
You could write a book on doing that, but I suppose we could offer
some sort of summary guidance so such factors are at least in folks'
minds...