<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Mathematics and Informatics University of Sofia St. Kliment Ohridki</institution>
          ,
          <addr-line>5 James Bourchier Blvd., 1164, Sofia</addr-line>
          ,
          <country country="BG">Bulgaria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <fpage>92</fpage>
      <lpage>100</lpage>
      <abstract>
        <p>CWEs Top 25 is a view to the top 25 most dangerous software errors - weaknesses (CWE). The CWE list is maintained by MITRE Corporation. Weaknesses are types of vulnerabilities that can be exploited as vulnerabilities by attacks. MITRE Corporation supports lists for vulnerabilities (CVE) and attacks (CAPEC). The investigation process of given vulnerability, weakness or attack is a sophisticated navigation process in mentioned lists. The aim of presented research is to represent in an ontology Top 25 CWEs and related with them CVEs and CAPECs to facilitate the navigation.</p>
      </abstract>
      <kwd-group>
        <kwd>weakness</kwd>
        <kwd>CWE</kwd>
        <kwd>vulnerability</kwd>
        <kwd>CVE</kwd>
        <kwd>attack</kwd>
        <kwd>CAPEC</kwd>
        <kwd>ontology</kwd>
        <kwd>OWL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The weakness is an error, bug or misconfiguration introduced at some stage of the
software life cycle.</p>
      <p>The vulnerability is an exploited by some attack weakness. Some weaknesses cannot
be exploited because is not available an attack vector to them.</p>
      <p>
        MITRE Corporation maintains:
 CWE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] – a community developed list of software and hardware weakness types;
 CVE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] – a list of publicly known cybersecurity vulnerabilities.
      </p>
      <p>Every CVE is linked to concrete vendor(s), product(s) or product version(s).</p>
      <p>CWEs are organized in several taxonomies at different abstract levels. CWEs are
like CVE types.</p>
      <p>MITRE Corporation with above-mentioned lists supports the community process
