A falácia da taxa base de detecção ou porque os antivírus, filtros antispam e motores de varredura funcionam pior do que prometem

terça-feira, 9 de abril de 2019

Antes de começar sua jornada diária, enquanto saboreia seu café da manhã, você abre sua fonte favorita de notícias sobre segurança da informação e tem sua atenção tomada por um anúncio de um fabricante de sistemas de detecção de intrusão (IDS – Intrusion Detection System):

NOSSO IDS É CAPAZ DE DETECTAR 99% DOS ATAQUES!!

“Hum, nada mal” você pensa enquanto toma outro gole de café e continua a ler as manchetes do dia. Ao abrir uma notícia, você se depara com um novo anúncio de outro fabricante de IDS:

NOSSO IDS É CAPAZ DE DETECTAR 99% DOS ATAQUES!!

À primeira vista, qual das duas ofertas é a melhor? A resposta parece óbvia, o melhor sistema é aquele que detecta mais ataques, ou seja, o que diz detectar 99,9% ao invés daquele que anuncia a detecção de 99%. Ou não? Imagine que você, ao continuar a navegar pelo site de notícias, encontra um anúncio que diz:

NOSSO IDS É CAPAZ DE DETECTAR 100% DOS ATAQUES!!

“Agora sim!” você pensa seguro de que a terceira solução é a melhor, sem sombra de dúvidas.

Pense um pouco, se ele detecta tudo, isso é feito a que preço? Veja que é fácil ter um IDS com uma taxa de detecção de 100%, basta que ele marque todo e cada um dos pacotes de entrada na rede como maliciosos. Ou seja, haverá 100% de detecção e 100% de falsos positivos. Aqui acaba de entrar em cena um segundo ator que, normalmente, é ignorado quando se avalia a efetividade de sistemas de detecção de ataques: quantas vezes o sistema dispara um alar sem que haja nenhum ataque? 

O problema da detecção.
Muitas aplicações de segurança enfrentam o desafio de detectar um ataque, uma anomalia ou um comportamento malicioso: 
  • IDS devem detectar pacotes maliciosos em meio a tráfego legítimo; 
  • Filtros Anti-SPAM devem encontrar e-mails SPAM entre aquele convencional; 
  • Antivírus devem encontrar malwares camuflados entre arquivos inócuos; 
  • Firewall de aplicação devem separar as URLs maliciosas das benignas;
  • Detectores de metais em aeroportos vão disparar alarmes para armas e objetos metálicos perigosos daqueles inofensivos;
  • Scanners de vulnerabilidade devem alertar sobre falhas de segurança em serviços ou códigos fonte; 
  • As ferramentas de inteligência digital como o Aldara devem distinguir se uma conversação em redes sociais vai se tornar uma crise de reputação para a marca ou se um perfil no Twitter é ou não um bot, ou mesmo se pertence a uma célula terrorista; 
  • Ferramentas de análises de logs devem identificar eventos correlacionados em um ambiente;  
  • Ferramentas de identificação de protocolo de rede devem categorizar corretamente cada um dos pacotes de rede; 
  • Os detectores de mentiras devem discernir se algum suspeito diz a verdade ou mente; 
  • Há muitos outros e você pode dar mais exemplos nos comentários! 
Apesar da diferença entre os sistemas de segurança citados acima, todos eles possuem uma característica comum: produzem alertas quando consideram que encontraram um positivo verdadeiro (true positive ou TP, na sigla em inglês). Mas esses sistemas não são perfeitos e produzem alertas quando não há uma atividade maliciosa ou anómala, o que se denomina falso positivo (false positive ou FP, na sigla em inglês). A tabela seguinte mostra todos os possíveis estados de resposta de um sistema de detecção ao se deparar com um incidente. Se o sistema detecta de maneira correta o incidente, está produzindo um positivo verdadeiro (TP), caso haja um incidente não indicado pelo sistema, se criará um falso negativo (FN). Do mesmo modo, se não há um incidente e o sistema dispara alarmes, produz um falso positivo (FP) e, finalmente, quando se produz um negativo verdadeiro (TN) não há alerta nenhum. 

Tabelas de alarme imagem

Os alarmes falsos importam tanto como as detecções verdadeiras.
Vamos imaginar um sistema de detecção qualquer, por exemplo um IDS que detecta 99% dos ataques e marca como malicioso 99% dos pacotes que são realmente nocivos. Em outas palavras, a taxa de detecção (detection rate ou DR), também chamada de taxa de positivos verdadeiros (true positive rate ou TPR) é 0,99. Ao se deparar com um pacote que não é malicioso, o mesmo sistema será capaz de em 99% dos casos indicar que o mesmo é legítimo, assim a taxa de alarmes falsos (false alert rate ou FAR), também chamada de taxa de falsos positivos (false positive rate ou FRP) é 0,01. É correto afirmar que em uma rede convencional a proporção de pacotes maliciosos frente aos legítimos é extremamente baixa. Nesse exemplo, suponhamos que só um em cada 100.000 pacotes seja malicioso (uma razão bem conservadora), nas condições apresentadas acima o IDS identificaria a ameaças, seguindo sua taxa de detecção. Qual é a probabilidade que o pacote seja, realmente, malicioso? Não se precipite, pense uma segunda vez.

