Recentemente analisei mais a fundo alguns dados da nossa telemetria e, dentre as surpresas que tive, percebi que as vulnerabilidades encontradas nos dados referentes ao Brasil apresentam comportamentos que destoam bastante do que eu imaginava; as falhas utilizadas pelos cibercriminosos no país são extremamente antigas.

Para contextualizar um pouco mais sobre o ponto que quero trazer à luz neste artigo, considero importante ressaltar que, apesar de existirem muitas possibilidades, os cibercriminosos costumam se valer de duas principais portas de entrada para invadir ambientes: os phishings e os exploits.

Os phishings focam mais em atacar pessoas e a forma como se comportam em determinadas situações, induzindo as vítimas a realizarem ações que beneficiem os criminosos. Já os exploits tem uma abordagem mais voltada a interação com os softwares e serviços presentes no alvo e, nos piores casos, não depende de nenhum tipo de interação com pessoas. Como o próprio nome já sugere, ele visa explorar uma fraqueza presente em um software para trazer benefícios aos criminosos. Estas fraquezas, também chamadas de vulnerabilidades, podem estar presentes em quaisquer tipos de software em todos os tipos de sistemas operacionais existentes. Por motivos óbvios, todas as empresas que produzem softwares se preocupam em mantê-los livres de vulnerabilidades para que seus clientes não sofram nenhum tipo de ataque, ainda assim, eventualmente, vulnerabilidades podem ser encontradas e trazer risco ao software e a todo o ambiente onde ele se encontra. Os exploits são os softwares que conseguem se aproveitar destas vulnerabilidades para manipular o comportamento do software ou do sistema operacional e gerar algum resultado não previsto.

Pensando em formas de minimizar os impactos da descoberta de tais vulnerabilidades, a comunidade de segurança ao redor do mundo mantém um histórico descrevendo sua severidade, características e, por vezes, até mostrando o conteúdo do software feito para explorá-la, permitindo que os responsáveis por manter a segurança dos ambientes consigam ter insumos para mitigar os riscos associados a ela.

O primeiro ponto de preocupação que destaco é o resultado da seguinte equação: se todo software pode conter vulnerabilidades e se a tendência do uso da das tecnologias faz com que tenhamos cada vez mais softwares, logo, teremos cada vez mais vulnerabilidades. Infelizmente esta não é uma realidade nova para o mundo da cibersegurança, as vulnerabilidades descobertas e reportadas já vêm crescendo ano após ano.

Vulnerabilidades no mundo

Frequentemente publicamos informações em nosso blog referente as vulnerabilidades que de alguma forma tem se destacado. Todas elas podem trazer riscos aos ambientes, mas gostaria de destacar dois pontos que devem chamar mais a atenção de quem procura manter um ambiente seguro, as vulnerabilidades em softwares extremamente populares e as que permitem execução de comandos remotamente (RCE).

Dentre todas as que publicamos, destaco três:

- Follina (CVE-2022-30190): uma vulnerabilidade bastante significativa encontrada no Microsoft Support Diagnostic Tool (MSDT) que permitia execução de comandos remotamente (RCE), o comportamento anômalo poderia ser desencadeado a partir do momento em que a vítima abrisse um documento do Microsoft Office, como o Word por exemplo. Poucos dias após a divulgação da vulnerabilidade a Microsoft já possuía um patch de correção para ela.

- PwnKit (CVE-2021-4034): afetando o Polkit, um componente responsável por controlar privilégios no Linux, esta vulnerabilidade trabalha de uma forma diferente, mas é igualmente preocupante. Ao explorá-la o criminoso terá uma escalação de privilégios no sistema, permitindo que execute o que bem quiser. Diferente da vulnerabilidade anterior o PwnKit não permite o acesso inicial ao alvo e afeta diversas versões do mesmo, pois está presente desde 2009.

- Log4shell (CVE-2021-44228 e CVE-2021-45046): por fim, uma das vulnerabilidades mais críticas da história afetou o utilitário de criação de logs do Java, o Log4j. A vulnerabilidade descoberta permite a execução de comandos remotamente e foi considerada por alguns especialistas como a vulnerabilidade que nunca será mitigada por completo, tamanha a abrangência do uso desta ferramenta do Java em diversos tipos de aplicações.

Mesmo comentando sobre apenas três vulnerabilidades dentre todas as que foram reportadas entre 2021 e 2022, que já somam mais de 40 mil no momento em que escrevo este artigo, é possível ter uma ideia de quão significativos podem ser os danos caso elas estejam presentes no ambiente e sejam exploradas por cibercriminosos.

Para o mundo de segurança da informação estas vulnerabilidades já são consideradas bem antigas, pois datam de meses atrás, e isso nos leva ao segundo principal ponto de preocupação que gostaria de trazer.

A realidade das vulnerabilidades no Brasil

