Ler em inglês

Partilhar via


Identificação de relatórios de bugs de segurança com base em títulos de relatórios e dados barulhentos

Mayana Pereira Scott Christiansen
Ciência dos Dados CELA Confiança e Segurança do Cliente
Microsoft Microsoft

Resumo – a identificação de relatórios de erros de segurança (SBRs) é um passo vital no ciclo de vida do desenvolvimento de software. Em abordagens com base em supervisão por machine learning, é normal assumir que todos os relatórios de erros estão disponíveis para preparação e que as etiquetas estão livres de dados irrelevantes. De acordo com o nosso conhecimento, este é o primeiro estudo a demonstrar que é possível uma previsão precisa da etiqueta para os SBRs, mesmo quando apenas o título está disponível e estão presentes dados irrelevantes.

Termos do Índice – Machine Learning, Erros de Etiquetagem, Dados Irrelevantes, Relatórios de Erros de Segurança, Repositórios de Erros

I. INTRODUÇÃO

Identificar problemas relacionados com a segurança entre os erros comunicados é uma necessidade premente entre as equipas de desenvolvimento de software, dado que tais problemas exigem correções mais rápidas de forma a cumprir os requisitos de conformidade e garantir a integridade do software e dos dados dos clientes.

As ferramentas de machine learning e de inteligência artificial prometem tornar o desenvolvimento do software mais rápido, ágil e correto. Vários investigadores aplicaram machine learning ao problema da identificação de erros de segurança [2], [7], [8], [18]. Estudos publicados anteriormente assumiram que todo o relatório de erros está disponível para preparação e pontuação de um modelo de machine learning. Este não é necessariamente o caso. Existem situações em que não pode ser disponibilizado o relatório de erros completo. Por exemplo, o relatório de erros pode conter palavras-passe, informações identificativas (PII) ou outros tipos de dados confidenciais – uma situação que estamos atualmente a enfrentar na Microsoft. Como tal, é importante determinar até que ponto a identificação de erros de segurança pode ser realizada com menos informações, como quando apenas o título do relatório de erros está disponível.

Adicionalmente, os repositórios de erros contêm frequentemente entradas mal etiquetadas [7]: relatórios de erros não relacionados com segurança classificados como relacionados com segurança e vice-versa. Existem vários motivos para a ocorrência de etiquetagem errada, que vão desde a falta de conhecimentos em segurança por parte da equipa de desenvolvimento, até à imprecisão de certos problemas, por exemplo, é possível que os erros não relacionados com segurança sejam explorados de forma indireta para provocar uma implicação de segurança. Trata-se de um problema grave, dado que a etiquetagem errada dos SBRs resulta em especialistas em segurança terem de rever manualmente a base de dados de erros o que é custoso e demorado. Compreender de que forma os dados irrelevantes afetam os diferentes classificadores e quão resistentes (ou frágeis) são diferentes técnicas de machine learning quando na presença de conjuntos de dados contaminados com diferentes tipos de dados irrelevantes é um problema que deve ser abordado para levar a classificação automática à prática da engenharia de software.

Os trabalhos preliminares defendem que os repositórios de erros são intrinsecamente dados irrelevantes e que estes dados irrelevantes podem ter um efeito adverso sobre o desempenho dos classificadores de machine learning [7]. No entanto, não existe qualquer estudo sistemático e quantitativo sobre como os diferentes níveis e tipos de dados irrelevantes afetam o desempenho dos diferentes algoritmos de machine learning supervisionados para o problema de identificação de relatórios de erros de segurança (SRBs).

Neste estudo, mostramos que a classificação dos relatórios de erros pode ser realizada mesmo quando apenas o título está disponível para preparação e pontuação. De acordo com o nosso conhecimento, este é o primeiro trabalho a fazê-lo. Adicionalmente, proporcionamos o primeiro estudo sistemático do efeito dos dados irrelevantes sobre a classificação do relatório de erros. Realizamos um estudo comparativo da resistência de três técnicas de machine learning (regressão logística, naive Bayes e AdaBoost) em dados irrelevantes independentes da classe.

