Em busca da estratégia de patching perfeita

Pesquisadores na RSAC 2019 informam sobre o atual cenário de vulnerabilidades e construíram um modelo que ajuda com uma estratégia efetiva de patching.

“Desculpe, senhor, você tem um momento para falar sobre atualizações de segurança?”

“Não, ocupado demais instalando patches.”

É sempre válido pensar a efetividade (ou não) é sua política de gerenciamento de patches.
Em um mundo perfeito, você instalaria os patches de todos os softwares em uso na sua empresa logo no lançamento. Mas na vida real, as coisas são um pouco mais complicadas, e nunca há tempo o suficiente para todos – então tem de priorizar. Mas qual a melhor forma de fazer isso?

Na conferência RSA de 2019, Jay Jacobs do Cyenta Institute e Michael Roytman da Kenna Security, apresentaram o estudo “A Etiologia da Exploração de Vulnerabilidades.” O relatório aborda quais vulnerabilidades valem maior atenção e como melhorar dramaticamente a instalação de patches e a estratégia de atualização de segurança.

A premissa básica é que nem todas as vulnerabilidades são de fato exploradas. Assim, diversas atualizações podem ser postergadas, priorizando-se aquelas cujas falhas podem de fato (e provavelmente serão) usadas para um ataque. Mas como diferenciar as “perigosas” das “inofensivas”?

Equipados com a base de dados de CVE (Vulnerabilidades e Exposições Comuns) e as bases de dados de exploits à disposição do público, além das informações de análises de vulnerabilidades e sistemas IPS/IDS (um total de 7,3 bilhões de ataques registrados e 2,8 milhões de vulnerabilidades em 12 milhões de sistemas), os pesquisadores construíram um modelo que desempenha perfeitamente esta tarefa. Para colocá-lo nesta perspectiva, é necessário uma rápida análise do panorama de vulnerabilidades de segurança.

Quantas CVEs existem por aí?

Qualquer especialista de segurança da informação afirmará que o número de vulnerabilidades conhecidas é imenso. Mas não muitos sabem o número exato. No momento, são 108 mil CVEs publicadas.

Tenha em mente também que nos últimos anos, a taxa de publicações mensais cresceu: se de 2005 a 2017 entre 300 e 500 CVEs eram publicadas mensalmente, no fim de 2017 a médiapassou dos 1.000 e ficou nisso desde então. Uma dezena de milhares de bugs por dia!
A existência de um exploit só vem à tona pouco antes ou depois de ser publicado. Há exceções, mas na maioria dos casos a janela é de duas semanas da publicação da CVE.  Então, CVEs demandam resposta rápida.
Não é preciso dizer que as taxas de instalação de atualizações ficam para trás. Em média, um mês depois da detecção, apenas um quarto das vulnerabilidades são corrigidas. Leva 100 dias para eliminar metade, e um quarto permanece sem remediação por um ano.
Mais de 2/3 das vulnerabilidades sem patches que existem se encontram em produtos de três fabricantes:
Nesse meio tempo, 77% dos CVEs não têm exploit publicado. Cabe ressaltar que nem todas as vulnerabilidades publicadas são encontradas em ambiente real – apenas 37 mil das 108 mil CVEs existentes. E apenas 5 mil CVEs existem e são exploráveis. São essas vulnerabilidades que devem ser priorizadas – elas só precisam ser identificadas corretamente.

Estratégias de correção existentes

Os pesquisadores mediram a relevância das estratégias de atualização a partir de duas métricas: a parcela de vulnerabilidades “perigosas” no número total daquelas corrigidas (com eficiência) e por outro lado, a parcela de vulnerabilidade corrigidas no total daquelas perigosas (cobertura).
Uma das estratégias de patching mais aceitas é baseada no chamado Common Vulnerability Scoring System (CVSS), no qual prioridades são associadas a notas do CVSS acima de determinado valor. Calcular eficiência e cobertura para o CVSS 10, obtivemos 23% e 7% respectivamente. É interessante ressaltar que o mesmo resultado (pelo menos por essas métricas) pode ser atingido pela instalação aleatória de patches.
A abordagem mais comum – priorize tudo com CVSS “alto” (7 ou maior) – produzindo resultados bem melhores. Essa abordagem não é ruim de forma geral, mas consome muito tempo e significa ter que priorizar a instalação de muitos patches.

