Vulnerabilidades, exploits e patches: por que é necessário atualizar seu software?

Vulnerabilidades, exploits e patches: por que é necessário atualizar seu software?

Nossos amigos do Heimdal Security às vezes escrevem artigos que coletam ideias de especialistas. Eu acredito que tiveram pena de um pobre e velho expert em segurança e, por isso, em algumas ocasiões me pediram para escrever a minha opinião como especialista para incluir em um desses textos. Na primeira oportunidade se tratou de um

Nossos amigos do Heimdal Security às vezes escrevem artigos que coletam ideias de especialistas. Eu acredito que tiveram pena de um pobre e velho expert em segurança e, por isso, em algumas ocasiões me pediram para escrever a minha opinião como especialista para incluir em um desses textos. Na primeira oportunidade se tratou de um

Nossos amigos do Heimdal Security às vezes escrevem artigos que coletam ideias de especialistas. Eu acredito que tiveram pena de um pobre e velho expert em segurança e, por isso, em algumas ocasiões me pediram para escrever a minha opinião como especialista para incluir em um desses textos.

Na primeira oportunidade se tratou de um artigo compilado por Aurelian Nagan, intitulado “50+ Internet Security Tips & Tricks from Top Experts”. Na segunda vez, a compilação era da Andra Zaharia e se chamou “The Most Common Mistakes These 27 Cyber Security Experts Wish You’d Stop Doing”. E há pouco tempo, Andra me convidou para responder seis perguntas sobre diversos aspectos da instalação de patches.

A ideia me entusiasmou muito, mas minhas respostas iam se convertendo em um documento cada vez mais extenso que estava mais parecido com o romance Guerra e Paz (escrito por Lev Nikolayevich Tolstoi), embora por serem prolongadas e não por sua qualidade. Então foi mais apropriado escrever um post próprio sobre o tema – bom, na realidade foram dois.

Como estes artigos de compilações de ideias de experts tendem a atraer respostas de pessoas profundamente conhecedoras dos temas tratados, recomendo que você os leia. Provavelmente, quando este post for publicado, o artigo da Heimdal também já esteja disponível.

Estas são as primeiras perguntas que respondi:

“Como expert em cibersegurança, como prioriza a instalação de patches em um enfoque de proteção de dados em múltiplas camadas?”

Felizmente, meus dias na prática da pesquisa e a administração de segurança já ficaram para trás. Agora, como autor e editor, preciso relativamente de poucos hardware e apenas alguns aplicativos que sejam de uma confiança razoável.

Por outro lado, os aplicativos móveis que uso são (em geral) os essenciais, cuja segurança se atualiza automaticamente e que me permitem ter um controle suficiente para garantir a mínima interrupção no meu trabalho.

No entanto, a natureza do meu trabalho implica que eu me mantenha atualizado por meio das listas de emails e diversos tipos de avisos sobre as instalações de patches, as atualizações e as vulnerabilidades que precise conhecer (mas como escritor sobre segurança do que como usuário final) Depois de tudo, suponho que devo escrever sobre vulnerabilidades e exploits que afetam aos sistemas e ao software dos quais não tenho que ter necessariamente uma experiência atual, prática e direta.

No entanto, como usuário informático, contribui que a minha casa seja, em grande parte, uma zona livre da Internet das Coisas: no momento, não dependo de dispositivos médicos conectados na rede e meu smartphone (não tão inteligente) é suficientemente inteligente para saber que utilizo um laptop para qualquer outro serviço da rede que não envolve ligações telefônicas e mensagens de texto. Por outro lado, não tenho que me preocupar com situações como: se uma atualização do sistema operacional para smartphones corresponde a marca específica de hardware do meu telefone.

“Como você explicaria a sua avó a importância de instalar patches?

Lamentavelmente, sou de uma época na qual já é um grande desafio explicar para minha mãe que tem mais de 90 anos… Felizmente, ela está decidida a não se envolver com nenhum aparato de cálculo que seja mais recente que a primeira calculadora mecânica. Com certeza existem assuntos relacionados com a informática que também afetam a quem não utiliza a tecnologia moderna, mas é uma ideia para debater em outro momento.

Como meus próprios netos, às vezes, sentem a necessidade de me explicar o que é Internet (nem sempre com precisão, mas não têm a vantagem de ter nascido antes que a Internet…), a seguir tentarei explicar o assunto dos patches em termos que inclusive eu possa entender.

Para a maioria das pessoas, as coisas mais importantes sobre um computador (sem importar que se trata de uma grande unidade central corporativa, um PC de escritório, um equipamento portátil ou um dispositivo móvel, como um tablete ou um smartphone) são os dados que alguém cria e/ou armazena nele (documentos, fotografias, etc.) e os serviços aos que acessa por meio dele (email, redes sociais, banca online…)

No entanto, não é possível acessar a qualquer um desses dados e serviços sem programas de software que interpretam o que fazemos e traduzi-lo em instruções que o hardware possa entender para responder adequadamente. A palavra software abrange uma vasta gama de funcionalidades: a partir do software de rede que conecta com o resto do mundo online, aos navegadores que te permitem acessar a uma multiplicidade de serviços na web, ou mesmo ao tratamento de dados complexos realizados por uma base de dados ou um programa de processamento de texto, aos bits e bytes que lêem os movimentos de seus dedos para permitir que você possa fazer uma ligação telefônica ou escrever uma mensagem.