Embora existam alguns modelos analíticos que captam a influência geral dos dados irrelevantes de alguns classificadores simples [5], [6], estes resultados não proporcionam resultados conclusivos sobre o efeito dos dados irrelevantes sobre a precisão e são apenas válidos para uma técnica de machine learning em particular. Uma análise precisa do efeito dos dados irrelevantes sobre os modelos de machine learning é geralmente realizada através da execução de experiências computacionais. Estas análises foram realizadas para diversos cenários que vão desde os dados de medição de software [4], à classificação de imagens por satélite [13] e a dados médicos [12]. No entanto, estes resultados não podem ser convertidos para o nosso problema específico, dada a sua elevada dependência da natureza dos conjuntos de dados e do problema de classificação subjacente. De acordo com o nosso conhecimento, não existem resultados publicados sobre o problema do efeito de conjuntos de dados irrelevantes sobre a classificação do relatório de erros de segurança em particular.

AS NOSSAS CONTRIBUIÇÕES PARA A INVESTIGAÇÃO:

  • Preparamos classificadores para identificação de relatórios de erros de segurança (SBRs) baseados apenas no título dos relatórios. De acordo com o nosso conhecimento, este é o primeiro trabalho a fazê-lo. Trabalhos anteriores utilizaram o relatório de erros completo ou melhoraram o relatório de erros com funcionalidades complementares adicionais. Classificar erros com base apenas no mosaico é particularmente relevante quando os relatórios de erros completos não podem ser disponibilizados devido a questões de privacidade. Por exemplo, é notório o caso de relatórios de erros que contêm palavras-passe e outros dados confidenciais.

  • Proporcionamos também o primeiro estudo sistemático sobre a tolerância aos dados irrelevantes da etiqueta de diferentes modelos de machine learning e sobre as técnicas utilizadas para a classificação automática de SBRs. Realizamos um estudo comparativo da resistência de três técnicas de machine learning diferentes (regressão logística, naive Bayes e AdaBoost) em dados irrelevantes independentes e dependentes de classe.

O restante do artigo é apresentado da seguinte forma: Na seção II apresentamos alguns dos trabalhos anteriores da literatura. Na secção III descrevemos o conjunto de dados e como os dados são pré-processados. A metodologia é descrita na secção IV e os resultados das nossas experiências analisadas na secção V. Por fim, as nossas conclusões e trabalhos futuros são apresentados na secção VI.

II. TRABALHOS ANTERIORES

APLICAÇÕES DE MACHINE LEARNING PARA REPOSITÓRIOS DE ERROS.

Existe extensiva literatura sobre a aplicação da extração de texto, do processamento de linguagem natural e de machine learning em repositórios de erros, numa tentativa de automatizar as tarefas trabalhosas, como a deteção de erros de segurança [2], [7], [8], [18], identificação duplicada de erros [3], triagem de erros [1], [11], para indicar algumas aplicações. Idealmente, a união de machine learning (ML) e do processamento de linguagem natural reduz potencialmente o trabalho manual necessário para organizar as bases de dados de erros, reduzir o tempo necessário para realizar estas tarefas e aumentar a fiabilidade dos resultados.

Em [7], os autores propõem um modelo de linguagem natural para automatizar a classificação de SBRs com base na descrição do erro. Os autores extraem vocabulário de todas as descrições de erros no conjunto de dados de preparação e organizam o mesmo manualmente em três listas de palavras: palavras relevantes, palavras de paragem (palavras comuns que parecem irrelevantes para a classificação) e sinónimos. Estes comparam o desempenho do classificador de erros de segurança preparado com dados que foram todos avaliados por engenheiros de segurança e um classificador preparado com dados que foram etiquetados por comunicadores de erros gerais. Apesar de o modelo ser claramente mais eficaz quando preparado com dados avaliados por engenheiros de segurança, o modelo proposto é baseado num vocabulário derivado manualmente, o que o torna dependente de uma organização por humanos. Adicionalmente, não existe uma análise sobre a forma como os diferentes níveis de dados irrelevantes afetam o modelo, como os diferentes classificadores respondem aos dados irrelevantes e se os dados irrelevantes em ambas as classes afetam o desempenho de forma diferente.