Uma estratégia alternativa seria priorizar as atualizações por vendedor. No fim, desenvolvedores possuem taxas diferentes do número de exploits no número total de CVEs, de forma que seria lógico priorizar os produtos que contém vulnerabilidades com maior probabilidade de ser explorada.

Contudo, baseado na eficiência e cobertura, essa estratégia é pior que atualizar aleatoriamente – a metade é efetiva.
Então, a longo prazo, essa abordagem é menos relevante que as baseadas em CVSS.

Modelo computacional de probabilidade de exploração de vulnerabilidades

Isso nos leva de volta ao modelo construído pelos pesquisadores. Comparar dados das descrições do CVE, publicamente disponíveis em bases de dados de exploits, IPS/IDS, a equipe foi capaz de identificar uma diversidade de sinais influenciando a probabilidade de vulnerabilidades sendo exploradas na prática.

Por exemplo, por um lado, sinais como de um CVE referente a Microsoft, ou a presença de um exploit no metasploit, aumentou drasticamente a chance de exploração da vulnerabilidade em questão.

Alguns sinais, por outro lado, reduziram a chance de exploração – como uma vulnerabilidade no navegador Safari, um exploit publicado no ExploitDB (pouco conveniente para propósitos práticos), a presença dos termos “autenticado” ou “memória gratuita dupla” na descrição do CVE, e outros. Combinando esses fatores, os pesquisadores conseguiram computar a probabilidade de qualquer vulnerabilidade em particular ser explorada.

Para verificar a precisão do modelo, os pesquisadores compararam suas previsões com dados de ataques reais: Descobriram o seguinte:

  • Para vulnerabilidades com probabilidade de exploração mínima, o modelo funciona bem.
  • O modelo tende a superestimar a possibilidade de exploração de vulnerabilidades por meio de uma média de probabilidades.
  • Para vulnerabilidades com chance de exploração alta, o modelo tende a subestimar o risco.

Dito isso, o modelo não é perfeitamente preciso, mas funciona como um todo. Nessa base, os pesquisadores criaram três estratégias de patching: alta eficiência, equilibrada e máxima cobertura. A estratégia equilibrada, por exemplo, consegue o dobro de eficiência de CVSS com nota maior que 7 com melhor cobertura (63% vs; 52%) e metade do esforço (isto é, o número de patches instalados); Vale pensar sobre, não é?
Por último, algumas dicas dos pesquisadores sobre o que fazer:

  • Comprove se você usa apenas CVSS como estratégia de patch.
  • Explore como os registros de vulnerabilidades são fechados/abertos na sua infraestrutura;
  • Comece a coletar os dados de seus sensores sobre exploits usados em ataques contra seus recursos;
  • Quando tiver coletado uma quantidade significante de dados, use-o para calcular eficiência, cobertura e esforço para sua infraestrutura.
  • Compare valores com outras estratégias de priorização.

Concordamos com os pesquisadores que aplicar patches manualmente sem uma estratégia clara é uma perda de recursos. Contudo, nossa abordagem é um pouco diferente: o Kaspersky Systems Management (parte da solução do ) emprega monitoramento de vulnerabilidade e instalação de subsistemas e patches.

Torna-se possível rapidamente identificar, priorizar e fechar as brechas. Além dos dados da CVSS, nossa priorização usa informação da Kaspersky Security Network. Por exemplo, se nossos sistemas veem que uma vulnerabilidade está sendo explorada, sua prioridade aumenta. Mais detalhes sobre a tecnologia aqui.

Dicas