<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//NLM//DTD BITS Book Interchange DTD v2.0 20151225//EN" "https://jats.nlm.nih.gov/extensions/bits/2.1/BITS-book2-1.dtd">
<book book-type="chapter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="2.0" xml:lang="es">
<book-meta>
<book-id/>
<book-id book-id-type="publisher">Universidad Rey Juan Carlos</book-id>
<book-title-group>
<book-title><target target-type="page" id="pges_1"/><target target-type="page" id="pges_2"/><target target-type="page" id="pges_3"/><target target-type="page" id="pges_4"/><target target-type="page" id="pges_5"/><target target-type="page" id="pges_6"/><target target-type="page" id="pges_7"/><target target-type="page" id="pges_8"/><target target-type="page" id="pges_9"/><target target-type="page" id="pges_10"/>MEJORA DE LOS SISTEMAS DE GESTI&#x00D3;N DE IDENTIDADES FEDERADOS MEDIANTE T&#x00C9;CNICAS DE AN&#x00C1;LISIS DE COMPORTAMIENTOS</book-title>
<subtitle>DEPARTAMENTO DE CIENCIAS DE LA COMPUTACI&#x00D3;N, ARQUITECTURA DE COMPUTADORES, LENGUAJES Y SISTEMAS INFORM&#x00C1;TICOS Y ESTAD&#x00CD;STICA E INVESTIGACI&#x00D3;N OPERATIVA</subtitle>
<subtitle>Tesis doctoral</subtitle>
</book-title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>de Marina Mart&#x00ED;n</surname>
<given-names>Alejandro Garc&#x00ED;a</given-names>
</name>
<aff id="aff1">
<institution content-type="orgname">Ingeniero del Software</institution>
<institution content-type="original">Ingeniero del Software</institution>
</aff>
</contrib>
<contrib contrib-type="author">
<name name-style="western">
<surname>Beltr&#x00E1;n Pardo</surname>
<given-names>Marta</given-names>
</name>
<aff id="aff2">
<institution content-type="orgname">Doctora en Inform&#x00E1;tica</institution>
<institution content-type="original">Doctora en Inform&#x00E1;tica</institution>
</aff>
</contrib>
<contrib contrib-type="author">
<name name-style="western">
<surname>Mart&#x00ED;n de Diego</surname>
<given-names>Isaac</given-names>
</name>
<aff id="aff3">
<institution content-type="orgname">Doctor en Matem&#x00E1;ticas</institution>
<institution content-type="original">Doctor en Matem&#x00E1;ticas</institution>
</aff>
</contrib>
</contrib-group>
<pub-date>
<month>Mayo</month>
<year>2022</year>
</pub-date>
<publisher>
<publisher-name>Programa de Doctorado en Tecnolog&#x00ED;as de la Informaci&#x00F3;n y las Comunicaciones Escuela Internacional de Doctorado</publisher-name>
</publisher>
<permissions>
<license>
<license-p></license-p>
</license>
</permissions>
</book-meta>
<front-matter>
<dedication>
<book-part-meta/>
<named-book-part-body>
<disp-quote>
<p><target target-type="page" id="pges_11"/>No aprendas nada, y el pr&#x00F3;ximo mundo ser&#x00E1; igual que &#x00E9;ste, con las mismas limitaciones y pesos de plomo que superar.</p>
<attrib>Richard Bach</attrib>
</disp-quote>
<disp-quote>
<p>La ciencia se compone de errores, que a su vez son pasos hacia la verdad</p>
<attrib>Julio Verne<target target-type="page" id="pges_12"/></attrib>
</disp-quote>
</named-book-part-body>
</dedication>
<ack>
<title><target target-type="page" id="pges_13"/>Agradecimientos</title>
<p>En primer lugar, me gustar&#x00ED;a agradecer a mis directores de tesis, Marta e Isaac, sin vuestra confianza este trabajo no hubiese sido posible. Hab&#x00E9;is sido fuentes de inspiraci&#x00F3;n y me hab&#x00E9;is guiado de forma incre&#x00ED;ble. Durante este tiempo he aprendido much&#x00ED;simo a vuestro lado, por eso entre otras tantas cosas, os estoy muy agradecido.</p>
<p>Me gustar&#x00ED;a agradecer a mi familia, en especial a mis padres Juan y Margarita y a mi hermano Ricardo. Gracias a vosotros he tenido la motivaci&#x00F3;n necesaria para seguir adelante y poder terminar este proceso. Ha habido momentos de frustraci&#x00F3;n y momentos de alegr&#x00ED;as pero siempre me he sentido arropado y apoyado de forma incondicional por vosotros. Hab&#x00E9;is conseguido que de otro paso en el camino.</p>
<p>Agradecer a Raquel, la motivaci&#x00F3;n, &#x00E1;nimo y apoyo sincero que me has dado siempre, y en especial durante esta tesis, es incalculable. Te estoy muy agradecido por acompa&#x00F1;arme a lo largo de este proceso. Me has sabido entender y me has ayudado a gestionar las emociones en los momentos dif&#x00ED;ciles. Por todo esto, y mucho m&#x00E1;s, te doy las gracias.</p>
<p>Agradecer tambi&#x00E9;n a todos mis compa&#x00F1;eros del Data Science Laboratory (DSLAB). Me gustar&#x00ED;a mencionar en este punto a Alberto por colaborar en las publicaciones cient&#x00ED;ficas asociadas a esta tesis y a Rub&#x00E9;n por su gran ayuda.</p>
<p>Por &#x00FA;ltimo, me gustar&#x00ED;a agradecer a todas esas personas que han estado ah&#x00ED;, incluso en ocasiones d&#x00E1;ndome &#x00E1;nimos y fuerzas sin ser conscientes de ello. Familia, amigos y compa&#x00F1;eros much&#x00ED;simas gracias.</p>
</ack>
<toc id="fmatter1" content-type="toc">
<toc-title-group>
<title><target target-type="page" id="pges_14"/><target target-type="page" id="pges_15"/>&#x00CD;ndice general</title>
</toc-title-group>
<toc-entry content-type="chapter"><title>1. INTRODUCCI&#x00D3;N</title> <nav-pointer rid="c1">21</nav-pointer>
<toc-entry content-type="section"><title>1.1. Contexto de la investigaci&#x00F3;n</title> <nav-pointer rid="c1-s1">21</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>1.2. Hip&#x00F3;tesis de partida</title> <nav-pointer rid="c1-s2">23</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>1.3. Objetivos</title> <nav-pointer rid="c1-s3">24</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>1.4. Metodolog&#x00ED;a</title> <nav-pointer rid="c1-s4">25</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>1.5. Estructura del documento</title> <nav-pointer rid="c1-s5">26</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title>2. ESTADO DEL ARTE</title> <nav-pointer rid="c2">29</nav-pointer>
<toc-entry content-type="section"><title>2.1. Gesti&#x00F3;n de identidades y accesos</title> <nav-pointer rid="c2-s1">29</nav-pointer>
<toc-entry content-type="subsection"><title>2.1.1. Contexto y conceptos b&#x00E1;sicos</title> <nav-pointer rid="c2-s1-s1">29</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>2.1.2. Control de accesos</title> <nav-pointer rid="c2-s1-s2">33</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>2.1.3. Modelos para la gesti&#x00F3;n de identidades</title> <nav-pointer rid="c2-s1-s3">36</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>2.1.4. Est&#x00E1;ndares federados para la gesti&#x00F3;n de identidades</title> <nav-pointer rid="c2-s1-s4">37</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>2.1.5. Amenazas y soluciones actuales en la federaci&#x00F3;n de identidades</title> <nav-pointer rid="c2-s1-s5">47</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="section"><title>2.2. An&#x00E1;lisis de comportamientos</title> <nav-pointer rid="c2-s2">49</nav-pointer>
<toc-entry content-type="subsection"><title>2.2.1. An&#x00E1;lisis de comportamientos para el control de accesos</title> <nav-pointer rid="c2-s2-s1">52</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>2.2.2. Fuentes de informaci&#x00F3;n espec&#x00ED;ficas y su combinaci&#x00F3;n</title> <nav-pointer rid="c2-s2-s2">55</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="section"><title>2.3. Limitaciones de los trabajos previos</title> <nav-pointer rid="c2-s3">59</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title>3. FLUJO DE TRABAJO PARA LA INTEGRACI&#x00D3;N EN LOS EST&#x00C1;NDARES FEDERADOS</title> <nav-pointer rid="c3">63</nav-pointer>
<toc-entry content-type="section"><title>3.1. Arquitectura y premisas</title> <nav-pointer rid="c3-s1">64</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>3.2. Casos de uso</title> <nav-pointer rid="c3-s2">65</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>3.3. Flujo de trabajo</title> <nav-pointer rid="c3-s3">66</nav-pointer>
<toc-entry content-type="subsection"><title>3.3.1. Selecci&#x00F3;n de huella digital</title> <nav-pointer rid="c3-s3-s1">69</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>3.3.2. Generaci&#x00F3;n de la huella digital</title> <nav-pointer rid="c3-s3-s2">73</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>3.3.3. Modelado</title> <nav-pointer rid="c3-s3-s3">74</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>3.3.4. Evaluaci&#x00F3;n</title> <nav-pointer rid="c3-s3-s4">77</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>3.3.5. Integraci&#x00F3;n en los sistemas de gesti&#x00F3;n de identidades federados</title> <nav-pointer rid="c3-s3-s5">80</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>3.3.6. Resumen del flujo de trabajo</title> <nav-pointer rid="c3-s3-s6">81</nav-pointer></toc-entry></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title>4. M&#x00C9;TODO DE COMBINACI&#x00D3;N DE INFORMACI&#x00D3;N DE COMPORTAMIENTOS</title> <nav-pointer rid="c4">83</nav-pointer>
<toc-entry content-type="section"><title>4.1. Representaci&#x00F3;n de la informaci&#x00F3;n</title> <nav-pointer rid="c4-s1">85</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>4.2. Generaci&#x00F3;n de la matriz de distancias</title> <nav-pointer rid="c4-s2">87</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>4.3. Extracci&#x00F3;n de los n&#x00FA;cleos de comportamiento</title> <nav-pointer rid="c4-s3">89</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>4.4. Modelo de riesgos</title> <nav-pointer rid="c4-s4">91</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>4.5. Selecci&#x00F3;n de par&#x00E1;metros</title> <nav-pointer rid="c4-s5">95</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title><target target-type="page" id="pges_16"/>5. EVALUACI&#x00D3;N Y VALIDACI&#x00D3;N DE LA PROPUESTA</title> <nav-pointer rid="c5">99</nav-pointer>
<toc-entry content-type="section"><title>5.1. Evaluaci&#x00F3;n del flujo de trabajo</title> <nav-pointer rid="c5-s1">99</nav-pointer>
<toc-entry content-type="subsection"><title>5.1.1. Desarrollo del entorno de trabajo y conjunto de datos UEBA</title> <nav-pointer rid="c5-s1-s1">99</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.1.2. Selecci&#x00F3;n de la huella digital en el conjunto de datos UEBA</title> <nav-pointer rid="c5-s1-s2">100</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.1.3. Generaci&#x00F3;n de la huella digital en el conjunto de datos UEBA</title> <nav-pointer rid="c5-s1-s3">101</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.1.4. Modelado y evaluaci&#x00F3;n</title> <nav-pointer rid="c5-s1-s4">102</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.1.5. Integraci&#x00F3;n en los est&#x00E1;ndares de federaci&#x00F3;n de identidades</title> <nav-pointer rid="c5-s1-s5">110</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.1.6. Eficiencia y an&#x00E1;lisis de seguridad</title> <nav-pointer rid="c5-s1-s6">113</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="section"><title>5.2. Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n</title> <nav-pointer rid="c5-s2">115</nav-pointer>
<toc-entry content-type="subsection"><title>5.2.1. Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA</title> <nav-pointer rid="c5-s2-s1">115</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>5.2.2. Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos TWOS</title> <nav-pointer rid="c5-s2-s2">119</nav-pointer></toc-entry></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title>6. CONCLUSIONES</title> <nav-pointer rid="c6">127</nav-pointer>
<toc-entry content-type="section"><title>6.1. Conclusiones generales</title> <nav-pointer rid="c6-s1">127</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>6.2. Conclusiones espec&#x00ED;ficas</title> <nav-pointer rid="c6-s2">127</nav-pointer>
<toc-entry content-type="subsection"><title>6.2.1. Conclusiones del flujo de trabajo</title> <nav-pointer rid="c6-s2-s1">127</nav-pointer></toc-entry>
<toc-entry content-type="subsection"><title>6.2.2. Conclusiones del m&#x00E9;todo de combinaci&#x00F3;n de informaci&#x00F3;n de comportamientos</title> <nav-pointer rid="c6-s2-s2">128</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="section"><title>6.3. L&#x00ED;neas de investigaci&#x00F3;n futuras</title> <nav-pointer rid="c6-s3">129</nav-pointer></toc-entry>
<toc-entry content-type="section"><title>6.4. Principales contribuciones y publicaciones derivadas de la tesis</title> <nav-pointer rid="c6-s4">131</nav-pointer></toc-entry></toc-entry>
<toc-entry content-type="chapter"><title>A. GLOSARIO DE ACR&#x00D3;NIMOS</title> <nav-pointer rid="a1">133</nav-pointer></toc-entry>
<toc-entry content-type="chapter"><title>BIBLIOGRAF&#x00CD;A</title> <nav-pointer rid="bib1">137</nav-pointer></toc-entry>
</toc>
<front-matter-part book-part-type="frontmatter">
<book-part-meta>
<title-group>
<title><target target-type="page" id="pges_17"/>&#x00CD;NDICE DE FIGURAS</title>
</title-group>
</book-part-meta>
<named-book-part-body>
<list list-type="bullet'">
<list-item><label>2.1</label><p>Esquema de los procesos de IAAA <xref ref-type="fig" rid="fig-2-1">31</xref></p></list-item>
<list-item><label>2.2</label><p>Almacenamiento en directorios. Modelo HRU <xref ref-type="fig" rid="fig-2-2">34</xref></p></list-item>
<list-item><label>2.3</label><p>Almacenamiento en listas de control de accesos <xref ref-type="fig" rid="fig-2-3">35</xref></p></list-item>
<list-item><label>2.4</label><p>Modelo Silo para la gesti&#x00F3;n de identidades <xref ref-type="fig" rid="fig-2-4">37</xref></p></list-item>
<list-item><label>2.5</label><p>Modelo centralizado para la gesti&#x00F3;n de identidades <xref ref-type="fig" rid="fig-2-5">38</xref></p></list-item>
<list-item><label>2.6</label><p>Modelo federado para la gesti&#x00F3;n de identidades <xref ref-type="fig" rid="fig-2-6">39</xref></p></list-item>
<list-item><label>2.7</label><p>Flujo de autorizaci&#x00F3;n de OAuth <xref ref-type="fig" rid="fig-2-7">42</xref></p></list-item>
<list-item><label>2.8</label><p>M&#x00F3;dulos de OpenID Connect <xref ref-type="fig" rid="fig-2-8">43</xref></p></list-item>
<list-item><label>2.9</label><p>Flujo <italic>Authorization Code</italic> de OpenID Connect <xref ref-type="fig" rid="fig-2-9">45</xref></p></list-item>
<list-item><label>2.10</label><p>Flujo <italic>Implicit</italic> de OpenID Connect <xref ref-type="fig" rid="fig-2-10">46</xref></p></list-item>
<list-item><label>2.11</label><p>Dominios y &#x00E1;reas espec&#x00ED;ficas de aplicaci&#x00F3;n de los trabajos de an&#x00E1;lisis de comportamiento <xref ref-type="fig" rid="fig-2-11">51</xref></p></list-item>
<list-item><label>3.1</label><p>Visi&#x00F3;n global de la integraci&#x00F3;n del an&#x00E1;lisis de comportamiento en un est&#x00E1;ndar federado <xref ref-type="fig" rid="fig-3-1">67</xref></p></list-item>
<list-item><label>3.2</label><p>Flujo de trabajo para la integraci&#x00F3;n del an&#x00E1;lisis de comportamiento en un est&#x00E1;ndar federado <xref ref-type="fig" rid="fig-3-2">68</xref></p></list-item>
<list-item><label>3.3</label><p>Tipos de atributos de la huella digital <xref ref-type="fig" rid="fig-3-3">71</xref></p></list-item>
<list-item><label>3.4</label><p>Matriz de confusi&#x00F3;n <xref ref-type="fig" rid="fig-3-4">77</xref></p></list-item>
<list-item><label>3.5</label><p>Representaci&#x00F3;n del Equal Error rate (EER) en funci&#x00F3;n del False Acceptance Rate (FAR) y el False Rejection Rate (FRR) <xref ref-type="fig" rid="fig-3-5">79</xref></p></list-item>
<list-item><label>4.1</label><p>M&#x00E9;todo propuesto para combinar informaci&#x00F3;n de comportamientos <xref ref-type="fig" rid="fig-4-1">84</xref></p></list-item>
<list-item><label>4.2</label><p>Discretizaci&#x00F3;n de una serie temporal usando SAX <xref ref-type="fig" rid="fig-4-2">84</xref></p></list-item>
<list-item><label>4.3</label><p>Proceso de SAX multivariante utilizando RTEs para multiples fuentes de informaci&#x00F3;n <xref ref-type="fig" rid="fig-4-3">87</xref></p></list-item>
<list-item><label>4.4</label><p>Alineamiento global y local de secuencias de ADN <xref ref-type="fig" rid="fig-4-4">88</xref></p></list-item>
<list-item><label>4.5</label><p>Ejemplo del funcionamiento del algoritmo de DBSCAN <xref ref-type="fig" rid="fig-4-5">90</xref></p></list-item>
<list-item><label>4.6</label><p>Representaci&#x00F3;n de los n&#x00FA;cleos de comportamiento de un usuario espec&#x00ED;fico utilizando escalado multidimensional <xref ref-type="fig" rid="fig-4-6">91</xref></p></list-item>
<list-item><label>4.7</label><p>Valores del <italic>buffer</italic> de riesgo para un usuario concreto <xref ref-type="fig" rid="fig-4-7">92</xref></p></list-item>
<list-item><label>4.8</label><p>Tipos de umbrales aplicados sobre el <italic>buffer</italic> de riesgo utilizando MME <xref ref-type="fig" rid="fig-4-8">94</xref></p></list-item>
<list-item><label>4.9</label><p>Secuencia de predicciones en funci&#x00F3;n de los par&#x00E1;metros del m&#x00E9;todo <xref ref-type="fig" rid="fig-4-9">95</xref></p></list-item>
<list-item><label>5.1</label><p>Valores del <italic>buffer</italic> utilizando las din&#x00E1;micas de teclado para un usuario concreto <xref ref-type="fig" rid="fig-5-1">107</xref></p></list-item>
<list-item><label>5.2</label><p>Valores del <italic>buffer</italic> utilizando las din&#x00E1;micas de rat&#x00F3;n para un usuario concreto <xref ref-type="fig" rid="fig-5-2">109</xref></p></list-item>
<list-item><label>5.3</label><p>Modificaciones necesarias en el flujo de OpenId Connect para incorporar los casos de uso del flujo de trabajo propuesto <xref ref-type="fig" rid="fig-5-3">112</xref></p></list-item>
</list>
</named-book-part-body>
</front-matter-part>
<front-matter-part book-part-type="frontmatter">
<book-part-meta>
<title-group>
<title><target target-type="page" id="pges_18"/>&#x00CD;NDICE DE TABLAS</title>
</title-group>
</book-part-meta>
<named-book-part-body>
<list list-type="bullet'">
<list-item><label>2.1</label><p>Resumen de los conceptos b&#x00E1;sicos relacionados con la gesti&#x00F3;n de identidades y accesos <xref ref-type="tab" rid="c2-tab1">33</xref></p></list-item>
<list-item><label>2.2</label><p>Comparativa de flujos de informaci&#x00F3;n en OIDC <xref ref-type="tab" rid="c2-tab2">47</xref></p></list-item>
<list-item><label>2.3</label><p>Trabajos de la literatura sobre amenazas y mejoras de los esquemas de gesti&#x00F3;n de identidades federados <xref ref-type="tab" rid="c2-tab3">50</xref></p></list-item>
<list-item><label>2.4</label><p>Comparaci&#x00F3;n de trabajos previos relacionados con el an&#x00E1;lisis de comportamiento. <xref ref-type="tab" rid="c2-tab4">60</xref></p></list-item>
<list-item><label>3.1</label><p>Resumen del flujo de trabajo propuesto <xref ref-type="tab" rid="c3-tab1">82</xref></p></list-item>
<list-item><label>4.1</label><p>Resumen de los par&#x00E1;metros e hiperparametros del m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n de comportamientos <xref ref-type="tab" rid="c4-tab1">97</xref></p></list-item>
<list-item><label>5.1</label><p>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan para las din&#x00E1;micas de teclado agrupando por tecla pulsada <xref ref-type="tab" rid="c5-tab1">105</xref></p></list-item>
<list-item><label>5.2</label><p>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado <xref ref-type="tab" rid="c5-tab2">105</xref></p></list-item>
<list-item><label>5.3</label><p>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado divididas en sesiones utilizando en el conjunto de test <xref ref-type="tab" rid="c5-tab3">107</xref></p></list-item>
<list-item><label>5.4</label><p>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado divididas en sesiones utilizando en el conjunto de validaci&#x00F3;n <xref ref-type="tab" rid="c5-tab4">108</xref></p></list-item>
<list-item><label>5.5</label><p>Resultados del modelo de clasificaci&#x00F3;n OC-SVM para las din&#x00E1;micas de rat&#x00F3;n de forma independiente <xref ref-type="tab" rid="c5-tab5">108</xref></p></list-item>
<list-item><label>5.6</label><p>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n <xref ref-type="tab" rid="c5-tab6">109</xref></p></list-item>
<list-item><label>5.7</label><p>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n divididas en sesiones utilizando en el conjunto de test. <xref ref-type="tab" rid="c5-tab7">110</xref></p></list-item>
<list-item><label>5.8</label><p>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n divididas en sesiones utilizando en el conjunto de validaci&#x00F3;n <xref ref-type="tab" rid="c5-tab8">111</xref></p></list-item>
<list-item><label>5.9</label><p>Resultados para el ataque de robo de credenciales en el caso de uso 2 <xref ref-type="tab" rid="c5-tab9">113</xref></p></list-item>
<list-item><label>5.10</label><p>Resultados para el ataque de secuestro de sesi&#x00F3;n en el caso de uso 2 <xref ref-type="tab" rid="c5-tab10">114</xref></p></list-item>
<list-item><label>5.11</label><p>Resultados obtenidos para las din&#x00E1;micas de teclado utilizando el m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA <xref ref-type="tab" rid="c5-tab11">117</xref></p></list-item>
<list-item><label>5.12</label><p><target target-type="page" id="pges_19"/>Resultados obtenidos para las din&#x00E1;micas de rat&#x00F3;n utilizando el m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA <xref ref-type="tab" rid="c5-tab12">118</xref></p></list-item>
<list-item><label>5.13</label><p>Resultados obtenidos para la combinaci&#x00F3;n de informaci&#x00F3;n en el conjunto de datos UEBA <xref ref-type="tab" rid="c5-tab13">120</xref></p></list-item>
<list-item><label>5.14</label><p>Resultados obtenidos para las din&#x00E1;micas de teclado utilizando el m&#x00E9;todo de combinaci&#x00F3;n en TWOS <xref ref-type="tab" rid="c5-tab14">121</xref></p></list-item>
<list-item><label>5.15</label><p>Resultados obtenidos para las din&#x00E1;micas de rat&#x00F3;n utilizando el m&#x00E9;todo de combinaci&#x00F3;n en TWOS <xref ref-type="tab" rid="c5-tab15">122</xref></p></list-item>
<list-item><label>5.16</label><p>Resultados obtenidos para la combinaci&#x00F3;n de informaci&#x00F3;n en TWOS <xref ref-type="tab" rid="c5-tab16">123</xref></p></list-item>
<list-item><label>5.17</label><p>Comparaci&#x00F3;n de los resultados obtenidos con otras propuestas y algoritmos del estado del arte <xref ref-type="tab" rid="c5-tab17">126</xref></p></list-item>
</list>
</named-book-part-body>
</front-matter-part>
</front-matter>
<book-body>
<book-part id="c1" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>CAP&#x00CD;TULO 1</label>
<title><target target-type="page" id="pges_20"/><target target-type="page" id="pges_21"/>INTRODUCCI&#x00D3;N</title>
</title-group>
</book-part-meta>
<body>
<sec id="c1-s1">
<label><bold>1.1.</bold></label>
<title><bold>Contexto de la investigaci&#x00F3;n</bold></title>
<p>La necesidad de proteger los activos y recursos frente a accesos indebidos de usuario no autorizados siempre ha existido. Del mismo modo que en un entorno f&#x00ED;sico como un aeropuerto, se necesita controlar que personas est&#x00E1;n autorizadas a salir o entrar de un pa&#x00ED;s, en un sistema de informaci&#x00F3;n existe esta misma necesidad de controlar el acceso a sus recursos.</p>
<p>En el &#x00E1;mbito digital, la disciplina que se encarga de gestionar las diferentes identidades de los usuarios y la informaci&#x00F3;n relacionada con las mismas, con el objetivo de controlar el acceso a los diferentes recursos, servicios o aplicaciones, se denomina gesti&#x00F3;n de identidades y accesos [<xref ref-type="bibr" rid="CIT001">1</xref>]. Esta disciplina trata de garantizar la seguridad de los usuarios y de los recursos, servicios o aplicaciones, ya sea de manera individual o aislada, o al mismo tiempo en multitud de ellos alojados en diversos dominios.</p>
<p>Los primeros sistemas de informaci&#x00F3;n estaban pensados para ser utilizados por un &#x00FA;nico usuario. De esta forma, el usuario encargado de utilizar el sistema deb&#x00ED;a autenticarse con el objetivo de validar sus credenciales y, por lo tanto, pasar a comprobar los permisos y privilegios disponibles para interactuar con dicho sistema. En otras palabras, dicho usuario deb&#x00ED;a autenticarse en el sistema con el objetivo de poder autorizar las acciones que quer&#x00ED;a realizar en dicho sistema de informaci&#x00F3;n. Con el paso del tiempo, se empezaron a implantar los sistemas multiusuario, en los que diversos usuarios interact&#x00FA;an simult&#x00E1;neamente con el mismo sistema y pueden estar autorizados a realizar diferentes operaciones dependiendo de su nivel de privilegios. De esta forma, los recursos computacionales han de repartirse en tiempo y espacio entre todos los usuarios de forma totalmente transparente para ellos. As&#x00ED;, los sistemas de gesti&#x00F3;n de identidades tuvieron que evolucionar para dar respuesta a los requisitos de los nuevos casos de uso.</p>
<p>Desde la llegada de Internet la gesti&#x00F3;n de identidades y accesos se fue adaptando para considerar que un n&#x00FA;mero elevado de usuarios pueden estar solicitando acceso a un mismo servicio, aplicaci&#x00F3;n o recurso alojados en servidores externos, heterog&#x00E9;neos y completamente distribuidos, haciendo que su gesti&#x00F3;n sea m&#x00E1;s complicada. Esto cambi&#x00F3; el paradigma, pues la gesti&#x00F3;n de identidades se estaba volviendo demasiado compleja debido al gran n&#x00FA;mero de identidades digitales que cada usuario ten&#x00ED;a que manejar de forma independiente, ya que para cada servicio o aplicaci&#x00F3;n se ten&#x00ED;a que generar una nueva identidad (con su cuenta y credenciales asociadas).</p>
<p><target target-type="page" id="pges_22"/>Los &#x00FA;ltimos mecanismos desarrollados e implantados para solventar la gesti&#x00F3;n de identidades y accesos se basan en el concepto de federaci&#x00F3;n. Estos mecanismos se basan en est&#x00E1;ndares y protocolos que permiten que un mismo usuario pueda utilizar una misma identidad digital para realizar cualquier flujo de Identificaci&#x00F3;n, Autenticaci&#x00F3;n, Autorizaci&#x00F3;n y Auditoria (IAAA) a lo largo de multitud de servicios, recursos o aplicaciones, alojados en diversos dominios, utilizando para ello el mismo proveedor de identidades de confianza. Esto se consigue porque los proveedores de servicios y aplicaciones delegan los procesos de IAAA en el proveedor de identidades. Sin embargo, esto no quiere decir que los recursos, servicios o aplicaciones deleguen totalmente la seguridad de los usuarios en manos de los proveedores de identidades y, por lo tanto, tambi&#x00E9;n han de asumir su responsabilidad a la hora de proteger a los usuarios.</p>
<p>&#x00BF;De qu&#x00E9; se debe proteger a los usuarios en este contexto? Principalmente de sufrir una suplantaci&#x00F3;n de identidad, es decir, de situaciones en las que un tercero malicioso pueda actuar en su nombre (suplantando su identidad) para actuar con un recurso, servicio o aplicaci&#x00F3;n. Este tipo de suplantaciones suelen producirse cuando las credenciales del usuario se ven comprometidas (por ejemplo, por un ataque de <italic>phishing</italic> o por una brecha de datos) o cuando su sesi&#x00F3;n se secuestra (por ejemplo, por un ataque de tipo <italic>TCP hijacking</italic> o por uno de <italic>Cross Site Scripting</italic> o <italic>Cross Site Request Foegery</italic>).</p>
<p>Para detectar o incluso evitar este tipo de ataques, esta tesis doctoral pretende explorar la aplicaci&#x00F3;n de t&#x00E9;cnicas <target target-type="page" id="pges_23"/>de an&#x00E1;lisis de comportamientos. Los fundamentos del an&#x00E1;lisis de comportamientos (en ingl&#x00E9;s, <italic>behavioral analysis</italic>) fueron introducidos por primera vez en 1953 [<xref ref-type="bibr" rid="CIT002">2</xref>]. En aquel entonces esta rama estaba muy ligada al campo de la psicolog&#x00ED;a y se basaba principalmente en el an&#x00E1;lisis del comportamiento humano con el objetivo de poder aportar un beneficio concreto. Sus fundamentos principales fueron determinados posteriormente en 1960 [<xref ref-type="bibr" rid="CIT003">3</xref>].</p>
<p>Hoy en d&#x00ED;a, el an&#x00E1;lisis de comportamiento se denomina anal&#x00ED;tica del comportamiento (en ingl&#x00E9;s, <italic>behavioral analytics</italic>). La anal&#x00ED;tica del comportamiento se define como la rama cient&#x00ED;fica que se centra en modelar el comportamiento de una entidad (usuario, animales, sensores, etc) para poder analizar y entender las interacciones que realiza en un sistema de informaci&#x00F3;n, con el objetivo de obtener un beneficio de negocio [<xref ref-type="bibr" rid="CIT004">4</xref>]. De esta forma, se hace uso del aprendizaje m&#x00E1;quina para modelar y predecir los comportamientos pasados, presentes y futuros de las entidades.</p>
<p>Las t&#x00E9;cnicas del an&#x00E1;lisis de comportamiento se pueden categorizar en funci&#x00F3;n del tipo de entidad que se considera como objeto de estudio. De esta forma, existe el an&#x00E1;lisis de comportamiento animal [<xref ref-type="bibr" rid="CIT005">5</xref>], an&#x00E1;lisis de comportamiento de sensores [<xref ref-type="bibr" rid="CIT006">6</xref>] y el an&#x00E1;lisis de comportamiento humano [<xref ref-type="bibr" rid="CIT007">7</xref>]. El an&#x00E1;lisis de comportamiento animal se basa en utilizar sensores acoplados a animales para comprender, monitorizar y predecir determinadas actividades de inter&#x00E9;s, por ejemplo, en una granja animal se utilizan collares inteligentes para monitorizar la actividad del ganado y predecir comportamientos que puedan ser indicadores de que el ganado est&#x00E1; enfermo [<xref ref-type="bibr" rid="CIT008">8</xref>]. El an&#x00E1;lisis de comportamiento de sensores se basa en modelar las medidas captadas por ciertos sensores con el objetivo de detectar anomal&#x00ED;as [<xref ref-type="bibr" rid="CIT009">9</xref>] para diversos fines como, por ejemplo, realizar procesos de autenticaci&#x00F3;n [<xref ref-type="bibr" rid="CIT010">10</xref>]. Hoy en d&#x00ED;a, estas ramas del an&#x00E1;lisis de comportamiento est&#x00E1;n evolucionando constantemente gracias a la aparici&#x00F3;n del <italic>Internet of Things</italic> (IoT) y al desarrollo y aumento del n&#x00FA;mero de sensores de bajo coste que se pueden acoplar en multitud de dispositivos del entorno f&#x00ED;sico de forma sencilla.</p>
<p>Por otro lado, el an&#x00E1;lisis de comportamiento humano se basa en modelar el comportamiento de personas o usuarios, tanto a nivel individual [<xref ref-type="bibr" rid="CIT011">11</xref>], como en colectivos o grupos sociales [<xref ref-type="bibr" rid="CIT012">12</xref>]. Cuando el dominio de aplicaci&#x00F3;n es un sistema de informaci&#x00F3;n espec&#x00ED;fico, el &#x00E1;rea cient&#x00ED;fica se denomina an&#x00E1;lisis de comportamiento de usuarios.</p>
<p>Y es en este &#x00E1;mbito en el que se centra la presente tesis doctoral, ya que las t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento deber&#x00ED;an proporcionar una gran ventaja frente a los modelos convencionales a la hora de detectar intrusiones, ataques o fraudes.</p>
</sec>
<sec id="c1-s2">
<label><bold>1.2.</bold></label>
<title><bold>Hip&#x00F3;tesis de partida</bold></title>
<p>Las especificaciones de gesti&#x00F3;n de identidades y accesos federada est&#x00E1;n siendo adoptadas muy r&#x00E1;pidamente y a gran escala para solventar los procesos de <target target-type="page" id="pges_24"/>IAAA. Algunos ejemplos claros se pueden ver en productos como Google Connect [<xref ref-type="bibr" rid="CIT013">13</xref>], Facebook Connect [<xref ref-type="bibr" rid="CIT014">14</xref>] o en el sector bancario con el desarrollo de <italic>Financial-grade API</italic> (FAPI) [<xref ref-type="bibr" rid="CIT015">15</xref>]. Sin embargo, estas especificaciones y sus implementaciones presentan vulnerabilidades de seguridad que se pueden explotar causando da&#x00F1;os irreversibles en los sistemas de informaci&#x00F3;n [<xref ref-type="bibr" rid="CIT016">16</xref>]. Las principales l&#x00ED;neas de investigaci&#x00F3;n y soluciones planteadas hasta el momento para mitigar todas estas amenazas suelen estar orientadas al enriquecimiento de las peticiones y/o <italic>tokens</italic> empleados en los est&#x00E1;ndares, a realizar una mejora en la gesti&#x00F3;n de las sesiones de usuario, a la mejora de las <italic>Application Programming Interface</italic>s (APIs) y <italic>Software Development Kit</italic>s (SDKs) ofrecidas, o al uso de criptograf&#x00ED;a a diferentes niveles [<xref ref-type="bibr" rid="CIT017">17</xref>].</p>
<p>Los modelos de an&#x00E1;lisis de comportamiento se presentan como una soluci&#x00F3;n efectiva y viable para solventar problemas relacionados con los procesos de IAAA [<xref ref-type="bibr" rid="CIT018">18</xref>]. Estas soluciones, no s&#x00F3;lo permiten automatizar ciertos procesos, sino que tambi&#x00E9;n se posicionan como una de las soluciones m&#x00E1;s eficaces a la hora de detectar brechas de seguridad. Aun siendo una buena soluci&#x00F3;n, todav&#x00ED;a existe margen de mejora en los modelos existentes, especialmente en la combinaci&#x00F3;n de informaci&#x00F3;n de m&#x00FA;ltiples fuentes de informaci&#x00F3;n heterog&#x00E9;neas.</p>
<p>Teniendo en cuenta estas dos l&#x00ED;neas, surge como principal motivaci&#x00F3;n de esta investigaci&#x00F3;n tratar de integrar los modelos de an&#x00E1;lisis de comportamientos dentro de los principales est&#x00E1;ndares de gesti&#x00F3;n de identidades federada. Esto ayudar&#x00ED;a a aumentar los niveles de seguridad proporcionados en dichos est&#x00E1;ndares, adem&#x00E1;s de evitar que los recursos, servicios o aplicaciones deleguen totalmente la seguridad en los proveedores de identidades. Por otro lado, se pueden mejorar los modelos de an&#x00E1;lisis de comportamientos existentes, con el objetivo de que sean m&#x00E1;s eficaces y puedan escalar de forma sencilla para considerar simult&#x00E1;neamente multitud de fuentes de informaci&#x00F3;n. Por todo esto, la hip&#x00F3;tesis de partida de la presente tesis doctoral es:</p>
<p><italic>Es posible mejorar los niveles de seguridad proporcionados actualmente por los principales esquemas de gesti&#x00F3;n de identidades federada integrando m&#x00E9;todos de an&#x00E1;lisis de comportamientos en los flujos de informaci&#x00F3;n. Adem&#x00E1;s, es posible mejorar la eficacia de los m&#x00E9;todos de an&#x00E1;lisis de comportamiento actuales generando modelos que puedan combinar informaci&#x00F3;n de m&#x00FA;ltiples fuentes de datos heterog&#x00E9;neas de forma efectiva.</italic></p>
</sec>
<sec id="c1-s3">
<label><bold>1.3.</bold></label>
<title><bold>Objetivos</bold></title>
<p>Los objetivos que la presente tesis doctoral pretende conseguir surgen de su hip&#x00F3;tesis de partida. Estos objetivos generales se resumen en:</p>
<list list-type="bullet">
<list-item><p>Dise&#x00F1;ar, implementar y evaluar un flujo de trabajo que defina y marque las pautas a seguir para integrar m&#x00E9;todos de an&#x00E1;lisis de comportamientos en los flujos de informaci&#x00F3;n de los esquemas de gesti&#x00F3;n de identidades federada.</p></list-item>
<list-item><p>Dise&#x00F1;ar, implementar y evaluar un m&#x00E9;todo de an&#x00E1;lisis de comportamientos que permita combinar informaci&#x00F3;n de fuentes de datos heterog&#x00E9;neas, mejorando la eficacia de los modelos del estado del arte.</p></list-item>
</list>
<p>Para conseguir el primer objetivo general se han definido los siguientes objetivos espec&#x00ED;ficos:</p>
<list list-type="order">
<list-item><p><target target-type="page" id="pges_25"/>Definir y esquematizar las principales tareas que ha de seguir una aplicaci&#x00F3;n o servicio para integrar una soluci&#x00F3;n de an&#x00E1;lisis de comportamientos en los est&#x00E1;ndares federados.</p></list-item>
<list-item><p>Definir los procesos de obtenci&#x00F3;n y generaci&#x00F3;n de huellas digitales que mejor representen el comportamiento de los usuarios de un sistema de informaci&#x00F3;n.</p></list-item>
<list-item><p>Definir y categorizar los posibles modelos de aprendizaje m&#x00E1;quina y las m&#x00E9;tricas de evaluaci&#x00F3;n de inter&#x00E9;s en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento.</p></list-item>
<list-item><p>Analizar los posibles m&#x00E9;todos de acci&#x00F3;n para integrar la informaci&#x00F3;n recogida de los modelos de an&#x00E1;lisis de comportamientos en los flujos de informaci&#x00F3;n de los est&#x00E1;ndares federados.</p></list-item>
<list-item><p>Validar y evaluar el flujo de trabajo propuesto en un entorno real.</p></list-item>
</list>
<p>Del mismo modo, para el segundo objetivo general, se definen los siguientes objetivos espec&#x00ED;ficos:</p>
<list list-type="order">
<list-item><p>Generar un conjunto de datos nuevo para aliviar la escasez y falta de datos en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento.</p></list-item>
<list-item><p>Definir e implementar una t&#x00E9;cnica para representar la informaci&#x00F3;n de comportamientos que permita combinarla a nivel de caracter&#x00ED;sticas.</p></list-item>
<list-item><p>Definir e implementar una t&#x00E9;cnica que permita mejorar la eficiencia de los modelos de an&#x00E1;lisis de comportamientos.</p></list-item>
<list-item><p>Proponer un modelo de riesgos que, considerando las t&#x00E9;cnicas anteriores, sea capaz de detectar anomal&#x00ED;as de comportamiento de forma efectiva.</p></list-item>
<list-item><p>Validar y evaluar el m&#x00E9;todo basado en estas t&#x00E9;cnicas y modelo en un entorno real.</p></list-item>
</list>
</sec>
<sec id="c1-s4">
<label><bold>1.4.</bold></label>
<title><bold>Metodolog&#x00ED;a</bold></title>
<p>La metodolog&#x00ED;a utilizada con el fin de cumplir los objetivos planteados y poder demostrar la hip&#x00F3;tesis de partida se define como sigue:</p>
<list list-type="bullet">
<list-item><p>An&#x00E1;lisis y comprensi&#x00F3;n los flujos de informaci&#x00F3;n definidos por los esquemas de gesti&#x00F3;n de identidades federados.</p></list-item>
<list-item><p><target target-type="page" id="pges_26"/>An&#x00E1;lisis de los trabajos previos en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento con el objetivo de encontrar limitaciones en los mismos cuando se aplican al dominio de inter&#x00E9;s en esta tesis.</p></list-item>
<list-item><p>An&#x00E1;lisis de los tipos de huellas digitales que se utilizan en la literatura para seleccionar los atributos m&#x00E1;s representativos y singulares.</p></list-item>
<list-item><p>An&#x00E1;lisis de las peculiaridades de los datos de din&#x00E1;micas de comportamientos para seleccionar las m&#x00E9;tricas de evaluaci&#x00F3;n que mejor se adapten y caractericen la problem&#x00E1;tica definida.</p></list-item>
<list-item><p>An&#x00E1;lisis y comprensi&#x00F3;n de las t&#x00E9;cnicas de combinaci&#x00F3;n de la informaci&#x00F3;n en el &#x00E1;mbito del aprendizaje m&#x00E1;quina.</p></list-item>
<list-item><p>Creaci&#x00F3;n de un entorno de trabajo real. Este entorno ha de implementar un sistema de gesti&#x00F3;n de identidades federado as&#x00ED; como, un servicio o aplicaci&#x00F3;n que haga uso de &#x00E9;l.</p></list-item>
<list-item><p>Recolecci&#x00F3;n de los datos que contienen din&#x00E1;micas de comportamientos.</p></list-item>
<list-item><p>Evaluaci&#x00F3;n y validaci&#x00F3;n del flujo de trabajo propuesto utilizando el entorno de trabajo. Repercusi&#x00F3;n y evaluaci&#x00F3;n de la seguridad a&#x00F1;adida que se proporciona, as&#x00ED; como de las posibles latencias a&#x00F1;adidas que supone su implantaci&#x00F3;n.</p></list-item>
<list-item><p>Evaluaci&#x00F3;n y validaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n utilizando los datos recolectados.</p></list-item>
<list-item><p>Comparativa del m&#x00E9;todo propuesto con otros trabajos y algoritmos del estado del arte.</p></list-item>
</list>
</sec>
<sec id="c1-s5">
<label><bold>1.5.</bold></label>
<title><bold>Estructura del documento</bold></title>
<p>El presente documento de tesis doctoral se compone de un total de seis cap&#x00ED;tulos. En este primer cap&#x00ED;tulo se introducen los primeros conceptos relacionados con las tem&#x00E1;ticas relacionadas con la tesis, es decir, la gesti&#x00F3;n de identidades y accesos y el an&#x00E1;lisis de comportamientos. Adem&#x00E1;s, se ha definido la hip&#x00F3;tesis de partida, los objetivos tanto generales como espec&#x00ED;ficos y la metodolog&#x00ED;a a seguir para poder demostrar la hip&#x00F3;tesis de partida. De aqu&#x00ED; en adelante, los cinco cap&#x00ED;tulos restantes se resumen en:</p>
<list list-type="bullet">
<list-item><p>En el <bold><xref ref-type="book-part" rid="c2">Cap&#x00ED;tulo 2</xref></bold> se exponen y analizan los trabajos del estado del arte relacionados con las dos l&#x00ED;neas de investigaci&#x00F3;n de inter&#x00E9;s. En primer lugar, <target target-type="page" id="pges_27"/>se abordan los conceptos fundamentales del campo del control de accesos y se recorre la evoluci&#x00F3;n de los sistemas de gesti&#x00F3;n de identidades hasta llegar a los esquemas federados. Posteriormente se profundiza en el an&#x00E1;lisis de comportamiento, partiendo de los principales dominios de aplicaci&#x00F3;n hasta llegar al &#x00E1;mbito de la ciberseguridad. A continuaci&#x00F3;n, se presentan los trabajos relacionados con el an&#x00E1;lisis de comportamientos para solventar problemas espec&#x00ED;ficos de control de accesos, mayoritariamente problemas de autenticaci&#x00F3;n utilizando fuentes de datos como el teclado y el rat&#x00F3;n. Finalmente, se detallan las limitaciones encontradas en la literatura.</p></list-item>
<list-item><p>En el <bold><xref ref-type="book-part" rid="c3">Cap&#x00ED;tulo 3</xref></bold> se propone un flujo de trabajo que permite integrar los m&#x00E9;todos de an&#x00E1;lisis de comportamiento en los principales est&#x00E1;ndares de gesti&#x00F3;n de identidades federados. En primer lugar, se exponen los casos de uso en los que el flujo de trabajo puede mejorar los niveles de seguridad proporcionados actualmente. Posteriormente, se detallan todas las tareas que componen dicho flujo de trabajo y que marcan las directrices, consideraciones y recomendaciones que se deben seguir para una correcta implantaci&#x00F3;n.</p></list-item>
<list-item><p>En el <bold><xref ref-type="book-part" rid="c4">Cap&#x00ED;tulo 4</xref></bold> se propone un m&#x00E9;todo para combinar informaci&#x00F3;n de m&#x00FA;ltiples fuentes de datos heterog&#x00E9;neas en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento. Este m&#x00E9;todo permite detectar anomal&#x00ED;as de comportamiento y, por lo tanto, detectar brechas de seguridad y mejorar los sistemas de control de accesos. De esta forma, se definen y detallan todos los algoritmos y t&#x00E9;cnicas de aprendizaje m&#x00E1;quina empleadas con el objetivo de generar un modelo robusto, con una eficacia elevada y capaz de generalizar de forma correcta.</p></list-item>
<list-item><p>En el <bold><xref ref-type="book-part" rid="c5">Cap&#x00ED;tulo 5</xref></bold> se exponen los diferentes experimentos llevados a cabo para poder evaluar y validar las propuestas definidas en los <xref ref-type="book-part" rid="c3">Cap&#x00ED;tulos 3</xref> y <xref ref-type="book-part" rid="c4">4</xref>. En primer lugar, se detalla la creaci&#x00F3;n de un entorno de trabajo. Este entorno permite la creaci&#x00F3;n de un conjunto de datos que contiene din&#x00E1;micas de comportamiento. Posteriormente, se procede a evaluar por separado tanto el flujo de trabajo, como el m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n.</p></list-item>
<list-item><p>En el <bold><xref ref-type="book-part" rid="c6">Cap&#x00ED;tulo 6</xref></bold> se exponen las conclusiones extra&#x00ED;das en la realizaci&#x00F3;n del presente trabajo. De esta forma, se analizan las principales lecciones aprendidas, el cumplimiento de los objetivos planteados y la validaci&#x00F3;n de la hip&#x00F3;tesis de partida. Adem&#x00E1;s, se proponen futuras l&#x00ED;neas de investigaci&#x00F3;n relacionadas.</p></list-item>
</list>
<p>Por &#x00FA;ltimo, en el <bold><xref ref-type="book-part" rid="a1">ap&#x00E9;ndice A</xref></bold> se encuentra el glosario de acr&#x00F3;nimos utilizados en el presente documento de tesis doctoral.</p>
</sec>
</body>
</book-part>
<book-part id="c2" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label><target target-type="page" id="pges_28"/><target target-type="page" id="pges_29"/>CAP&#x00CD;TULO 2</label>
<title>ESTADO DEL ARTE</title>
</title-group>
</book-part-meta>
<body>
<p>A lo largo de este cap&#x00ED;tulo se abordan los conceptos fundamentales y los trabajos del estado del arte relacionados con la tem&#x00E1;tica del presente trabajo de tesis doctoral. De esta forma, se exponen los conceptos clave abordados con el objetivo de sentar los cimientos de la compresi&#x00F3;n de los cap&#x00ED;tulos posteriores en el &#x00E1;mbito de la gesti&#x00F3;n de identidades y del an&#x00E1;lisis de comportamiento. Tambi&#x00E9;n, se analizan los trabajos y la literatura m&#x00E1;s relevantes en dichos &#x00E1;mbitos con el objetivo de situar el presente trabajo en un contexto y por consiguiente, poder establecer las carencias actualmente existentes y as&#x00ED; dar sentido al trabajo de investigaci&#x00F3;n aqu&#x00ED; realizado.</p>
<p>En primer lugar, se aborda la gesti&#x00F3;n de identidades. Para ello, se analiza la evoluci&#x00F3;n de la gesti&#x00F3;n de identidades, desde los primeros sistemas desarrollados, pasando por los sistemas centralizados, hasta llegar a los sistemas federados. Adem&#x00E1;s, se profundiza en los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados m&#x00E1;s populares hoy en d&#x00ED;a, OpenID [<xref ref-type="bibr" rid="CIT019">19</xref>], OAuth [<xref ref-type="bibr" rid="CIT020">20</xref>] y <italic>OpenId Connect</italic> (OIDC) [<xref ref-type="bibr" rid="CIT021">21</xref>]. Posteriormente, se exponen los principales trabajos que analizan las amenazas de estos est&#x00E1;ndares y las soluciones propuestas. En segundo lugar, se analiza la rama del aprendizaje m&#x00E1;quina denominada an&#x00E1;lisis de comportamiento. En esta secci&#x00F3;n se explican las bases del an&#x00E1;lisis de comportamiento, los dominios de aplicaci&#x00F3;n, as&#x00ED; como los trabajos m&#x00E1;s relevantes y relacionados con el presente trabajo de investigaci&#x00F3;n. Por &#x00FA;ltimo se exponen las limitaciones encontradas en la literatura.</p>
<sec id="c2-s1">
<label><bold>2.1.</bold></label>
<title><bold>Gesti&#x00F3;n de identidades y accesos</bold></title>
<p>La gesti&#x00F3;n de identidades y accesos es la rama de las ciencias de computaci&#x00F3;n que se encarga de gestionar el ciclo de vida de una identidad en un sistema de informaci&#x00F3;n, desde que se registra en dicho sistema, durante la interacci&#x00F3;n con el mismo y hasta que finalmente es eliminada [<xref ref-type="bibr" rid="CIT022">22</xref>]. Est&#x00E1; compuesto principalmente por dos ramas fundamentales: el control de accesos y la gesti&#x00F3;n de identidades. En las siguientes secciones se profundiza en dichas ramas.</p>
<sec id="c2-s1-s1">
<label><bold>2.1.1.</bold></label>
<title><bold>Contexto y conceptos b&#x00E1;sicos</bold></title>
<p>Toda persona posee una identidad f&#x00ED;sica que utiliza para identificarse frente a los controles de accesos existentes en el mundo f&#x00ED;sico como, por ejemplo, una aduana en un aeropuerto, o para autorizar una transacci&#x00F3;n econ&#x00F3;mica en una entidad bancaria, entre otros. Esta identidad f&#x00ED;sica est&#x00E1; compuesta por el conjunto de caracter&#x00ED;sticas que identifican a una persona concreta como, <target target-type="page" id="pges_30"/>por ejemplo, el nombre y apellidos (caracter&#x00ED;sticas legales), la huella dactilar (caracter&#x00ED;sticas f&#x00ED;sicas), u otros atributos menos identificativos como el documento nacional de identidad o el conjunto de propiedades a su nombre, etc. En el mundo tecnol&#x00F3;gico y de los sistemas de informaci&#x00F3;n estas identidades f&#x00ED;sicas son reemplazadas por identidades digitales. Del mismo modo, las identidades digitales se pueden definir como el conjunto de caracter&#x00ED;sticas, preferencias y reputaci&#x00F3;n que identifican a una entidad o usuario concreto dentro de un sistema de informaci&#x00F3;n [<xref ref-type="bibr" rid="CIT023">23</xref>]. El concepto de entidad en el &#x00E1;mbito digital no solo hace referencia a los usuarios, sino que tambi&#x00E9;n incluye a toda entidad que puede interactuar con dicho sistema como, por ejemplo, empresas, dispositivos o agentes software (servicios web, clientes web, etc), entre otros. De este modo, una entidad f&#x00ED;sica puede corresponderse con una o muchas identidades digitales, pero una identidad digital solo puede corresponderse con una o ninguna identidad f&#x00ED;sica (p. ej. un agente software no se corresponde con ninguna identidad f&#x00ED;sica).</p>
<p>Los sistemas de informaci&#x00F3;n alojan un conjunto de activos con los cuales las entidades interact&#x00FA;an. Estos activos son denominados recursos, y al igual que en el mundo f&#x00ED;sico, han de estar protegidos con el objetivo de garantizar que no se realicen acciones no autorizadas sobre ellos, como accesos indebidos o modificaciones que puedan corromperlos. Estos sistemas que alojan los recursos o que proveen a una entidad o usuario de alg&#x00FA;n tipo de servicio, son com&#x00FA;nmente denominados, por los est&#x00E1;ndares de gesti&#x00F3;n de identidades, como proveedores de servicio (en ingl&#x00E9;s, <italic>Service Provider</italic> [SP]). Adem&#x00E1;s, hay que hacer menci&#x00F3;n al agente encargado de gestionar el ciclo de vida de las identidades propiamente dichos, el proveedor de identidades (en ingl&#x00E9;s, <italic>Identity Provider</italic> [IdP]).</p>
<p>Las identidades digitales son la base de cualquier sistema de informaci&#x00F3;n en el que interact&#x00FA;an m&#x00FA;ltiples entidades o usuarios, pues permiten que se cumplan los tres principios b&#x00E1;sicos de la seguridad sobre los recursos alojados. Estos principios son: la confidencialidad, la integridad y la disponibilidad [<xref ref-type="bibr" rid="CIT024">24</xref>]. La confidencialidad garantiza que los datos alojados en el sistema de informaci&#x00F3;n solo pueden ser accedidos por aquellas entidades autorizadas a ello. La integridad asegura que los recursos no han sido manipulados o corrompidos por un tercero. La disponibilidad hace referencia a que los recursos se encuentren accesibles cuando son requeridos por una entidad. Adem&#x00E1;s, gracias a las identidades digitales tambi&#x00E9;n se puede hacer cumplir un cuarto principio de la seguridad, el del no repudio, el cual garantiza que una entidad concreta no puede negar haber realizado una acci&#x00F3;n concreta en caso de que verdaderamente se haya llevado a cabo.</p>
<p>El &#x00E9;xito de garantizar que los principios b&#x00E1;sicos de seguridad se cumplan recae sobre los procesos de IAAA. Estos procesos, analizados a continuaci&#x00F3;n, se pueden ver esquematizados en la <xref ref-type="fig" rid="fig-2-1">Figura 2.1</xref>.</p>
<fig id="fig-2-1">
<label>Figura 2.1:</label>
<caption><title>Esquema de los procesos de IAAA.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-1.jpg"/>
</fig>
<p><target target-type="page" id="pges_31"/>La identificaci&#x00F3;n es el proceso mediante el cual se establece un vinculo de relaci&#x00F3;n entre una entidad y su identidad, dentro del sistema de informaci&#x00F3;n, en base a los atributos proporcionas por la misma al sistema. Esta muy relacionado con el proceso de verificaci&#x00F3;n, el cual se encarga de comprobar que una entidad previamente identificada en el sistema se corresponde con otra identidad, por ejemplo, una identidad f&#x00ED;sica. Sup&#x00F3;ngase que un usuario se da de alta en una aplicaci&#x00F3;n de la agencia tributaria para poder realizar unas gestiones particulares. En este momento, el usuario al darse de alta se ha identificado en el sistema. Sin embargo, es posible que, para realizar ciertas gestiones restringidas, la agencia tributaria deba corroborar que ese usuario es quien dice ser y, por consiguiente, ha de verificar que la identidad digital con la que se ha dado de alta se corresponde con una identidad f&#x00ED;sica que posee los privilegios para poder realizar la gesti&#x00F3;n restringida. De este modo, puede solicitar al usuario que se presente en las instalaciones f&#x00ED;sicas de hacienda y presente su DNI, quedando as&#x00ED; verificada su identidad digital de manera segura.</p>
<p>La autenticaci&#x00F3;n es el proceso por el cual un sistema de informaci&#x00F3;n es capaz de verificar, en un momento determinado, que una entidad es quien dice ser. Los mecanismos de autenticaci&#x00F3;n se basan en proponer distintos retos que solo una entidad o usuario deber&#x00ED;a ser capaz de responder. Estos retos se pueden estructurar en tres categor&#x00ED;as principales de acorde a su naturaleza [<xref ref-type="bibr" rid="CIT023">23</xref>]: algo que se sabe, algo que se tiene, o algo que eres. Para algo que se sabe normalmente se suelen utilizar contrase&#x00F1;as o un c&#x00F3;digo personal (PIN), para algo que se tiene se suelen utilizar tarjetas inteligentes, <italic>tokens</italic> o un tel&#x00E9;fono inteligente y <target target-type="page" id="pges_32"/>para algo que eres se suelen utilizar rasgos biom&#x00E9;tricos como la huella dactilar. Estos retos se pueden combinar entre s&#x00ED;, aumentando as&#x00ED; la seguridad del sistema que lo incorpora. A este proceso se le denomina Autenticaci&#x00F3;n de M&#x00FA;ltiples Factores (AMF) [<xref ref-type="bibr" rid="CIT025">25</xref>]. Cabe destacar que estos retos se suelen evaluar en un &#x00FA;nico instante, al comienzo de la interacci&#x00F3;n entre el usuario y el sistema. Con el objetivo de mejorar la seguridad, estos retos se pueden extender a lo largo del tiempo, es decir, a lo largo de toda una sesi&#x00F3;n de interacciones, pudiendo as&#x00ED; verificar la identidad de una entidad tantas veces como sea necesario mientras una sesi&#x00F3;n est&#x00E9; activa. El proceso de extender la autenticaci&#x00F3;n a lo largo de toda una sesi&#x00F3;n se denomina autenticaci&#x00F3;n continua [<xref ref-type="bibr" rid="CIT026">26</xref>].</p>
<p>La autorizaci&#x00F3;n consiste en permitir o denegar el acceso a un recurso mediante la comprobaci&#x00F3;n de los privilegios y permisos que posee la entidad interesada en un sistema de informaci&#x00F3;n. La identificaci&#x00F3;n ocurre una &#x00FA;nica vez en un sistema, al comienzo de las interacciones, sin embargo, tanto la autenticaci&#x00F3;n como la autorizaci&#x00F3;n son procesos que se van a repetir m&#x00FA;ltiples veces a lo largo del ciclo de vida de una identidad digital.</p>
<p>La auditor&#x00ED;a es el proceso que se encarga de registrar todas las interacciones de las entidades con un sistema de informaci&#x00F3;n. Gracias a este proceso, todas las interacciones realizadas por las diversas entidades, quedan almacenadas y por lo tanto se pueden utilizar para analizar y verificar si los procesos de identificaci&#x00F3;n, autenticaci&#x00F3;n y autorizaci&#x00F3;n, anteriormente descritos, se han realizado de forma satisfactoria.</p>
<p>Finalmente, cabe destacar que, todo sistema de gesti&#x00F3;n de identidades y accesos ha de garantizar en la medida de lo posible, adem&#x00E1;s de los tres principios b&#x00E1;sicos de seguridad, los siguientes requisitos de privacidad: revocaci&#x00F3;n, anonimato, libre elecci&#x00F3;n, verificaci&#x00F3;n, antifraude y m&#x00ED;nima informaci&#x00F3;n. La revocaci&#x00F3;n hace referencia a que un usuario ha de poder solicitar que el sistema deje de almacenar la informaci&#x00F3;n asociada a su identidad digital. El anonimato hace referencia a que las identidades, tanto f&#x00ED;sicas como digitales, no han de poderse asociar con otras identidades para obtener informaci&#x00F3;n adicional. La libre elecci&#x00F3;n hace referencia a que cada entidad ha de poder elegir entre m&#x00FA;ltiples proveedores de identidades. La verificaci&#x00F3;n hace referencia a que un usuario ha de poder contrastar y consultar la informaci&#x00F3;n que un proveedor de identidades posee sobre su identidad. El antifraude se refiere a la imposibilidad de realizar determinadas acciones por un agente externo que ha suplantado una identidad del sistema. La m&#x00ED;nima informaci&#x00F3;n hace referencia a que el sistema no debe almacenar m&#x00E1;s informaci&#x00F3;n sobre la entidad que la estrictamente necesaria.</p>
<p>La <xref ref-type="tab" rid="c2-tab1">Tabla 2.1</xref> recopila, a modo resumen, los conceptos fundamentales abordados en esta secci&#x00F3;n con el objetivo de mejorar la comprensi&#x00F3;n global de este documento.</p>
<table-wrap id="c2-tab1">
<label>Tabla 2.1:</label>
<caption><title>Resumen de los conceptos b&#x00E1;sicos relacionados con la gesti&#x00F3;n de identidades y accesos.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">Concepto</th>
<th valign="top" align="left">Definici&#x00F3;n</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Entidad o usuario</td>
<td valign="top" align="left">Ente que interact&#x00FA;a con un sistema (usuario, empresa, agente software, etc)</td>
</tr>
<tr>
<td valign="top" align="left">Recurso</td>
<td valign="top" align="left">Activo de un sistema de informaci&#x00F3;n</td>
</tr>
<tr>
<td valign="top" align="left">Identidad digital</td>
<td valign="top" align="left">Conjunto de atributos, preferencias y reputaci&#x00F3;n que identifican a una entidad o usuario concreto dentro de un sistema de informaci&#x00F3;n</td>
</tr>
<tr>
<td valign="top" align="left">Service Provider (SP)</td>
<td valign="top" align="left">Proveedor de servicio, recursos o aplicaci&#x00F3;n.</td>
</tr>
<tr>
<td valign="top" align="left">Identity Provider (IdP)</td>
<td valign="top" align="left">Proveedor de identidades. Encargado de gestionar el ciclo de vida de una identidad digital.</td>
</tr>
<tr>
<td valign="top" align="left">Identificaci&#x00F3;n</td>
<td valign="top" align="left">Proceso mediante el cual se corrobora la identidad digital de una entidad de forma exclusiva en un sistema de informaci&#x00F3;n con el objetivo de poder validarla en las siguientes interacciones.</td>
</tr>
<tr>
<td valign="top" align="left">Autenticaci&#x00F3;n</td>
<td valign="top" align="left">Proceso de validaci&#x00F3;n una identidad digital, garantizando as&#x00ED; que una entidad es quien dice ser en un momento determinado.</td>
</tr>
<tr>
<td valign="top" align="left">Autenticaci&#x00F3;n continua</td>
<td valign="top" align="left">Extensi&#x00F3;n a lo largo de toda una sesi&#x00F3;n del proceso de autenticaci&#x00F3;n.</td>
</tr>
<tr>
<td valign="top" align="left">Autorizaci&#x00F3;n</td>
<td valign="top" align="left">Proceso de restringir el acceso de una entidad o usuario a un recurso.</td>
</tr>
<tr>
<td valign="top" align="left">Auditor&#x00ED;a</td>
<td valign="top" align="left">Proceso de registro de todas las interacciones de las entidades o usuarios con un sistema de informaci&#x00F3;n.</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="c2-s1-s2">
<label><bold>2.1.2.</bold></label>
<title><target target-type="page" id="pges_33"/><bold>Control de accesos</bold></title>
<p>El control de accesos se encarga de garantizar o restringir el acceso de las entidades y usuarios (bajo una identidad digital) a un servicio o recurso del sistema. Esto garantiza que solo los usuarios leg&#x00ED;timos puedan acceder a los recursos o servicios determinados para ello bajo unas condiciones seguras y predefinidas, neg&#x00E1;ndole dicho acceso a los usuarios no autorizados.</p>
<p><target target-type="page" id="pges_34"/>Los primeros sistemas inform&#x00E1;ticos estaban pensados para ser utilizados por un &#x00FA;nico operador o usuario. Este &#x00FA;nico usuario ten&#x00ED;a plena disponibilidad sobre los recursos del sistema. Sin embargo, debido a las necesidades intr&#x00ED;nsecas de estos sistemas, evolucionaron hasta convertirse en sistemas multiusuario.</p>
<p>En los sistemas multiusuario, los usuarios compiten por los recursos disponibles tanto en tiempo como en espacio. Debido a esta competencia, surgi&#x00F3; la necesidad de elaborar sistemas de control de accesos que restringiesen el acceso de los diferentes usuarios a los recursos, servicios o aplicaciones alojados en el sistema. De esta forma, surgieron las pol&#x00ED;ticas de acceso, las cuales recopilan un conjunto de reglas que determina los privilegios de las entidades y usuarios sobre los recursos del sistema. Por tanto, el control de accesos est&#x00E1; muy relacionado con el concepto de autorizaci&#x00F3;n.</p>
<p>Existen dos formas muy extendidas, entre otras, de almacenar estas pol&#x00ED;ticas de accesos [<xref ref-type="bibr" rid="CIT027">27</xref>]: directorios y las listas de control de accesos (en ingl&#x00E9;s, <italic>Access Control Lists</italic> [ACL]). El modelo de directorios, tambi&#x00E9;n conocido como modelo Harrison, Ruzzo y Ullman (HRU), viene definido como una matriz en la que cada fila se corresponde un un usuario del sistema y cada columna se corresponde con un recurso del sistema (ver <xref ref-type="fig" rid="fig-2-2">Figura 2.2</xref>). Como se puede observar, cada celda posee los privilegios de lectura, escritura, ejecuci&#x00F3;n y propiedad de un usuario para un recurso concreto. Por otro lado, las listas de control de accesos definen un conjunto de listas en el que cada elemento representa un usuario o un recurso (ver <xref ref-type="fig" rid="fig-2-3">Figura 2.3</xref>). De este modo, las conexiones entre dos elementos denotan que el primer elemento posee los privilegios indicados sobre el segundo elemento.</p>
<fig id="fig-2-2">
<label>Figura 2.2:</label>
<caption><title>Almacenamiento en directorios. Modelo HRU.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-2.jpg"/>
</fig>
<fig id="fig-2-3">
<label>Figura 2.3:</label>
<caption><title>Almacenamiento en listas de control de accesos.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-3.jpg"/>
</fig>
<p>Sea cual sea la forma de almacenar las pol&#x00ED;ticas de acceso, existen multitud de formas de gestionar los accesos. Estos mecanismos de gesti&#x00F3;n son denominados modelos de control de acceso. Hoy en d&#x00ED;a, existen cuatro modelos fundamentales de control de accesos:</p>
<list list-type="order">
<list-item><p>Modelos de control de accesos obligatorio (en ingl&#x00E9;s, <italic>Mandatory Access Control</italic> [MAC]): el administrador del sistema es el encargado de definir <target target-type="page" id="pges_35"/>los privilegios y permisos de los recursos y de los propios usuarios con el objetivo de determinar si un acceso es leg&#x00ED;timo. Un claro ejemplo de este sistema de control de accesos es la clasificaci&#x00F3;n de archivos de la Agencia de Seguridad Nacional de Estados Unidos. En este modelo, cada recurso del sistema se categoriza de acorde a su sensibilidad (p. ej. p&#x00FA;blico, privado, confidencial, secreto, etc) y a su categor&#x00ED;a (p. ej. departamento, proyecto, rango de mando, etc). De esta forma, solo los usuarios que posean el nivel requerido de sensibilidad y categor&#x00ED;a pueden acceder a los recursos de los dichos niveles. Este tipo de sistemas son centralizados, pues es un administrador el que define las pol&#x00ED;ticas de acceso del sistema globalmente.</p></list-item>
<list-item><p>Modelos de control de accesos discrecionales (en ingl&#x00E9;s, <italic>Discretionary Access Control</italic> [DAC]): definido por <italic>Trusted Computer System Evaluation Criteria</italic>. En este tipo de sistemas, son los propios usuarios los que definen el conjunto de reglas (permisos y privilegios) sobre los recursos de los cuales son propietarios. De esta forma, un usuario puede decidir que recursos, siendo propietario del recurso, son accesibles y de qu&#x00E9; forma por terceros. Un claro ejemplo de la implementaci&#x00F3;n de este modelo son los sistemas GNU/Linux. Este tipo de sistemas son descentralizados, pues cada usuario toma decisiones sobre sus recursos.</p></list-item>
<list-item><p>Modelos de control de acceso basados en roles (en ingl&#x00E9;s, <italic>Role-Based Access Control</italic> [RBAC]): se basa en asignar roles a cada usuario y recurso del sistema. Cada rol recopila los privilegios y permisos asignados sobre los recursos del sistema. De esta forma, la gesti&#x00F3;n de las identidades dentro <target target-type="page" id="pges_36"/>de un sistema se convierte en una tarea m&#x00E1;s sencilla que en los modelos anteriores, pues se pueden manejar los grupos de permisos de forma conjunta. Por ejemplo, sup&#x00F3;ngase un rol Director que posee todos los permisos sobre los recursos del sistema, mientras que el rol Programador solo posee acceso a un n&#x00FA;mero limitado de recursos. En caso de que se quiera registrar un nuevo usuario Programador en el sistema, bastar&#x00E1; con asignarle el rol ya existente, en vez de tener que modificar los permisos de cada recurso del sistema para otorgarle los accesos correspondientes.</p></list-item>
<list-item><p>Modelos de control de accesos basados en atributos (en ingl&#x00E9;s, <italic>Attribute-Based Access Control</italic> [ABAC]): se basa en establecer la pol&#x00ED;tica de accesos en base a atributos de usuario, recurso y entorno. Estos atributos no son m&#x00E1;s que caracter&#x00ED;sticas que definen a cada uno de los agentes mencionados anteriormente. De esta forma, el control de accesos se realiza comprobando que cada uno de los atributos necesarios de una petici&#x00F3;n se cumplen en las reglas recopiladas en la pol&#x00ED;tica de accesos. Por ejemplo, sup&#x00F3;ngase un usuario que posee el atributo Director y que solicita acceso a un recurso con un atributo Confidencial y posee un atributo de entorno 11:00 pm. La pol&#x00ED;tica define que Director puede acceder a los recursos Confidencial, sin embargo, se tiene que cumplir una tercera regla para el atributo entorno que sea menor de 7:00pm. En este caso, se denegar&#x00E1; el acceso, pues los atributos evaluados no se corresponden al completo con las reglas de la pol&#x00ED;tica de accesos. <italic>eXtensible Access Control Markup Language</italic> (XACML) es el est&#x00E1;ndar m&#x00E1;s extendido para implementar este tipo de modelo.</p></list-item>
</list>
<p>Cabe destacar que los modelos aqu&#x00ED; expuestos, adem&#x00E1;s de otros existentes, no son excluyentes entre s&#x00ED; y, por consiguiente, un mismo sistema puede implementar varios de ellos simult&#x00E1;neamente. Esta combinaci&#x00F3;n de m&#x00FA;ltiples modelos resultar&#x00E1;, con una buena implementaci&#x00F3;n, en un sistema m&#x00E1;s seguro. Sin embargo, tambi&#x00E9;n aumenta la complejidad del modelo, creando reglas muy complejas que pueden afectar al rendimiento y a la mantenibilidad del mismo. Es por esto que un buen sistema de control de accesos ha de buscar un equilibrio entre seguridad y el resto de los requisitos, buscando siempre obtener un modelo lo m&#x00E1;s seguro posible siendo lo m&#x00E1;s sencillo posible. Un ejemplo de esta combinaci&#x00F3;n de modelos, es el m&#x00F3;dulo de seguridad SELinux [<xref ref-type="bibr" rid="CIT028">28</xref>], el cual permite extender el control de acceso DAC de los sistemas Linux, implementando pol&#x00ED;ticas MAC y RBAC.</p>
<sec id="c2-s1-s3">
<label><bold>2.1.3.</bold></label>
<title><bold>Modelos para la gesti&#x00F3;n de identidades</bold></title>
<p>La gesti&#x00F3;n de identidades hace referencia a los sistemas y arquitecturas que se encargan de almacenar y administrar las identidades digitales dentro de un sistema de informaci&#x00F3;n.</p>
<p><target target-type="page" id="pges_37"/>El modelo Silo es la primera arquitectura que surgi&#x00F3; para gestionar las identidades digitales [<xref ref-type="bibr" rid="CIT029">29</xref>]. En esta arquitectura, el sistema de gesti&#x00F3;n de identidades act&#x00FA;a tanto de SP como de IdP. En primer lugar, el sistema act&#x00FA;a de SP, ya que provee a los usuarios de un servicio, aplicaci&#x00F3;n o recurso. En segundo lugar, act&#x00FA;a de IdP, ya que tiene como responsabilidad almacenar todas las identidades digitales del sistema, junto a sus credenciales y validar su autenticidad con el objetivo de poder gestionar y completar cualquier flujo de IAAA. De esta forma, en este tipo de sistemas, la figura del IdP y del SP se solapan en un &#x00FA;nico agente que se encarga de realizar ambas funcionalidades. Su funcionamiento se ve reflejado en la <xref ref-type="fig" rid="fig-2-4">Figura 2.4</xref>.</p>
<fig id="fig-2-4">
<label>Figura 2.4:</label>
<caption><title>Modelo Silo para la gesti&#x00F3;n de identidades.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-4.jpg"/>
</fig>
<p>Esta arquitectura para la gesti&#x00F3;n de identidades es la m&#x00E1;s antigua. Se implement&#x00F3; cuando el n&#x00FA;mero de servicios o aplicaciones, a los que acced&#x00ED;a un mismo usuario, era razonable y limitado y, por lo tanto, el propio usuario pod&#x00ED;a gestionar todas las identidades que manejaba a lo largo de todos estos servicios o aplicaciones. A medida que el n&#x00FA;mero de servicios o aplicaciones ofertados fue aumentando, la usabilidad real de estos sistemas fue decreciendo. Esto dio paso a los sistemas de gesti&#x00F3;n de identidades centralizados.</p>
<p>Los sistemas de gesti&#x00F3;n de identidades centralizados surgieron con el objetivo de suplir las carencias del modelo Silo. De esta forma, tratan de unificar y centralizar en un &#x00FA;nico punto la gesti&#x00F3;n de identidades a lo largo de m&#x00FA;ltiples servicios dentro de un mismo dominio [<xref ref-type="bibr" rid="CIT029">29</xref>]. En esta ocasi&#x00F3;n, las figuras del IdP y del SP se desvinculan formando agentes totalmente distintos. De este modo, el IdP se encarga de almacenar y gestionar toda la informaci&#x00F3;n referente a las identidades digitales. En esta arquitectura, el SP delega todo el flujo de IAAA sobre el IdP. El funcionamiento de este tipo de arquitecturas <target target-type="page" id="pges_38"/>se puede observar en la <xref ref-type="fig" rid="fig-2-5">Figura 2.5</xref>. Como se puede observar, cuando un usuario inicia cualquier flujo de IAAA, lo inicia sobre el IdP, y es este &#x00FA;ltimo quien verifica y le otorga acceso a todos los SPs bajo los que opera. Esto permite que un mismo usuario pueda realizar procesos <target target-type="page" id="pges_39"/>de IAAA sobre m&#x00FA;ltiples servicios, en el mismo dominio, utilizando &#x00FA;nicamente una identidad digital. Este tipo de arquitecturas solventa los problemas encontrados para el modelo Silo. Sin embargo, este tipo de sistemas centralizan toda la seguridad en un &#x00FA;nico punto y, por consiguiente, si un atacante logra sobrepasar dicha barrera, obtendr&#x00E1; acceso no solo a un SP, sino a todos los SP en los que el usuario atacado tiene acceso.</p>
<fig id="fig-2-5">
<label>Figura 2.5:</label>
<caption><title>Modelo centralizado para la gesti&#x00F3;n de identidades.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-5.jpg"/>
</fig>
<p>Los sistemas centralizados permiten implementar el proceso de <italic>Single Sign On</italic> (SSO). El SSO unifica todos los puntos de acceso a m&#x00FA;ltiples SP en un &#x00FA;nico punto. Esto se consigue ya que el IdPs implementa una base de datos centralizada que contiene toda la informaci&#x00F3;n referente a las identidades digitales, incluidas sus credenciales, que recogen todos los SPs.</p>
<p>Existen multitud de est&#x00E1;ndares, protocolos y sistemas de gesti&#x00F3;n de identidades centralizados. Los m&#x00E1;s extendidos y utilizados hoy en d&#x00ED;a son <italic>Lightweight Directory Access Protocol</italic> (LDAP) [<xref ref-type="bibr" rid="CIT030">30</xref>], Kerberos [<xref ref-type="bibr" rid="CIT031">31</xref>] y <italic>Remote authentication dial in user service</italic> (RADIUS) [<xref ref-type="bibr" rid="CIT032">32</xref>].</p>
<p>La federaci&#x00F3;n de identidades es el conjunto de arquitecturas y est&#x00E1;ndares que permiten distribuir de forma din&#x00E1;mica las identidades y su informaci&#x00F3;n a lo largo de m&#x00FA;ltiples dominios seguros [<xref ref-type="bibr" rid="CIT033">33</xref>]. Estas arquitecturas extienden a los sistemas centralizados, permitiendo que un usuario pueda realizar procesos de IAAA sobre m&#x00FA;ltiples SP alojados en diferentes dominios utilizando un IdP externo y com&#x00FA;n, en el que se establece una relaci&#x00F3;n de confianza. De esta forma, un SP crea un v&#x00ED;nculo de confianza con un IdP externo y delega los procesos de IAAA sobre &#x00E9;l. Estos v&#x00ED;nculos de confianza forman c&#x00ED;rculos de confianza (en ingl&#x00E9;s, <italic>Circle of Trust</italic> [COT]). Una vez creados los COT, el IdP crea seud&#x00F3;nimos para identificar y vincular a la identidades digitales que almacena y sus SPs correspondientes. En la <xref ref-type="fig" rid="fig-2-6">Figura 2.6</xref> se puede observar la arquitectura de este tipo de modelos.</p>
<fig id="fig-2-6">
<label>Figura 2.6:</label>
<caption><title>Modelo federado para la gesti&#x00F3;n de identidades.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-6.jpg"/>
</fig>
<p>Este tipo de modelos vienen siendo utilizados desde el a&#x00F1;o 2003, con la creaci&#x00F3;n de <italic>Security Assertion Markup Language</italic> (SAML) [<xref ref-type="bibr" rid="CIT034">34</xref>]. Hoy en d&#x00ED;a, se han extendido y adoptado otros est&#x00E1;ndares como OpenID [<xref ref-type="bibr" rid="CIT019">19</xref>], OAuth [<xref ref-type="bibr" rid="CIT020">20</xref>] y OIDC [<xref ref-type="bibr" rid="CIT021">21</xref>]. De aqu&#x00ED; en adelante, se analizan los est&#x00E1;ndares federados m&#x00E1;s utilizados hoy en d&#x00ED;a, haciendo especial hincapi&#x00E9; en sus conceptos fundamentales y sus flujos de informaci&#x00F3;n.</p>
</sec>
<sec id="c2-s1-s4">
<label><bold>2.1.4.</bold></label>
<title><bold>Est&#x00E1;ndares federados para la gesti&#x00F3;n de identidades</bold></title>
<sec id="c2-s1-s4-s1">
<title><bold>OpenID</bold></title>
<p>OpenID se cre&#x00F3; en el a&#x00F1;o 2005 y se define como un <italic>framework</italic> abierto, descentralizado y gratis para la gesti&#x00F3;n de identidades [<xref ref-type="bibr" rid="CIT019">19</xref>]. Su desarrollo ha sido apoyado por grandes corporaciones como Google, Microsoft y IBM. Est&#x00E1; orientado a solventar la autenticaci&#x00F3;n en escenarios web.</p>
<p><target target-type="page" id="pges_40"/>OpenID define tres roles fundamentales que interact&#x00FA;an entre s&#x00ED; para lograr realizar el proceso de autenticaci&#x00F3;n:</p>
<list list-type="bullet">
<list-item><p><italic>Relying Party (RP)</italic>: es la parte en la que los otros roles conf&#x00ED;an. Su funci&#x00F3;n principal es hacer de cliente, es decir, es la aplicaci&#x00F3;n o servicio con la que el usuario final interact&#x00FA;a y por lo tanto con la que necesita autenticarse. El rol de la RP es el de SP.</p></list-item>
<list-item><p><italic>OpenID Provider (OP)</italic>: es el encargado de gestionar el ciclo de vida de una identidad digital. El rol del OP es el de IdP.</p></list-item>
<list-item><p><italic>End User (EU)</italic>: es el usuario final, es decir, es la entidad que posee una identidad digital dentro del OP e interact&#x00FA;a con la RP para realizar la operativa deseada.</p></list-item>
</list>
<p>El flujo de autenticaci&#x00F3;n que utiliza OpenID se resume a continuaci&#x00F3;n:</p>
<list list-type="alpha-upper">
<list-item><p>El EU accede a la RP e inicia el proceso de autenticaci&#x00F3;n presentando el identificador, previamente registrado, a la RP por medio del agente de usuario (p. ej. un navegador web).</p></list-item>
<list-item><p>La RP recibe y normaliza el identificador recibido. De esta forma, extrae e identifica el OP que necesita el EU para lograr autenticarse.</p></list-item>
<list-item><p>La RP y el OP establecen un c&#x00F3;digo secreto compartido que es almacenado por la RP. Este c&#x00F3;digo secreto se utiliza para verificar que el intercambio de mensajes entre ambas partes es correcto.</p></list-item>
<list-item><p>La RP redirige al agente de usuario del EU al OP, previamente identificado, realizando una petici&#x00F3;n de autenticaci&#x00F3;n.</p></list-item>
<list-item><p>El OP valida las credenciales proporcionadas por el EU.</p></list-item>
<list-item><p>El OP redirige el agente de usuario del EU de vuelta a la RP comunic&#x00E1;ndole si el proceso de autenticaci&#x00F3;n ha quedado completado o si por el contrario ha fallado.</p></list-item>
<list-item><p>RP La RP verifica que la informaci&#x00F3;n recibida es correcta y por tanto el proceso de autenticaci&#x00F3;n ha quedado finalmente completado.</p></list-item>
</list>
</sec>
<sec id="c2-s1-s4-s2">
<title><bold>OAuth</bold></title>
<p>OAuth es un <italic>framework</italic> de c&#x00F3;digo libre para la gesti&#x00F3;n de identidades de forma federada. Su desarrollo empez&#x00F3; en el a&#x00F1;o 2006, logrando su primera versi&#x00F3;n <target target-type="page" id="pges_41"/>estable OAuth 1.0 en el a&#x00F1;o 2010, publicado como RFC 5849 [<xref ref-type="bibr" rid="CIT035">35</xref>]. Actualmente se encuentra en su versi&#x00F3;n OAuth 2.0 publicado como RFC 6749 [<xref ref-type="bibr" rid="CIT020">20</xref>].</p>
<p>OAuth 2.0 provee todos los mecanismos necesarios para poder realizar autorizaci&#x00F3;n en aplicaciones web, aplicaciones de escritorio y dispositivos inteligentes de forma federada. Cuando un usuario realiza una petici&#x00F3;n de acceso a un recurso protegido alojado en un SP, este le redirige al IdP externo, en el que conf&#x00ED;an tanto el usuario, como el SP. En este instante, el IdP verifica la identidad del usuario y procede a evaluar la petici&#x00F3;n, categoriz&#x00E1;ndola como leg&#x00ED;tima en caso de que el usuario introduzca unas credenciales v&#x00E1;lidas y por consiguiente otorg&#x00E1;ndole acceso al recurso solicitado, o como no leg&#x00ED;tima, en caso contrario y, por consiguiente, neg&#x00E1;ndole dicho acceso. Este proceso se utiliza exclusivamente para garantizar un proceso de autorizaci&#x00F3;n y, por lo tanto, OAuth 2.0 asume que el proceso de autenticaci&#x00F3;n se realiza por otra v&#x00ED;a, ya sea de forma local, con un modelo centralizado o de forma federada con otro est&#x00E1;ndar que lo permita. De aqu&#x00ED; en adelante se va a detallar el funcionamiento de OAuth 2.0.</p>
<p>OAuth 2.0 define cuatro roles fundamentales que interact&#x00FA;an en cualquier flujo de autorizaci&#x00F3;n:</p>
<list list-type="bullet">
<list-item><p><italic>Resource Owner</italic>: entidad propietaria de los recursos protegidos. Esta entidad puede ser el propio EU.</p></list-item>
<list-item><p><italic>Resource Server</italic>: es el servidor que almacena los recursos protegidos. Su funcionalidad es recibir y responder correctamente a las peticiones de acceso a los recursos protegidos.</p></list-item>
<list-item><p><italic>Client</italic>: es el cliente, es decir, es una aplicaci&#x00F3;n que solicita acceso a los recursos protegidos. Por ejemplo, un navegador web que utiliza un usuario para acceder a un recurso. Dependiendo de su capacidad para mantener la confidencialidad y las credenciales del usuario pueden ser confidenciales o p&#x00FA;blicos.</p></list-item>
<list-item><p><italic>Authorization Server</italic>: servidor encargado de verificar los privilegios y roles de un <italic>Client</italic> con el objetivo de garantizar que solo los usuarios leg&#x00ED;timos accedan a los recursos protegidos.</p></list-item>
</list>
<p>El modo en el que estos roles interact&#x00FA;an y se comunican entre s&#x00ED;, para lograr el proceso de autorizaci&#x00F3;n es por medio del uso de <italic>tokens</italic>. En OAuth 2.0 se distinguen fundamentalmente dos tipos de <italic>tokens</italic>:</p>
<list list-type="bullet">
<list-item><p><italic>Access token</italic>: es el <italic>token</italic> de acceso. Lo utiliza el <italic>Client</italic> para acceder a los recursos protegidos alojados en el <italic>Resource Server</italic>. En otras palabras, este <italic>token</italic> sustituye a las credenciales del usuario en un proceso convencional de autorizaci&#x00F3;n. Este <italic>token</italic> es generado por el <italic>Authorization Server</italic>.</p></list-item>
<list-item><p><target target-type="page" id="pges_42"/><italic>Refresh token</italic>: es el <italic>token</italic> de refresco. Lo utiliza el <italic>Client</italic> para solicitar un nuevo <italic>access token</italic> cuando el vigente ha sido invalidado.</p></list-item>
</list>
<p>El flujo de autorizaci&#x00F3;n de OAuth 2.0, que se lleva a cabo entre los diferentes roles para lograr el proceso de autorizaci&#x00F3;n, se puede ver ilustrado en la <xref ref-type="fig" rid="fig-2-7">Figura 2.7</xref>.</p>
<fig id="fig-2-7">
<label>Figura 2.7:</label>
<caption><title>Flujo de autorizaci&#x00F3;n de OAuth.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-7.jpg"/>
<attrib><italic>Fuente: <ext-link ext-link-type="uri" xlink:href="https://tools.ietf.org/html/rfc6749">https://tools.ietf.org/html/rfc6749</ext-link></italic></attrib>
</fig>
<list list-type="alpha-upper">
<list-item><p>El <italic>Client</italic> solicita autorizaci&#x00F3;n al propietario del recurso protegido (<italic>Resource Owner</italic>).</p></list-item>
<list-item><p>El <italic>Client</italic> recibe la concesi&#x00F3;n de autorizaci&#x00F3;n (en ingl&#x00E9;s, <italic>Authorization Grant</italic>) que le otorga permisos para poder acceder al recurso protegido.</p></list-item>
<list-item><p>El <italic>Client</italic> utiliza esta concesi&#x00F3;n para solicitar al <italic>Authorization Server</italic> el <italic>access token</italic>.</p></list-item>
<list-item><p>El <italic>Authorization Server</italic> comprueba que la concesi&#x00F3;n es v&#x00E1;lida, y en caso afirmativo procede a devolverle el <italic>access token</italic>.</p></list-item>
<list-item><p>El <italic>Client</italic> utiliza el <italic>access token</italic> para solicitar acceder al recurso protegido alojado en el <italic>Resource Server</italic>.</p></list-item>
<list-item><p>El <italic>Resource Server</italic> valida el <italic>access token</italic> y devuelve al <italic>Client</italic> el recurso solicitado.</p></list-item>
</list>
<p>Las concesiones de autorizaci&#x00F3;n (paso B y C de la <xref ref-type="fig" rid="fig-2-7">Figura 2.7</xref>) definen las tareas e interacciones que se han de realizar, de forma secuencial, entre los diferentes roles, con el objetivo de garantizar que se logre un proceso de autorizaci&#x00F3;n. De este modo, dependiendo de las diferentes casu&#x00ED;sticas <target target-type="page" id="pges_43"/>y escenarios posibles, los diferentes roles han de seguir una de las posibles concesiones de autorizaci&#x00F3;n disponibles. Dentro del est&#x00E1;ndar de OAuth, se definen, cuatro tipos de concesiones: <italic>Authorization Code</italic>, <italic>Implicit</italic>, <italic>Resource Owner Password Credentials</italic> y <italic>Client Credentials</italic>.</p>
</sec>
<sec id="c2-s1-s4-s3">
<title><bold>OpenID Connect</bold></title>
<p>OIDC es una especificaci&#x00F3;n para manejar la gesti&#x00F3;n de identidades federadas creada en el a&#x00F1;o 2014 por la OpenID Foundation [<xref ref-type="bibr" rid="CIT021">21</xref>]. Este est&#x00E1;ndar permite realizar procesos tanto de autenticaci&#x00F3;n como de autorizaci&#x00F3;n. Se posiciona como una simbiosis entre OpenID y OAuth 2.0. Toma como punto de partida OAuth 2.0, permitiendo as&#x00ED;, realizar procesos de autorizaci&#x00F3;n y auditor&#x00ED;a. Por otro lado, OIDC integra y extiende a OpenID, con el objetivo de dotar al est&#x00E1;ndar resultante de los procesos de autenticaci&#x00F3;n. Todos estos procesos pueden ser implementados y accesibles por medio de una APIs, lo cual hace que su uso e implantaci&#x00F3;n sea muy amigable para los desarrolladores.</p>
<p>OIDC se presenta como un protocolo ligero que permite que todo tipo de clientes (p. ej. aplicaciones web y aplicaciones m&#x00F3;viles), puedan verificar y consultar informaci&#x00F3;n de las identidades digitales. Adem&#x00E1;s, es flexible y extensible, permitiendo incorporar caracter&#x00ED;sticas adicionales como servicios de encriptaci&#x00F3;n de la informaci&#x00F3;n, servicios de gesti&#x00F3;n de sesiones o el descubrimiento de proveedores de OpenID Connect de forma autom&#x00E1;tica. OIDC esta compuesto por tres m&#x00F3;dulos funcionales que recogen todas estas funcionalidades (ver <xref ref-type="fig" rid="fig-2-8">Figura 2.8</xref>):</p>
<fig id="fig-2-8">
<label>Figura 2.8:</label>
<caption><title>M&#x00F3;dulos de OpenID Connect.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-8.jpg"/>
<attrib><italic>Fuente: <ext-link ext-link-type="uri" xlink:href="https://openid.net/connect">https://openid.net/connect</ext-link></italic></attrib>
</fig>
<list list-type="bullet">
<list-item><p><target target-type="page" id="pges_44"/><italic>Core</italic>: define la funcionalidad b&#x00E1;sica y m&#x00ED;nima para resolver los procesos de IAAA. Utiliza tres puntos de acceso: <italic>Authorization Server Endpoint</italic>, <italic>token Endpoint</italic> y <italic>UserInfo Endpoint</italic>.</p></list-item>
<list-item><p><italic>Dynamic</italic>: extiende el Core para incluir el servicio de descubrimiento din&#x00E1;mico de registro de clientes (<italic>Discovery Dynamic Client Registration</italic>). Utiliza dos nuevos punto de acceso: <italic>Discovery Endpoint</italic> y <italic>Client Registration Endpoint</italic>.</p></list-item>
<list-item><p><italic>Complete</italic>: a&#x00F1;ade los servicios de gesti&#x00F3;n de sesi&#x00F3;n y el <italic>From Post Responde Mode</italic> para codificar los par&#x00E1;metros de respuesta de autorizaci&#x00F3;n como valores de formularios HTML.</p></list-item>
</list>
<p>En OIDC se utilizan los tres mismos roles que se definen para OpenID. Estos son: EU (el usuario final), RP (la parte confiable o SP) y OP (OpenID Provider o IdP). Hace uso de los <italic>tokens</italic> definidos en OAuth 2.0, esto es, el <italic>access</italic> token, y el <italic>refresh token</italic>. Adem&#x00E1;s, define un tercer <italic>token</italic> llamado <italic>ID token</italic>. El <italic>ID token</italic> contiene los atributos espec&#x00ED;ficos asociados a una entidad (en ingl&#x00E9;s, <italic>claims</italic>) y que son necesarios durante el proceso de autenticaci&#x00F3;n.</p>
<p>Estos roles interact&#x00FA;en entre s&#x00ED; por medio de peticiones y respuestas a dichas peticiones. Se distinguen seis tipos de ellas:</p>
<list list-type="bullet">
<list-item><p>Petici&#x00F3;n de autorizaci&#x00F3;n/autenticaci&#x00F3;n: la realiza la RP al <italic>Authroization Server Endpoint</italic>, que se encuentra en el OP. El objetivo es solicitar el <italic>Authorization Code</italic>, <italic>access token</italic> y/o el <italic>ID token</italic> dependiendo del flujo de informaci&#x00F3;n a realizar. Se realiza mediante HTTP GET/POST.</p></list-item>
<list-item><p>Respuesta de autorizaci&#x00F3;n/autenticaci&#x00F3;n: Se env&#x00ED;a desde el <italic>Authorization Server Endpoint</italic> a la URI de redirecci&#x00F3;n indicada por la RP en la petici&#x00F3;n de autorizaci&#x00F3;n. Incluye el <italic>Authorization Code</italic> y los <italic>tokens</italic> solicitados, as&#x00ED; como el estado y opcionalmente la caducidad de los <italic>tokens</italic>.</p></list-item>
<list-item><p>Petici&#x00F3;n de tokens: Este realizada por la RP al <italic>token Endpoint</italic>, que se encuentra en el OP, para solicitar los <italic>tokens</italic>. Se realiza por medio de HTTP POST.</p></list-item>
<list-item><p>Respuesta de Tokens: el <italic>token Endpoint</italic> realiza esta respuesta a la RP devolviendo los <italic>tokens</italic> solicitados. Estos <italic>tokens</italic> son el <italic>access</italic> token, el <italic>ID token</italic> y el <italic>refresh token</italic>.</p></list-item>
<list-item><p>Petici&#x00F3;n de informaci&#x00F3;n del usuario: la RP realiza esta petici&#x00F3;n al <italic>UserInfo Endpoint</italic>, que se encuentra en el OP, para pedir informaci&#x00F3;n del EU. Se codifica mediante una petici&#x00F3;n HTTP GET/POST, e incluye el <italic>access token</italic> del EU con el objetivo de poder identificarlo.</p></list-item>
<list-item><p><target target-type="page" id="pges_45"/>Respuesta de informaci&#x00F3;n del usuario: el <italic>UserInfo Endpoint</italic> devuelve en formato JSON la informaci&#x00F3;n solicitada referente al EU identificado por el acess <italic>token</italic> recibido.</p></list-item>
</list>
<p>OIDC contempla tres flujos de informaci&#x00F3;n, muy parecidos a los proporcionados por OAuth 2.0. Estos flujos son: <italic>Authorization Code, Implicit y Hybrid</italic>. En primer lugar, el flujo <italic>Authorization Code</italic> es el an&#x00E1;logo al de OAuth 2.0. Este flujo est&#x00E1; representado en la <xref ref-type="fig" rid="fig-2-9">Figura 2.9</xref> y consta de los siguientes pasos:</p>
<fig id="fig-2-9">
<label>Figura 2.9:</label>
<caption><title>Flujo <italic>Authorization Code</italic> de OpenID Connect.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-9.jpg"/>
</fig>
<list list-type="simple">
<list-item><p>0. El EU comienza a interaccionar con la RP iniciando el flujo de autorizaci&#x00F3;n/autenticaci&#x00F3;n.</p></list-item>
<list-item><p>1. La RP env&#x00ED;a una petici&#x00F3;n de autorizaci&#x00F3;n/autenticaci&#x00F3;n al <italic>Authorization Server Endpoint</italic>.</p></list-item>
<list-item><p>2. El <italic>Authorization Server Endpoint</italic> se comunica con el EU para autenticarle.</p></list-item>
<list-item><p>3. El EU proporciona las credenciales al <italic>Authorization Server Endpoint</italic> o le da el consentimiento necesario.</p></list-item>
<list-item><p>4. El <italic>Authorization Server Endpoint</italic> valida las credenciales y en caso satisfactorio continua con el flujo y redirige al EU a la RP.</p></list-item>
<list-item><p><target target-type="page" id="pges_46"/>5. El <italic>Authorization Server Endpoint</italic> env&#x00ED;a la respuesta de autorizaci&#x00F3;n/autenticaci&#x00F3;n proporcionando el <italic>Authorization Code</italic> a la RP.</p></list-item>
<list-item><p>6. La RP utiliza el <italic>Authorization Code</italic> para envi&#x00E1;rselo al <italic>token Endpoint</italic> del OP por medio de una petici&#x00F3;n de tokens.</p></list-item>
<list-item><p>7. El <italic>token Endpoint</italic> del OP valida el <italic>Authorization Code</italic> y en caso satisfactorio proporciona a la RP el <italic>ID token</italic> y el <italic>access token</italic> por medio de la respuesta de tokens.</p></list-item>
<list-item><p>8. De forma opcional, la RP utiliza el <italic>access token</italic> para enviar una petici&#x00F3;n de informaci&#x00F3;n del usuario.</p></list-item>
<list-item><p>9. El <italic>UserInfo Endpoint</italic> devuelve la informaci&#x00F3;n solicitada.</p></list-item>
</list>
<p>Por otro lado, el flujo <italic>Implicit</italic> se puede ver detallado en la <xref ref-type="fig" rid="fig-2-10">Figura 2.10</xref>. La &#x00FA;nica diferencia con el flujo anterior viene en el paso 4 y 5, pues la RP recibe directamente el <italic>ID token</italic> y el <italic>access token</italic> ya que el <italic>Authorization Server</italic> puede <target target-type="page" id="pges_47"/>determinar que dicho usuario ya estaba autenticado o autorizado previamente. Este flujo se consigue gracias a que el <italic>Authorization Server</italic> es capaz de verificar que el usuario esta previamente autenticado o autorizado por el uso de alg&#x00FA;n lenguaje de <italic>Scripting</italic> (p ej. <italic>Javascript</italic>). Este proceso se realiza, normalmente, recuperando una <italic>cookie</italic> por medio del agente de usuario. Este flujo es menos seguro que el <italic>Authorization Code</italic> pues un atacante podr&#x00ED;a obtener el <italic>ID token</italic> y el <italic>access token</italic> del usuario simplemente secuestrando una sesi&#x00F3;n activa del usuario, sin embargo, permite agilizar mucho el proceso cuando el <italic>Authorization Server</italic> y el EU ya conf&#x00ED;an en el cliente.</p>
<fig id="fig-2-10">
<label>Figura 2.10:</label>
<caption><title>Flujo <italic>Implicit</italic> de OpenID Connect.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-10.jpg"/>
</fig>
<p>Finalmente, el flujo <italic>Hybrid</italic> es una combinaci&#x00F3;n de los dos flujos anteriores, es decir, del <italic>Authorization Code</italic> y del <italic>Implicit</italic>. En este caso, se proporciona flexibilidad y, por lo tanto, dependiendo del tipo de conexi&#x00F3;n que se quiera utilizar y de la configuraci&#x00F3;n del IdP, los <italic>tokens</italic> pueden ser proporcionado por el OP o por el <italic>token Endpoint</italic>.</p>
<p>En la <xref ref-type="tab" rid="c2-tab2">Tabla 2.2</xref> se puede observar las principales similitudes y diferencias entre los tres flujos.</p>
<table-wrap id="c2-tab2">
<label>Tabla 2.2:</label>
<caption><title>Comparativa de flujos de informaci&#x00F3;n en OIDC.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"></th>
<th valign="top" align="left"><italic>Authorization Code</italic></th>
<th valign="top" align="left"><italic>Implicit</italic></th>
<th valign="top" align="left"><italic>Hybrid</italic></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>Authorization Endpoint</italic> devuelve <italic>tokens</italic></td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Si</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left"><italic>Token Endpoint</italic> devuelve <italic>tokens</italic></td>
<td valign="top" align="left">Si</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">Los <italic>tokens</italic> pasan por el agente de usuario</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Si</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">El cliente se puede autenticar</td>
<td valign="top" align="left">Si</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">Puede usar <italic>refresh tokens</italic></td>
<td valign="top" align="left">Si</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Si</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="c2-s1-s5">
<label><bold>2.1.5.</bold></label>
<title><bold>Amenazas y soluciones actuales en la federaci&#x00F3;n de identidades</bold></title>
<p>Las especificaciones federadas son muy utilizadas hoy en d&#x00ED;a, sin embargo, como cualquier especificaci&#x00F3;n o tecnolog&#x00ED;a, existen amenazas asociadas tanto a la propia especificaci&#x00F3;n como a las implementaciones de las mismas [<xref ref-type="bibr" rid="CIT036">36</xref>], [<xref ref-type="bibr" rid="CIT037">37</xref>]. Adem&#x00E1;s, existen multitud de vulnerabilidades conocidas que pueden ser explotadas por cualquier atacante.</p>
<p><target target-type="page" id="pges_48"/>Las principales l&#x00ED;neas de investigaci&#x00F3;n y soluciones planteadas hasta el momento para tratar de solventar estas amenazas suelen estar orientadas al enriquecimiento de las peticiones y de los <italic>tokens</italic> empleados, a realizar una mejora en la gesti&#x00F3;n de las sesiones de usuario, a la mejora de la propia implementaci&#x00F3;n por medio de las APIs y SDKs ofrecidas, a la mejora de los flujos de informaci&#x00F3;n, al uso de criptograf&#x00ED;a a diferentes niveles o a la creaci&#x00F3;n de pol&#x00ED;ticas o sistemas de reputaci&#x00F3;n [<xref ref-type="bibr" rid="CIT017">17</xref>].</p>
<p>Por ejemplo, profundizando en la especificaci&#x00F3;n de OAuth, en [<xref ref-type="bibr" rid="CIT038">38</xref>] tratan de identificar todas las ambig&#x00FC;edades o aspectos que no quedan claros dentro de la propia especificaci&#x00F3;n. Posteriormente, analizan implementaciones espec&#x00ED;ficas para ver como se han solventado dichos aspectos, llegando a la conclusi&#x00F3;n de que casi un 60% de las implementaciones no han sido implementadas correctamente y por lo tanto son vulnerables. En [<xref ref-type="bibr" rid="CIT039">39</xref>] demuestran que, por motivos de dise&#x00F1;o, OAuth es vulnerable a sufrir suplantaci&#x00F3;n a nivel de aplicaci&#x00F3;n debido a los propios flujos de autorizaci&#x00F3;n y tipos de tokens de los que se disponen. En [<xref ref-type="bibr" rid="CIT040">40</xref>] proponen un modelo adaptativo que permite detectar a gran escala vulnerabilidades existentes y nuevas en las implementaciones de OAuth. Adem&#x00E1;s proponen mitigar algunas de las nuevas vulnerabilidades encontradas que permiten materializar ataques como <italic>Cross Site Request Forgery</italic> (CSRF) y ataques de suplantaci&#x00F3;n de identidad por medio de la mejora de los SDKs y de los propios tokens de la especificaci&#x00F3;n. En [<xref ref-type="bibr" rid="CIT041">41</xref>] se propone modificar el est&#x00E1;ndar de OAuth para unificar todos los clientes externos y los flujos de informaci&#x00F3;n en uno com&#x00FA;n, con el objetivo de simplificar la configuraci&#x00F3;n necesaria para su implementaci&#x00F3;n. Adem&#x00E1;s, se propone utilizar AMF para autenticar clientes externos, y firmas digitales y criptograf&#x00ED;a para mitigar posibles riesgos y vulnerabilidades asociados al mal uso de los <italic>tokens</italic>. En [<xref ref-type="bibr" rid="CIT042">42</xref>] se analizan las principales APIs proporcionadas por los mayores IdPs y los flujos de autorizaci&#x00F3;n de OAuth para analizar las posibles implicaciones a la privacidad de los usuarios finales.</p>
<p>En cuanto a la especificaci&#x00F3;n de OIDC, en la propuesta [<xref ref-type="bibr" rid="CIT036">36</xref>] descubren que multitud de ataques ya existentes para otros protocolos de SSO son igualmente aplicables realizando peque&#x00F1;as modificaciones de los mismos. Adem&#x00E1;s, proponen dos nuevos ataques para materializar nuevas vulnerabilidades asociadas a los propios flujos de la especificaci&#x00F3;n. Finalmente, proponen soluciones para mitigar estos ataques basadas en la mejora del propio est&#x00E1;ndar, las cuales han sido actualmente incluidas en el propio est&#x00E1;ndar, y soluciones de menos impacto basadas en la mejora de los propios <italic>tokens</italic> y en la mejora de las implementaciones. En [<xref ref-type="bibr" rid="CIT016">16</xref>] realizan un an&#x00E1;lisis formal de la seguridad de la especificaci&#x00F3;n y proponen m&#x00E9;todos para solventar las vulnerabilidades encontradas bas&#x00E1;ndose en la mejora de las propias implementaciones modificando los flujos de informaci&#x00F3;n y los <italic>tokens</italic>. En [<xref ref-type="bibr" rid="CIT043">43</xref>] y [<xref ref-type="bibr" rid="CIT044">44</xref>] tratan de mejorar la privacidad de OIDC por medio del uso de t&#x00E9;cnicas criptogr&#x00E1;ficas y la modificaci&#x00F3;n de los propios flujos de informaci&#x00F3;n. En [<xref ref-type="bibr" rid="CIT045">45</xref>] proponen una <target target-type="page" id="pges_49"/>serie de pol&#x00ED;ticas y t&#x00E9;cnicas criptogr&#x00E1;ficas en las distintas comunicaciones de los agentes para mejorar la privacidad de los usuarios. En [<xref ref-type="bibr" rid="CIT017">17</xref>] analizan amenazas tanto de la seguridad como de la privacidad y proponen diversas t&#x00E9;cnicas para mitigarlas basadas en la mejora de los tokens, en la mejora de la implementaci&#x00F3;n, en la mejora de los flujos de informaci&#x00F3;n, en aspectos de criptograf&#x00ED;a y en la creaci&#x00F3;n de pol&#x00ED;ticas y sistemas de reputaci&#x00F3;n. En [<xref ref-type="bibr" rid="CIT046">46</xref>] se propone un m&#x00E9;todo para mejorar la privacidad de los usuarios basado en realizar peque&#x00F1;as modificaciones a los flujos de informaci&#x00F3;n ya existentes. En [<xref ref-type="bibr" rid="CIT047">47</xref>] proponen un servicio novedoso de <italic>tokens</italic> para mantener los <italic>access tokens</italic> durante un mayor periodo de tiempo aumentando la seguridad de los tokens de larga duraci&#x00F3;n (usualmente menos seguro que los que tienen un ciclo de vida corto). En [<xref ref-type="bibr" rid="CIT048">48</xref>] se proponen una serie de buenas pr&#x00E1;cticas para mejorar la seguridad de OAuth y OIDC en aplicaciones nativas para clientes Android. Adem&#x00E1;s demuestran que la gran mayor&#x00ED;a de las implementaciones actuales son vulnerables a todo tipo de ataques como la suplantaci&#x00F3;n de identidad debido a una mala implementaci&#x00F3;n de las buenas pr&#x00E1;cticas propuestas.</p>
<p>En la <xref ref-type="tab" rid="c2-tab3">Tabla 2.3</xref> se pueden observar las caracter&#x00ED;sticas principales de los trabajos analizados anteriormente.</p>
<table-wrap id="c2-tab3">
<label>Tabla 2.3:</label>
<caption><title>Trabajos de la literatura sobre amenazas y mejoras de los esquemas de gesti&#x00F3;n de identidades federados. La columna &#x00C1;mbito representa si el trabajo se centra en mejorar la seguridad (<italic>S</italic>) o la privacidad (<italic>P</italic>). Las columnas Token, Criptograf&#x00ED;a, Implementaci&#x00F3;n, Pol&#x00ED;ticas/Reputaci&#x00F3;n y Flujo representan los elementos donde se centran las soluciones propuestas de los trabajos analizados.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Trabajo</bold></th>
<th valign="top" align="center"><bold>Especificaci&#x00F3;n</bold></th>
<th valign="top" align="center"><bold>&#x00C1;mbito</bold></th>
<th valign="top" align="center"><bold><italic>Token</italic></bold></th>
<th valign="top" align="center"><bold>Criptograf&#x00ED;a</bold></th>
<th valign="top" align="center"><bold>Implementaci&#x00F3;n</bold></th>
<th valign="top" align="center"><bold>Pol&#x00ED;ticas</bold>/<bold>Reputaci&#x00F3;n</bold></th>
<th valign="top" align="center"><bold>Flujo</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT037">37</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT038">38</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT039">39</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT040">40</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT041">41</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT042">42</xref>]</td>
<td valign="top" align="center">OAuth</td>
<td valign="top" align="center">P</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT016">16</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT036">36</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT043">43</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">P</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT044">44</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">P</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT045">45</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">P</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT017">17</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">S/P</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT046">46</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">P</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT047">47</xref>]</td>
<td valign="top" align="center">OIDC</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">&#x2713;</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x2713;</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT048">48</xref>]</td>
<td valign="top" align="center">OAuth /OIDC</td>
<td valign="top" align="center">S</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">-</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Por &#x00FA;ltimo, cabe destacar que la rama del an&#x00E1;lisis de comportamiento se ha posicionado como una l&#x00ED;nea de investigaci&#x00F3;n muy recomendable y adoptada para mejorar los sistemas de control de accesos y gesti&#x00F3;n de identidades [<xref ref-type="bibr" rid="CIT004">4</xref>]. Sin embargo, tal y como se ha podido ver hasta ahora, los trabajos que tratan de mejorar los niveles de seguridad de los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados no integran o implementan estas t&#x00E9;cnicas. Adem&#x00E1;s, estas t&#x00E9;cnicas son de especial inter&#x00E9;s para lograr implementar autenticaci&#x00F3;n continua, un recurso poco utilizado hasta ahora en la federaci&#x00F3;n de identidades.</p>
</sec>
</sec>
</sec>
<sec id="c2-s2">
<label><bold>2.2.</bold></label>
<title><bold>An&#x00E1;lisis de comportamientos</bold></title>
<p>En el &#x00E1;mbito tecnol&#x00F3;gico, el an&#x00E1;lisis de comportamientos se centra en analizar, modelar y predecir los comportamientos pasados, presentes y futuros de los usuarios o entes que interact&#x00FA;an con un sistema de informaci&#x00F3;n, con el objetivo de obtener un beneficio de negocio [<xref ref-type="bibr" rid="CIT004">4</xref>]. Es com&#x00FA;nmente conocido por sus siglas en ingl&#x00E9;s, <italic>User and Entity Behavior Analysis</italic> (UEBA). El uso de t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos aporta grandes ventajas para conseguir multitud de objetivos, a lo largo de una gran variedad de dominios de aplicaci&#x00F3;n. En la <xref ref-type="fig" rid="fig-2-11">Figura 2.11</xref>, se pueden observar los cuatro grandes dominios de aplicaci&#x00F3;n de este &#x00E1;rea hoy en d&#x00ED;a, y sus &#x00E1;reas espec&#x00ED;ficas de aplicaci&#x00F3;n. Estos dominios son: redes, seguridad y salud, mejora de un servicio y ciberseguridad.</p>
<fig id="fig-2-11">
<label>Figura 2.11:</label>
<caption><title>Dominios y &#x00E1;reas espec&#x00ED;ficas de aplicaci&#x00F3;n de los trabajos de an&#x00E1;lisis de comportamiento.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-2-11.jpg"/>
</fig>
<p>En el dominio de las redes, el an&#x00E1;lisis de comportamientos es una herramienta muy efectiva a la hora de mejorar las redes de comunicaci&#x00F3;n, de transporte <target target-type="page" id="pges_50"/><target target-type="page" id="pges_51"/>y redes el&#x00E9;ctricas. En este &#x00E1;mbito, el objetivo suele ser mejorar la eficiencia de las distintas dichas redes, por ejemplo, extrayendo patrones de uso que permiten establecer distintos perfiles de usuario. Estos patrones se pueden utilizar para detectar posibles congestiones en la red o cuellos de botella, permitiendo desviar el tr&#x00E1;fico de forma &#x00F3;ptima dependiendo del perfil de usuario, tanto en redes inform&#x00E1;ticas [<xref ref-type="bibr" rid="CIT049">49</xref>], como en redes de transporte p&#x00FA;blico o privado [<xref ref-type="bibr" rid="CIT050">50</xref>], [<xref ref-type="bibr" rid="CIT051">51</xref>]. Otra aplicaci&#x00F3;n, es la predicci&#x00F3;n del precio del mercado el&#x00E9;ctrico con el objetivo de que los productores el&#x00E9;ctricos puedan ganar las subasta energ&#x00E9;tica a sus competidores y obtener un mayor beneficio de ello [<xref ref-type="bibr" rid="CIT052">52</xref>]. En este &#x00E1;rea, con la incorporaci&#x00F3;n de los contadores inteligentes, tambi&#x00E9;n se utilizan estas t&#x00E9;cnicas para mejorar la eficiencia de la propia red y por lo tanto poder ofrecer precios m&#x00E1;s competitivos a los consumidores [<xref ref-type="bibr" rid="CIT053">53</xref>].</p>
<p>En el dominio de la seguridad y salud, el an&#x00E1;lisis de comportamientos es de gran utilidad para la detecci&#x00F3;n temprana de ciertos factores de inter&#x00E9;s que pueden suponer un riesgo para la salud o la seguridad de un individuo. Por ejemplo, con la incorporaci&#x00F3;n de sensores en una vivienda se puede detectar si una persona ha sufrido un accidente o una ca&#x00ED;da en el caso de personas mayores [<xref ref-type="bibr" rid="CIT054">54</xref>], [<xref ref-type="bibr" rid="CIT055">55</xref>], o se puede detectar si una persona est&#x00E1; perdiendo capacidad <target target-type="page" id="pges_52"/>cognitiva debido al cambio de su comportamiento [<xref ref-type="bibr" rid="CIT056">56</xref>]. M&#x00E1;s espec&#x00ED;ficamente relacionado con la seguridad, hoy en d&#x00ED;a multitud de veh&#x00ED;culos disponen de sistemas basados en el an&#x00E1;lisis de comportamiento para detectar situaciones adversas, como un posible accidente [<xref ref-type="bibr" rid="CIT057">57</xref>] o fatiga y cansancio [<xref ref-type="bibr" rid="CIT058">58</xref>].</p>
<p>En el dominio de la mejora de un servicio, el an&#x00E1;lisis de comportamientos permite generar perfiles de usuario que son utilizados para entender las carencias del servicio y, por consiguiente, poder mejorarlo u obtener un beneficio por ello. Algunos ejemplos son, los sistemas de recomendaci&#x00F3;n que permiten aumentar las ventas de un comercio tanto electr&#x00F3;nico como f&#x00ED;sico [<xref ref-type="bibr" rid="CIT059">59</xref>]. La fidelizaci&#x00F3;n de clientes o el lanzamiento de campa&#x00F1;as espec&#x00ED;ficas de publicidad son algunos otros ejemplos en los que las t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos son efectivas en este dominio [<xref ref-type="bibr" rid="CIT060">60</xref>].</p>
<p>En el dominio de la ciberseguridad, el an&#x00E1;lisis de comportamientos se utiliza para elaborar sistemas de control de accesos, para detectar ciberataques y para la detecci&#x00F3;n de fraude. Los sistemas de control de accesos basados en t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos se fundamentan en analizar los patrones de comportamiento de un usuario o entidad espec&#x00ED;fica con el objetivo de poder realizar los procesos de IAAA frente a un sistema de informaci&#x00F3;n [<xref ref-type="bibr" rid="CIT061">61</xref>], [<xref ref-type="bibr" rid="CIT062">62</xref>]. En el campo de la detecci&#x00F3;n de ciberataques, el an&#x00E1;lisis de comportamientos se utiliza para detectar patrones an&#x00F3;malos, por ejemplo, durante la ejecuci&#x00F3;n de un software que pueden causar da&#x00F1;os en el sistema [<xref ref-type="bibr" rid="CIT063">63</xref>] o en las comunicaciones de una red [<xref ref-type="bibr" rid="CIT064">64</xref>]. Por &#x00FA;ltimo, el an&#x00E1;lisis de comportamiento es &#x00FA;til en la detecci&#x00F3;n de fraude. En este &#x00E1;mbito, el an&#x00E1;lisis de comportamiento en el uso de tarjetas de cr&#x00E9;dito puede ayudar a prevenir la realizaci&#x00F3;n de transacciones fraudulentas [<xref ref-type="bibr" rid="CIT065">65</xref>].</p>
<p>De aqu&#x00ED; en adelante, se analizan los trabajos relacionados con el an&#x00E1;lisis de comportamiento en el dominio de la ciberseguridad y espec&#x00ED;ficamente en el &#x00E1;rea del control de accesos.</p>
<sec id="c2-s2-s1">
<label><bold>2.2.1.</bold></label>
<title><bold>An&#x00E1;lisis de comportamientos para el control de accesos</bold></title>
<p>En esta secci&#x00F3;n se analizan los trabajos del estado del arte que utilizan t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento para solventar el control de accesos. Los trabajos, aqu&#x00ED; recopilados, se centran mayoritariamente en la autenticaci&#x00F3;n, tanto progresiva como autenticaci&#x00F3;n continua. El objetivo de estas propuestas es tratar de modelar la informaci&#x00F3;n de comportamiento para extraer y detectar patrones intr&#x00ED;nsecos a cada usuario. Estos patrones se utilizan posteriormente para evaluar nuevas muestras, pudiendo determinar si concuerdan, es decir, pertenecen a un usuario leg&#x00ED;timo, o por el contrario si son diferentes, es decir, son anomal&#x00ED;as de comportamiento y por lo tanto es probable que no pertenezcan al usuario leg&#x00ED;timo y puedan suponer una amenaza <target target-type="page" id="pges_53"/>para la seguridad. En este &#x00FA;ltimo caso, el sistema debe evaluar los riesgos y proceder a realizar las contramedidas necesarias, como solicitar al usuario nuevamente sus credenciales, o utilizar un segundo factor de autenticaci&#x00F3;n con el objetivo de corroborar que el usuario es leg&#x00ED;timo.</p>
<p>Los trabajos del estado del arte en este &#x00E1;mbito se dividen principalmente en dos categor&#x00ED;as dependiendo del dispositivo donde se aplican los modelos de an&#x00E1;lisis de comportamientos: tel&#x00E9;fonos inteligentes y ordenador. Los modelos de aprendizaje m&#x00E1;quina que se aplican en ambas categor&#x00ED;as suelen ser de la misma naturaleza y por lo tanto muy parecidos. Sin embargo, los procesos de recopilaci&#x00F3;n de informaci&#x00F3;n, las fuentes de informaci&#x00F3;n utilizadas (distintas din&#x00E1;micas de comportamiento) y su integraci&#x00F3;n final (debido a los recursos limitados de los tel&#x00E9;fonos inteligentes) son m&#x00E1;s dispares.</p>
<p>En el caso de los tel&#x00E9;fonos inteligentes, las fuentes de informaci&#x00F3;n son principalmente los sensores que est&#x00E1;n habitualmente integrados en dichos dispositivos. Estos sensores se pueden categorizar en cuatro grandes grupos [<xref ref-type="bibr" rid="CIT062">62</xref>]: movimiento (p. ej. aceler&#x00F3;metro y giroscopio), entorno (p. ej. luz ambiente y temperatura), posici&#x00F3;n (p. ej. GPS y br&#x00FA;jula) y de pantalla (p. ej. presi&#x00F3;n y capacitivo). El objetivo de los trabajos que se engloban en este &#x00E1;mbito suele ser detectar anomal&#x00ED;as en el comportamiento del usuario a partir de la informaci&#x00F3;n recogida por estos sensores. Estas anomal&#x00ED;as se deben principalmente a la suplantaci&#x00F3;n de identidad, ya sea por un robo de credenciales (robo de los autenticadores que pertenecen al usuario leg&#x00ED;timo) o por un secuestro de sesi&#x00F3;n (obtenci&#x00F3;n de una sesi&#x00F3;n activa perteneciente a un usuario leg&#x00ED;timo para lograr un acceso no autorizado). Adem&#x00E1;s, los trabajos categorizados aqu&#x00ED;, se pueden dividir a su vez en los que se centran <target target-type="page" id="pges_54"/>en la autenticaci&#x00F3;n progresiva y los que se centran en la autenticaci&#x00F3;n continua.</p>
<p>En la autenticaci&#x00F3;n progresiva, las propuestas suelen estar centradas en evaluar una determinada petici&#x00F3;n de acceso a una aplicaci&#x00F3;n o recurso restringido, y categorizarla en funci&#x00F3;n de los valores recopilados por los sensores. En este &#x00E1;mbito, normalmente se suelen utilizar los sensores de posici&#x00F3;n como el GPS, y los sensores de pantalla. Un ejemplo de la utilizaci&#x00F3;n de sensores de posici&#x00F3;n se encuentra en [<xref ref-type="bibr" rid="CIT066">66</xref>], donde los usuarios se agrupan de acuerdo a un algoritmo de <italic>Density-Based Spatial Clustering of Applications with Noise</italic> (DBSCAN) bas&#x00E1;ndose en sus posiciones. Posteriormente, los grupos y las transiciones entre grupos se modelan como un proceso de Markov, permitiendo utilizar un <italic>Hidden Markov Model</italic> (HMM) para determinar si una petici&#x00F3;n es leg&#x00ED;tima o no. Por otro lado, en [<xref ref-type="bibr" rid="CIT067">67</xref>] utilizan las din&#x00E1;micas de pulsaci&#x00F3;n de teclado recopiladas por los sensores de pantalla. Esta informaci&#x00F3;n longitudinal se agrupa en ventanas para poder comparar las din&#x00E1;micas de comportamiento entre s&#x00ED;. De este modo, las nuevas din&#x00E1;micas que se quieren evaluar se comparan con el hist&#x00F3;rico del usuario, pudiendo as&#x00ED; obtener la distancia entre ellas y clasificarlas en leg&#x00ED;timas o impostoras en funci&#x00F3;n de un umbral.</p>
<p>En la autenticaci&#x00F3;n continua, existe m&#x00E1;s variabilidad respecto a las fuentes de informaci&#x00F3;n. En este caso, los sensores de movimiento, entorno y los sensores de la pantalla suelen ser los m&#x00E1;s utilizados. Independientemente de la fuente, cabe destacar que la naturaleza de los datos recogidos es la misma, es decir, son datos longitudinales. En primer lugar, se va a considerar los trabajos que utilizan informaci&#x00F3;n recogida de los sensores de pantalla. Normalmente, el tratamiento de estos datos comienza con la preparaci&#x00F3;n y limpieza de los mismos, esto es, con los procesos de normalizaci&#x00F3;n y estandarizaci&#x00F3;n [<xref ref-type="bibr" rid="CIT061">61</xref>], generaci&#x00F3;n de datos artificiales [<xref ref-type="bibr" rid="CIT068">68</xref>] y extracci&#x00F3;n de descriptores y medidas de centralidad y de dispersi&#x00F3;n (p. ej. media y desviaci&#x00F3;n t&#x00ED;pica). Adem&#x00E1;s, existen algunos trabajos que tambi&#x00E9;n utilizan la l&#x00F3;gica difusa [<xref ref-type="bibr" rid="CIT069">69</xref>] para extraer conocimiento [<xref ref-type="bibr" rid="CIT070">70</xref>]. Normalmente, los trabajos en este &#x00E1;mbito suelen representar la informaci&#x00F3;n en forma de secuencias. El siguiente paso que siguen es modelar la informaci&#x00F3;n limpia y procesada. Para ello se utilizan m&#x00FA;ltiples algoritmos de aprendizaje m&#x00E1;quina. Cabe destacar el uso de <italic>K-Nearest Neighbors</italic> (KNN) y de <italic>Support Vector Machine</italic>s (SVMs) cuando las secuencias generadas son lo suficientemente largas [<xref ref-type="bibr" rid="CIT061">61</xref>]. Por otro lado, <italic>Na&#x00EF;ve Bayes</italic> (NB), <italic>Bayesian Network</italic> (BN) y <italic>Neural Network</italic> (NN) suelen funcionar correctamente para conjuntos de datos peque&#x00F1;os[<xref ref-type="bibr" rid="CIT071">71</xref>].</p>
<p>En el caso de los trabajos que utilizan informaci&#x00F3;n recogida del aceler&#x00F3;metro y del giroscopio, los algoritmos de clasificaci&#x00F3;n de clase &#x00FA;nica son los m&#x00E1;s utilizados. Por ejemplo, en [<xref ref-type="bibr" rid="CIT068">68</xref>] utilizan t&#x00E9;cnicas de aumento de datos, extracci&#x00F3;n exhaustiva de caracter&#x00ED;sticas y el algoritmo de clasificaci&#x00F3;n <italic>One-Class SVM</italic> (OC-SVM) para definir los patrones de uso de cada usuario. Estos patrones extra&#x00ED;dos, permiten distinguir entre las din&#x00E1;micas de comportamiento que se consideran normales para un usuario, y las muestras at&#x00ED;picas, las cuales se clasifican como muestras no pertenecientes al usuario leg&#x00ED;timo. Adem&#x00E1;s, existen otros trabajos que tratan de detectar estos mismos patrones utilizando un HMM de clase &#x00FA;nica en m&#x00FA;ltiples escenarios como, sostener el dispositivo, coger el dispositivo desde una mesa y sostener el dispositivo mientras se camina [<xref ref-type="bibr" rid="CIT062">62</xref>]. Cabe destacar la propuesta [<xref ref-type="bibr" rid="CIT072">72</xref>], donde modelan informaci&#x00F3;n de estos sensores combinados con t&#x00E9;cnicas de criptograf&#x00ED;a con el objetivo de garantizar la privacidad de los usuarios, no vi&#x00E9;ndose afectado significativamente el rendimiento en cuanto a eficacia y eficiencia de los modelos propuestos.</p>
<p>Para los sensores de ambiente, normalmente se utilizan algoritmos como KNN, NB y <italic>Hoeffding Adaptive Trees</italic> (HAT). Estos sensores, adem&#x00E1;s, se suelen utilizar en combinaci&#x00F3;n con otro tipo de sensores e indicadores como, por ejemplo, el uso de la bater&#x00ED;a con el objetivo de mejorar los modelos previamente desarrollados. Estas propuestas suelen ser las menos invasivas para la privacidad de los usuarios [<xref ref-type="bibr" rid="CIT073">73</xref>].</p>
<p>Por otro lado, en los trabajos que se centran en el dispositivo del ordenador personal, tambi&#x00E9;n se analiza tanto la autenticaci&#x00F3;n progresiva, como la autenticaci&#x00F3;n<target target-type="page" id="pges_55"/> continua. Para el primer caso, las principales fuentes de informaci&#x00F3;n son los registros de navegaci&#x00F3;n y la informaci&#x00F3;n recogida de los sistemas de gesti&#x00F3;n de identidades, es decir, registros de peticiones de accesos a recursos. En el caso de la autenticaci&#x00F3;n continua, se suelen utilizar las din&#x00E1;micas de comportamiento recogidas desde el teclado y las din&#x00E1;micas de comportamiento recogidas del rat&#x00F3;n.</p>
<p>La mayor&#x00ED;a de los trabajos que utilizan el ordenador personal, se centran en agrupar las interacciones de los usuarios leg&#x00ED;timos, con el objetivo de definir los comportamientos esperados para cada usuario y poder as&#x00ED; evaluarlos frente a las nuevas muestras. Por ejemplo, para el caso de los registros de navegaci&#x00F3;n, estos se suelen agrupar en sesiones. Cada una de estas sesiones est&#x00E1; formada por una secuencia de acciones, que recoge las din&#x00E1;micas de comportamiento decada usuario durante un intervalo de tiempo. De esta forma, por ejemplo, se utilizan medidas simples de similitud [<xref ref-type="bibr" rid="CIT074">74</xref>], SVM [<xref ref-type="bibr" rid="CIT075">75</xref>] y el modelo de Markov [<xref ref-type="bibr" rid="CIT076">76</xref>] para poder compararlas y clasificarlas.</p>
<p>En el caso de las propuestas en las cuales los datos provienen de sistemas de gesti&#x00F3;n de identidades, los datos normalmente consisten en secuencias de peticiones de acceso a aplicaciones, servicios o recursos. El principal objetivo de estos trabajos es determinar la legitimidad de una petici&#x00F3;n teniendo en cuenta los atributos de la misma, y poder establecer el riesgo asociado. Al igual que en el caso anterior, las aproximaciones en este &#x00E1;mbito suelen utilizar la informaci&#x00F3;n leg&#x00ED;tima para alimentar un algoritmo de aprendizaje m&#x00E1;quina. Posteriormente, este algoritmo se utiliza para comparar las nuevas muestras, y categorizarlas en leg&#x00ED;timas o no leg&#x00ED;timas acorde a un umbral de decisi&#x00F3;n. De esta forma, cuando una nueva muestra sobrepasa el umbral, el sistema lanza una alerta que puede ser utilizada para avisar a los administradores del mismo, o directamente proceder a tomar una contramedida de forma autom&#x00E1;tica como, por ejemplo, rechazar la petici&#x00F3;n. Algunos ejemplos representativos de algoritmos que se utilizan en este &#x00E1;mbito son SVM [<xref ref-type="bibr" rid="CIT077">77</xref>], NB [<xref ref-type="bibr" rid="CIT078">78</xref>], t&#x00E9;cnicas de reducci&#x00F3;n de la dimensionalidad [<xref ref-type="bibr" rid="CIT079">79</xref>] y OC-SVM [<xref ref-type="bibr" rid="CIT080">80</xref>].</p>
<p>Como se ha podido observar hasta ahora, uno de los factores que m&#x00E1;s diferencian a las propuestas analizadas es la fuente de informaci&#x00F3;n que se utiliza para dise&#x00F1;ar el modelo de an&#x00E1;lisis de comportamiento. Es por esto que es de gran importancia analizar en detalle los trabajos que encajan en cada una de estas fuentes de informaci&#x00F3;n espec&#x00ED;ficas.</p>
</sec>
<sec id="c2-s2-s2">
<label><bold>2.2.2.</bold></label>
<title><bold>Fuentes de informaci&#x00F3;n espec&#x00ED;ficas y su combinaci&#x00F3;n</bold></title>
<p>Los trabajos aqu&#x00ED; presentados se han categorizado en funci&#x00F3;n de la fuente de informaci&#x00F3;n utilizada para modelar el comportamiento de los usuarios. De este modo, se presentan tres categor&#x00ED;as de acorde a los intereses de la <target target-type="page" id="pges_56"/>presente investigaci&#x00F3;n. Estas fuentes de informaci&#x00F3;n son: teclado, rat&#x00F3;n y combinaci&#x00F3;n de informaci&#x00F3;n.</p>
<p>En cuanto a la categor&#x00ED;a del teclado, los primeros trabajos en el &#x00E1;rea empezaron a surgir en 1980 con el primer an&#x00E1;lisis de las din&#x00E1;micas de comportamiento asociadas a dicha fuente de informaci&#x00F3;n [<xref ref-type="bibr" rid="CIT081">81</xref>]. Posteriormente, los trabajos en este &#x00E1;rea empezaron a utilizar clasificadores bayesianos [<xref ref-type="bibr" rid="CIT082">82</xref>], NNs [<xref ref-type="bibr" rid="CIT083">83</xref>] o t&#x00E9;cnicas <italic>clustering</italic> [<xref ref-type="bibr" rid="CIT084">84</xref>] para modelar el comportamiento de los usuarios y poder detectar as&#x00ED; anomal&#x00ED;as en el comportamiento de los usuarios. Estas anomal&#x00ED;as entonces pod&#x00ED;an ser categorizadas como posibles brechas de seguridad. Estos trabajos, a&#x00FA;n siguen siendo de gran utilidad y permiten hoy en d&#x00ED;a obtener resultados satisfactorios a la hora de detectar comportamientos sospechosos.</p>
<p>Con el paso del tiempo han ido surgiendo nuevos trabajos que han ido utilizando otras t&#x00E9;cnicas o han probado m&#x00E1;s clasificadores para solventar el mismo problema. Por ejemplo, en [<xref ref-type="bibr" rid="CIT085">85</xref>] se utilizan 14 clasificadores, incluyendo algunos basados en la distancia de Mahalanobis, la distancia de Manhattan, KNN, NNs, K-means, l&#x00F3;gica difusa y SVMs, para comparar y analizar la eficacia de dichos clasificadores a la hora detectar impostores cuando ingresan una cierta contrase&#x00F1;a predefinida. En [<xref ref-type="bibr" rid="CIT086">86</xref>] se utiliza una <italic>Ant Colony</italic> (AC) para realizar un primer paso de selecci&#x00F3;n de caracter&#x00ED;sticas, de esta forma, se pueden ordenar por importancia y seleccionar las m&#x00E1;s representativas, aunque no sean las m&#x00E1;s convencionales en la literatura. En el trabajo [<xref ref-type="bibr" rid="CIT087">87</xref>] se presenta un m&#x00E9;todo novedoso para seleccionar las caracter&#x00ED;sticas m&#x00E1;s representativas, de forma independiente para cada usuario en particular, y posteriormente generar un modelo independiente para cada uno de ellos. Esta propuesta se basa en utilizar un modelo de estimaci&#x00F3;n de densidades gausiano, Parzen window density estimation, OC-SVM, KNN y K-means. En [<xref ref-type="bibr" rid="CIT088">88</xref>] se demuestra que, para ciertos casos de uso, las variables no agregadas son m&#x00E1;s discriminatorias a la hora de comparar din&#x00E1;micas de comportamiento recogidas del teclado. Utilizando este tipo de variables, se entrenan NB, <italic>Tree Augmented Na&#x00EF;ve Bayes</italic> (TANB), KNN y modelos de regresi&#x00F3;n log&#x00ED;stica para detectar usuarios impostores. Cabe destacar que los mejores resultados los obtienen cuando combinan vectores de variables tanto agregadas como variables no agregadas de forma simult&#x00E1;nea. En [<xref ref-type="bibr" rid="CIT089">89</xref>], se propone una t&#x00E9;cnica novedosa para transformar los vectores de caracter&#x00ED;sticas en espectrogramas de frecuencias, consiguiendo as&#x00ED; transformar los datos longitudinales (es decir, se&#x00F1;ales) en una imagen. Posteriormente, utilizan una NN basada en la optimizaci&#x00F3;n de Gauss-Newton para clasificar estas im&#x00E1;genes y poder determinar as&#x00ED;, si el vector de caracter&#x00ED;sticas original es de un impostor o por el contrario pertenece a un usuario genuino. En la propuesta [<xref ref-type="bibr" rid="CIT090">90</xref>], se utilizan NN convolucionales y recurrentes de forma combinada para generar un modelo efectivo para el conjunto de datos, bien conocido en la literatura, de Buffalo [<xref ref-type="bibr" rid="CIT091">91</xref>]. En [<xref ref-type="bibr" rid="CIT092">92</xref>] se considera utilizar <italic>Kernel Density Estimation</italic> (KDE) para compararse contra algoritmos populares en la literatura en este &#x00E1;mbito, <target target-type="page" id="pges_57"/>en multitud de conjuntos de datos como el de Clarkson, Torino y Buffalo. Por &#x00FA;ltimo, en [<xref ref-type="bibr" rid="CIT093">93</xref>], proponen utilizar una m&#x00E9;trica basada en <italic>Instance-based Tail Area Density</italic> (ITAD) para reducir el n&#x00FA;mero de interacciones necesarias para autenticar a un usuario, de esta forma, mejoran la eficiencia de los modelos y reducen latencias, no afectando a la eficacia.</p>
<p>El an&#x00E1;lisis de las din&#x00E1;micas de rat&#x00F3;n con el objetivo de autenticar usuarios comenz&#x00F3; en los a&#x00F1;os 2000 [<xref ref-type="bibr" rid="CIT094">94</xref>]. Posteriormente, en el trabajo [<xref ref-type="bibr" rid="CIT095">95</xref>], se empiezan a considerar variables relevantes como la velocidad de movimiento, la direcci&#x00F3;n, el tipo de acci&#x00F3;n que se realiza (movimiento, clic, desplazamiento de la rueda), la distancia recorrida y el tiempo transcurrido entre acciones. Este proceso de extracci&#x00F3;n de caracter&#x00ED;sticas se utiliza para generar un vector de variable que alimenta una NN obteniendo resultados satisfactorios. En el trabajo [<xref ref-type="bibr" rid="CIT096">96</xref>], tambi&#x00E9;n utilizan NN, en este caso convolucionales, recurrentes y un modelo h&#x00ED;brido que considera ambos tipos, bas&#x00E1;ndose en la propagaci&#x00F3;n de la relevancia por capas. Estos algoritmos son evaluados utilizando m&#x00FA;ltiples conjuntos de datos bien conocidos de la literatura. En [<xref ref-type="bibr" rid="CIT097">97</xref>], las variables com&#x00FA;nmente utilizadas en la literatura se categorizan en hol&#x00ED;sticas y procedimentales. Posteriormente, comparan que tipo de caracter&#x00ED;sticas son m&#x00E1;s discriminatorias a la hora de autenticar usuarios utilizando una OC-SVM. La investigaci&#x00F3;n propuesta en [<xref ref-type="bibr" rid="CIT098">98</xref>] utiliza el algoritmo de <italic>Progress-Adjusted Dynamic Time Wraping</italic> (PADTW) combinado con un algoritmo de segmentaci&#x00F3;n para transformar las variables originales y alimentar as&#x00ED; un clasificador SVM. En [<xref ref-type="bibr" rid="CIT099">99</xref>], convierten las variables temporales en im&#x00E1;genes utilizando una funci&#x00F3;n de mapeo que permite aumentar la dimensi&#x00F3;n de los datos. A continuaci&#x00F3;n, utilizan una NN convolucional para comparar las im&#x00E1;genes entre s&#x00ED; y poder determinar si los vectores originales de caracter&#x00ED;sticas pertenecen a un usuario genuino o a un usuario impostor.</p>
<p>Finalmente, est&#x00E1; surgiendo una nueva l&#x00ED;nea de investigaci&#x00F3;n que trata de combinar informaci&#x00F3;n recogida de m&#x00FA;ltiples fuentes de datos heterog&#x00E9;neas. Esto es, generar modelos de aprendizaje m&#x00E1;quina que permiten utilizar informaci&#x00F3;n del teclado y del rat&#x00F3;n simult&#x00E1;neamente. Esto se traduce en que los clasificadores generados aumentan su eficacia con respecto a solo los que utilizan una &#x00FA;nica fuente de informaci&#x00F3;n. De forma general, existen dos formas de conseguir combinar la informaci&#x00F3;n: a nivel de decisi&#x00F3;n y a nivel de caracter&#x00ED;sticas. Ambas formas de combinar la informaci&#x00F3;n presentan multitud de ventajas y mejoran de forma notable la eficacia en los sistemas de autenticaci&#x00F3;n, aunque a&#x00F1;aden cierta complejidad a los modelos finales. Las bases de la combinaci&#x00F3;n de informaci&#x00F3;n en el &#x00E1;mbito de las din&#x00E1;micas de comportamiento se fijaron en [<xref ref-type="bibr" rid="CIT0100">100</xref>]. En este trabajo, se aborda la combinaci&#x00F3;n de informaci&#x00F3;n, tanto a nivel decisi&#x00F3;n como a nivel caracter&#x00ED;sticas para el reconocimiento facial, el reconocimiento de huella dactilar y reconocimiento de las texturas y formas de la mano, mejorando considerablemente los resultados de los trabajos de la literatura existentes.</p>
<p><target target-type="page" id="pges_58"/>La combinaci&#x00F3;n a nivel de decisi&#x00F3;n se basa en generar un modelo de aprendizaje m&#x00E1;quina de forma independiente para cada una de las fuentes de informaci&#x00F3;n. De esta manera, cada modelo se entrena para con un tipo de datos espec&#x00ED;ficos. A la hora de dar una predicci&#x00F3;n en un instante concreto de tiempo, cada modelo de aprendizaje m&#x00E1;quina procesa la informaci&#x00F3;n de una fuente de informaci&#x00F3;n espec&#x00ED;fica, dando una probabilidad de pertenecer a la clase genuina o impostora hasta ese instante. Finalmente, se combinan las probabilidades de todos los modelos, obteniendo una probabilidad final y por lo tanto permitiendo categorizar muestras de m&#x00FA;ltiples fuentes de informaci&#x00F3;n.</p>
<p>En [<xref ref-type="bibr" rid="CIT0101">101</xref>] se implementa un Modelo de Confianza (MC) basado en ajustar de forma din&#x00E1;mica los pesos de los modelos independientes generados para el teclado y el rat&#x00F3;n, utilizando algoritmos gen&#x00E9;ticos. Los modelos propuestos en este trabajo son NNs y Counter-Propagation Artificial NNs y utilizan una SVM para combinar ambos modelos. Adem&#x00E1;s, proponen otro m&#x00E9;todo en el que prueban diferentes m&#x00E9;tricas de distancias como paso previo al entrenamiento de los modelos, con el objetivo de no utilizar datos de impostores en esta fase. En [<xref ref-type="bibr" rid="CIT0102">102</xref>], utilizan una combinaci&#x00F3;n basada en utilizar NB para representar cada fuente de informaci&#x00F3;n a el mismo espacio de decisi&#x00F3;n. Posteriormente, utilizan una SVM para clasificar las muestras. En [<xref ref-type="bibr" rid="CIT0103">103</xref>], eval&#x00FA;an los modelos de <italic>Random Forest</italic> (RF), SVM, <italic>Decision Tree</italic>s (DTs) y BN con el mismo objetivo, es decir, combinar la informaci&#x00F3;n a nivel de decisi&#x00F3;n. En [<xref ref-type="bibr" rid="CIT0104">104</xref>] se propone combinar informaci&#x00F3;n de contexto de la sesi&#x00F3;n con informaci&#x00F3;n de comportamiento recogida del teclado y del rat&#x00F3;n para mejorar la eficacia de los sistemas de autenticaci&#x00F3;n continua. Para evaluar su propuesta, utilizan el conjunto de datos <italic>The Wolf of SUTD</italic> (TWOS) [<xref ref-type="bibr" rid="CIT0105">105</xref>]. En primer lugar, generan un modelo que utiliza &#x00FA;nica y exclusivamente la informaci&#x00F3;n de contexto. Por otro lado, implementan otro modelo que combina tanto la informaci&#x00F3;n de teclado como la de rat&#x00F3;n, durante una sesi&#x00F3;n. La combinaci&#x00F3;n de ambos modelos se eval&#x00FA;a por medio de tres modelos: <italic>Parametric Linear Combination</italic> (PLC), un clasificador de RF y un clasificador de SVM. De esta manera, para cada sesi&#x00F3;n se eval&#x00FA;a la informaci&#x00F3;n proveniente de las tres fuentes de informaci&#x00F3;n obteniendo una &#x00FA;nica predicci&#x00F3;n.</p>
<p>La combinaci&#x00F3;n a nivel de caracter&#x00ED;sticas se basa en generar un &#x00FA;nico modelo de aprendizaje m&#x00E1;quina que permita evaluar de forma simult&#x00E1;nea las caracter&#x00ED;sticas provenientes de m&#x00FA;ltiples fuentes de informaci&#x00F3;n. De esta manera, este modelo puede clasificar una muestra que contenga informaci&#x00F3;n de una o m&#x00FA;ltiples fuentes de informaci&#x00F3;n sin necesidad de tener que entrenar un modelo para cada una de las mismas. Algunos ejemplos de trabajos en este &#x00E1;mbito se analizan a continuaci&#x00F3;n.</p>
<p>En [<xref ref-type="bibr" rid="CIT0106">106</xref>] se utiliza un <italic>Multi-kernel Learning Method</italic> (MKL) para combinar las caracter&#x00ED;sticas de las fuentes de informaci&#x00F3;n de teclado y de rat&#x00F3;n. Posteriormente, se eval&#x00FA;an los modelos de DT, RF, NB, OC-SVM y SVM entrenados con <target target-type="page" id="pges_59"/>el kernel obtenido, obteniendo resultados prometedores. En [<xref ref-type="bibr" rid="CIT0107">107</xref>] se compara tanto la combinaci&#x00F3;n a nivel de decisi&#x00F3;n como la combinaci&#x00F3;n a nivel de caracter&#x00ED;sticas. En primer lugar, para combinar a nivel de decisi&#x00F3;n se genera un modelo de NB para las din&#x00E1;micas de teclado y una SVM para las din&#x00E1;micas de rat&#x00F3;n. Posteriormente, ensamblan ambos modelos utilizando un J48 DT para combinar las predicciones obtenidas para cada modelo de forma independiente. A nivel de caracter&#x00ED;sticas, se utiliza <italic>Principal Component Analysis</italic> (PCA) para realizar la combinaci&#x00F3;n y posteriormente evaluar los modelos BN, J48 y SVM de forma independiente. Cabe destacar, que tambi&#x00E9;n utilizan una tercera fuente de informaci&#x00F3;n proveniente de las interacciones que realizan los usuarios con la interfaz gr&#x00E1;fica. Por &#x00FA;ltimo, en [<xref ref-type="bibr" rid="CIT0108">108</xref>] proponen utilizar estas t&#x00E9;cnicas de combinaci&#x00F3;n de la informaci&#x00F3;n a nivel de caracter&#x00ED;sticas utilizando fuentes de informaci&#x00F3;n provenientes de los sensores de los tel&#x00E9;fonos inteligentes. Nuevamente, se confirma que la combinaci&#x00F3;n de informaci&#x00F3;n supone una gran ventaja a la hora de aumentar la precisi&#x00F3;n y eficacia para detectar comportamientos sospechosos, frente a las propuestas que no lo utilizan.</p>
<p>La <xref ref-type="tab" rid="c2-tab4">Tabla 2.4</xref> muestra los trabajos relacionados con el m&#x00E9;todo propuesto. Las propuestas que &#x00FA;nicamente utilizan una fuente de informaci&#x00F3;n (es decir, &#x00FA;nica y exclusivamente teclado o rat&#x00F3;n), han sido reducidas y seleccionadas de acorde a la relaci&#x00F3;n con la presente propuesta, debido al gran n&#x00FA;mero de trabajos en este &#x00E1;mbito.</p>
<table-wrap id="c2-tab4">
<label>Tabla 2.4:</label>
<caption><title>Comparaci&#x00F3;n de trabajos previos relacionados con el an&#x00E1;lisis de comportamiento. <italic>T</italic> y <italic>R</italic> representan las din&#x00E1;micas de teclado y de rat&#x00F3;n respectivamente. <italic>C</italic> se refiere a informaci&#x00F3;n de contexto. La columna datos representa el conjunto de datos utilizado el trabajo espec&#x00ED;fico. La columna interacci&#x00F3;n libre representa si el conjunto de datos contiene din&#x00E1;micas de comportamiento recogidas en un entorno en el que el usuario es libre de interactuar con el sistema sin realizar una tarea predeterminada.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Trabajo</bold></th>
<th valign="top" align="left"><bold>Din&#x00E1;mica de Comportamiento</bold></th>
<th valign="top" align="left"><bold>M&#x00E9;todo</bold></th>
<th valign="top" align="left"><bold>Nivel de combinaci&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>Datos</bold></th>
<th valign="top" align="left"><bold>Interacci&#x00F3;n Libre</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT085">85</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">14 clasificadores</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">.tie5Roanl</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT086">86</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">DT + SVM + AC</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT087">87</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">Gauss + Parzen + OC-SVM + k-NN + K-means</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT088">88</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">NB + TANB + KNN</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT089">89</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">NNs</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT090">90</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">NNs</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Buffalo</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT092">92</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">KDE</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Buffalo + Clarkson + Torino</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT093">93</xref>]</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">ITAD</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Buffalo</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT095">95</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">NNs</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT096">96</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">NNs</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Balabit + TWOS</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT097">97</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">OC-SVM</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT098">98</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">PADTW</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Propio+ [ 97]</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT099">99</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">NNs</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">Balabit</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0101">101</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">MC +NNs +SVM</td>
<td valign="top" align="left">Decisi&#x00F3;n</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0102">102</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">NB + SVM</td>
<td valign="top" align="left">Decisi&#x00F3;n</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0109">109</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">BN + BFS</td>
<td valign="top" align="left">Decisi&#x00F3;n</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0103">103</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">RF+ SVM+ DT+ BN</td>
<td valign="top" align="left">Decisi&#x00F3;n</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0104">104</xref>]</td>
<td valign="top" align="left">T + R+ C</td>
<td valign="top" align="left">RF+SVM+PLC</td>
<td valign="top" align="left">Decisi&#x00F3;n</td>
<td valign="top" align="left">TWOS</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0106">106</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">MKL + DT + RF + NB+ OC-SVM + SVM</td>
<td valign="top" align="left">Caracter&#x00ED;sticas</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0107">107</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">BN + J48 + SVM</td>
<td valign="top" align="left">Decisi&#x00F3;n y Caracter&#x00ED;sticas</td>
<td valign="top" align="left">Propio</td>
<td valign="top" align="left">Si</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="c2-s3">
<label><bold>2.3.</bold></label>
<title><bold>Limitaciones de los trabajos previos</bold></title>
<p>Despu&#x00E9;s de analizar en profundidad el estado del arte, se han encontrado las siguientes limitaciones:</p>
<list list-type="bullet">
<list-item><p>Las principales l&#x00ED;neas de investigaci&#x00F3;n y soluciones para mejorar los niveles de seguridad est&#x00E1;n orientadas al enriquecimiento de las peticiones y/o de los <italic>tokens</italic>, a realizar una mejora en la gesti&#x00F3;n de las sesiones de usuario, a la mejora de la propia implementaci&#x00F3;n por medio de las APIs y SDKs ofrecidas, a la mejora de los flujos de informaci&#x00F3;n, al uso de criptograf&#x00ED;a a diferentes niveles o a la creaci&#x00F3;n de pol&#x00ED;ticas o sistemas de reputaci&#x00F3;n. No se conocen metodolog&#x00ED;as o flujos de trabajo para integrar el an&#x00E1;lisis de comportamiento en los sistemas de gesti&#x00F3;n de identidades federados con el objetivo de mejorar la seguridad de los mismos.</p></list-item>
<list-item><p>Los trabajos previos que proponen utilizar t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos para solventar los procesos de IAAA se suelen centrar principalmente en la autenticaci&#x00F3;n adaptativa, ya sea centralizada o distribuida. En casi ning&#x00FA;n caso, estas soluciones se integran dentro de un protocolo, <italic>framework</italic> o est&#x00E1;ndar de gesti&#x00F3;n de identidades, y mucho menos en los est&#x00E1;ndares federados en los que se tiene en cuenta a un IdP externo.</p></list-item>
<list-item><p><target target-type="page" id="pges_60"/><target target-type="page" id="pges_61"/><target target-type="page" id="pges_62"/>Los trabajos previos para detectar anomal&#x00ED;as de comportamientos se suelen centrar en un dominio espec&#x00ED;fico de aplicaci&#x00F3;n. Esto hace que los modelos puedan estar sesgados y no sean capaces de generalizar correctamente.</p></list-item>
<list-item><p>El n&#x00FA;mero de trabajos de an&#x00E1;lisis de comportamiento que combinan informaci&#x00F3;n es muy reducido, siendo m&#x00E1;s notable en el caso de la combinaci&#x00F3;n a nivel de caracter&#x00ED;sticas. Sin embargo, estos trabajos son los que suelen obtener mejores resultados en cuanto a eficacia a la hora de detectar comportamientos an&#x00F3;malos.</p></list-item>
<list-item><p>Existen una falta de conjuntos de datos p&#x00FA;blicamente disponibles que contengan din&#x00E1;micas de comportamiento. Esto se ve reflejado en que la mayor&#x00ED;a de propuestas utilizan conjuntos de datos propios recogidos normalmente en un entorno de laboratorio.</p></list-item>
</list>
<p>De aqu&#x00ED; en adelante se trata de superar todas estas limitaciones encontradas. Para ello se propone un flujo de trabajo para integrar las t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento dentro de las especificaciones de gesti&#x00F3;n de identidades federadas. Posteriormente se propone un modelo novedoso de an&#x00E1;lisis de comportamientos que permite combinar informaci&#x00F3;n a nivel de caracter&#x00ED;sticas. Finalmente se eval&#x00FA;an dichas propuestas y se detalla la creaci&#x00F3;n de un conjunto de datos espec&#x00ED;fico que contiene din&#x00E1;micas de comportamiento.</p>
</sec>
</body>
</book-part>
<book-part id="c3" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>CAP&#x00CD;TULO 3</label>
<title><target target-type="page" id="pges_63"/>FLUJO DE TRABAJO PARA LA INTEGRACI&#x00D3;N EN LOS EST&#x00C1;NDARES FEDERADOS</title>
</title-group>
</book-part-meta>
<body>
<p>En este cap&#x00ED;tulo se propone un flujo de trabajo, que cualquier RP puede implementar, para integrar las t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos en los esquemas de gesti&#x00F3;n de identidades federados (p. ej. OAuth y OIDC) [<xref ref-type="bibr" rid="CIT0110">110</xref>]. Tal y como se ha podido ver en el cap&#x00ED;tulo del estado del arte (<xref ref-type="sec" rid="c2-s1">Secci&#x00F3;n 2.1</xref>), en las especificaciones federadas, las credenciales de los usuarios son almacenadas por el IdP. Cuando un usuario trata de acceder a un recurso, servicio o aplicaci&#x00F3;n (es decir, SP o en el entorno federado RP), la RP conf&#x00ED;a en el IdP para solventar los procesos de IAAA. De este modo, el usuario final se autentica de forma externa a la RP, es decir, en el IdP, obteniendo una acreditaci&#x00F3;n en forma de <italic>token</italic>. Finalmente, el usuario final utiliza este <italic>token</italic> para comunicarse con la RP, y poder as&#x00ED; interactuar con ella.</p>
<p>La soluci&#x00F3;n propuesta en esta tesis doctoral para mejorar la seguridad de estos esquemas federados se basa en utilizar los modelos de an&#x00E1;lisis de comportamientos. Cuando una RP utiliza un flujo federado para solventar los procesos de IAAA, est&#x00E1; delegando parte de la seguridad en el IdP. Sin embargo, delegar los procesos de IAAA en un agente externo no tiene por qu&#x00E9; significar delegar todos los aspectos de la seguridad como, por ejemplo, desde el punto de vista de la prevenci&#x00F3;n o de la detecci&#x00F3;n.</p>
<p>La RP tiene un rol muy significativo a la hora de proteger a sus usuarios de recibir un ciberataque como, por ejemplo, ataques de suplantaci&#x00F3;n de identidad, ya que los usuarios interact&#x00FA;an la mayor parte del tiempo con ella. Cuando se utiliza un esquema de gesti&#x00F3;n de identidades federado, la mayor&#x00ED;a de las partes implicadas asumen que la seguridad pasa a ser responsabilidad del IdP en exclusiva, siendo esta una suposici&#x00F3;n err&#x00F3;nea. Tanto IdP como RP deben estar concienciados en asumir su responsabilidad en cuanto a la seguridad, para poder proteger a los usuarios de las posibles amenazas que existen.</p>
<p>De aqu&#x00ED; en adelante, se detalla el flujo de trabajo propuesto, que puede utilizar cualquier RP con el objetivo de mejorar los niveles de seguridad proporcionados al usuario final. Este flujo de trabajo se centra en la prevenci&#x00F3;n y detecci&#x00F3;n de ataques de suplantaci&#x00F3;n de identidades por medio del robo de credenciales o secuestros de sesi&#x00F3;n. Se basa en utilizar t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento, y en los detalles de integraci&#x00F3;n con los principales est&#x00E1;ndares de gesti&#x00F3;n de identidades.</p>
<sec id="c3-s1">
<label><target target-type="page" id="pges_64"/><bold>3.1.</bold></label>
<title><bold>Arquitectura y premisas</bold></title>
<p>A lo largo de este cap&#x00ED;tulo se asume una arquitectura federada en la que existen tres roles principales: el EU, el IdP y la RP.</p>
<p>Las RPs necesitan conocimiento acerca del comportamiento de sus usuarios. Este conocimiento se suele extraer de diferentes tecnolog&#x00ED;as, interfaces o APIs que son capaces de recopilar informaci&#x00F3;n relativa al software o hardware utilizado por el EU, aspectos de configuraci&#x00F3;n (ya sea del sistema o del cliente web utilizado) y de su comportamiento. Toda esta informaci&#x00F3;n se utiliza para generar una huella digital, capaz de identificar &#x00FA;nica y exclusivamente a cada EU.</p>
<p>Una huella digital puede suponer una invasi&#x00F3;n para la privacidad de los usuarios de los que se recopila informaci&#x00F3;n. Estas huellas se pueden utilizar para fines como el perfilado de usuario o para la personalizaci&#x00F3;n de contenido publicitario, lo cual puede suponer un rechazo por parte de los usuarios y, por consiguiente, la negativa a su adopci&#x00F3;n [<xref ref-type="bibr" rid="CIT0111">111</xref>]. Hoy en d&#x00ED;a, existen multitud de trabajos de investigaci&#x00F3;n y de productos finales de empresas privadas que protegen a los clientes web y a las aplicaciones de los usuarios, bloqueando los c&#x00F3;digos encargados de la recopilaci&#x00F3;n de la informaci&#x00F3;n o cambiando los valores de los atributos que estos recopilan [<xref ref-type="bibr" rid="CIT0112">112</xref>].</p>
<p>Por todo lo expuesto anteriormente, en este trabajo se asumen las siguientes premisas:</p>
<list list-type="bullet">
<list-item><p>Existe suficiente diversidad en el comportamiento de los usuarios como para poder generar una huella digital, &#x00FA;nica y identificativa para cada usuario.</p></list-item>
<list-item><p>La RP no colabora con el IdP para generar esta huella, ni para analizarla y detectar posibles anomal&#x00ED;as que suponen una brecha de seguridad para la RP. Esto quiere decir que, la RP es capaz de seguir el flujo de trabajo propuesto de forma independiente y utilizando &#x00FA;nica y exclusivamente sus propios recursos.</p></list-item>
<list-item><p>La RP informa a los usuarios del flujo de trabajo que va a utilizar con el objetivo de mejorar los niveles de seguridad ofrecidos. M&#x00E1;s concretamente, la RP informa a los usuarios que este flujo de trabajo puede prevenir y detectar ataques de robo de credenciales y de secuestro de sesi&#x00F3;n.</p></list-item>
<list-item><p>La RP cumple con las garant&#x00ED;as de privacidad y protecci&#x00F3;n de datos (Reglamento General de Protecci&#x00F3;n de Datos (RGPD) y Ley Org&#x00E1;nica de Protecci&#x00F3;n de Datos de Car&#x00E1;cter Personal (LOPD)). Adem&#x00E1;s, sigue los principios de privacidad desde el dise&#x00F1;o minimizando la recogida de informaci&#x00F3;n, <target target-type="page" id="pges_65"/>obteniendo el necesario consentimiento expl&#x00ED;cito e informado del usuario final, y garantizando los niveles adecuados de transparencia.</p></list-item>
</list>
</sec>
<sec id="c3-s2">
<label><bold>3.2.</bold></label>
<title><bold>Casos de uso</bold></title>
<p>En general, el flujo de trabajo propuesto a continuaci&#x00F3;n puede ser implementado por cualquier RP para mejorar los niveles de seguridad cuando se utiliza un est&#x00E1;ndar de gesti&#x00F3;n de identidades federado para realizar los procesos de IAAA. M&#x00E1;s espec&#x00ED;ficamente, este flujo de trabajo permite mejorar los niveles de seguridad a&#x00F1;adiendo nuevos mecanismos para el control de accesos utilizando los sistemas basados en riesgos, la autenticaci&#x00F3;n continua y los sistemas de alerta temprana. Se han seleccionado estos tres casos de uso representativos, en los que la implantaci&#x00F3;n del flujo de trabajo es de utilidad:</p>
<list list-type="bullet">
<list-item><p>Caso de uso 1: una RP decide utilizar el nivel de garant&#x00ED;a (en ingl&#x00E9;s, <italic>Level of Assurance</italic> [LoA]) en la petici&#x00F3;n de autenticaci&#x00F3;n. De esta manera, utilizando el LoA, una RP puede especificar el grado de confianza que requiere al IdP para poder autenticar a un usuario (uno o dos factores de autenticaci&#x00F3;n, factores biom&#x00E9;tricos o criptograf&#x00ED;a). Normalmente, el LoA se define de forma est&#x00E1;tica, sin embargo, gracias al uso del flujo de trabajo propuesto, este valor se puede fijar de forma din&#x00E1;mica en funci&#x00F3;n de los valores devueltos por los modelos de an&#x00E1;lisis de comportamientos. Por ejemplo, un comercio electr&#x00F3;nico en el que un usuario realiza una compra desde un navegador totalmente distinto al que suele utilizar, y sus din&#x00E1;micas de comportamiento del uso del teclado y rat&#x00F3;n son an&#x00F3;malas. En este caso, la RP puede solicitar al IdP un LoA mayor, de tal manera que el EU debe mostrar m&#x00E1;s autenticadores para terminar satisfactoriamente el proceso de autenticaci&#x00F3;n. Este comportamiento an&#x00F3;malo es un signo de una posible suplantaci&#x00F3;n de identidad. En caso de que el usuario sea leg&#x00ED;timo podr&#x00E1; demostrarlo por medio de m&#x00E1;s autenticadores, mientras que para un atacante ser&#x00E1; m&#x00E1;s dif&#x00ED;cil o imposible.</p></list-item>
<list-item><p>Caso de uso 2: una RP decide implantar un mecanismo de autenticaci&#x00F3;n continua durante las sesiones de sus usuarios. En el flujo de trabajo propuesto, estos mecanismos de autenticaci&#x00F3;n continua son implementados mediante modelos de an&#x00E1;lisis de comportamientos. De esta manera, el EU deber&#x00E1; de presentar los autenticadores necesarios, cuando la RP lo considere a lo largo de una sesi&#x00F3;n, teniendo en cuenta los comportamientos an&#x00F3;malos detectados por los modelos de an&#x00E1;lisis de comportamientos. Este proceso le permitir&#x00E1; quedar autenticado recibiendo los <italic>tokens</italic> pertinentes. Nuevamente, estos comportamientos an&#x00F3;malos pueden estar vinculados a un evento que no sea necesariamente un incidente de ciberseguridad, o por el contrario pueden ser debidos a un secuestro de sesi&#x00F3;n, el cual quedar&#x00ED;a bloqueado gracias a esta propuesta.</p></list-item>
<list-item><p><target target-type="page" id="pges_66"/>Caso de uso 3: una RP decide almacenar el hist&#x00F3;rico de comportamiento de todos los EU. En este sentido, el an&#x00E1;lisis de toda esta informaci&#x00F3;n se prepara para ser procesado de forma peri&#x00F3;dica (p. ej. cada noche o cada semana). Los modelos de an&#x00E1;lisis de comportamientos determinan si se han detectado comportamientos an&#x00F3;malos, de tal manera que se levanten alertas en caso afirmativo. De esta forma, tanto los EU como las RPs pueden tomar las acciones necesarias teniendo en cuenta estas alertas. Este procesamiento no se realiza en tiempo real, como sucede en los casos de uso 1 y 2. La gran ventaja de este caso de uso es que la no tener el requisito de procesar la informaci&#x00F3;n en tiempo real, los modelos de an&#x00E1;lisis de comportamientos tienden a ser m&#x00E1;s precisos y eficaces. Por otro lado, la desventaja es que la brecha de seguridad ya habr&#x00E1; sucedido y por tanto no se podr&#x00E1; evitar, &#x00FA;nicamente se podr&#x00E1; levantar una alerta para tener constancia de su ocurrencia.</p></list-item>
</list>
<p>Tal y como se ha comentado en el estado del arte, la gesti&#x00F3;n de identidades no solo es aplicable a usuarios, sino tambi&#x00E9;n a entidades (p. ej. sensores en entornos IoT). Cabe destacar, que los casos de uso aqu&#x00ED; propuestos tambi&#x00E9;n son de utilidad para esta casu&#x00ED;stica. Por ejemplo, la fase de alta o <italic>enrollment</italic> en sensores en una ciudad inteligente puede ser muy costosa debido a la gran escala de este tipo de proyectos. El an&#x00E1;lisis de comportamiento es de gran utilidad para solventar este caso de uso, as&#x00ED; como sus fases posteriores de autenticaci&#x00F3;n y autorizaci&#x00F3;n [<xref ref-type="bibr" rid="CIT0113">113</xref>]. Otro caso de uso en este &#x00E1;mbito es la detecci&#x00F3;n de intrusiones analizando el tr&#x00E1;fico de red de las comunicaciones de los sensores [<xref ref-type="bibr" rid="CIT0114">114</xref>].</p>
</sec>
<sec id="c3-s3">
<label><bold>3.3.</bold></label>
<title><bold>Flujo de trabajo</bold></title>
<p>El flujo de trabajo propuesto en esta tesis doctoral, proporciona a las RPs las l&#x00ED;neas generales para integrar soluciones basadas en el an&#x00E1;lisis de comportamiento dentro de los esquemas de gesti&#x00F3;n de identidades federados. Este flujo est&#x00E1; pensado para poder ser utilizado en todos los casos de uso detallados en la <xref ref-type="sec" rid="c3-s2">Secci&#x00F3;n 3.2</xref>. Estos casos de uso pueden ser previos o posteriores a la autenticaci&#x00F3;n, algunos son <italic>offline</italic> y otros son <italic>online</italic>. Adem&#x00E1;s, los recursos de computaci&#x00F3;n o los datos recopilados, as&#x00ED; como los consentimientos necesarios por parte de los EU son muy diversos.</p>
<p>En la <xref ref-type="fig" rid="fig-3-1">Figura 3.1</xref> se muestra el flujo general que han de seguir todos los agentes que interact&#x00FA;an en un flujo federado de gesti&#x00F3;n de identidades. Es decir, esta figura extrapola el funcionamiento de cualquier est&#x00E1;ndar de gesti&#x00F3;n de identidades federado, y el lugar donde se integran las t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento y cada caso de uso. Estos pasos no est&#x00E1;n enumerados, pues se pueden realizar de forma as&#x00ED;ncrona, es decir, los agentes pueden ir avanzando y volviendo a pasos anteriores en funci&#x00F3;n del estado en el que se encuentren.</p>
<fig id="fig-3-1">
<label>Figura 3.1:</label>
<caption><title>Visi&#x00F3;n global de la integraci&#x00F3;n del an&#x00E1;lisis de comportamiento en un est&#x00E1;ndar federado.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-3-1.jpg"/>
</fig>
<p><target target-type="page" id="pges_67"/>En la <xref ref-type="fig" rid="fig-3-2">Figura 3.2</xref> se detallan los pasos precisos que ha de seguir cualquier RP para integrar las t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos dentro del flujo visto en la <xref ref-type="fig" rid="fig-3-1">Figura 3.1</xref>. Consta de cinco pasos fundamentales: la selecci&#x00F3;n de la huella digital, la generaci&#x00F3;n de la huella digital, el modelado de las huellas digitales, la evaluaci&#x00F3;n de los modelos generados y su integraci&#x00F3;n en los flujos de informaci&#x00F3;n de los est&#x00E1;ndares federados. Cabe destacar, que una RP puede avanzar y retroceder en la realizaci&#x00F3;n de estos pasos en funci&#x00F3;n de los resultados parciales obtenidos en los mismos con el objetivo de lograr una integraci&#x00F3;n satisfactoria.</p>
<fig id="fig-3-2">
<label>Figura 3.2:</label>
<caption><title>Flujo de trabajo para la integraci&#x00F3;n del an&#x00E1;lisis de comportamiento en un est&#x00E1;ndar federado.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-3-2.jpg"/>
</fig>
<p>El primer paso es definir y seleccionar la huella digital. Para ello tiene que utilizar informaci&#x00F3;n de comportamiento y atributos lo suficientemente relevantes y descriptivos para que cada huella sea &#x00FA;nica. De esta forma, las huellas son distinguibles entre s&#x00ED; y por tanto se pueden detectar anomal&#x00ED;as de comportamientos.</p>
<p><target target-type="page" id="pges_68"/>El segundo paso se centra en generar esta huella digital considerando la informaci&#x00F3;n y atributos previamente seleccionados. Para ello se debe utilizar la informaci&#x00F3;n recopilada y limpiar la informaci&#x00F3;n no relevante (ruido), realizar un preprocesamineto de los datos y transformarlos en variables descriptivas que puedan ser utilizados por los algoritmos de aprendizaje m&#x00E1;quina. Posteriormente, el conocimiento extra&#x00ED;do en forma de variables descriptivas ha de almacenarse de forma eficiente en una base de datos robusta y escalable. Adem&#x00E1;s, se han de definir procesos para verificar que las huellas digitales son v&#x00E1;lidas a lo largo del tiempo, ya que estas din&#x00E1;micas y pueden ir cambiando y poder as&#x00ED; actualizarlas.</p>
<p>El tercer paso es modelar las huellas digitales. Para ello se va a hacer uso de los modelos de an&#x00E1;lisis de comportamiento (es decir, modelos de aprendizaje m&#x00E1;quina) espec&#x00ED;ficos que permiten realizar la detecci&#x00F3;n de anomal&#x00ED;as. Estos algoritmos se nutren del conocimiento extra&#x00ED;do en el segundo paso, por lo que, si este segundo paso no se realiza de forma &#x00F3;ptima, es de esperar que el resultado obtenido para el tercer paso no sea tampoco &#x00F3;ptimo. Los modelos de an&#x00E1;lisis de comportamientos tienen que permitir comparar nuevos comportamientos con las huellas digitales generadas, con el objetivo de poder encontrar anomal&#x00ED;as y por consiguiente detectar posibles brechas de seguridad. Para obtener buenos resultados, una RP ha de considerar una m&#x00E9;trica de similitud o distancias entre huellas digitales precisa. Posteriormente, ha de ser capaz de fijar un umbral de decisi&#x00F3;n a partir del cual una muestra analizada se considere leg&#x00ED;tima o una anomal&#x00ED;a. Finalmente, al igual que con la generaci&#x00F3;n de huellas digitales, los modelos de aprendizaje m&#x00E1;quina han de estar preparados para reentrenarse con el objetivo de considerar los cambios de comportamiento intr&#x00ED;nsecos que surgen en los propios usuarios. Esto &#x00FA;ltimo, tambi&#x00E9;n se puede realizar considerando un modelo de entrenamiento online, es decir, un modelo que va entren&#x00E1;ndose a medida que va realizando nuevas predicciones en el sistema.</p>
<p><target target-type="page" id="pges_69"/>El cuarto paso es evaluar los modelos de an&#x00E1;lisis de comportamientos, elaborados en el paso anterior. Este proceso permite detectar posibles errores de dise&#x00F1;o que no se han considerado en un primer momento como, por ejemplo, que las huellas digitales seleccionadas y generadas en los pasos previos, no son lo suficientemente descriptivas como para ser funcionales. Adem&#x00E1;s, permite determinar si los modelos de aprendizaje m&#x00E1;quina obtenidos se comportan de la manera esperada, es decir, si permiten detectar anomal&#x00ED;as de comportamiento, son robustos y tienen capacidad de generalizaci&#x00F3;n. En caso de que no se comporten de la manera esperada, la RP ha de evaluar los motivos y solventarlos volviendo atr&#x00E1;s a alguno de los pasos anteriores. Cabe destacar, que las m&#x00E9;tricas est&#x00E1;ndares de evaluaci&#x00F3;n de modelos de aprendizaje m&#x00E1;quina no son lo suficientemente descriptivas en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento. Es por esto que se suelen utilizar m&#x00E9;tricas espec&#x00ED;ficas para este dominio.</p>
<p>Finalmente, la quinta tarea es la integraci&#x00F3;n del flujo de trabajo en los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados. Este proceso depende espec&#x00ED;ficamente del est&#x00E1;ndar donde se quiera integrar el flujo. En este trabajo se establecen la l&#x00ED;neas y procedimientos que una RP ha de considerar como, por ejemplo, modificar lo menos posible los flujos de informaci&#x00F3;n ya determinados por los est&#x00E1;ndares y utilizar los propios mecanismos que estos est&#x00E1;ndares proveen para modificarlos en caso de ser necesario. Adem&#x00E1;s, al realizar esta integraci&#x00F3;n y teniendo en cuenta los aspectos relativos a la privacidad, la RP ha de informar a los usuarios de la recopilaci&#x00F3;n y tratamiento de los datos que se van a realizar.</p>
<p>De aqu&#x00ED; en adelante, se va a analizar cada una de estas tareas en detalle.</p>
<sec id="c3-s3-s1">
<label><bold>3.3.1.</bold></label>
<title><bold>Selecci&#x00F3;n de huella digital</bold></title>
<p>En esta secci&#x00F3;n se proponen una serie de atributos que cualquier RP puede utilizar para generar una huella digital con el objetivo de poder completar el flujo de trabajo propuesto. Cabe destacar, que es imposible definir una huella digital general que sirva como soluci&#x00F3;n a todas y cada una de las RPs. Esto se debe a que, existen multitud de RPs de naturaleza totalmente distinta (p. ej. aplicaci&#x00F3;n web, aplicaci&#x00F3;n m&#x00F3;vil) y que poseen recursos totalmente diferentes y heterog&#x00E9;neos para contemplar multitud de casos de uso en distintos dominios. Es por esto que cada RP ha de decidir un m&#x00ED;nimo de atributos que garantice los niveles de seguridad necesarios en funci&#x00F3;n de sus necesidades.</p>
<p>Debe existir una soluci&#x00F3;n equilibrada entre eficacia y privacidad. Esto se debe a que, cuanto mayor sea el n&#x00FA;mero de atributos seleccionados, m&#x00E1;s eficaces ser&#x00E1;n los modelos de an&#x00E1;lisis de comportamientos a la hora de detectar posibles brechas de seguridad. Sin embargo, a medida que el n&#x00FA;mero de <target target-type="page" id="pges_70"/>atributos aumenta, el proceso de recolecci&#x00F3;n de la informaci&#x00F3;n ser&#x00E1; m&#x00E1;s costoso y adem&#x00E1;s ser&#x00E1; m&#x00E1;s invasivo para la privacidad del usuario final. Un claro ejemplo de este equilibrio se puede encontrar en la diferencia de aumentar la seguridad de una aplicaci&#x00F3;n financiera y en una red social. En el caso de la aplicaci&#x00F3;n financiera, posiblemente un usuario prefiera sacrificar privacidad a cambio de obtener un nivel de seguridad m&#x00E1;s alto, no siendo as&#x00ED; para proteger su perfil en una red social. Toda RP dispuesta a integrar este flujo de trabajo ha de asegurarse el cumplimiento de la normativa sobre privacidad y protecci&#x00F3;n de datos vigente.</p>
<p>Todos los atributos propuestos se pueden ver categorizados en la <xref ref-type="fig" rid="fig-3-3">Figura 3.3</xref>. En primer lugar, estos atributos se dividen en est&#x00E1;ticos y din&#x00E1;micos. Los atributos est&#x00E1;ticos est&#x00E1;n compuestos mayoritariamente por informaci&#x00F3;n de contexto. Estos atributos se consideran est&#x00E1;ticos, porque suelen cambiar nada o muy poco a lo largo del tiempo. Por otro lado, los atributos din&#x00E1;micos representan las interacciones del usuario final con la RP. Estos atributos son muy cambiantes a lo largo del tiempo. Muchos de los atributos est&#x00E1;ticos est&#x00E1;n definidos por un conjunto finito de posibles valores, por lo que, pueden existir muchos usuarios con valores similares o id&#x00E9;nticos, mientras que los atributos din&#x00E1;micos pueden tomar valores muy heterog&#x00E9;neos (p. ej. no existe un patr&#x00F3;n &#x00FA;nico de comportamiento en las din&#x00E1;micas de teclado que agrupe un conjunto amplio de usuarios). El grupo de atributos est&#x00E1;ticos que garantiza la suficiente singularidad en las huellas digitales, es decir, sus valores presentan la suficiente diversidad como para que la huella digital sea &#x00FA;nica, son los siguientes:</p>
<fig id="fig-3-3">
<label>Figura 3.3:</label>
<caption><title>Tipos de atributos de la huella digital.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-3-3.jpg"/>
</fig>
<list list-type="bullet">
<list-item><p>Codificaci&#x00F3;n del contenido: normalmente un algoritmo de compresi&#x00F3;n que el navegador soporta.</p></list-item>
<list-item><p>Idioma del contenido: preferencias de lenguaje seleccionado por el usuario en el navegador.</p></list-item>
<list-item><p>Cabeceras HTTP: par&#x00E1;metros contenidos en las cabeceras de las peticiones HTTP.</p></list-item>
<list-item><p>Lista de plugins: plugins instalados en el navegador. Por ejemplo, <italic>Java, Flash, o Silver-light</italic>.</p></list-item>
<list-item><p><italic>Cookies</italic> habilitadas: configuraci&#x00F3;n de <italic>cookies</italic> en el navegador.</p></list-item>
<list-item><p>Tipo de almacenamiento: mecanismos de almacenamiento soportados por el navegador (local, <italic>indexedDB</italic>, sesi&#x00F3;n, <italic>Web-SQL</italic>, etc.).</p></list-item>
<list-item><p>Seguimiento: cabecera que se incluye cuando no se desea obtener seguimiento de ciertas p&#x00E1;ginas o aplicaciones web.</p></list-item>
<list-item><p><target target-type="page" id="pges_71"/>Bloqueador de anuncios: software instalado que bloquea la publicidad agresiva o que afecta a la privacidad del usuario en el navegador.</p></list-item>
<list-item><p><italic>WebGL</italic>: <italic>WebGL</italic> es una API para renderizar los gr&#x00E1;ficos en el navegador. Esta API permite obtener diferentes atributos relacionados con el navegador instalado.</p></list-item>
<list-item><p>Agente de usuario: informaci&#x00F3;n relacionada con el navegador y sistema operativo utilizado por el usuario.</p></list-item>
<list-item><p>Resoluci&#x00F3;n de pantalla, profundidad del color y densidad de p&#x00ED;xeles: informaci&#x00F3;n relacionada con la tarjeta gr&#x00E1;fica utilizada y los drivers instalados.</p></list-item>
<list-item><p>Canvas: script que se utiliza para renderizar el texto y gr&#x00E1;ficos de HTML. Proporciona informaci&#x00F3;n del software y el hardware del usuario.</p></list-item>
<list-item><p>Direcci&#x00F3;n IP: identifica la fuente de comunicaci&#x00F3;n.</p></list-item>
<list-item><p>TCP/IP: puertos abiertos, DNS utilizado, configuraci&#x00F3;n NAT, etc.</p></list-item>
<list-item><p><target target-type="page" id="pges_72"/>Geolocalizaci&#x00F3;n: obtenida por medio de inferencia por la red usada o por APIs espec&#x00ED;ficas.</p></list-item>
<list-item><p>Zona horaria: zona horaria seleccionada en la configuraci&#x00F3;n del navegador.</p></list-item>
</list>
<p>La recomendaci&#x00F3;n que se propone en esta tesis doctoral para seleccionar los atributos est&#x00E1;tcos es la de seleccionar al menos un atributo de cada una de las categor&#x00ED;as siempre y cuando sea posible.</p>
<p>Por otro lado, los atributos din&#x00E1;micos est&#x00E1;n fuertemente ligados al dispositivo que se utiliza para acceder a la RP. Por ejemplo, las din&#x00E1;micas de teclado, rat&#x00F3;n o el uso de sensores de entrada como el micr&#x00F3;fono o c&#x00E1;mara, est&#x00E1;n muy ligados a dispositivos como un ordenador personal. Sin embargo, sensores m&#x00E1;s espec&#x00ED;ficos como el giroscopio, aceler&#x00F3;metro o el sensor de una pantalla t&#x00E1;ctil est&#x00E1;n ligados a dispositivos como tel&#x00E9;fonos m&#x00F3;viles inteligente o tabletas. Cabe destacar que, algunos atributos din&#x00E1;micos pueden ser generales, es decir, pueden ser recopilados independientemente del dispositivo utilizado, como las trazas de interacci&#x00F3;n con una interfaz gr&#x00E1;fica, los nodos visitados y rutas seguidas para realizar una tarea concreta, etc.</p>
<p>A continuaci&#x00F3;n, se definen una serie de perfiles para que las RPs puedan tener unas bases para seleccionar unos atributos u otros. Estos perfiles se basan en estudios del estado del arte que tratan de analizar la entrop&#x00ED;a o singularidad que proporcionan cada uno de estos atributos a la hora de generar una huella digital, as&#x00ED; como la facilidad de recopilaci&#x00F3;n de los mismos, y la posible aceptaci&#x00F3;n que un usuario puede tener a la hora de permitir recopilarlos (debido a la invasi&#x00F3;n de la privacidad que puede suponer recopilar ciertos atributos). Para los atributos est&#x00E1;ticos cabe destacar los trabajos [<xref ref-type="bibr" rid="CIT0115">115</xref>], [<xref ref-type="bibr" rid="CIT0116">116</xref>], mientras que para los atributos din&#x00E1;micos el estudio realizado en [<xref ref-type="bibr" rid="CIT0117">117</xref>], [<xref ref-type="bibr" rid="CIT0118">118</xref>]. Estos perfiles distinguen, en primer lugar, por RPs accesibles desde web o desde un entorno m&#x00F3;vil, y en segundo lugar se categorizan en tres niveles de seguridad (b&#x00E1;sico, medio y alto). Estos niveles de seguridad son incrementales, es decir, los niveles superiores incluyen los atributos seleccionados para los niveles inferiores. A continuaci&#x00F3;n, se detallan los atributos espec&#x00ED;ficos que se incluyen en cada uno de los niveles:</p>
<list list-type="bullet">
<list-item><p>Seguridad b&#x00E1;sica para una RP web: agente de usuario, lista de plugins, resoluci&#x00F3;n de pantalla, zona horaria y habilitaci&#x00F3;n de <italic>cookies</italic>.</p></list-item>
<list-item><p>Seguridad b&#x00E1;sica para una RP en entorno m&#x00F3;vil: Resoluci&#x00F3;n de pantalla, zona horaria, utilizaci&#x00F3;n de bater&#x00ED;a y utilizaci&#x00F3;n del sistema.</p></list-item>
<list-item><p>Seguridad media para una RP web: Canvas, WebGL y entorno.</p></list-item>
<list-item><p>Seguridad media para una RP en entorno m&#x00F3;vil: Canvas, giroscopio, aceler&#x00F3;metro y entorno.</p></list-item>
<list-item><p><target target-type="page" id="pges_73"/>Seguridad alta para una RP web: din&#x00E1;micas de rat&#x00F3;n, din&#x00E1;micas de teclado, interacciones con el entorno y geolocalizaci&#x00F3;n.</p></list-item>
<list-item><p>Seguridad alta para una RP en entorno m&#x00F3;vil: din&#x00E1;micas de pulsaci&#x00F3;n en pantalla, interacciones con el entorno y geolocalizaci&#x00F3;n.</p></list-item>
</list>
<p>Como se ha mencionado con anterioridad, estos perfiles son una recomendaci&#x00F3;n, es decir, no son obligatorios y por consiguiente cualquier RP tiene la capacidad de partir de cualquiera de estos perfiles e ir a&#x00F1;adiendo o eliminando atributos espec&#x00ED;ficos para cumplir con sus requisitos y necesidades. Si una RP decide eliminar o no puede incluir alguno de los atributos espec&#x00ED;ficos, para conseguir el mismo nivel de seguridad se recomienda seleccionar un atributo de un nivel de seguridad inmediatamente superior. Si esta casu&#x00ED;stica sucediese para el nivel m&#x00E1;s alto, la recomendaci&#x00F3;n es seleccionar al menos dos atributos del nivel de seguridad inmediatamente inferior.</p>
</sec>
<sec id="c3-s3-s2">
<label><bold>3.3.2.</bold></label>
<title><bold>Generaci&#x00F3;n de la huella digital</bold></title>
<p>La informaci&#x00F3;n recopilada durante este paso ha de ser com&#x00FA;n a todos los usuarios y amplia en cuanto a volumen para cada usuario. Esto se debe a que, las huellas digitales han de poder ser comparadas entre los diferentes usuarios, por lo que, tienen que poseer las mismas caracter&#x00ED;sticas. Adem&#x00E1;s, cuanta m&#x00E1;s informaci&#x00F3;n se recopile para cada usuario, se podr&#x00E1; determinar con mayor facilidad las fronteras de decisi&#x00F3;n y los patrones que definen a cada usuario de forma &#x00FA;nica. La tecnolog&#x00ED;a utilizada ha de ser gen&#x00E9;rica y multiplataforma con el objetivo de que sea adaptativa. Los procesos de recopilaci&#x00F3;n y generaci&#x00F3;n de la informaci&#x00F3;n han de ser eficientes, evitando introducir latencias innecesarias y un consumo de recursos excesivos. La recopilaci&#x00F3;n de los datos se puede llevar a cabo por lotes, es decir, recibiendo la informaci&#x00F3;n de forma peri&#x00F3;dica, o en tiempo real y de forma continua en el tiempo, es decir, en <italic>streaming</italic>.</p>
<p>Una vez se ha recopilado la informaci&#x00F3;n, el siguiente paso es el proceso de almacenamiento de la informaci&#x00F3;n. Este proceso tiene que hacer uso de un sistema f&#x00E1;cilmente escalable, con el objetivo de que pueda aumentar sus capacidades en el caso de que el n&#x00FA;mero de usuarios o de informaci&#x00F3;n recopilada sea masivo.</p>
<p>El procesado de los datos tambi&#x00E9;n debe estar claramente definido. Para ello, se deben descartar valores at&#x00ED;picos, informaci&#x00F3;n con ruido o informaci&#x00F3;n obsoleta, la cual puede hacer que los modelos generados se vean lastrados.</p>
<p>Es indispensable determinar como la informaci&#x00F3;n recopilada y posteriormente almacenada se va a representar. Por ejemplo, las cadenas de Markov son de <target target-type="page" id="pges_74"/>utilidad para transformar a estados cada comportamiento, acci&#x00F3;n o interacci&#x00F3;n del usuario. En este caso concreto, se analizar&#x00E1;n las transiciones entre estados, determinando que, si el usuario se ha desplazado de un estado en el que es altamente probable que se encuentre, a un estado poco probable, el comportamiento realizado es at&#x00ED;pico y por consiguiente se considera una anomal&#x00ED;a y una posible brecha de seguridad. Otras soluciones tratan cada interacci&#x00F3;n del usuario como un conjunto de caracter&#x00ED;sticas que lo definen, por ejemplo, velocidades de movimiento o &#x00E1;ngulo de desplazamiento en el caso de considerar din&#x00E1;micas de movimientos de rat&#x00F3;n. Estas caracter&#x00ED;sticas se agrupan temporalmente formando un vector que define el comportamiento de un usuario en un intervalo de tiempo.</p>
<p>En este trabajo se recomienda que una RP primero seleccione una soluci&#x00F3;n simple que se adapte correctamente a sus necesidades. Esta soluci&#x00F3;n puede basarse en generar secuencias de vectores, que se pueden agrupar posteriormente utilizando ventanas temporales deslizantes, de tal manera que los vectores consecutivos contengan tambi&#x00E9;n informaci&#x00F3;n de los vectores adyacentes. De esta forma, los vectores consideran una mayor cantidad de informaci&#x00F3;n de seguido. Por ejemplo, dado un vector que contenga cuatro elementos, estos se pueden separar en subvectores de longitud dos tal que, el primer subvector contiene los elementos uno y dos, el siguiente subvector los elementos dos y tres y as&#x00ED; sucesivamente.</p>
</sec>
<sec id="c3-s3-s3">
<label><bold>3.3.3.</bold></label>
<title><bold>Modelado</bold></title>
<p>En la parte de modelado, las t&#x00E9;cnicas de aprendizaje m&#x00E1;quina basadas en detecci&#x00F3;n de anomal&#x00ED;as se posicionan como una de las mejores soluciones para detectar posibles brechas de seguridad utilizando informaci&#x00F3;n de comportamientos. Estas t&#x00E9;cnicas se denominan, en el &#x00E1;mbito del aprendizaje m&#x00E1;quina, detecci&#x00F3;n de at&#x00ED;picos. Adem&#x00E1;s, estas t&#x00E9;cnicas permiten, entre otras cosas, que las RPs puedan manejar datos no etiquetados (aprendizaje no supervisado) y desequilibrados, los cuales son dos de los grandes problem&#x00E1;ticas en este &#x00E1;mbito.</p>
<p>La detecci&#x00F3;n de at&#x00ED;picos se basa fundamentalmente en establecer una medida de distancias o similitud (p. ej. la distancia Eucl&#x00ED;dea) entre objetos [<xref ref-type="bibr" rid="CIT085">85</xref>]. Para el caso concreto que aplica a esta tesis doctoral, estos objetos son huellas digitales de comportamiento. De esta forma, gracias a la medida de distancia o similitud, se pueden definir n&#x00FA;cleos de comportamiento que se consideran normales o esperados para un usuario concreto teniendo en cuenta su huella digital, es decir, teniendo en cuenta su hist&#x00F3;rico de comportamientos. Posteriormente, las nuevas interacciones que llegan al sistema generan nuevas trazas de comportamientos que se comparan con el comportamiento esperado, es decir, con la huella digital. Definiendo un umbral, <target target-type="page" id="pges_75"/>se puede determinar si estos nuevos comportamientos son normales, o si por el contrario son at&#x00ED;picos y por lo tanto pueden suponer una brecha de seguridad.</p>
<p>Los algoritmos de aprendizaje m&#x00E1;quina que pueden ser &#x00FA;tiles para una RP con el objetivo de poder seguir el flujo de trabajo propuesto se pueden clasificar en tres grupos [<xref ref-type="bibr" rid="CIT0119">119</xref>]:</p>
<list list-type="bullet">
<list-item><p><italic>Forecasting</italic>: se basan en el aprendizaje supervisado. En este grupo, los algoritmos se entrenan utilizando datos etiquetados. Estos algoritmos tratan de realizar predicciones bas&#x00E1;ndose en el an&#x00E1;lisis de tendencia, de estacionalidad y ciclos de datos temporales. ARIMA [<xref ref-type="bibr" rid="CIT0120">120</xref>], SVM, K-NN, NN y las redes bayesianas son algunos ejemplos de algoritmos que encajan en este &#x00E1;mbito.</p></list-item>
<list-item><p>No supervisado: se basan mayoritariamente en agrupar los datos. De esta forma, se toma como premisa que los datos generados por la misma fuente (es decir, generados por el mismo usuario) pertenecer&#x00E1;n a los mismos grupos, mientras que los datos at&#x00ED;picos se encontrar&#x00E1;n fuera de estos grupos definidos como normales. OC-SVM, K-means e <italic>isolation forest</italic> [<xref ref-type="bibr" rid="CIT0121">121</xref>] son algunos ejemplos de algoritmos que encajan en este grupo.</p></list-item>
<list-item><p>Basados en densidades: este grupo es en realidad una subcategor&#x00ED;a de los no supervisados. Se basa en determinar la densidad de datos que contienen las distintas regiones del espacio. De esta forma, las regiones de alta densidad se pueden definir como las regiones normales o esperadas. Por otro lado, si una muestra se encuentra en una regi&#x00F3;n de baja densidad, ser&#x00E1; considerado como at&#x00ED;pica y, por consiguiente, se determina que no pertenece al usuario legitimo. Algunos ejemplos de estos algoritmos son <italic>Local Outlier Factor</italic> [<xref ref-type="bibr" rid="CIT0122">122</xref>] oDBSCAN [<xref ref-type="bibr" rid="CIT0123">123</xref>].</p></list-item>
</list>
<p>Una RP espec&#x00ED;fica que desee implementar el flujo de trabajo propuesto, ha de primero analizar los datos recopilados y almacenados para generar la huella digital. Esta huella digital, en funci&#x00F3;n de la naturaleza de la RP espec&#x00ED;fica, poseer&#x00E1; unas cualidades &#x00FA;nicas. Por ejemplo, una RP que recopile informaci&#x00F3;n de la sesi&#x00F3;n del usuario, podr&#x00E1; tener datos etiquetados y por lo tanto utilizar modelos de <italic>forecasting</italic> para realizar las predicciones o para mejorar las predicciones realizadas por modelos no supervisados. Cabe destacar, que la informaci&#x00F3;n de las etiquetas tambi&#x00E9;n puede estar sesgada, es decir, si durante el proceso de recopilaci&#x00F3;n de datos ya exist&#x00ED;a una brecha de seguridad, los datos recopilados pueden contener comportamientos at&#x00ED;picos. Esto significa, que estos datos at&#x00ED;picos ser&#x00E1;n considerados como normales o esperados si no se realiza un proceso de preprocesamiento y limpieza de datos adecuado. La recomendaci&#x00F3;n que se propone en esta tesis doctoral es utilizar las etiquetas siempre y cuando <target target-type="page" id="pges_76"/>sea posible, pero teniendo en cuenta el propio sesgo que puede existir en dichos datos y, por consiguiente, combinar modelos supervisados con modelos no supervisados o basados en densidades para obtener predicciones m&#x00E1;s precisas. Por ejemplo, una buena aproximaci&#x00F3;n de combinaci&#x00F3;n de varios tipos de algoritmos se encuentra en [<xref ref-type="bibr" rid="CIT0124">124</xref>], donde primero se aplican t&#x00E9;cnicas de <italic>clustering</italic> para agrupar los diferentes comportamientos para posteriormente aplicar m&#x00FA;ltiples algoritmos espec&#x00ED;ficos que modelen cada grupo de forma independiente, obteniendo resultados m&#x00E1;s precisos para cada uno de ellos.</p>
<p>Todos los tipos de algoritmos, arriba mencionados, se pueden implementar de dos formas diferentes, <italic>offline</italic> y <italic>online</italic>. Los algoritmos <italic>offline</italic> utilizan el hist&#x00F3;rico de informaci&#x00F3;n para generar un modelo est&#x00E1;tico que posteriormente se utiliza para realizar predicciones durante un periodo de tiempo. Estos modelos han de irse adaptando para poder considerar los cambios de la distribuci&#x00F3;n de los datos de entrada, es decir, los usuarios no mantienen su comportamiento estable a lo largo del tiempo. Para poder considerar estos cambios de comportamiento, estos modelos han de irse reentrenando. Para lograr que el reentrenamiento sea efectivo, se deben establecer unas pol&#x00ED;ticas que contemplen indicadores para determinar cu&#x00E1;ndo las distribuciones iniciales de los datos han cambiado y por lo tanto el modelo ha quedado obsoleto y est&#x00E1; perdiendo eficacia y precisi&#x00F3;n.</p>
<p>Por otro lado, los algoritmos <italic>online</italic> van entrenando a medida que van realizando nuevas predicciones. De esta forma, cuando llegan nuevas muestras para evaluar, el propio modelo se va actualizando y cambiando sus fronteras de decisi&#x00F3;n para considerar estos nuevos comportamientos. As&#x00ED;, a medida que el modelo obtiene nuevas muestras, su eficacia y precisi&#x00F3;n va aumentando. Sin embargo, tambi&#x00E9;n hay que considerar que estos modelos tambi&#x00E9;n han de ir descartando la informaci&#x00F3;n obsoleta que puede quedar cuando el modelo lleva funcionando durante un largo periodo de tiempo. Este tipo de modelos son de mucha utilidad cuando se combinan con una recopilaci&#x00F3;n de la informaci&#x00F3;n en <italic>streaming</italic>.</p>
<p>Una de las problem&#x00E1;ticas m&#x00E1;s comunes a las que se enfrentan las propuestas de este &#x00E1;mbito, es la de detectar anomal&#x00ED;as para los primeros accesos, es decir, cuando apenas se posee informaci&#x00F3;n de comportamiento del usuario. Esta problem&#x00E1;tica se denomina arranque en fr&#x00ED;o. Para este caso concreto, el resultado suelen ser modelos de aprendizaje m&#x00E1;quina muy pobres, que no poseen suficiente informaci&#x00F3;n para comparar las muestras a evaluar y, por consiguiente, categorizan multitud de muestras como anomal&#x00ED;as, cuando no lo son. Esto se traduce, en modelos con una tasa de falsos positivos muy elevada, haciendo que los sistemas en los que se integran estos modelos no sean muy fiables. Una buena soluci&#x00F3;n para este problema es utilizar un sistema de recomendaci&#x00F3;n, capaz de detectar cuando un usuario est&#x00E1; utilizando <target target-type="page" id="pges_77"/>el sistema por primera vez, y alimentar una m&#x00E1;quina de factorizaci&#x00F3;n para tratar de asemejar estos comportamientos de los de otros usuarios parecidos, mitigando as&#x00ED; el problema [<xref ref-type="bibr" rid="CIT0125">125</xref>]. Otras posibles soluciones se basan en utilizar modelos no param&#x00E9;tricos para la fase inicial en la que puede existir arranque en fr&#x00ED;o y otros modelos m&#x00E1;s precisos cuando ya se ha superado esta fase [<xref ref-type="bibr" rid="CIT0126">126</xref>], o tomar como punto de partida un modelo previamente entrenado para otro usuario. De esta forma, aunque siga existiendo el arranque en fr&#x00ED;o, este durar&#x00E1; un menor tiempo, pues el modelo no parte de cero y solo tendr&#x00E1; que irse adaptando, modificando sus fronteras de decisi&#x00F3;n, a los nuevos comportamientos que genere el nuevo usuario.</p>
</sec>
<sec id="c3-s3-s4">
<label><bold>3.3.4.</bold></label>
<title><bold>Evaluaci&#x00F3;n</bold></title>
<p>El paso de evaluaci&#x00F3;n permite cuantificar la eficacia de los modelos de aprendizaje m&#x00E1;quina desarrollados en el paso anterior. De esta forma, se pueden encontrar errores de dise&#x00F1;o, ya sea a la hora de seleccionar o generar la huella digital, como determinar los motivos que hacen que el modelo en s&#x00ED; no est&#x00E9; funcionando correctamente. Esta detecci&#x00F3;n temprana permite que la RP pueda regresar a los pasos anteriores, con el objetivo de mejorar la eficacia del modelo final. Es por esto que este paso es fundamental, pues se posiciona como la capa intermedia entre el desarrollo del flujo de trabajo y su puesta en producci&#x00F3;n.</p>
<p>En primer lugar, se definen las clases que se quieren evaluar. Para el caso del an&#x00E1;lisis de comportamiento, t&#x00ED;picamente se consideran dos clases, la positiva que representa al usuario genuino, y la clase negativa que representa al usuario impostor. Dadas estas dos clases, un modelo de aprendizaje m&#x00E1;quina puede predecir de forma correcta o incorrecta cada una de estas clases, obteniendo as&#x00ED; cuatro posibles valores. En primer lugar, el valor Verdaderos Positivos (VP) representa a los usuarios genuinos autenticados correctamente. Verdaderos Negativos (VN) representa a los impostores rechazados por el modelo de forma correcta. Falsos Positivos (FP) son los usuarios impostores que se han logrado autenticar como usuarios genuinos y no han sido detec<target target-type="page" id="pges_78"/>tados por el modelo. Falsos Negativos (FN) son los usuarios genuinos que se han detectado incorrectamente como impostores por el modelo. Estos cuatro valores, se agrupan formando una matriz de confusi&#x00F3;n tal y como se muestra a continuaci&#x00F3;n (ver <xref ref-type="fig" rid="fig-3-4">Figura 3.4</xref>):</p>
<fig id="fig-3-4">
<label>Figura 3.4:</label>
<caption><title>Matriz de confusi&#x00F3;n.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-3-4.jpg"/>
</fig>
<p>Existen multitud de m&#x00E9;tricas para evaluar diferentes aspectos espec&#x00ED;ficos de los resultados obtenidos para los algoritmos de aprendizaje m&#x00E1;quina. Dada esta matriz de confusi&#x00F3;n, t&#x00ED;picamente se suelen calcular tres m&#x00E9;tricas asociadas: la exactitud, la precisi&#x00F3;n y la sensibilidad. La exactitud es la tasa de acierto sobre el total de muestras, es decir, el porcentaje de acierto del modelo de manera global. La precisi&#x00F3;n es el porcentaje de aciertos para la clase positiva. La sensibilidad es el porcentaje de muestras para la clase positiva que se aciertan de forma correcta sobre el total de posibles positivos. Estas m&#x00E9;tricas vienen definidas como sigue:</p>
<list list-type="bullet">
<list-item><p>Exactitud= (VP+VN)/(VP+FP+FN+VN)</p></list-item>
<list-item><p>Precisi&#x00F3;n= VP/(VP+FP)</p></list-item>
<list-item><p>Sensibilidad= VP/(VP+FN)</p></list-item>
</list>
<p>Sin embargo, en el &#x00E1;mbito del modelado de comportamiento, estas m&#x00E9;tricas no suelen ser suficiente, pues los problemas de este tipo poseen unas cualidades peculiares, como los datos desequilibrados. Por ejemplo, en el caso de considerar una clase mayoritaria que posee el 99 % de la informaci&#x00F3;n genuina, es decir, de informaci&#x00F3;n de clase positiva, un modelo trivial que clasifique cada muestra en esta clase obtendr&#x00ED;a un 99 % de tasa de acierto o exactitud. Si una RP &#x00FA;nicamente tuviese en cuenta esta m&#x00E9;trica, seguramente este modelo ser&#x00ED;a seleccionado, pues tiene un acierto muy alto. Sin embargo, el objetivo del problema es justo detectar la clase minoritaria, es decir, la clase que contiene los comportamientos realizados por usuarios impostores (clase negativa) y que pueden suponer una brecha de seguridad. En este caso, este modelo trivial tendr&#x00ED;a una tasa de acierto del 0 %, convirtiendo as&#x00ED; a este modelo en in&#x00FA;til y por tanto habr&#x00ED;a que desecharlo.</p>
<p>Una m&#x00E9;trica que ha demostrado ser m&#x00E1;s efectiva que las anteriores para lidiar con datos desequilibrados es el F1-score [<xref ref-type="bibr" rid="CIT0127">127</xref>]. Esta m&#x00E9;trica se puede definir como la media arm&#x00F3;nica entre la precisi&#x00F3;n y la sensibilidad. Nuevamente, esta m&#x00E9;trica considera como clase de inter&#x00E9;s la clase genuina.</p>
<p>Todas las m&#x00E9;tricas definidas hasta ahora se basan fundamentalmente en evaluar la clase positiva, es decir, la de usuarios genuinos. Para el problema que se desea resolver en esta tesis, deber&#x00ED;a ser al contrario, es decir, se debe evaluar la clase de usuarios impostores, pues es la clase de inter&#x00E9;s.</p>
<p><target target-type="page" id="pges_79"/>Existen m&#x00E9;tricas espec&#x00ED;ficas que detallan con m&#x00E1;s precisi&#x00F3;n las casu&#x00ED;sticas espec&#x00ED;ficas en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento. Estas m&#x00E9;tricas son: tasa de aceptaci&#x00F3;n falsa (en ingl&#x00E9;s, <italic>False Acceptance Rate</italic> [FAR]), tasa de rechazo falso (en ingl&#x00E9;s, <italic>False Rejection Rate</italic> [FRR]) y la tasa de error igual (en ingl&#x00E9;s, <italic>Equal Error Rate</italic> [EER]) [<xref ref-type="bibr" rid="CIT0128">128</xref>]. El FAR se define como la proporci&#x00F3;n de usuarios impostores que no son detectados correctamente por el modelo. El FRR es la proporci&#x00F3;n de usuarios leg&#x00ED;timos que el modelo predice como usuarios impostores. Un mismo modelo puede ser m&#x00E1;s restrictivo o m&#x00E1;s permisivo en funci&#x00F3;n del umbral definido. Esto es, un mismo modelo puede determinar la probabilidad de una muestra de pertenecer a la clase genuina o a la clase impostora, pero es gracias al umbral cuando finalmente se clasifica cada muestra. De esta forma, un mismo modelo con un umbral alto puede ser m&#x00E1;s restrictivo y por lo tanto tener m&#x00E1;s acierto para la clase impostora pero menos para la clase genuina (sistema m&#x00E1;s seguro), o puede ser m&#x00E1;s permisivo fijando un umbral bajo y por consiguiente tener m&#x00E1;s acierto en la clase genuina pero menos en la impostora (nunca se podr&#x00ED;a fijar un umbral que haga tener m&#x00E1;s acierto en ambas clases simult&#x00E1;neamente). De este modo, dependiendo del umbral se obtienen una pareja de valores FAR y FRR. El EER se puede definir, por tanto, como el punto &#x00F3;ptimo entre estos dos valores, es decir, el umbral donde se obtiene un mejor valor para ambas m&#x00E9;tricas de forma simult&#x00E1;nea (ver <xref ref-type="fig" rid="fig-3-5">Figura 3.5</xref>).</p>
<fig id="fig-3-5">
<label>Figura 3.5:</label>
<caption><title>Representaci&#x00F3;n del Equal Error rate (EER) en funci&#x00F3;n del False Acceptance Rate (FAR) y el False Rejection Rate (FRR).</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-3-5.jpg"/>
</fig>
<p>Las m&#x00E9;tricas utilizadas en este documento para evaluar los modelos y que se recomienda que utilice cualquier RP que desee integrar el flujo de trabajo propuesto, se definen a continuaci&#x00F3;n.</p>
<list list-type="bullet">
<list-item><p><target target-type="page" id="pges_80"/>Especificidad= VN/(VN+FP)</p></list-item>
<list-item><p>FAR= FP/(FP + VN)</p></list-item>
<list-item><p>FRR= FN/(FN + VP)</p></list-item>
<list-item><p>EER= Valor de la intersecci&#x00F3;n entre FAR y FRR cuando se consideran m&#x00FA;ltiples umbrales.</p></list-item>
<list-item><p>Valor Predictivo Negativo (VPN)= VN/(VN+FN)</p></list-item>
<list-item><p><inline-formula id="Eq_c3-1"><mml:math id="I1" display='inline'><mml:mi>F</mml:mi><mml:msup><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>&#x00B7;</mml:mo><mml:mfrac><mml:mrow><mml:mtext>&#xA0;VPN&#xA0;</mml:mtext><mml:mo>&#x00B7;</mml:mo><mml:mtext>&#xA0;Especificidad&#xA0;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>&#xA0;VPN&#xA0;</mml:mtext><mml:mo>+</mml:mo><mml:mtext>&#xA0;Especificidad&#xA0;</mml:mtext></mml:mrow></mml:mfrac></mml:math></inline-formula></p></list-item>
</list>
<p>Donde la especificidad es la proporci&#x00F3;n de impostores correctamente identificados, esto es, la sensibilidad para el grupo de impostores (clase negativa). VPN es la eficacia del m&#x00E9;todo a la hora de detectar impostores, esto es, la precisi&#x00F3;n para el grupo de los impostores. <italic>F</italic><sup>1_</sup> es la media harm&#x00F3;nica entre el VPN y la especificidad [<xref ref-type="bibr" rid="CIT0129">129</xref>], es decir, el F1-Score para el grupo de los impostores.</p>
</sec>
<sec id="c3-s3-s5">
<label><bold>3.3.5.</bold></label>
<title><bold>Integraci&#x00F3;n en los sistemas de gesti&#x00F3;n de identidades federados</bold></title>
<p>La integraci&#x00F3;n del flujo de trabajo en los esquemas de gesti&#x00F3;n de identidades federados acarrea multitud de retos.</p>
<p>En primer lugar, los usuarios finales seguramente no est&#x00E9;n dispuestos a tener que instalar software externo, especialmente si este va a afectar a su privacidad. Este flujo de trabajo es claramente un ejemplo en el que los usuarios pueden sacrificar cierta privacidad (dependiendo de la huella digital seleccionada) con el objetivo de ganar seguridad. Por ejemplo, un usuario puede ser reacio a que una red social recopile informaci&#x00F3;n de su comportamiento, sin embargo, si su aplicaci&#x00F3;n de banca electr&#x00F3;nica se lo solicita puede optar por aceptar las condiciones.</p>
<p>El flujo de trabajo aqu&#x00ED; expuesto no requiere que el usuario final tenga que instalar software externo, simplemente necesita que el usuario acepte las condiciones y por consiguiente consienta que la RP recopile informaci&#x00F3;n para generar su huella digital de comportamiento. Es por esto que un mismo usuario puede optar por permitir que ciertas RPs recopilen m&#x00E1;s informaci&#x00F3;n que otras, o incluso ninguna, con el objetivo de que el propio usuario final se vea beneficiado o no, de la implantaci&#x00F3;n del flujo de trabajo propuesto. En cuanto <target target-type="page" id="pges_81"/>a la privacidad, la RP ha de informar de forma transparente de todos y cada uno de los datos que va a recopilar, as&#x00ED; como de cu&#x00E1;l va a ser el uso que le va a dar. Cabe destacar, que esta informaci&#x00F3;n solo ha de ser accessible por la propia RP, es decir, no se tiene que compartir con terceros, y ha de ser debidamente protegida, desde que se genera en el dispositivo del usuario, mientras se env&#x00ED;a por alg&#x00FA;n canal de comunicaci&#x00F3;n debidamente encriptado utilizando <italic>Transport Layer Security</italic> (TLS), hasta que se almacena en alg&#x00FA;n sistema de informaci&#x00F3;n.</p>
<p>Por otro lado, la aceptaci&#x00F3;n de los usuarios tambi&#x00E9;n se va a ver afectada dependiendo de la eficiencia y la usabilidad. La soluci&#x00F3;n finalmente implementada ha de estar basada en una huella digital lo suficientemente &#x00FA;nica y robusta como para poder detectar las brechas de seguridad, sin afectar altamente al consumo de recursos, evitando introducir latencias innecesarias y disminuyendo el n&#x00FA;mero de falsos positivos que pueden hacer que el sistema se vuelva poco usable.</p>
<p>Los IdPs no se deben ver afectados por la implantaci&#x00F3;n de este flujo de trabajo. Todos los aspectos relacionados con la integraci&#x00F3;n (consumo de recursos, notificaci&#x00F3;n a los EU, etc) han de recaer sobre la propia RP, la cual es la interesada en proporcionar a sus usuarios finales la capacidad de aumentar sus niveles de seguridad. Es por esto que la implantaci&#x00F3;n de este flujo de trabajo solo depender&#x00E1; de la comunicaci&#x00F3;n entre la RP y el EU, no necesitando de la colaboraci&#x00F3;n de terceros o del IdP.</p>
<p>Otro reto asociado a la integraci&#x00F3;n del flujo de trabajo es la aceptaci&#x00F3;n de las propias RPs. Esto se debe a que, si el flujo de trabajo requiere modificar los propios est&#x00E1;ndares de gesti&#x00F3;n de identidades existentes, probablemente se van a volver reacias a implementarlos. Esto se debe a la dificultad a&#x00F1;adida de implantaci&#x00F3;n que esto supondr&#x00ED;a. Es por esto que los flujos de informaci&#x00F3;n de los est&#x00E1;ndares federados no han de ser modificados, o en su defecto lo menos posible y, por lo tanto, las RPs deben de utilizar los propios mecanismos facilitados por dichos est&#x00E1;ndares para realizar su cometido. De este modo, se deben utilizar las propias peticiones y respuestas, los par&#x00E1;metros, <italic>tokens</italic> y cualquier otro aspecto ya existente en los flujos de informaci&#x00F3;n para realizar la implantaci&#x00F3;n del flujo de trabajo.</p>
</sec>
<sec id="c3-s3-s6">
<label><bold>3.3.6.</bold></label>
<title><bold>Resumen del flujo de trabajo</bold></title>
<p>A modo resumen, en la <xref ref-type="tab" rid="c3-tab1">Tabla 3.1</xref> se muestra de forma gr&#x00E1;fica, todas las decisiones y consideraciones que ha de tomar una RP para implantar el flujo de trabajo propuesto. Estas decisiones se corresponden con cada uno de los pasos fundamentales en los que se basa dicho flujo de trabajo.</p>
<table-wrap id="c3-tab1">
<label>Tabla 3.1:</label>
<caption><title><target target-type="page" id="pges_82"/>Resumen del flujo de trabajo propuesto</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">Tarea</th>
<th valign="top" align="left">Decisi&#x00F3;n</th>
<th valign="top" align="left">Alternativas</th>
<th valign="top" align="left">Criterio de decisi&#x00F3;n</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1. Selecci&#x00F3;n de huella digital</td>
<td valign="top" align="left">Huella digital que proporciona la suficiente singularidad y no es invasiva para el usuario</td>
<td valign="top" align="left">Atributos est&#x00E1;ticos y din&#x00E1;micos (Figure 3.3)</td>
<td valign="top" align="left">Caso de uso. Niveles de seguridad deseados.</td>
</tr>
<tr>
<td valign="top" align="left">2. Generaci&#x00F3;n de la huella digital</td>
<td valign="top" align="left">Recopilar, almacenar, preprocesar y representar los datos: tecnolog&#x00ED;as y procedimientos</td>
<td valign="top" align="left">Por lotes o streaming; SQL o No-SQL; lenguajes de programaci&#x00F3;n; T&#x00E9;cnicas de representaci&#x00F3;n de la informaci&#x00F3;n</td>
<td valign="top" align="left">Eficiencia y eficacia, Consumo de recursos, escalabilidad</td>
</tr>
<tr>
<td valign="top" align="left">3. Modelado</td>
<td valign="top" align="left">Detectar anomal&#x00ED;as en las huellas digitales: t&#x00E9;cnicas</td>
<td valign="top" align="left"><italic>Forecasting</italic>, aprendizaje no supervisado, algoritmos basados en densidades; modelos <italic>offline</italic> o <italic>online</italic></td>
<td valign="top" align="left">Huella digital seleccionada, caso de uso, recursos computacionales disponibles en la RP</td>
</tr>
<tr>
<td valign="top" align="left">4. Evaluaci&#x00F3;n</td>
<td valign="top" align="left">Decidir si se necesitan m&#x00E1;s iteraciones en el flujo de trabajo: m&#x00E9;tricas de evaluaci&#x00F3;n</td>
<td valign="top" align="left">Exactitud, especificidad, FAR FRR, EER, VPN y <italic>F</italic>1<sup>-</sup></td>
<td valign="top" align="left">Caso de uso</td>
</tr>
<tr>
<td valign="top" align="left">5. Integraci&#x00F3;n</td>
<td valign="top" align="left">La RP debe integrar los modelos de an&#x00E1;lisis de comportamiento para realizar los procesos de IAAA: modificaciones</td>
<td valign="top" align="left">Cambios en el est&#x00E1;ndar (peticiones, <italic>tokens</italic>, flujos); Cambios en la implementaci&#x00F3;n (comprobaciones adicionales, estructura de datos)</td>
<td valign="top" align="left">Caso de uso, coste permitido</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</body>
</book-part>
<book-part id="c4" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>CAP&#x00CD;TULO 4</label>
<title><target target-type="page" id="pges_83"/>M&#x00C9;TODO DE COMBINACI&#x00D3;N DE INFORMACI&#x00D3;N DE COMPORTAMIENTOS</title>
</title-group>
</book-part-meta>
<body>
<p>Hasta el momento se ha presentado un flujo de trabajo que permite incorporar t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos dentro de los flujos de autenticaci&#x00F3;n y autorizaci&#x00F3;n de los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados. Este flujo de trabajo tiene como objetivo utilizar las t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos para aumentar los niveles de seguridad proporcionados. Sin embargo, los modelos de an&#x00E1;lisis de comportamientos de la literatura poseen ciertas limitaciones.</p>
<p>En este cap&#x00ED;tulo se detalla el m&#x00E9;todo propuesto para mejorar los modelos de an&#x00E1;lisis de comportamientos actuales. Este m&#x00E9;todo se basa en combinar informaci&#x00F3;n de comportamientos a nivel de caracter&#x00ED;sticas. Tal y como se ha visto reflejado en el estado del arte (ver <xref ref-type="sec" rid="c2-s2-s2">Cap&#x00ED;tulo 2.2.2</xref>), la combinaci&#x00F3;n de informaci&#x00F3;n est&#x00E1; posicion&#x00E1;ndose como una t&#x00E9;cnica novedosa que permite mejorar la eficacia de los mismos. Sin embargo, hoy en d&#x00ED;a, son pocos los trabajos que combinan la informaci&#x00F3;n de comportamiento, y muchos menos los que lo hacen a nivel de caracter&#x00ED;sticas.</p>
<p>El m&#x00E9;todo propuesto se presenta como un conjunto de tareas novedosas que permiten combinar la informaci&#x00F3;n de comportamientos a nivel de caracter&#x00ED;sticas y mejorar, por tanto, la eficacia de los sistemas de autenticaci&#x00F3;n basados en el an&#x00E1;lisis de comportamientos [<xref ref-type="bibr" rid="CIT0130">130</xref>]. Ha sido espec&#x00ED;ficamente c&#x00ED;ficamente dise&#x00F1;ado para combinar informaci&#x00F3;n temporal, recogida de fuentes de informaci&#x00F3;n heterog&#x00E9;neas. Adem&#x00E1;s, no asume que los datos temporales siguen una distribuci&#x00F3;n espec&#x00ED;fica. Esto es, no asume que los datos temporales se recogen con una frecuencia o patr&#x00F3;n espec&#x00ED;fico.</p>
<p>El m&#x00E9;todo se presenta esquematizado en la <xref ref-type="fig" rid="fig-4-1">Figura 4.1</xref>. Est&#x00E1; compuesto de cuatro tareas principales. La primera tarea se basa en representar la informaci&#x00F3;n recopilada de fuentes heterog&#x00E9;neas de datos en el mismo espacio. Para ello, se transforma en secuencias de n-gramas. Esta tarea se describe en la <xref ref-type="sec" rid="c4-s1">Secci&#x00F3;n 4.1</xref> y se basa en la implementaci&#x00F3;n de una t&#x00E9;cnica de <italic>Symbolic Aggregate approximation</italic> (SAX) multivariante [<xref ref-type="bibr" rid="CIT0131">131</xref>] novedosa utilizando <italic>Random Trees Embedding</italic>s (RTEs) [<xref ref-type="bibr" rid="CIT0132">132</xref>], [<xref ref-type="bibr" rid="CIT0133">133</xref>]. La siguiente tarea se basa en construir una matriz de distancias comparando los n-gramas extra&#x00ED;dos anteriormente utilizando t&#x00E9;cnicas de alineamiento de secuencias de ADN. Esta tarea se detalla en la <xref ref-type="sec" rid="c4-s2">Secci&#x00F3;n 4.2</xref>. Posteriormente, se describe el proceso de entrenamiento de un algoritmo de <italic>clustering</italic> basado en densidades con el objetivo de poder extraer los n&#x00FA;cleos de comportamiento que caracterizan a cada usuario utilizando la matriz de distancias. Este proceso se contempla en la <xref ref-type="sec" rid="c4-s3">Secci&#x00F3;n 4.3</xref>. A continuaci&#x00F3;n, se detalla la implementaci&#x00F3;n de un modelo de riesgos, el cual utiliza los n&#x00FA;cleos de comportamiento para categorizar las muestras, en la <xref ref-type="sec" rid="c4-s4">Secci&#x00F3;n 4.4</xref>. Finalmente, en la <xref ref-type="sec" rid="c4-s5">Secci&#x00F3;n 4.5</xref> se detalla c&#x00F3;mo se pueden fijar los diferentes par&#x00E1;metros e hiperpar&#x00E1;metros que utiliza el modelo con el objetivo de ser reproducible.</p>
<fig id="fig-4-1">
<label>Figura 4.1:</label>
<caption><title><target target-type="page" id="pges_84"/>M&#x00E9;todo propuesto para combinar informaci&#x00F3;n de comportamientos.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-1.jpg"/>
</fig>
<sec id="c4-s1">
<label><bold>4.1.</bold></label>
<title><bold><target target-type="page" id="pges_85"/>Representaci&#x00F3;n de la informaci&#x00F3;n</bold></title>
<p>En primer lugar, se presenta una t&#x00E9;cnica para transformar datos temporales procedentes de fuentes heterog&#x00E9;neas de datos (p. ej. el teclado y el rat&#x00F3;n) en una representaci&#x00F3;n tabular adecuada, que sirve para poder alimentar los modelos tradicionales de aprendizaje m&#x00E1;quina. Este enfoque se basa en implementar una t&#x00E9;cnica novedosa de SAX multivariante [<xref ref-type="bibr" rid="CIT0131">131</xref>]. Espec&#x00ED;ficamente, esta t&#x00E9;cnica se implementa haciendo uso de los RTEs [<xref ref-type="bibr" rid="CIT0132">132</xref>], [<xref ref-type="bibr" rid="CIT0133">133</xref>].</p>
<p>La t&#x00E9;cnica de SAX tradicional se define como una t&#x00E9;cnica para discretizar series temporales y reducir la dimensionalidad de las mismas. Para lograr esto, se hace uso de <italic>Piecewise Aggregate Approximation</italic> (PAA) para normalizar y dividir las series temporales en secciones con un tama&#x00F1;o equidistante. Posteriormente, se calculan los valores medios de cada secci&#x00F3;n y se les asigna un nivel de probabilidad de la funci&#x00F3;n gaussiana. Este proceso permite discretizar la serie. Finalmente, a cada uno de estos niveles se les asigna un s&#x00ED;mbolo concreto, logrando as&#x00ED; transformar una serie temporal en una secuencia de s&#x00ED;mbolos (ver <xref ref-type="fig" rid="fig-4-2">Figura 4.2</xref>).</p>
<fig id="fig-4-2">
<label>Figura 4.2:</label>
<caption><title>Discretizaci&#x00F3;n de una serie temporal usando SAX.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-2.jpg"/>
</fig>
<p>Tomando como punto de partida y objetivos los mismos que la t&#x00E9;cnica de SAX tradicional, se propone extender esta implementaci&#x00F3;n para considerar series temporales multivariantes. Para ello se propone utilizar el algoritmo de RTE, ya que las t&#x00E9;cnicas basadas en &#x00E1;rboles han demostrado ser m&#x00E1;s eficaces a la hora de representar y agrupar series temporales multivariantes [<xref ref-type="bibr" rid="CIT0134">134</xref>].</p>
<p>El algoritmo de RTE se basa en generar una secuencia de &#x00E1;rboles aleatorios de decisi&#x00F3;n, de tal manera que al clasificar una muestra se genera un vector con los valores de los nodos hojas que le han sido asignados. La longitud de esta secuencia de &#x00E1;rboles viene definida por el par&#x00E1;metro <italic>N&#x00FA;mero de &#x00E1;rboles</italic>, mientras que tambi&#x00E9;n se tiene que definir la profundidad de cada uno de estos &#x00E1;rboles con el par&#x00E1;metro <italic>M&#x00E1;xima profundidad</italic>. Dicho de otra forma, los RTEs se basan en obtener un vector que indica, para cada &#x00E1;rbol generado, el n&#x00FA;mero de hoja a la que una muestra concreta pertenece. Esto es, la posici&#x00F3;n <italic>n</italic> del vector embedding resultante, indica el n&#x00FA;mero de hoja (ordenando los &#x00E1;rboles y, por consiguiente, las hojas de izquierda a derecha) donde la observaci&#x00F3;n ha sido clasificada en el &#x00E1;rbol de decisi&#x00F3;n <italic>n</italic>. Alternativamente, este vector embedding se suele representar de forma binaria, utilizando un vector cuya longitud es <target target-type="page" id="pges_86"/>el n&#x00FA;mero de hojas en el RTE y cuyo valor es 1 en caso de que la muestra haya ca&#x00ED;do en dicha hoja y 0 para el caso contrario.</p>
<p>Los embeddings obtenidos de los RTEs se mapean entonces a s&#x00ED;mbolos con el objetivo de habilitar la comparaci&#x00F3;n entre ellos y poder procesarlos. El n&#x00FA;mero de s&#x00ED;mbolos necesarios para poder mapear todos los embeddings crece de forma exponencial a medida que aumenta el <italic>N&#x00FA;mero de &#x00E1;rboles</italic> y el n&#x00FA;mero de hojas (en funci&#x00F3;n del par&#x00E1;metro <italic>M&#x00E1;xima profundidad</italic>) del RTE. A pesar de esto, la mayor&#x00ED;a de los s&#x00ED;mbolos aparecer&#x00E1;n en muy rara ocasi&#x00F3;n, es decir, si el n&#x00FA;mero de &#x00E1;rboles generados y hojas es extremadamente alto, la mayor&#x00ED;a de las muestras caer&#x00E1;n en hojas distintas y, por consiguiente, se les asignara un s&#x00ED;mbolo diferente. Esta limitaci&#x00F3;n se soluciona asignando los s&#x00ED;mbolos a una tabla de frecuencias de aparici&#x00F3;n. De esta manera, a las muestras mayoritarias que compartan las mismas hojas se les asigna un s&#x00ED;mbolo representativo, mientras que las muestras minoritarias se les asigna un s&#x00ED;mbolo arbitrario (algo parecido en el SAX tradicional al utilizar la funci&#x00F3;n gaussiana). Por ejemplo, el embedding con m&#x00E1;s ocurrencias se le asigna el car&#x00E1;cter <italic>A</italic>, al siguiente el car&#x00E1;cter <italic>B</italic>, y as&#x00ED; sucesivamente. De este modo, si dos muestras caen en las mismas hojas, son asignadas con el mismo s&#x00ED;mbolo. Cuando todos los s&#x00ED;mbolos son utilizados, los embeddings que quedan y que agrupan a las muestras menos representadas en el conjunto de datos se les asigna un s&#x00ED;mbolo arbitrario.</p>
<p>El proceso explicado anteriormente se ejecuta para cada fuente de informaci&#x00F3;n disponible. Esto es, cada fuente de informaci&#x00F3;n posee su propio RTE y su &#x00FA;nico conjunto de s&#x00ED;mbolos.</p>
<p>En este caso, la informaci&#x00F3;n extra&#x00ED;da del teclado se representa utilizando s&#x00ED;mbolos de letras may&#x00FA;sculas, mientras que para la informaci&#x00F3;n extra&#x00ED;da del rat&#x00F3;n se va a representar utilizando s&#x00ED;mbolos de letras min&#x00FA;sculas. Una vez que cada muestra de cada fuente de informaci&#x00F3;n se ha convertido a un s&#x00ED;mbolo, se utiliza la informaci&#x00F3;n temporal para poder ordenarlos. De este modo, estos s&#x00ED;mbolos se agrupan formando una secuencia ordenada que representa el comportamiento de un usuario espec&#x00ED;fico para ambas fuentes de informaci&#x00F3;n. Finalmente, estas secuencias se dividen en n-gramas definidos por el par&#x00E1;metro <italic>N-Gram Length (NGL)</italic>. Estos n-gramas representan el comportamiento de un usuario durante un tiempo limitado de interacciones. Por ejemplo, el n-grama <italic>AbB</italic>, cuyo <italic>NGL</italic> viene definido por el valor 3, podr&#x00ED;a representar una pulsaci&#x00F3;n lenta de teclado, seguido por un movimiento r&#x00E1;pido de rat&#x00F3;n y finalmente una pulsaci&#x00F3;n r&#x00E1;pida de teclado. Cuanto mayor sea el conjunto de s&#x00ED;mbolos, mayor precisi&#x00F3;n se obtendr&#x00E1; a la hora de representar el comportamiento de un usuario, sin embargo, si el n&#x00FA;mero de s&#x00ED;mbolos es muy elevado, se obtiene un sobreajuste, pues cada s&#x00ED;mbolo representar&#x00E1; una interacci&#x00F3;n muy espec&#x00ED;fica y, por lo tanto, cada n-grama ser&#x00E1; diferente al resto de n-gramas haciendo as&#x00ED; que la comparaci&#x00F3;n entre ellos sea ineficaz. El proceso de combinaci&#x00F3;n de la informaci&#x00F3;n de fuentes de datos heterog&#x00E9;neas se puede ver ilustrado en la <xref ref-type="fig" rid="fig-4-3">Figura 4.3</xref>. Este proceso logra transformar la informaci&#x00F3;n de comportamientos recogida de fuentes de datos heterog&#x00E9;neas en el mismo espacio de representaci&#x00F3;n (s&#x00ED;mbolos). De este modo, la representaci&#x00F3;n de la informaci&#x00F3;n elegida permite combinar informaci&#x00F3;n a nivel de caracter&#x00ED;sticas.</p>
<fig id="fig-4-3">
<label>Figura 4.3:</label>
<caption><title>Proceso de SAX multivariante utilizando RTEs para multiples fuentes de informaci&#x00F3;n.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-3.jpg"/>
</fig>
</sec>
<sec id="c4-s2">
<label><bold>4.2.</bold></label>
<title><target target-type="page" id="pges_87"/><bold>Generaci&#x00F3;n de la matriz de distancias</bold></title>
<p>Una vez obtenida la representaci&#x00F3;n de la informaci&#x00F3;n en n-gramas, la siguiente tarea es establecer un m&#x00E9;todo para poder comparar estas secuencias entre s&#x00ED;. Existen multitud de m&#x00E9;tricas de distancias entre secuencias de s&#x00ED;mbolos en la literatura, siendo algunos ejemplos de las m&#x00E1;s conocidas, la distancia de Hamming, la distancia de Levenshtein, la distancia coseno y el coeficiente de Jaccard [<xref ref-type="bibr" rid="CIT0135">135</xref>]. En el m&#x00E9;todo propuesto, la distancia entre dos n-gramas se calcula utilizando t&#x00E9;cnicas de alineamiento de secuencias de ADN [<xref ref-type="bibr" rid="CIT0136">136</xref>].</p>
<p>En el &#x00E1;mbito de la bioinform&#x00E1;tica, las secuencias de ADN se representan como secuencias de s&#x00ED;mbolos. Analizar la similitud o disimilitud entre las diferentes regiones del ADN permite detectar, entre otras cosas, multitud de enfermedades o variaciones gen&#x00E9;ticas que pueden ser de inter&#x00E9;s para su an&#x00E1;lisis. Las t&#x00E9;cnicas de alineamiento de secuencias de ADN se posicionan <target target-type="page" id="pges_88"/>como el m&#x00E9;todo m&#x00E1;s utilizado para extraer patrones y comparar dichas secuencias [<xref ref-type="bibr" rid="CIT0137">137</xref>]. Es por esta raz&#x00F3;n, por la que se ha decidido incorporar este tipo de t&#x00E9;cnicas en el m&#x00E9;todo propuesto.</p>
<p>A nivel general, existen dos t&#x00E9;cnicas de alineamiento de ADN [<xref ref-type="bibr" rid="CIT0138">138</xref>]: la global y la local (ver <xref ref-type="fig" rid="fig-4-4">Figura 4.4</xref>).</p>
<fig id="fig-4-4">
<label>Figura 4.4:</label>
<caption><title>Alineamiento global y local de secuencias de ADN.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-4.jpg"/>
</fig>
<p>El algoritmo de alineamiento global se basa en encontrar la mejor sincron&#x00ED;a entre dos secuencias haciendo coincidir todos los caracteres de ambas secuencias. Es adecuado cuando las dos secuencias a comparar tienen una longitud igual o similar y se espera que compartan similitudes a lo largo de toda la secuencia. Por otro lado, el algoritmo de alineamiento local se basa en la obtenci&#x00F3;n de la subcadena de la primera secuencia que m&#x00E1;s se acerca a otra subcadena de la segunda secuencia. Es adecuado para comparar secuencias de diferentes longitudes y secuencias menos similares o relacionadas.</p>
<p>Cualquiera de estos algoritmos devuelve dos valores. En primer lugar, el alineamiento como tal, es decir, la cadena o subcadena de mayor coincidencia entre dos secuencias. En el caso de la presente investigaci&#x00F3;n, este alineamiento puede ser utilizado para tratar de explicar los diferentes patrones de comportamiento que caracterizan a cada uno de los usuarios. El segundo resultado, es el valor de similitud entre ambas secuencias. Para obtener este resultado, normalmente se debe fijar el valor por el que se va a ponderar obtener una coincidencia, obtener un error y la penalizaci&#x00F3;n por extender el error a lo largo de una ventana. Cabe destacar que, la ponderaci&#x00F3;n de coincidencia debe ser positiva para aumentar la puntuaci&#x00F3;n de similitud final, mientras que las puntuaciones de error y ventana de error deben ser negativas para disminuir la similitud final entre las secuencias.</p>
<p>Atendiendo a lo expuesto con anterioridad, en el m&#x00E9;todo propuesto se utiliza la t&#x00E9;cnica de alineamiento global [<xref ref-type="bibr" rid="CIT0139">139</xref>]. De este modo, todos los n-gramas <target target-type="page" id="pges_89"/>obtenidos para cada usuario se comparan en pares entre s&#x00ED;. El alineamiento devuelve el valor de similitud entre ambos n-gramas, considerando la longitud total de la secuencia objetivo, y los valores fijados para los par&#x00E1;metros de coincidencia, error y ventana de error. Posteriormente, este valor de similitud se transforma a un valor de distancia. Para ello, en primer lugar, se normaliza en el rango [0,1], siendo 1 el valor m&#x00E1;ximo de similitud (es decir, un n-grama consigo mismo) y 0 el m&#x00ED;nimo. A continuaci&#x00F3;n, para obtener el valor de distancias se aplica uno menos el valor de similitud normalizado. De esta forma, el valor obtenido est&#x00E1; tambi&#x00E9;n en el rango [0,1], siendo 0 el valor de m&#x00ED;nima distancia (un n-grama consigo mismo) y 1 el valor de m&#x00E1;xima distancia entre n-gramas. Cabe destacar que, no pueden existir valores de distancia negativos. Estos valores de distancias se apilan en una una matriz sim&#x00E9;trica de tama&#x00F1;o NxN, donde N es el n&#x00FA;mero de n-gramas para un usuario espec&#x00ED;fico.</p>
<p>El resultado de este proceso es, por tanto, una matriz de distancias que representa la disimilitud entre los comportamientos generados por un mismo usuario. Por tanto, cada usuario obtendr&#x00E1; una matriz de distancias espec&#x00ED;fica e independiente.</p>
</sec>
<sec id="c4-s3">
<label><bold>4.3.</bold></label>
<title><bold>Extracci&#x00F3;n de los n&#x00FA;cleos de comportamiento</bold></title>
<p>La siguiente tarea se corresponde con utilizar la matriz de distancias, obtenida para cada usuario, para calcular los n&#x00FA;cleos de comportamiento de los mismos. Identificar y definir correctamente estos n&#x00FA;cleos de comportamiento es una de las tareas m&#x00E1;s cr&#x00ED;ticas para poder generar un modelo de an&#x00E1;lisis de comportamiento preciso, pues es la fuente de conocimiento que se utilizar&#x00E1; para comparar las nuevas muestras y, por lo tanto, la base que utiliza el modelo para detectar comportamientos an&#x00F3;malos que puedan suponer una brecha de seguridad. La mayor&#x00ED;a de los sistemas de control de accesos del estado del arte utilizan toda la informaci&#x00F3;n disponible de los comportamientos para cada usuario. Sin embargo, en el propio comportamiento de los usuarios pueden existir valores at&#x00ED;picos que pueden afectar negativamente al rendimiento y precisi&#x00F3;n del clasificador. Adem&#x00E1;s, utilizar todos los datos en lugar de un subconjunto de los mismos puede generar latencias a&#x00F1;adidas, tanto a la hora de entrenar el clasificador, como a la hora de predecir y evaluar nuevas muestras. Esto se debe a que cada secuencia (n-grama) se debe comparar contra un n&#x00FA;mero mayor de informaci&#x00F3;n. De este modo, lo ideal ser&#x00ED;a obtener n&#x00FA;cleos de comportamiento tan peque&#x00F1;os como sea posible, siempre y cuando estos n&#x00FA;cleos representen correctamente el comportamiento del usuario de tal manera que el clasificador pueda generalizar correctamente.</p>
<p>En la presente propuesta, se utiliza el algoritmo de <italic>clustering</italic> basado en densidades llamado DBSCAN [<xref ref-type="bibr" rid="CIT0123">123</xref>] para obtener los n&#x00FA;cleos de comportamiento. La idea bajo este algoritmo es dividir el espacio de decisi&#x00F3;n en &#x00E1;reas <target target-type="page" id="pges_90"/>de densidad. Para entrenar el DBSCAN, hay que fijar dos hiperpar&#x00E1;metros. En primer lugar, la distancia m&#x00E1;xima entre dos muestras que se consideran vecinas. Este hiperpar&#x00E1;metro se denomina <italic>EPS</italic> y es el par&#x00E1;metro m&#x00E1;s cr&#x00ED;tico. En segundo lugar, el n&#x00FA;mero m&#x00ED;nimo de puntos que debe tener una vecindad para ser considerada como un <italic>cluster</italic>.</p>
<p>Este hiperpar&#x00E1;metro se denomina <italic>MINS</italic>. Todos los vecinos dentro del radio <italic>EPS</italic> de un punto central se consideran parte del mismo <italic>cluster</italic>. Si alguno de estos vecinos es de nuevo un punto central, sus vecinos se incluyen de nuevo para su an&#x00E1;lisis. Los puntos no centrales de este conjunto se denominan puntos fronterizos. Los puntos que no son alcanzables desde ning&#x00FA;n punto central se consideran ruido y no pertenecen a ning&#x00FA;n cluster. DBSCAN no necesita informaci&#x00F3;n sobre el n&#x00FA;mero de <italic>clusters</italic> deseados a priori para su entrenamiento. Esto es coherente con el hecho de que, es imposible saber cu&#x00E1;ntos n&#x00FA;cleos de comportamiento (<italic>clusters</italic>) se obtendr&#x00E1;n para un usuario espec&#x00ED;fico.</p>
<p>El funcionamiento de DBSCAN se puede ver ilustrado en la <xref ref-type="fig" rid="fig-4-5">Figura 4.5</xref>. En este ejemplo, el par&#x00E1;metro MIN es 4 y el radio EPS est&#x00E1; representado por los c&#x00ED;rculos. A es un punto central. Los puntos B y C son puntos fronterizos. Las flechas indican la densidad. Los puntos B y C est&#x00E1;n conectados pues son alcanzables desde A tanto de forma directa, como por medio de otro punto central. R es un punto de ruido puesto que no es alcanzable desde A.</p>
<fig id="fig-4-5">
<label>Figura 4.5:</label>
<caption><title>Ejemplo del funcionamiento del algoritmo de DBSCAN.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-5.jpg"/>
</fig>
<p>De este modo, la matriz de distancias (que solo contiene comportamiento generado por el propio usuario) alimenta el algoritmo DBSCAN. As&#x00ED;, las regiones de alta densidad obtenidas representan los n&#x00FA;cleos de comportamiento, mientras que las regiones de baja densidad representan comportamientos at&#x00ED;picos del usuario. Estos comportamientos at&#x00ED;picos se descartan para que las muestras que se van a evaluar no puedan ser comparadas con ellos.</p>
<p><target target-type="page" id="pges_91"/>En la <xref ref-type="fig" rid="fig-4-6">Figura 4.6</xref>, se puede observar un ejemplo, para un usuario espec&#x00ED;fico, de los n&#x00FA;cleos extra&#x00ED;dos (puntos azules) y de los comportamientos at&#x00ED;picos (puntos rojos). Estos puntos se han representado utilizando las dos primeras componentes principales calculadas utilizando el algoritmo de escalado multidimensional [<xref ref-type="bibr" rid="CIT0140">140</xref>] (solo la informaci&#x00F3;n m&#x00E1;s representativa est&#x00E1; siendo visualizada en la figura). Como se puede observar, a medida que los puntos se alejan del n&#x00FA;cleo principal (mostrado en la parte inferior de la figura), la distribuci&#x00F3;n se va convirtiendo en m&#x00E1;s heterog&#x00E9;nea, es decir, contiene un mayor n&#x00FA;mero de comportamientos at&#x00ED;picos. Esto corrobora que DBSCAN est&#x00E1; descartando correctamente los comportamientos que se desv&#x00ED;an de la distribuci&#x00F3;n de comportamientos esperada para este usuario concreto.</p>
<fig id="fig-4-6">
<label>Figura 4.6:</label>
<caption><title>Representaci&#x00F3;n de los n&#x00FA;cleos de comportamiento de un usuario espec&#x00ED;fico utilizando escalado multidimensional.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-6.jpg"/>
</fig>
</sec>
<sec id="c4-s4">
<label><bold>4.4.</bold></label>
<title><bold>Modelo de riesgos</bold></title>
<p>En esta secci&#x00F3;n, se va a explicar detalladamente la elaboraci&#x00F3;n de un modelo de riesgos. Este modelo tiene el objetivo de clasificar las muestras en funci&#x00F3;n de su similitud con los n&#x00FA;cleos de comportamiento obtenidos previamente. Esto permite categorizar estas nuevas muestras en genuinas, o por el contrario detectar si son anomal&#x00ED;as y por lo tanto pertenecen a un impostor.</p>
<p>En primer lugar, toda nueva muestra se procesa siguiendo los pasos explicados en las secciones anteriores. De este modo, se obtienen los n-gramas <target target-type="page" id="pges_92"/>que representan el comportamiento de dichas muestras. Estos n-gramas se comparan utilizando las t&#x00E9;cnicas de alineamiento de ADN con todos los n-gramas de los n&#x00FA;cleos de comportamiento. El resultado de esta operaci&#x00F3;n es un vector de distancias para cada nueva muestra, cuya longitud es el n&#x00FA;mero de puntos de los n&#x00FA;cleos de comportamiento. Este vector, por lo tanto, determina la distancia entre esta nueva muestra y el conocimiento extra&#x00ED;do previamente para un usuario concreto.</p>
<p>La premisa de partida es que un mismo usuario va a generar, por norma general, vectores de distancias con valores peque&#x00F1;os (semejanzas altas), mientras que las din&#x00E1;micas de comportamiento generadas por un usuario impostor resultar&#x00E1;n en vectores de distancias con valores altos (poco semejantes con los n&#x00FA;cleos de comportamiento).</p>
<p>El riesgo asociado a esta nueva din&#x00E1;mica de comportamiento se puede calcular como la media de los valores del vector de distancias. De este modo, un valor bajo de riesgo determina que la nueva din&#x00E1;mica (en forma de n-grama) se encuentra cerca de los n&#x00FA;cleos de comportamiento y, por lo tanto, es altamente probable que pertenezca al mismo usuario objetivo. Por el contrario, <target target-type="page" id="pges_93"/>un valor alto de riesgo representa que esta nueva din&#x00E1;mica se encuentra lejos de los n&#x00FA;cleos de comportamiento y por lo tanto es probable que no pertenezca al usuario objetivo, sino que sea de un usuario impostor. Este proceso permite comparar cada nueva din&#x00E1;mica de comportamiento de forma individual. Sin embargo, en un entorno real se generan multitud de din&#x00E1;micas de comportamiento y adem&#x00E1;s lo hacen de forma secuencial. De este modo, estos valores de riesgo se ordenan a lo largo del tiempo, generando as&#x00ED;, un <italic>buffer</italic> de riesgo (ver <xref ref-type="fig" rid="fig-4-7">Figura 4.7a</xref>). Tal y como se puede observar, los valores de riesgo obtenidos son muy dispares, es decir, son muy cambiantes a lo largo del tiempo. Esto se debe a que cada din&#x00E1;mica de comportamiento, de forma independiente, puede ser muy parecida o distinta a los n&#x00FA;cleos de comportamiento calculados. Este resultado se traduce en que el sistema final obtiene multitud de falsos positivos y falsos negativos.</p>
<fig id="fig-4-7">
<label>Figura 4.7:</label>
<caption><title>Valores del <italic>buffer</italic> de riesgo para un usuario concreto.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-7.jpg"/>
</fig>
<p>Tomando como base la premisa de partida, se procede a suavizar el <italic>buffer</italic> de riesgo obtenido. Para ello se aplica la Media M&#x00F3;vil Exponencial (MME), con el objetivo de reducir los altos cambios que se producen en los valores de riesgos, de la siguiente manera:</p>
<disp-formula id="Eq_c4-1"><mml:math id="M1" display='block'><mml:mi>M</mml:mi><mml:mi>M</mml:mi><mml:msub><mml:mi>E</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close="" separators="|"><mml:mrow><mml:mtable columnalign="left left" columnspacing="1em" rowspacing=".2em"><mml:mtr><mml:mtd><mml:mrow><mml:maligngroup/><mml:malignmark/><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x0027;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>&#x00A0;&#x00A0;&#x00A0;&#x00A0;</mml:mo></mml:mrow><mml:maligngroup/><mml:malignmark/><mml:mrow><mml:mtext>&#xA0;si&#xA0;</mml:mtext><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:maligngroup/><mml:malignmark/><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:msub><mml:mi>Y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00B7;</mml:mo><mml:mi>M</mml:mi><mml:mi>M</mml:mi><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x0027;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>&#x00A0;&#x00A0;&#x00A0;&#x00A0;</mml:mo></mml:mrow><mml:maligngroup/><mml:malignmark/><mml:mrow><mml:mtext>&#xA0;si&#xA0;</mml:mtext><mml:mi>t</mml:mi><mml:mo>&gt;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mfenced></mml:math></disp-formula>
<p>donde <italic>MME<sub>t</sub></italic> es la media m&#x00F3;vil exponencial en el instante <italic>t</italic>, <italic>Y<sub>t</sub></italic> es el valor de riesgo en un instante <italic>t</italic> y <italic>a</italic> es el coeficiente de suavizado en el rango [0,1]. Un valor de <italic>a</italic> peque&#x00F1;o pondera m&#x00E1;s alto las observaciones m&#x00E1;s antiguas, mientras que un valor alto repercute en un modelo m&#x00E1;s olvidadizo que pondera m&#x00E1;s las observaciones &#x00FA;ltimas y cercanas al instante <italic>t</italic>.</p>
<p>El coeficiente a se suele calcular en funci&#x00F3;n del n&#x00FA;mero de observaciones pasadas a tener en cuenta [<xref ref-type="bibr" rid="CIT0141">141</xref>]. En este caso, se calcula de acorde al par&#x00E1;metro <italic>WinS ize</italic> como sigue:</p>
<disp-formula id="Eq_c4-2"><mml:math id="M2" display='block'><mml:mi>&#x03B1;</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mtext>&#xA0;WinSize&#xA0;</mml:mtext><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>
<p>donde <italic>WinS ize</italic> es el n&#x00FA;mero de observaciones a tener en cuenta de la secuencia de riesgos. Una vez se ha aplicado la MME, los valores pasan de ser muy cambiantes de lo largo del tiempo, a ser mucho m&#x00E1;s estables (ver <xref ref-type="fig" rid="fig-4-7">Figura 4.7b</xref>). Esto se debe a que, en esta ocasi&#x00F3;n, no es un &#x00FA;nico valor el que determina el riesgo asociado para un instante, sino el conjunto de <italic>WinS ize</italic> observaciones el que lo hace, es decir, el hist&#x00F3;rico de los valores de riesgo. Es por esto que para establecer un nivel &#x00F3;ptimo del par&#x00E1;metro <italic>WinS ize</italic> debe existir un equilibrio entre un mejor desempe&#x00F1;o a la hora de realizar predicciones y la usabilidad del m&#x00E9;todo en un entorno real. Un valor alto del par&#x00E1;metro <italic>WinS ize</italic>, considera m&#x00E1;s informaci&#x00F3;n y por lo tanto suaviza <target target-type="page" id="pges_94"/>mejor la curva obteniendo as&#x00ED; m&#x00E1;s exactitud al categorizar las din&#x00E1;micas de comportamiento. Sin embargo un valor bajo del par&#x00E1;metro <italic>WinS ize</italic> genera un modelo de riesgos m&#x00E1;s usable, pues al considerar menos informaci&#x00F3;n se necesitan menos recursos computacionales para su funcionamiento y tambi&#x00E9;n se pueden empezar a realizar predicciones en un intervalo menor de tiempo.</p>
<p>Una vez calculado el <italic>buffer</italic> de riesgo, la siguiente tarea es determinar que comportamientos se consideran normales y cuales se consideran an&#x00F3;malos. Esto permite categorizar las observaciones en genuinas (pertenecen al mismo usuario objetivo) y en impostores (pertenecen a un usuario impostor). Para lograr esto se tiene que establecer una frontera de decisi&#x00F3;n en la curva de riesgo. Para ello se determina un umbral de tal manera que los valores de riesgo por debajo del umbral se consideran genuinos, y los valores por encima del umbral se consideran impostores (ver <xref ref-type="fig" rid="fig-4-8">Figura 4.8</xref>).</p>
<fig id="fig-4-8">
<label>Figura 4.8:</label>
<caption><title>Tipos de umbrales aplicados sobre el <italic>buffer</italic> de riesgo utilizando MME.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-8.jpg"/>
</fig>
<p>La forma de determinar el umbral de forma &#x00F3;ptima se fij&#x00E1;ndolo al valor que produce el menor EER. Tal y como se ha explicado en la <xref ref-type="sec" rid="c3-s3-s4">Secci&#x00F3;n 3.3.4</xref>, este <target target-type="page" id="pges_95"/>valor se calcula como la intersecci&#x00F3;n entre la funci&#x00F3;n de FAR y la funci&#x00F3;n de FRR. A modo recordatorio, FAR se define como la probabilidad de que un usuario no autorizado (impostor) sea aceptado por el modelo. Por otro lado, FRR se define como la probabilidad de un usuario autorizado (genuino) sea rechazado injustamente por el modelo (sea considerado impostor). Tanto FAR como FRR son funciones, pues se pueden obtener m&#x00FA;ltiples valores para ellos dependiendo del umbral seleccionado. Fijar un valor extremo del umbral resulta en obtener un modelo restrictivo (menor FAR pero mayor FRR) o un modelo permisivo (menor FRR pero mayor FAR), pero nunca ambos valores menores simult&#x00E1;neamente. De esto modo, el EER se considera como el punto &#x00F3;ptimo para fijar el umbral, pues es el valor que consigue obtener el m&#x00ED;nimo valor para FAR y FRR simult&#x00E1;neamente.</p>
<p>Por &#x00FA;ltimo, cabe destacar que cuando se generan los n-gramas, la secuencia adyacente obtenida es la misma que la posterior excepto por el primer y &#x00FA;ltimo s&#x00ED;mbolo. Es por esto que el m&#x00E9;todo propuesto en esta tesis puede realizar predicciones para cada interacci&#x00F3;n del usuario (es decir, para cada pulsaci&#x00F3;n de teclado o movimiento de rat&#x00F3;n) una vez que se han obtenido al menos <italic>WinS ize</italic> interacciones (ver <xref ref-type="fig" rid="fig-4-9">Figura 4.9</xref>).</p>
<fig id="fig-4-9">
<label>Figura 4.9:</label>
<caption><title>Secuencia de predicciones en funci&#x00F3;n de los par&#x00E1;metros del m&#x00E9;todo. <italic>N-Gram Length (NGL) =</italic> 3 y <italic>WinSize</italic>=4.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-4-9.jpg"/>
</fig>
</sec>
<sec id="c4-s5">
<label><bold>4.5.</bold></label>
<title><bold>Selecci&#x00F3;n de par&#x00E1;metros</bold></title>
<p>El m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n propuesto en esta investigaci&#x00F3;n necesita definir un total de dos par&#x00E1;metros y cuatro hiperparametros (ver <xref ref-type="tab" rid="c4-tab1">Tabla 4.1</xref>). Los resultados obtenidos est&#x00E1;n muy ligados a la selecci&#x00F3;n correcta de estos par&#x00E1;metros. Es por esto que es necesario hacer especial atenci&#x00F3;n en entender y definir correctamente cada uno de ellos. Los par&#x00E1;metros requeridos por el modelo son <italic>NGL</italic> y <italic>WinS ize</italic>.</p>
<table-wrap id="c4-tab1">
<label>Tabla 4.1:</label>
<caption><title>Resumen de los par&#x00E1;metros e hiperparametros del m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n de comportamientos. <italic>f</italic><sub>100</sub> representa la distancia con posici&#x00F3;n cien de la matriz de distancias ordenada de menor a mayor y descartando los valores iguales a cero.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Nombre</bold></th>
<th valign="top" align="left"><bold>Descripci&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>Valores</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>NGL</italic></td>
<td valign="top" align="left">Longitud del N-grama</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT005">5</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT020">20</xref>,<xref ref-type="bibr" rid="CIT030">30</xref>]</td>
</tr>
<tr>
<td valign="top" align="left"><italic>WinS ize</italic></td>
<td valign="top" align="left">Informaci&#x00F3;n hist&#x00F3;rica considerada en forma de secuencias</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT005">5</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT020">20</xref>,<xref ref-type="bibr" rid="CIT050">50</xref>,<xref ref-type="bibr" rid="CIT0100">100</xref>]</td>
</tr>
<tr>
<td valign="top" align="left"><italic>N&#x00FA;mero de &#x00E1;rboles</italic></td>
<td valign="top" align="left">N&#x00FA;mero de &#x00E1;rboles generados en el RTE</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT002">2</xref>,<xref ref-type="bibr" rid="CIT005">5</xref>]</td>
</tr>
<tr>
<td valign="top" align="left"><italic>M&#x00E1;xima profundidad</italic></td>
<td valign="top" align="left">M&#x00E1;xima profundidad de los &#x00E1;rboles del RTE</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT002">2</xref>,<xref ref-type="bibr" rid="CIT005">5</xref>]</td>
</tr>
<tr>
<td valign="top" align="left"><italic>EPS</italic></td>
<td valign="top" align="left">M&#x00E1;xima distancia entre dos muestras para ser consideradas vecinas en DBSCAN</td>
<td valign="top" align="left">[0 : <italic>f</italic><sub>100</sub>]</td>
</tr>
<tr>
<td valign="top" align="left"><italic>MINS</italic></td>
<td valign="top" align="left">M&#x00ED;nimo n&#x00FA;mero de puntos que tiene que tener una vecindad para considerarse <italic>cluster</italic> en DBSCAN</td>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT002">2</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT050">50</xref>,<xref ref-type="bibr" rid="CIT0100">100</xref>]</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><target target-type="page" id="pges_96"/>El valor de <italic>NGL</italic> determina el n&#x00FA;mero de interacciones (teclado, rat&#x00F3;n o ambas) que se agrupan para cada instante con el objetivo de obtener una predicci&#x00F3;n. Un valor extremo de este par&#x00E1;metro puede resultar en subajuste (para valores peque&#x00F1;os) y sobreajuste (para valores altos). La b&#x00FA;squeda de este par&#x00E1;metro se ha limitado a los valores [<xref ref-type="bibr" rid="CIT005">5</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT020">20</xref>,<xref ref-type="bibr" rid="CIT030">30</xref>] bas&#x00E1;ndose en la experiencia emp&#x00ED;rica.</p>
<p>El valor de <italic>WinS ize</italic> define cuanta informaci&#x00F3;n hist&#x00F3;rica de comportamiento (en forma de secuencias de n-gramas) va a ser utilizada para realizar una predicci&#x00F3;n. El objetivo de este par&#x00E1;metro es suavizar el <italic>buffer</italic> de riesgo. La b&#x00FA;squeda de este par&#x00E1;metro de ha limitado a los valores [<xref ref-type="bibr" rid="CIT005">5</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT020">20</xref>,<xref ref-type="bibr" rid="CIT050">50</xref>,<xref ref-type="bibr" rid="CIT0100">100</xref>] bas&#x00E1;ndose en la experiencia emp&#x00ED;rica.</p>
<p>El algoritmo de RTE necesita fijar dos hiperpar&#x00E1;metros: el <italic>N&#x00FA;mero de &#x00E1;rboles</italic> y la <italic>M&#x00E1;xima profundidad</italic> de cada &#x00E1;rbol. Ambos hiperpar&#x00E1;metros determinan la longitud del abecedario en el que cada muestra puede ser categorizada. De esta forma, un valor alto puede resultar en sobreajuste, pues se obtendr&#x00E1; un alfabeto muy amplio, en el que cada s&#x00ED;mbolo representa algo muy espec&#x00ED;fico, haciendo que las secuencias obtenidas no se parezcan entre s&#x00ED;. Por otro lado, un valor peque&#x00F1;o de ambos resultara en un abecedario muy limitado, obteniendo as&#x00ED; secuencias muy parecidas entre s&#x00ED; y por lo tanto no discriminatorias (subajuste). Para cada fuente de informaci&#x00F3;n, la b&#x00FA;squeda de estos hiperpar&#x00E1;metros se ha limitado al rango [<xref ref-type="bibr" rid="CIT002">2</xref>, <xref ref-type="bibr" rid="CIT005">5</xref>] bas&#x00E1;ndose en la experiencia emp&#x00ED;rica.</p>
<p>Para el algoritmo de DBSCAN se necesitan fijar tambi&#x00E9;n dos hiperpar&#x00E1;metros: <italic>EPS</italic> y <italic>MINS</italic>. Estos hiperpar&#x00E1;metros se han delimitado utilizando una b&#x00FA;squeda en cuadr&#x00ED;culas (en ingl&#x00E9;s, <italic>grid search</italic>). Para hacer la b&#x00FA;squeda m&#x00E1;s eficiente, los valores posibles se han acotado. De esta forma, los valores de <italic>EPS</italic> est&#x00E1;n en el rango [0 : <italic>f</italic> <sub>100</sub>], donde <italic>f</italic> <sub>100</sub> representa la distancia con posici&#x00F3;n cien de la matriz de distancias ordenada de menor a mayor y descartando los valores iguales a cero. El par&#x00E1;metro <italic>MINS</italic> se ha limitado a los valores [<xref ref-type="bibr" rid="CIT002">2</xref>,<xref ref-type="bibr" rid="CIT010">10</xref>,<xref ref-type="bibr" rid="CIT050">50</xref>,<xref ref-type="bibr" rid="CIT0100">100</xref>] bas&#x00E1;ndose en la experiencia emp&#x00ED;rica.</p>
<p>Cabe destacar que fijar de forma &#x00F3;ptima estos par&#x00E1;metros depender&#x00E1; ampliamente de los requisitos particulares de los datos en donde se quiera aplicar el m&#x00E9;todo. Sin embargo, se debe tener en cuenta algunas consideraciones. Fijar los par&#x00E1;metros <italic>NGL</italic> y <italic>WinS ize</italic> a valores altos repercute en obtener un modelo con m&#x00E1;s exactitud a la hora de clasificar din&#x00E1;micas de comportamiento. Esto se debe a que, el aumento de cualquiera de ellos hace que se considere m&#x00E1;s informaci&#x00F3;n para realizar una predicci&#x00F3;n. Sin embargo, esto tambi&#x00E9;n repercute en la usabilidad.</p>
<p>Por otro lado, para fijar los hiperparametros de RTE y DBSCAN se recomienda utilizar una b&#x00FA;squeda en cuadr&#x00ED;culas acotando los posibles valores para realizarla de forma eficiente. Hay que tener en cuenta las consideraciones explicadas anteriormente para evitar tanto el sobreajuste como el subajuste.<target target-type="page" id="pges_97"/><target target-type="page" id="pges_98"/></p>
</sec>
</body>
</book-part>
<book-part id="c5" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>CAP&#x00CD;TULO 5</label>
<title><target target-type="page" id="pges_99"/>EVALUACI&#x00D3;N Y VALIDACI&#x00D3;N DE LA PROPUESTA</title>
</title-group>
</book-part-meta>
<body>
<p>En esta secci&#x00F3;n se detallan los experimentos realizados para poder evaluar y validar la propuesta. En primer lugar, se eval&#x00FA;a el flujo de trabajo propuesto en el <xref ref-type="book-part" rid="c3">Cap&#x00ED;tulo 3</xref>. Finalmente, se eval&#x00FA;a el m&#x00E9;todo propuesto en el <xref ref-type="book-part" rid="c4">Cap&#x00ED;tulo 4</xref> para la combinaci&#x00F3;n de informaci&#x00F3;n de comportamientos.</p>
<sec id="c5-s1">
<label><bold>5.1.</bold></label>
<title><bold>Evaluaci&#x00F3;n del flujo de trabajo</bold></title>
<sec id="c5-s1-s1">
<label><bold>5.1.1.</bold></label>
<title><bold>Desarrollo del entorno de trabajo y conjunto de datos UEBA</bold></title>
<p>Con el objetivo de poder evaluar el flujo de trabajo propuesto, se ha desarrollado un entorno de trabajo totalmente funcional que implementa la gesti&#x00F3;n de identidades federada. Para ello, se ha desarrollado una aplicaci&#x00F3;n de chat, cuyo rol es el de RP, y un IdP cuya funci&#x00F3;n es la de gestionar las identidades digitales necesarias para realizar los experimentos.</p>
<p>El chat se ha desarrollado utilizando la aplicaci&#x00F3;n de c&#x00F3;digo abierto <italic>Letschat</italic> [<xref ref-type="bibr" rid="CIT0142">142</xref>], el cual se encuentra bajo la licencia MIT. Esta aplicaci&#x00F3;n se ha desarrollado en <italic>Node.js</italic> [<xref ref-type="bibr" rid="CIT0143">143</xref>] y utiliza una base de datos <italic>MongoDB</italic> [<xref ref-type="bibr" rid="CIT0144">144</xref>] para almacenar toda la informaci&#x00F3;n necesaria. La aplicaci&#x00F3;n es compatible con la mayor&#x00ED;a de navegadores web del mercado y es multidipositivo. En el presente trabajo de tesis, esta aplicaci&#x00F3;n ha sido ejecutada en un ordenador port&#x00E1;til MSI GF62 8RD-256XES equipado con un procesador Intel Core i7 8750H (2.2 GHz, 9MB). Adem&#x00E1;s, tiene una memoria RAM de 16 GB DDRIV (2666 MHz).</p>
<p>Por otro lado, se ha desarrollado un componente que se integra dentro del chat con el objetivo de recopilar la informaci&#x00F3;n de comportamiento. Este componente, desarrollado en <italic>Javascript</italic> y basado en el trabajo [<xref ref-type="bibr" rid="CIT0145">145</xref>], se integra en el cliente web donde se ejecuta la aplicaci&#x00F3;n. Su funcionalidad es la de recoger la informaci&#x00F3;n relacionada con los eventos de pulsaci&#x00F3;n de teclas en el teclado y de movimientos de rat&#x00F3;n y almacenarla. Los eventos relacionados con el teclado son recopilados cada vez que suceden, sin embargo, los eventos de rat&#x00F3;n se han de recoger por <italic>pooling</italic>, es decir, cada cierto tiempo. En este caso concreto los eventos de <italic>pooling</italic> se han recopilado cada 200 milisegundos debido a los recursos de memoria y computaci&#x00F3;n disponibles.</p>
<p>Finalmente, el IdP se ha desarrollado utilizando el <italic>framework</italic> OpenAM [<xref ref-type="bibr" rid="CIT0146">146</xref>]. De esta forma, se ha hecho uso del <italic>Web application Resource</italic> (WAR) para <target target-type="page" id="pges_100"/>instalar la versi&#x00F3;n 13.5. Una vez instalado, y teniendo en cuenta los requisitos del presente trabajo, se ha implementado un cliente OAuth 2.0/OpenID Connect. Este cliente proporciona de forma sencilla todos los mecanismos para poder realizar los flujos de autorizaci&#x00F3;n y autenticaci&#x00F3;n disponibles en dichas especificaciones.</p>
<p>Este desarrollo, ha dado lugar a el conjunto de datos denominado <italic>Keystroke and Mouse Dynamics for UEBA Dataset</italic>, el cual ha sido recopilado para el presente trabajo de tesis doctoral y est&#x00E1; disponible p&#x00FA;blicamente para la comunidad cient&#x00ED;fica [<xref ref-type="bibr" rid="CIT0147">147</xref>]. Para recopilar el conjunto de datos, un grupo de once investigadores de la Universidad Rey Juan Carlos heterog&#x00E9;neos en cuanto a edad y g&#x00E9;nero, han hecho uso de la aplicaci&#x00F3;n de chat. Todos los participantes, mayores de edad, han recibido informaci&#x00F3;n sobre la finalidad del experimento y han participado en &#x00E9;l de manera completamente voluntaria, sin recibir ning&#x00FA;n tipo de presi&#x00F3;n y proporcionando para ello su consentimiento expl&#x00ED;cito. A todos se les ha informado de los m&#x00ED;nimos riesgos que corr&#x00ED;an, ya que solo se recog&#x00ED;an datos relacionados con el uso expl&#x00ED;cito de la aplicaci&#x00F3;n de chat, que no permiten identificarles y que adem&#x00E1;s no se asociaban a sus datos personales. De este modo, se han recopilado dos bases de datos denominadas <italic>EVTRACKINFO</italic> y <italic>EVTRACKTRACK</italic>. Estas bases de datos mantienen una relaci&#x00F3;n 1:N entre ellas respectivamente. <italic>EVTRACKINFO</italic> contiene informaci&#x00F3;n de sesi&#x00F3;n, es decir, almacena los atributos est&#x00E1;ticos como, por ejemplo, el usuario autenticado, agente de usuario y la resoluci&#x00F3;n de la pantalla asociado a cada sesi&#x00F3;n (ver <xref ref-type="sec" rid="c3-s3-s1">Secci&#x00F3;n 3.3.1</xref>). Por otro lado, <italic>EVTRACKTRACK</italic> contiene la informaci&#x00F3;n asociada a las din&#x00E1;micas de comportamiento de cada sesi&#x00F3;n. Esto es, los eventos derivados de las pulsaciones de teclado y de rat&#x00F3;n.</p>
<p>En total, 347 y 142691 registros han sido recopilados para <italic>EVTRACKINFO</italic> y <italic>EVTRACK-TRACK</italic> respectivamente. Del total de las din&#x00E1;micas de comportamiento, 113471 pertenecen a din&#x00E1;micas de teclado, mientras que 29220 pertenecen a din&#x00E1;micas de rat&#x00F3;n. Para cada usuario, se han obtenido un total de 28524 &#x00B1; 18541 registros (media &#x00B1; desviaci&#x00F3;n t&#x00ED;pica).</p>
<p>El entorno de trabajo desarrollado y el conjunto de datos obtenido se han utilizado para evaluar y validar todas las tareas que componen el flujo de trabajo propuesto. De aqu&#x00ED; en adelante, se detalla la implementaci&#x00F3;n de cada una de estas tareas.</p>
</sec>
<sec id="c5-s1-s2">
<label><bold>5.1.2.</bold></label>
<title><bold>Selecci&#x00F3;n de la huella digital en el conjunto de datos UEBA</bold></title>
<p>En el caso del chat desarrollado, se ha seleccionado una RP con un perfil de seguridad medio (ver <xref ref-type="sec" rid="c3-s3-s1">Secci&#x00F3;n 3.3.1</xref>). Hay que destacar, que de acuerdo con los bajos recursos computacionales del servidor donde se ejecuta <target target-type="page" id="pges_101"/>la aplicaci&#x00F3;n y a la gran cantidad de usuarios que pueden interactuar con la aplicaci&#x00F3;n de forma simult&#x00E1;nea, la huella digital debe ser lo m&#x00E1;s simple posible con el objetivo de no saturar el sistema, pero lo suficientemente discriminatoria para poder diferenciar entre los distintos comportamientos de los usuarios.</p>
<p>De esta forma, el agente de usuario y la resoluci&#x00F3;n de pantalla se han seleccionado como atributos est&#x00E1;ticos, mientras que las din&#x00E1;micas de teclado y las din&#x00E1;micas de rat&#x00F3;n se han seleccionado como atributos din&#x00E1;micos. Cabe destacar que, debido a la naturaleza de la aplicaci&#x00F3;n de chat, se espera obtener una recopilaci&#x00F3;n masiva de datos, ya que el teclado y el rat&#x00F3;n van a ser utilizados asiduamente por los usuarios.</p>
</sec>
<sec id="c5-s1-s3">
<label><bold>5.1.3.</bold></label>
<title><bold>Generaci&#x00F3;n de la huella digital en el conjunto de datos UEBA</bold></title>
<p>El objetivo de esta tarea es generar una huella digital para cada usuario con la suficiente singularidad como para ser distintiva entre usuarios. De esta forma, los atributos est&#x00E1;ticos y los atributos din&#x00E1;micos son recopilados haciendo uso del componente espec&#x00ED;ficamente desarrollado para ello. Esta informaci&#x00F3;n est&#x00E1; recogida en bruto y, por tanto, se trata para poder extraer conocimiento y generar caracter&#x00ED;sticas significativas que puedan alimentar a los modelos de aprendizaje m&#x00E1;quina. En el caso de los atributos est&#x00E1;ticos la informaci&#x00F3;n en bruto es transformada directamente a variables categ&#x00F3;ricas. En el caso de los atributos din&#x00E1;micos se distinguen dos posibles casu&#x00ED;sticas: las din&#x00E1;micas de teclado y las din&#x00E1;micas de rat&#x00F3;n.</p>
<p>En el caso de las din&#x00E1;micas de teclado, cada pulsaci&#x00F3;n de una tecla, es decir, cada interacci&#x00F3;n, genera dos tipos de eventos principalmente (debido a la tecnolog&#x00ED;a seleccionada para su implementaci&#x00F3;n): <italic>keydown</italic> y <italic>keyup</italic>. El evento de <italic>Keydown</italic> contiene la marca de tiempo sobre cu&#x00E1;ndo se ha inicializado la pulsaci&#x00F3;n, mientras que el evento <italic>keyup</italic> contiene la marca de tiempo de cuando la pulsaci&#x00F3;n ha concluido, es decir, cuando el usuario ha dejado de mantener la tecla pulsada. Estas interacciones se agrupan en ventanas temporales de dos pulsaciones formando digrafos. De esta forma, cada digrafo contiene cuatro marcas de tiempo (para cada pulsaci&#x00F3;n un evento de <italic>keyupX</italic> y otro de <italic>KeydownX</italic>, donde X representa el n&#x00FA;mero de interacci&#x00F3;n). De esta forma, se calculan seis caracter&#x00ED;sticas o variables para cada digrafo [<xref ref-type="bibr" rid="CIT0105">105</xref>]:</p>
<list list-type="bullet">
<list-item><p>H1 (<italic>keyupl-Keydownl</italic>): tiempo transcurrido para la primera interacci&#x00F3;n.</p></list-item>
<list-item><p>H2 (<italic>Keyup2-Keydown2</italic>): tiempo transcurrido para la segunda interacci&#x00F3;n.</p></list-item>
<list-item><p>HP (<italic>Keydown2-Keyup1</italic>): tiempo transcurrido desde que termina la primera interacci&#x00F3;n hasta que se inicia la segunda interacci&#x00F3;n.</p></list-item>
<list-item><p><target target-type="page" id="pges_102"/>PP (<italic>Keydown2-Keydown1</italic>): tiempo transcurrido desde que se inicia la primera interacci&#x00F3;n hasta que se inicia la segunda interacci&#x00F3;n.</p></list-item>
<list-item><p>HH (<italic>Keyup2-Keyup1</italic>): tiempo transcurrido desde que acaba la primera interacci&#x00F3;n hasta que acaba la segunda interacci&#x00F3;n.</p></list-item>
<list-item><p>PH (<italic>Keyup2-Keydown1</italic>): tiempo transcurrido desde que se inicia la primera interacci&#x00F3;n hasta que acaba la segunda interacci&#x00F3;n.</p></list-item>
</list>
<p>Adem&#x00E1;s, se almacena informaci&#x00F3;n sobre la propia tecla pulsada, esto es, se almacenan los caracteres espec&#x00ED;ficos pulsados para cada digrafo. Estos caracteres se categorizan teniendo en cuenta una divisi&#x00F3;n f&#x00ED;sica del teclado, seleccionando las teclas que se encuentran a la izquierda del teclado y aquellas a la derecha en otro grupo. Tambi&#x00E9;n se incluye la posici&#x00F3;n en el eje vertical, arriba y abajo para cada uno de los grupos anteriormente mencionados. De esta forma, esta categor&#x00ED;a puede tomar cuatro valores distintos.</p>
<p>En el caso de las din&#x00E1;micas del rat&#x00F3;n, se han extra&#x00ED;do cinco caracter&#x00ED;sticas. Al igual que en el caso del teclado, los eventos del rat&#x00F3;n se han agrupado formando digrafos. Para cada digrafo se ha calculado: el &#x00E1;ngulo, la distancia, la velocidad, el tiempo total transcurrido y el tipo de evento de <italic>Javascript</italic>.</p>
<p>Utilizando las caracter&#x00ED;sticas recopiladas, se genera una huella digital para cada usuario. Esta huella contiene tres componentes: el componente de los atributos est&#x00E1;ticos, el componente de las din&#x00E1;micas de teclado y el componente de las din&#x00E1;micas de rat&#x00F3;n. La informaci&#x00F3;n de cada uno de los componentes est&#x00E1; almacenada en forma de vector.</p>
</sec>
<sec id="c5-s1-s4">
<label><bold>5.1.4.</bold></label>
<title><bold>Modelado y evaluaci&#x00F3;n</bold></title>
<p>Los procesos de modelado y evaluaci&#x00F3;n tienen como objetivo construir los modelos de aprendizaje m&#x00E1;quina, basados en UEBA, que clasifican las din&#x00E1;micas de comportamiento. Estos procesos se han considerado conjuntamente en esta secci&#x00F3;n, pues se van a realizar de forma simult&#x00E1;nea, avanzando y retrocediendo hasta llegar a unos modelos con alta capacidad de generalizaci&#x00F3;n, robustos y con eficacia alta.</p>
<p>Los experimentos aqu&#x00ED; detallados se han centrado en desarrollar un modelo de aprendizaje m&#x00E1;quina capaz de comparar y evaluar las huellas digitales generadas en los pasos anteriores. En primer lugar, los datos recopilados se han separado en tres conjuntos: conjunto de entrenamiento, <target target-type="page" id="pges_103"/>test y validaci&#x00F3;n. El conjunto de entrenamiento contiene el 70 % de los datos de cada usuario espec&#x00ED;fico (muestras genuinas). Los conjuntos de test y de validaci&#x00F3;n contienen, respectivamente, un 15 % de los datos restantes. Los conjuntos de test y validaci&#x00F3;n son completados utilizando muestras at&#x00ED;picas para simular comportamientos an&#x00F3;malos, es decir, comportamientos que pueden suponer una brecha de seguridad y por tanto se quieren detectar (muestras de impostores). Para llevarlo a cabo, se seleccionan de forma aleatoria tantas muestras del resto de usuarios como tenga el propio usuario para cada uno de los conjuntos. En conclusi&#x00F3;n, el conjunto de entrenamiento solo contiene muestras genuinas y se utiliza para entrenar los modelos de detecci&#x00F3;n de anomal&#x00ED;as pertinentes. Por otro lado, los conjuntos de test y validaci&#x00F3;n contienen muestras tanto genuinas, como an&#x00F3;malas, y se utilizan para evaluar la eficacia de los modelos propuestos y determinar si son robustos y capaces de generalizar correctamente.</p>
<p>En cuanto a la comparaci&#x00F3;n de huellas digitales, cada componente (atributos est&#x00E1;ticos, din&#x00E1;micas de teclado y din&#x00E1;micas de rat&#x00F3;n) se modela de forma independiente. De esta forma, los componentes pueden ser activados o desactivados para poder evaluar la comparaci&#x00F3;n de huellas digitales de forma independiente para cada uno de ellos.</p>
<p>En primer lugar se ha implementado un NB para comparar los atributos est&#x00E1;ticos. Este clasificador asume que cada variable es totalmente independiente y, por lo tanto, cada variable determina la probabilidad de pertenecer a la clase genuina o a la impostora [<xref ref-type="bibr" rid="CIT0148">148</xref>]. Debido al bajo n&#x00FA;mero de participantes en el conjunto de datos UEBA, los resultados obtenidos muestran una clasificaci&#x00F3;n perfecta. Esto quiere decir que simplemente considerando el agente de usuario y la resoluci&#x00F3;n de pantalla, este simple clasificador es capaz de determinar si un usuario es genuino o impostor de forma exacta. En el caso de que el n&#x00FA;mero de usuarios aumentase, el n&#x00FA;mero de atributos est&#x00E1;ticos que habr&#x00ED;a que considerar ser&#x00ED;a mayor y muy probablemente no se conseguir&#x00E1; esta clasificaci&#x00F3;n perfecta. Adem&#x00E1;s, estos atributos est&#x00E1;ticos son f&#x00E1;ciles de manipular y falsear (para los atributos din&#x00E1;micos la complejidad de manipulaci&#x00F3;n o falseo es mayor o incluso imposible). Por otro lado, ciertos ataques pueden tomar el control de la m&#x00E1;quina del usuario genuino y por lo tanto hacer que estos atributos sean id&#x00E9;nticos a los esperados e imposibles de detectar por el modelo. Es por esto que en caso de que el n&#x00FA;mero de usuarios aumente, se recomienda aumentar el nivel de seguridad de las RPs (actualmente se ha seleccionado un nivel medio de seguridad).</p>
<p>En el caso de las din&#x00E1;micas de teclado, los digrafos generados se agrupan en n-gramas [<xref ref-type="bibr" rid="CIT0149">149</xref>]. De esta forma se concatenan los digrafos formando vectores de longitud dos, tres y seis. Sobre estos vectores se utiliza la distancia de Manhattan [<xref ref-type="bibr" rid="CIT0150">150</xref>] para comparar las din&#x00E1;micas de comportamiento asociadas al teclado [<xref ref-type="bibr" rid="CIT085">85</xref>].</p>
<p>El conjunto de entrenamiento para cada usuario se utiliza para calcular la media de cada caracter&#x00ED;stica recopilada. Posteriormente se extraen los <target target-type="page" id="pges_104"/>vectores de caracter&#x00ED;sticas para el conjunto de test. De esta forma se utiliza la distancia de Manhattan para comparar estos vectores con la media calculada en el conjunto de entrenamiento. De este modo se obtiene la similitud entre estas muestras y lo esperado. Con estas similitudes calculadas en el conjunto de test se puede fijar un umbral de decisi&#x00F3;n utilizando el EER. En caso de que la similitud entre las muestras sea menor al umbral determinado se clasifica como genuina, mientras que en caso de que supere el umbral se clasifica como impostor.</p>
<p>Con el umbral ya fijado, se procede a evaluar el conjunto de validaci&#x00F3;n. Los datos almacenados en este conjunto no han sido nunca antes vistos por el modelo y, por lo tanto, permiten evaluar el modelo de forma justa y analizar la capacidad de generalizaci&#x00F3;n del modelo obtenido. Los resultados obtenidos para este modelo son bastante pobres, obteniendo un EER de 0,511 &#x00B1; 0,124 (media &#x00B1; desviaci&#x00F3;n t&#x00ED;pica). Estos resultados se obtienen porque los datos recopilados no tienen una frecuencia o distribuci&#x00F3;n predeterminada, a diferencia de otros trabajos del estado del arte que s&#x00ED; asumen un patr&#x00F3;n determinado (usuarios introduciendo la misma contrase&#x00F1;a un n&#x00FA;mero determinado de veces). Es por esto que se deben incluir ciertas mejoras en el modelo para obtener unos resultados &#x00F3;ptimos.</p>
<p>Siguiendo esta l&#x00ED;nea se ha realizado un proceso de exploraci&#x00F3;n de datos m&#x00E1;s exhaustivo, permitiendo determinar que los vectores que comienzan con la misma pulsaci&#x00F3;n, tienden a ser m&#x00E1;s similares entre s&#x00ED; que los que comienzan con una pulsaci&#x00F3;n distinta (p. ej. los vectores que comienzan por la pulsaci&#x00F3;n del car&#x00E1;cter &#x2019;a&#x2019; son m&#x00E1;s similares entre s&#x00ED;, a los que comienzan por el car&#x00E1;cter &#x2019;b&#x2019; y viceversa). De esta forma, se han agrupado los vectores en funci&#x00F3;n de su primera pulsaci&#x00F3;n. En este caso, tambi&#x00E9;n se ha observado que el vector medias que se utiliza en el conjunto de entrenamiento no es lo suficientemente discriminatorio debido a la alta dispersi&#x00F3;n de los datos de cada usuario. Es por esto que se ha decidido sustituir este vector medias por un modelo de KNN utilizando la misma distancia de Manhattan. De esta forma, cada muestra no se va a comparar contra el vector media de caracter&#x00ED;sticas, sino contra la etiqueta conocida que posean los n-vecinos m&#x00E1;s cercanos. Al igual que para el modelo anterior, se utiliza el EER para fijar un umbral &#x00F3;ptimo de clasificaci&#x00F3;n.</p>
<p>Los resultados obtenidos se pueden observar en la <xref ref-type="tab" rid="c5-tab1">Tabla 5.1</xref>. Estos resultados confirman que el modelo mejorado representa de forma &#x00F3;ptima el comportamiento de los usuarios y por consiguiente clasifica correctamente un n&#x00FA;mero elevado de muestras, es decir, obtiene valores de EER FAR y FRR menores.</p>
<table-wrap id="c5-tab1">
<label>Tabla 5.1:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan para las din&#x00E1;micas de teclado agrupando por tecla pulsada: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica).</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"></th>
<th valign="top" align="center" colspan="3"><bold>Test</bold></th>
<th valign="top" align="center" colspan="2"><bold>Validaci&#x00F3;n</bold></th>
</tr>
<tr>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
<th valign="top" align="left"><bold>EER</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,257</td>
<td valign="top" align="left">0,265</td>
<td valign="top" align="left">0,296 (0,099)</td>
<td valign="top" align="left">0,321</td>
<td valign="top" align="left">0,304</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,284</td>
<td valign="top" align="left">0,294</td>
<td valign="top" align="left">0,308 (0,099)</td>
<td valign="top" align="left">0,317</td>
<td valign="top" align="left">0,309</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,279</td>
<td valign="top" align="left">0,294</td>
<td valign="top" align="left">0,347 (0,141)</td>
<td valign="top" align="left">0,267</td>
<td valign="top" align="left">0,299</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>El modelo obtenido compara cada vector de caracter&#x00ED;sticas de forma totalmente independiente. Sin embargo, en un entorno real, estos vectores de caracter&#x00ED;sticas se van generando a lo largo del tiempo y de forma ordenada <target target-type="page" id="pges_105"/>a medida que los usuarios van interaccionando con la aplicaci&#x00F3;n. Esto se traduce, en que las distancias obtenidas pueden tambi&#x00E9;n ordenarse y analizarse a lo largo del tiempo y no compararse una a una como se ha hecho hasta ahora. Para realizar esto, se propone utilizar un <italic>buffer</italic> temporal. En este caso, las distancias entre vectores se utilizan para llenar el <italic>buffer</italic>. De esta manera, si la distancia obtenida para un vector concreto supera el umbral determinado, el <italic>buffer</italic> se llenar&#x00E1;. En caso contrario, es decir, si la distancia es menor que el umbral, el <italic>buffer</italic> disminuir&#x00E1;. El valor a aumentar o disminuir en el <italic>buffer</italic> es la distancia a dicho umbral. De esta forma, se determina un nuevo umbral de clasificaci&#x00F3;n para este <italic>buffer</italic> bas&#x00E1;ndose, al igual que para los modelos previos, en el menor EER.</p>
<p>A continuaci&#x00F3;n se utilizan los conjuntos de test y validaci&#x00F3;n para evaluar el modelo. En esta ocasi&#x00F3;n, los datos pertenecientes a usuarios impostores se concatenan al final de las muestras genuinas. Los resultados para este experimento se encuentran en la <xref ref-type="tab" rid="c5-tab2">Tabla 5.2</xref>. Tal y como se puede observar, incluir la informaci&#x00F3;n temporal hace que el modelo aumente considerablemente su eficacia a la hora de clasificar las muestras de test correctamente. Adem&#x00E1;s, el modelo obtenido es robusto, pues tambi&#x00E9;n obtiene resultados <target target-type="page" id="pges_106"/>semejantes y &#x00F3;ptimos para el conjunto de validaci&#x00F3;n. Sin embargo, este modelo contiene un sesgo pues se est&#x00E1; asumiendo que los comportamientos an&#x00F3;malos suceden siempre al final de las muestras genuinas, algo que en un escenario real no es as&#x00ED; necesariamente. En un escenario real las anomal&#x00ED;as de comportamiento pueden suceder en cualquier instante temporal pues no se puede saber a priori cuando un usuario va a sufrir un ataque ni la duraci&#x00F3;n del mismo. Es por esto que el modelo generado, a pesar de no ser una buena soluci&#x00F3;n para un entorno real, sirve para corroborar que, si se considera la suficiente informaci&#x00F3;n de comportamientos, se pueden obtener resultados &#x00F3;ptimos a la hora de clasificar las muestras. Es decir, sirve para generar un modelo de referencia cuyos resultados son los mejores que se pueden obtener siguiendo los pasos aqu&#x00ED; descritos.</p>
<table-wrap id="c5-tab2">
<label>Tabla 5.2:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica). Modelo de referencia.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"></th>
<th valign="top" align="center" colspan="3"><bold>Test</bold></th>
<th valign="top" align="center" colspan="2"><bold>Validaci&#x00F3;n</bold></th>
</tr>
<tr>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
<th valign="top" align="left"><bold>EER</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,125</td>
<td valign="top" align="left">0,128</td>
<td valign="top" align="left">0,133 (0,107)</td>
<td valign="top" align="left">0,012</td>
<td valign="top" align="left">0,156</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,087</td>
<td valign="top" align="left">0,091</td>
<td valign="top" align="left">0,099 (0,126)</td>
<td valign="top" align="left">0,050</td>
<td valign="top" align="left">0,082</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,130</td>
<td valign="top" align="left">0,140</td>
<td valign="top" align="left">0,175 (0,156)</td>
<td valign="top" align="left">0,068</td>
<td valign="top" align="left">0,144</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Con el objetivo de definir un experimento m&#x00E1;s realista y semejante a un entorno real, los vectores de caracter&#x00ED;sticas se agrupan en sesiones utilizando ventanas temporales. De esta forma, los vectores de caracter&#x00ED;sticas se agrupan en sesiones de longitud 5, 10 y 20. Por ejemplo, para una longitud de sesi&#x00F3;n de 10, 10 vectores genuinos se concatenan con 10 vectores impostores. Este vector resultante va a formar una sesi&#x00F3;n independiente. Los resultados obtenidos para esta situaci&#x00F3;n m&#x00E1;s realista se pueden encontrar en la <xref ref-type="tab" rid="c5-tab3">Tabla 5.3</xref> y la <xref ref-type="tab" rid="c5-tab4">Tabla 5.4</xref>. Los mejores resultados se obtienen utilizando n-gramas de longitud 2 y 3. Los resultados obtenidos son peores que los obtenidos para el modelo que se toma como referencia en el paso anterior, sin embargo, se llega a una clasificaci&#x00F3;n mejor a medida que el tama&#x00F1;o de sesi&#x00F3;n aumenta. Esto corrobora que, cuanta m&#x00E1;s informaci&#x00F3;n es considerada, mejores resultados se obtienen.</p>
<table-wrap id="c5-tab3">
<label>Tabla 5.3:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado divididas en sesiones utilizando en el conjunto de test: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica).</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tama&#x00F1;o de sesi&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
<th valign="top" align="left"><bold>EER</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,221</td>
<td valign="top" align="left">0,213</td>
<td valign="top" align="left">0,238 (0,172)</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,254</td>
<td valign="top" align="left">0,242</td>
<td valign="top" align="left">0,205 (0,136)</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,235</td>
<td valign="top" align="left">0,197</td>
<td valign="top" align="left">0,247 (0,195)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,169</td>
<td valign="top" align="left">0,162</td>
<td valign="top" align="left">0,279 (0,120)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,185</td>
<td valign="top" align="left">0,194</td>
<td valign="top" align="left">0,188 (0,157)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,221</td>
<td valign="top" align="left">0,228</td>
<td valign="top" align="left">0,206 (0,206)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,141</td>
<td valign="top" align="left">0,162</td>
<td valign="top" align="left">0,128 (0,140)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,172</td>
<td valign="top" align="left">0,140</td>
<td valign="top" align="left">0,145 (0,189)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,153</td>
<td valign="top" align="left">0,172</td>
<td valign="top" align="left">0,174 (0,208)</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab4">
<label>Tabla 5.4:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n KNN utilizando la distancia de Manhattan y el <italic>buffer</italic> temporal para las din&#x00E1;micas de teclado divididas en sesiones utilizando en el conjunto de validaci&#x00F3;n: FAR y FRR.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tama&#x00F1;o de sesi&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,199</td>
<td valign="top" align="left">0,220</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,213</td>
<td valign="top" align="left">0,213</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,262</td>
<td valign="top" align="left">0,211</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,170</td>
<td valign="top" align="left">0,216</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,170</td>
<td valign="top" align="left">0,170</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,155</td>
<td valign="top" align="left">0,196</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,126</td>
<td valign="top" align="left">0,188</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,161</td>
<td valign="top" align="left">0,110</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,155</td>
<td valign="top" align="left">0,180</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>La <xref ref-type="fig" rid="fig-5-1">Figura 5.1</xref> ilustra un ejemplo de los valores del <italic>buffer</italic> para un usuario concreto. La l&#x00ED;nea azul representa el valor del <italic>buffer</italic> a lo largo del tiempo. La l&#x00ED;nea negra horizontal representa el umbral de decisi&#x00F3;n. La l&#x00ED;nea verde representa que una predicci&#x00F3;n se ha realizado correctamente, tanto en el caso de clasificar una muestra genuina como en el de clasificar una muestra de un impostor. La l&#x00ED;nea roja representa una predicci&#x00F3;n err&#x00F3;nea.</p>
<fig id="fig-5-1">
<label>Figura 5.1:</label>
<caption><title>Valores del <italic>buffer</italic> utilizando las din&#x00E1;micas de teclado para un usuario concreto.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-5-1.jpg"/>
</fig>
<p>Finalmente, los mismos pasos se han seguido para el caso de las din&#x00E1;micas de rat&#x00F3;n. En primer lugar, se han utilizado n-gramas de longitud 1,2,3 y 6. Posteriormente, se ha considerado la distancia de Manhattan para comparar de forma independiente cada vector contra el vector medias. Al igual que para el caso del teclado, los resultados obtenidos son bastante pobres, obteniendo un EER de 0,496 &#x00B1;0,160 para la mejor selecci&#x00F3;n del par&#x00E1;metro (longitud de n-grama 6). En este caso concreto, para mejorar el modelo inicial, se ha optado por utilizar OC-SVM. Los resultados obtenidos se pueden observar en la <xref ref-type="tab" rid="c5-tab5">Tabla 5.5</xref>. Estos resultados no se pueden comparar con los <target target-type="page" id="pges_107"/><target target-type="page" id="pges_108"/>obtenidos para las din&#x00E1;micas de teclado pues pertenecen a dos fuentes de datos totalmente distintas.</p>
<table-wrap id="c5-tab5">
<label>Tabla 5.5:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n OC-SVM para las din&#x00E1;micas de rat&#x00F3;n de forma independiente: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica).</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"></th>
<th valign="top" align="center" colspan="3"><bold>Test</bold></th>
<th valign="top" align="center" colspan="2"><bold>Validaci&#x00F3;n</bold></th>
</tr>
<tr>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
<th valign="top" align="left"><bold>EER</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,447</td>
<td valign="top" align="left">0,448</td>
<td valign="top" align="left">0,455 (0,028)</td>
<td valign="top" align="left">0,440</td>
<td valign="top" align="left">0,441</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,442</td>
<td valign="top" align="left">0,443</td>
<td valign="top" align="left">0,427 (0,058)</td>
<td valign="top" align="left">0,444</td>
<td valign="top" align="left">0,447</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,440</td>
<td valign="top" align="left">0,440</td>
<td valign="top" align="left">0,432 (0,060)</td>
<td valign="top" align="left">0,442</td>
<td valign="top" align="left">0,445</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,447</td>
<td valign="top" align="left">0,419</td>
<td valign="top" align="left">0,407 (0,081)</td>
<td valign="top" align="left">0,476</td>
<td valign="top" align="left">0,468</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Siguiendo las l&#x00ED;neas definidas para el caso de las din&#x00E1;micas de teclado, se procede a utilizar un <italic>buffer</italic> temporal. En esta primera aproximaci&#x00F3;n, para los conjuntos de test y de validaci&#x00F3;n, se concatenan todas las muestras de impostores al final de las muestras genuinas. Los resultados obtenidos se pueden observar en la <xref ref-type="tab" rid="c5-tab6">Tabla 5.6</xref>. Estos son los resultados pertenecientes al modelo referencia.</p>
<table-wrap id="c5-tab6">
<label>Tabla 5.6:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica). Modelo de referencia.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"></th>
<th valign="top" align="center" colspan="3"><bold>Test</bold></th>
<th valign="top" align="center" colspan="2"><bold>Validaci&#x00F3;n</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><bold>N-grama</bold></td>
<td valign="top" align="left"><bold>FAR</bold></td>
<td valign="top" align="left"><bold>FRR</bold></td>
<td valign="top" align="left"><bold>EER</bold></td>
<td valign="top" align="left"><bold>FAR</bold></td>
<td valign="top" align="left"><bold>FRR</bold></td>
</tr>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,072</td>
<td valign="top" align="left">0,108</td>
<td valign="top" align="left">0,151 (0,083)</td>
<td valign="top" align="left">0,115</td>
<td valign="top" align="left">0,093</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,205</td>
<td valign="top" align="left">0,214</td>
<td valign="top" align="left">0,249 (0,162)</td>
<td valign="top" align="left">0,168</td>
<td valign="top" align="left">0,088</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,399</td>
<td valign="top" align="left">0,399</td>
<td valign="top" align="left">0,409 (0,081)</td>
<td valign="top" align="left">0,306</td>
<td valign="top" align="left">0,173</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,415</td>
<td valign="top" align="left">0,447</td>
<td valign="top" align="left">0,399 (0,088)</td>
<td valign="top" align="left">0,460</td>
<td valign="top" align="left">0,479</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><target target-type="page" id="pges_109"/>Con el objetivo de contemplar un escenario real, se procede a agrupar la informaci&#x00F3;n en sesiones, al igual que en el caso del teclado. Los resultados se pueden observar en la <xref ref-type="tab" rid="c5-tab7">Tabla 5.7</xref> y la <xref ref-type="tab" rid="c5-tab8">Tabla 5.8</xref>. En la <xref ref-type="fig" rid="fig-5-2">Figura 5.2</xref> se muestra un ejemplo de los valores del <italic>buffer</italic> para un usuario concreto. Centrando la atenci&#x00F3;n en la sesi&#x00F3;n 2, se puede observar que el umbral &#x00F3;ptimo definido en este caso es ligeramente restrictivo pues el modelo clasifica como impostor dicha sesi&#x00F3;n a pesar de los valores bajos del <italic>bu</italic>ff<italic>er</italic> en ese instante. Esto hace que el sistema sea m&#x00E1;s seguro a la hora de detectar impostores pero tambi&#x00E9;n repercute en que el sistema considere a un usuario genuino como impostor en m&#x00E1;s ocasiones.</p>
<table-wrap id="c5-tab7">
<label>Tabla 5.7:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n divididas en sesiones utilizando en el conjunto de test: FAR, FRR y EER (desviaci&#x00F3;n t&#x00ED;pica).</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tama&#x00F1;o de sesi&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
<th valign="top" align="left"><bold>EER</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,352</td>
<td valign="top" align="left">0,357</td>
<td valign="top" align="left">0,373 (0,071)</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,376</td>
<td valign="top" align="left">0,388</td>
<td valign="top" align="left">0,337 (0,131)</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,376</td>
<td valign="top" align="left">0,360</td>
<td valign="top" align="left">0,381 (0,076)</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,366</td>
<td valign="top" align="left">0,386</td>
<td valign="top" align="left">0,296 (0,175)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,237</td>
<td valign="top" align="left">0,225</td>
<td valign="top" align="left">0,242 (0,131)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,292</td>
<td valign="top" align="left">0,306</td>
<td valign="top" align="left">0,279 (0,120)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,329</td>
<td valign="top" align="left">0,325</td>
<td valign="top" align="left">0,327 (0,119)</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,285</td>
<td valign="top" align="left">0,381</td>
<td valign="top" align="left">0,278 (0,181)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,151</td>
<td valign="top" align="left">0,151</td>
<td valign="top" align="left">0,143 (0,122)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,232</td>
<td valign="top" align="left">0,232</td>
<td valign="top" align="left">0,220 (0,135)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,274</td>
<td valign="top" align="left">0,246</td>
<td valign="top" align="left">0,240 (0,205)</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,258</td>
<td valign="top" align="left">0,366</td>
<td valign="top" align="left">0,248 (0,188)</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab8">
<label>Tabla 5.8:</label>
<caption><title>Resultados del modelo de clasificaci&#x00F3;n OC-SVM utilizando el <italic>buffer</italic> temporal para las din&#x00E1;micas de rat&#x00F3;n divididas en sesiones utilizando en el conjunto de validaci&#x00F3;n: FAR y FRR.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tama&#x00F1;o de sesi&#x00F3;n</bold></th>
<th valign="top" align="left"><bold>N-grama</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,353</td>
<td valign="top" align="left">0,355</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,381</td>
<td valign="top" align="left">0,410</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,430</td>
<td valign="top" align="left">0,426</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,425</td>
<td valign="top" align="left">0,451</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,307</td>
<td valign="top" align="left">0,329</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,341</td>
<td valign="top" align="left">0,372</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,370</td>
<td valign="top" align="left">0,380</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,386</td>
<td valign="top" align="left">0,462</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0,256</td>
<td valign="top" align="left">0,277</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0,295</td>
<td valign="top" align="left">0,356</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0,355</td>
<td valign="top" align="left">0,385</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0,363</td>
<td valign="top" align="left">0,368</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="fig-5-2">
<label>Figura 5.2:</label>
<caption><title>Valores del <italic>buffer</italic> utilizando las din&#x00E1;micas de rat&#x00F3;n para un usuario concreto.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-5-2.jpg"/>
</fig>
<p><target target-type="page" id="pges_110"/>En resumen, los mejores resultados para la RP espec&#x00ED;fica propuesta en el caso de uso (chat) se obtienen modelando las din&#x00E1;micas de teclado. En particular, los mejores resultados para este escenario se obtienen utilizando la distancia de Manhattan con un n&#x00FA;mero de vecinos igual a 3 para el modelo de KNN y para sesiones de longitud 20. Por otro lado, para el caso de las din&#x00E1;micas de rat&#x00F3;n, los mejores resultados se obtienen utilizando una OC-SVM con n-gramas de longitud 1 y para sesiones de longitud 20. En ambos casos, tal y como ha quedado demostrado anteriormente, cuanto mayor es la duraci&#x00F3;n de la sesi&#x00F3;n m&#x00E1;s informaci&#x00F3;n se considera y, por lo tanto, se obtienen mejores resultados.</p>
</sec>
<sec id="c5-s1-s5">
<label><bold>5.1.5.</bold></label>
<title><bold>Integraci&#x00F3;n en los est&#x00E1;ndares de federaci&#x00F3;n de identidades</bold></title>
<p>La integraci&#x00F3;n del flujo de trabajo propuesto depende del caso de uso en cuesti&#x00F3;n. Considerando los casos de uso vistos en la <xref ref-type="sec" rid="c3-s2">Secci&#x00F3;n 3.2</xref>, se precisan realizar modificaciones que se detallan a continuaci&#x00F3;n y que se pueden ver esquematizadas en la <xref ref-type="fig" rid="fig-5-3">Figura 5.3</xref>. El entorno de trabajo desarrollado implementa el est&#x00E1;ndar <target target-type="page" id="pges_111"/>federado OIDC (ver <xref ref-type="sec" rid="c5-s1-s1">Secci&#x00F3;n 5.1.1</xref>), sin embargo, todos estos casos de uso son igualmente aplicables a cualquier est&#x00E1;ndar federado.</p>
<fig id="fig-5-3">
<label>Figura 5.3:</label>
<caption><title>Modificaciones necesarias en el flujo de OpenId Connect para incorporar los casos de uso del flujo de trabajo propuesto. Caso de uso 1 en azul, caso de uso 2 en verde y caso de uso 3 en naranja.</title></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="TD-3-URJC_fig-5-3.jpg"/>
</fig>
<p><target target-type="page" id="pges_112"/>En el caso de uso 1 solo se requiere realizar una peque&#x00F1;a modificaci&#x00F3;n en el flujo <target target-type="page" id="pges_113"/>de autenticaci&#x00F3;n. Esta modificaci&#x00F3;n consiste en marcar como obligatorio el par&#x00E1;metro, actualmente considerado como opcional, <italic>acr_values</italic> de la <italic>petici&#x00F3;n de autorizaci&#x00F3;n</italic>/<italic>autenticaci&#x00F3;n</italic>. De esta forma la RP debe utilizar este valor para especificar el LoA que requiere por parte del usuario final para completar el proceso de autenticaci&#x00F3;n frente al IdP. Cuanto mayor sea el riesgo asociado a la petici&#x00F3;n de acceso, porque el modelo ha determinado una probabilidad alta de que sea un comportamiento anormal (impostor), mayor ser&#x00E1; el LoA requerido. De este mismo modo, el par&#x00E1;metro <italic>acr_values</italic> del <italic>ID token</italic> tambi&#x00E9;n se vuelve obligatorio. As&#x00ED;, el IdP debe informar a la RP del m&#x00E9;todo utilizado para autenticar al usuario final cumpliendo con el LoA previamente determinado. Por la parte del IdP se han de contemplar diferentes m&#x00E9;todos y procesos para autenticar a los usuarios. Todas estas consideraciones de implementaci&#x00F3;n no afectan a la especificaci&#x00F3;n federada, sino que han de solventarse a nivel de implementaci&#x00F3;n de c&#x00F3;digo por parte del IdP y la RP.</p>
<p>En el caso de uso 2 la RPs debe en primer lugar invalidar los <italic>tokens</italic> asociados a la sesi&#x00F3;n activa. Para ello, debe enviar dichos <italic>tokens</italic> al <italic>Token Revocation Endpoint</italic> [<xref ref-type="bibr" rid="CIT0151">151</xref>]. De esta forma, la sesi&#x00F3;n activa del usuario queda invalidada. Posteriormente, la RP debe iniciar nuevamente el proceso enviado una nueva petici&#x00F3;n de autorizaci&#x00F3;n/autenticaci&#x00F3;n al <italic>Authorization Server Endpoint</italic>, el cual volver&#x00E1; nuevamente a solicitar al usuario los autenticadores pertinentes. Este caso de uso se puede combinar con el caso de uso 1, pues la RP al detectar la anomal&#x00ED;a puede solicitar un LoA mayor aumentando as&#x00ED; los niveles de seguridad. Para este caso de uso, no se requiere ninguna modificaci&#x00F3;n de los flujos de las especificaciones federadas. Se requiere una implementaci&#x00F3;n a nivel de c&#x00F3;digo por parte de la RP para forzar que se invaliden los <italic>tokens</italic> activos y se realice una nueva petici&#x00F3;n de ellos cada vez que los modelos de autenticaci&#x00F3;n continua determinen que se ha producido una anomal&#x00ED;a de comportamiento y, por consiguiente, pueda estar sucediendo un ataque (p. ej. un secuestro de sesi&#x00F3;n). Esto desencadena una nueva petici&#x00F3;n de autorizaci&#x00F3;n/autenticaci&#x00F3;n inicializando nuevamente el proceso.</p>
<p>En el caso de uso 3 no se ven afectados los est&#x00E1;ndares tradicionales de gesti&#x00F3;n de identidades federados. Nuevamente, implica implementar nuevos procedimientos en la RP para poder gestionar las situaciones adversas y procedimientos para comunic&#x00E1;rselo al resto de agentes implicados en caso de que suceda un ataque de suplantaci&#x00F3;n de identidad.</p>
<p>En resumen, para poder integrar el flujo de trabajo propuesto en los principales esquemas de gesti&#x00F3;n de identidades, el &#x00FA;nico cambio que habr&#x00ED;a que realizar sobre ellos es marcar como obligatorios dos par&#x00E1;metros (uno en el <italic>ID token</italic> y otro en el <italic>access token</italic>) que actualmente se encuentran como opcionales. De esta forma, se puede corroborar que la integraci&#x00F3;n del flujo de trabajo es muy simple y, por consiguiente, facilita de forma notoria la integraci&#x00F3;n e implantaci&#x00F3;n del mismo por parte de multitud de RPs.</p>
</sec>
<sec id="c5-s1-s6">
<label><bold>5.1.6.</bold></label>
<title><bold>Eficiencia y an&#x00E1;lisis de seguridad</bold></title>
<p>En las secciones anteriores se ha mencionado que las t&#x00E9;cnicas de UEBA pueden ser utilizadas en m&#x00FA;ltiples casos de uso y en diversas RPs de diferente naturaleza y dominios, ejecutadas sobre plataformas heterogeneas. Es por esto que uno de los puntos clave a analizar para lograr una adopci&#x00F3;n del flujo de trabajo propuesto es la eficiencia del mismo. De este modo, el consumo de recursos computacionales ha de ser m&#x00ED;nimo y las posibles latencias introducidas no deben afectar al funcionamiento normal de una RP (en el caso de uso 2), o a la experiencia de usuario (en el caso de uso 1).</p>
<p>En este sentido, el tiempo medio de ejecuci&#x00F3;n a la hora de comprar dos vectores de comportamiento utilizando el KNN y la distancia de Manhattan es de 0,000416 &#x00B1; 0,000883 nanosegundos ejecutando sobre la m&#x00E1;quina descrita en la <xref ref-type="sec" rid="c5-s1-s1">Secci&#x00F3;n 5.1.1</xref>. En el caso de la OC-SVM, el tiempo medio de ejecuci&#x00F3;n al comparar dos vectores de comportamiento es de 0,000040&#x00B1;0,0000923.</p>
<p>Estos tiempos corroboran que las t&#x00E9;cnicas de UEBA propuestas no afectan para la implantaci&#x00F3;n e integraci&#x00F3;n del flujo de trabajo para ninguno de los casos de uso propuestos, ya sean para autenticaci&#x00F3;n est&#x00E1;tica o autenticaci&#x00F3;n continua.</p>
<p>El &#x00FA;ltimo grupo de experimentos realizados se centran en analizar la mejora en cuanto a seguridad que ofrecen las t&#x00E9;cnicas de UEBA en el caso de uso m&#x00E1;s complejo. Recordemos que el caso de uso 2 requiere autenticaci&#x00F3;n continua. Para lograr esto, se han incluido dos tipos de ataques. En primer lugar una suplantaci&#x00F3;n de identidad por medio de un robo de credenciales. Los participantes en el experimento tuvieron que hacer p&#x00FA;blicas sus credenciales, de tal manera que todos los usuarios pod&#x00ED;an autenticarse como cualquier otro usuario, suplantando as&#x00ED; su identidad. En segundo lugar, un secuestro de sesi&#x00F3;n. Los participantes ten&#x00ED;an acceso a los diferentes dispositivos del resto de usuarios y, por lo tanto, ten&#x00ED;an v&#x00ED;a libre para poder hacerse pasar por cualquiera de ellos, nuevamente suplantando su identidad. Para evaluar este experimento, se han utilizado los mejores modelos obtenidos en la <xref ref-type="sec" rid="c5-s1-s4">Secci&#x00F3;n 5.1.4</xref>.</p>
<p>Los resultados para el primer ataque se pueden observar en la <xref ref-type="tab" rid="c5-tab9">Tabla 5.9</xref>. Se ha necesitado una media de 12,200 &#x00B1; 4,176 interacciones para detectar a un impostor utilizando las din&#x00E1;micas de teclado. Por otro lado, una media de 18,800 &#x00B1; 2,081 interacciones se han necesitado para detectar a un impostor utilizando las din&#x00E1;micas de rat&#x00F3;n. Tal y como se ha mencionado en la <xref ref-type="sec" rid="c5-s1-s4">Secci&#x00F3;n 5.1.4</xref>, utilizar atributos est&#x00E1;ticos implica una clasificaci&#x00F3;n perfecta debido al bajo n&#x00FA;mero de participantes.</p>
<table-wrap id="c5-tab9">
<label>Tabla 5.9:</label>
<caption><title>Resultados para el ataque de robo de credenciales en el caso de uso 2.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tipo</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Atributos est&#x00E1;ticos</td>
<td valign="top" align="left">0</td>
<td valign="top" align="left">0</td>
</tr>
<tr>
<td valign="top" align="left">Din&#x00E1;micas de teclado</td>
<td valign="top" align="left">0,104</td>
<td valign="top" align="left">0,082</td>
</tr>
<tr>
<td valign="top" align="left">Din&#x00E1;micas de rat&#x00F3;n</td>
<td valign="top" align="left">0,146</td>
<td valign="top" align="left">0,127</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Los resultados para el segundo ataque, es decir, para el secuestro de sesi&#x00F3;n utilizando el dispositivo de la v&#x00ED;ctima, se pueden observar en la <xref ref-type="tab" rid="c5-tab10">Tabla 5.10</xref>. Para las din&#x00E1;micas de teclado se han necesitado una media de 13,100 &#x00B1; 4,223 interacciones para detectar a un impostor, mientras que para las din&#x00E1;micas de rat&#x00F3;n 18,100 &#x00B1; 2,714. En este caso, al utilizar el dispositivo de la v&#x00ED;ctima, los atributos est&#x00E1;ticos no son &#x00FA;tiles para detectar a ning&#x00FA;n impostor pues siempre van a tener el mismo valor esperado.</p>
<table-wrap id="c5-tab10">
<label>Tabla 5.10:</label>
<caption><title>Resultados para el ataque de secuestro de sesi&#x00F3;n en el caso de uso 2.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Tipo</bold></th>
<th valign="top" align="left"><bold>FAR</bold></th>
<th valign="top" align="left"><bold>FRR</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Atributos est&#x00E1;ticos</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">1</td>
</tr>
<tr>
<td valign="top" align="left">Din&#x00E1;micas de teclado</td>
<td valign="top" align="left">0,149</td>
<td valign="top" align="left">0,104</td>
</tr>
<tr>
<td valign="top" align="left">Din&#x00E1;micas de rat&#x00F3;n</td>
<td valign="top" align="left">0,175</td>
<td valign="top" align="left">0,168</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><target target-type="page" id="pges_114"/>Como se puede observar, los resultados obtenidos para el primer ataque son mejores que para el segundo, por lo que, se puede afirmar que los modelos propuestos son mejores a la hora de detectar ataques de robo de identidad que ataques de secuestro de sesi&#x00F3;n.</p>
</sec>
</sec>
<sec id="c5-s2">
<label><bold>5.2.</bold></label>
<title><bold>Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n de la informaci&#x00F3;n</bold></title>
<p>Hasta el momento ha quedado demostrado que es posible implementar el flujo de trabajo propuesto y, por consiguiente, integrar modelos de an&#x00E1;lisis de comportamiento dentro de los principales est&#x00E1;ndares de gesti&#x00F3;n de identidades federados. Sin embargo, los modelos de an&#x00E1;lisis de comportamiento desarrollados hasta el momento, aun funcionales, poseen multitud de limitaciones, entre las que cabe destacar la eficacia de los modelos. De aqu&#x00ED; en adelante se eval&#x00FA;a el modelo de combinaci&#x00F3;n de informaci&#x00F3;n propuesto que supera estas limitaciones.</p>
<sec id="c5-s2-s1">
<label><bold>5.2.1.</bold></label>
<title><bold>Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA</bold></title>
<p>En esta secci&#x00F3;n se va a analizar la evaluaci&#x00F3;n del modelo de combinaci&#x00F3;n de informaci&#x00F3;n propuesto en el conjunto de datos UEBA. En primer lugar, se realiza el proceso de extracci&#x00F3;n de caracter&#x00ED;sticas. Para ello, en el caso del teclado se utilizan las caracter&#x00ED;sticas H1, H2, HP, PP, HH y PH descritas en la <xref ref-type="sec" rid="c5-s1-s3">Secci&#x00F3;n 5.1.3</xref>. En el caso de las din&#x00E1;micas de rat&#x00F3;n, cada digrafo se ha agrupado en ventanas temporales de 5 segundos. Se han considerado el n&#x00FA;mero de interacciones contenidas en la ventana temporal, el tiempo total transcurrido, la distancia, velocidad, &#x00E1;ngulo y velocidad angular. De este modo se han calculado las medidas de dispersi&#x00F3;n (m&#x00ED;nimo, m&#x00E1;ximo, media y desviaci&#x00F3;n t&#x00ED;pica) para cada caracter&#x00ED;stica considerada anteriormente (tiempo transcurrido, distancia, etc). De esta forma, el vector de comportamiento obtenido, para el caso del rat&#x00F3;n, contiene un total de 21 caracter&#x00ED;sticas (n&#x00FA;mero de interacciones contenidas en la ventana temporal y cuatro medidas de dispersi&#x00F3;n de cinco variables). En resumen, para cada usuario se obtienen dos vectores (uno para cada fuente de informaci&#x00F3;n) que contiene la informaci&#x00F3;n de comportamiento.</p>
<p>Con el objetivo de entrenar y posteriormente poder evaluar el m&#x00E9;todo, la informaci&#x00F3;n, ya procesada para cada usuario, se separa en tres conjuntos denominados: entrenamiento, test y validaci&#x00F3;n. El conjunto de entrenamiento representa el 70 % de la informaci&#x00F3;n total del usuario objetivo, es decir, contiene &#x00FA;nicamente muestras genuinas. Por otro lado, el conjunto de test est&#x00E1; formado por muestras tanto genuinas como pertenecientes a usuarios impostores. Para el caso de las muestras genuinas, del 30 % restante (no <target target-type="page" id="pges_115"/>seleccionado para entrenamiento) se selecciona un total del 60 % (es decir, un 18 % del total de muestras genuinas). Para el caso de las muestras de impostores, el mismo n&#x00FA;mero de muestras que para el caso de las genuinas son aleatoriamente seleccionadas del resto de usuarios. Adem&#x00E1;s, se asegura que esta informaci&#x00F3;n de los usuarios impostores contenga muestras de ambas fuentes de informaci&#x00F3;n (teclado y rat&#x00F3;n). Esto significa que el resto de los usuarios act&#x00FA;an como impostores a la hora de evaluar a un usuario espec&#x00ED;fico. Finalmente, el conjunto de validaci&#x00F3;n est&#x00E1; formado por el 12 % restante de muestras genuinas y por el mismo n&#x00FA;mero de muestras de usuarios impostores siguiendo los mismos criterios que para el conjunto de test.</p>
<p>En primer lugar, para cada usuario, el conjunto de entrenamiento se utiliza para estandarizar el resto de los conjuntos de datos. Esto se logra calculando la media y desviaci&#x00F3;n t&#x00ED;pica para cada una de las fuentes de informaci&#x00F3;n y aplicando la f&#x00F3;rmula que sigue:</p> 
<disp-formula id="Eq_c5-1"><mml:math id="M3" display='block'><mml:msub><mml:mi>z</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mover><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mfrac></mml:math></disp-formula>
<p>donde <italic>zi</italic> es el valor estandarizado para la muestra i, <italic>xi</italic> es el valor original de la muestra i, X&#x00AF; es la media del conjunto de muestras y <italic>S<sub>X</sub></italic> es la desviaci&#x00F3;n t&#x00ED;pica.</p>
<p>Una vez estandarizados los datos, se utiliza el conjunto de entrenamiento para entrenar el algoritmo de RTE. El resultado de este proceso es la secuencia de s&#x00ED;mbolos que representa el comportamiento de un usuario. Esta secuencia, se separa en n-gramas utilizando el par&#x00E1;metro <italic>NGL</italic>, obteniendo m&#x00FA;ltiples secuencias que representan la informaci&#x00F3;n de comportamiento de un usuario concreto. Estos n-gramas se utilizan para generar la matriz de distancias, compar&#x00E1;ndolas en pares utilizando el algoritmo de alineamiento de secuencias de ADN. A continuaci&#x00F3;n, la matriz de distancias se utiliza para entrenar el algoritmo de DBSCAN. El resultado son los n&#x00FA;cleos de comportamiento que representan el conocimiento adquirido para un usuario concreto y, por tanto, concluyendo el proceso de entrenamiento.</p>
<p>Posteriormente, las muestras de test (ya estandarizadas) se eval&#x00FA;an sobre el RTE previamente entrenado. De esta forma y al igual que en el caso anterior, se obtiene la secuencia de s&#x00ED;mbolos y se divide en n-gramas. Estos n-gramas se comparan uno a uno contra todos los n-gramas contenidos en los n&#x00FA;cleos de comportamiento utilizando el algoritmo de alineamiento de secuencias de ADN. El resultado son m&#x00FA;ltiples vectores de distancias. Cada vector contiene la distancia de cada muestra a los n&#x00FA;cleos de comportamiento. Estos vectores se utilizan para entrenar el modelo de riesgos, agrup&#x00E1;ndose en ventanas temporales en funci&#x00F3;n del par&#x00E1;metro <italic>WinS ize</italic> y pudiendo fijar el umbral &#x00F3;ptimo de decisi&#x00F3;n.</p>
<p><target target-type="page" id="pges_116"/>Por &#x00FA;ltimo, el conjunto de validaci&#x00F3;n se utiliza para evaluar todo el proceso con muestras que el m&#x00E9;todo propuesto no ha considerado nunca. Este conjunto de datos permite analizar la capacidad de generalizaci&#x00F3;n y la efectividad del m&#x00E9;todo propuesto. Esto se debe a que, al evaluar este conjunto de datos, todos los modelos que se integran en el m&#x00E9;todo, as&#x00ED; como el umbral de decisi&#x00F3;n, han sido previamente entrenados y fijados.</p>
<p>Una vez obtenidos los tres conjuntos de datos, se eval&#x00FA;a el m&#x00E9;todo teniendo en cuenta las tres casu&#x00ED;sticas asociadas a las fuentes de informaci&#x00F3;n. Esto es, considerando &#x00FA;nicamente el teclado, considerando &#x00FA;nicamente el rat&#x00F3;n y considerando la combinaci&#x00F3;n de ambas fuentes de informaci&#x00F3;n. Los resultados se pueden observar en las <xref ref-type="tab" rid="c5-tab11">Tablas 5.11</xref>, <xref ref-type="tab" rid="c5-tab12">5.12</xref> y <xref ref-type="tab" rid="c5-tab13">5.13</xref> respectivamente. Los resultados mostrados para cada m&#x00E9;trica de evaluaci&#x00F3;n se corresponden con la media obtenida para todos los usuarios.</p>
<table-wrap id="c5-tab11">
<label>Tabla 5.11:</label>
<caption><title>Resultados obtenidos para las din&#x00E1;micas de teclado utilizando el m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.457</td>
<td valign="top" align="left">0.457</td>
<td valign="top" align="left">0.457</td>
<td valign="top" align="left">0.442</td>
<td valign="top" align="left">0.397</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.423</td>
<td valign="top" align="left">0.423</td>
<td valign="top" align="left">0.423</td>
<td valign="top" align="left">0.439</td>
<td valign="top" align="left">0.392</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.356</td>
<td valign="top" align="left">0.356</td>
<td valign="top" align="left">0.366</td>
<td valign="top" align="left">0.420</td>
<td valign="top" align="left">0.287</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.268</td>
<td valign="top" align="left">0.239</td>
<td valign="top" align="left">0.282</td>
<td valign="top" align="left">0.323</td>
<td valign="top" align="left">0.207</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.048</td>
<td valign="top" align="left">0.250</td>
<td valign="top" align="left">0.062</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.384</td>
<td valign="top" align="left">0.381</td>
<td valign="top" align="left">0.386</td>
<td valign="top" align="left">0.303</td>
<td valign="top" align="left">0.453</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.343</td>
<td valign="top" align="left">0.333</td>
<td valign="top" align="left">0.343</td>
<td valign="top" align="left">0.189</td>
<td valign="top" align="left">0.414</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.276</td>
<td valign="top" align="left">0.276</td>
<td valign="top" align="left">0.286</td>
<td valign="top" align="left">0.122</td>
<td valign="top" align="left">0.250</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.059</td>
<td valign="top" align="left">0.059</td>
<td valign="top" align="left">0.074</td>
<td valign="top" align="left">0.015</td>
<td valign="top" align="left">0.167</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.047</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.186</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.304</td>
<td valign="top" align="left">0.301</td>
<td valign="top" align="left">0.305</td>
<td valign="top" align="left">0.297</td>
<td valign="top" align="left">0.141</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.226</td>
<td valign="top" align="left">0.228</td>
<td valign="top" align="left">0.226</td>
<td valign="top" align="left">0.230</td>
<td valign="top" align="left">0.030</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.145</td>
<td valign="top" align="left">0.145</td>
<td valign="top" align="left">0.147</td>
<td valign="top" align="left">0.163</td>
<td valign="top" align="left">0.019</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.050</td>
<td valign="top" align="left">0.051</td>
<td valign="top" align="left">0.050</td>
<td valign="top" align="left">0.043</td>
<td valign="top" align="left">0.027</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.011</td>
<td valign="top" align="left">0.003</td>
<td valign="top" align="left">0.026</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.267</td>
<td valign="top" align="left">0.267</td>
<td valign="top" align="left">0.270</td>
<td valign="top" align="left">0.236</td>
<td valign="top" align="left">0.254</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.177</td>
<td valign="top" align="left">0.175</td>
<td valign="top" align="left">0.178</td>
<td valign="top" align="left">0.142</td>
<td valign="top" align="left">0.097</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.091</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.091</td>
<td valign="top" align="left">0.038</td>
<td valign="top" align="left">0.038</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.006</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.008</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.002</bold></td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.012</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.009</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab12">
<label>Tabla 5.12:</label>
<caption><title>Resultados obtenidos para las din&#x00E1;micas de rat&#x00F3;n utilizando el m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos UEBA. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.438</td>
<td valign="top" align="left">0.438</td>
<td valign="top" align="left">0.438</td>
<td valign="top" align="left">0.308</td>
<td valign="top" align="left">0.390</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.392</td>
<td valign="top" align="left">0.392</td>
<td valign="top" align="left">0.396</td>
<td valign="top" align="left">0.234</td>
<td valign="top" align="left">0.359</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.347</td>
<td valign="top" align="left">0.343</td>
<td valign="top" align="left">0.351</td>
<td valign="top" align="left">0.146</td>
<td valign="top" align="left">0.280</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.265</td>
<td valign="top" align="left">0.265</td>
<td valign="top" align="left">0.265</td>
<td valign="top" align="left">0.031</td>
<td valign="top" align="left">0.076</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.034</td>
<td valign="top" align="left">0.024</td>
<td valign="top" align="left">0.065</td>
<td valign="top" align="left">0.506</td>
<td valign="top" align="left">0.513</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.354</td>
<td valign="top" align="left">0.354</td>
<td valign="top" align="left">0.358</td>
<td valign="top" align="left">0.329</td>
<td valign="top" align="left">0.306</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.306</td>
<td valign="top" align="left">0.302</td>
<td valign="top" align="left">0.306</td>
<td valign="top" align="left">0.261</td>
<td valign="top" align="left">0.176</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.202</td>
<td valign="top" align="left">0.198</td>
<td valign="top" align="left">0.202</td>
<td valign="top" align="left">0.129</td>
<td valign="top" align="left">0.129</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.094</td>
<td valign="top" align="left">8.000</td>
<td valign="top" align="left"><bold>0.000</bold></td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.031</td>
<td valign="top" align="left">0.500</td>
<td valign="top" align="left">0.500</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.147</td>
<td valign="top" align="left">0.139</td>
<td valign="top" align="left">0.151</td>
<td valign="top" align="left">0.133</td>
<td valign="top" align="left">0.223</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.077</td>
<td valign="top" align="left">0.073</td>
<td valign="top" align="left">0.081</td>
<td valign="top" align="left">0.112</td>
<td valign="top" align="left">0.050</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.034</td>
<td valign="top" align="left">0.030</td>
<td valign="top" align="left">0.034</td>
<td valign="top" align="left">0.053</td>
<td valign="top" align="left"><bold>0.000</bold></td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.000</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.016</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.026</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.090</td>
<td valign="top" align="left">0.080</td>
<td valign="top" align="left">0.049</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.025</td>
<td valign="top" align="left">0.025</td>
<td valign="top" align="left">0.025</td>
<td valign="top" align="left">0.013</td>
<td valign="top" align="left">0.006</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.004</td>
<td valign="top" align="left">0.000</td>
<td valign="top" align="left">0.012</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.011</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.007</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.041</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.011</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.092</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab13">
<label>Tabla 5.13:</label>
<caption><title>Resultados obtenidos para la combinaci&#x00F3;n de informaci&#x00F3;n en el conjunto de datos UEBA. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.397</td>
<td valign="top" align="left">0.397</td>
<td valign="top" align="left">0.397</td>
<td valign="top" align="left">0.342</td>
<td valign="top" align="left">0.486</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.364</td>
<td valign="top" align="left">0.364</td>
<td valign="top" align="left">0.366</td>
<td valign="top" align="left">0.294</td>
<td valign="top" align="left">0.501</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.320</td>
<td valign="top" align="left">0.317</td>
<td valign="top" align="left">0.320</td>
<td valign="top" align="left">0.273</td>
<td valign="top" align="left">0.484</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.229</td>
<td valign="top" align="left">0.223</td>
<td valign="top" align="left">0.232</td>
<td valign="top" align="left">0.131</td>
<td valign="top" align="left">0.489</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.112</td>
<td valign="top" align="left">0.115</td>
<td valign="top" align="left">0.112</td>
<td valign="top" align="left">0.049</td>
<td valign="top" align="left">0.448</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.289</td>
<td valign="top" align="left">0.284</td>
<td valign="top" align="left">0.292</td>
<td valign="top" align="left">0.322</td>
<td valign="top" align="left">0.329</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.219</td>
<td valign="top" align="left">0.222</td>
<td valign="top" align="left">0.219</td>
<td valign="top" align="left">0.284</td>
<td valign="top" align="left">0.296</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.141</td>
<td valign="top" align="left">0.138</td>
<td valign="top" align="left">0.144</td>
<td valign="top" align="left">0.154</td>
<td valign="top" align="left">0.263</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.029</td>
<td valign="top" align="left">0.024</td>
<td valign="top" align="left">0.032</td>
<td valign="top" align="left">0.019</td>
<td valign="top" align="left">0.100</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.007</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.019</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.167</td>
<td valign="top" align="left">0.167</td>
<td valign="top" align="left">0.169</td>
<td valign="top" align="left">0.117</td>
<td valign="top" align="left">0.146</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.080</td>
<td valign="top" align="left">0.075</td>
<td valign="top" align="left">0.085</td>
<td valign="top" align="left">0.052</td>
<td valign="top" align="left">0.070</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.006</td>
<td valign="top" align="left">0.006</td>
<td valign="top" align="left">0.010</td>
<td valign="top" align="left">0.016</td>
<td valign="top" align="left">0.015</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.006</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.008</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.008</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.011</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.128</td>
<td valign="top" align="left">0.128</td>
<td valign="top" align="left">0.131</td>
<td valign="top" align="left">0.217</td>
<td valign="top" align="left">0.116</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.054</td>
<td valign="top" align="left">0.068</td>
<td valign="top" align="left">0.054</td>
<td valign="top" align="left">0.165</td>
<td valign="top" align="left">0.030</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.020</td>
<td valign="top" align="left">0.014</td>
<td valign="top" align="left">0.023</td>
<td valign="top" align="left">0.098</td>
<td valign="top" align="left">0.001</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.006</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left">0.008</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.004</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Para todas las casu&#x00ED;sticas de fuentes de informaci&#x00F3;n, los valores de EER, FAR y FRR disminuyen (mejoran los resultados) cuando los valores de los par&#x00E1;metros <italic>NGL</italic> o <italic>WinS ize</italic> aumentan. Esto se debe a que, cuanto mayor son los par&#x00E1;metros, m&#x00E1;s informaci&#x00F3;n se est&#x00E1; considerando para realizar una predicci&#x00F3;n. De este modo, los valores m&#x00E1;ximos de EER para cada caso de uso (0,457, 0,438 y 0,397 respectivamente) se obtienen para los valores <italic>NGL =</italic> 5 y <italic>WinS ize</italic> = 5. Por otro lado, se obtienen predicciones casi perfectas cuando se fijan los par&#x00E1;metros a los valores <italic>NGL =</italic> 30 y <italic>WinS ize =</italic> 100. Unicamente fijando el par&#x00E1;metro <italic>WinsS ize</italic> a 100, se obtienen buenos resultados independientemente del valor de <italic>NGL</italic>. Sin embargo, estos resultados se vuelven cada vez m&#x00E1;s robustos a medida que aumenta el par&#x00E1;metro <italic>NGL</italic> para el conjunto de validaci&#x00F3;n.</p>
<p>Los mejores resultados para test y validaci&#x00F3;n simult&#x00E1;neamente se obtienen para el caso de uso de combinaci&#x00F3;n de la informaci&#x00F3;n. Esto corrobora que combinar informaci&#x00F3;n de m&#x00FA;ltiples fuentes ayuda a mejorar la eficacia de los sistemas de autenticaci&#x00F3;n continua que solo consideran una &#x00FA;nica fuente.</p>
</sec>
<sec id="c5-s2-s2">
<label><bold>5.2.2.</bold></label>
<title><target target-type="page" id="pges_117"/><target target-type="page" id="pges_118"/><target target-type="page" id="pges_119"/><bold>Evaluaci&#x00F3;n del m&#x00E9;todo de combinaci&#x00F3;n en el conjunto de datos TWOS</bold></title>
<p>En esta secci&#x00F3;n se eval&#x00FA;a el m&#x00E9;todo de combinaci&#x00F3;n de informaci&#x00F3;n propuesto sobre el conjunto de datos TWOS. El conjunto de datos TWOS [<xref ref-type="bibr" rid="CIT0105">105</xref>] se recogi&#x00F3; durante la competici&#x00F3;n organizada por la Universidad de Singapur de tecnolog&#x00ED;a y dise&#x00F1;o en marzo de 2017. Los datos provienen de seis fuentes de informaci&#x00F3;n: teclado, rat&#x00F3;n, tr&#x00E1;fico de red, registros <italic>Simple Mail</italic></p>
<p><italic>Transfer Protocol</italic> (SMTP), informaci&#x00F3;n de inicio de sesi&#x00F3;n e informaci&#x00F3;n de la m&#x00E1;quina anfitriona. Adem&#x00E1;s, posee informaci&#x00F3;n relacionada a un test psicol&#x00F3;gico de personalidad realizado a cada uno de los participantes. En total, <target target-type="page" id="pges_120"/>veinticuatro usuarios participaron en la recogida de datos durante un periodo de cinco d&#x00ED;as.</p>
<p>Al igual que para el conjunto de datos UEBA, se ha seleccionado la informaci&#x00F3;n que proviene de las fuentes de informaci&#x00F3;n del teclado y del rat&#x00F3;n. Esta informaci&#x00F3;n se ha procesado y dividido en los conjuntos de entrenamiento, test y validaci&#x00F3;n siguiendo las mismas directrices marcadas en el caso anterior. En definitiva, se han extra&#x00ED;do los n&#x00FA;cleos de comportamiento y se ha <target target-type="page" id="pges_121"/>entrenado el modelo de riesgos con el objetivo de poder evaluar los tres casos de uso.</p>
<p>Los resultados se pueden observar en las <xref ref-type="tab" rid="c5-tab14">Tablas 5.14</xref>, <xref ref-type="tab" rid="c5-tab15">5.15</xref> y <xref ref-type="tab" rid="c5-tab16">5.16</xref>, respectivamente. Al igual que en la secci&#x00F3;n anterior, se han considerado todas las posibles combinaciones de los par&#x00E1;metros <italic>NGL</italic> y <italic>WinS ize</italic>. Los resultados obtenidos para cada m&#x00E9;trica se corresponden con la media para todos los usuarios.</p>
<table-wrap id="c5-tab14">
<label>Tabla 5.14:</label>
<caption><title>Resultados obtenidos para las din&#x00E1;micas de teclado utilizando el m&#x00E9;todo de combinaci&#x00F3;n en TWOS. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.414</td>
<td valign="top" align="left">0.413</td>
<td valign="top" align="left">0.415</td>
<td valign="top" align="left">0.407</td>
<td valign="top" align="left">0.414</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.386</td>
<td valign="top" align="left">0.386</td>
<td valign="top" align="left">0.386</td>
<td valign="top" align="left">0.375</td>
<td valign="top" align="left">0.384</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.341</td>
<td valign="top" align="left">0.343</td>
<td valign="top" align="left">0.341</td>
<td valign="top" align="left">0.346</td>
<td valign="top" align="left">0.353</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.269</td>
<td valign="top" align="left">0.269</td>
<td valign="top" align="left">0.269</td>
<td valign="top" align="left">0.268</td>
<td valign="top" align="left">0.233</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.214</td>
<td valign="top" align="left">0.219</td>
<td valign="top" align="left">0.214</td>
<td valign="top" align="left">0.189</td>
<td valign="top" align="left">0.131</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.362</td>
<td valign="top" align="left">0.362</td>
<td valign="top" align="left">0.362</td>
<td valign="top" align="left">0.380</td>
<td valign="top" align="left">0.382</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.337</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.339</td>
<td valign="top" align="left">0.340</td>
<td valign="top" align="left">0.320</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.305</td>
<td valign="top" align="left">0.304</td>
<td valign="top" align="left">0.307</td>
<td valign="top" align="left">0.282</td>
<td valign="top" align="left">0.237</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.217</td>
<td valign="top" align="left">0.217</td>
<td valign="top" align="left">0.217</td>
<td valign="top" align="left">0.180</td>
<td valign="top" align="left">0.126</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.133</td>
<td valign="top" align="left">0.133</td>
<td valign="top" align="left">0.134</td>
<td valign="top" align="left">0.044</td>
<td valign="top" align="left">0.052</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.317</td>
<td valign="top" align="left">0.318</td>
<td valign="top" align="left">0.317</td>
<td valign="top" align="left">0.346</td>
<td valign="top" align="left">0.302</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.259</td>
<td valign="top" align="left">0.257</td>
<td valign="top" align="left">0.259</td>
<td valign="top" align="left">0.305</td>
<td valign="top" align="left">0.245</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.189</td>
<td valign="top" align="left">0.189</td>
<td valign="top" align="left">0.191</td>
<td valign="top" align="left">0.227</td>
<td valign="top" align="left">0.172</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.080</td>
<td valign="top" align="left">0.078</td>
<td valign="top" align="left">0.082</td>
<td valign="top" align="left">0.110</td>
<td valign="top" align="left">0.072</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.008</td>
<td valign="top" align="left">0.008</td>
<td valign="top" align="left">0.008</td>
<td valign="top" align="left">0.018</td>
<td valign="top" align="left">0.019</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.299</td>
<td valign="top" align="left">0.299</td>
<td valign="top" align="left">0.299</td>
<td valign="top" align="left">0.293</td>
<td valign="top" align="left">0.288</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.231</td>
<td valign="top" align="left">0.231</td>
<td valign="top" align="left">0.232</td>
<td valign="top" align="left">0.222</td>
<td valign="top" align="left">0.224</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.156</td>
<td valign="top" align="left">0.156</td>
<td valign="top" align="left">0.156</td>
<td valign="top" align="left">0.139</td>
<td valign="top" align="left">0.139</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.055</td>
<td valign="top" align="left">0.054</td>
<td valign="top" align="left">0.055</td>
<td valign="top" align="left">0.060</td>
<td valign="top" align="left">0.052</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.007</bold></td>
<td valign="top" align="left"><bold>0.007</bold></td>
<td valign="top" align="left"><bold>0.007</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.015</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab15">
<label>Tabla 5.15:</label>
<caption><title>Resultados obtenidos para las din&#x00E1;micas de rat&#x00F3;n utilizando el m&#x00E9;todo de combinaci&#x00F3;n en TWOS. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.433</td>
<td valign="top" align="left">0.433</td>
<td valign="top" align="left">0.434</td>
<td valign="top" align="left">0.400</td>
<td valign="top" align="left">0.432</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.404</td>
<td valign="top" align="left">0.403</td>
<td valign="top" align="left">0.404</td>
<td valign="top" align="left">0.375</td>
<td valign="top" align="left">0.400</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.371</td>
<td valign="top" align="left">0.370</td>
<td valign="top" align="left">0.372</td>
<td valign="top" align="left">0.313</td>
<td valign="top" align="left">0.351</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.317</td>
<td valign="top" align="left">0.316</td>
<td valign="top" align="left">0.318</td>
<td valign="top" align="left">0.252</td>
<td valign="top" align="left">0.286</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.266</td>
<td valign="top" align="left">0.265</td>
<td valign="top" align="left">0.266</td>
<td valign="top" align="left">0.205</td>
<td valign="top" align="left">0.260</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.420</td>
<td valign="top" align="left">0.419</td>
<td valign="top" align="left">0.420</td>
<td valign="top" align="left">0.406</td>
<td valign="top" align="left">0.394</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.392</td>
<td valign="top" align="left">0.392</td>
<td valign="top" align="left">0.393</td>
<td valign="top" align="left">0.369</td>
<td valign="top" align="left">0.356</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.355</td>
<td valign="top" align="left">0.354</td>
<td valign="top" align="left">0.355</td>
<td valign="top" align="left">0.290</td>
<td valign="top" align="left">0.315</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.285</td>
<td valign="top" align="left">0.285</td>
<td valign="top" align="left">0.285</td>
<td valign="top" align="left">0.263</td>
<td valign="top" align="left">0.209</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.180</td>
<td valign="top" align="left">0.176</td>
<td valign="top" align="left">0.180</td>
<td valign="top" align="left">0.250</td>
<td valign="top" align="left">0.126</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.377</td>
<td valign="top" align="left">0.376</td>
<td valign="top" align="left">0.379</td>
<td valign="top" align="left">0.362</td>
<td valign="top" align="left">0.388</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.336</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.337</td>
<td valign="top" align="left">0.311</td>
<td valign="top" align="left">0.347</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.286</td>
<td valign="top" align="left">0.285</td>
<td valign="top" align="left">0.288</td>
<td valign="top" align="left">0.255</td>
<td valign="top" align="left">0.287</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.174</td>
<td valign="top" align="left">0.173</td>
<td valign="top" align="left">0.174</td>
<td valign="top" align="left">0.153</td>
<td valign="top" align="left">0.211</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.088</td>
<td valign="top" align="left">0.086</td>
<td valign="top" align="left">0.101</td>
<td valign="top" align="left">0.086</td>
<td valign="top" align="left">0.117</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.359</td>
<td valign="top" align="left">0.357</td>
<td valign="top" align="left">0.361</td>
<td valign="top" align="left">0.338</td>
<td valign="top" align="left">0.352</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.313</td>
<td valign="top" align="left">0.312</td>
<td valign="top" align="left">0.314</td>
<td valign="top" align="left">0.308</td>
<td valign="top" align="left">0.302</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.250</td>
<td valign="top" align="left">0.250</td>
<td valign="top" align="left">0.251</td>
<td valign="top" align="left">0.237</td>
<td valign="top" align="left">0.243</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.136</td>
<td valign="top" align="left">0.136</td>
<td valign="top" align="left">0.137</td>
<td valign="top" align="left">0.141</td>
<td valign="top" align="left">0.146</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.051</bold></td>
<td valign="top" align="left"><bold>0.049</bold></td>
<td valign="top" align="left"><bold>0.089</bold></td>
<td valign="top" align="left"><bold>0.047</bold></td>
<td valign="top" align="left"><bold>0.073</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="c5-tab16">
<label>Tabla 5.16:</label>
<caption><title>Resultados obtenidos para la combinaci&#x00F3;n de informaci&#x00F3;n en TWOS. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para cada m&#x00E9;trica se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">NGL</th>
<th valign="top" align="left">WinSize</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR</th>
<th valign="top" align="left">FRR</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.407</td>
<td valign="top" align="left">0.407</td>
<td valign="top" align="left">0.407</td>
<td valign="top" align="left">0.409</td>
<td valign="top" align="left">0.410</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.380</td>
<td valign="top" align="left">0.380</td>
<td valign="top" align="left">0.380</td>
<td valign="top" align="left">0.381</td>
<td valign="top" align="left">0.375</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.343</td>
<td valign="top" align="left">0.321</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.257</td>
<td valign="top" align="left">0.257</td>
<td valign="top" align="left">0.257</td>
<td valign="top" align="left">0.270</td>
<td valign="top" align="left">0.228</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.177</td>
<td valign="top" align="left">0.177</td>
<td valign="top" align="left">0.176</td>
<td valign="top" align="left">0.197</td>
<td valign="top" align="left">0.150</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.359</td>
<td valign="top" align="left">0.359</td>
<td valign="top" align="left">0.359</td>
<td valign="top" align="left">0.371</td>
<td valign="top" align="left">0.349</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.320</td>
<td valign="top" align="left">0.319</td>
<td valign="top" align="left">0.319</td>
<td valign="top" align="left">0.335</td>
<td valign="top" align="left">0.307</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.263</td>
<td valign="top" align="left">0.262</td>
<td valign="top" align="left">0.263</td>
<td valign="top" align="left">0.289</td>
<td valign="top" align="left">0.245</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.169</td>
<td valign="top" align="left">0.168</td>
<td valign="top" align="left">0.169</td>
<td valign="top" align="left">0.213</td>
<td valign="top" align="left">0.159</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.082</td>
<td valign="top" align="left">0.082</td>
<td valign="top" align="left">0.082</td>
<td valign="top" align="left">0.140</td>
<td valign="top" align="left">0.099</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.295</td>
<td valign="top" align="left">0.295</td>
<td valign="top" align="left">0.296</td>
<td valign="top" align="left">0.310</td>
<td valign="top" align="left">0.306</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.226</td>
<td valign="top" align="left">0.226</td>
<td valign="top" align="left">0.226</td>
<td valign="top" align="left">0.267</td>
<td valign="top" align="left">0.230</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.156</td>
<td valign="top" align="left">0.156</td>
<td valign="top" align="left">0.157</td>
<td valign="top" align="left">0.206</td>
<td valign="top" align="left">0.157</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.066</td>
<td valign="top" align="left">0.065</td>
<td valign="top" align="left">0.067</td>
<td valign="top" align="left">0.098</td>
<td valign="top" align="left">0.080</td>
</tr>
<tr>
<td valign="top" align="left">20</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left">0.022</td>
<td valign="top" align="left">0.022</td>
<td valign="top" align="left">0.022</td>
<td valign="top" align="left">0.041</td>
<td valign="top" align="left">0.018</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.268</td>
<td valign="top" align="left">0.268</td>
<td valign="top" align="left">0.268</td>
<td valign="top" align="left">0.282</td>
<td valign="top" align="left">0.285</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">0.201</td>
<td valign="top" align="left">0.200</td>
<td valign="top" align="left">0.201</td>
<td valign="top" align="left">0.227</td>
<td valign="top" align="left">0.211</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">20</td>
<td valign="top" align="left">0.121</td>
<td valign="top" align="left">0.122</td>
<td valign="top" align="left">0.121</td>
<td valign="top" align="left">0.168</td>
<td valign="top" align="left">0.110</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">50</td>
<td valign="top" align="left">0.038</td>
<td valign="top" align="left">0.037</td>
<td valign="top" align="left">0.038</td>
<td valign="top" align="left">0.076</td>
<td valign="top" align="left">0.020</td>
</tr>
<tr>
<td valign="top" align="left">30</td>
<td valign="top" align="left">100</td>
<td valign="top" align="left"><bold>0.006</bold></td>
<td valign="top" align="left"><bold>0.006</bold></td>
<td valign="top" align="left"><bold>0.006</bold></td>
<td valign="top" align="left"><bold>0.014</bold></td>
<td valign="top" align="left"><bold>0.004</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><target target-type="page" id="pges_122"/>Los resultados tanto para cada fuente de informaci&#x00F3;n por separado, como para la combinaci&#x00F3;n de ambas fuentes son &#x00F3;ptimos. Al igual que en la secci&#x00F3;n anterior, los resultados del m&#x00E9;todo propuesto mejoran cuando se considera m&#x00E1;s informaci&#x00F3;n, es decir, cuando los valores de los par&#x00E1;metros <italic>NGL</italic> y <italic>WinS ize</italic> aumentan. En el caso de uso del teclado, los valores de EER van desde 0,414 hasta 0,007, obteniendo valores de FAR y FRR en <target target-type="page" id="pges_123"/>validaci&#x00F3;n de 0,407 y 0,414 respectivamente para la peor combinaci&#x00F3;n de par&#x00E1;metros y, 0,000 y 0,015 para la mejor combinaci&#x00F3;n de los mismos. Por otro lado, en el caso de uso del rat&#x00F3;n, los resultados son ligeramente peores. As&#x00ED;, los valores de EER van desde 0,433 hasta 0,051, obteniendo valores de FAR y FRR para validaci&#x00F3;n de 0,400 y 0,432 respectivamente para la peor combinaci&#x00F3;n de par&#x00E1;metros y, 0,047 y 0,073 para la mejor <target target-type="page" id="pges_124"/>combinaci&#x00F3;n de los mismos. Los mejores resultados de forma global se obtienen para la combinaci&#x00F3;n de ambas fuentes de informaci&#x00F3;n. En este caso, los valores de EER se encuentran en el rango 0,407 y 0,006 llegando a valores de FAR y FRR en el conjunto de validaci&#x00F3;n de 0,409 y 0,410 respectivamente para la peor combinaci&#x00F3;n de par&#x00E1;metros y de 0,0014 y 0,004 para la mejor combinaci&#x00F3;n.</p>
<p>En el caso particular del teclado, cada s&#x00ED;mbolo de la secuencia (digrafo) tiene un tiempo medio de ejecuci&#x00F3;n de 0,227 segundos. En el caso de las din&#x00E1;micas de movimiento del rat&#x00F3;n, cada s&#x00ED;mbolo de la secuencia representa una ventana temporal de 5 segundos. Esto significa que, considerando un <italic>NGL =</italic> 10, los n-gramas contienen aproximadamente 2,27 segundos de informaci&#x00F3;n para las din&#x00E1;micas de teclado y 50 segundos de informaci&#x00F3;n para las din&#x00E1;micas de rat&#x00F3;n. Del mismo modo, seleccionando un <italic>WinS ize</italic> = 100 para realizar una predicci&#x00F3;n se considera 22,7 segundos de informaci&#x00F3;n hist&#x00F3;rica para el teclado y 500 segundos para el rat&#x00F3;n. En el caso de la combinaci&#x00F3;n de informaci&#x00F3;n, una secuencia promedio para todos los usuarios contiene un 73 % de s&#x00ED;mbolos pertenecientes al teclado, mientras que un 27 % pertenecen al rat&#x00F3;n. Considerando un <italic>NGL</italic> = 10, el vector promedio contendr&#x00E1; por lo tanto 7 s&#x00ED;mbolos del teclado y 3 del rat&#x00F3;n. Esto se traduce en que un vector promedio contiene de media 16,589 segundos de informaci&#x00F3;n. Tomando un <italic>WinS ize</italic> = 100, se considerar&#x00E1; de media un total de 151,571 segundos de informaci&#x00F3;n hist&#x00F3;rica para realizar una predicci&#x00F3;n. A pesar de que se consider&#x00E9; toda esta informaci&#x00F3;n hist&#x00F3;rica, las predicciones se realizan para cada interacci&#x00F3;n del usuario, es decir, para cada nuevo s&#x00ED;mbolo independientemente de si proviene del teclado o del rat&#x00F3;n. De este modo, las predicciones se realizan de media cada 0,227 segundos para el teclado y 5 segundos para el rat&#x00F3;n. Esto se debe a que, cuando se eval&#x00FA;an los n-gramas, la secuencia adyacente es exactamente igual a la secuencia anterior a excepci&#x00F3;n del primer y &#x00FA;ltimo s&#x00ED;mbolo (ver <xref ref-type="fig" rid="fig-4-9">Figura 4.9</xref>).</p>
<p>Finalmente, los algoritmos de SVM y RF se han seleccionado como algoritmos representativos del estado del arte frente a los que comparar el m&#x00E9;todo propuesto. De este modo, para entrenar estos algoritmos se ha realizado un preprocesamiento de los datos para que consideren los par&#x00E1;metros <italic>NGL</italic> y <italic>Winsize</italic>, tal como lo hace el m&#x00E9;todo propuesto. En primer lugar, los datos en bruto se han agrupado en subgrupos acorde al par&#x00E1;metro <italic>NGL</italic>. Posteriormente, cada uno de estos modelos ha sido entrenado utilizando una b&#x00FA;squeda en cuadr&#x00ED;culas para fijar los hiperpar&#x00E1;metros. Cada modelo devuelve la probabilidad de pertenecer a la clase genuina y a la clase impostora. Para obtener el riesgo, se selecciona la probabilidad devuelta de pertenecer a la <target target-type="page" id="pges_125"/>clase impostora. Estas probabilidades se agrupan en ventanas temporales utilizando el par&#x00E1;metro <italic>WinS ize</italic>. Posteriormente, se aplica MME para suavizar la curva de riesgo siguiendo las directrices marcadas por el m&#x00E9;todo propuesto.</p>
<p>En la <xref ref-type="tab" rid="c5-tab17">Tabla 5.17</xref> se comparan los resultados obtenidos para el m&#x00E9;todo propuesto frente a los algoritmos de SVM y RF, as&#x00ED; como con otras propuestas del estado del arte. Los resultados mostrados para [<xref ref-type="bibr" rid="CIT096">96</xref>] son los obtenidos para el algoritmo de 2D-CNN. Los resultados mostrados para [<xref ref-type="bibr" rid="CIT0104">104</xref>] son los obtenidos para el algoritmo de SVM.</p>
<table-wrap id="c5-tab17">
<label>Tabla 5.17:</label>
<caption><title><target target-type="page" id="pges_126"/>Comparaci&#x00F3;n de los resultados obtenidos con otras propuestas y algoritmos del estado del arte. <italic>T</italic> y <italic>M</italic> representan las din&#x00E1;micas de teclado y de rat&#x00F3;n respectivamente. <italic>C</italic> se refiere a informaci&#x00F3;n de contexto recogida de un conjunto de datos externos. RF+RF representa un modelo de combinaci&#x00F3;n de informaci&#x00F3;n en el que se utiliza el algoritmo de RF de forma independiente para cada fuente de datos. FI se refiere a fuente de informaci&#x00F3;n. Exac se refiere a exactitud. Espec representa la especificaci&#x00F3;n. El sufijo _val se refiere a conjunto de validaci&#x00F3;n. Los mejores resultados obtenidos para m&#x00E9;trica en cada bloque de experimentos se muestran en negrita.</title></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left">Trabajo</th>
<th valign="top" align="left">FI</th>
<th valign="top" align="left">EER</th>
<th valign="top" align="left">FAR_val</th>
<th valign="top" align="left">FRR_val</th>
<th valign="top" align="left">F1<sup>-</sup>_val</th>
<th valign="top" align="left">Exac_val</th>
<th valign="top" align="left">VPN_val</th>
<th valign="top" align="left">Espec_val</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">SVM</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">0.136</td>
<td valign="top" align="left">0.158</td>
<td valign="top" align="left">0.151</td>
<td valign="top" align="left">0.850</td>
<td valign="top" align="left">0.845</td>
<td valign="top" align="left">0.858</td>
<td valign="top" align="left">0.842</td>
</tr>
<tr>
<td valign="top" align="left">RF</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left">0.084</td>
<td valign="top" align="left">0.093</td>
<td valign="top" align="left">0.174</td>
<td valign="top" align="left">0.860</td>
<td valign="top" align="left">0.865</td>
<td valign="top" align="left">0.819</td>
<td valign="top" align="left">0.907</td>
</tr>
<tr>
<td valign="top" align="left">Our</td>
<td valign="top" align="left">T</td>
<td valign="top" align="left"><bold>0.007</bold></td>
<td valign="top" align="left"><bold>0.000</bold></td>
<td valign="top" align="left"><bold>0.015</bold></td>
<td valign="top" align="left"><bold>0.968</bold></td>
<td valign="top" align="left"><bold>0.979</bold></td>
<td valign="top" align="left"><bold>0.945</bold></td>
<td valign="top" align="left"><bold>0.993</bold></td>
</tr>
<tr>
<td valign="top" align="left">SVM</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">0.171</td>
<td valign="top" align="left">0.180</td>
<td valign="top" align="left"><bold>0.063</bold></td>
<td valign="top" align="left">0.882</td>
<td valign="top" align="left">0.877</td>
<td valign="top" align="left"><bold>0.955</bold></td>
<td valign="top" align="left">0.820</td>
</tr>
<tr>
<td valign="top" align="left">RF</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">0.109</td>
<td valign="top" align="left">0.141</td>
<td valign="top" align="left">0.081</td>
<td valign="top" align="left">0.890</td>
<td valign="top" align="left">0.888</td>
<td valign="top" align="left">0.925</td>
<td valign="top" align="left">0.859</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT096">96</xref>]</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left">0.130</td>
<td valign="top" align="left">0.136</td>
<td valign="top" align="left">0.149</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
</tr>
<tr>
<td valign="top" align="left">Our</td>
<td valign="top" align="left">R</td>
<td valign="top" align="left"><bold>0.088</bold></td>
<td valign="top" align="left"><bold>0.086</bold></td>
<td valign="top" align="left">0.117</td>
<td valign="top" align="left"><bold>0.900</bold></td>
<td valign="top" align="left"><bold>0.909</bold></td>
<td valign="top" align="left">0.888</td>
<td valign="top" align="left"><bold>0.914</bold></td>
</tr>
<tr>
<td valign="top" align="left">RF+RF</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">0.180</td>
<td valign="top" align="left">0.228</td>
<td valign="top" align="left">0.169</td>
<td valign="top" align="left">0.814</td>
<td valign="top" align="left">0.800</td>
<td valign="top" align="left">0.861</td>
<td valign="top" align="left">0.772</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0104">104</xref>]</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">0.806</td>
<td valign="top" align="left">0.751</td>
<td valign="top" align="left"><bold>0.932</bold></td>
<td valign="top" align="left">0.710</td>
</tr>
<tr>
<td valign="top" align="left">Our</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left"><bold>0.177</bold></td>
<td valign="top" align="left"><bold>0.197</bold></td>
<td valign="top" align="left"><bold>0.150</bold></td>
<td valign="top" align="left"><bold>0.828</bold></td>
<td valign="top" align="left"><bold>0.826</bold></td>
<td valign="top" align="left">0.856</td>
<td valign="top" align="left"><bold>0.803</bold></td>
</tr>
<tr>
<td valign="top" align="left">RF+RF</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left">0.121</td>
<td valign="top" align="left">0.126</td>
<td valign="top" align="left">0.152</td>
<td valign="top" align="left">0.860</td>
<td valign="top" align="left">0.860</td>
<td valign="top" align="left">0.848</td>
<td valign="top" align="left">0.874</td>
</tr>
<tr>
<td valign="top" align="left">[<xref ref-type="bibr" rid="CIT0104">104</xref>]</td>
<td valign="top" align="left">T + R + C</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left">-</td>
<td valign="top" align="left"><bold>0.914</bold></td>
<td valign="top" align="left"><bold>0.915</bold></td>
<td valign="top" align="left">0.874</td>
<td valign="top" align="left"><bold>0.912</bold></td>
</tr>
<tr>
<td valign="top" align="left">Our</td>
<td valign="top" align="left">T + R</td>
<td valign="top" align="left"><bold>0.066</bold></td>
<td valign="top" align="left"><bold>0.098</bold></td>
<td valign="top" align="left"><bold>0.080</bold></td>
<td valign="top" align="left">0.912</td>
<td valign="top" align="left"><bold>0.915</bold></td>
<td valign="top" align="left"><bold>0.921</bold></td>
<td valign="top" align="left">0.902</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Los resultados mostrados para el m&#x00E9;todo propuesto son los obtenidos para el conjunto de par&#x00E1;metros tal que, los resultados en validaci&#x00F3;n son comparables a los resultados del resto de propuestas o algoritmos. Esto es, los valores de <italic>NGL</italic> y <italic>WinS ize</italic> son (30,100), (20,100), (5,100) y (20,50), respectivamente. Estos mismos par&#x00E1;metros han sido utilizados para entrenar los algoritmos de SVM y RF. El primer bloque de resultados se corresponde con el uso de din&#x00E1;micas de teclado, el segundo bloque se corresponde con el uso de din&#x00E1;micas de rat&#x00F3;n y el tercer bloque se corresponde con la combinaci&#x00F3;n de la informaci&#x00F3;n de teclado y de rat&#x00F3;n. Finalmente, en el cuarto bloque se compara la combinaci&#x00F3;n de informaci&#x00F3;n de la propuesta [<xref ref-type="bibr" rid="CIT0104">104</xref>] en la que se utiliza informaci&#x00F3;n de contexto. Puesto que esta informaci&#x00F3;n no est&#x00E1; disponible p&#x00FA;blicamente y pertenece a un conjunto de datos externo y privado, en este bloque se demuestra que utilizando el m&#x00E9;todo propuesto se pueden obtener resultados comprables e incluso mejores en algunos &#x00E1;mbitos, &#x00FA;nica y exclusivamente utilizando informaci&#x00F3;n del teclado y del rat&#x00F3;n.</p>
<p>Comparando los resultados de [<xref ref-type="bibr" rid="CIT096">96</xref>] con los obtenidos en la <xref ref-type="tab" rid="c5-tab15">Tabla 5.15</xref>, los valores de <italic>NGL =</italic> 30 y <italic>WinS ize</italic> = 50 muestran resultados similares para el m&#x00E9;todo propuesto. Sin embargo, si se utiliza m&#x00E1;s informaci&#x00F3;n (<italic>NGL</italic> = 20 y <italic>WinS ize</italic> = 100 o <italic>NGL</italic> = 30 y <italic>WinS ize</italic> = 100) los resultados obtenidos por el m&#x00E9;todo mejoran considerablemente. Lo mismo sucede en la combinaci&#x00F3;n de informaci&#x00F3;n para la propuesta de [<xref ref-type="bibr" rid="CIT0104">104</xref>], donde los resultados pueden ser igualados fijando los valores de <italic>NGL</italic> y <italic>WinS ize</italic> a (5,100), (10,50), (20,20) o (30,20) respectivamente (ver <xref ref-type="tab" rid="c5-tab16">Tabla 5.16</xref>). Cuando en esa propuesta se considera informaci&#x00F3;n externa de contexto, los resultados pueden ser igualados o incluso mejorados utilizando &#x00FA;nicamente informaci&#x00F3;n de teclado y de rat&#x00F3;n por el m&#x00E9;todo aqu&#x00ED; propuesto fijando los par&#x00E1;metros a (20,50), (20,100), (30,50) o (20,100). Por &#x00FA;ltimo, considerando el EER, los algoritmos SVM y RF obtienen resultados satisfactorios. Sin embargo, ambos m&#x00E9;todos son superados por el m&#x00E9;todo propuesto en igualdad de condiciones.</p>
</sec>
</sec>
</body>
</book-part>
<book-part id="c6" book-part-type="chapter">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>CAP&#x00CD;TULO 6</label>
<title><target target-type="page" id="pges_127"/>CONCLUSIONES</title>
</title-group>
</book-part-meta>
<body>
<p>En este cap&#x00ED;tulo, en primer lugar, se exponen las conclusiones generales extra&#x00ED;das tras la realizaci&#x00F3;n de esta tesis doctoral. En segundo lugar, se exponen las conclusiones espec&#x00ED;ficas asociadas a cada uno de los objetivos que se detallaron en el primer cap&#x00ED;tulo. En tercer lugar, se presentan las posibles l&#x00ED;neas de investigaci&#x00F3;n futura que han surgido. Finalmente, se detallan las principales contribuciones y publicaciones cient&#x00ED;ficas que han derivado de la elaboraci&#x00F3;n de la presente tesis.</p>
<sec id="c6-s1">
<label><bold>6.1.</bold></label>
<title><bold>Conclusiones generales</bold></title>
<p>El presente trabajo de tesis doctoral tiene fijados dos objetivos generales para validar la hip&#x00F3;tesis de partida. El primer objetivo se centra en el dise&#x00F1;o de un flujo de trabajo que permita la integraci&#x00F3;n de los m&#x00E9;todos an&#x00E1;lisis de comportamiento en los principales est&#x00E1;ndares de gesti&#x00F3;n de identidades federada. Este objetivo se alcanz&#x00F3; en el <xref ref-type="book-part" rid="c3">Cap&#x00ED;tulo 3</xref> del presente documento. Por otro lado, el segundo objetivo se centra en el dise&#x00F1;o de un m&#x00E9;todo de an&#x00E1;lisis de comportamiento capaz de combinar informaci&#x00F3;n de m&#x00FA;ltiples fuentes de datos. Este objetivo tambi&#x00E9;n se ha podido alcanzar en el <xref ref-type="book-part" rid="c4">Cap&#x00ED;tulo 4</xref> del presente documento. Cabe destacar, que la metodolog&#x00ED;a fijada al comienzo de este documento ha sido fundamental y determinante en la consecuci&#x00F3;n de dichos objetivos.</p>
<p>Por lo expuesto anteriormente, la principal conclusi&#x00F3;n del presente trabajo de tesis doctoral, puesto que los dos objetivos generales se han podido alcanzar, es que la hip&#x00F3;tesis de partida ha quedado demostrada. Esto significa, por lo tanto, que es posible mejorar los niveles de seguridad proporcionados por los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados utilizando para ello t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento de los usuarios. Y adem&#x00E1;s, que es posible mejorar la eficacia de los modelos de an&#x00E1;lisis de comportamiento del estado del arte utilizando t&#x00E9;cnicas de combinaci&#x00F3;n de la informaci&#x00F3;n.</p>
</sec>
<sec id="c6-s2">
<label><bold>6.2.</bold></label>
<title><bold>Conclusiones espec&#x00ED;ficas</bold></title>
<sec id="c6-s2-s1">
<label><bold>6.2.1.</bold></label>
<title><bold>Conclusiones del flujo de trabajo</bold></title>
<p>Las principales conclusiones extra&#x00ED;das en relaci&#x00F3;n con el flujo de trabajo propuesto se pueden resumir en:</p>
<list list-type="bullet">
<list-item><p>El flujo de trabajo propuesto aumenta los niveles de seguridad de los est&#x00E1;ndares actuales que siguen el modelo federado (en relaci&#x00F3;n con los <target target-type="page" id="pges_128"/>ataques de suplantaci&#x00F3;n de identidad) y puede ser f&#x00E1;cilmente implementado por cualquier RP siguiendo las directrices proporcionadas.</p></list-item>
<list-item><p>La elecci&#x00F3;n de los atributos que las RPs han de emplear para generar una huella digital depender&#x00E1;, en gran medida, del propio dominio y caso de uso particular. Sin embargo, los perfiles de seguridad propuestos son una referencia &#x00FA;til como punto de partida.</p></list-item>
<list-item><p>Las RPs deben tener un equilibrio entre eficacia y usabilidad ya que la introducci&#x00F3;n de t&#x00E9;cnicas de an&#x00E1;lisis de comportamiento en algunos casos de uso puede a&#x00F1;adir latencias significativas a los flujos de identificaci&#x00F3;n y autenticaci&#x00F3;n tradicionales.</p></list-item>
<list-item><p>El flujo de trabajo propuesto es un claro ejemplo de caso de uso en el que se aumentan los riesgos para la privacidad con el objetivo de mitigar los riesgos para la seguridad. Existen multitud de dominios en los que los usuarios seguramente est&#x00E9;n dispuestos a asumir este coste, pero otros, considerados &#x201C;banales&#x201D; en los que probablemente no sea as&#x00ED;. Por lo tanto las RPs deben informar del tratamiento de datos que van a realizar (siguiendo la regulaci&#x00F3;n vigente y el principio de responsabilidad proactiva), as&#x00ED; como de la informaci&#x00F3;n que van a recopilar para generar la huella digital. Es el usuario final el que debe proporcionar su consentimiento expl&#x00ED;cito e informado, debe tener siempre el poder para decidir si quiere que se le apliquen o no este tipo de mecanismos de an&#x00E1;lisis de comportamiento.</p></list-item>
<list-item><p>La integraci&#x00F3;n del flujo de trabajo propuesto en los flujos actuales de identificaci&#x00F3;n y autenticaci&#x00F3;n puede llevarse a cabo utilizando los propios mecanismos especificados en los est&#x00E1;ndares actuales. Esto implica que la integraci&#x00F3;n puede realizarse en las etapas de implementaci&#x00F3;n y, por lo tanto, es relativamente sencilla de realizar ya que no exige ning&#x00FA;n cambio o modificaci&#x00F3;n en las especificaciones vigentes (y que ya est&#x00E1;n ampliamente extendidas en entornos de producci&#x00F3;n).</p></list-item>
</list>
</sec>
<sec id="c6-s2-s2">
<label><bold>6.2.2.</bold></label>
<title><bold>Conclusiones del m&#x00E9;todo de combinaci&#x00F3;n de informaci&#x00F3;n de comportamientos</bold></title>
<p>Las principales conclusiones relacionadas con este objetivo de la investigaci&#x00F3;n realizada se pueden resumir en:</p>
<list list-type="bullet">
<list-item><p>Los RTE han demostrado ser una t&#x00E9;cnica prometedora para representar informaci&#x00F3;n de comportamientos. Esto se debe a que la discretizaci&#x00F3;n de la informaci&#x00F3;n se logra con una p&#x00E9;rdida de informaci&#x00F3;n m&#x00ED;nima.</p></list-item>
<list-item><p><target target-type="page" id="pges_129"/>La representaci&#x00F3;n de la informaci&#x00F3;n de comportamientos en forma de secuencia de caracteres o s&#x00ED;mbolos permite realizar la combinaci&#x00F3;n de informaci&#x00F3;n a nivel de caracter&#x00ED;sticas de forma efectiva.</p></list-item>
<list-item><p>El uso de t&#x00E9;cnicas de alineamiento de ADN permite comparar de forma precisa din&#x00E1;micas de comportamiento, lo que repercute de forma directa en la eficacia de los m&#x00E9;todos de detecci&#x00F3;n de anomal&#x00ED;as de comportamiento.</p></list-item>
<list-item><p>El uso de t&#x00E9;cnicas de <italic>clustering</italic> basadas en densidades permite acotar la informaci&#x00F3;n utilizada para entrenar los modelos de an&#x00E1;lisis de comportamientos y para su posterior fase de predicci&#x00F3;n. Esto consigue una reducci&#x00F3;n en las latencias a&#x00F1;adidas a los flujos de identificaci&#x00F3;n y autenticaci&#x00F3;n que integren el m&#x00E9;todo propuesto.</p></list-item>
<list-item><p>El modelo basado en riesgos permite detectar anomal&#x00ED;as de comportamiento a lo largo del tiempo. Este modelo puede adaptarse acorde a los requisitos de los usuarios para ser m&#x00E1;s permisivo o restrictivo dependiendo del dominio de aplicaci&#x00F3;n y del caso de uso.</p></list-item>
<list-item><p>El m&#x00E9;todo propuesto es m&#x00E1;s eficaz detectando anomal&#x00ED;as de comportamiento que otras propuestas espec&#x00ED;ficas encontradas en la literatura y que otros algoritmos del estado del arte como RF y SVM. Esto se ha demostrado al evaluarlo sobre los conjuntos de datos de UEBA y TWOS. En el caso del conjunto de datos de TWOS, el m&#x00E9;todo propuesto siempre obtiene EER menores para todas las casu&#x00ED;sticas de evaluaci&#x00F3;n. Estas mejoras van desde el 48,5 % hasta el 1,6 % dependiendo del algoritmo o m&#x00E9;todo comparado y las fuentes de informaci&#x00F3;n consideradas.</p></list-item>
</list>
</sec>
</sec>
<sec id="c6-s3">
<label><bold>6.3.</bold></label>
<title><bold>L&#x00ED;neas de investigaci&#x00F3;n futuras</bold></title>
<p>La elaboraci&#x00F3;n de esta tesis doctoral ha permitido identificar un conjunto de l&#x00ED;neas de investigaci&#x00F3;n que en el futuro pueden complementar, mejorar o extender este trabajo de investigaci&#x00F3;n. Estas son las m&#x00E1;s interesantes o prometedoras:</p>
<list list-type="bullet">
<list-item><p>Las t&#x00E9;cnicas de an&#x00E1;lisis de comportamientos pueden ser integradas e implementadas dentro de un est&#x00E1;ndar federado, no solo en la parte que concierne a la RP (como se ha expuesto en esta tesis), sino en la parte del IdP. De esta forma, existen multitud de casos de uso como:
<list list-type="order">
<list-item><p>Autenticaci&#x00F3;n continua: el propio IdP puede utilizar la informaci&#x00F3;n de las peticiones de autenticaci&#x00F3;n y/o autorizaci&#x00F3;n para generar un m&#x00E9;todo de an&#x00E1;lisis de comportamiento de tal manera que, analizando datos hist&#x00F3;ricos, <target target-type="page" id="pges_130"/>determine el riesgo en tiempo real de las interacciones que est&#x00E1; realizando un usuario. De esta manera, el IdP puede anular, por ejemplo, la <italic>cookie</italic> de sesi&#x00F3;n si as&#x00ED; lo sugiere el m&#x00E9;todo de an&#x00E1;lisis de comportamientos.</p></list-item>
<list-item><p>Detecci&#x00F3;n de suplantaci&#x00F3;n o fraude: el IdP puede utilizar el hist&#x00F3;rico de interacciones del usuario para determinar, a posteriori, si se ha producido una suplantaci&#x00F3;n de identidad o fraude. La gran ventaja de los modelos de an&#x00E1;lisis de comportamientos que se utilizar&#x00ED;an con este objetivo es que al poder dejar de lado la eficiencia (no importa que la latencia sea alta porque no se ejecuta el modelo en tiempo real), se pueden generar modelos que primen la eficacia y, por lo tanto, detectar con mayor precisi&#x00F3;n las posibles brechas de seguridad.</p></list-item>
<list-item><p>Registro din&#x00E1;mico de dispositivos y usuarios: normalmente el registro de usuarios y dispositivos se realiza de forma manual y remota en el IdP. Sin embargo, hoy en d&#x00ED;a con el avance del IoT, existen multitud de sensores que se deben registrar en un IdP (fase de <italic>enrollment</italic> o de <italic>on-boarding</italic>). Los m&#x00E9;todos de an&#x00E1;lisis de comportamientos pueden utilizarse para completar esta fase de registro de forma eficiente o autom&#x00E1;tica teniendo en cuenta el comportamiento observado durante un periodo de tiempo, o incluso analizando el comportamiento de dispositivos vecinos o similares en conjunto.</p></list-item>
</list></p></list-item>
<list-item><p>El m&#x00E9;todo de combinaci&#x00F3;n de informaci&#x00F3;n propuesto se basa en discretizar la informaci&#x00F3;n de comportamiento proveniente de m&#x00FA;ltiples fuentes de datos heterog&#x00E9;neas utilizando una t&#x00E9;cnica novedosa de SAX basada en el uso de RTEs. Esta t&#x00E9;cnica ha demostrado emp&#x00ED;ricamente ser efectiva para este prop&#x00F3;sito, sin embargo, el uso de t&#x00E9;cnicas de l&#x00F3;gica difusa o NNs han demostrado ser bastante efectiva a la hora de generar <italic>embeddings</italic> en otros &#x00E1;mbitos. Es por esto que una l&#x00ED;nea de investigaci&#x00F3;n futura es la evaluaci&#x00F3;n de estos tipos de algoritmos, en cuanto a eficiencia y eficacia, en el &#x00E1;mbito del an&#x00E1;lisis de comportamientos.</p></list-item>
<list-item><p>La comparaci&#x00F3;n de secuencias de caracteres o s&#x00ED;mbolos se realiza en esta tesis por medio de t&#x00E9;cnicas de alineamiento de secuencias de ADN. Sin embargo, hoy en d&#x00ED;a existen multitud de m&#x00E9;tricas de similitud entre este tipo de secuencias. Una posible l&#x00ED;nea de investigaci&#x00F3;n futura ser&#x00ED;a evaluar otras m&#x00E9;tricas o incluso, realizar una combinaci&#x00F3;n de matrices de similitud obtenidas utilizando diferentes m&#x00E9;tricas de forma independiente. Esto &#x00FA;ltimo se puede materializar mediante una combinaci&#x00F3;n de <italic>kernels</italic> con el objetivo de ponderar las diferentes virtudes o fallos de cada una de ellas por separado.</p></list-item>
<list-item><p>El m&#x00E9;todo de combinaci&#x00F3;n propuesto en esta tesis es escalable, es decir, se podr&#x00ED;an considerar nuevas fuentes de informaci&#x00F3;n de forma sencilla. <target target-type="page" id="pges_131"/>Esto permite a&#x00F1;adir nuevos datos a los modelos que permiten identificar las anomal&#x00ED;as en el comportamiento de los usuarios y por lo tanto, potenciales brechas de seguridad. Ser&#x00ED;a conveniente evaluarlo en un entorno IoT, donde los recursos computacionales disponibles en los dispositivos son limitados. De este modo, para escalar el m&#x00E9;todo y combinar m&#x00E1;s fuentes de informaci&#x00F3;n ser deber&#x00ED;a recurrir al <italic>edge computing</italic> para distribuir el procesamiento adicional requerido.</p></list-item>
</list>
</sec>
<sec id="c6-s4">
<label><bold>6.4.</bold></label>
<title><bold>Principales contribuciones y publicaciones derivadas de la tesis</bold></title>
<p>Las principales contribuciones del presente trabajo de tesis doctoral se resumen en:</p>
<list list-type="order">
<list-item><p>An&#x00E1;lisis en profundidad de los principales trabajos en el &#x00E1;mbito del an&#x00E1;lisis de comportamiento.</p></list-item>
<list-item><p>Flujo de trabajo para la integraci&#x00F3;n de los modelos de an&#x00E1;lisis de comportamiento en los est&#x00E1;ndares de gesti&#x00F3;n de identidades federados.</p></list-item>
<list-item><p>Modelo de an&#x00E1;lisis de comportamiento que combina informaci&#x00F3;n recogida de fuentes de datos heterog&#x00E9;neas.</p></list-item>
<list-item><p>Nuevo conjunto de datos que contiene din&#x00E1;micas de comportamiento de usuarios.</p></list-item>
</list>
<p>Las publicaciones realizadas durante el desarrollo de esta tesis doctoral en relaci&#x00F3;n con estas contribuciones son las siguientes:</p>
<list list-type="order">
<list-item><p>A. G. Mart&#x00ED;n, I. M. de Diego, A. Fern&#x00E1;ndez-Isabel, M. Beltr&#x00E1;n y Fern&#x00E1;ndez, R. R. &#x201C;Combining user behavioural information at the feature level to enhance continuous authentication systems&#x201D;. Knowledge-Based Systems, 108544, 2022</p></list-item>
<list-item><p>A. G. Mart&#x00ED;n, M. Beltr&#x00E1;n, A. Fern&#x00E1;ndez-Isabel e I. M. de Diego, &#x201C;An approach to detect user behaviour anomalies within identity federations&#x201D; Computers &#x0026; Security, vol. 108, p. 102 356, 2021.</p></list-item>
<list-item><p>A. G. Mart&#x00ED;n, A. Fern&#x00E1;ndez-Isabel, I. M. de Diego y M. Beltr&#x00E1;n, &#x201C;A survey for user behavior analysis based on machine learning techniques: current models and applications,&#x201D; Applied Intelligence, pp. 1-27, 2021.</p></list-item>
<list-item><p>A. G. Mart&#x00ED;n, M. Beltr&#x00E1;n, A. Fern&#x00E1;ndez-Isabel e I. M. de Diego, &#x201C;Keystroke and Mouse Dynamics for UEBA Dataset&#x201D;, Mendeley Data, v2, 2020</p></list-item>
<list-item><p><target target-type="page" id="pges_132"/>A. G. Mart&#x00ED;n, M. Beltr&#x00E1;n, &#x201C;Mejora de la seguridad de esquemas de gesti&#x00F3;n de identidades federados mediante t&#x00E9;cnicas de User Behaviour Analytics&#x201D;, V Jornadas Nacionales de Investigaci&#x00F3;n en Ciberseguridad (JNIC 2019), pp. 159-166,2019</p></list-item>
</list>
<p>Cada una de las publicaciones aqu&#x00ED; presentadas se corresponden con un cap&#x00ED;tulo del presente trabajo de tesis doctoral y con una o varias contribuciones del mismo. De este modo, el <xref ref-type="book-part" rid="c1">Cap&#x00ED;tulo 1</xref> se corresponde con la publicaci&#x00F3;n [<xref ref-type="bibr" rid="CIT018">18</xref>]. En &#x00E9;l se presentan los principales objetivos e ideas que surgieron al comienzo de la realizaci&#x00F3;n de la presente tesis. En la publicaci&#x00F3;n [<xref ref-type="bibr" rid="CIT004">4</xref>] se aborda el estado del arte presentado en el <xref ref-type="book-part" rid="c2">Cap&#x00ED;tulo 2</xref>. Esta publicaci&#x00F3;n se corresponde con la primera contribuci&#x00F3;n. El <xref ref-type="book-part" rid="c3">Cap&#x00ED;tulo 3</xref> se corresponde con la publicaci&#x00F3;n [<xref ref-type="bibr" rid="CIT0110">110</xref>] y en &#x00E9;l se presentan la segunda y tercera contribuci&#x00F3;n, es decir, el flujo de trabajo para lograr la integraci&#x00F3;n en los est&#x00E1;ndares federados y el conjunto de datos que incluye din&#x00E1;micas de comportamiento. El <xref ref-type="book-part" rid="c4">Cap&#x00ED;tulo 4</xref> se corresponde con la publicaci&#x00F3;n [<xref ref-type="bibr" rid="CIT0130">130</xref>], y en &#x00E9;l se presenta la cuarta contribuci&#x00F3;n, es decir, el modelo de an&#x00E1;lisis de comportamiento que combina informaci&#x00F3;n. Finalmente, los experimentos abordados en el <xref ref-type="book-part" rid="c5">Cap&#x00ED;tulo 5</xref>, y las conclusiones obtenidas en el <xref ref-type="book-part" rid="c6">Cap&#x00ED;tulo 6</xref> se ven reflejadas en todas estas publicaciones de forma simult&#x00E1;nea.</p>
</sec>
</body>
</book-part>
</book-body>
<book-back>
<book-part id="a1" book-part-type="appendix">
<book-part-meta>
<book-part-id book-part-id-type="publisher-id">URJC</book-part-id>
<title-group>
<label>AP&#x00C9;NDICE A.</label>
<title><target target-type="page" id="pges_133"/>GLOSARIO DE ACR&#x00D3;NIMOS</title>
</title-group>
</book-part-meta>
<body>
<table-wrap id="A1-tab1">
<caption/>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left"><bold>ABAC</bold></td>
<td valign="top" align="left"><italic>Attribute-Based Access Control.</italic></td>
</tr>
<tr>
<td valign="top" align="left"><bold>AC</bold></td>
<td valign="top" align="left"><italic>Ant Colony</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>ACL</bold></td>
<td valign="top" align="left"><italic>Access Control Lists</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>AMF</bold></td>
<td valign="top" align="left">Autenticaci&#x00F3;n de M&#x00FA;ltiples Factores.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>API</bold></td>
<td valign="top" align="left"><italic>Application Programming Interface</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>BN</bold></td>
<td valign="top" align="left"><italic>Bayesian Network</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>COT</bold></td>
<td valign="top" align="left"><italic>Circle of Trust</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>CSRF</bold></td>
<td valign="top" align="left"><italic>Cross Site Request Forgery</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>DAC</bold></td>
<td valign="top" align="left"><italic>Discretionary Access Control</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>DBSCAN</bold></td>
<td valign="top" align="left"><italic>Density-Based Spatial Clustering of Applications with Noise</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>DT</bold></td>
<td valign="top" align="left"><italic>Decision Tree</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>EER</bold></td>
<td valign="top" align="left"><italic>Equal Error Rate</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>EU</bold></td>
<td valign="top" align="left"><italic>End User</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>FAPI</bold></td>
<td valign="top" align="left"><italic>Financial-grade API</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>FAR</bold></td>
<td valign="top" align="left"><italic>False Acceptance Rate</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>FN</bold></td>
<td valign="top" align="left">Falsos Negativos.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>FP</bold></td>
<td valign="top" align="left">Falsos Positivos.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>FRR</bold></td>
<td valign="top" align="left"><italic>False Rejection Rate</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>HAT</bold></td>
<td valign="top" align="left"><italic>Hoeffding Adaptive Trees</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>HMM</bold></td>
<td valign="top" align="left"><italic>Hidden Markov Model</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>HRU</bold></td>
<td valign="top" align="left">Harrison, Ruzzo y Ullman.</td>
</tr>
<tr>
<td valign="top" align="left"><target target-type="page" id="pges_134"/><bold>IAAA</bold></td>
<td valign="top" align="left">Identificaci&#x00F3;n, Autenticaci&#x00F3;n, Autorizaci&#x00F3;n y Auditoria.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>IdP</bold></td>
<td valign="top" align="left"><italic>Identity Provider</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>loT</bold></td>
<td valign="top" align="left"><italic>Internet of Things</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>ITAD</bold></td>
<td valign="top" align="left"><italic>Instance-based Tail Area Density</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>KDE</bold></td>
<td valign="top" align="left"><italic>Kernel Density Estimation</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>KNN</bold></td>
<td valign="top" align="left"><italic>K-Nearest Neighbors</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>LDAP</bold></td>
<td valign="top" align="left"><italic>Lightweight Directory Access Protocol</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>LoA</bold></td>
<td valign="top" align="left"><italic>Level of Assurance</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>LOPD</bold></td>
<td valign="top" align="left">Ley Org&#x00E1;nica de Protecci&#x00F3;n de Datos de Car&#x00E1;cter Personal.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>MAC</bold></td>
<td valign="top" align="left"><italic>Mandatory Access Control</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>MC</bold></td>
<td valign="top" align="left">Modelo de Confianza.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>MKL</bold></td>
<td valign="top" align="left"><italic>Multi-kernel Learning Method</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>MME</bold></td>
<td valign="top" align="left">Media M&#x00F3;vil Exponencial.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>NB</bold></td>
<td valign="top" align="left"><italic>Na&#x00EF;ve Bayes</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>NGL</bold></td>
<td valign="top" align="left"><italic>N-Gram Length</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>NN</bold></td>
<td valign="top" align="left"><italic>Neural Network</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>OC-SVM</bold></td>
<td valign="top" align="left"><italic>One-Class SVM</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>OIDC</bold></td>
<td valign="top" align="left"><italic>Openld Connect</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>OP</bold></td>
<td valign="top" align="left"><italic>OpenlD Provider</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>PAA</bold></td>
<td valign="top" align="left"><italic>Piecewise Aggregate Approximation</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>PADTW</bold></td>
<td valign="top" align="left"><italic>Progress-Adjusted Dynamic Time Wraping</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>PCA</bold></td>
<td valign="top" align="left"><italic>Principal Component Analysis</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>PLC</bold></td>
<td valign="top" align="left"><italic>Parametric Linear Combination</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><target target-type="page" id="pges_135"/><bold>RADIUS</bold></td>
<td valign="top" align="left"><italic>Remote authentication dial in user service</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>RBAC</bold></td>
<td valign="top" align="left"><italic>Role-Based Access Control</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>RF</bold></td>
<td valign="top" align="left"><italic>Random Forest</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>RGPD</bold></td>
<td valign="top" align="left">Reglamento General de Protecci&#x00F3;n de Datos.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>RP</bold></td>
<td valign="top" align="left"><italic>Relying Party</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>RTE</bold></td>
<td valign="top" align="left"><italic>Random Trees Embedding</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SAML</bold></td>
<td valign="top" align="left"><italic>Security Assertion Markup Language</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SAX</bold></td>
<td valign="top" align="left"><italic>Symbolic Aggregate approximation</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SDK</bold></td>
<td valign="top" align="left"><italic>Software Development Kit</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SMTP</bold></td>
<td valign="top" align="left"><italic>Simple Mail Transfer Protocol</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SP</bold></td>
<td valign="top" align="left"><italic>Service Provider</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SSO</bold></td>
<td valign="top" align="left"><italic>Single Sign On</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>SVM</bold></td>
<td valign="top" align="left"><italic>Support Vector Machine</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>TANB</bold></td>
<td valign="top" align="left"><italic>Tree Augmented Na&#x00EF;ve Bayes</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>TLS</bold></td>
<td valign="top" align="left"><italic>Transport Layer Security</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>TWOS</bold></td>
<td valign="top" align="left"><italic>The Wolf of SUTD</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>UEBA</bold></td>
<td valign="top" align="left"><italic>User and Entity Behavior Analysis</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>VN</bold></td>
<td valign="top" align="left">Verdaderos Negativos.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>VP</bold></td>
<td valign="top" align="left">Verdaderos Positivos.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>VPN</bold></td>
<td valign="top" align="left">Valor Predictivo Negativo.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>WAR</bold></td>
<td valign="top" align="left"><italic>Web application Resource</italic>.</td>
</tr>
<tr>
<td valign="top" align="left"><bold>XACML</bold></td>
<td valign="top" align="left"><italic>extensible Access Control Markup Language</italic>.</td>
</tr>
</tbody>
</table>
</table-wrap>
</body>
</book-part>
<ref-list id="bib1">
<title><target target-type="page" id="pges_136"/><target target-type="page" id="pges_137"/>BIBLIOGRAF&#x00CD;A</title>
<ref id="CIT001"><mixed-citation publication-type="book"><label>[1]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Pato</surname></string-name><x> y </x><string-name><given-names>O. C.</given-names> <surname>Center</surname></string-name></person-group><x>, &#x201C;</x><source>Identity management: Setting context</source><x>,&#x201D; </x><publisher-name>Hewlett-Packard</publisher-name><x>, </x><publisher-loc>Cambridge, MA</publisher-loc><x>, </x><year>2003</year><x>.</x></mixed-citation></ref>
<ref id="CIT002"><mixed-citation publication-type="book"><label>[2]</label> <person-group person-group-type="author"><string-name><given-names>B. F.</given-names> <surname>Skinner</surname></string-name></person-group><x>, </x><source>Science and human behavior</source><x>, </x><volume>92904</volume><x>. </x><publisher-name>Simon y Schuster</publisher-name><x>, </x><year>1953</year><x>.</x></mixed-citation></ref>
<ref id="CIT003"><mixed-citation publication-type="book"><label>[3]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Sidman</surname></string-name></person-group><x>, </x><source>Tactics of scientific research</source><x>. </x><publisher-name>Basic Books, Incorporated, Pub.</publisher-name><x>, </x><year>1960</year><x>.</x></mixed-citation></ref>
<ref id="CIT004"><mixed-citation publication-type="journal"><label>[4]</label> <person-group person-group-type="author"><string-name><given-names>A. G.</given-names> <surname>Mart&#x00ED;n</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Fern&#x00E1;ndez-Isabel</surname></string-name><x>, </x><string-name><given-names>I. M.</given-names> <surname>de Diego</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name></person-group><x>, &#x201C;</x><article-title>A survey for user behavior analysis based on machine learning techniques: current models and applications</article-title><x>,&#x201D; </x><source>Applied Intelligence</source><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>27</lpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT005"><mixed-citation publication-type="journal"><label>[5]</label> <person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Gurarie</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Bracis</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Delgado</surname></string-name><x>, </x><string-name><given-names>T. D.</given-names> <surname>Meckley</surname></string-name><x>, </x><string-name><given-names>I.</given-names> <surname>Kojola</surname></string-name><x> y </x><string-name><given-names>C. M.</given-names> <surname>Wagner</surname></string-name></person-group><x>, &#x201C;</x><article-title>What is the animal doing? Tools for exploring behavioural structure in animal movements</article-title><x>,&#x201D; </x><source>Journal of Animal Ecology</source><x>, </x><volume>vol. 85</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>69</fpage><x>&#x2013;</x><lpage>84</lpage><x>, </x><year>2016</year><x>.</x></mixed-citation></ref>
<ref id="CIT006"><mixed-citation publication-type="journal"><label>[6]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Pacheco</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Hariri</surname></string-name></person-group><x>, &#x201C;</x><article-title>Anomaly behavior analysis for IoT sensors</article-title><x>,&#x201D; </x><source>Transactions on Emerging Telecommunications Technologies</source><x>, </x><volume>vol. 29</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>15</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT007"><mixed-citation publication-type="book"><label>[7]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Pantic</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Pentland</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Nijholt</surname></string-name><x> y </x><string-name><given-names>T. S.</given-names> <surname>Huang</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Human computing and machine understanding of human behavior: a survey</chapter-title><x>,&#x201D; en </x><source>Artifical Intelligence for Human Computing</source><x>, </x><publisher-name>Springer</publisher-name><x>, </x><year>2007</year><x>, pp. </x><fpage>47</fpage><x>&#x2013;</x><lpage>71</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT008"><mixed-citation publication-type="journal"><label>[8]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Navarro</surname></string-name><x>, </x><string-name><given-names>I. M.</given-names> <surname>de Diego</surname></string-name><x>, </x><string-name><given-names>P. C.</given-names> <surname>P&#x00E9;rez</surname></string-name><x> y </x><string-name><given-names>F.</given-names> <surname>Ortega</surname></string-name></person-group><x>, &#x201C;</x><article-title>Outlier detection in animal multivariate trajectories</article-title><x>,&#x201D; </x><source>Computers and Electronics in Agriculture</source><x>, </x><volume>vol. 190</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>6</lpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT009"><mixed-citation publication-type="journal"><label>[9]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Xie</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Han</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Tian</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Parvin</surname></string-name></person-group><x>, &#x201C;</x><article-title>Anomaly detection in wireless sensor networks: A survey</article-title><x>,&#x201D; </x><source>Journal of Network and Computer Applications</source><x>, </x><volume>vol. 34</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>1302</fpage><x>&#x2013;</x><lpage>1325</lpage><x>, </x><year>2011</year><x>.</x></mixed-citation></ref>
<ref id="CIT010"><mixed-citation publication-type="book"><label>[10]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Bohge</surname></string-name><x> y </x><string-name><given-names>W.</given-names> <surname>Trappe</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>An authentication framework for hierarchical ad hoc sensor networks</chapter-title><x>,&#x201D; en </x><source>Proceedings of the 2nd ACM workshop on Wireless security</source><x>, </x><publisher-name>ACM</publisher-name><x>, </x><year>2003</year><x>, pp. </x><fpage>79</fpage><x>&#x2013;</x><lpage>87</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT011"><mixed-citation publication-type="book"><label>[11]</label> <person-group person-group-type="author"><string-name><given-names>R. A.</given-names> <surname>LeVine</surname></string-name></person-group><x>, </x><source>Culture, behavior, and personality: An introduction to the comparative study of psychosocial adaptation</source><x>. </x><publisher-name>Routledge</publisher-name><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT012"><mixed-citation publication-type="book"><label>[12]</label> <person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Carter</surname></string-name></person-group><x>, </x><source>Human behavior in the social environment: A social systems approach</source><x>. </x><publisher-name>Routledge</publisher-name><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT013"><mixed-citation publication-type="book"><target target-type="page" id="pges_138"/><label>[13]</label> <person-group person-group-type="author"><string-name><given-names>W.</given-names> <surname>Li</surname></string-name><x> y </x><string-name><given-names>C. J.</given-names> <surname>Mitchell</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Analysing the Security of Google&#x2019;s implementation of OpenID Connect</chapter-title><x>,&#x201D; en </x><source>International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment</source><x>, </x><publisher-name>Springer</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>357</fpage><x>&#x2013;</x><lpage>376</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT014"><mixed-citation publication-type="journal"><label>[14]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Miculan</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Urban</surname></string-name></person-group><x>, &#x201C;</x><article-title>Formal analysis of Facebook Connect single sign-on authentication protocol</article-title><x>,&#x201D; en </x><source>SOFSEM, Citeseer</source><x>, </x><volume>vol. 11</volume><x>, </x><year>2011</year><x>, pp. </x><fpage>22</fpage><x>&#x2013;</x><lpage>28</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT015"><mixed-citation publication-type="book"><label>[15]</label> <source>Financial-grade API (FAPI)</source><x>, </x><ext-link ext-link-type="uri" xlink:href="https://openid.net/wg/fapi/">https://openid.net/wg/fapi/</ext-link><x>, </x><publisher-name>Visitado: 2022-0504</publisher-name><x>.</x></mixed-citation></ref>
<ref id="CIT016"><mixed-citation publication-type="book"><label>[16]</label> <person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Fett</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>K&#x00FC;sters</surname></string-name><x> y </x><string-name><given-names>G.</given-names> <surname>Schmitz</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>The web sso standard openid connect: In-depth formal security analysis and security guidelines</chapter-title><x>,&#x201D; en </x><source>2017 IEEE 30th Computer Security Foundations Symposium (CSF)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>189</fpage><x>&#x2013;</x><lpage>202</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT017"><mixed-citation publication-type="journal"><label>[17]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Navas</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name></person-group><x>, &#x201C;</x><article-title>Understanding and mitigating OpenID Connect threats</article-title><x>,&#x201D; </x><source>Computers &amp; Security</source><x>, </x><volume>vol. 84</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>16</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT018"><mixed-citation publication-type="book"><label>[18]</label> <person-group person-group-type="author"><string-name><given-names>A. G.</given-names> <surname>Mart&#x00ED;n</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Mejora de la seguridad de esquemas de gesti&#x00F3;n de identidades federados mediante t&#x00E9;cnicas de User Behaviour Analytics</chapter-title><x>,&#x201D; en </x><source>V Jornadas Nacionales de Investigaci&#x00F3;n en Ciberseguridad (JNIC 2019)</source><x>, </x><publisher-name>UEX</publisher-name><x>, </x><year>2019</year><x>, pp. </x><fpage>159</fpage><x>&#x2013;</x><lpage>166</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT019"><mixed-citation publication-type="journal"><label>[19]</label> <person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Recordon</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Reed</surname></string-name></person-group><x>, &#x201C;</x><article-title>OpenID 2.0: a platform for user-centric identity management</article-title><x>,&#x201D; en </x><source>Proceedings of the second ACM workshop on Digital identity management</source><x>, </x><year>2006</year><x>, pp. </x><fpage>11</fpage><x>&#x2013;</x><lpage>16</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT020"><mixed-citation publication-type="journal"><label>[20]</label> <person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Hardt</surname></string-name></person-group> <etal>et al.</etal><x>, </x><source>The OAuth 2.0 authorization framework</source><x>, </x><year>2012</year><x>.</x></mixed-citation></ref>
<ref id="CIT021"><mixed-citation publication-type="journal"><label>[21]</label> <person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Sakimura</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Bradley</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Jones</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>De Medeiros</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Mortimore</surname></string-name></person-group><x>, &#x201C;</x><article-title>Openid connect core 1.0</article-title><x>,&#x201D; </x><source>The OpenID Foundation</source><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>85</lpage><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT022"><mixed-citation publication-type="book"><label>[22]</label> <person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Bertino</surname></string-name><x> y </x><string-name><given-names>K.</given-names> <surname>Takahashi</surname></string-name></person-group><x>, </x><source>Identity management: Concepts, technologies, and systems.</source> <publisher-name>Artech House</publisher-name><x>, </x><year>2010</year><x>.</x></mixed-citation></ref>
<ref id="CIT023"><mixed-citation publication-type="journal"><label>[23]</label> <person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Gollmann</surname></string-name></person-group><x>, &#x201C;</x><article-title>Computer security</article-title><x>,&#x201D; </x><source>Wiley Interdisciplinary Reviews: Computational Statistics</source><x>, </x><volume>vol. 2</volume><x>, </x><issue>n.<sup>o</sup> 5</issue><x>, pp. </x><fpage>544</fpage><x>&#x2013;</x><lpage>554</lpage><x>, </x><year>2010</year><x>.</x></mixed-citation></ref>
<ref id="CIT024"><mixed-citation publication-type="journal"><label>[24]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Samonas</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Coss</surname></string-name></person-group><x>, &#x201C;</x><article-title>The CIA strikes back: Redefining confidentiality, integrity and availability in security.</article-title><x>,&#x201D; </x><source>Journal of Information System Security</source><x>, </x><volume>vol. 10</volume><x>, </x><issue>n.<sup>o</sup> 3</issue><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT025"><mixed-citation publication-type="journal"><label>[25]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Ometov</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Bezzateev</surname></string-name><x>, </x><string-name><given-names>N.</given-names> <surname>Makitalo</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Andreev</surname></string-name><x>, </x><string-name><given-names>T.</given-names> <surname>Mikkonen</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Koucheryavy</surname></string-name></person-group><x>, &#x201C;</x><article-title>Multi-factor authentication: A survey</article-title><x>,&#x201D; </x><source>Cryptography</source><x>, </x><volume>vol. 2</volume><x>, </x><issue>n.&#x00B0; 1</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>31</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT026"><mixed-citation publication-type="journal"><target target-type="page" id="pges_139"/><label>[26]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Ayeswarya</surname></string-name><x> y </x><string-name><given-names>J.</given-names> <surname>Norman</surname></string-name></person-group><x>, &#x201C;</x><article-title>A survey on different continuous authentication systems</article-title><x>,&#x201D; </x><source>International Journal of Biometrics</source><x>, </x><volume>vol. 11</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>67</fpage><x>&#x2013;</x><lpage>99</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT027"><mixed-citation publication-type="book"><label>[27]</label> <person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Saunders</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Hitchens</surname></string-name><x> y </x><string-name><given-names>V.</given-names> <surname>Varadharajan</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>An analysis of access control models</chapter-title><x>,&#x201D; en </x><source>Australasian Conference on Information Security and Privacy</source><x>, </x><publisher-name>Springer</publisher-name><x>, </x><year>1999</year><x>, pp. </x><fpage>281</fpage><x>&#x2013;</x><lpage>293</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT028"><mixed-citation publication-type="journal"><label>[28]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Smalley</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Vance</surname></string-name><x> y </x><string-name><given-names>W.</given-names> <surname>Salamon</surname></string-name></person-group><x>, &#x201C;</x><article-title>Implementing SELinux as a Linux security module</article-title><x>,&#x201D; </x><source>NAI Labs Report</source><x>, </x><volume>vol. 1</volume><x>, </x><issue>n.<sup>o</sup> 43</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>58</lpage><x>, </x><year>2001</year><x>.</x></mixed-citation></ref>
<ref id="CIT029"><mixed-citation publication-type="book"><label>[29]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Laurent</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Bouzefrane</surname></string-name></person-group><x>, </x><source>Digital identity management</source><x>. </x><publisher-name>Elsevier</publisher-name><x>, </x><year>2015</year><x>.</x></mixed-citation></ref>
<ref id="CIT030"><mixed-citation publication-type="book"><label>[30]</label> <person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Zeilenga</surname></string-name></person-group> <etal>et al.</etal><x>, &#x201C;</x><chapter-title>Lightweight directory access protocol (ldap): Technical specification road map</chapter-title><x>,&#x201D; </x><source>RFC 4510</source><x>, </x><month>June</month><x>, </x><publisher-name>inf. t&#x00E9;c.</publisher-name><x>, </x><year>2006</year><x>.</x></mixed-citation></ref>
<ref id="CIT031"><mixed-citation publication-type="book"><label>[31]</label> <person-group person-group-type="author"><string-name><given-names>S. P.</given-names> <surname>Miller</surname></string-name><x>, </x><string-name><given-names>B. C.</given-names> <surname>Neuman</surname></string-name><x>, </x><string-name><given-names>J. I.</given-names> <surname>Schiller</surname></string-name><x> y </x><string-name><given-names>J. H.</given-names> <surname>Saltzer</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Kerberos authentication and authorization system</chapter-title><x>,&#x201D; en </x><source>In Project Athena Technical Plan</source><x>, </x><publisher-name>Citeseer</publisher-name><x>, </x><year>1988</year><x>.</x></mixed-citation></ref>
<ref id="CIT032"><mixed-citation publication-type="journal"><label>[32]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Rigney</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Willens</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Rubens</surname></string-name><x> y </x><string-name><given-names>W.</given-names> <surname>Simpson</surname></string-name></person-group><x>, </x><source>Remote authentication dial in user service (RADIUS)</source><x>, </x><year>2000</year><x>.</x></mixed-citation></ref>
<ref id="CIT033"><mixed-citation publication-type="journal"><label>[33]</label> <person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Maler</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Reed</surname></string-name></person-group><x>, &#x201C;</x><article-title>The venn of identity: Options and issues in federated identity management</article-title><x>,&#x201D; </x><source>IEEE security &amp; privacy</source><x>, </x><volume>vol. 6</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>16</fpage><x>&#x2013;</x><lpage>23</lpage><x>, </x><year>2008</year><x>.</x></mixed-citation></ref>
<ref id="CIT034"><mixed-citation publication-type="journal"><label>[34]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Anderson</surname></string-name><x> y </x><string-name><given-names>H.</given-names> <surname>Lockhart</surname></string-name></person-group><x>, &#x201C;</x><article-title>SAML 2.0 profile of XACML</article-title><x>,&#x201D; </x><source>OASIS, September</source><x>, </x><volume>vol. 51</volume><x>, </x><issue>n.<sup>o</sup> 1.4</issue><x>, </x><year>2004</year><x>.</x></mixed-citation></ref>
<ref id="CIT035"><mixed-citation publication-type="book"><label>[35]</label> <person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Hammer-Lahav</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Recordon</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Hardt</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>The oauth 1.0 protocol</chapter-title><x>,&#x201D; </x><source>RFC 5849</source><x>, </x><month>April</month><x>, </x><publisher-name>inf. t&#x00E9;c.</publisher-name><x>, </x><year>2010</year><x>.</x></mixed-citation></ref>
<ref id="CIT036"><mixed-citation publication-type="book"><label>[36]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Mainka</surname></string-name><x>, </x><string-name><given-names>V.</given-names> <surname>Mladenov</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Schwenk</surname></string-name><x> y </x><string-name><given-names>T.</given-names> <surname>Wich</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>SoK: single sign-on security&#x2014;an evaluation of openID connect</chapter-title><x>,&#x201D; en </x><source>2017 IEEE European Symposium on Security and Privacy (EuroS&amp;P)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>251</fpage><x>&#x2013;</x><lpage>266</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT037"><mixed-citation publication-type="book"><label>[37]</label> <person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>Yang</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Manoharan</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>A security analysis of the OAuth protocol</chapter-title><x>,&#x201D; en </x><source>2013 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PA-CRIM)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2013</year><x>, pp. </x><fpage>271</fpage><x>&#x2013;</x><lpage>276</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT038"><mixed-citation publication-type="journal"><label>[38]</label> <person-group person-group-type="author"><string-name><given-names>E. Y.</given-names> <surname>Chen</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Pei</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Chen</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Tian</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Kotcher</surname></string-name><x> y </x><string-name><given-names>P.</given-names> <surname>Tague</surname></string-name></person-group><x>, &#x201C;</x><article-title>Oauth demystified for mobile application developers</article-title><x>,&#x201D; en </x><source>Proceedings of the 2014 ACM SIGSAC conference on computer and communications security</source><x>, </x><year>2014</year><x>, pp. </x><fpage>892</fpage><x>&#x2013;</x><lpage>903</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT039"><mixed-citation publication-type="journal"><target target-type="page" id="pges_140"/><label>[39]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Hu</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Yang</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Li</surname></string-name><x> y </x><string-name><given-names>W. C.</given-names> <surname>Lau</surname></string-name></person-group><x>, &#x201C;</x><article-title>Application impersonation: problems of OAuth and API design in online social networks</article-title><x>,&#x201D; en </x><source>Proceedings of the second ACM conference on Online social networks</source><x>, </x><year>2014</year><x>, pp. </x><fpage>271</fpage><x>&#x2013;</x><lpage>278</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT040"><mixed-citation publication-type="journal"><label>[40]</label> <person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Yang</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>W. C.</given-names> <surname>Lau</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Zhang</surname></string-name><x> y </x><string-name><given-names>P.</given-names> <surname>Hu</surname></string-name></person-group><x>, &#x201C;</x><article-title>Model-based security testing: An empirical study on oauth 2.0 implementations</article-title><x>,&#x201D; en </x><source>Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security</source><x>, </x><year>2016</year><x>, pp. </x><fpage>651</fpage><x>&#x2013;</x><lpage>662</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT041"><mixed-citation publication-type="journal"><label>[41]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Singh</surname></string-name><x> y </x><string-name><given-names>N. K.</given-names> <surname>Chaudhary</surname></string-name></person-group><x>, &#x201C;</x><article-title>OAuth 2.0: Architectural design augmentation for mitigation of common security vulnerabilities</article-title><x>,&#x201D; </x><source>Journal of Information Security and Applications</source><x>, </x><volume>vol. 65</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>11</lpage><x>, </x><year>2022</year><x>.</x></mixed-citation></ref>
<ref id="CIT042"><mixed-citation publication-type="journal"><label>[42]</label> <person-group person-group-type="author"><string-name><given-names>S. G.</given-names> <surname>Morkonda</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Chiasson</surname></string-name><x> y </x><string-name><given-names>P. C.</given-names> <surname>van Oorschot</surname></string-name></person-group><x>, &#x201C;</x><article-title>Empirical Analysis and Privacy Implications in OAuth-based Single Sign-On Systems</article-title><x>,&#x201D; en </x><source>Proceedings of the 20th Workshop on Workshop on Privacy in the Electronic Society</source><x>, </x><year>2021</year><x>, pp. </x><fpage>195</fpage><x>&#x2013;</x><lpage>208</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT043"><mixed-citation publication-type="journal"><label>[43]</label> <person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Halpin</surname></string-name></person-group><x>, &#x201C;</x><article-title>NEXTLEAP: Decentralizing identity with privacy for secure messaging</article-title><x>,&#x201D; en </x><source>Proceedings of the 12th International Conference on Availability, Reliability and Security</source><x>, </x><year>2017</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>10</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT044"><mixed-citation publication-type="book"><label>[44]</label> <person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Weing&#x00E4;rtner</surname></string-name><x> y </x><string-name><given-names>C. M.</given-names> <surname>Westphall</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>A design towards personally identifiable information control and awareness in OpenID Connect identity providers</chapter-title><x>,&#x201D; en </x><source>2017 IEEE International Conference on Computer and Information Technology (CIT)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>37</fpage><x>&#x2013;</x><lpage>46</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT045"><mixed-citation publication-type="book"><label>[45]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Werner</surname></string-name><x> y </x><string-name><given-names>C. M.</given-names> <surname>Westphall</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>A model for identity management with privacy in the cloud</chapter-title><x>,&#x201D; en </x><source>2016 IEEE Symposium on Computers and Communication (ISCC)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>463</fpage><x>&#x2013;</x><lpage>468</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT046"><mixed-citation publication-type="journal"><label>[46]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Villar&#x00E1;n</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name></person-group><x>, &#x201C;</x><article-title>Protecting End User&#x2019;s Privacy When using Social Login through GDPR Compliance</article-title><x>,&#x201D; </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT047"><mixed-citation publication-type="book"><label>[47]</label> <person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Zachmann</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Mytoken-OpenID Connect Tokens for Long-term Authorization</chapter-title><x>,&#x201D; </x><source>Tesis doct.,</source> <publisher-name>Karlsruher Institut f&#x00FC;r Technologie (KIT)</publisher-name><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT048"><mixed-citation publication-type="journal"><label>[48]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Sharif</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Carbone</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Sciarretta</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Ranise</surname></string-name></person-group><x>, &#x201C;</x><article-title>Best current practices for OAuth/OIDC Native Apps: A study of their adoption in popular providers and top-ranked Android clients</article-title><x>,&#x201D; </x><source>Journal of Information Security and Applications</source><x>, </x><volume>vol. 65</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>18</lpage><x>, </x><year>2022</year><x>.</x></mixed-citation></ref>
<ref id="CIT049"><mixed-citation publication-type="book"><label>[49]</label> <person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Cao</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Chi</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Hao</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Xiao</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>User behavior modeling and traffic analysis of IMS presence servers</chapter-title><x>,&#x201D; en </x><source>IEEE GLOBECOM 2008-2008 IEEE Global Telecommunications Conference</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2008</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>5</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT050"><mixed-citation publication-type="journal"><target target-type="page" id="pges_141"/><label>[50]</label> <person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Kong</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>T.</given-names> <surname>Tang</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Tian</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Moreira-Matias</surname></string-name><x> y </x><string-name><given-names>F.</given-names> <surname>Xia</surname></string-name></person-group><x>, &#x201C;</x><article-title>Shared subway shuttle bus route planning based on transport data analytics</article-title><x>,&#x201D; </x><source>IEEE Transactions on Automation Science and Engineering</source><x>, </x><volume>vol. 15</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>1507</fpage><x>&#x2013;</x><lpage>1520</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT051"><mixed-citation publication-type="journal"><label>[51]</label> <person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Ding</surname></string-name><x>, </x><string-name><given-names>Q.</given-names> <surname>He</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Wu</surname></string-name><x> y </x><string-name><given-names>J.</given-names> <surname>Fetzer</surname></string-name></person-group><x>, &#x201C;</x><article-title>Modeling traffic control agency decision behavior for multimodal manual signal control under event occurrences</article-title><x>,&#x201D; </x><source>IEEE Transactions on Intelligent Transportation Systems</source><x>, </x><volume>vol. 16</volume><x>, </x><issue>n.<sup>o</sup> 5</issue><x>, pp. </x><fpage>2467</fpage><x>&#x2013;</x><lpage>2478</lpage><x>, </x><year>2015</year><x>.</x></mixed-citation></ref>
<ref id="CIT052"><mixed-citation publication-type="book"><label>[52]</label> <person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Faria</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Sousa</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Martins</surname></string-name><x> y </x><string-name><given-names>J.</given-names> <surname>Lagarto</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Modeling the strategic behavior of the iberian electricity market producers using time series analysis</chapter-title><x>,&#x201D; en </x><source>2013 10th International Conference on the European Energy Market (EEM)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2013</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>5</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT053"><mixed-citation publication-type="journal"><label>[53]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Wang</surname></string-name><x>, </x><string-name><given-names>Q.</given-names> <surname>Chen</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Kang</surname></string-name><x> y </x><string-name><given-names>Q.</given-names> <surname>Xia</surname></string-name></person-group><x>, &#x201C;</x><article-title>Clustering of electricity consumption behavior dynamics toward big data applications</article-title><x>,&#x201D; </x><source>IEEE transactions on smart grid</source><x>, </x><volume>vol. 7</volume><x>, </x><issue>n.<sup>o</sup> 5</issue><x>, pp. </x><fpage>2437</fpage><x>&#x2013;</x><lpage>2447</lpage><x>, </x><year>2016</year><x>.</x></mixed-citation></ref>
<ref id="CIT054"><mixed-citation publication-type="journal"><label>[54]</label> <person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Alemdar</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Tunca</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Ersoy</surname></string-name></person-group><x>, &#x201C;</x><article-title>Daily life behaviour monitoring for health assessment using machine learning: bridging the gap between domains</article-title><x>,&#x201D; </x><source>Personal and Ubiquitous Computing</source><x>, </x><volume>vol. 19</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>303</fpage><x>&#x2013;</x><lpage>315</lpage><x>, </x><year>2015</year><x>.</x></mixed-citation></ref>
<ref id="CIT055"><mixed-citation publication-type="journal"><label>[55]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Manca</surname></string-name><x>, </x><string-name><given-names>P.</given-names> <surname>Parvin</surname></string-name><x>, </x><string-name><given-names>F.</given-names> <surname>Paterno</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Santoro</surname></string-name></person-group><x>, &#x201C;</x><article-title>Detecting anomalous elderly behaviour in ambient assisted living</article-title><x>,&#x201D; en </x><source>Proceedings of the ACM SIGCHI Symposium on Engineering Interactive Computing Systems</source><x>, </x><year>2017</year><x>, pp. </x><fpage>63</fpage><x>&#x2013;</x><lpage>68</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT056"><mixed-citation publication-type="journal"><label>[56]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Lotfi</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Langensiepen</surname></string-name><x>, </x><string-name><given-names>S. M.</given-names> <surname>Mahmoud</surname></string-name><x> y </x><string-name><given-names>M. J.</given-names> <surname>Akhlaghinia</surname></string-name></person-group><x>, &#x201C;</x><article-title>Smart homes for the elderly dementia sufferers: identification and prediction of abnormal behaviour</article-title><x>,&#x201D; </x><source>Journal of ambient intelligence and humanized computing</source><x>, </x><volume>vol. 3</volume><x>, </x><issue>n.<sup>o</sup> 3</issue><x>, pp. </x><fpage>205</fpage><x>&#x2013;</x><lpage>218</lpage><x>, </x><year>2012</year><x>.</x></mixed-citation></ref>
<ref id="CIT057"><mixed-citation publication-type="journal"><label>[57]</label> <person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Arbabzadeh</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Jafari</surname></string-name></person-group><x>, &#x201C;</x><article-title>A data-driven approach for driving safety risk prediction using driver behavior and roadway information data</article-title><x>,&#x201D; </x><source>IEEE transactions on intelligent transportation systems</source><x>, </x><volume>vol. 19</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>446</fpage><x>&#x2013;</x><lpage>460</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT058"><mixed-citation publication-type="book"><label>[58]</label> <person-group person-group-type="author"><string-name><given-names>W.</given-names> <surname>Zhang</surname></string-name><x> y </x><string-name><given-names>Q.</given-names> <surname>Fan</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Identification of abnormal driving state based on driver&#x2019;s model</chapter-title><x>,&#x201D; en </x><source>ICCAS 2010</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2010</year><x>, pp. </x><fpage>14</fpage><x>&#x2013;</x><lpage>18</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT059"><mixed-citation publication-type="journal"><label>[59]</label> <person-group person-group-type="author"><string-name><given-names>A. K.</given-names> <surname>Sahu</surname></string-name><x> y </x><string-name><given-names>P.</given-names> <surname>Dwivedi</surname></string-name></person-group><x>, &#x201C;</x><article-title>User profile as a bridge in cross-domain recommender systems for sparsity reduction</article-title><x>,&#x201D; </x><source>Applied Intelligence</source><x>, </x><volume>vol. 49</volume><x>, </x><issue>n.<sup>o</sup> 7</issue><x>, pp. </x><fpage>2461</fpage><x>&#x2013;</x><lpage>2481</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT060"><mixed-citation publication-type="journal"><label>[60]</label> <person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Bai</surname></string-name><x>, </x><string-name><given-names>W. X.</given-names> <surname>Zhao</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>He</surname></string-name><x>, </x><string-name><given-names>J.-Y.</given-names> <surname>Nie</surname></string-name><x> y </x><string-name><given-names>J.-R.</given-names> <surname>Wen</surname></string-name></person-group><x>, &#x201C;</x><article-title>Characterizing and predicting early reviewers for effective product marketing on e-commerce <target target-type="page" id="pges_142"/>websites</article-title><x>,&#x201D; </x><source>IEEE Transactions on Knowledge and Data Engineering</source><x>, </x><volume>vol. 30</volume><x>, </x><issue>n.<sup>o</sup> 12</issue><x>, pp. </x><fpage>2271</fpage><x>&#x2013;</x><lpage>2284</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT061"><mixed-citation publication-type="journal"><label>[61]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Frank</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Biedert</surname></string-name><x>, </x><string-name><given-names>E.</given-names> <surname>Ma</surname></string-name><x>, </x><string-name><given-names>I.</given-names> <surname>Martinovic</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Song</surname></string-name></person-group><x>, &#x201C;</x><article-title>Touchalytics: On the applicability of touchscreen input as a behavioral biometric for continuous authentication</article-title><x>,&#x201D; </x><source>IEEE transactions on information forensics and security</source><x>, </x><volume>vol. 8</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>136</fpage><x>&#x2013;</x><lpage>148</lpage><x>, </x><year>2013</year><x>.</x></mixed-citation></ref>
<ref id="CIT062"><mixed-citation publication-type="journal"><label>[62]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Shen</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Chen</surname></string-name><x>, </x><string-name><given-names>X.</given-names> <surname>Guan</surname></string-name><x> y </x><string-name><given-names>R. A.</given-names> <surname>Maxion</surname></string-name></person-group><x>, &#x201C;</x><article-title>Performance analysis of multimotion sensor behavior for active smartphone authentication</article-title><x>,&#x201D; </x><source>IEEE Transactions on Information Forensics and Security</source><x>, </x><volume>vol. 13</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>48</fpage><x>&#x2013;</x><lpage>62</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT063"><mixed-citation publication-type="book"><label>[63]</label> <person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Firdausi</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Erwin</surname></string-name><x>, </x><string-name><given-names>A. S.</given-names> <surname>Nugroho</surname></string-name></person-group> <etal>et al.</etal><x>, &#x201C;</x><chapter-title>Analysis of machine learning techniques used in behavior-based malware detection</chapter-title><x>,&#x201D; en </x><source>2010 second international conference on advances in computing, control, and telecommunication technologies</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2010</year><x>, pp. </x><fpage>201</fpage><x>&#x2013;</x><lpage>203</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT064"><mixed-citation publication-type="journal"><label>[64]</label> <person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>P&#x00E9;rez-Bueno</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Garc&#x00ED;a</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Maci&#x00E1;-Fern&#x00E1;ndez</surname></string-name><x> y </x><string-name><given-names>R.</given-names> <surname>Molina</surname></string-name></person-group><x>, &#x201C;</x><article-title>Leveraging a Probabilistic PCA Model to Understand the Multivariate Statistical Network Monitoring Framework for Network Security Anomaly Detection</article-title><x>,&#x201D; </x><source>IEEE/ACM Transactions on Networking</source><x>, </x><year>2022</year><x>.</x></mixed-citation></ref>
<ref id="CIT065"><mixed-citation publication-type="journal"><label>[65]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Ravisankar</surname></string-name><x>, </x><string-name><given-names>V.</given-names> <surname>Ravi</surname></string-name><x>, </x><string-name><given-names>G. R.</given-names> <surname>Rao</surname></string-name><x> e </x><string-name><given-names>I.</given-names> <surname>Bose</surname></string-name></person-group><x>, &#x201C;</x><article-title>Detection of financial statement fraud and feature selection using data mining techniques</article-title><x>,&#x201D; </x><source>Decision support systems</source><x>, </x><volume>vol. 50</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>491</fpage><x>&#x2013;</x><lpage>500</lpage><x>, </x><year>2011</year><x>.</x></mixed-citation></ref>
<ref id="CIT066"><mixed-citation publication-type="book"><label>[66]</label> <person-group person-group-type="author"><string-name><given-names>U.</given-names> <surname>Mahbub</surname></string-name><x> y </x><string-name><given-names>R.</given-names> <surname>Chellappa</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>PATH: person authentication using trace histories</chapter-title><x>,&#x201D; en </x><source>Ubiquitous Computing, Electronics &amp; Mobile Communication Conference (UEMCON), IEEE Annual</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>8</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT067"><mixed-citation publication-type="book"><label>[67]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Giuffrida</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Majdanik</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Conti</surname></string-name><x> y </x><string-name><given-names>H.</given-names> <surname>Bos</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>I sensed it was you: authenticating mobile users with sensor-enhanced keystroke dynamics</chapter-title><x>,&#x201D; en </x><source>International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment</source><x>, </x><publisher-name>Springer</publisher-name><x>, </x><year>2014</year><x>, pp. </x><fpage>92</fpage><x>&#x2013;</x><lpage>111</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT068"><mixed-citation publication-type="journal"><label>[68]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>H.</given-names> <surname>Hu</surname></string-name><x> y </x><string-name><given-names>G.</given-names> <surname>Zhou</surname></string-name></person-group><x>, &#x201C;</x><article-title>Using data augmentation in continuous authentication on smartphones</article-title><x>,&#x201D; </x><source>IEEE Internet of Things Journal</source><x>, </x><volume>vol. 6</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>628</fpage><x>&#x2013;</x><lpage>640</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT069"><mixed-citation publication-type="book"><label>[69]</label> <person-group person-group-type="author"><string-name><given-names>H. T.</given-names> <surname>Nguyen</surname></string-name><x>, </x><string-name><given-names>C. L.</given-names> <surname>Walker</surname></string-name><x> y </x><string-name><given-names>E. A.</given-names> <surname>Walker</surname></string-name></person-group><x>, </x><source>A first course in fuzzy logic</source><x>. </x><publisher-name>CRC press</publisher-name><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT070"><mixed-citation publication-type="book"><label>[70]</label> <person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Brosso</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>La Neve</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Bressan</surname></string-name><x> y </x><string-name><given-names>W. V.</given-names> <surname>Ruggiero</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>A continuous authentication system based on user behavior analysis</chapter-title><x>,&#x201D; en </x><source>Availability, Reliability, and Security, 2010. ARES&#x2019;10 International Conference on</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2010</year><x>, pp. </x><fpage>380</fpage><x>&#x2013;</x><lpage>385</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT071"><mixed-citation publication-type="book"><target target-type="page" id="pges_143"/><label>[71]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Cai</surname></string-name><x>, </x><string-name><given-names>H.</given-names> <surname>Jiang</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Chen</surname></string-name><x> y </x><string-name><given-names>M.-C.</given-names> <surname>Huang</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Online learning classifier based behavioral biometrie authentication</chapter-title><x>,&#x201D; en </x><source>2018 IEEE 15th International Conference on Wearable and Implantable Body Sensor Networks (BSN)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2018</year><x>, pp. </x><fpage>62</fpage><x>&#x2013;</x><lpage>65</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT072"><mixed-citation publication-type="journal"><label>[72]</label> <person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Hern&#x00E1;ndez-&#x00C1;lvarez</surname></string-name><x>, </x><string-name><given-names>J. M.</given-names> <surname>De Fuentes</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Gonz&#x00E1;lez-Manzano</surname></string-name><x> y </x><string-name><given-names>L. H.</given-names> <surname>Encinas</surname></string-name></person-group><x>, &#x201C;</x><article-title>SmartCAMPP-Smartphone-based continuous authentication leveraging motion sensors with privacy preservation</article-title><x>,&#x201D; </x><source>Pattern Recognition Letters</source><x>, </x><volume>vol. 147</volume><x>, pp. </x><fpage>189</fpage><x>&#x2013;</x><lpage>196</lpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT073"><mixed-citation publication-type="journal"><label>[73]</label> <person-group person-group-type="author"><string-name><given-names>J. M.</given-names> <surname>de Fuentes</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Gonzalez-Manzano</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Ribagorda</surname></string-name></person-group><x>, &#x201C;</x><article-title>Secure and Usable User-in-a-Context Continuous Authentication in Smartphones Leveraging Non-Assisted Sensors</article-title><x>,&#x201D; </x><source>Sensors</source><x>, </x><volume>vol. 18</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, p. </x><fpage>1219</fpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT074"><mixed-citation publication-type="book"><label>[74]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Liu</surname></string-name><x> y </x><string-name><given-names>J.</given-names> <surname>He</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Access control to web pages based on user browsing behavior</chapter-title><x>,&#x201D; en </x><source>Communication Software and Networks (ICCSN), 2017 IEEE 9th International Conference on</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>1016</fpage><x>&#x2013;</x><lpage>1020</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT075"><mixed-citation publication-type="book"><label>[75]</label> <person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Gomi</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Yamaguchi</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Tsubouchi</surname></string-name><x> y </x><string-name><given-names>N.</given-names> <surname>Sasaya</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Continuous Authentication System Using Online Activities</chapter-title><x>,&#x201D; en </x><source>2018 17th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/12th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2018</year><x>, pp. </x><fpage>522</fpage><x>&#x2013;</x><lpage>532</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT076"><mixed-citation publication-type="book"><label>[76]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Zhao</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Yan</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Jiang</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Authenticating Web User&#x2019;s Identity through Browsing Sequences Modeling</chapter-title><x>,&#x201D; en </x><source>Data Mining Workshops (ICDMW), 2016 IEEE 16th International Conference on</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>335</fpage><x>&#x2013;</x><lpage>342</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT077"><mixed-citation publication-type="book"><label>[77]</label> <person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Molloy</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Dickens</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Morisset</surname></string-name><x>, </x><string-name><given-names>P.-C.</given-names> <surname>Cheng</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Lobo</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Russo</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Risk-based security decisions under uncertainty</chapter-title><x>,&#x201D; en </x><source>Proceedings of the second ACM conference on Data and Application Security and Privacy</source><x>, </x><publisher-name>ACM</publisher-name><x>, </x><year>2012</year><x>, pp. </x><fpage>157</fpage><x>&#x2013;</x><lpage>168</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT078"><mixed-citation publication-type="book"><label>[78]</label> <person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Lu</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Sagduyu</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Risk assessment based access control with text and behavior analysis for document management</chapter-title><x>,&#x201D; en </x><source>Military Communications Conference, MILCOM 2016-2016 IEEE</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>37</fpage><x>&#x2013;</x><lpage>42</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT079"><mixed-citation publication-type="journal"><label>[79]</label> <person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Ro&#x017E;ac</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Sernec</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Ko&#x0161;ir</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Kos</surname></string-name></person-group><x>, &#x201C;</x><article-title>User behavior analysis based on Identity management systems&#x2019; log data</article-title><x>,&#x201D; </x><source>Machine learning</source><x>, </x><volume>vol. 143</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>5</lpage><x>, </x><year>2012</year><x>.</x></mixed-citation></ref>
<ref id="CIT080"><mixed-citation publication-type="book"><label>[80]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Misbahuddin</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Bindhumadhava</surname></string-name><x> y </x><string-name><given-names>B.</given-names> <surname>Dheeptha</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Design of a risk based authentication system using machine learning techniques</chapter-title><x>,&#x201D; en </x><source>2017 IEEE SmartWorld, Ubiquitous Intelligence &amp; Computing, Advanced &amp; Trusted Computed, Scalable Computing &amp; Communications, Cloud &amp; Big Data Computing, Internet of People and Smart City Innovation</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>6</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT081"><mixed-citation publication-type="book"><target target-type="page" id="pges_144"/><label>[81]</label> <person-group person-group-type="author"><string-name><given-names>R. S.</given-names> <surname>Gaines</surname></string-name><x>, </x><string-name><given-names>W.</given-names> <surname>Lisowski</surname></string-name><x>, </x><string-name><given-names>S. J.</given-names> <surname>Press</surname></string-name><x> y </x><string-name><given-names>N.</given-names> <surname>Shapiro</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Authentication by keystroke timing: Some preliminary results</chapter-title><x>,&#x201D; </x><publisher-name>Rand Corp Santa Monica CA, inf. t&#x00E9;c.</publisher-name><x>, </x><year>1980</year><x>.</x></mixed-citation></ref>
<ref id="CIT082"><mixed-citation publication-type="journal"><label>[82]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Bleha</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Slivinsky</surname></string-name><x> y </x><string-name><given-names>B.</given-names> <surname>Hussien</surname></string-name></person-group><x>, &#x201C;</x><article-title>Computer-access security systems using keystroke dynamics</article-title><x>,&#x201D; </x><source>IEEE Transactions on pattern analysis and machine intelligence</source><x>, </x><volume>vol. 12</volume><x>, </x><issue>n.<sup>o</sup> 12</issue><x>, pp. </x><fpage>1217</fpage><x>&#x2013;</x><lpage>1222</lpage><x>, </x><year>1990</year><x>.</x></mixed-citation></ref>
<ref id="CIT083"><mixed-citation publication-type="journal"><label>[83]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Cho</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Han</surname></string-name><x>, </x><string-name><given-names>D. H.</given-names> <surname>Han</surname></string-name><x> y </x><string-name><given-names>H.-I.</given-names> <surname>Kim</surname></string-name></person-group><x>, &#x201C;</x><article-title>Web-based keystroke dynamics identity verification using neural network</article-title><x>,&#x201D; </x><source>Journal of organizational computing and electronic commerce</source><x>, </x><volume>vol. 10</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>295</fpage><x>&#x2013;</x><lpage>307</lpage><x>, </x><year>2000</year><x>.</x></mixed-citation></ref>
<ref id="CIT084"><mixed-citation publication-type="journal"><label>[84]</label> <person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>Monrose</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Rubin</surname></string-name></person-group><x>, &#x201C;</x><article-title>Authentication via keystroke dynamics</article-title><x>,&#x201D; en </x><source>Proceedings of the 4th ACM Conference on Computer and Communications Security</source><x>, </x><year>1997</year><x>, pp. </x><fpage>48</fpage><x>&#x2013;</x><lpage>56</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT085"><mixed-citation publication-type="book"><label>[85]</label> <person-group person-group-type="author"><string-name><given-names>K. S.</given-names> <surname>Killourhy</surname></string-name><x> y </x><string-name><given-names>R. A.</given-names> <surname>Maxion</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Comparing anomaly-detection algorithms for keystroke dynamics</chapter-title><x>,&#x201D; en </x><source>2009 IEEEIIFIP International Conference on Dependable Systems &amp; Networks</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2009</year><x>, pp. </x><fpage>125</fpage><x>&#x2013;</x><lpage>134</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT086"><mixed-citation publication-type="journal"><label>[86]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Alsultan</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Warwick</surname></string-name><x> y </x><string-name><given-names>H.</given-names> <surname>Wei</surname></string-name></person-group><x>, &#x201C;</x><article-title>Non-conventional keystroke dynamics for user authentication</article-title><x>,&#x201D; </x><source>Pattern Recognition Letters</source><x>, </x><volume>vol. 89</volume><x>, pp. </x><fpage>53</fpage><x>&#x2013;</x><lpage>59</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT087"><mixed-citation publication-type="journal"><label>[87]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Kim</surname></string-name><x>, </x><string-name><given-names>H.</given-names> <surname>Kim</surname></string-name><x> y </x><string-name><given-names>P.</given-names> <surname>Kang</surname></string-name></person-group><x>, &#x201C;</x><article-title>Keystroke dynamics-based user authentication using freely typed text based on user-adaptive feature extraction and novelty detection</article-title><x>,&#x201D; </x><source>Applied Soft Computing</source><x>, </x><volume>vol. 62</volume><x>, pp. </x><fpage>1077</fpage><x>&#x2013;</x><lpage>1087</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT088"><mixed-citation publication-type="journal"><label>[88]</label> <person-group person-group-type="author"><string-name><given-names>K. S.</given-names> <surname>Balagani</surname></string-name><x>, </x><string-name><given-names>V. V.</given-names> <surname>Phoha</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Ray</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Phoha</surname></string-name></person-group><x>, &#x201C;</x><article-title>On the discriminability of keystroke feature vectors used in fixed text keystroke authentication</article-title><x>,&#x201D; </x><source>Pattern Recognition Letters</source><x>, </x><volume>vol. 32</volume><x>, </x><issue>n.<sup>o</sup> 7</issue><x>, pp. </x><fpage>1070</fpage><x>&#x2013;</x><lpage>1080</lpage><x>, </x><year>2011</year><x>.</x></mixed-citation></ref>
<ref id="CIT089"><mixed-citation publication-type="journal"><label>[89]</label> <person-group person-group-type="author"><string-name><given-names>O.</given-names> <surname>Alpar</surname></string-name></person-group><x>, &#x201C;</x><article-title>Frequency spectrograms for biometric keystroke authentication using neural network based classifier</article-title><x>,&#x201D; </x><source>Knowledge-Based Systems</source><x>, </x><volume>vol. 116</volume><x>, pp. </x><fpage>163</fpage><x>&#x2013;</x><lpage>171</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT090"><mixed-citation publication-type="journal"><label>[90]</label> <person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Xiaofeng</surname></string-name><x>, </x><string-name><given-names>Z.</given-names> <surname>Shengfei</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Shengwei</surname></string-name></person-group><x>, &#x201C;</x><article-title>Continuous authentication by free-text keystroke based on CNN plus RNN</article-title><x>,&#x201D; </x><source>Procedia computer science</source><x>, </x><volume>vol. 147</volume><x>, pp. </x><fpage>314</fpage><x>&#x2013;</x><lpage>318</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT091"><mixed-citation publication-type="book"><label>[91]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Sun</surname></string-name><x>, </x><string-name><given-names>H.</given-names> <surname>Ceker</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Upadhyaya</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Shared keystroke dataset for continuous authentication</chapter-title><x>,&#x201D; en </x><source>2016 IEEE International Workshop on Information Forensics and Security (WIFS)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2016</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>6</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT092"><mixed-citation publication-type="book"><target target-type="page" id="pges_145"/><label>[92]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Huang</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Hou</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Schuckers</surname></string-name><x>, </x><string-name><given-names>T.</given-names> <surname>Law</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Sherwin</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Benchmarking keystroke authentication algorithms</chapter-title><x>,&#x201D; en </x><source>2017 IEEE Workshop on Information Forensics and Security (WIFS)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>6</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT093"><mixed-citation publication-type="journal"><label>[93]</label> <person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Ayotte</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Banavar</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Hou</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Schuckers</surname></string-name></person-group><x>, &#x201C;</x><article-title>Fast Free-text Authentication via Instance-based Keystroke Dynamics</article-title><x>,&#x201D; </x><source>IEEE Transactions on Biometrics, Behavior, and Identity Science</source><x>, </x><volume>vol. 2</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>377</fpage><x>&#x2013;</x><lpage>387</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT094"><mixed-citation publication-type="journal"><label>[94]</label> <person-group person-group-type="author"><string-name><given-names>R. A.</given-names> <surname>Everitt</surname></string-name><x> y </x><string-name><given-names>P. W.</given-names> <surname>McOwan</surname></string-name></person-group><x>, &#x201C;</x><article-title>Java-based internet biometric authentication system</article-title><x>,&#x201D; </x><source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source><x>, </x><volume>vol. 25</volume><x>, </x><issue>n.<sup>o</sup> 9</issue><x>, pp. </x><fpage>1166</fpage><x>&#x2013;</x><lpage>1172</lpage><x>, </x><year>2003</year><x>.</x></mixed-citation></ref>
<ref id="CIT095"><mixed-citation publication-type="journal"><label>[95]</label> <person-group person-group-type="author"><string-name><given-names>A. A. E.</given-names> <surname>Ahmed</surname></string-name><x> e </x><string-name><given-names>I.</given-names> <surname>Traore</surname></string-name></person-group><x>, &#x201C;</x><article-title>A new biometric technology based on mouse dynamics</article-title><x>,&#x201D; </x><source>IEEE Transactions on dependable and secure computing</source><x>, </x><volume>vol. 4</volume><x>, </x><issue>n.<sup>o</sup> 3</issue><x>, pp. </x><fpage>165</fpage><x>&#x2013;</x><lpage>179</lpage><x>, </x><year>2007</year><x>.</x></mixed-citation></ref>
<ref id="CIT096"><mixed-citation publication-type="journal"><label>[96]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Chong</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Elovici</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Binder</surname></string-name></person-group><x>, &#x201C;</x><article-title>User authentication based on mouse dynamics using deep neural networks: A comprehensive study</article-title><x>,&#x201D; </x><source>IEEE Transactions on Information Forensics and Security</source><x>, </x><volume>vol. 15</volume><x>, pp. </x><fpage>1086</fpage><x>&#x2013;</x><lpage>1101</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT097"><mixed-citation publication-type="journal"><label>[97]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Shen</surname></string-name><x>, </x><string-name><given-names>Z.</given-names> <surname>Cai</surname></string-name><x>, </x><string-name><given-names>X.</given-names> <surname>Guan</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Du</surname></string-name><x> y </x><string-name><given-names>R. A.</given-names> <surname>Maxion</surname></string-name></person-group><x>, &#x201C;</x><article-title>User authentication through mouse dynamics</article-title><x>,&#x201D; </x><source>IEEE Transactions on Information Forensics and Security</source><x>, </x><volume>vol. 8</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>16</fpage><x>&#x2013;</x><lpage>30</lpage><x>, </x><year>2012</year><x>.</x></mixed-citation></ref>
<ref id="CIT098"><mixed-citation publication-type="book"><label>[98]</label> <person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Qin</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Fu</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Amariucai</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Qiao</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Guan</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>MAUSPAD: Mouse-based Authentication Using Segmentation-based, Progress-Adjusted DTW</chapter-title><x>,&#x201D; en </x><source>2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2020</year><x>, pp. </x><fpage>425</fpage><x>&#x2013;</x><lpage>433</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT099"><mixed-citation publication-type="journal"><label>[99]</label> <person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Hu</surname></string-name><x>, </x><string-name><given-names>W.</given-names> <surname>Niu</surname></string-name><x>, </x><string-name><given-names>X.</given-names> <surname>Zhang</surname></string-name><x>, </x><string-name><given-names>X.</given-names> <surname>Liu</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Lu</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Liu</surname></string-name></person-group><x>, &#x201C;</x><article-title>An insider threat detection approach based on mouse dynamics and deep learning</article-title><x>,&#x201D; </x><source>Security and Communication Networks</source><x>, </x><volume>vol. 2019</volume><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT0100"><mixed-citation publication-type="journal"><label>[100]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Ross</surname></string-name><x> y </x><string-name><given-names>A.</given-names> <surname>Jain</surname></string-name></person-group><x>, &#x201C;</x><article-title>Information fusion in biometrics</article-title><x>,&#x201D; </x><source>Pattern recognition letters</source><x>, </x><volume>vol. 24</volume><x>, </x><issue>n.<sup>o</sup> 13</issue><x>, pp. </x><fpage>2115</fpage><x>&#x2013;</x><lpage>2125</lpage><x>, </x><year>2003</year><x>.</x></mixed-citation></ref>
<ref id="CIT0101"><mixed-citation publication-type="journal"><label>[101]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Mondal</surname></string-name><x> y </x><string-name><given-names>P.</given-names> <surname>Bours</surname></string-name></person-group><x>, &#x201C;</x><article-title>A study on continuous authentication using a combination of keystroke and mouse biometrics</article-title><x>,&#x201D; </x><source>Neurocomputing</source><x>, </x><volume>vol. 230</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>22</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT0102"><mixed-citation publication-type="journal"><label>[102]</label> <person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Fridman</surname></string-name></person-group> <etal>et al.</etal><x>, &#x201C;</x><article-title>Multi-modal decision fusion for continuous authentication</article-title><x>,&#x201D; </x><source>Computers &amp; Electrical Engineering</source><x>, </x><volume>vol. 41</volume><x>, pp. </x><fpage>142</fpage><x>&#x2013;</x><lpage>156</lpage><x>, </x><year>2015</year><x>.</x></mixed-citation></ref>
<ref id="CIT0103"><mixed-citation publication-type="journal"><target target-type="page" id="pges_146"/><label>[103]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Salmeron-Majadas</surname></string-name><x>, </x><string-name><given-names>R. S.</given-names> <surname>Baker</surname></string-name><x>, </x><string-name><given-names>O. C.</given-names> <surname>Santos</surname></string-name><x> y </x><string-name><given-names>J. G.</given-names> <surname>Boticario</surname></string-name></person-group><x>, &#x201C;</x><article-title>A machine learning approach to leverage individual keyboard and mouse interaction behavior from multiple users in real-world learning scenarios</article-title><x>,&#x201D; </x><source>IEEE Access</source><x>, </x><volume>vol. 6</volume><x>, pp. </x><fpage>39 154</fpage><x>&#x2013;</x><lpage>39 179</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT0104"><mixed-citation publication-type="journal"><label>[104]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Solano</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Camacho</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Correa</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Deiro</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Vargas</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Ochoa</surname></string-name></person-group><x>, &#x201C;</x><article-title>Combining behavioral biometrics and session context analytics to enhance risk-based static authentication in web applications</article-title><x>,&#x201D; </x><source>International Journal of Information Security</source><x>, </x><volume>vol. 20</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>181</fpage><x>&#x2013;</x><lpage>197</lpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT0105"><mixed-citation publication-type="journal"><label>[105]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Harilal</surname></string-name></person-group> <etal>et al.</etal><x>, &#x201C;</x><article-title>The Wolf Of SUTD (TWOS): A Dataset of Malicious Insider Threat Behavior Based on a Gamified Competition.</article-title><x>,&#x201D; </x><source>J. Wirel. Mob. Networks Ubiquitous Comput. Dependable Appl.</source><x>, </x><volume>vol. 9</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>54</fpage><x>&#x2013;</x><lpage>85</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT0106"><mixed-citation publication-type="journal"><label>[106]</label> <person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Wang</surname></string-name><x>, </x><string-name><given-names>Q.</given-names> <surname>Zheng</surname></string-name><x>, </x><string-name><given-names>K.</given-names> <surname>Zheng</surname></string-name><x> y </x><string-name><given-names>T.</given-names> <surname>Wu</surname></string-name></person-group><x>, &#x201C;</x><article-title>User Authentication Method Based on MKL for Keystroke and Mouse Behavioral Feature Fusion</article-title><x>,&#x201D; </x><source>Security and Communication Networks</source><x>, </x><volume>vol. 2020</volume><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0107"><mixed-citation publication-type="journal"><label>[107]</label> <person-group person-group-type="author"><string-name><given-names>K. O.</given-names> <surname>Bailey</surname></string-name><x>, </x><string-name><given-names>J. S.</given-names> <surname>Okolica</surname></string-name><x> y </x><string-name><given-names>G. L.</given-names> <surname>Peterson</surname></string-name></person-group><x>, &#x201C;</x><article-title>User identification and authentication using multi-modal behavioral biometrics</article-title><x>,&#x201D; </x><source>Computers &amp; Security</source><x>, </x><volume>vol. 43</volume><x>, pp. </x><fpage>77</fpage><x>&#x2013;</x><lpage>89</lpage><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT0108"><mixed-citation publication-type="journal"><label>[108]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Zou</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Deng</surname></string-name><x> y </x><string-name><given-names>G.</given-names> <surname>Zhou</surname></string-name></person-group><x>, &#x201C;</x><article-title>Using feature fusion strategies in continuous authentication on smartphones</article-title><x>,&#x201D; </x><source>IEEE Internet Computing</source><x>, </x><volume>vol. 24</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>49</fpage><x>&#x2013;</x><lpage>56</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0109"><mixed-citation publication-type="book"><label>[109]</label> <person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Traore</surname></string-name><x>, </x><string-name><given-names>I.</given-names> <surname>Woungang</surname></string-name><x>, </x><string-name><given-names>M. S.</given-names> <surname>Obaidat</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Nakkabi</surname></string-name><x> e </x><string-name><given-names>I.</given-names> <surname>Lai</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Combining mouse and keystroke dynamics biometrics for risk-based authentication in web environments</chapter-title><x>,&#x201D; en </x><source>2012 fourth international conference on digital home</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2012</year><x>, pp. </x><fpage>138</fpage><x>&#x2013;</x><lpage>145</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0110"><mixed-citation publication-type="journal"><label>[110]</label> <person-group person-group-type="author"><string-name><given-names>A. G.</given-names> <surname>Mart&#x00ED;n</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Fern&#x00E1;ndez-Isabel</surname></string-name><x> e </x><string-name><given-names>I. M.</given-names> <surname>de Diego</surname></string-name></person-group><x>, &#x201C;</x><article-title>An approach to detect user behaviour anomalies within identity federations</article-title><x>,&#x201D; </x><source>Computers &amp; Security</source><x>, </x><volume>vol. 1-18</volume><x>, p. </x><fpage>102356</fpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT0111"><mixed-citation publication-type="journal"><label>[111]</label> <person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Hern&#x00E1;ndez-&#x00C1;lvarez</surname></string-name><x>, </x><string-name><given-names>J. M.</given-names> <surname>de Fuentes</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Gonz&#x00E1;lez-Manzano</surname></string-name><x> y </x><string-name><given-names>L. Hern&#x00E1;ndez</given-names> <surname>Encinas</surname></string-name></person-group><x>, &#x201C;</x><article-title>Privacy-preserving sensor-based continuous authentication and user profiling: a review</article-title><x>,&#x201D; </x><source>Sensors</source><x>, </x><volume>vol. 21</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>92</fpage><x>&#x2013;</x><lpage>115</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0112"><mixed-citation publication-type="journal"><label>[112]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Vastel</surname></string-name><x>, </x><string-name><given-names>P.</given-names> <surname>Laperdrix</surname></string-name><x>, </x><string-name><given-names>W.</given-names> <surname>Rudametkin</surname></string-name><x> y </x><string-name><given-names>R.</given-names> <surname>Rouvoy</surname></string-name></person-group><x>, &#x201C;</x><article-title>Fp-scanner: The privacy implications of browser fingerprint inconsistencies</article-title><x>,&#x201D; en </x><source>27th {USENIX} Security Symposium ({USENIX} Security 18)</source><x>, </x><year>2018</year><x>, pp. </x><fpage>135</fpage><x>&#x2013;</x><lpage>150</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0113"><mixed-citation publication-type="journal"><target target-type="page" id="pges_147"/><label>[113]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name></person-group><x>, &#x201C;</x><article-title>Identifying, authenticating and authorizing smart objects and end users to cloud services in Internet of Things</article-title><x>,&#x201D; </x><source>Computers &amp; Security</source><x>, </x><volume>vol. 77</volume><x>, pp. </x><fpage>595</fpage><x>&#x2013;</x><lpage>611</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT0114"><mixed-citation publication-type="journal"><label>[114]</label> <person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Mag&#x00E1;n-Carri&#x00F3;n</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Camacho</surname></string-name><x>, </x><string-name><given-names>G.</given-names> <surname>Maci&#x00E1;-Fern&#x00E1;ndez</surname></string-name><x> y </x><string-name><given-names>&#x00C1;.</given-names> <surname>Ru&#x00ED;z-Zafra</surname></string-name></person-group><x>, &#x201C;</x><article-title>Multivariate Statistical Network Monitoring-Sensor: An effective tool for real-time monitoring and anomaly detection in complex networks and systems</article-title><x>,&#x201D; </x><source>International Journal of Distributed Sensor Networks</source><x>, </x><volume>vol. 16</volume><x>, </x><issue>n.<sup>o</sup> 5</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>14</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0115"><mixed-citation publication-type="journal"><label>[115]</label> <person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>G&#x00F3;mez-Boix</surname></string-name><x>, </x><string-name><given-names>P.</given-names> <surname>Laperdrix</surname></string-name><x> y </x><string-name><given-names>B.</given-names> <surname>Baudry</surname></string-name></person-group><x>, &#x201C;</x><article-title>Hiding in the crowd: an analysis of the effectiveness of browser fingerprinting at large scale</article-title><x>,&#x201D; en </x><source>Proceedings of the 2018 world wide web conference</source><x>, </x><year>2018</year><x>, pp. </x><fpage>309</fpage><x>&#x2013;</x><lpage>318</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0116"><mixed-citation publication-type="journal"><label>[116]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Laperdrix</surname></string-name><x>, </x><string-name><given-names>N.</given-names> <surname>Bielova</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Baudry</surname></string-name><x> y </x><string-name><given-names>G.</given-names> <surname>Avoine</surname></string-name></person-group><x>, &#x201C;</x><article-title>Browser fingerprinting: A survey</article-title><x>,&#x201D; </x><source>ACM Transactions on the Web (TWEB)</source><x>, </x><volume>vol. 14</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>33</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0117"><mixed-citation publication-type="journal"><label>[117]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Abuhamad</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Abusnaina</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Nyang</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Mohaisen</surname></string-name></person-group><x>, &#x201C;</x><article-title>Sensor-based Continuous Authentication of Smartphones&#x2019; Users Using Behavioral Biometrics: A Contemporary Survey</article-title><x>,&#x201D; </x><source>IEEE Internet of Things Journal</source><x>, </x><volume>vol. 8</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>65</fpage><x>&#x2013;</x><lpage>84</lpage><x>, </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0118"><mixed-citation publication-type="journal"><label>[118]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Bhatnagar</surname></string-name><x>, </x><string-name><given-names>R. K.</given-names> <surname>Jain</surname></string-name></person-group> y <x>, &#x201C;</x><article-title>A Survey on Behavioral Biometric Techniques: Mouse vs Keyboard Dynamics</article-title><x>,&#x201D; </x><source>Int. J. Comput. Appl</source><x>, </x><volume>vol. 975</volume><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>5</lpage><x>, </x><year>2013</year><x>.</x></mixed-citation></ref>
<ref id="CIT0119"><mixed-citation publication-type="book"><label>[119]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Chio</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Freeman</surname></string-name></person-group><x>, </x><source>Machine learning and security: Protecting systems with data and algorithms</source>. <publisher-name>O&#x2019;Reilly Media, Inc.&quot;</publisher-name><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT0120"><mixed-citation publication-type="journal"><label>[120]</label> <person-group person-group-type="author"><string-name><given-names>V.</given-names> <surname>Kozitsin</surname></string-name><x>, </x><string-name><given-names>I.</given-names> <surname>Katser</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Lakontsev</surname></string-name></person-group><x>, &#x201C;</x><article-title>Online Forecasting and Anomaly Detection Based on the ARIMA Model</article-title><x>,&#x201D; </x><source>Applied Sciences</source><x>, </x><volume>vol. 11</volume><x>, </x><issue>n.<sup>o</sup> 7</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>13</lpage><x>, </x><year>2021</year><x>.</x></mixed-citation></ref>
<ref id="CIT0121"><mixed-citation publication-type="journal"><label>[121]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Hariri</surname></string-name><x>, </x><string-name><given-names>M. C.</given-names> <surname>Kind</surname></string-name><x> y </x><string-name><given-names>R. J.</given-names> <surname>Brunner</surname></string-name></person-group><x>, &#x201C;</x><article-title>Extended isolation forest</article-title><x>,&#x201D; </x><source>IEEE Transactions on Knowledge and Data Engineering</source><x>, </x><volume>vol. 33</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>1479</fpage><x>&#x2013;</x><lpage>1489</lpage><x>, </x><year>2019</year><x>.</x></mixed-citation></ref>
<ref id="CIT0122"><mixed-citation publication-type="journal"><label>[122]</label> <person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Cheng</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Zou</surname></string-name><x> y </x><string-name><given-names>J.</given-names> <surname>Dong</surname></string-name></person-group><x>, &#x201C;</x><article-title>Outlier detection using isolation forest and local outlier factor</article-title><x>,&#x201D; en </x><source>Proceedings of the conference on research in adaptive and convergent systems</source><x>, </x><year>2019</year><x>, pp. </x><fpage>161</fpage><x>&#x2013;</x><lpage>168</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0123"><mixed-citation publication-type="journal"><label>[123]</label> <person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Schubert</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Sander</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Ester</surname></string-name><x>, </x><string-name><given-names>H. P.</given-names> <surname>Kriegel</surname></string-name><x> y </x><string-name><given-names>X.</given-names> <surname>Xu</surname></string-name></person-group><x>, &#x201C;</x><article-title>DBSCAN revisited, revisited: why and how you should (still) use DBSCAN</article-title><x>,&#x201D; </x><source>ACM Transactions on Database Systems (TODS)</source><x>, </x><volume>vol. 42</volume><x>, </x><issue>n.<sup>o</sup> 3</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>21</lpage><x>, </x><year>2017</year><x>.</x></mixed-citation></ref>
<ref id="CIT0124"><mixed-citation publication-type="book"><target target-type="page" id="pges_148"/><label>[124]</label> <person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Shimshon</surname></string-name><x>, </x><string-name><given-names>R.</given-names> <surname>Moskovitch</surname></string-name><x>, </x><string-name><given-names>L.</given-names> <surname>Rokach</surname></string-name><x> e </x><string-name><given-names>Y.</given-names> <surname>Elovici</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Clustering di-graphs for continuously verifying users according to their typing patterns</chapter-title><x>,&#x201D; en </x><source>2010 IEEE 26-th Convention of Electrical and Electronics Engineers in Israel</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2010</year><x>, pp. </x><fpage>445</fpage><x>&#x2013;</x><lpage>449</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0125"><mixed-citation publication-type="book"><label>[125]</label> <person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Tang</surname></string-name><x>, </x><string-name><given-names>Q.</given-names> <surname>Hu</surname></string-name><x> y </x><string-name><given-names>D.</given-names> <surname>Lin</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Reducing false positives of user-to-entity first-access alerts for user behavior analytics</chapter-title><x>,&#x201D; en </x><source>2017 IEEE International Conference on Data Mining Workshops (ICDMW)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2017</year><x>, pp. </x><fpage>804</fpage><x>&#x2013;</x><lpage>811</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0126"><mixed-citation publication-type="book"><label>[126]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Yan</surname></string-name><x>, </x><string-name><given-names>Y.</given-names> <surname>Qi</surname></string-name><x>, </x><string-name><given-names>Q.</given-names> <surname>Rao</surname></string-name><x> y </x><string-name><given-names>S.</given-names> <surname>Qi</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Towards a user-friendly and secure hand shaking authentication for smartphones</chapter-title><x>,&#x201D; en </x><source>2018 17th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/12th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE)</source><x>, </x><publisher-name>IEEE</publisher-name><x>, </x><year>2018</year><x>, pp. </x><fpage>1170</fpage><x>&#x2013;</x><lpage>1179</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0127"><mixed-citation publication-type="journal"><label>[127]</label> <person-group person-group-type="author"><string-name><given-names>Z. C.</given-names> <surname>Lipton</surname></string-name><x>, </x><string-name><given-names>C.</given-names> <surname>Elkan</surname></string-name><x> y </x><string-name><given-names>B.</given-names> <surname>Narayanaswamy</surname></string-name></person-group><x>, &#x201C;</x><article-title>Thresholding classifiers to maximize F1 score</article-title><x>,&#x201D; </x><source>Machine Learning and Knowledge Discovery in Databases</source><x>, </x><volume>vol. 8725</volume><x>, pp. </x><fpage>225</fpage><x>&#x2013;</x><lpage>239</lpage><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT0128"><mixed-citation publication-type="journal"><label>[128]</label> <person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Eberz</surname></string-name><x>, </x><string-name><given-names>K. B.</given-names> <surname>Rasmussen</surname></string-name><x>, </x><string-name><given-names>V.</given-names> <surname>Lenders</surname></string-name><x> e </x><string-name><given-names>I.</given-names> <surname>Martinovic</surname></string-name></person-group><x>, &#x201C;</x><article-title>Evaluating behavioral biometrics for continuous authentication: Challenges and metrics</article-title><x>,&#x201D; en </x><source>Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security</source><x>, </x><year>2017</year><x>, pp. </x><fpage>386</fpage><x>&#x2013;</x><lpage>399</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0129"><mixed-citation publication-type="journal"><label>[129]</label> <person-group person-group-type="author"><string-name><given-names>I. M.</given-names> <surname>De Diego</surname></string-name><x>, </x><string-name><given-names>A. R.</given-names> <surname>Redondo</surname></string-name><x>, </x><string-name><given-names>R. R.</given-names> <surname>Fern&#x00E1;ndez</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Navarro</surname></string-name><x> y </x><string-name><given-names>J. M.</given-names> <surname>Moguerza</surname></string-name></person-group><x>, &#x201C;</x><article-title>General Performance Score for classification problems</article-title><x>,&#x201D; </x><source>Applied Intelligence</source><x>, </x><year>2022</year><x>.</x></mixed-citation></ref>
<ref id="CIT0130"><mixed-citation publication-type="journal"><label>[130]</label> <person-group person-group-type="author"><string-name><given-names>A. G.</given-names> <surname>Mart&#x00ED;n</surname></string-name><x>, </x><string-name><given-names>I. M.</given-names> <surname>de Diego</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Fern&#x00E1;ndez-Isabel</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Beltr&#x00E1;n</surname></string-name><x> y </x><string-name><given-names>R. R.</given-names> <surname>Fern&#x00E1;ndez</surname></string-name></person-group><x>, &#x201C;</x><article-title>Combining user behavioural information at the feature level to enhance continuous authentication systems</article-title><x>,&#x201D; </x><source>Knowledge-Based Systems</source><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>13</lpage><x>, </x><year>2022</year><x>.</x></mixed-citation></ref>
<ref id="CIT0131"><mixed-citation publication-type="journal"><label>[131]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Sun</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Li</surname></string-name><x>, </x><string-name><given-names>J.</given-names> <surname>Liu</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Sun</surname></string-name><x> y </x><string-name><given-names>C.</given-names> <surname>Chow</surname></string-name></person-group><x>, &#x201C;</x><article-title>An improvement of symbolic aggregate approximation distance measure for time series</article-title><x>,&#x201D; </x><source>Neurocomputing</source><x>, </x><volume>vol. 138</volume><x>, pp. </x><fpage>189</fpage><x>&#x2013;</x><lpage>198</lpage><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT0132"><mixed-citation publication-type="journal"><label>[132]</label> <person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Geurts</surname></string-name><x>, </x><string-name><given-names>D.</given-names> <surname>Ernst</surname></string-name><x> y </x><string-name><given-names>L.</given-names> <surname>Wehenkel</surname></string-name></person-group><x>, &#x201C;</x><article-title>Extremely randomized trees</article-title><x>,&#x201D; </x><source>Machine learning</source><x>, </x><volume>vol. 63</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>3</fpage><x>&#x2013;</x><lpage>42</lpage><x>, </x><year>2006</year><x>.</x></mixed-citation></ref>
<ref id="CIT0133"><mixed-citation publication-type="book"><label>[133]</label> <person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>Moosmann</surname></string-name><x>, </x><string-name><given-names>B.</given-names> <surname>Triggs</surname></string-name><x> y </x><string-name><given-names>F.</given-names> <surname>Jurie</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Fast discriminative visual codebooks using randomized clustering forests</chapter-title><x>,&#x201D; en </x><source>Twentieth Annual Conference on Neural Information Processing Systems (NIPS&#x2019;06)</source><x>, </x><publisher-name>MIT Press</publisher-name><x>, </x><year>2006</year><x>, pp. </x><fpage>985</fpage><x>&#x2013;</x><lpage>992</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0134"><mixed-citation publication-type="journal"><target target-type="page" id="pges_149"/><label>[134]</label> <person-group person-group-type="author"><string-name><given-names>M. G.</given-names> <surname>Baydogan</surname></string-name><x> y </x><string-name><given-names>G.</given-names> <surname>Runger</surname></string-name></person-group><x>, &#x201C;</x><article-title>Learning a symbolic representation for multivariate time series classification</article-title><x>,&#x201D; </x><source>Data Mining and Knowledge Discovery</source><x>, </x><volume>vol. 29</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>400</fpage><x>&#x2013;</x><lpage>422</lpage><x>, </x><year>2015</year><x>.</x></mixed-citation></ref>
<ref id="CIT0135"><mixed-citation publication-type="journal"><label>[135]</label> <person-group person-group-type="author"><string-name><given-names>M. P.</given-names> <surname>Van der Loo</surname></string-name></person-group> <etal>et al.</etal><x>, &#x201C;</x><article-title>The stringdist package for approximate string matching.</article-title><x>,&#x201D; </x><source>R J.</source><x>, </x><volume>vol. 6</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>13</lpage><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT0136"><mixed-citation publication-type="journal"><label>[136]</label> <person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Li</surname></string-name><x> y </x><string-name><given-names>N.</given-names> <surname>Homer</surname></string-name></person-group><x>, &#x201C;</x><article-title>A survey of sequence alignment algorithms for next-generation sequencing</article-title><x>,&#x201D; </x><source>Briefings in bioinformatics</source><x>, </x><volume>vol. 11</volume><x>, </x><issue>n.<sup>o</sup> 5</issue><x>, pp. </x><fpage>473</fpage><x>&#x2013;</x><lpage>483</lpage><x>, </x><year>2010</year><x>.</x></mixed-citation></ref>
<ref id="CIT0137"><mixed-citation publication-type="journal"><label>[137]</label> <person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Trapnell</surname></string-name><x> y </x><string-name><given-names>M. C.</given-names> <surname>Schatz</surname></string-name></person-group><x>, &#x201C;</x><article-title>Optimizing data intensive GPGPU computations for DNA sequence alignment</article-title><x>,&#x201D; </x><source>Parallel computing</source><x>, </x><volume>vol. 35</volume><x>, </x><issue>n.<sup>o</sup> 8-9</issue><x>, pp. </x><fpage>429</fpage><x>&#x2013;</x><lpage>440</lpage><x>, </x><year>2009</year><x>.</x></mixed-citation></ref>
<ref id="CIT0138"><mixed-citation publication-type="book"><label>[138]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Cheetham</surname></string-name><x>, </x><string-name><given-names>F.</given-names> <surname>Dehne</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Pitre</surname></string-name><x>, </x><string-name><given-names>A.</given-names> <surname>Rau-Chaplin</surname></string-name><x> y </x><string-name><given-names>P. J.</given-names> <surname>Taillon</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Parallel clustal w for pc clusters</chapter-title><x>,&#x201D; en </x><source>International Conference on Computational Science and Its Applications</source><x>, </x><publisher-name>Springer</publisher-name><x>, </x><year>2003</year><x>, pp. </x><fpage>300</fpage><x>&#x2013;</x><lpage>309</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0139"><mixed-citation publication-type="journal"><label>[139]</label> <person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Huang</surname></string-name><x> y </x><string-name><given-names>K.-M.</given-names> <surname>Chao</surname></string-name></person-group><x>, &#x201C;</x><article-title>A generalized global alignment algorithm</article-title><x>,&#x201D; </x><source>Bioinformatics</source><x>, </x><volume>vol. 19</volume><x>, </x><issue>n.<sup>o</sup> 2</issue><x>, pp. </x><fpage>228</fpage><x>&#x2013;</x><lpage>233</lpage><x>, </x><year>2003</year><x>.</x></mixed-citation></ref>
<ref id="CIT0140"><mixed-citation publication-type="journal"><label>[140]</label> <person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Abdi</surname></string-name></person-group><x>, &#x201C;</x><article-title>Metric multidimensional scaling (MDS): analyzing distance matrices</article-title><x>,&#x201D; </x><source>Encyclopedia of measurement and statistics</source><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>13</lpage><x>, </x><year>2007</year><x>.</x></mixed-citation></ref>
<ref id="CIT0141"><mixed-citation publication-type="journal"><label>[141]</label> <person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>Klinker</surname></string-name></person-group><x>, &#x201C;</x><article-title>Exponential moving average versus moving exponential average</article-title><x>,&#x201D; </x><source>Mathematische Semesterberichte</source><x>, </x><volume>vol. 58</volume><x>, </x><issue>n.<sup>o</sup> 1</issue><x>, pp. </x><fpage>97</fpage><x>&#x2013;</x><lpage>107</lpage><x>, </x><year>2011</year><x>.</x></mixed-citation></ref>
<ref id="CIT0142"><mixed-citation publication-type="book"><label>[142]</label> <source>let&#x2019;s chat</source><x>, </x><ext-link ext-link-type="uri" xlink:href="https://sdelements.github.io/lets-chat">https://sdelements.github.io/lets-chat</ext-link><x>, </x><publisher-name>Visitado</publisher-name>: <date-in-citation>2022-05-04</date-in-citation><x>.</x></mixed-citation></ref>
<ref id="CIT0143"><mixed-citation publication-type="book"><label>[143]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Cantelon</surname></string-name><x>, </x><string-name><given-names>M.</given-names> <surname>Harter</surname></string-name><x>, </x><string-name><given-names>T.</given-names> <surname>Holowaychuk</surname></string-name><x> y </x><string-name><given-names>N.</given-names> <surname>Rajlich</surname></string-name></person-group><x>, </x><source>Node. js in Action</source><x>. </x><publisher-name>Manning Greenwich</publisher-name><x>, </x><year>2014</year><x>.</x></mixed-citation></ref>
<ref id="CIT0144"><mixed-citation publication-type="book"><label>[144]</label> <source>Mongodb</source><x>, </x><ext-link ext-link-type="uri" xlink:href="https://www.mongodb.com/">https://www.mongodb.com/</ext-link><x>, </x><publisher-name>Visitado</publisher-name>: <date-in-citation>2022-05-04</date-in-citation><x>.</x></mixed-citation></ref>
<ref id="CIT0145"><mixed-citation publication-type="journal"><label>[145]</label> <person-group person-group-type="author"><string-name><given-names>L. A.</given-names> <surname>Leiva</surname></string-name><x> y </x><string-name><given-names>R.</given-names> <surname>Viv&#x00F3;</surname></string-name></person-group><x>, &#x201C;</x><article-title>Web browsing behavior analysis and interactive hypervideo</article-title><x>,&#x201D; </x><source>ACM Transactions on the Web (TWEB)</source><x>, </x><volume>vol. 7</volume><x>, </x><issue>n.<sup>o</sup> 4</issue><x>, pp. </x><fpage>1</fpage><x>&#x2013;</x><lpage>28</lpage><x>, </x><year>2013</year><x>.</x></mixed-citation></ref>
<ref id="CIT0146"><mixed-citation publication-type="book"><label>[146]</label> <source>OpenAM</source><x>, </x><ext-link ext-link-type="uri" xlink:href="https://backstage.forgerock.com/docs/openam/13.5/">https://backstage.forgerock.com/docs/openam/13.5/</ext-link><x>, </x><publisher-name>Visitado</publisher-name>: <date-in-citation>2022-05-04</date-in-citation><x>.</x></mixed-citation></ref>
<ref id="CIT0147"><mixed-citation publication-type="journal"><label>[147]</label> <person-group person-group-type="author"><string-name><surname>Mart&#x00ED;n</surname>, <given-names>Alejandro G</given-names></string-name><x> and </x><string-name><surname>Beltr&#x00E1;n</surname>, <given-names>Marta</given-names></string-name><x> and </x><string-name><surname>Fern&#x00E1;ndez-Isabel</surname>, <given-names>Alberto</given-names></string-name><x> and </x><string-name><surname>de Diego</surname>, <given-names>Isaac Mart&#x00ED;n</given-names></string-name></person-group><x>, &#x201C;</x><article-title>Keystroke and Mouse Dynamics for UEBA Dataset, Mendeley Data, v2</article-title><x>,&#x201D; </x><year>2020</year><x>.</x></mixed-citation></ref>
<ref id="CIT0148"><mixed-citation publication-type="journal"><target target-type="page" id="pges_150"/><label>[148]</label> <person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Ho</surname></string-name><x> y </x><string-name><given-names>D.-K.</given-names> <surname>Kang</surname></string-name></person-group><x>, &#x201C;</x><article-title>One-class Na&#x00EF;ve Bayes with duration feature ranking for accurate user authentication using keystroke dynamics</article-title><x>,&#x201D; </x><source>Applied Intelligence</source><x>, </x><volume>vol. 48</volume><x>, </x><issue>n.<sup>o</sup> 6</issue><x>, pp. </x><fpage>1547</fpage><x>&#x2013;</x><lpage>1564</lpage><x>, </x><year>2018</year><x>.</x></mixed-citation></ref>
<ref id="CIT0149"><mixed-citation publication-type="journal"><label>[149]</label> <person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Zhao</surname></string-name></person-group><x>, &#x201C;</x><article-title>Learning user keystroke patterns for authentication</article-title><x>,&#x201D; </x><source>Proceedings of the world academy of science, engineering and technology</source><x>, </x><volume>vol. 14</volume><x>, pp. </x><fpage>65</fpage><x>&#x2013;</x><lpage>70</lpage><x>, </x><year>2006</year><x>.</x></mixed-citation></ref>
<ref id="CIT0150"><mixed-citation publication-type="book"><label>[150]</label> <person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Malkauthekar</surname></string-name></person-group><x>, &#x201C;</x><chapter-title>Analysis of Euclidean distance and Manhattan distance measure in Face recognition</chapter-title><x>,&#x201D; en </x><source>Third International Conference on Computational Intelligence and Information Technology (CIIT 2013)</source><x>, </x><publisher-name>IET</publisher-name><x>, </x><year>2013</year><x>, pp. </x><fpage>503</fpage><x>&#x2013;</x><lpage>507</lpage><x>.</x></mixed-citation></ref>
<ref id="CIT0151"><mixed-citation publication-type="journal"><label>[151]</label> <person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Lodderstedt</surname></string-name><x>, </x><string-name><given-names>S.</given-names> <surname>Dronia</surname></string-name><x> y </x><string-name><given-names>M.</given-names> <surname>Scurtescu</surname></string-name></person-group><x>, </x><source>OAuth 2.0 token revocation</source><x>, </x><year>2013</year><x>.</x><target target-type="page" id="pges_151"/><target target-type="page" id="pges_152"/><target target-type="page" id="pges_153"/></mixed-citation></ref>
</ref-list>
</book-back>
</book>