<!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>
      <title-group>
        <article-title>Building an Ontology for CWE from the Point of View of Architectural Concept</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Zhanar Sartabanova</string-name>
          <email>zhanarsartabanova@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vladimir Dimitrov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Saule Sarsimbaeva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gulmira Urdabayeva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Aktobe Regional University “K. Zhubanov”</institution>
          ,
          <addr-line>Aktobe</addr-line>
          ,
          <country country="KZ">Kazakhstan</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Sofia University “St. Kliment Ohridski”</institution>
          ,
          <addr-line>Sofia</addr-line>
          ,
          <country country="BG">Bulgaria</country>
        </aff>
      </contrib-group>
      <fpage>352</fpage>
      <lpage>358</lpage>
      <abstract>
        <p>The article deals with the issues of constructing an ontology for software weaknesses (CWE) from the point of view of the architecture concept. Analyzed are all weaknesses from the architectural concept, the weakness structure, and the process of designing the ontology using the environment Protégé.</p>
      </abstract>
      <kwd-group>
        <kwd>CWE</kwd>
        <kwd>software weaknesses</kwd>
        <kwd>ontology</kwd>
        <kwd>software architect</kwd>
        <kwd>Protégé</kwd>
        <kwd>SPARQL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Software weakness is any mistake (defect, malfunction, and vulnerability)
made during the design, coding or configuration of the software, which, if left
uncorrected, can be exploited as vulnerability.</p>
      <p>Examples of software weaknesses are buffer overflow, channel and path
errors; error handling; user interface errors; path traversal and equivalence errors;
authentication errors; resource management errors; insufficient data validation;
code evaluation etc. for more details see [1]</p>
      <p>CWE (Common Weakness Enumeration) has been developed by MITRE
Corporation to serve as a common language describing software security
weaknesses; to serve as a standard measuring rod for software defenses targeting these
weaknesses; and to provide a common baseline standard for identifying,
mitigating, and preventing the known weaknesses.</p>
      <p>
        CWE is supported by a community that includes representatives from the
major software vendors, commercial information security vendors, academia,
government agencies, and research institutions. Community members participate
in the development of CWE using CWE Community Research mailing list. This
means that the CWE dictionary, as well as its subsequent efforts in the field as
CWSS [2] and CWRAF [
        <xref ref-type="bibr" rid="ref5 ref6">3</xref>
        ], reflect the understanding and combined experience
of a wide range of information technology and security professionals.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Common Weakness Enumeration</title>
      <p>There is no single taxonomy in CWE, instead several point of views are used to
classify weaknesses. There are three main views based on the usage concepts:
• Software Development view covers all aspects of the software
development lifecycle, including architecture and implementation.
• Hardware Design view contains hardware weaknesses.
• Research Concepts view is intended to facilitate the study of weaknesses,
including their relationships.</p>
      <p>There are views that are more specialized in CWE. They are not listed as
main ones and are not sub views of the above mentioned.</p>
      <p>One of the most compact and well organized the architecture concept view
that is a subject of this study.</p>
      <p>The architectural concept organizes the weak points in accordance with the
general strategy for architectural security. It is designed to help architects to
identify potential errors in the software architecture development.</p>
      <p>The architectural concept (CWE 1008) contains 12 categories, each
consisting of classes, bases, variants, and composites. A brief description of each of its
categories is given below:
• Audit (CWE 1009) is on audit-based system components.
• Authenticate Actors (CWE 1010) is on system’s authentication
components.
• Authorize Actors (CWE 1011) is on authorization components of the
system.
• Cross Cutting (CWE 1012) is on the numerous cross cutting security
attack tactics and their impact on the system.
• Encrypt Data (CWE 1013) is on data privacy in the system.
• Identify Actors (CWE 1014) is on identity management subsystem.
• Limit Access (CWE 1015) is on system resource usage.
• Limit Exposure (CWE 1016) is on the system entry points.
• Lock Computer (CWE 1017) is on the system locking mechanism.
• Manage User Sessions (CWE 1018) is on session management.
• Validate Inputs (CWE 1019) is on the input validation components of the
system.
• Verify Message Integrity (CWE 1020) is on the system’s data integrity
components.</p>
      <p>The View in CWE is a subset of CWE entries that are organized by some
concept. There are two view structures are parts/slices (flat lists) and graphs
(containing relationships among the entries).</p>
      <p>The Category in CWE contains a set of other entries that share common
characteristics.</p>
      <p>The Class in CWE is a weakness that is described very abstractly, usually
independently of any particular language or technology.</p>
      <p>The Base in CWE is a weakness that is described abstractly, but with enough
details to be detected. This entry description is accompanied with
recommendations how to be prevented or mitigate it.</p>
      <p>The Variant in CWE is a weakness that is described in very low level of