Se para o cenário de segurança as vulnerabilidades supracitadas são consideradas antigas a realidade do Brasil se mostra ainda mais preocupante. Nossa telemetria apontou que boa parte das ameaças detectadas relacionadas a vulnerabilidades reportadas datam de muito tempo atrás e, similar ao exemplo acima separei apenas três das vulnerabilidades mais detectadas por nossas soluções que se encaixem nos requisitos citados. Também vale lembrar que a vulnerabilidade do Log4Shell (CVE-2021-44228) apareceu como sendo a segunda vulnerabilidade mais detectada, porém, como já falei sobre ela acima optei por removê-la da lista.

- HTTP/Exploit.CVE-2021-41773: a vulnerabilidade reportada afeta o serviço do Apache Server na versão 2.4.49 e pode permitir que atacantes consigam mapear pastas e arquivos fora dos diretórios referentes a aplicação. Este tipo de ataque é conhecido como Path Transversal e não é tão crítico como os exemplos anteriores, mas ainda assim pode trazer problemas relacionados a confidencialidade das informações.

- CVE-2017-5638.Struts2: esta vulnerabilidade também afeta o serviço do Apache, mas diferente da anterior esta tem a maior criticidade possível atribuída a ela. Afetou as versões do Apache Struts 2 2.3.x até antes da versão 2.3.32 e 2.5.x até antes da versão 2.5.10.1 a vulnerabilidade explorava o comportamento inadequado resultante de mensagens de erro e exceções durante a tentativa de upload de arquivos, permitindo que criminosos executassem comandos remotamente.

- CVE-2015-1635: mais uma vulnerabilidade referente a servidores de página, porém agora afetando sistemas operacionais Windows nas versões 7, 8, 8.1, Server 2008 e Server 2012. Este CVE se refere ao HTTP.sys e permite que criminosos executem códigos remotamente ao enviarem requisições HTTP forjadas.

Como citei anteriormente, estes  são três dos exemplos de vulnerabilidades mais detectadas no Brasil e exemplificam o ponto que quero destacar, boa parte delas são extremamente antigas, algumas delas datando de antes 2010. Neste momento talvez surja o questionamento de porque estas vulnerabilidades deveriam ser preocupantes, já que datam de tanto tempo atrás, e a resposta é derivada do que os dados da telemetria nos trazem, com estas informações em mãos é possível inferir dois pontos importantes.

O primeiro deles é que mesmo após tanto tempo da divulgação da vulnerabilidade nós continuamos identificando tentativas de exploração das mesmas, isso significa que os criminosos continuam utilizando-as e tendo certa taxa de sucesso com elas. Não faria sentido para os cibercriminosos continuar usando algo que não trouxesse resultado algum.

Em segundo sabemos que ao menos uma certa amostragem dos ambientes de rede estão suscetíveis a estas vulnerabilidades extremamente antigas, ou seja, estes ambientes não passaram por atualizações de software de forma adequada e isso resulta em um ambiente altamente atrativo para os cibercriminosos.

Entendendo estas características que infelizmente se mostram presentes em ambientes de rede do Brasil, trago algumas recomendações de segurança para auxiliar a impedir que criminosos consigam ter acesso ao ambiente.

Atualize todos os softwares para a última versão estável: apesar de óbvia essa é sem dúvida uma das medidas mais baratas que podem ser seguidas para evitar que vulnerabilidades estejam presentes no ambiente. Como a incidência de alertas referentes a ameaças antigas é muito presente eu parto do princípio de que, por algum motivo, o ambiente não pode ser adequadamente atualizado, o que me leva as demais recomendações que visarão minimizar os impactos referentes ao não cumprimento deste primeiro ponto.

Proteja todos os dispositivos do ambiente: sejam eles servidores, estações de trabalho ou dispositivos móveis todos os dispositivos precisam estar protegidos com uma solução de segurança que, preferencialmente, também consiga monitorar conexões de rede e impedir eventuais tentativas de exploração de vulnerabilidades.

Não exponha servidores sabidamente vulneráveis: apesar de não ser uma opção viável para todos os tipos de servidores, avalie a possibilidade de não expor um serviço vulnerável. Uma forma bastante adotada para diminuir a exposição é a utilização de VPN, com ela qualquer usuário deste serviço precisará ser previamente cadastrado e o serviço não ficará exposto à internet diretamente.

Observação: explorações também podem ser originadas de redes internas.

Desinstale softwares que não estão sendo utilizados: uma das formas eficientes de diminuir a superfície de ataque para os criminosos é remover softwares que não são necessários para o ambiente. Sejam serviços ou softwares exclusivamente internos, quanto menor a quantidade deles menos esforço gasto na gestão de patching e, consequentemente, menos itens para procurar medidas de proteção.

WAF: acredito que esta seja a opção mais cara, mas, caso o ambiente realmente não possa ter outras hipóteses, pode ser interessante cogitá-la. Os WAFs (Web Application Firewalls) funcionam como uma camada adicional de segurança e podem ser configurados para impedir interações maliciosas com o serviço a ser protegido.

Entendo algumas necessidades que certos ambientes têm de não passarem pelos ciclos de updates tidos como tradicionais, mas reforço a importância de se possuir medidas de segurança que sejam minimamente equivalentes aos updates.

Caso tenha ficado com alguma dúvida ou tenha sugestões de temas relacionados à segurança da informação que gostaria que abordássemos nas próximas publicações, conte-nos nos comentários.