Agora pense na questão uma terceira vez. Tem a resposta? Chegaremos a ela em um passo a passo. Na tabela a seguir vamos analisar um exemplo de tráfego de redes com 10.000.000 pacotes analisados, seguindo nossa DR acima, somente 1 em cada 100.000 são maliciosos, ou seja 100. Destes 99% serão identificados corretamente como maliciosos, ou seja, 99 pacotes, enquanto somente 1% ou um único pacote não será detectado como malicioso e não disparará nenhum alarme. Preenchemos com esses dados a primeira coluna. De outra lado, os 9.999.900 pacotes restantes são legítimos e, se o alarme soar erroneamente para 1% deles, teremos 99.999 pacotes, enquanto os restantes 99% não soarão alarme nenhum, ou seja 9.899.901 pacotes. Temos a segunda coluna. Obviamente as linhas e colunas tem que se somar, como segue: 
Tabla alarmas imagem

Com essa tabela, podemos responder com rapidez a pergunta anterior: qual é a probabilidade de um pacote legítimo ser, na verdade malicioso, se o sistema de detecção não o marcou como tal? 

A primeira coluna oferece as respostas: dos 100.098 alertas gerados, somente 99 correspondem a pacotes maliciosos, ou seja, a probabilidade de que o alerta seja um positivo verdadeiro é mínima: 0,0989031%! Sim, você pode refazer os cálculos. Os sistemas não acertarão nem uma em cada mil vezes que dispararem um alerta. Bem-vindo ao problema dos falsos positivos! 

Muita gente fica impressionada com esse resultado: como é possível que o sistema falhe tanto se a taxa de detecção é 99%? Porque o volume de tráfego legítimo é muito maior do que o te tráfego malicioso! 

O seguinte diagrama de Venn ajuda a entender melhor o que acontece. Ainda que não esteja em escala, mostra como o tráfego legítimo (¬M) é muito mais frequente que o malicioso (M), de fato quase 100.000 vezes mais frequente. A resposta para a pergunta se encontra na proporção entre a área marcada como “3” e a área completa de “A”, cuja diferença de tamanho é notável. 

Diagrama de Venn imagemO maior paradoxo é que à medida em que melhora a taxa de detecção (DR) desse hipotético IDS, não se muda os resultados já que a taxa de falsos alarmes não será alterada. Por exemplo, no caso extremo de se adotar uma taxa de detecção igual a 1,0, se os outros parâmetros de mantém intactos, quando o IDS disparar um alarme, a probabilidade de que esse alarme seja real ainda será mínima: 0,0999011%. Vemos que ele acerta só uma a cada mil vezes o que, ao final, fará você ignorar os alertas. A única solução passa por melhorar a taxa de falsos positivos, aproximando-a de zero tanto quanto possível. 

O gráfico a seguir mostra como evolui a efetividade da detecção à medida em que diminuímos a taxa de falsos positivos, representada aqui como P(A|¬M) que vai mudando a probabilidade P(M|A) de que exista realmente uma atividade maliciosa (M) quando o sistema dispara um alerta (A). Examinando o gráfico, podemos perceber que ainda que melhoremos muito a taxa de detecção, nunca de superará a efetividade máxima possível, a não ser que baixemos a taxa de alarmes falsos.


Eficácia do detector imagemEm realidade, os resultados são desoladores em certo ponto: mesmo com uma taxa de detecção perfeito de 100% (P(A|M) = 1,0), para alcançar uma efetividade superior a 50%, P(M|A) > 0,5, teríamos que reduzir a taxa de falsos positivos para menos de 1,E-05, algo praticamente impossível. 

Em resumo, fica claro que a efetividade de um sistema de detecção (de malware, ataques de rede, URLs maliciosas, span, etc.) não depende tanto de sua capacidade de detecção, mas da de reduzir falsos alarmes. 

Porque não se pode ignorar a taxa base quando se avalia a efetividade de um sistema de detecção?
Quando você for avaliar um sistema, considere a relação de três variáveis: 

  • Taxa de detecção: quão bem o detector identifica um evento malicioso como malicioso, deve ser idealmente DR=1,0. Esse dato é bem destacado pelo fabricante, principalmente quando atinge o 100% 
  • Taxa de falsos alarmes: quanto o sistema identifica um evento legítimo como tal, sem marca-lo como malicioso. Idealmente essa deve ser FAR=0,0. Na prática, esse valor é muito distante do ideal, encontramos comumente valores entre 1% e 25% 
  • Taxa base: qual a porcentagem de eventos é maliciosa no contexto analisado. Quanto mais alto esse valor, ou seja, quanto mais perigoso for o ambiente, mais eficiente será o detector, simplesmente porque há mais eventos maliciosos e, logicamente, ao marcar um evento como tal se aumenta a probabilidade de acerto. O mesmo detector em ambientes diferentes vai parecer melhor como que sem explicação. Na realidade, a única coisa que ocorre é que quanto mais ataques você recebe, mais vezes acertará identificando qualquer coisa como ataque. 

Os fabricantes enfatizam o primeiro valor e omitem os outro. Agora você sabe que a taxa de falsos alarmes é tão importante como a de detecção. Uma organização pode gastar milhares de horas investigando falsos alarmes em malwares, IDSs, logs, spam, etc. e-mail importantes ou arquivos críticos poderiam ser postos em quarentes, o até apagados. No caso de a FAR ser muito elevada, o sistema se torna lento e consome tantos recursos de validação de alertas que chega até a ser desativado ou ignorado por completo. Nesse ponto você atingiu a fadiga de alarmes

Em uma época em que a maioria dos fabricantes desse tipo de ferramenta alcança taxas de detecção perto dos 100%, preste atenção nos falsos positivos. E lembre-se de que a taxa base vai influenciar totalmente a efetividade de qualquer solução. Quanto menos prevalente seja o problema, mais vezes vai gritar “perigo! perigo!”.

Gonzalo Álvarez Marañón
Inovação e laboratório na ElevenPaths

Nenhum comentário:

Postar um comentário