O que é um zero-day? Explicando termos de segurança

O que é um zero-day? Explicando termos de segurança

Se você não é do tipo de pessoa que passa horas do dia lendo textos sobre segurança informática, alguns termos que não são fáceis de deduzir podem gerar dúvidas. Um dos que mais causam questionamentos é o 0-day, que iremos analisar no post de hoje. Então, o que é um 0-day? Na ESET o definimos

Se você não é do tipo de pessoa que passa horas do dia lendo textos sobre segurança informática, alguns termos que não são fáceis de deduzir podem gerar dúvidas. Um dos que mais causam questionamentos é o 0-day, que iremos analisar no post de hoje. Então, o que é um 0-day? Na ESET o definimos

Se você não é do tipo de pessoa que passa horas do dia lendo textos sobre segurança informática, alguns termos que não são fáceis de deduzir podem gerar dúvidas. Um dos que mais causam questionamentos é o 0-day, que iremos analisar no post de hoje.

Então, o que é um 0-day? Na ESET o definimos como:

Uma nova vulnerabilidade que ainda não conta com patch ou revisões e pode ser empregada para realizar um ataque. O nome 0-day (dia zero) faz referência a inexistência de revisões para minimizar o aproveitamento da vulnerabilidade. Estas são algumas vezes usados com os trojans, rootkits, vírus, worm e outros tipos de malware para ajudá-los a propagarem-se, infectando mais computadores. Também se pode encontrar o termo escrito como “0day”, “zeroday” e “zero-day”.

No entanto, o que isso significa exatamente? Antes de nos aprofundarmos em “0-day”, vamos começar analisando, com mais exatidão, o que significam as vulnerabilidades e os exploits.

Vulnerabilidades e exploits

Você pode pensar no software informático como se tivesse a estrutura de uma porta de tela metálica: está composta por milhões de linhas de código entrelaçadas. Com a exceção de que, no caso do software, o entrelaçado desses fios costuma ser bastante complicado: em lugar de ser visto como uma simples tela, se assemelha mais a um prato de espaguetti. Isso normalmente dificulta bastante a tarefa de encontrar pontos fracos dentro do código. Até as ferramentas de verificação automatizadas, às vezes, apresentam problemas para analisar o código.

Para explicar de uma forma mais simples, os humanos criaram o software. Não são infalíveis e, às vezes, não podem verificar todas as combinações possíveis em que as pessoas podem chegar a usar o código. Ocasionalmente, seja através de uma pesquisa minuciosa ou por um uso indevido acidental, se pode chegar a encontrar um desses pontos fracos. As chamadas “vulnerabilidades” de software.

Quando ocorre uma vulnerabilidade, consequentemente é gerado um ponto fraco que faz com que os programas se comportem de forma estranha. Se alguém descobre a presença de uma vulnerabilidade, pode utilizar esse comportamento estranho para criar uma falha por onde os atacantes ingressam e conseguem que o próprio código malicioso seja executado no computador da vítima.

Algumas vezes, o comportamento estranho simplesmente ocasiona o bloqueio de um programa. Existe uma grande variedade de resultados possíveis, dependendo do erro específico. O código que usam para criar essa falha ou provocar o bloqueio do programa tem como objetivo aproveitar a área vulnerável do software. Por essa razão se chama “código exploit” (programa que aproveita vulnerabilidades) ou, para abreviar, “exploit”.

De quantos dias estamos falando?

Agora que você já sabe o que são as vulnerabilidades e os exploits, o que queremos dizer com “0-day”? Como se contam “zero” dias?

Até o momento em que o fabricante do software lança uma revisão que corrige uma vulnerabilidade, se considera “vulnerabilidade 0-day”. Se existe um código exploit disponível para essa vulnerabilidade, é um “exploit 0-day”. O número “0”, neste caso, conta a quantidade de dias desde que está disponível a revisão correspondente para o público.

O caso ideal ocorre quando um pesquisador (que tenha presente os melhores interesses do público) descobre a vulnerabilidade e a informa ao fabricante do software, para que resolva o problema antes que cause prejuízos. Lamentavelmente, no mundo real, às vezes, é o autor do malware quem descobre o problema e o resultado é naturalmente muito mais problemático para quem usa esse software com vulnerabilidades; em especial porque os criadores de malware não costumam ser tão “bonzinhos” para compartilhar com o fabricante uma vulnerabilidade descoberta.

Neste caso, o fabricante costuma se informar sobre o problema depois que o pesquisador recebe uma mostra da ameaça que está aproveitando essa vulnerabilidade. Este foi o caso das três vulnerabilidades em Adobe mais recentes, que foram aproveitadas pelos autores de malware para atacar os computadores dos usuários.

Também vale a pena mencionar que, quando um fabricante lança uma revisão, não significa que é o fim das atividades dos autores de malware para essa vulnerabilidade. Como os cibercriminosos sabem que as pessoas em geral adiam a atualização do equipamento por dias, semanas e, inclusive anos, as atividades maliciosas podem chegar inclusive a aumentar para vulnerabilidades conhecidas que já contam com revisões disponíveis. Enquanto o exploit der um bom retorno de inversão, os criadores seguirão utilizando-o.

Em resumo, “0-day” se refere a um problema que ainda não conta com uma solução. Esta é uma das razões pelas quais recomendamos ter uma proteção em várias camadas. Ninguém nunca sabe quando ocorrerá um problema, mas se contar com uma estratégia de segurança integra, que não se baseia apenas em um só tipo de software ou de tecnologia, terá mais possibilidades de enfrentar a tempestade inevitável sem graves prejuízos.

O quando antes você aplicar as revisões e as atualizações do fabricante dos programas que utiliza, seja por meio de um site ou uma loja virtual de aplicativos móveis reconhecida e confiável, reduzirá o risco de ser mais uma vítima de alguma vulnerabilidade.

Discussão