Zou et. al [18] fazem uso de vários tipos de informações contidas em um relatório de bug que envolvem os campos não textuais de um relatório de bug (meta-características, por exemplo, tempo, gravidade e prioridade) e o conteúdo textual de um relatório de bug (recursos textuais, ou seja, o texto em campos de resumo). Com base nestas funcionalidades, criam um modelo para identificar automaticamente os SBRs através de técnicas de machine learning e processamento de linguagem natural. Em [8], os autores realizam uma análise semelhante, mas comparam adicionalmente o desempenho de técnicas de machine learning supervisionadas e não supervisionadas, e estudam quantos dados são necessários para preparar os modelos.

Em [2], os autores também exploram diferentes técnicas de machine learning para classificar erros como SBRs ou NSBRs (Relatórios de Erros Não Relacionados com Segurança) com base nas descrições. Propõem um pipeline para processamento de dados e preparação de modelos com base no TFIDF. Comparam o pipeline proposto com um modelo baseado no “saco de palavras” e naive Bayes. Wijayasekara et al. [16] também utilizaram técnicas de extração de texto para gerar o vetor de funcionalidade de cada relatório de erros com base em palavras frequentes para identificar Erros de Impacto Oculto (HIBs). Yang et al. [17] alegaram identificar relatórios de erros de impacto elevado (por exemplo, SBRs) com a ajuda da Frequência do Termo (TF) e naive Bayes. Em [9], os autores propõem um modelo para prever a gravidade de um erro.

DADOS IRRELEVANTES DE ETIQUETA

O problema de tratar conjuntos de dados com dados irrelevantes de etiqueta foi extensamente estudado. Frenay e Verleysen propõem uma taxonomia de dados irrelevantes de etiqueta em [6], de modo a distinguir entre diferentes tipos de dados irrelevantes de etiqueta. Os autores propõem três tipos diferentes de dados irrelevantes: dados irrelevantes que ocorrem independentemente da verdadeira classe e dos valores das funcionalidades da instância; dados irrelevantes de etiqueta que dependem apenas da etiqueta verdadeira e os dados irrelevantes onde a probabilidade de uma etiquetagem errada também depende dos valores da funcionalidade. No nosso trabalho estudamos os dois primeiros tipos de dados irrelevantes. De uma perspetiva teórica, os dados irrelevantes da etiqueta, normalmente diminuem o desempenho de um modelo [10], exceto em alguns casos específicos [14]. No geral, os métodos resistentes dependem de evitar o sobreajuste para lidar com os dados irrelevantes da etiqueta [15]. O estudo dos efeitos dos dados irrelevantes sobre a classificação já foi realizado anteriormente em muitas áreas, como classificação de imagens por satélite [13], classificação da qualidade do software [4] e classificação do domínio médico [12]. De acordo com o nosso conhecimento, não existem trabalhos publicados que estudem a quantificação precisa dos efeitos de etiquetas com dados irrelevantes no problema de classificação dos SBRs. Neste cenário, não foi estabelecida uma relação precisa entre os níveis de dados irrelevantes, os tipos de dados irrelevantes e a degradação do desempenho. Adicionalmente, vale a pena compreender de que forma os diferentes classificadores se comportam na presença dos dados irrelevantes. De uma forma mais geral, desconhecemos qualquer trabalho que estude de forma sistemática o efeito de conjuntos de dados irrelevantes sobre o desempenho de diferentes algoritmos de machine learning dentro do contexto de relatórios de erros de software.

