julho 10, 2006

[Segurança] Métricas para as vulnerabilidades

No início deste ano, vários órgãos (CERT, NIST, FIRST, etc) e empresas criaram um novo padrão de métricas para dimensionar o impacto das vulnerabilidades de software de uma forma mais precisa e consistente, chamado Common Vulnerability Scoring System (CVSS).

A capacidade de mensurar as vulnerabilidades é extremamente importante para o mundo profissional, pois fornece a base para um processo padrão de análise de riscos e de priorização das ações e respostas necessárias após a descoberta de novas ameaças.

No CVSS as métricas foram divididas em três grupos, para um total de 12 atributos associados às vulnerabilidades. As métricas básicas (Base Metrics) contêm as qualidades que são intrínsecas a toda vulnerabilidade, uma característica que não muda com o tempo nem mesmo em ambientes diferentes. As métricas temporais (Temporal Metrics) contêm as características que evoluem de acordo com o ciclo de vida da vulnerabilidade, e as métricas ambientais (Environmental Metrics) representam aquelas características que são relacionadas a forma como o ambiente operacional está implantado.

As sete métricas Básicas (Base Metrics), que representam as características mais fundamentais e imutáveis de uma vulnerabilidade são:
  • Access Vector: indica se uma vulnerabilidade é explorada localmente ou remotamente
  • Access Complexity: mede a complexidade requerida para que um atacante consiga explorar o sistema alvo
  • Authentication: indica se um atacante necessita ou não ser autenticado no sistema para conseguir explorar a vulnerabilidade
  • Confidentiality Impact: mede o impacto na confidencialidade (nenhum / parcial / completo)
  • Integrity Impact: indica o impacto na integridade
  • Availability Impact: impacto na disponibilidade
  • Impact Bias: permite atribuir maior impacto em um dos pilares da CIA sobre os demais


São três as características temporais (Temporal Metrics):
  • Exploitability : indica se é possível ou não explorar a vulnerabilidade, podendo ser: "Unproven" (não há um exploit conhecido); "Proof of Concept" (foi criado uma prova de conceito inicando que a ameaça existe); "Functional"(quando um expoit está disponibilizado) e "High" (quando a vulnerabilidade está sendo explorada por um código malicioso ou mesmo manualmente)
  • Remediation Level : informa se há uma solução conhecida: "Official Fix" quando o fabricante disponibilizou uma correção/patch; "Temporary Fix" (fornecida uma correção temporária pelo fabricante); "Workaround" e "Unavailable"
  • Report Confidence: representa o grau de confiança na existência da vulnerabilidade e na credibilidade de sua divulgação (Unconfirmed/Uncorroborated/Confirmed)

As métricas associadas ao ambiente (Environmental Metrics) são as únicas que são definidas de acordo com a realidade de cada empresa, e portanto podem ser manipuladas pelos gestores, consultores e auditores para representar a realidade em sua corporação. São duas:
  • Collateral Damage Potential: mede o potencial de dano, podendo representar o risco de perda do equipamento físico, os danos de propriedade ou a perda de vida.
  • Target Distribution: indica o tamanho relativo da quantidade de sistemas que são suscetíveis à vulnerabilidade (None; Low até 15%; Médio até 49% ou High - se acima de 50% dos sistemas são vulneráveis).

O processo de Scoring irá definir o valor final resultante da aplicação de todas as métricas, combinando todos os valores de acordo com fórmulas específicas.
As Base Metrics são definidas pelo fabricante e não se espera que mudem. As Temporal Metrics também são calculadas pelos fabricantes e representa o nível de urgência existente naquele momento. As Environmental Metrics são calculadas pelas empresas em função de sua realidade. Da combinação destes três grupos obtêm-se o score final.

Pode-se utilizar a calculadora online na página do NIST ("Common Vulnerability Scoring System Calculator") ou uma planilha excel construída pelo FIRST.

Todo este sistema de métricas pode ser representado sinteticamente através de vetores ("CVSS vectors" ). As métricas base ficam da seguinte forma:
AV:[R,L]/AC:[H,L]/Au:[R,NR]/C:[N,P,C]/I:[N,P,C]/A:[N,P,C]/B:[N,C,I,A]

e as métricas temporais são anexadas ao final do vetor com a sintaxe a seguir:
/E:[U,P,F,H]/RL:[O,T,W,U]/RC:[U,Uc,C]

Esta sintaxe está descrito em uma página específica no site do NIST (http://nvd.nist.gov/cvss.cfm?vectorinfo).


Exemplo:

A vulnerabilidade do Excel descoberta recentemente em 16/jun/06 (que permite a usuários remotos executarem códigos arbitrários), indicada no site do cert.org como TA06-167A, recebeu a Vulnerability Note VU#802324 e o CVE Name CVE-2006-3059 .

Na página do National Vulnerability Database (NVD) do NIST há a descrição do problema pelo seu identificador CVE-2006-3059 e nele é apontado o score CVSS como sendo 5.6 (médio).

O cálculo detalhado pode ser visto na página específica, acessada por um link colocado no resultado indicado como "CVSS Severity". Neste link as métricas são passadas como parâmetro ((AV:R/AC:H/Au:NR/C:P/I:P/A:P/B:N). Nesta página é possível alterar as medidas e obter um novo score de forma a representar a realidade da empresa.


Este novo padrão de métricas para as vulnerabilidades vem sendo adotado pela indústria. A principal vantagem é no auxílio para a padronização das atividades de análise de riscos, e consequentemente pode ajudar numa avaliação mais precisa dos riscos operacionais e na definição do nível de criticidade/urgência na tomada de decisões e ações.

Outras fontes: NIST; FIRST; FAQ; CVSS-Guide

Um comentário:

Wagner Elias, CBCP disse...

Perfeito mestre Anchises, sem dúvida uma grande ferramenta para se aplicar em Security Assessment.

Abs.

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.