Ameaça oculta - análise de vulnerabilidade usando o gráfico de notícias

Quando você se depara com uma nova vulnerabilidade, qual é o primeiro pensamento? Obviamente, responda o mais rápido possível. No entanto, a velocidade é apenas uma das condições para uma luta eficaz contra ameaças à segurança da informação. Quando se trata de segurança corporativa, é igualmente importante determinar com precisão o que você deve responder primeiro. Uma ameaça subestimada pode causar séria perda ou perda de boa vontade. Mas se o número de vulnerabilidades está em constante crescimento, como avaliar rapidamente seu significado e não perder detalhes importantes?


Dinâmica de vulnerabilidades por grupo CVSS (fonte - vulners.com)

Para classificar vulnerabilidades de acordo com vários critérios, o CVSS Score (Sistema de Pontuação de Vulnerabilidade Comum) é tradicionalmente usado, classificando vulnerabilidades de acordo com vários critérios, da complexidade da exploração ao dano causado e outros parâmetros.

Parece, por que criar outra coisa - mas a Pontuação CVSS tem um ponto fraco - é baseada em estimativas de especialistas que não são suportadas por estatísticas reais.. Seria muito mais eficiente oferecer casos de especialistas que já foram selecionados de acordo com certos critérios quantitativos e tomar decisões com base em dados verificados - mas onde obter esses dados e o que fazer em seguida? Parece uma tarefa incomum e interessante para um datacenter - e foi esse desafio que inspirou a mim e à equipe do Vulners a um novo conceito para avaliar e classificar vulnerabilidades com base em um gráfico de informações relacionadas.

Por que gráficos? No caso das redes sociais e da mídia, os métodos gráficos têm sido utilizados com sucesso e com êxito para vários propósitos: desde a análise da distribuição de conteúdo no fluxo de notícias até as notas sobre a influência dos autores TOP nas opiniões dos leitores e no agrupamento de redes sociais por interesses. Qualquer vulnerabilidade pode ser representada como um gráfico contendo dados - notícias sobre alterações no software ou hardware e os efeitos causados ​​por eles.

Sobre dados


Não tive que coletar manualmente notícias sobre cada atualização, todos os textos necessários foram encontrados no banco de dados de vulnerabilidades aberto do vulners.com. Visualmente, os dados são os seguintes:



Cada vulnerabilidade, além de nome, data de publicação e descrição, possui uma família (NVD, scanner, exploração, etc.) que já foi atribuída a ele (classificação CVD (a seguir, CVSS é usado) v2), bem como links para notícias relacionadas.

Se você representar essas conexões esquematicamente na forma de um gráfico, uma vulnerabilidade ficará assim: o círculo laranja indica a publicação de origem ou pai, os círculos pretos indicam as notícias nas quais você pode clicar na página pai e os círculos cinza representam as notícias relacionadas, acessadas por Você só pode passar por todas as publicações indicadas por círculos pretos. Cada cor dos círculos é um novo nível do gráfico de informações relacionadas, de zero - a vulnerabilidade original, à primeira, segunda e assim por diante.



É claro que, ao visualizar um item de notícia, sabemos apenas o zero e o primeiro nível, portanto, para obter todos os dados, usamos o método de percorrer o gráfico em profundidade, o que nos permitiu desvendar o emaranhado de notícias desde o início até os nós conectados mais recentes (doravante denominado nó do gráfico). Nesse estágio, os problemas de otimização surgiram - a montagem do gráfico por um longo período levou muito tempo e teve que ser conjurada com um script e uma estrutura de dados. A propósito, decidi empacotar os dados finais em parquet para trabalhar mais com eles usando o spark sql, o que facilitou bastante a análise inicial.

Como são os dados do gráfico? A visualização nos ajudará a entender melhor sua natureza. A Figura 4 mostra um gráfico da vulnerabilidade conhecida pelo Heartbleed, mas não muito perigosa (apenas 5 dos 10 pontos na escala cvss).



Olhando para este magnífico "buquê" de notícias e explorações relacionadas, onde o ponto vermelho é a vulnerabilidade original, entendemos que o Heartbleed foi subestimado significativamente.

Usando esse exemplo, podemos concluir que os parâmetros de sistemicidade, duração e outros parâmetros de vulnerabilidade são estimados razoavelmente bem usando métricas de gráfico. Abaixo estão alguns exemplos de métricas de pesquisa que serviram de base para uma classificação alternativa:

  • o número de nós no gráfico - é responsável pela "amplitude" da vulnerabilidade, qual o tamanho que deixou em vários sistemas,
  • o número de subgráficos (grandes grupos de notícias) - é responsável pela granularidade do problema ou pela presença de grandes áreas problemáticas dentro da vulnerabilidade,
  • o número de explorações e correções relacionadas - fala sobre a explosividade das notícias e quantas vezes elas tiveram que ser "tratadas",
  • o número de tipos exclusivos e famílias de notícias no gráfico é sobre sistemática, ou seja, o número de subsistemas afetados pelo impacto da vulnerabilidade,
  • a duração da primeira publicação à primeira exploração, o tempo desde a primeira publicação até as últimas notícias relacionadas - sobre a natureza temporal da vulnerabilidade, se ela se estende com uma grande “cauda” de consequências ou se desenvolve e desaparece rapidamente.