III. DESCRIÇÃO DO CONJUNTO DE DADOS

O nosso conjunto de dados é composto por 1 073 149 títulos de erros, dos quais 552 073 correspondem a SBRs e 521 076 a NSBRs. Os dados foram recolhidos de várias equipas da Microsoft nos anos de 2015, 2016, 2017 e 2018. Todas as etiquetas foram obtidas por sistemas de verificação de erros baseados em assinatura ou etiquetagem por humanos. Os títulos de erros no nosso conjunto de dados são textos muito curtos, contendo cerca de 10 palavras, com uma descrição geral do problema.

A. Pré-processamento de dados – analisamos cada título de erro pelos espaços em branco, o que resulta numa lista de fichas. Processamos cada lista de tokens da seguinte forma:

  • Removemos todos os tokens que são caminhos de ficheiros

  • Tokens divididos onde estão presentes os seguintes símbolos: { , (, ), -, }, {, [, ], }

  • Removemos as palavras de paragem, tokens compostos apenas por caracteres numéricos e tokens que aparecem menos de 5 vezes em todo o corpus.

IV. METODOLOGIA

O processo de preparação dos nossos modelos de machine learning consiste em dois passos principais: codificar os dados em vetores de funcionalidade e preparar classificadores de machine learning supervisionados.

A. Vetores de Funcionalidades e Técnicas de Machine Learning

A primeira parte envolve codificar os dados em vetores de funcionalidades com o algoritmo de frequência de documento inversa e frequência do termo (TF-IDF), conforme utilizado em [2]. A TF-IDF é uma técnica de recuperação de informações que avalia a frequência dos termos (TF) e a frequência de documento inversa (IDF). Cada palavra ou termo tem a respetiva classificação TF e IDF. O algoritmo TF-IDF atribui importância à palavra com base no número de vezes que aparece no documento e, mais importante, verifica a relevância da palavra-chave ao longo da recolha de títulos no conjunto de dados. Preparamos e comparámos três técnicas de classificação: naive Bayes (NB), árvores de decisões melhoradas (AdaBoost) e regressão logística (LR). Escolhemos estas técnicas porque demonstraram um bom desempenho na tarefa relacionada de identificação de relatórios de erros de segurança com base na totalidade do relatório da literatura. Estes resultados foram confirmados numa análise preliminar onde estes três classificadores superaram as máquinas de vetor de suporte e as florestas aleatórias. Nas nossas experiências, utilizamos a biblioteca scikit-learn para codificação e preparação do modelo.

B. Tipos de Dados Irrelevantes

Os dados irrelevantes abordados neste trabalho referem-se aos dados irrelevantes na etiqueta de classe nos dados de preparação. Na presença deste tipo de dados irrelevantes, consequentemente, o processo de aprendizagem e o modelo resultante são prejudicados por exemplos mal etiquetados. Analisamos o impacto dos diferentes níveis de dados irrelevantes aplicados às informações de classe. Os tipos de dados irrelevantes de etiqueta foram abordados em documentos anteriores com várias terminologias. No nosso trabalho, analisamos os efeitos de dois dados irrelevantes diferentes sobre os nossos classificadores: os dados irrelevantes de etiquetas independentes da classe, que são introduzidos através de uma recolha aleatória de instâncias e da inversão da etiqueta; e os dados irrelevantes dependentes da classe, onde as classes têm probabilidades diferentes de serem dados irrelevantes.

a) Ruído independente de classe: Ruído independente de classe refere-se ao ruído que ocorre independentemente da verdadeira classe das instâncias. Neste tipo de dados irrelevantes, a probabilidade de uma etiquetagem errada pbr é igual para todas as instâncias no conjunto de dados. Introduzimos dados irrelevantes independentes da classe nos nossos conjuntos de dados ao inverter cada etiqueta no nosso conjunto de dados de forma aleatória e com uma probabilidade de pbr.

