<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1646-9895</journal-id>
<journal-title><![CDATA[RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação]]></journal-title>
<abbrev-journal-title><![CDATA[RISTI]]></abbrev-journal-title>
<issn>1646-9895</issn>
<publisher>
<publisher-name><![CDATA[AISTI - Associação Ibérica de Sistemas e Tecnologias de Informação]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1646-98952019000200008</article-id>
<article-id pub-id-type="doi">10.17013/risti.32.97-112</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[KE-SER: Un sistema basado en el conocimiento y la experiencia para dar soporte a arquitectos de software en aspectos de seguridad]]></article-title>
<article-title xml:lang="en"><![CDATA[KE-SER: A system based on knowledge and experience to support software architects in security aspects]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Carignano]]></surname>
<given-names><![CDATA[María Celeste]]></given-names>
</name>
<xref ref-type="aff" rid="A1"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Gonnet]]></surname>
<given-names><![CDATA[Silvio]]></given-names>
</name>
<xref ref-type="aff" rid="A1 "/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Leone1]]></surname>
<given-names><![CDATA[Horacio]]></given-names>
</name>
<xref ref-type="aff" rid="A2"/>
</contrib>
</contrib-group>
<aff id="AA1">
<institution><![CDATA[,Universidad Tecnológica Nacional Facultad Regional Santa Fe ]]></institution>
<addr-line><![CDATA[Santa Fe ]]></addr-line>
<country>Argentina</country>
</aff>
<aff id="A">
<institution><![CDATA[,sgonnet@santafe-conicet.gov.ar  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="AA2">
<institution><![CDATA[,Universidad Tecnológica Nacional CONICET INGAR - Instituto de Desarrollo y Diseño]]></institution>
<addr-line><![CDATA[Santa Fe ]]></addr-line>
<country>Argentina</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2019</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2019</year>
</pub-date>
<numero>32</numero>
<fpage>97</fpage>
<lpage>112</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_arttext&amp;pid=S1646-98952019000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_abstract&amp;pid=S1646-98952019000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_pdf&amp;pid=S1646-98952019000200008&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En la actualidad, las organizaciones están expuestas a ataques cada vez más sofisticados, cuyo objetivo es comprometer o corromper la integridad, confidencialidad y disponibilidad de la información que manejan. La mayoría de los ataques, internos o externos, explotan vulnerabilidades de seguridad, las cuales pueden tener su origen en el desarrollo de los sistemas de software que emplean las organizaciones. Desarrollar sistemas que contemplen aspectos de seguridad es fundamental para disminuir las vulnerabilidades que exponen a las organizaciones. Sin embargo, las compañías de software pocas veces cuentan con expertos en seguridad que las asesoren a lo largo del ciclo de vida del desarrollo de software. En este trabajo se propone un sistema experto para brindar apoyo, desde el punto de vista de la seguridad, en una de las principales actividades del desarrollo como es el diseño arquitectónico.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Nowadays, the organizations are exposed to increasingly sophisticated attacks, whose objective is to compromise or corrupt the integrity, confidentiality and availability of the information they handle. Most attacks exploit security vulnerabilities. The origin of these vulnerabilities can be in the development of the software systems that organizations employ. In order to reduce these vulnerabilities, it is fundamental to develop systems dealing with security aspects. However, software companies rarely have security experts to advise them throughout the software development life cycle. This paper proposes an expert system to provide support, from the point of view of security, in one of the main development activities such as architectural design.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[sistema experto]]></kwd>
<kwd lng="es"><![CDATA[seguridad]]></kwd>
<kwd lng="es"><![CDATA[arquitectura de software]]></kwd>
<kwd lng="es"><![CDATA[diseño]]></kwd>
<kwd lng="es"><![CDATA[conocimiento]]></kwd>
<kwd lng="en"><![CDATA[expert systems]]></kwd>
<kwd lng="en"><![CDATA[security]]></kwd>
<kwd lng="en"><![CDATA[software architecture]]></kwd>
<kwd lng="en"><![CDATA[design]]></kwd>
<kwd lng="en"><![CDATA[knowledge]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font size="2"><b>ARTÍCULOS</b></font></p>     <p><font size="4"><b>KE-SER: Un sistema basado en el conocimiento y la experiencia    para dar soporte a arquitectos de software en aspectos de seguridad</b></font></p>     <p><font size="3"><b>KE-SER: A system based on knowledge and experience to support    software architects in security aspects</b></font></p>     <p><b>María Celeste Carignano<sup>1</sup>, Silvio Gonnet<sup>1,2</sup>, Horacio    Leone1<sup>2</sup></b></p>     <p><sup>1</sup> Universidad Tecnológica Nacional - Facultad Regional Santa Fe,    Santa Fe, CP: 3000, Santa Fe, Argentina. <a href="mailto:mcarigna@frsf.utn.edu.ar">mcarigna@frsf.utn.edu.ar</a>,    <a href="mailto:sgonnet@santafe-conicet.gov.ar">sgonnet@santafe-conicet.gov.ar</a></p>     <p><sup>2</sup> INGAR - Instituto de Desarrollo y Diseño, CONICET-UTN, Santa Fe,    CP: 3000, Santa Fe, Argentina. <a href="mailto:hleone@santafe-conicet.gov.ar">hleone@santafe-conicet.gov.ar</a></p> <hr/>     <p>&nbsp;</p>     <p><b>RESUMEN </b></p>     <p>En la actualidad, las organizaciones están expuestas a ataques cada vez más    sofisticados, cuyo objetivo es comprometer o corromper la integridad, confidencialidad    y disponibilidad de la información que manejan. La mayoría de los ataques, internos    o externos, explotan vulnerabilidades de seguridad, las cuales pueden tener    su origen en el desarrollo de los sistemas de software que emplean las organizaciones.    Desarrollar sistemas que contemplen aspectos de seguridad es fundamental para    disminuir las vulnerabilidades que exponen a las organizaciones. Sin embargo,    las compañías de software pocas veces cuentan con expertos en seguridad que    las asesoren a lo largo del ciclo de vida del desarrollo de software. En este    trabajo se propone un sistema experto para brindar apoyo, desde el punto de    vista de la seguridad, en una de las principales actividades del desarrollo    como es el diseño arquitectónico.</p>     <p><b>Palabras-clave</b>: sistema experto, seguridad, arquitectura de software,    diseño, conocimiento.</p> <hr/>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><b>ABSTRACT</B></p>     <p>Nowadays, the organizations are exposed to increasingly sophisticated attacks,    whose objective is to compromise or corrupt the integrity, confidentiality and    availability of the information they handle. Most attacks exploit security vulnerabilities.    The origin of these vulnerabilities can be in the development of the software    systems that organizations employ. In order to reduce these vulnerabilities,    it is fundamental to develop systems dealing with security aspects. However,    software companies rarely have security experts to advise them throughout the    software development life cycle. This paper proposes an expert system to provide    support, from the point of view of security, in one of the main development    activities such as architectural design.</p>     <p><b>Keywords</b>: expert systems, security, software architecture, design, knowledge.</p> <hr/>     <p>&nbsp;</p>     <p><b>1. Introducción</b></p>     <p>La información siempre ha sido un recurso valioso para las organizaciones.    En las últimas décadas, los avances tecnológicos han revolucionado la forma    en la que se obtiene, procesa, comunica y almacena la información dentro y fuera    de las organizaciones, generando ventajas competitivas y numerosos beneficios    (Mejía &amp; Muñoz, 2017). Sin embargo, estos avances también han colaborado    con la aparición de ataques cada vez más sofisticados, cuyo objetivo es comprometer    o corromper la integridad, confidencialidad y disponibilidad de la información    que manejan dichas organizaciones.</p>     <p>La mayoría de los ataques, internos o externos, explotan vulnerabilidades de    seguridad (Zambrano, Guarda, Valenzuela, &amp; Quiña, 2019). La base de datos    &ldquo;<i>Common Vulnerabilities and Exposures&rdquo; </i>(CVE, 2019) es una lista de vulnerabilidades    y exposiciones de ciberseguridad divulgadas públicamente, ampliamente reconocida    por la comunidad internacional de ciberseguridad, que define a una vulnerabilidad    como:</p>     <p><i>una debilidad en la lógica computacional (por ejemplo, el código) que se    encuentra en el software y algunos componentes de hardware (por ejemplo, el    firmware) que, cuando se explota, produce un impacto negativo en la confidencialidad,    la integridad o la disponibilidad. La mitigación de las vulnerabilidades en    este contexto implica cambios en la codificación, pero también podría incluir    cambios en las especificaciones o incluso la eliminación de las especificaciones    (por ejemplo, la eliminación de los protocolos o la funcionalidad afectados    en su totalidad).</i></p>     <p>Teniendo en cuenta esto, resulta evidente la importancia de contemplar aspectos    de seguridad durante el ciclo de vida del desarrollo de software (SDLC por sus    siglas en inglés: &ldquo;<i>Software Development Life Cycle</i>&rdquo;) con el objetivo    de eliminar o disminuir las vulnerabilidades que podrían ser aprovechadas durante    su ejecución. Cuanto más tarde se detecte el origen de una vulnerabilidad, mayor    será el costo de su corrección y las consecuencias pueden llegar a ser catastróficas.    Ejemplos de ello son los problemas ocasionados por los ataques &ldquo;<i>Ransomware</i>&rdquo;    en la actualidad (Winkler &amp; Treu Gomes, 2017).</p>     ]]></body>
<body><![CDATA[<p>Las mejores prácticas de desarrollo de software sugieren integrar los aspectos    de seguridad en cada fase del SDLC. Existen varios enfoques que así lo proponen,    como ser: Software Assurance Maturity Model (SAMM, 2019) de la organización    Open Web Application Security Project (OWASP, 2019), Touchpoints de McGraw (MacGraw,    2006) y Security Development Lifecycle (SDL, 2019) de Microsoft, entre otros.    Análisis comparativos de algunos de estos enfoques, o, en el caso de SAAM de    su predecesor, pueden encontrarse en los trabajos de: De Win, Scandariato, Buyens,    Grégoire, &amp; Joosen (2009) y Mohammad, Alqatawna, &amp; Abushariah (2017).</p>     <p>Sin embargo, las compañías de desarrollo de software no suelen contemplar la    seguridad en el SDLC debido a que consideran que es muy costosa, que requiere    de mucho tiempo y que no están suficientemente capacitadas para su realización,    ya que, generalmente, no cuentan con expertos en seguridad entre sus miembros    (Mohammad, Alqatawna, &amp; Abushariah, 2017). En este contexto surge la motivación    que da origen a la propuesta presentada en este trabajo.</p>     <p>Durante el diseño arquitectónico se toman las primeras decisiones de diseño    que permiten establecer las bases para construir una solución de software que    satisfaga los requerimientos de los stakeholders de un sistema (Bass, Clements,    &amp; Kazman, 2013; Clements, et al., 2010). Entre los requerimientos a satisfacer,    se encuentran los requerimientos de seguridad. Estas decisiones tempranas son    las más difíciles de corregir, las más difíciles de cambiar posteriormente en    el SDLC, y tienen los efectos de mayor alcance (Bass, Clements, &amp; Kazman,    2013). Por consiguiente, si los requerimientos de seguridad no son tenidos en    cuenta de manera apropiada durante el diseño arquitectónico, el sistema resultante    puede presentar vulnerabilidades que pongan en riesgo la seguridad del sistema    desarrollado y la información de la organización que lo ejecuta.</p>     <p>Es por este motivo que se considera necesario brindar apoyo a los arquitectos    de software para que puedan tomar decisiones durante el diseño arquitectónico    de forma consciente e informada. En este trabajo, se describe un sistema capaz    de realizar recomendaciones para satisfacer los requerimientos de seguridad    de los sistemas a construir. Las recomendaciones pueden estar basadas en el    conocimiento capturado de expertos en seguridad o en experiencias pasadas de    arquitectos que diseñaron arquitecturas de sistemas con requerimientos similares.</p>     <p>A continuación, se presenta la propuesta con mayor nivel de detalle. En la    sección 2, se describen las principales características del sistema experto,    llamado KE-SER por sus siglas en inglés: &ldquo;<i>Knowledge &amp; Experience </i>-    <i>SEcurity Recommendations</i>&rdquo;. En la sección 3, se profundizan los principales    componentes de KE-SER. Luego, en la sección 4, se analizan los resultados de    una evaluación del sistema experto propuesto. En la sección 6, se contextualiza    la propuesta con referencia a trabajos relacionados. Finalmente, en la sección    5, se presentan las conclusiones y trabajos futuros.</p>     <p><b>2. KE-SER: conocimiento y experiencia</b></p>     <p>Los sistemas expertos cobran importancia y utilidad en aquellos dominios en    los que resulta difícil y costoso disponer de expertos humanos para realizar    consultas de manera personal, ilimitada e instantánea (Gupta &amp; Singhal,    2013). Las compañías de desarrollo de software generalmente no cuentan con expertos    en seguridad entre sus miembros (Mohammad, Alqatawna, &amp; Abushariah, 2017),    por lo que KE-SER puede ser de gran valor.</p>     <p>KE-SER es un sistema basado en el conocimiento y la experiencia que tiene como    objetivo brindar soporte a los arquitectos de software en el proceso de diseño    arquitectónico contemplando aspectos de seguridad. Los componentes de este sistema    se presentan en la <a href="#f1">Fig 1</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="f1"></a><img src="/img/revistas/rist/n32/32a08f1.jpg"/></p>     
]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>Los objetivos de KE-SER incluyen:</p>     <p>&middot; responder a las consultas que podría realizar un arquitecto de software a    un experto en seguridad para resolver los requerimientos de los stakeholders    de los sistemas de software que deben ser construidos; y</p>     <p>&middot; recordar las soluciones empleadas en el pasado para poder aplicarlas en el    diseño de nuevas arquitecturas.</p>     <p>Para cumplir con el objetivo <i>I) </i>KE-SER emplea los componentes asociados    al <i>CONOCIMIENTO </i>(en <a href="#f1">Fig 1</a>), y para cumplir con el objetivo    <i>II) </i>KE-SER utiliza los componentes asociados a la <i>EXPERIENCIA </i>(en    <a href="#f1">Fig 1</a>).</p>     <p>El sistema intenta ofrecer recomendaciones o consejos sobre seguridad ante    preguntas como las siguientes: ¿Cuáles serían los aspectos a tener en cuenta    para evitar el acceso no autorizado de individuos? ¿Cómo evitar que usuarios    sin privilegios modifiquen los datos? ¿Cómo almacenar los datos para que no    puedan ser leídos por personas ajenas al sistema? ¿Cuáles son los aspectos de    seguridad que deberían ser tenidos en cuenta en aplicaciones como la que se    está diseñando? ¿Cómo se diseñó la solución para un requerimiento de autenticación    en aplicaciones anteriores?</p>     <p>Cabe destacar que KE-SER solo ofrece recomendaciones, con el objetivo de brindar    información a los arquitectos de software para que tomen mejores decisiones    durante el diseño arquitectónico, pero no ejecuta o genera ninguna decisión    de manera automática.</p>     <p>La información que gestiona KE-SER está distribuida en tres bases de datos:</p>     <p>&middot; La <b>Base de Conocimiento</b>, la cual contiene el conocimiento de los expertos    en seguridad. El conocimiento está distribuido en objetos y su estructura se    describe, mediante un diagrama de clases, en la sección 2.1.</p>     <p>&middot; La <b>Base de trabajo</b>, la cual contiene la información de los sistemas    que se están diseñando. En la sección 2.2 se describe la información que almacena    esta base de datos.</p>     ]]></body>
<body><![CDATA[<p>&middot; La <b>Base de Casos</b>, la cual contiene información sobre experiencias    de diseño arquitectónico pasadas. Estas experiencias están representadas por    casos y su estructura se describe, mediante diagramas de clases, en la sección    2.3.</p>     <p>El experto interactúa con KE-SER mediante el componente de <b>Adquisición de    conocimiento</b>, el cual permite que el experto vuelque sus conocimientos en    el sistema.</p>     <p>Para responder consultas tomando como base el conocimiento, se emplea el <b>Motor    de Inferencia</b>, el cual simula, mediante un conjunto de algoritmos, la estrategia    de resolución de problemas de un experto. En cambio, para responder consultas    tomando como base la experiencia, se utiliza el <b>Razonador</b>, el cual utiliza    razonamiento basado en casos para proponer estrategias de resolución basadas    en el recuerdo de experiencias pasadas similares.</p>     <p>A partir del sistema experto propuesto, se ha construido una versión prototípica    de una herramienta, llamada KE-T. KE-T ha sido implementada en JAVA (JAVA, 2019)    como un complemento (<i>plug-in</i>) de Eclipse (Eclipse, 2019) utilizando SWT    (siglas en inglés de Standard Widget Toolkit (SWT, 2019)) para construir la    interfaz gráfica de la aplicación. Por restricciones en la longitud del trabajo    no se presentará una descripción detallada de la misma. Pero resulta importante    destacar, que ni el sistema experto, ni la herramienta presentada, pretenden    automatizar el trabajo de los arquitectos, sino que el objetivo es brindar información    que les permita tomar mejores decisiones durante el diseño de una arquitectura.</p>     <p><b>3. KE-SER: componentes</b></p>     <p>A continuación, se describen con mayor profundidad cada uno de estos componentes    del sistema experto KE-SER.</p>     <p><b>3.1. Componentes asociados al conocimiento.</b></p>     <p>Los componentes asociados al conocimiento tienen como responsabilidad ofrecer    recomendaciones a los arquitectos para que puedan resolver los requerimientos    de seguridad de un sistema en particular. Con este fin, KE-SER mantiene una    base de conocimiento (ver <a href="#f1">Fig 1</a>) que contiene el conocimiento    volcado previamente por expertos en seguridad. La representación del conocimiento    de los expertos se muestra en el diagrama de clases de la <a href="#f2">Fig    2</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="f2"></a><img src="/img/revistas/rist/n32/32a08f2.jpg"/></p>     
]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>Las instancias de la clase <i>SecurityRecommendation </i>(ver <a href="#f2">Fig    2</a>) describen recomendaciones de seguridad que pueden ser útiles durante    el diseño arquitectónico de un sistema. Ejemplos de recomendaciones son tácticas    arquitectónicas, algoritmos específicos, o componentes arquitectónicos.</p>     <p>En general, las recomendaciones persiguen un objetivo específico, el cual puede    ser resistir ataques de terceros, detectar ataques o recuperarse de ataques    efectuados. La categoría de las recomendaciones (atributo <i>category </i>de    <i>SecurityRecommendation </i>en <a href="#f2">Fig 2</a>) permite establecer    los objetivos de cada recomendación documentada.</p>     <p>Además, los expertos deben proporcionar datos sobre las recomendaciones documentadas    que permitan clasificarlas y recuperarlas. Un dato necesario es la característica    de calidad que puede asociarse a cada recomendación (instancia de <i>QualityCharacteristic    </i>en <a href="#f2">Fig 2</a>). Ejemplos de características de calidad están    dados en la norma ISO/IEC 25010 (ISO 25010, 2011), como ser: confidencialidad,    integridad, no- repudio, responsabilidad, y autenticidad; o en el trabajo de    Bass, Clements &amp; Kazman (2013): no-repudio, confidencialidad, integridad,    garantía, disponibilidad, y auditoría. La restante información de clasificación    puede ser documentada como etiquetas de la recomendación (instancias de <i>SecurityTag    </i>en <a href="#f2">Fig 2</a>).</p>     <p>Un ejemplo de recomendación de seguridad podría ser el siguiente:</p>     <p>&middot; <b><u>ID</u></b>: SR-AIC</p>     <p>&middot; <b><u>Name</u></b>: Autenticar usuarios por medio de identificador y contraseña</p>     <p>&middot; <b><u>Description</u></b>: La autenticación es el proceso de validar la identidad    de un usuario, en este caso, mediante un ID de usuario y una contraseña.</p>     <p>&middot; <b><u>Advantage</u></b>: Fácil de implementar. Bajo costo. Fácil de utilizar</p>     <p>&middot; <b><u>Dissadvantage</u></b>: El nivel de seguridad depende directamente de    la complejidad de la contraseña. Contraseñas simples o débiles son fáciles de    adivinar o inventar. Contraseñas demasiado complejas conducen a los usuarios    a aplicar estrategias para gestionarlas que no siempre son correctas. Proporcionar    una contraseña correcta no prueba que una persona es quien dice ser.</p>     ]]></body>
<body><![CDATA[<p>&middot; <b><u>Quality Characteristic</u></b>: Autenticidad</p>     <p>&middot; <b><u>Category</u></b>: RESIST ATTACKS</p>     <p>&middot; <b><u>Security Tags</u></b>: Autenticación, Usuario, Password, Contraseña,    Identificador, Nombre de usuario</p>     <p>Otros ejemplos de recomendaciones pueden observarse en la <a href="#t1">Tabla    1</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="t1"></a><img src="/img/revistas/rist/n32/32a08t1.jpg"/></p>     
<p>&nbsp;</p>     <p>Las recomendaciones presentadas en la <a href="#t1">Tabla 1</a> forman parte    de una vista parcial de una base de conocimiento construida con fines prácticos.    Algunas de las fuentes de información formales consultadas para confeccionar    la base de conocimiento fueron: Bass, Clements &amp; Kazman (2013) y Johnsson,    Deogun, &amp; Sawano (2019). También fueron consultados sitios web y expertos    en seguridad. Por cuestiones de extensión no se detalla la descripción, ventajas    y desventajas de las recomendaciones presentadas.</p>     <p>Finalmente, los expertos pueden indicar si existe algún tipo de relación que    vincula varias recomendaciones (<i>SecurityRecommendationRelation </i>en <a href="#f2">Fig    2</a>). Sin embargo, por limitaciones en la extensión del trabajo no serán abordadas    en esta presentación.</p>     <p><b>3.2. Soluciones en producción</b></p>     ]]></body>
<body><![CDATA[<p>En el presente trabajo no se prescribe cómo debe ser documentada la arquitectura    de software a diseñar. Solo se establece la necesidad de capturar información    de dos elementos: los intereses de los stakeholders y las decisiones de diseño    de los arquitectos, ambos referidos con aspectos de seguridad de los sistemas    de software a diseñar.</p>     <p>La información de seguridad relacionada con los sistemas que se están diseñando    es almacenada en la <b>base de trabajo</b>. En la <a href="#f3">Fig 3</a> se    presenta la estructura de los conceptos involucrados en el diseño arquitectónico    desde la perspectiva de la seguridad.</p>     <p>&nbsp;</p>     <p align="center"><a name="f3"></a><img src="/img/revistas/rist/n32/32a08f3.jpg"/></p>     
<p>&nbsp;</p>     <p>Los intereses de los stakeholders referidos a seguridad están representados    mediante la clase <i>SecurityConcern </i>(ver <a href="#f3">Fig 3</a>). Cada    interés de seguridad se categoriza mediante las características de seguridad    asociadas y las etiquetas de seguridad identificadas.</p>     <p>De esta forma, si un <i>stakeholder </i>expresa un interés expresado de la    siguiente forma: &ldquo;<i>Se deberá dejar registrado todo intento de acceder al sistema    con un nombre de usuario no existente</i>&rdquo;, puede ser documentado como se muestra    en la <a href="#t2">Tabla 2</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="t2"></a><img src="/img/revistas/rist/n32/32a08t2.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>Las decisiones tomadas por los arquitectos, para satisfacer los intereses de    seguridad, son documentadas mediante objetos de tipo <i>SecurityArchitectureDecision    </i>(ver <a href="#f3">Fig 3</a>). Dichas decisiones pueden involucrar la adopción    de una o más recomendaciones brindadas por el sistema experto (<i>SecurityRecommendation    </i>en <a href="#f3">Fig 3</a>).</p>     <p><i> </i>Teniendo en cuenta las recomendaciones presentadas en la <a href="#t1">Tabla    1</a>, y el interés de seguridad descrito en la <a href="#t2">Tabla 2</a>, las    decisiones de diseño tomadas podrían ser las mostradas en la <a href="#t3">Tabla    3</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="t3"></a><img src="/img/revistas/rist/n32/32a08t3.jpg"/></p>     
<p>&nbsp;</p>     <p><b>3.3. Componentes asociados a la experiencia</b></p>     <p>Los componentes asociados a la experiencia tienen como responsabilidad recuperar    las soluciones de seguridad empleadas en el pasado para proponerlas a los arquitectos    durante el diseño de nuevas arquitecturas. Para ello KE-SER aplica razonamiento    basado en casos (CBR, por sus siglas en inglés <i>Case-based reasoning</i>).    Razonamiento Basado en Casos es un paradigma de resolución de problemas (Aamodt    &amp; Plaza, 1994) que involucra el uso de experiencias pasadas para comprender    y resolver nuevas situaciones (Kolodner, 1992). Un <b><i>caso </i></b>denota    una situación experimentada previamente, que ha sido capturada y aprendida de    forma tal que puede ser reutilizada en la resolución de problemas futuros (Aamodt    &amp; Plaza, 1994). Suele estar compuesto por el <i>problema</i>, que describe    el estado del mundo cuando ocurre el caso; y la <i>solución</i>, que establece    la solución encontrada (Watson &amp; Marir, 1994).</p>     <p>En el contexto de este trabajo, un caso describe las decisiones de diseño tomadas    durante la definición de una arquitectura de software que involucran aspectos    de seguridad y es llamado <b><i>caso arquitectónico de seguridad</i></b>. En    la <a href="#f4">Fig 4</a> se presenta la estructura definida para los <i>casos    arquitectónicos de seguridad</i>.</p>     <p>&nbsp;</p>     <p align="center"><a name="f4"></a><img src="/img/revistas/rist/n32/32a08f4.jpg"/></p>     
]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>Un <i>caso arquitectónico de seguridad </i>es representado mediante la clase    <i>SecurityArchitectureCase </i>(ver <a href="#f4">Fig 4</a>). El <i>problema    </i>(<i>ProblemDescription </i>en <a href="#f4">Fig 4</a>) está definido en    función de los intereses de seguridad de los stakeholders (<i>SecurityConcern</i>    en <a href="#f4">Fig 4</a>) y la solución (<i>SolutionDescription </i>en <a href="#f4">Fig    4</a>) se compone de decisiones de diseño (<i>SecurityArchitectureDecision </i>en    <a href="#f4">Fig 4</a>) tomadas por los arquitectos de software aceptando recomendaciones    de diseño propuestas.</p>     <p>Los <i>casos arquitectónicos de seguridad </i>se almacenan en la base de casos    (ver <a href="#f1">Fig 1</a>) y contienen la información de los sistemas que    se encontraban en la base de trabajo, una vez que se finaliza con el diseño    de su arquitectura.</p>     <p><b>3.4.Motor de inferencia</b></p>     <p>El motor de inferencia simula la estrategia de resolución de problemas de un    experto. Para ello ejecuta un proceso que tiene como entrada un conjunto de    intereses de seguridad (instancias de <i>SecurityConcern</i>) del sistema a    construir y como salida cero o más recomendaciones de seguridad (instancias    de <i>SecurityRecommendation</i>) para cada uno de los intereses de entrada.    La cantidad de recomendaciones propuestas dependerá de la información almacenada    en la base de conocimiento y de la calidad descriptiva de las etiquetas de seguridad    empleadas en la definición de los intereses de seguridad y las recomendaciones    de seguridad.</p>     <p>El proceso de inferencia analiza cada uno de los intereses de seguridad de    entrada (llamado <i><u>ISE</u></i>) aplicando la siguiente regla:</p>     <p>&nbsp;</p>     <p align="center"><a name="e1"></a><img src="/img/revistas/rist/n32/32a08e1.jpg"/></p>     
<p>&nbsp;</p>     <p>Una vez finalizado el procesamiento de todos los intereses de seguridad del    conjunto de entrada, se presentan al arquitecto las recomendaciones de seguridad    obtenidas para cada uno de ellos.</p>     ]]></body>
<body><![CDATA[<p>Para determinar si una recomendación de seguridad (llamada <b><i>RS</i></b>)    posee características de calidad comunes con un interés de seguridad (llamado    <b><i>IS</i></b>), el sistema experto realiza el siguiente cálculo (I):</p>     <p>&nbsp;</p>     <p align="center"><a name="e2"></a><img src="/img/revistas/rist/n32/32a08e2.jpg"/></p>     
<p>&nbsp;</p>     <p>Si <b><i>X &gt; U_C </i></b>entonces se considera que <b><i>RS </i></b>posee    características de calidad comunes con <b><i>IS</i></b>, en donde U_C es un    valor umbral previamente establecido que indica un límite inferior de inclusión    de las recomendaciones.</p>     <p>Por otro lado, para determinar si una recomendación de seguridad (llamada <b><i>RS</i></b>)    posee etiquetas de seguridad comunes con un interés de seguridad (llamado <b><i>IS</i></b>),    el sistema experto realiza el siguiente cálculo (II):</p>     <p>&nbsp;</p>     <p align="center"><a name="e3"></a><img src="/img/revistas/rist/n32/32a08e3.jpg"/></p>     
<p>&nbsp;</p>     <p>Si <b><i>Y &gt; U_E </i></b>entonces se considera que <b><i>RS </i></b>posee    etiquetas de seguridad comunes con <b><i>IS</i></b>, en donde U_E es un valor    umbral previamente establecido que indica un límite inferior de inclusión de    las recomendaciones.</p>     ]]></body>
<body><![CDATA[<p><b>3.5. Razonador</b></p>     <p>El <b><i>Razonador </i></b>utiliza razonamiento basado en casos para proponer    recomendaciones de seguridad basadas en el recuerdo de experiencias pasadas    similares. Ante la descripción de los intereses de seguridad (instancias <i>SecurityConcern</i>)    del sistema a ser diseñado, se recuperan de la base de casos aquellos <i>casos    arquitectónicos de seguridad </i>(instancias de <i>SecurityArchitectureCase</i>)    que tienen intereses similares y se proponen para el nuevo diseño arquitectónico    las recomendaciones de seguridad consideradas en dichos casos.</p>     <p>Para esto, KE-SER recorre todos los casos de la <i>base de casos</i>, calculando    para cada uno de ellos el porcentaje de intereses de seguridad del sistema a    construir que tienen similitud con los intereses del caso que está siendo analizado.    Aquellos casos, cuyo porcentaje supera un valor umbral previamente establecido    (llamado <b><i>U_I</i></b>), pasan a formar parte del conjunto de casos recuperados.</p>     <p>Como resultado, el arquitecto puede consultar para cada uno de los casos recuperados    cuáles fueron las recomendaciones que se siguieron para satisfacer los intereses    de seguridad que son similares a los intereses del sistema a construir.</p>     <p>Para establecer si dos intereses de seguridad son similares (llamando <b><i>ISS    </i></b>al interés de seguridad del sistema a construir y <b><i>ISC </i></b>al    interés de seguridad del caso de seguridad arquitectónico), se tienen en cuenta    los siguientes aspectos:</p>     <p>Por un lado, las características de calidad de ambos intereses, realizando    el cálculo presentado en (III):</p>     <p>&nbsp;</p>     <p align="center"><a name="e4"></a><img src="/img/revistas/rist/n32/32a08e4.jpg"/></p>     
<p>&nbsp;</p>     <p>Por el otro, las etiquetas de seguridad de ambos intereses, realizando el cálculo    presentado en (IV):</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p align="center"><a name="e5"></a><img src="/img/revistas/rist/n32/32a08e5.jpg"/></p>     
<p>&nbsp;</p>     <p>De esta forma, si <b><i>ISC </i></b>cumple con la restricción presentada en    (V) pasa a ser considerado por KE-SER como similar a <b><i>ISS</i></b>, por    lo que las recomendaciones de seguridad contempladas al momento de resolver    a <b><i>ISC </i></b>serán propuestas al arquitecto para resolver a <b><i>ISS</i></b>.</p>     <p>&nbsp;</p>     <p align="center"><a name="e6"></a><img src="/img/revistas/rist/n32/32a08e6.jpg"/></p>     
<p>&nbsp;</p>     <p>En donde U_IC y U_IE son valores umbrales previamente establecidos.</p>     <p><b>4. Evaluación y resultados</b></p>     <p>Para realizar la evaluación del modelo propuesto se utilizó un dataset público    llamado PROMISE (PROMISE, 2019). Este dataset consta de 625 sentencias de requerimientos    que pertenecen a 15 proyectos de desarrollo, de las cuales 66 corresponden a    requerimientos de seguridad. En la evaluación se tuvieron en cuenta 57 sentencias    de requerimientos de seguridad, debido a que 9 fueron descartadas por considerarse    mal clasificadas o por carecer de suficiente información como para trabajar    con ellas. Las sentencias de requerimientos de seguridad fueron consideradas    como intereses de seguridad (instancias de <i>SecurityConcern </i>en <a href="#f3">Fig    3</a>).</p>     ]]></body>
<body><![CDATA[<p>La evaluación se llevó a cabo en tres pasos: 1) se clasificaron los intereses    de calidad (asociándolos a instancias de <i>QualityCharacteristic</i>); 2) se    etiquetaron los intereses de seguridad (asociándolos a instancias de <i>SecurityTag</i>);    y 3) se empleó KE-SER para recuperar recomendaciones de seguridad.</p>     <p>En la <a href="#t4">Tabla 4</a> se presentan los resultados del primer paso    discriminando los intereses de seguridad por proyecto.</p>     <p>&nbsp;</p>     <p align="center"><a name="t4"></a><img src="/img/revistas/rist/n32/32a08t4.jpg"/></p>     
<p>&nbsp;</p>     <p>Durante el segundo paso se asignaron etiquetas de seguridad a los intereses    de seguridad analizados. Las etiquetas utilizadas se mencionan a continuación,    indicándose entre paréntesis la cantidad de intereses de seguridad a las que    fueron asignadas: Acceso (9), Usuario autenticado (9), Autorización (9), Rol    usuario (18), Usuario autorizado (34),Autorización (34), Datos (7), Datos correctos    (7), Datos válidos (7), Integridad (10), Acceso información (17), Acceso servicios    (16), Nivel de acceso (1), Informe de usuario (2), Auditoría (4), Nombre de    usuario (2), Contraseña (3), Acceso subsistemas (1), Encriptación (3), Detección    ataques (2), Notificaciones (1), Verificación integridad (1), Seguimiento Durante    el tercer paso, se llevaron a cabo distintas consultas al sistema experto KE-SER.</p>     <p>Por un lado, se realizaron consultas individuales al sistema experto para obtener    recomendaciones basadas en el conocimiento. Para ello se llevaron a cabo 15    consultas. En cada i-ésima consulta se le solicitó a KE-SER conocer las recomendaciones    basadas en el conocimiento para los intereses de seguridad del i-ésimo proyecto.    Debido a que la Base de Conocimiento había sido nutrida con suficiente conocimiento,    se obtuvieron recomendaciones para todas las sentencias de seguridad de todos    los proyectos consultados. Por restricciones en la longitud del trabajo no se    presentan detalles de la Base de conocimiento empleada para realizar la evaluación.</p>     <p>Los resultados de este tipo de consultas a KE-SER dependen del conocimiento    volcado en la base de conocimiento. Si el conocimiento y la clasificación de    las etiquetas es escaso, es poco probable que se obtengan respuestas útiles    del sistema experto. Este hecho es análogo a las respuestas que se podrían obtener    de expertos humanos, si no tienen mucho conocimiento no pueden realizar recomendaciones    útiles y de calidad.</p>     <p>Por otro lado, se realizaron consultas al sistema experto para obtener recomendaciones    basadas en la experiencia. Para ello, se llevaron a cabo 15 iteraciones. En    cada i-ésima iteración se realizaron las siguientes actividades:</p>     <p>i. consulta a KE-SER de las recomendaciones basadas en la experiencia para    los intereses de seguridad del i-ésimo proyecto;</p>     ]]></body>
<body><![CDATA[<p>ii. creación del correspondiente caso arquitectónico de seguridad (<i>SecurityArchitectureCase    </i>en <a href="#f4">Fig 4</a>) con la información del problema (dado por las    sentencias de seguridad del i-ésimo proyecto) y de la solución, basada en las    recomendaciones recibidas. En aquellos casos en los que no se obtuvieron recomendaciones    útiles para un interés de seguridad, se crearon recomendaciones basadas en el    conocimiento para dar solución a dichos intereses y poder continuar con el proceso;</p>     <p>iii. almacenamiento del i-ésimo caso arquitectónico en la base de casos.</p>     <p>Los resultados obtenidos se presentan en la <a href="#t5">Tabla 5</a>. Como    puede observarse en la Tabla, un 79% de los intereses de seguridad planteados    como consulta obtuvieron recomendaciones basadas en la experiencia. Los resultados    de este tipo de consulta a KE-SER dependen de la experiencia que tenga el sistema    experto, es decir, de la cantidad de casos en la Base de Casos.</p>     <p>&nbsp;</p>     <p align="center"><a name="t5"></a><img src="/img/revistas/rist/n32/32a08t5.jpg"/></p>     
<p>&nbsp;</p>     <p>Los primeros proyectos analizados (como ser 1, 2 y 3) obtuvieron peores resultados    que los últimos, debido a que al momento de ser tratados la base de casos no    contaba con experiencias pasadas para recuperar. Este comportamiento también    es análogo al de expertos humanos, aquellos expertos que cuentan con más experiencia    tienen más probabilidades de responder consultas con recomendaciones útiles    y de calidad.</p>     <p><b>5. Trabajos relacionados</b></p>     <p>En la actualidad, en el contexto del diseño arquitectónico existen varias herramientas    que brindan asistencia a los arquitectos de software para la realización de    sus tareas. En Rodríguez, Díaz Pace, &amp; Soria (2018) y Vazquez, Díaz Pace,    &amp; Campo (2010) se describen enfoques que emplean en CBR para explorer alternativas    de diseño de arquitecturas orientadas al servicio (SOA) y arquitecturas a nivel    general, respectivamente. En ambos trabajos los requerimientos de calidad toman    un papel importante, pero el objetivo es dar soporte al diseño detallado o implementación    de las arquitecturas de entrada.</p>     <p>En Carignano, Gonnet, &amp; Leone (2016) se describe una herramienta que utiliza    CBR para dar soporte al diseño de arquitecturas de software, a partir de un    conjunto de requerimientos de calidad y restricciones de diseño. Esta herramienta    contempla todo tipo de requerimiento de calidad de manera general.</p>     ]]></body>
<body><![CDATA[<p>En Gomes &amp; Leitäo (2006) también se propone una herramienta que aplica    CBR para reutilizar conocimiento de diseño de software, empleando diagramas    de clases UML para describir el sistema a diseñar.</p>     <p>Las herramientas y enfoques mencionados hasta aquí contemplan los requerimientos    de calidad de manera general, siendo la seguridad una parte más de ellos. La    diferencia con el enfoque propuesto se puede describir con base en dos pilares.    Por un lado, el enfoque propuesto está especializado en los requerimientos de    calidad de seguridad, por lo que puede ser abordado con mayor nivel de detalle.    Por el otro, KE-SER no solo trabaja desde la perspectiva de la experiencia,    como las herramientas previamente mencionadas, sino que también integra la perspectiva    del conocimiento proveyendo los beneficios de contar con un experto con el conocimiento    necesario para resolver problemas cuando la experiencia no es suficiente.</p>     <p>En el ámbito de seguridad, varios trabajos han propuesto el empleo de sistemas    expertos, por ejemplo: Yang, Hu, and Chen (2004), o Rani and Goel (2015). Sin    embargo, no se han encontrado trabajos relacionados a la utilización de sistemas    expertos para dar soporte al diseño de arquitecturas de software.</p>     <p><b>6. Conclusiones y trabajos futuros</b></p>     <p>Lasmejores prácticas de desarrollo de software sugieren integrar los aspectos    de seguridad en cada fase del SDLC. Por lo que en este trabajo se presentaron    las características generales de un sistema experto, llamado KE-SER, cuyo objetivo    es dar soporte a los arquitectos de software en sus tareas en aspectos relacionados    con seguridad.</p>     <p>El sistema experto KE-SER cuenta con la posibilidad de ofrecer recomendaciones    de seguridad desde el punto de vista de información experta o de la experiencia.    De forma tal que el arquitecto pueda seleccionar aquellas que considere más    adecuadas para su aplicación. Además, en este trabajo se describió brevemente    una herramienta que permite materializar el sistema experto propuesto, llamada    KE-T.</p>     <p>Como trabajo futuro, se plantea el enriquecimiento de las etiquetas de seguridad    (<i>SecurityTag</i>) para que reconozca sinónimos, antónimos y homónimos. Las    etiquetas de seguridad son conceptos muy importantes, en el contexto de KE-SER    y una definición detallada y rica de ellas permite un mejor funcionamiento del    sistema experto.</p>     <p>&nbsp;</p>     <p><b>REFERENCIAS</b></p>     <!-- ref --><p>Aamodt, A., &amp; Plaza, P. (1994). Case-based reasoning: Foundational issues,    methodological variations, and system approaches. AI Communications. IOS Press,    7(1):39-59, 1994.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005032&pid=S1646-9895201900020000800001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Bass, L., Clements, P., &amp; Kazman, R. (2013). Software Architecture in Practice,    3rd Edition. Boston: Addison-Wesley. DOI: <a href="https://dx.doi.org/10.1145/2693208.2693252" target="_blank">10.1145/2693208.2693252</a>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005034&pid=S1646-9895201900020000800002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p>Carignano, M.C., Gonnet, S., &amp; Leone, H. (2016). RADS: una herramienta    para reutilizar estrategias en diseños de arquitecturas de software. In Simposio    Argentino de Ingeniería de Software (ASSE 2016) - JAIIO 45. SSN: 2451-7593,    pp. 147-158</p>     <!-- ref --><p>Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson,    P., Nord, R., &amp; Stafford, J. (2010). Documenting Software Architectures:    Views and Beyond (2nd Edition). Boston: Addison-Wesley.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005036&pid=S1646-9895201900020000800004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>CVE (2019). Common Vulnerabilities and Exposures. Recuperado de: <a href="cve.mitre.org/about" target="_blank">cve.mitre.org/about</a>    Accedido: 02/2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005038&pid=S1646-9895201900020000800005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <p>Yang, D., Hu, C., &amp; Chen, Y. (2004). A framework of cooperating intrusion    detection based on clustering analysis and expert system. In Proceedings of    the 3rd international conference on Information security (InfoSecu &lsquo;04). ACM,    New York, NY, USA, 150- 154. DOI: <a href="https://dx.doi.org/10.1145/1046290.1046321" target="_blank">10.1145/1046290.1046321</a>  </p>     <!-- ref --><p>De Win, B., Scandariato, R., Buyens, K., Grégoire, J., &amp; Joosen, W. (2009).    On the secure software development process: CLASP, SDL and Touchpoints compared.    <i>Information and Software Technology</i>, 51(7), 1152-1171. DOI: <a href="https://dx.doi.org/10.1016/j.infsof.2008.01.010" target="_blank">10.1016/j.infsof.2008.01.010</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005041&pid=S1646-9895201900020000800007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<!-- ref --><p>Eclipse (2019). Eclipse Foundation. Eclipse. Recuperado de: <a href="http://www.eclipse.org/" target="_blank">www.eclipse.org</a>.    Accedido: 22-02-2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005043&pid=S1646-9895201900020000800008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Gomes, P., &amp; Leitão, A. (2006). A tool for management and reuse of software    design knowledge. In: Staab S., Svátek V. (eds) Managing Knowledge in a World    of Networks. EKAW 2006. Lecture Notes in Computer Science, vol 4248. Berlin,    Heidelberg: Springer. DOI: <a href="https://dx.doi.org/10.1007/11891451_3" target="_blank">10.1007/11891451_3</a>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005045&pid=S1646-9895201900020000800009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Gupta, S., &amp; Singhal, R. (2013). Fundamentals and Characteristics of an    Expert System. International Journal on Recent and Innovation Trends in Computing    and Communication, 1(3), 110-113.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005046&pid=S1646-9895201900020000800010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>ISO 25010 (2011). ISO/IEC 25010:2011 - Systems and software engineering - Systems    and software Quality Requirements and Evaluation (SQuaRE) - System and software    quality models. International Organization for Standardization/ International    Electrotechnical Commission.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005048&pid=S1646-9895201900020000800011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <p>ISO 42010 (2011). ISO/IEC/IEEE 42010: International Organization for Standardization    and International Electrotechnical Commission. Systems and software engineering    - architecture description. Edition 01-12-2011.</p>     <!-- ref --><p>Java (2019). Oracle Corporation. Java. Recuperado de: <a href="http://www.oracle.com/technetwork/java/index.html" target="_blank">www.oracle.com/technetwork/java/index.html</a>.    Accedido: 22-02-2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005051&pid=S1646-9895201900020000800013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<p>Johnsson, D., Deogun, D., &amp; Sawano, D. (2019). Secure by Design. Shelter    Island, NY: Manning Publications</p>     <!-- ref --><p>Kolodner, J. (1992). An introduction to case-based reasoning. Artificial Intelligence    Review, 6, 3-34. DOI: <a href="https://dx.doi.org/10.1007/BF00155578" target="_blank">10.1007/BF00155578</a>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005054&pid=S1646-9895201900020000800015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>MacGraw, G. (2006). Software security: building security in. Boston: Addison-Wesley.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005055&pid=S1646-9895201900020000800016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->  </p>     <p>Mejía, J., &amp; Muñoz, M. (2017). Tendencias en Tecnologías de Información    y Comunicación. RISTI - Revista Ibérica de Sistemas y Tecnología de información,    (21), 51-66. Doi: <a href="https://dx.doi.org/10.17013/risti.21.51-66" target="_blank">10.17013/risti.21.51-66</a>.</p>     <!-- ref --><p>Mohammad, A., Alqatawna, J., &amp; Abushariah, M. (2017). Secure Software Engineering:    Evaluation of Emerging Trends. 8th International Conference on Information Technology    (ICIT), 814-818, DOI <a href="https://dx.doi.org/10.1109/ICITECH.2017.8079952" target="_blank">10.1109/ICITECH.2017.8079952</a>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005058&pid=S1646-9895201900020000800018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>OWASP (2019). The OWASP Foundation. Recuperado de: <a href="http://www.owasp.org/" target="_blank">www.owasp.org</a>.    Accedido: 02/2019&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005059&pid=S1646-9895201900020000800019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>PROMISE (2019). PROMISE Software Engineering Repository. Recuperado de: <a href="promise.site.uottawa.ca/SERepository/" target="_blank">promise.site.uottawa.ca/SERepository/</a>    . Accedido: 05/2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005060&pid=S1646-9895201900020000800020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Rani C., &amp; Goel, S. (2015). CSAAES: An expert system for cyber security    attack awareness. In <i>International Conference on Computing, Communication    &amp; Automation</i>, Noida, 2015, pp. 242-245. DOI: <a href="https://dx.doi.org/10.1109/CCAA.2015.7148381" target="_blank">10.1109/CCAA.2015.7148381</a>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005062&pid=S1646-9895201900020000800021&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Rodríguez, G., Díaz-Pace, J. A., &amp; Soria, A. (2018). A case-based reasoning    approach to reuse quality-driven designs in service-oriented architectures.    Information Systems, 77(2018), 167-189. DOI: <a href="https://dx.doi.org/10.1016/j.is.2018.06.003" target="_blank">10.1016/j.is.2018.06.003</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005063&pid=S1646-9895201900020000800022&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>SAMM (2019). Software Assurance Maturity Model. Recuperado de: <a href="http:\\www.owasp.org/index.php/OWASP_SAMM_Project" target="_blank">www.owasp.org/index.php/OWASP_SAMM_Project</a>.    Accedido: 22-02-2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005065&pid=S1646-9895201900020000800023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>SDL (2019). Microsoft Security Development Lifecycle, Microsoft. Recuperado    de: <a href="http:\\www.microsoft.com/en-us/sdl" target="_blank">www.microsoft.com/en-us/sdl</a>.    Accedido: 22-02-2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005067&pid=S1646-9895201900020000800024&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>SWT (2019). Eclipse Foundation. Standard widget toolkit. Recuperado de: <a href="http:\\www.eclipse.org/swt" target="_blank">www.eclipse.org/swt</a>.    Accedido: 22-02-2019.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005069&pid=S1646-9895201900020000800025&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Watson, I., &amp; Marir, F. (1994). Case-based reasoning: A review. The Knowledge    Engineering Review, 9(4), 327-354.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1005071&pid=S1646-9895201900020000800026&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     ]]></body>
<body><![CDATA[<p>Winkler, I. &amp; Treu Gomes, A. (2017). Chapter 7 - Adversary Infrastructure.    In I. Winkler &amp; A. Treu Gomes (Eds.). <i>Advanced Persistent Security</i>,    (pp. 67 - 79). Rockland, MA: Syngress. DOI: <a href="https://dx.doi.org/10.1016/B978-0-12-809316-0.00007-5" target="_blank">10.1016/B978-0-12-809316-0.00007-5</a>  </p>     <p>Zambrano, A., Guarda, T., Valenzuela, E.V.H., &amp; Quiña, G. N. (2019). Técnicas    de mitigación para principales vulnerabilidades de seguridad en aplicaciones    web. RISTI - Revista Iberica de Sistemas e Tecnologias de Informacao, (E17),    299-308.</p>     <p>&nbsp;</p>     <p>Recebido/Submission: 09/01/2019 </p>     <p>Aceitação/Acceptance: 23/03/2019</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aamodt]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Plaza]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Case-based reasoning: Foundational issues, methodological variations, and system approaches]]></article-title>
<source><![CDATA[AI Communications. IOS Press]]></source>
<year>1994</year>
<volume>7(1):39-59</volume>
<page-range>1994</page-range></nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Clements]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Kazman]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Architecture in Practice]]></source>
<year>2013</year>
<edition>3</edition>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Carignano]]></surname>
<given-names><![CDATA[M.C.]]></given-names>
</name>
<name>
<surname><![CDATA[Gonnet]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Leone]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[RADS: una herramienta para reutilizar estrategias en diseños de arquitecturas de software]]></article-title>
<source><![CDATA[Simposio Argentino de Ingeniería de Software]]></source>
<year>2016</year>
<page-range>147-158</page-range></nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Clements]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Bachmann]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Garlan]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Ivers]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Little]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Merson]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Nord]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Stafford]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Documenting Software Architectures: Views and Beyond]]></source>
<year>2010</year>
<edition>2</edition>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<collab>CVE</collab>
<source><![CDATA[Common Vulnerabilities and Exposures]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Hu]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Chen]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A framework of cooperating intrusion detection based on clustering analysis and expert system]]></article-title>
<source><![CDATA[Proceedings of the 3rd international conference on Information security]]></source>
<year>2004</year>
<page-range>150- 154</page-range><publisher-loc><![CDATA[New York ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[De Win]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
<name>
<surname><![CDATA[Scandariato]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Buyens]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Grégoire]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Joosen]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On the secure software development process: CLASP, SDL and Touchpoints compared]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>2009</year>
<volume>51</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>1152-1171</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="book">
<collab>Eclipse</collab>
<source><![CDATA[Eclipse Foundation]]></source>
<year>2019</year>
<publisher-name><![CDATA[Eclipse]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gomes]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Leitão]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A tool for management and reuse of software design knowledge]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Staab]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Svátek]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[Managing Knowledge in a World of Networks: EKAW 2006. Lecture Notes in Computer Science]]></source>
<year>2006</year>
<volume>4248</volume>
<publisher-loc><![CDATA[BerlinHeidelberg ]]></publisher-loc>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gupta]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Singhal]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Fundamentals and Characteristics of an Expert System]]></article-title>
<source><![CDATA[International Journal on Recent and Innovation Trends in Computing and Communication]]></source>
<year>2013</year>
<volume>1</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>110-113</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<collab>ISO 25010</collab>
<source><![CDATA[ISO/IEC 25010.2011 - Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models]]></source>
<year>2011</year>
<publisher-name><![CDATA[International Organization for Standardization/ International Electrotechnical Commission]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="book">
<collab>ISO 42010</collab>
<source><![CDATA[ISO/IEC/IEEE 42010: International Organization for Standardization and International Electrotechnical Commission. Systems and software engineering - architecture description]]></source>
<year>2011</year>
<publisher-name><![CDATA[ISO]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<collab>Java</collab>
<source><![CDATA[Oracle Corporation: Java]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Johnsson]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Deogun]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Sawano]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Secure by Design]]></source>
<year>2019</year>
<publisher-loc><![CDATA[Shelter Island ]]></publisher-loc>
<publisher-name><![CDATA[Manning Publications]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kolodner]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An introduction to case-based reasoning]]></article-title>
<source><![CDATA[Artificial Intelligence Review]]></source>
<year>1992</year>
<volume>6</volume>
<page-range>3-34</page-range></nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MacGraw]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<source><![CDATA[Software security: building security in]]></source>
<year>2006</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mejía]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Muñoz]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Tendencias en Tecnologías de Información y Comunicación]]></article-title>
<source><![CDATA[RISTI - Revista Ibérica de Sistemas y Tecnología de información]]></source>
<year>2017</year>
<volume>0</volume>
<numero>21</numero>
<issue>21</issue>
<page-range>51-66</page-range></nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mohammad]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Alqatawna]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Abushariah]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Secure Software Engineering: Evaluation of Emerging Trends]]></article-title>
<source><![CDATA[8th International Conference on Information Technology]]></source>
<year>2017</year>
<page-range>814-818</page-range></nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="">
<collab>OWASP</collab>
<source><![CDATA[The OWASP Foundation]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="">
<collab>PROMISE</collab>
<source><![CDATA[PROMISE Software Engineering Repository]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rani]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Goel]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[CSAAES: An expert system for cyber security attack awareness]]></article-title>
<source><![CDATA[International Conference on Computing, Communication & Automation]]></source>
<year>2015</year>
<month>20</month>
<day>15</day>
<page-range>242-245</page-range><publisher-loc><![CDATA[Noida ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rodríguez]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Díaz-Pace]]></surname>
<given-names><![CDATA[J. A.]]></given-names>
</name>
<name>
<surname><![CDATA[Soria]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A case-based reasoning approach to reuse quality-driven designs in service-oriented architectures]]></article-title>
<source><![CDATA[Information Systems]]></source>
<year>2018</year>
<volume>77</volume>
<numero>2018</numero>
<issue>2018</issue>
<page-range>167-189</page-range></nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="">
<collab>SAMM</collab>
<source><![CDATA[Software Assurance Maturity Model]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="book">
<collab>SDL</collab>
<source><![CDATA[Microsoft Security Development Lifecycle]]></source>
<year>2019</year>
<publisher-name><![CDATA[Microsoft]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B25">
<nlm-citation citation-type="">
<collab>SWT</collab>
<source><![CDATA[Eclipse Foundation. Standard widget toolkit]]></source>
<year>2019</year>
</nlm-citation>
</ref>
<ref id="B26">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Watson]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Marir]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Case-based reasoning: A review]]></article-title>
<source><![CDATA[The Knowledge Engineering Review]]></source>
<year>1994</year>
<volume>9</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>327-354</page-range></nlm-citation>
</ref>
<ref id="B27">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Winkler]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Treu Gomes]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Chapter 7 - Adversary Infrastructure]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Winkler]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Gomes]]></surname>
<given-names><![CDATA[A. Treu]]></given-names>
</name>
</person-group>
<source><![CDATA[Advanced Persistent Security]]></source>
<year>2017</year>
<page-range>67 - 79</page-range><publisher-loc><![CDATA[Rockland ]]></publisher-loc>
<publisher-name><![CDATA[Syngress]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B28">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zambrano]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Guarda]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Valenzuela]]></surname>
<given-names><![CDATA[E.V.H.]]></given-names>
</name>
<name>
<surname><![CDATA[Quiña]]></surname>
<given-names><![CDATA[G. N.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Técnicas de mitigación para principales vulnerabilidades de seguridad en aplicaciones web]]></article-title>
<source><![CDATA[RISTI - Revista Iberica de Sistemas e Tecnologias de Informacao]]></source>
<year>2019</year>
<volume>0</volume>
<numero>E17</numero>
<issue>E17</issue>
<page-range>299-308</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