Dependemos mais dos computadores do que admitimos. No entanto, os programas são projetados por pessoas, e as pessoas cometem erros. Quanto mais complexo e multifuncional é um programa, haverá mais possibilidades de que contenha erros de programação. Alguns destes erros são perceptíveis, alguns são um inconveniente, mas não necessariamente críticos, alguns podem ter efeitos drástico (mas estes tendem a ser reparados rapidamente). Outros erros, pelo contrário, são triviais e inclusive é possível que a maioria ou todos os usuários de software não observem o problema mesmo em circunstâncias normais, por isso, dificilmente pode-se dizer que importa a todos.

Mas alguns erros, embora possam ser invisíveis quando nos referimos ao usuário mediano, são fundamentais. Não por como eles afetam (ou não afetam) o funcionamento normal do sistema ou do aplicativo, mas porque, potencialmente, podem expor o usuário ou o computador à intrusão criminal.

E por que queriam ter acesso ao seu sistema?

Existem muitas razões pelas quais os criminosos podem desejar ter acesso ao seu sistema e aos seus dados. Talvez simplesmente queiram causar prejuízos, mas é mais provável que a motivação seja econômica e há muitas formas em que se pode ganhar dinheiro assediando ilegalmente a sistemas de terceiros. Por exemplo:

  • Roubar dados confidenciais que permitam acessar a suas contas bancárias e serviços similares.
  • Roubar informações que permitam usurpar sua identidade: o roubo de identidade pode ser rentabilizado em todo tipo de formas.
  • Instalar software que, em seguida, permitirá controlar seus sistemas para utilizá-los como parte de uma botnet. Uma botnet é uma rede virtual de máquinas infectadas. Os donos dessas máquinas não costumam se dar conta de que tem um problema, mas esta rede pode utilizar-se com fins criminais, tais como o envio de emails massivos com golpes de phishing. Há muito dinheiro em jogo para quem vende ou aluga esse tipo de rede.
  • Instalar ransomware que permita aos deliquentes bloquear o acesso aos seus arquivos, solicitando que você pague um resgate para (em troca) receber a chave de descriptografia e desbloqueá-los.

Naturalmente, as pessoas que programam aplicativos originais (em geral) não introduzem falhas no código de forma deliberada para não permitir que os deliquentes possam aproveitá-las. No entanto, basta com um pequeno deslize na codificação para introduzir uma falha que permita acessar a zonas (especialmente zonas da memória do computador) que se podem utilizar para enviar ao equipamento algumas instruções inapropriadas que não tem nada a ver com as funções do aplicativo (que contém a falha) em si. Infelizmente, há um monte de pessoas que buscam especificamente este tipo de acesso, pois nem todos pertencem ao lado dos bons.

Sempre houveram experts em informática interessados em testar os limites do software (e hardware). Alguns são motivados pela curiosidade; já outros, pelo desejo de aprovação de seus colegas; outros talvez pelo genuíno desejo de ajudar às empresas a melhorarem seus produtos. Embora isto não ocorra exclusivamente no ambiente da segurança, há um número interessante de pessoas na indústria que encontrou seu nicho informando-lhes às empresas de segurança os problemas de seus produtos. E por outro lado também estão aqueles que tem intenções muito menos louváveis: a motivação reside na pura maldade e malicia ou nos crimes com fins lucrativos.

Hoje em dia, há muito dinheiro em jogo: já não se trata apenas de fanáticos. Não é que ganhar dinheiro por meio da detecção de vulnerabilidades seja necessariamente ruim. Há sempre pessoas cujo propósito é fazer dinheiro com recompensas que, às vezes, as empresas dão a quem encontre falhas ou vulnerabilidade reais, ou com a venda de um serviço de detecção de erros.

Sabemos que durante muito tempo alguns governos também mantiveram organismos próprios com esta finalidade, em certos casos, inclusive pagam a trabalhadores independentes para que encontrem falhas e vulnerabilidades de códigos. Muitos consideram que é uma atividade legítima em busca da segurança nacional. Por outro lado, estão aqueles cujos interesses são puramente criminais e, em geral, o dinheiro que podem ganhar os motiva com estas atividades ilegais.

As empresas não têm pessoas dedicadas a encontrar falhas em suas criações?

Alguém pode se perguntar por que as empresas não encontram falhas informáticas antes que os delinquentes. Com certeza existem pessoas dedicadas a isso. Qualquer empresa de software de boa reputação investe fortemente em testes e garantias de qualidade. No entanto, projetar um sistema operacional como Windows ou OS X requer centenas de milhões de linhas de código.

Inclusive um importante aplicativo complexo, como uma base de dados moderna ou um programa de processamento de texto, contém mais linhas de códigos do que se pode imaginar e a revisão do código implica muito mais que simplesmente ler o código fonte. Você precisa tentar prever como cada bit de código irá interagir com outras rotinas do programa. No entanto, também temos de tentar prever como ela irá interagir com outros programas que podem ser executados na mesma máquina e ao mesmo tempo.

Também não é como tentar acertar um tiro em um alvo fixo. As alterações de código se destinam a melhorar o desempenho ou a segurança do programa, mas às vezes uma mudança aparentemente pequena pode ter consequências inesperadas, especialmente se a mudança de código é projetado em um programa completamente diferente, para o qual nem mesmo tem o código fonte.

O surpreendente não é que as coisas às vezes saim mal, mas que não saiam mal frequentemente. A mensagem positiva é preciso lembrar, afinal, é que, em geral, as empresas estão bem conscientes destas questões, fazer todo o possível para manter o controle de problemas conhecidos que podem afetar os seus produtos e criar patches da forma mais rápida e segura possível. Em um próximo post, que será dilvulgado na próxima semana, respondo as outras duas perguntas interessantes sobre a importância da instalação de patches e por que isso deve se tornar um hábito.

Fique de olho no nosso blog!

Discussão