b) Ruído dependente da classe: O ruído dependente da classe refere-se ao ruído que depende da verdadeira classe das instâncias. Neste tipo de dados irrelevantes, a probabilidade de uma etiquetagem errada na classe SBR é de psbr e a probabilidade de uma etiquetagem errada na classe NSBR é pnsbr. Introduzimos os dados irrelevantes dependentes da classe no nosso conjunto de dados ao inverter cada entrada no conjunto de dados para o qual a etiqueta verdadeira é SBR com uma probabilidade de psbr. De forma análoga, invertemos a etiqueta de classe de instâncias NSBR com a probabilidade pnsbr.

c) Ruído de classe única: O ruído de classe única é um caso especial de ruído dependente da classe, em que pnsbr = 0 e psbr> 0. Tenha em atenção que para dados irrelevantes independentes da classe, temos psbr = pnsbr = pbr.

C. Geração de Dados Irrelevantes

As nossas experiências investigam o impacto de diferentes níveis e tipos de dados irrelevantes sobre a preparação de classificadores SBR. Nas nossas experiências, definimos 25% do conjunto de dados como dados de teste, 10% como validação e 65% como dados de preparação.

Adicionamos dados irrelevantes aos conjuntos de dados de validação e preparação para diferentes níveis de pbr, psbr e pnsbr. Não fazemos modificações ao conjunto de dados de teste. Os diferentes níveis de ruído utilizados são P = {0,05 × i|0 < i < 10}.

Nas experiências de dados irrelevantes independentes da classe, para pbr ∈ P, fazemos o seguinte:

  • Geramos dados irrelevantes para conjuntos de dados de validação e preparação;

  • Preparamos modelos de regressão logística, naive Bayes e AdaBoost com conjuntos de dados de preparação (com dados irrelevantes); * Otimizamos os modelos com o conjunto de dados de validação (com dados irrelevantes);

  • Testamos os modelos com um conjunto de dados de teste (sem dados irrelevantes).

Em experiências de dados irrelevantes dependentes da classe, para psbr P e pnsbr ≤ P, fazemos o seguinte para todas as combinações de psbr e pnsbr:

  • Geramos dados irrelevantes para conjuntos de dados de validação e preparação;

  • Preparamos modelos de regressão logística, naive Bayes e AdaBoost com conjuntos de dados de preparação (com dados irrelevantes);

  • Otimizamos os modelos com o conjunto de dados de validação (com dados irrelevantes);

  • Testamos os modelos com um conjunto de dados de teste (sem dados irrelevantes).

V. RESULTADOS EXPERIMENTAIS

Nesta secção, analise os resultados das experiências realizadas de acordo com a metodologia descrita na secção IV.

a) Desempenho do modelo sem ruído no conjunto de dados de treinamento: Uma das contribuições deste artigo é a proposta de um modelo de aprendizado de máquina para identificar bugs de segurança usando apenas o título do bug como dados para a tomada de decisão. Tal permite a preparação de modelos de machine learning mesmo quando as equipas de desenvolvimento não querem partilhar relatórios de erros na íntegra devido à presença de dados confidenciais. Comparámos o desempenho de três modelos de machine learning quando preparados apenas com títulos de erros.

O modelo de regressão logística é o classificador com o melhor desempenho. É o classificador com o valor AUC mais elevado, de 0,9826, revocação de 0,9353 para um valor de FPR de 0,0735. O Classificador naive Bayes apresenta um desempenho ligeiramente inferior ao classificador de regressão logística, com um AUC de 0,9779, revocação de 0,9189 para um valor de FPR de 0,0769. O classificador AdaBoost tem um desempenho inferior em comparação aos dois classificadores mencionados anteriormente. Alcança um AUC de 0,9143 e uma revocação de 0,7018 para um FPR de 0,0774. A área sob a curva ROC (AUC) é uma boa métrica para comparar o desempenho de vários modelos, pois resume em um único valor a relação TPR vs. FPR. Na análise subsequente, vamos restringir a nossa análise comparativa aos valores de AUC.