details, usually limited to a specific language or technology.</p>
      <p>The Composite in CWE is a composite entry that combines of two or more
other weaknesses that have to be available the weakness to occur. Eliminating
any of the weaknesses eliminates or dramatically reduces the risk.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Structure of CWE entries</title>
      <p>In general, all CWE entries have the same structure by its XML schema, but in
reality, it is not true. The view is structured as follows:
1. view ID – each CWE entry has a unique number;
2. type (graph or list);
3. audience that can benefits from the view;
4. relationships with other CWE entries;
5. notes;
6. recommendations;
7. content of the view;
8. history;
9. changes.</p>
      <p>CWE entries that are not views are structured as follows:
• name of the weakness;
• description;
• alternative terms for the weakness;
• behavior description of this weakness;
• weakness exploit description;
• probability for exploit;
• description of exploit consequences;
• potential mitigation of the exploit;
• relationships with other CWEs;
• source taxonomies;
• code examples for languages / architectures
• IDs of CVE vulnerabilities for the weakness;
• links.</p>
    </sec>
    <sec id="sec-4">
      <title>The CWE ontology</title>
      <p>CWE ontology has been specified in OWL 2 Manchester Syntax [6] and developed
in Protégé [5].</p>
      <p>The ontology has been developed in the next steps:
• Classes and subclasses have been designed.
• The class CWEEntries has been instantiated with individuals.
• The class CVEEntries has been instantiated with individuals.
• The class CAPECEntries has been instantiated with individuals.
• The ontology has been tested.</p>
      <p>In the ontology, under the class Thing are placed: CWEEntries – the main
class under study, CAPECEntries, and CVEEntries. CWEEntries contains CWE
weaknesses for the architectural view, CAPECEntries – CAPEC attack patterns,
and CVEEntries – CVE vulnerabilities. The last two classes are only sketched for
the integrity purpose only.</p>
      <p>CWEEntries has as subclasses Views, Classes, Bases, Variants, and
Composites that corresponds to the CWE entries types. There is one instance of class
Views. It corresponds to the architectural concept view in CWE, which has 12
instances of class Categories. In Fig. 1 is presented the class hierarchy.</p>
      <p>The object properties are shown in Fig. 2. These are:
• references refers to CVE vulnerabilities of this CWE weakness;
• categories_member links each base, variant, class, compound with its
categories;
• categories_includes is inverse of categories_member;
• related_attack_patterns links the weaknesses with CAPEC attack pattern;
• views_includes links the view with its contents;
• views_member is inverse of views_includes.
◦ Black_Box;
◦ dynamic;
◦ manual_analyses;
◦ static.
• likelihood_of_exploit – the probability for exploit.
• modes_of_introduction – the phase in which the weakness can be
introduced:
◦ architecture_and_design;
◦ buld_and_compilation;
◦ distribution;
◦ documentation;
◦ implementation;
◦ installation;
◦ operation;
◦ policy;
◦ requirements;
◦ system_configuration;
◦ testing.
• weakness_ordinalities – order of weakness in composite weaknesses.</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, CWE weaknesses have been briefly analyzed. An ontology based
on the architectural view has been presented.</p>
      <p>This ontology is useful for software architects, developers, researchers in the
field of software design and cybersecurity, as well for lecturers of on software
development technology and information security. For example, for the
developers, this ontology can serve as an assistant and handbook for secure software
design, since weaknesses are organized by known security strategies, helping the
designer to embed security during the design process instead of detecting
weaknesses after the software has been created.</p>
    </sec>
    <sec id="sec-6">
      <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>
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          ,
          <article-title>Common Weakness Enumeration (CWE)</article-title>
          , https://cwe.mitre.org,
          <source>last accessed</source>
          <year>2021</year>
          /01/22.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          mitre.
          <source>org/cwss/cwss_v1.0</source>
          .1.html,
          <source>last accessed</source>
          <year>2021</year>
          /01/22.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>MITRE</given-names>
            <surname>Corporation</surname>
          </string-name>
          ,
          <article-title>Scoring CWEs, Common Weakness Risk Analysis Framework (CWRAF)</article-title>
          , https://cwe.mitre.org/cwraf, last accessed
          <year>2021</year>
          /01/22.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <source>CWE VIEW: Architectural Concepts</source>
          , https://cwe.mitre.org/data/definitions/1008.html,
          <source>last accessed</source>
          <year>2021</year>
          /01/22 Musen,
          <string-name>
            <surname>M.A.</surname>
          </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="ref5">
        <mixed-citation>
          <article-title>W3C, OWL 2 Web Ontology Language, Manchester Syntax (Second Edition)</article-title>
          , https://www.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          w3.org/TR/owl2-manchester-syntax,
          <source>last accessed</source>
          <year>2021</year>
          /01/22.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>