of vulnerability registration, its classification as weaknesses and further investigation of
applicable attack patterns. At the beginning is the vulnerability but new weaknesses and
attack patterns sometimes have to be introduced.</p>
      <p>
        NIST’s NVD [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is based on CVE. NVD uses the impact metrics CVSS (Common
Vulnerability Scoring System) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for vulnerability evaluation. CVSS scores of CVEs in
NVD are used for ranking Top 25 CWEs.
3
      </p>
      <p>
        CWE Top 25 Most Dangerous Software Errors
Top 25 Most Dangerous Software Errors (Top 25) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is published every year. This
is a list of the most widespread and critical weaknesses that can be discovered and
exploited as software vulnerabilities.
      </p>
      <p>The ranking methodology intensively uses NVD and CVSS scores assigned there
to the CVEs. Only CVEs that have at least one CWE assigned to them as a root cause
participate in the calculations.</p>
      <p>Two basic values are assigned to each CWE weakness X mentioned in NVD CVEs:
frequency – Fr(X)
severity – Sv(X)</p>
      <p>Let Freq(X) is the number of references to the weakness X in NVD CVEs.</p>
      <p>Let Fmin is the minimum value and Fmax is the maximum value of Freq(X) over
its domain.</p>
      <p>Then weakness X frequency is:
Fr(X) = (Freq(X) – Fmin) / (Fmax – Fmin)</p>
      <sec id="sec-1-1">
        <title>Fr(X) value is normalized.</title>
        <p>Let AVG_CVSS(X) is the average CVSS score from the CVEs in which the weakness
X is mentioned as a root cause.</p>
        <p>Let CVSSmin is the minimal value and CVSSmax is the maximal value of AVG_
CVSS(X) over its domain.</p>
        <p>Then the weakness X severity is:
Sv(X) = (AVG_CVSS(X) – CVSSmin) / (CVSSmax – CVSSmin)</p>
      </sec>
      <sec id="sec-1-2">
        <title>Sv(X) value is normalized.</title>
        <p>Finally, the weakness Tip 25 score is:
Score(X) = Fr(X) * Sv(X) * 100</p>
        <p>2019 Top 25 is presented in Table 1. Additionally, CWE team added 15 CWEs
(Table 2) that are risky but have not enough score.</p>
        <p>
          Rank ID
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] CWE-119
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]
[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
[10]
[11]
CVE, CWE and CAPEC databases are maintained to support the life cycle of
vulnerabilities, weaknesses and attack templates. They contain processing
information needed for registration, classification and maintenance – not only
information related to their nature.
        </p>
        <p>Initially, the new vulnerability is registered in the CVE database by some CVE
Numbering Authorities (CNAs). This means that it is yet registered in some private
or public repository. Then an investigation process follows to accept or reject this
vulnerability. Sometimes, the new vulnerability is recognized as old one. Further, the
investigation process relates the vulnerability (CVE entry) to a weakness (CWE entry)
and to an attack pattern (CAPEC entry). Sometimes, it is impossible to clarify the
vulnerability nature and to relate it with any weakness and/or attack pattern. It is possible
a vulnerability to be related to several weaknesses and/or several attack patterns. Briefly,
thisisthecontentsofvulnerabilityprocessingwithoutgoingindetailsaboutthelifecycle
and the phases of vulnerabilities, weaknesses and attack patterns.</p>
        <p>In the case of Top 25 Most Dangerous Software Errors, all CVEs are related with
CWEs and CAPECs, simply because only such CVEs are used in the ranking procedure.</p>
        <p>
          TheontologyisimplementedinOWL[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]usingProtégé[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].Initially,itwasamaster
thesis developed by the second co-author under the supervision of the first one. Then it
has been redesigned by the first co-author.
        </p>
        <p>CVE,CWEandCAPECdatabasesarerepresentedintheontologyasdisjointclasses.
Their definitions are as follow:</p>
      </sec>
      <sec id="sec-1-3">
        <title>Class: top25:CAPEC</title>
      </sec>
      <sec id="sec-1-4">
        <title>Class: top25:CVE</title>
      </sec>
      <sec id="sec-1-5">
        <title>Class: top25:CWE</title>
      </sec>
      <sec id="sec-1-6">
        <title>DisjointWith: top25:CVE, top25:CWE</title>
      </sec>
      <sec id="sec-1-7">
        <title>DisjointWith: top25:CAPEC, top25:CWE</title>
      </sec>
      <sec id="sec-1-8">
        <title>DisjointWith: top25:CAPEC, top25:CVE</title>
        <p>TheelementsofCVE,CWEandCAPEChaveanidentifier(ID)–positiveinteger,a
name(Name)–string,andashortdescription(Description)–string.Thesecharacteristics
are represented in the ontology as datatype properties:</p>
      </sec>
      <sec id="sec-1-9">
        <title>DataProperty: top25:ID</title>
      </sec>
      <sec id="sec-1-10">
        <title>Characteristics: Functional</title>
      </sec>
      <sec id="sec-1-11">
        <title>Domain: top25:CAPEC or top25:CVE or top25:CWE</title>
      </sec>
      <sec id="sec-1-12">
        <title>Range: xsd:string</title>
      </sec>
      <sec id="sec-1-13">
        <title>DataProperty: top25:Name</title>
      </sec>
      <sec id="sec-1-14">
        <title>Characteristics: Functional</title>
      </sec>
      <sec id="sec-1-15">
        <title>Domain: top25:CAPEC or top25:CVE or top25:CWE</title>
      </sec>
      <sec id="sec-1-16">
        <title>Range: xsd:string</title>
      </sec>
      <sec id="sec-1-17">
        <title>DataProperty: top25:Description</title>
      </sec>
      <sec id="sec-1-18">
        <title>Characteristics: Functional</title>
      </sec>
      <sec id="sec-1-19">
        <title>Domain: top25:CAPEC or top25:CVE or top25:CWE</title>
      </sec>
      <sec id="sec-1-20">
        <title>Range: xsd:string</title>
        <p>CVEentrieshaveexternalreferencestootherrepositoriesinwhichtheyareregistered
with different identifications. These references are important because they extend the
view to the vulnerability but at this time, they are not included in the ontology.</p>
        <p>The information about the CVE entry nature is in its description. This is
semistructured text about the vendor, product, version, component root cause, attack vector
etc., but this text is hardly readable even by a human-expert. Information extraction from
the CVE description is out of the scope of this research.</p>
        <p>CVEs are not organized in any taxonomies – they are simply lists. The information
about the CVE entry is contained in its CWE “type”, but it is possible a vulnerability to
be related with several CWEs. CWEs and CAPECs are organized in several taxonomies.</p>
        <p>A CWE entry can have an extended description (ExtendedDescription) in addition
to its description. This additional description is included in the ontology as a datatype
property:</p>
      </sec>
      <sec id="sec-1-21">
        <title>DataProperty: top25:ExtendedDescription Characteristics: Functional Domain: top25:CWE Characteristics: Functional</title>
      </sec>
      <sec id="sec-1-22">
        <title>Range: xsd:string</title>
        <p>How a CWE can be detected is given in the datatype property DetectionMethods of
the class CWE:</p>
      </sec>
      <sec id="sec-1-23">
        <title>DataProperty: top25:DetectionMethods Domain: top25:CWE Domain: top25:CWE</title>
      </sec>
      <sec id="sec-1-24">
        <title>Range: xsd:string</title>
        <p>Another important information about the CWE are mitigation methods. These are
represented in the datatype property PotentialMitigations:</p>
      </sec>
      <sec id="sec-1-25">
        <title>DataProperty: top25:PotentialMitigations</title>
      </sec>
      <sec id="sec-1-26">
        <title>Range: xsd:string</title>
        <p>Some CWEs are related to specific programming languages. In the CWE class,
this is represented as a datatype property (Languages). This property is a simplification
because relation can be not only to the programming languages but also to platforms,
technologies etc.:</p>
      </sec>
      <sec id="sec-1-27">
        <title>DataProperty: top25:Languages</title>
      </sec>
      <sec id="sec-1-28">
        <title>Domain: top25:CWE</title>
      </sec>
      <sec id="sec-1-29">
        <title>Range: xsd:string</title>
        <p>Usually, the most detailed CWEs (at abstraction levelVariant) are linked with some
programming language, platform or technology etc., but in Top 25 Most Dangerous
Software Errors, there are CWEs at different abstraction levels. This is another
simplification accepting that all CWEs are at the same abstraction level. Just a same is the
situation with CAPECs.</p>
        <p>CWE entries have more characteristics that are interesting but at this stage only
listed above are included in the ontology.</p>
        <p>CAPECs are organized in several taxonomies. CAPEC entry has many interesting
characteristics, but in our ontology, they participate only with their ID, Name and
Description.</p>
        <p>One of the most important concept in the ontologies are class relationships. They are
modelled as class object properties.</p>
        <p>As it has been mentioned, vulnerability “types” are the weaknesses. The object
property WeaknessEnumerations links CVEs with their CWEs. The MITRE Corporation
CVE list does not contains this relationship, but it is available in NVD with this name.
This object property is defined as follows:</p>
      </sec>
      <sec id="sec-1-30">
        <title>ObjectProperty: top25:WeaknessEnumerations</title>
      </sec>
      <sec id="sec-1-31">
        <title>Characteristics: Irreflexive, Asymmetric</title>
      </sec>
      <sec id="sec-1-32">
        <title>Domain: top25:CVE</title>
      </sec>
      <sec id="sec-1-33">
        <title>InverseOf: top25:ObservedExamples</title>
        <p>The object property ObservedExamples links weaknesses to their vulnerabilities:</p>
      </sec>
      <sec id="sec-1-34">
        <title>ObjectProperty: top25:ObservedExamples</title>
      </sec>
      <sec id="sec-1-35">
        <title>Characteristics: Irreflexive, Asymmetric</title>
      </sec>
      <sec id="sec-1-36">
        <title>Domain: top25:CWE</title>
      </sec>
      <sec id="sec-1-37">
        <title>Range: top25:CVE</title>
      </sec>
      <sec id="sec-1-38">
        <title>InverseOf: top25:WeaknessEnumerations</title>
        <p>Weaknesses, on the other hand, are linked with the attack patterns that can be used
to exploit them. This relationship is represented as an object property with the name
AttackPatterns that links CWEs to their CAPECs:</p>
      </sec>
      <sec id="sec-1-39">
        <title>ObjectProperty: top25:AttackPatterns</title>
      </sec>
      <sec id="sec-1-40">
        <title>Characteristics: Irreflexive, Asymmetric</title>
      </sec>
      <sec id="sec-1-41">
        <title>Domain: top25:CWE</title>
      </sec>
      <sec id="sec-1-42">
        <title>Range: top25:CAPEC</title>
      </sec>
      <sec id="sec-1-43">
        <title>InverseOf: top25:RelatedWeaknesses</title>
        <p>Finally, the relationship of attack patterns to the exploited by them weaknesses is
represented by the object property RelatedWeaknesses:</p>
      </sec>
      <sec id="sec-1-44">
        <title>ObjectProperty: top25:RelatedWeaknesses</title>
      </sec>
      <sec id="sec-1-45">
        <title>Domain: top25:CAPEC Range: top25:CWE InverseOf: top25:AttackPatterns</title>
        <p>Navigation in our ontology is via SPARQL queries. Starting point can be any
weakness, vulnerability or attack pattern. The path and its scope depend of the
case study scenario. Several case studies, roles (security manager, cyber security
operational team, procurement employee, cyber security trainee) and scenarios
have been investigated. Identified case studies, roles and scenarios are not
exhausting, but it is clear that not all of these potential users can use SPARQL
queries in their everyday duties. A specialized user-friendly interface to the
ontology must be developed for them.</p>
        <p>Presented here ontology is very simple. It contains the basic knowledge about Top
25 Most Dangerous Software Errors and related vulnerabilities and attack patterns but
even now, it is populated with 493 individuals (CWEs – 25, CVEs – 156, CAPECs – 312).
Further extensions of this ontology would be populated with many thousands CWEs,
CVEs and CAPECs. This process have to automatic for a stable ontology structure. CVE,
CWE and CAPEC databases are relatively stable but the devil is in the details. So, may
be some automatic ontology structure must be developed.</p>
        <p>Finally, it is clear that the real power of the semantic search can be achieved with
the introduction of CWE and CAPEC taxonomies. This task is not so simple because the
used taxonomies are not simple ones and further research and investigations must be done
on them.</p>
        <p>
          This research will be used in the context of updating of current curricula at University
of Sofia with cybersecurity topics as described in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Acknowledgements</title>
      <p>This work was conducted using the Protégé resource, which is supported by grant
GM10331601 from the National Institute of General Medical Sciences of the
United States National Institutes of Health.</p>
      <p>This research is supported by the National Scientific Program “Information
and Communication Technologies for a Single Digital Market in Science,
Education and Security (ICTinSES)”, financed by the Ministry of Education and
Science.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          , Common Weakness Enumeration, http://cwe.mitre.org, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          ,
          <article-title>Common Vulnerabilities</article-title>
          and Exposures, http://cve.mitre.org, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          ,
          <article-title>Common Attack Pattern Enumeration</article-title>
          and Classification, http://capec. mitre.org, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. NIST, National Vulnerability Database, http://nvd.nist.gov, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. NIST,
          <string-name>
            <surname>Vulnerability</surname>
            <given-names>Metrics</given-names>
          </string-name>
          , http://nvd.nist.gov/vuln-metrics/cvss, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          , http://cwe.mitre.org/top25, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. W3C,
          <string-name>
            <surname>Semantic</surname>
            <given-names>Web</given-names>
          </string-name>
          ,
          <source>Web Ontology Language (OWL)</source>
          , http://www.w3.org/OWL, last accessed
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          <article-title>The Protégé project: A look back and a look forward</article-title>
          .
          <source>AI Matters. Association of Computing Machinery Specific Interest Group in Artificial Intelligence</source>
          ,
          <volume>1</volume>
          (
          <issue>4</issue>
          ),
          <year>June 2015</year>
          . DOI:
          <volume>10</volume>
          .1145/2557001.25757003.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kaloyanova</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <source>Exploring Cybersecurity Curricula Designation Requirements. Computer and Communications Engineering</source>
          , Vol.
          <volume>13</volume>
          , No. 2/2019, pp
          <fpage>64</fpage>
          -
          <lpage>67</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>