Tabela I

A. Classe dos Dados Irrelevantes: classe única

Pode imaginar um cenário em que todos os erros são atribuídos à classe NSBR por predefinição e um erro só será atribuído à classe SBR se existir um especialista em segurança a analisar o repositório de erros. Este cenário é representado no cenário experimental de classe única, onde assumimos que pnsbr = 0 e 0 < psbr< 0,5.

Tabela II

Na tabela II, observamos um impacto muito pequeno no AUC para todos os três classificadores. O AUC-ROC de um modelo preparado com psbr = 0 em comparação com um AUC-ROC do modelo em que psbr = 0,25 difere em 0,003 para regressão logística, 0,006 para naive Bayes e 0,006 para AdaBoost. No caso de psbr = 0,50, o AUC medido para cada um dos modelos difere do modelo preparado para psbr = 0 em 0,007 para a regressão logística, em 0,011 para naive Bayes e em 0,010 para AdaBoost. O classificador de regressão logística preparado na presença de dados irrelevantes de classe única apresenta a variação mais pequena na métrica AUC, ou seja, um comportamento mais resistente, quando comparado com os classificadores naive Bayes e AdaBoost.

B. Classe do Dados Irrelevantes: independentes da classe

Comparamos o desempenho dos nossos três classificadores relativamente ao caso em que o conjunto de preparação é danificado por dados irrelevantes independente da classe. Medimos o AUC para cada modelo preparado com diferentes níveis de pbr nos dados de preparação.

Tabela III

Na Tabela III, observamos uma diminuição de AUC-ROC para cada incremento de dados irrelevantes na experiência. O AUC-ROC medido num modelo preparado com dados irrelevantes em comparação com um AUC-ROC de um modelo preparado com dados irrelevantes independentes de classe com pbr = 0,25 difere em 0,011 para regressão logística, 0,008 para naive Bayes e 0,0038 para AdaBoost. Observamos que os dados irrelevantes das etiquetas não afetam significativamente o AUC dos classificadores naive Bayes e AdaBoost quando o nível de dados irrelevantes é inferior a 40%. Por outro lado, o Classificador de regressão logística sofre um impacto na medição AUC para níveis de dados irrelevantes de etiqueta superiores a 30%.

Variação da AUC

Fig. 1. Variação de AUC-ROC em dados irrelevantes independentes da classe. Para um nível de dados irrelevantes de pbr =0,5, o classificador age como um classificador aleatório, ou seja, AUC≈0,5. Mas podemos observar que para níveis de dados irrelevantes mais baixos (pbr ≤0,30), o aprendiz de regressão logística apresenta um desempenho superior quando comparado com os outros dois modelos. No entanto, para 0,35≤ pbr ≤0,45, o aprendiz de naive Bayes apresenta métricas superiores de AUCROC.

C. Classe dos Dados irrelevantes: independentes da classe

No conjunto final de experimentos, consideramos um cenário onde diferentes classes contêm diferentes níveis de ruído, ou seja, psbr ≠ pnsbr. Incrementamos sistematicamente psbr e pnsbr de forma independente em 0,05 nos dados de preparação e observamos a alteração de comportamento dos três classificadores.

Logistic RegressionNaive BayesAdaBoost

As tabelas IV, V, VI mostram a variação de AUC à medida que os dados irrelevantes são aumentados em diferentes níveis em cada classe, para regressão logística na Tabela IV, para naive Bayes na tabela V e para AdaBoost na Tabela VI. Para todos os classificadores, observamos um impacto na métrica de AUC quando ambas as classes contêm um nível de dados irrelevantes superior a 30%. naive Bayes tem o comportamento mais robusto. O impacto sobre o AUC é muito pequeno mesmo quando os 50% da etiqueta na classe positiva são invertidos, desde que a classe negativa contenha 30% de etiquetas com dados irrelevantes ou menos. Neste caso, a diminuição no AUC é de 0,03. O AdaBoost apresentou o comportamento mais resistente dos três classificadores. Uma mudança significativa de AUC só acontecerá para níveis de dados irrelevantes superiores a 45% em ambas as classes. Neste caso, começamos a observar uma decadência de AUC superior a 0,02.

