Identificación de informes de errores de seguridad basados en títulos de informes y datos ruidosos
Mayana Pereira | Scott Christiansen |
---|---|
Ciencia de datos de CELA | Seguridad y confianza del cliente |
Microsoft | Microsoft |
Resumen: La identificación de informes de errores de seguridad (SBR) es un paso fundamental en el ciclo de vida de desarrollo de software. En los enfoques supervisados basados en aprendizaje automático, es habitual suponer que hay disponibles informes de errores completos para entrenamiento y que sus etiquetas están libres de ruido. A nuestro entender, este es el primer estudio para mostrar que es posible la predicción precisa de etiquetas para los SBR, incluso cuando solo el título está disponible y en presencia de ruido de etiquetas.
Términos del índice: Aprendizaje automático, etiquetado incorrecto, ruido, informe de errores de seguridad, repositorios de errores
I. INTRODUCCIÓN
La identificación de problemas relacionados con la seguridad entre los errores informados es una necesidad urgente entre los equipos de desarrollo de software, ya que estos problemas exigen correcciones más expeditivas con el fin de satisfacer los requisitos de cumplimiento y garantizar la integridad del software y de los datos de los clientes.
Las herramientas de aprendizaje automático e inteligencia artificial prometen hacer que el desarrollo de software sea más rápido, ágil y correcto. Varios investigadores han aplicado el aprendizaje automático al problema de detectar errores de seguridad [2], [7], [8], [18]. En los estudios publicados anteriores se supone que hay disponibles informes de errores completos para entrenamiento y puntuación de un modelo de Machine Learning. Esto no es necesariamente así. Hay situaciones en las que no se puede poner a disposición el informe de errores completo. Por ejemplo, el informe de errores puede contener contraseñas, información de identificación personal (PII) u otros tipos de datos confidenciales (una situación en la que nos encontramos actualmente en Microsoft). Por lo tanto, es importante establecer qué tan bien se puede realizar la identificación de los errores de seguridad con menos información, como cuando solo está disponible el título del informe de errores.
Además, los repositorios de errores suelen contener entradas con etiquetas incorrectas [7]: informes de errores que no son de seguridad clasificados como relacionados con la seguridad y viceversa. Hay varias razones por las que se producen errores de etiquetado, que van desde la falta de experiencia en seguridad del equipo de desarrollo hasta la complejidad de determinados problemas; por ejemplo, es posible que errores no relacionados con la seguridad se aprovechen de manera indirecta como para provocar consecuencias sí relacionadas con la seguridad. Se trata de un problema grave, ya que el etiquetado incorrecto de los informes de errores de seguridad hace que los expertos en seguridad tengan que revisar manualmente la base de datos de errores, esfuerzo costoso y que consume mucho tiempo. Entender la manera en que el ruido afecta a los distintos clasificadores y cuán robustas (o frágiles) son las distintas técnicas de aprendizaje automático en presencia de conjuntos de datos contaminados con distintos tipos de ruido es un problema que debe abordarse para incorporar la clasificación automática en el ámbito de la ingeniería de software.
Los trabajos preliminares afirman que los repositorios de errores son intrínsecamente ruidosos y que el ruido podría tener un efecto adverso en el rendimiento de los clasificadores de aprendizaje automático [7]. Sin embargo, faltan estudios sistemáticos y cuantitativos sobre el modo en que los distintos niveles y tipos de ruido afectan al rendimiento de distintos algoritmos de aprendizaje automático supervisados para el problema de detectar informes de errores de seguridad.
En este estudio, se muestra que la clasificación de los informes de errores se puede realizar incluso cuando únicamente está disponible el título para el entrenamiento y la puntuación. A nuestro entender, este es el primer trabajo donde se hace esto. Además, se proporciona el primer estudio sistemático del efecto del ruido en la clasificación de los informes de errores. Creamos un estudio comparativo de solidez de tres técnicas de aprendizaje automático (regresión logística, Bayes naive y AdaBoost) frente al ruido independiente de la clase.
Si bien hay algunos modelos analíticos que capturan la influencia general del ruido en unos pocos clasificadores simples [5], [6], estos resultados no ofrecen límites estrechos en cuanto al efecto del ruido en la precisión, y solo son válidos para una técnica de aprendizaje automático en particular. En general, un análisis preciso del efecto del ruido en los modelos de Machine Learning se logra mediante la ejecución de experimentos de cálculo. Estos análisis se han realizado para varios escenarios, que van desde los datos de medición de software [4], pasando por la clasificación de imágenes satelitales [13], hasta datos médicos [12]. Sin embargo, estos resultados no se pueden traducir a nuestro problema específico debido a su gran dependencia en la naturaleza de los conjuntos de datos y el problema de clasificación subyacente. A nuestro entender, no hay ningún resultado publicado sobre el problema del efecto de los conjuntos de datos ruidosos en la clasificación de informes de errores de seguridad en concreto.
NUESTRAS CONTRIBUCIONES DE INVESTIGACIÓN:
Entrenamos clasificadores para la identificación de los informes de errores de seguridad en función únicamente del título de los informes. A nuestro entender, este es el primer trabajo donde se hace esto. En trabajos anteriores se usaba el informe de errores completo o se mejoró el informe de errores con características complementarias adicionales. La clasificación de errores basándose únicamente en el título es especialmente importante cuando no se puede disponer de los informes de errores completos debido a problemas de privacidad. Por ejemplo, es notorio el caso de los informes de errores que contienen contraseñas y otros datos confidenciales.
También ofrecemos el primer estudio sistemático de la tolerancia a ruido de las etiquetas en los diferentes modelos de Machine Learning y de las técnicas usadas para la clasificación automática de los informes de errores de seguridad. Creamos un estudio comparativo de solidez de tres técnicas distintas de aprendizaje automático (regresión logística, Bayes naive y AdaBoost) frente al ruido dependiente de la clase e independiente de la clase.
El resto del documento se presenta de la siguiente manera: en la sección II, presentamos algunas de las obras anteriores de literatura. En la sección III se describe el conjunto de datos y cómo se preprocesan los datos. La metodología se describe en la sección IV, y los resultados de nuestros experimentos se analizan en la sección V. Por último, nuestras conclusiones y futuros trabajos se presentan en la sección VI.
II. TRABAJOS ANTERIORES
APLICACIONES DE APRENDIZAJE AUTOMÁTICO PARA REPOSITORIOS DE ERRORES.
Existe una amplia bibliografía sobre la aplicación de la minería de texto, el procesamiento de lenguaje natural y el aprendizaje automático en los repositorios de errores en un intento de automatizar las tareas arduas, como la detección de errores de seguridad [2], [7], [8], [18], la identificación de errores duplicados [3], la evaluación de errores [1], [11], por nombrar solo algunas aplicaciones. Idealmente, el matrimonio entre el aprendizaje automático y el procesamiento de lenguaje natural podría reducir el trabajo manual necesario para mantener las bases de datos de errores, acortar los plazos necesarios para llevar a cabo estas tareas y aumentar la confiabilidad de los resultados.
En [7], los autores proponen un modelo de lenguaje natural para automatizar la clasificación de los informes de errores de seguridad basándose en la descripción del error. Los autores extraen un vocabulario de toda la descripción del error en el conjunto de datos de entrenamiento y lo mantienen manualmente en tres listas de palabras: palabras pertinentes, palabras no significativas (palabras comunes que no parecen pertinentes para la clasificación) y sinónimos. Comparan el rendimiento del clasificador de errores de seguridad entrenado con los datos evaluados por ingenieros de seguridad, y un clasificador entrenado en los datos etiquetados por los informes de errores en general. Aunque su modelo es claramente más eficaz cuando se entrena con datos revisados por ingenieros de seguridad, el modelo propuesto se basa en un vocabulario obtenido manualmente, lo que hace que dependa del mantenimiento por parte de personas. Además, no existe ningún análisis del modo en que los distintos niveles de ruido afectan a su modelo, el modo en que los distintos clasificadores responden al ruido y si el ruido en cualquiera de las clases afecta al rendimiento de manera diferente.
Zou et. al [18] utilizan varios tipos de información incluida en un informe de errores, que involucran los campos no textuales de un informe de errores (metacaracterísticas, es decir, hora, gravedad y prioridad) y el contenido textual de un informe de errores (características textuales, es decir, el texto de los campos de resumen). En función de estas características, crean un modelo para identificar automáticamente los informes de errores de seguridad mediante técnicas de procesamiento de lenguaje natural y aprendizaje automático. En [8], los autores realizan un análisis similar, pero además comparan el rendimiento de las técnicas de aprendizaje automático supervisado y no supervisado, y estudian cuántos datos se necesitan para entrenar sus modelos.
En [2], los autores también exploran distintas técnicas de aprendizaje automático para clasificar los errores como SBR (informe de errores de seguridad) o NSBR (informe de errores que no son de seguridad) en función de sus descripciones. Proponen una canalización para el procesamiento de datos y el entrenamiento del modelo en función de TFIDF. Comparan la canalización propuesta con un modelo basado en la bolsa de palabras y Bayes naive. Wijayasekara et al. [16] también utilizaron técnicas de minería de texto para generar el vector de características de cada informe de errores basándose en palabras frecuentes para identificar los errores de impacto oculto (HIB). Yang et al. [17] afirmaron identificar informes de errores de alto impacto (por ej., SBR) con la ayuda de la frecuencia de términos (TF) y Bayes naive. En [9], los autores proponen un modelo para predecir la gravedad de un error.
RUIDO DE LAS ETIQUETAS
El problema de tratar con los conjuntos de datos con ruido de etiquetas se ha estudiado exhaustivamente. Frenay y Verleysen proponen una taxonomía del ruido de las etiquetas en [6] para distinguir diferentes tipos de etiqueta ruidosa. Los autores proponen tres tipos diferentes de ruido: el ruido de etiqueta que se produce independientemente de la clase verdadera y de los valores de las características de la instancia; el ruido de etiqueta que depende solo de la etiqueta verdadera; y el ruido de etiqueta en el que la probabilidad de un etiquetado incorrecto también depende de los valores de las características. En nuestro trabajo estudiaremos los dos primeros tipos de ruido. Desde una perspectiva teórica, el ruido de las etiquetas normalmente reduce el rendimiento de un modelo [10], excepto en algunos casos específicos [14]. En general, los métodos sólidos se basan en la prevención de sobreajustes para controlar el ruido de las etiquetas [15]. El estudio de efectos del ruido en la clasificación se ha llevado a cabo antes en muchas áreas, como la clasificación de imágenes satelitales [13], la clasificación de calidad del software [4] y la clasificación de dominios médicos [12]. A nuestro entender, no hay ningún trabajo publicado que estudie la cuantificación precisa de los efectos de las etiquetas ruidosas en el problema de la clasificación de los informes de errores de seguridad. En este escenario, no se ha establecido la relación exacta entre los niveles de ruido, los tipos de ruido y la degradación del rendimiento. Además, merece la pena comprender cómo se comportan los diferentes clasificadores en presencia de ruido. En general, no tenemos conocimiento de ningún trabajo que estudie sistemáticamente el efecto de los conjuntos de datos ruidosos en el rendimiento de los distintos algoritmos de aprendizaje automático en el contexto de los informes de errores de software.
III. DESCRIPCIÓN DEL CONJUNTO DE DATOS
Nuestro conjunto de datos consta de 1 073 149 títulos de error, 552 073 de los cuales corresponden a SBR; y 521 076, a NSBR. Los datos se recopilaron de varios equipos de Microsoft en los años 2015, 2016, 2017 y 2018. Todas las etiquetas se obtuvieron mediante sistemas de comprobación de errores basados en firmas o fueron etiquetadas por seres humanos. Los títulos de error en nuestro conjunto de datos son textos muy cortos, que contienen unas 10 palabras, con una visión general del problema.
A Preprocesamiento de datos: Analizamos cada título de error mediante sus espacios en blanco, lo que genera una lista de tokens. Procesamos cada lista de tokens de la manera siguiente:
Se quitan todos los tokens que son rutas de acceso de archivo
Se dividen los tokens en los que están presentes los símbolos siguientes: { , (, ), -, }, {, [, ], }
Se quitan las palabras no significativas, los tokens que están compuestos por caracteres numéricos únicamente y los tokens que aparecen menos de 5 veces en todo el corpus.
IV. METODOLOGÍA
El proceso de entrenamiento de nuestros modelos de Machine Learning consta de dos pasos principales: codificar los datos en vectores de características y entrenar clasificadores de aprendizaje automático supervisados.
A Vectores de características y técnicas de aprendizaje automático
La primera parte implica la codificación de datos en vectores de características mediante el algoritmo TF-IDF (frecuencia de término-frecuencia inversa de documento), tal como se usa en [2]. TF-IDF es una técnica de recuperación de información que pondera la frecuencia de un término (TF) y su frecuencia inversa en el documento (IDF). Cada palabra o término tiene su puntuación de TF e IDF correspondiente. El algoritmo TF-IDF asigna la importancia a esa palabra según la cantidad de veces que aparece en el documento y, lo que es más importante, comprueba la importancia de la palabra clave en la colección de títulos del conjunto de datos. Hemos entrenado y comparado tres técnicas de clasificación: Bayes naive (NB), árboles de decisión de potenciación (AdaBoost) y regresión logística (LR). Hemos elegido estas técnicas porque han demostrado tener un buen rendimiento en la tarea relacionada de identificar los informes de errores de seguridad según todos los casos en la bibliografía. Estos resultados se han confirmado en un análisis preliminar en el que estos tres clasificadores tuvieron un rendimiento superior a las máquinas de vectores de soporte y bosques aleatorios. En nuestros experimentos usamos la biblioteca scikit-learn para codificar y entrenar el modelo.
B. Tipos de ruido
El ruido estudiado en este trabajo hace referencia al ruido en la etiqueta de clase en los datos de entrenamiento. Como consecuencia, en presencia de este tipo de ruido, el proceso de aprendizaje y el modelo resultante se ven perjudicados por ejemplos con etiqueta incorrectas. Analizamos el impacto de los distintos niveles de ruido aplicados a la información de la clase. Los tipos de ruido de etiqueta se han abordado anteriormente en la bibliografía con diversas terminologías. En nuestro trabajo, analizamos los efectos de dos ruidos de etiqueta diferentes en los clasificadores: ruido de etiqueta independiente de la clase, que se introduce al seleccionar instancias de forma aleatoria y volteando su etiqueta; y ruido dependiente de la clase, donde las clases tienen diferentes probabilidades de ser ruidosas.
a) Ruido independiente de la clase: el ruido independiente de la clase hace referencia al ruido que se produce independientemente de la clase verdadera de las instancias. En este tipo de ruido, la probabilidad de etiquetar incorrectamente pbr es la misma para todas las instancias del conjunto de datos. Para introducir ruido independiente de la clase en los conjuntos de datos, volteamos cada etiqueta del conjunto de datos de forma aleatoria con la probabilidad pbr.
b) Ruido dependiente de la clase: el ruido dependiente de la clase hace referencia al ruido que depende de la clase verdadera de las instancias. En este tipo de ruido, la probabilidad de un etiquetado incorrecto en la clase SBR es psbr, y la probabilidad de un etiquetado incorrecto en la clase NSBR es pnsbr. Para introducir ruido dependiente de la clase en el conjunto de datos, volteamos cada entrada del conjunto de datos para la cual la etiqueta verdadera sea SBR con la probabilidad psbr. De forma análoga, volteamos la etiqueta de clase de las instancias de NSBR con la probabilidad pnsbr.
c) Ruido de clase única: el ruido de clase única es un caso especial de ruido dependiente de la clase, donde pnsbr = 0 y psbr> 0. Tenga en cuenta que para el ruido independiente de la clase, tenemos psbr = pnsbr = pbr.
C. Generación de ruido
En nuestros experimentos se investiga el impacto de los diferentes tipos y niveles de ruido en el entrenamiento de los clasificadores de SBR. En ellos, el 25 % del conjunto de datos se ha establecido como datos de prueba; el 10 %, como validación; y el 65 %, como datos de entrenamiento.
Agregamos ruido a los conjuntos de datos de entrenamiento y validación para los distintos niveles de pbr, psbr y pnsbr. No realizamos ninguna modificación en el conjunto de datos de prueba. Los distintos niveles de ruido que se usan son P = {0,05 × i|0 < i < 10}.
En los experimentos de ruido independiente de la clase, para pbr ∈ P, hacemos lo siguiente:
Generar ruido para los conjuntos de datos de entrenamiento y validación.
Entrenar los modelos de regresión logística, Bayes naive y AdaBoost con el conjunto de datos de entrenamiento (con ruido). * Optimizar los modelos mediante el conjunto de datos de validación (con ruido).
Probar los modelos con el conjunto de datos de prueba (sin ruido).
En los experimentos de ruido dependiente de la clase, para psbr ∈ P y pnsbr ∈ P, hacemos lo siguiente para todas las combinaciones de psbr y pnsbr:
Generar ruido para los conjuntos de datos de entrenamiento y validación.
Entrenar los modelos de regresión logística, Bayes naive y AdaBoost con el conjunto de datos de entrenamiento (con ruido).
Optimizar los modelos mediante el conjunto de datos de validación (con ruido).
Probar los modelos con el conjunto de datos de prueba (sin ruido).
V. RESULTADOS DE LOS EXPERIMENTOS
En esta sección se analizan los resultados de los experimentos realizados según la metodología descrita en la sección IV.
a) Rendimiento del modelo sin ruido en el conjunto de datos de aprendizaje: una de las aportaciones de este documento es la propuesta de un modelo de Machine Learning para detectar los errores de seguridad usando solo el título del error como dato para la toma de decisiones. Esto permite el entrenamiento de los modelos de Machine Learning, incluso cuando los equipos de desarrollo no deseen compartir informes de errores en su totalidad debido a la presencia de datos confidenciales. Comparamos el rendimiento de tres modelos de Machine Learning cuando se entrenan solo con los títulos de los errores.
El modelo de regresión logística es el clasificador con mejor rendimiento. Es el clasificador con el valor de AUC más alto, de 0,9826, coincidencia de 0,9353 para un valor de FPR de 0,0735. El clasificador Bayes naive presenta un rendimiento ligeramente inferior que el clasificador de regresión logística, con un AUC de 0,9779 y una coincidencia de 0,9189 para una FPR de 0,0769. El clasificador AdaBoost tiene un rendimiento inferior en comparación con los dos clasificadores mencionados anteriormente. Logra un AUC de 0,9143 y una coincidencia de 0,7018 para una PFT de 0,0774. El área bajo la curva (AUC) ROC es una buena métrica para comparar el rendimiento de varios modelos, ya que resume en un único valor único la relación entre TPR y FPR. En el análisis posterior, restringiremos el análisis comparativo a los valores de AUC.
A Ruido de clase: clase única
Uno puede imaginar un escenario en el que todos los errores se asignen de forma predeterminada a la clase NSBR, y un error solo se asignará a la clase SBR si hay un experto en seguridad que revise el repositorio de errores. Este escenario se representa en el entorno experimental de clase única, donde suponemos que pnsbr = 0 y 0 < psbr< 0,5.
En la tabla II, observamos un impacto muy pequeño en el AUC para los tres clasificadores. El AUC ROC de un modelo entrenado con psbr = 0 comparado con un AUC ROC del modelo donde psbr = 0,25 difiere en 0,003 para la regresión logística, 0,006 para el Bayes naive y 0,006 para AdaBoost. En el caso de psbr = 0,50, el AUC medida para cada uno de los modelos difiere del modelo entrenado con psbr = 0 en 0,007 para la regresión logística, 0,011 para Bayes naive y 0,010 para AdaBoost. El clasificador de regresión logística entrenado en presencia de un ruido de clase única presenta la variación más pequeña en su métrica de AUC, es decir, un comportamiento más sólido, en comparación con los clasificadores Bayes naive y AdaBoost.
B. Ruido de clase: independiente de la clase
Se compara el rendimiento de los tres clasificadores para el caso en el que el conjunto de entrenamiento está dañado por ruido independiente de la clase. Medimos el AUC de cada modelo entrenado con distintos niveles de pbr en los datos de entrenamiento.
En la tabla III, se observa una disminución en el AUC ROC por cada incremento de ruido del experimento. El AUC ROC medida a partir de un modelo entrenado con datos sin ruido en comparación con un AUC ROC del modelo entrenado con ruido independiente de la clase con pbr = 0,25 difiere en 0,011 para la regresión logística, 0,008 para Bayes naive y 0,0038 para AdaBoost. Observamos que el ruido de etiqueta no afecta significativamente al AUC de los clasificadores Bayes naive y AdaBoost cuando los niveles de ruido son inferiores al 40 %. Por otro lado, el clasificador de regresión logística sufre un impacto en la medida del AUC para los niveles de ruido de etiqueta por encima del 30 %.
Fig. 1. Variación del AUC ROC con ruido independiente de la clase. Para un nivel de ruido pbr = 0,5, el clasificador actúa como clasificador aleatorio, es decir, AUC ≈ 0,5. Pero podemos observar que para los niveles de ruido inferiores (pbr ≤ 0,30), el sistema de aprendizaje de regresión logística presenta un mejor rendimiento en comparación con los otros dos modelos. Sin embargo, para 0,35 ≤ pbr ≤ 0,45, el sistema de aprendizaje Bayes naive presenta mejores métricas de AUC ROC.
C. Ruido de clase: dependiente de la clase
En el conjunto final de experimentos, consideramos un escenario en el que las distintas clases contienen distintos niveles de ruido, es decir, psbr ≠ pnsbr. Incrementamos sistemáticamente psbr y pnsbr de forma independiente 0,05 en los datos de entrenamiento y observan el cambio en el comportamiento de los tres clasificadores.
Las tablas IV, V y VI muestran la variación del AUC, ya que el ruido aumenta en diferentes niveles en cada clase para la regresión logística en la tabla IV, para Bayes naive en la tabla V y para AdaBoost en la tabla VI. En el caso de todos los clasificadores, observamos un impacto en la métrica del AUC cuando ambas clases contienen un nivel de ruido por encima del 30 %. Bayes naive muestra el comportamiento más sólido. El impacto en el AUC es muy pequeño incluso cuando se voltea el 50 % de la etiqueta de la clase positiva, siempre que la clase negativa contenga un 30 % de etiquetas con ruido o menos. En este caso, la caída del AUC es de 0,03. AdaBoost presentó el comportamiento más sólido de los tres clasificadores. Solo se producirá un cambio significativo en el AUC para los niveles de ruido superiores al 45 % en ambas clases. En ese caso, comenzamos observando una caída del AUC mayor que 0,02.
D. En presencia de ruido residual en el conjunto de datos original
Nuestro conjunto de datos estaba etiquetado por sistemas automatizados basados en firmas y por expertos humanos. Además, los expertos humanos revisaron y cerraron todos los informes de errores. Aunque esperamos que la cantidad de ruido en nuestro conjunto de datos sea mínima y no sea estadísticamente significativa, la presencia de ruido residual no invalida las conclusiones. En realidad, como ilustración, supongamos que el conjunto de datos original está dañado por un ruido independiente de la clase igual a 0 < p < 1/2 independiente e idénticamente distribuido (i.i.d) en cada entrada.
Si, además del ruido original, agregamos un ruido independiente de la clase con la probabilidad pbr i.i.d, el ruido resultante por entrada será p∗ = p (1 − pbr) + (1 − p)pbr. En el caso de 0 < p,pbr< 1/2, el ruido real por etiqueta p∗ es estrictamente mayor que el ruido que agregamos artificialmente al conjunto de datos pbr. Por lo tanto, el rendimiento de los clasificadores sería incluso mejor si en un principio se entrenaran con un conjunto de datos completamente carente de ruido (p = 0). En resumen, la existencia de ruido residual en el conjunto de datos real significa que la resistencia frente al ruido de los clasificadores es mejor que los resultados aquí presentados. Además, si el ruido residual en el conjunto de datos fuera estadísticamente relevante, el AUC de los clasificadores se volvería 0,5 (una estimación aleatoria) para un nivel de ruido estrictamente inferior a 0,5. No observamos este comportamiento en los resultados.
VI. CONCLUSIONES Y TRABAJOS FUTUROS
Nuestra contribución en este documento es doble.
En primer lugar, hemos mostrado la viabilidad de la clasificación de los informes de errores de seguridad basada únicamente en el título del informe de errores. Esto es especialmente importante en los casos en los que no esté disponible el informe de errores completo debido a restricciones de privacidad. Por ejemplo, en nuestro caso, los informes de errores contenían información privada, como contraseñas y claves criptográficas, y no estaban disponibles para entrenar a los clasificadores. El resultado muestra que la identificación de SBR se puede realizar con una alta precisión, incluso cuando solo están disponibles los títulos del informe. Nuestro modelo de clasificación, que emplea una combinación de TF-IDF y regresión logística, logra un AUC de 0,9831.
En segundo lugar, analizamos el efecto de los datos de entrenamiento y validación con etiquetas incorrectas. Comparamos tres técnicas conocidas de clasificación de aprendizaje automático (Bayes naive, regresión logística y AdaBoost) en cuanto a su solidez frente a los diferentes tipos y niveles de ruido. Los tres clasificadores muestran solidez frente al ruido de clase única. El ruido en los datos de entrenamiento no tiene efecto significativo en el clasificador resultante. La disminución del AUC es muy pequeña (0,01) para un nivel de ruido del 50 %. En el caso del ruido presente en ambas clases e independiente de la clase, los modelos Bayes naive y AdaBoost presentan variaciones significativas en el AUC solo cuando se entrenan con un conjunto de datos con niveles de ruido superiores al 40 %.
Por último, el ruido dependiente de la clase afecta significativamente al AUC solo cuando hay más del 35 % de ruido en ambas clases. AdaBoost mostró la mayor solidez. El impacto en el AUC es muy pequeño, incluso cuando la clase positiva tiene un 50 % de etiquetas con ruido, siempre que la clase negativa contenga un 45 % de etiquetas con ruido o menos. En este caso, la caída del AUC es de menos de 0,03. A nuestro entender, este es el primer estudio sistemático sobre el efecto de los conjuntos de datos ruidosos para la identificación de los informes de errores de seguridad.
TRABAJOS FUTUROS
En este documento hemos iniciado el estudio sistemático de los efectos del ruido en el rendimiento de los clasificadores de aprendizaje automático para la identificación de errores de seguridad. Este trabajo tiene varias consecuencias interesantes, entre ellas: el examen del efecto de los conjuntos de datos ruidosos para establecer el nivel de gravedad de un error de seguridad, la comprensión del efecto del desequilibrio de clases en la resistencia de los modelos entrenados frente al ruido, y la comprensión del efecto del ruido que se incorpora de manera adversa en el conjunto de datos.
REFERENCES
[1] John Anvik, Lyndon Hiew y Gail C Murphy. Who should fix this bug? En Proceedings of the 28th international conference on Software engineering, páginas 361–370. ACM, 2006.
[2] Diksha Behl, Sahil Handa y Anuja Arora. A bug mining tool to identify and analyze security bugs using naive bayes and tf-idf. En 2014 International Conference on Optimization, Reliability, and Information Technology (ICROIT), páginas, 294–299. IEEE, 2014.
[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann y Sunghun Kim. Duplicate bug reports considered harmful really? En Software maintenance, 2008. ICSM 2008. IEEE international conference on, páginas 337–345. IEEE, 2008.
[4] Andres Folleco, Taghi M. Khoshgoftaar, Jason Van Hulse y Lofton Bullard. Identifying learners robust to low quality data. En Information Reuse and Integration, 2008. IRI 2008. IEEE International Conference on, páginas 190–195. IEEE, 2008.
[5] Benoˆıt Frenay.´ Uncertainty and label noise in machine learning. PhD thesis, Universidad Católica de Lovaina, Lovaina la Nueva, Bélgica, 2013.
[6] Benoˆıt Frenay y Michel Verleysen. Classification in the presence of´ label noise: a survey. IEEE transactions on neural networks and learning systems, 25(5):845–869, 2014.
[7] Michael Gegick, Pete Rotella y Tao Xie. Identifying security bug reports via text mining: An industrial case study. En 2010 7th IEEE working conference on Mining software repositories (MSR), páginas 11–20. IEEE, 2010.
[8] Katerina Goseva-Popstojanova y Jacob Tyo. Identification of security related bug reports via text mining using supervised and unsupervised classification. En 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), páginas 344–355, 2018.
[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger y Bart Goethals. Predicting the severity of a reported bug. En 2010 7th IEEE working conference on Mining software repositories (MSR), páginas 1–10. IEEE, 2010.
[10] Naresh Manwani y P. S. Sastry. Noise tolerance under risk minimization. IEEE transactions on cybernetics, 43(3):1146–1151, 2013.
[11] G. Murphy y D. Cubranic. Automatic bug triage using text categorization. En Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering. CiteSeer, 2004.
[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen y Oleksandr Pechenizkiy. Class noise and supervised learning in medical domains: The effect of feature extraction. En null, páginas 708–713. IEEE, 2006.
[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre y Gerard Dedieu. Effect of training class label noise on classification performances for land cover mapping with satellite image time series. Remote Sensing, 9(2):173, 2017.
[14] P. S. Sastry, G. D. Nagendra y Naresh Manwani. A team of continuousaction learning automata for noise-tolerant learning of half-spaces. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), 40(1):19–28, 2010.
[15] Choh-Man Teng. A comparison of noise handling techniques. En FLAIRS Conference, páginas 269–273, 2001.
[16] Dumidu Wijayasekara, Milos Manic y Miles McQueen. Vulnerability identification and classification via text mining bug databases. En Industrial Electronics Society, IECON 2014-40th Annual Conference of the IEEE, páginas 3612–3618. IEEE, 2014.
[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia y Jianling Sun. Automated identification of high impact bug reports leveraging imbalanced learning strategies. En 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC), volumen 1, páginas 227–232. IEEE, 2016.
[18] Deqing Zou, Zhijun Deng, Zhen Li y Hai Jin. Automatically identifying security bug reports via multitype features analysis. En Australasian Conference on Information Security and Privacy, páginas 619–633. Springer, 2018.