Obviamente, essas não são todas as métricas; atualmente, existem cerca de 30 indicadores que complementam o conjunto básico de critérios CVSS, incluindo o aumento médio entre os níveis do gráfico de vulnerabilidade de notícias, a porcentagem de explorações no primeiro nível do gráfico e muito mais.

Abra a zona cinza


E agora um pouco de ciência e estatística de dados - afinal, as hipóteses precisam ser confirmadas nos dados, não são?

Para o experimento com uma escala alternativa e novas métricas, foram selecionadas as notícias publicadas em janeiro de 2019. São 2403 boletins e cerca de 150 mil linhas na coluna de notícias. Todas as vulnerabilidades de origem foram divididas em três grupos, de acordo com a pontuação do CVSS:

  • Alta - de 8 pontos inclusive.
  • Médio - de 6 inclusivos a 8 pontos.
  • Baixo - menos de 6 pontos.

Primeiro, vamos ver como a pontuação CVSS se correlaciona com o número de notícias relacionadas no gráfico, o número de tipos de notícias e o número de explorações:







Na imagem ideal, deveríamos ter visto uma clara separação de métricas em três grupos, mas isso não aconteceu, o que indicou a possível presença de uma zona cinzenta. qual o CVSS Score não define - este é o nosso objetivo.

O próximo passo lógico foi o agrupamento de vulnerabilidades em grupos homogêneos e a construção de uma nova escala.

Para a primeira iteração, foram escolhidos um classificador métrico simples e médias k e uma nova matriz de classificações foi obtida: os pontos iniciais (Médio, Baixo, Alto) são encontrados no eixo Y, ao longo do X, onde 2 são os maiores de acordo com as novas métricas de vulnerabilidade, 1 - novas vulnerabilidades, 0 são os menores.



Uma zona marcada com um oval (classe de vulnerabilidade 2 com uma classificação inicial baixa e média) - vulnerabilidades potencialmente subestimadas. A separação em novas classes também parece mais clara, que é o nosso objetivo: no







entanto, simplesmente confiar no modelo é uma má ideia, especialmente quando se trata de clustering não supervisionado, onde a resposta correta não é conhecida em princípio e você só pode confiar nas métricas de separação das classes obtidas. .

E é aqui que precisamos de conhecimento especializado - porque, para um bom teste e interpretação dos resultados, é necessário o conhecimento da área de assunto. Portanto, é desejável verificar o modelo pontualmente, por exemplo, removendo algumas vulnerabilidades para análise detalhada.

Abaixo estão algumas amostras brilhantes da zona cinza que têm uma pontuação baixa no CVSS, mas uma pontuação alta no gráfico - o que significa potencialmente exigir uma prioridade diferente para trabalhar com eles. Aqui está como eles se parecem em uma representação gráfica:

CVE-2019-0555 (pontuação CVSS 4.4, classe 2 do gráfico alto)





SMB_NT_MS19_JAN_DOTNET.NASL (pontuação CVSS 5.0, classe 2 do gráfico alto)





CVE-2019-1653 (pontuação CVSS 5.0, classe gráfica 2 - alta)





RHSA-2019: 0130 (pontuação CVSS 5.0, classe de gráfico 2 - alta)





Parece que o conceito foi confirmado por estatísticas e verificação de pontos; portanto, no futuro próximo, queremos finalizar e automatizar a coleção de métricas de gráfico e - possivelmente - o próprio classificador. Obviamente, ainda há muito trabalho a ser feito - coletar um grande número de novos gráficos por meses não abordados no estudo, mas isso apenas aumenta o entusiasmo, assim como a essência da tarefa. Como cientista de dados, posso dizer que o trabalho neste estudo foi uma experiência incrivelmente inspiradora, tanto em termos de tópico quanto de complexidade - mesmo o trabalho preparatório de engenharia com dados vagamente estruturados foi muito interessante.

Finalmente


Como dar um passo nas avaliações de especialistas para números reais e avaliar o inestimável?

Após o estudo, ficou claro que, em primeiro lugar, é necessária uma abordagem crítica não apenas para qualquer métrica ou dado, mas para o processo como um todo, porque o mundo é muito dinâmico e muda mais rapidamente do que metodologias e documentação. Sempre avaliado de uma maneira - por que não tentar mudar o ângulo de visão? Como nosso exemplo mostra, mesmo as hipóteses mais incomuns podem ser confirmadas.

Um papel importante é desempenhado pela disponibilidade de dados para os dataaentists - permite verificar rapidamente as hipóteses mais ousadas e entender melhor a essência da sua área de assunto em todas as suas manifestações. Portanto, se você ainda não está coletando ou excluindo dados "desnecessários", pense nisto: talvez haja muitas descobertas ocultas por lá. Este caso sugere que a segurança orientada a dados e a informação se complementam perfeitamente.

All Articles