D. Sobre a Presença de Dados Irrelevantes no Conjunto de Dados Originais

O nosso conjunto de dados foi etiquetado por sistemas automatizados baseados em assinatura e por especialistas humanos. Adicionalmente, todos os relatórios de erros foram analisados e encerrados por especialistas humanos. Apesar de esperarmos que a quantidade de dados irrelevantes no nosso conjunto de dados seja mínima e não estatisticamente significativa, a presença de dados irrelevantes residuais não invalida as nossas conclusões. De fato, para fins de ilustração, suponha que o conjunto de dados original está corrompido por um ruído independente de classe igual a 0 < p < 1/2 independente e distribuído de forma idêntica (i.i.d) para cada entrada.

Se, para além dos dados irrelevantes originais, adicionarmos dados irrelevantes independentes da classe com probabilidade pbr i.i.d, os dados irrelevantes resultantes por entrada serão p∗ = p(1 − pbr )+(1 − p)pbr. Para 0 < p,pbr< 1/2, temos que o ruído real por etiqueta p∗ é estritamente maior do que o ruído que adicionamos artificialmente ao conjunto de dados pbr . Desta forma, o desempenho dos nossos classificadores seria ainda melhor se fossem preparados primeiro com um conjunto de dados completamente sem dados irrelevantes (p = 0). Em resumo, a existência de dados irrelevantes residuais no conjunto de dados real significa que a resistência contra dados irrelevantes dos nossos classificadores é superior à dos resultados aqui apresentados. Adicionalmente, se os dados irrelevantes residuais no nosso conjunto de dados forem estatisticamente relevantes, a AUC dos nossos classificadores tornar-se-ia 0,5 (uma estimativa aleatória) para um nível de dados irrelevantes estritamente inferior a 0,5. Não observamos esse comportamento nos nossos resultados.

VI. CONCLUSÕES E TRABALHOS FUTUROS

A nossa contribuição neste artigo é dupla.

Em primeiro lugar, demonstramos a viabilidade da classificação do relatório de erros de segurança baseado apenas no título do relatório de erros. Tal é particularmente relevante em cenários em que a totalidade do relatório de erros não está disponível devido a restrições de privacidade. Por exemplo, no nosso caso, os relatórios de erros continham informações privadas, como palavras-passe e chaves criptográficas e não estavam disponíveis para preparar os classificadores. O nosso resultado mostra que a identificação SBR pode ser realizada com elevada precisão mesmo quando apenas os títulos do relatório estão disponíveis. O nosso modelo de classificação, que utiliza uma combinação de TF-IDF e regressão logística, realiza-se num AUC de 0,9831.

Em segundo lugar, analisámos o efeito dos dados de validação e preparação mal etiquetados. Comparámos três técnicas de classificação de machine learning conhecidas (naive Bayes, regressão logística e AdaBoost) em termos da sua resistência face aos diferentes tipos e níveis de dados irrelevantes. Todos os três classificadores são resistentes a dados irrelevantes de classe única. Os dados irrelevantes nos dados de preparação não têm um efeito significativo no classificador resultante. A diminuição da AUC é muito pequena (0,01) para um nível de dados irrelevantes de 50%. Para os dados irrelevantes presentes em ambas as classes e que são independentes de classe, os modelos naive Bayes e AdaBoost apresentam variações significativas apenas na AUC quando preparados com um conjunto de dados com níveis de dados irrelevantes superiores a 40%.

Finalmente, os dados irrelevantes dependentes de classe têm um impacto significativo sobre o AUC quando existe mais de 35% de dados irrelevantes em ambas as classes. O AdaBoost demonstrou ser o mais resistente. O impacto sobre o AUC é muito pequeno mesmo quando a classe positiva tem 50% das etiquetas com dados irrelevantes, desde que a classe negativa contenha 45% de etiquetas com dados irrelevantes ou menos. Neste caso, a diminuição no AUC é inferior a 0,03. De acordo com o nosso conhecimento, este é o primeiro estudo sistemático sobre o efeito de conjuntos de dados irrelevantes na identificação de relatórios de erros de segurança.

TRABALHOS FUTUROS

Neste artigo, iniciámos o estudo sistemático dos efeitos dos dados irrelevantes sobre o desempenho dos classificadores de machine learning para a identificação de erros de segurança. Existem várias sequelas interessantes deste trabalho, incluindo: examinar o efeito de conjuntos de dados irrelevantes na determinação do nível de gravidade de um erro de segurança; compreender o efeito do desequilíbrio de classes sobre a resiliência dos modelos de preparação em dados irrelevantes; compreender o efeito dos dados irrelevantes que foram introduzidos de forma adversa no conjunto de dados.

REFERÊNCIAS

[1] John Anvik, Lyndon Hiew e Gail C Murphy. Who should fix this bug? Em Proceedings of the 28th international conference on Software engineering, páginas 361–370. ACM, 2006.

[2] Diksha Behl, Sahil Handa e Anuja Arora. A bug mining tool to identify and analyze security bugs using naive bayes and tf-idf. Em Optimization, Reliabilty, and Information Technology (ICROIT), 2014 International Conference, páginas 294–299. IEEE, 2014.

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann e Sunghun Kim. Duplicate bug reports considered harmful really? In Manutenção de Software, 2008. ICSM 2008. Conferência internacional do IEEE, páginas 337–345. IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse e Lofton Bullard. Identifying learners robust to low quality data. In Reutilização e Integração da Informação, 2008. IRI 2008. Conferência Internacional do IEEE, páginas 190–195. IEEE, 2008.

[5] Benoˆıt Frenay. Uncertainty and label noise in machine learning. Tese de Doutoramento, Universidade Católica de Louvain, Louvain-la-Neuve, Bélgica, 2013.

[6] Benoˆıt Frenay e 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 e Tao Xie. Identificação de relatórios de bugs de segurança por meio de mineração de texto: um estudo de caso industrial. Em Mining software repositories (MSR), 2010 7th IEEE working conference on, páginas 11–20. IEEE, 2010.

[8] Katerina Goseva-Popstojanova and Jacob Tyo. Identification of security related bug reports via text mining using supervised and unsupervised classification. Em 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), páginas 344-355, 2018.

[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger e Bart Goethals. Predicting the severity of a reported bug. Em Mining Software Repositories (MSR), 2010 7th IEEE Working Conference on, páginas 1–10. IEEE, 2010.

[10] Naresh Manwani e PS Sastry. Noise tolerance under risk minimization. IEEE transactions on cybernetics, 43(3):1146–1151, 2013.

[11] G Murphy e D Cubranic. Automatic bug triage using text categorization. Em In Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering. Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen e Oleksandr Pechenizkiy. Ruído de aula e aprendizagem supervisionada em domínios médicos: O efeito da extração de características. In null, páginas 708–713. IEEE, 2006.

[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre, e 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] PS Sastry, GD Nagendra e 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. Em FLAIRS Conference, páginas 269–273, 2001.

[16] Dumidu Wijayasekara, Milos Manic e Miles McQueen. Vulnerability identification and classification via text mining bug databases. In 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 e Jianling Sun. Automated identification of high impact bug reports leveraging imbalanced learning strategies. Em Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volume 1, páginas 227–232. IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Zhen Li e Hai Jin. Automatically identifying security bug reports via multitype features analysis. Em Australasian Conference on Information Security and Privacy, páginas 619–633. Springer, 2018.