Falha de segurança nas atualizações de programas comuns

Falha de segurança nas atualizações de programas comuns
Esta matéria é destinada aos alunos dos cursos ASCD (Arquitetura e Segurança em Comunicação de Dados)  e  PPAS (Programação em Perl aplicada à Segurança) da Insecuritynet e para pessos que desejam conhecer nossos cursos.

Praticamente todo fabricante de Software tem como principal recomendação de segurança “manter o software atualizado”, mas vários programas possuem uma enorme falha de segurança justamente no sistema de atualização.


Um ataque no sistema de atualização pode ser feito através de duas maneiras

  •  Um programa Craqueado é alterado para baixar arquivos maliciosos
  •  Um ataque de DNS Spoof que altera o comportamento de programas originais
Vamos utilizar um programa para teste totalmente legítimo e original (sem nenhum comportamento malicioso) apenas para fazer nosso monitoramento e ataque.

O “Hex Editor Neo” versão 4.75 (Desatualizada)



Se trata apenas de um editor Hexadecimal.
Vamos utilizar a versão desatualizada para o software “oferecer” a atualização.

1-) O primeiro passo é fechar seu navegador de internet  ou qualquer outro programa que utilize a internet.

2-) Abra o Local Monitor (Caso você não tenha baixe aqui) e configure da seguinte forma:

 

3-)  Inicie um Scan com o Local Monitor

4-) Abra o programa a ser monitorado (em nosso caso o “Hex Editor Neo”).
Não clique em “Start Download”

 

Vamos observar o scan do Local monitor

 

Veja na imagem acima que temos uma conexão na porta 80 de um servidor remoto.

5-) Agora vamos relembrar a aula 24 do curso PPAS.
Nesta aula nós programamos um Sniffer em PERL em que podemos filtrar os dados de acordo com itens de uma conexão.
Vamos utilizar este sniffer para ver quais dados estão trafegando nesta conexão.

Feche o Editor hexadecimal e o Local monitor.
Abra o Sniffer que fizemos na aula 24 do curso PPAS e configure para filtrar todos os dados que estão trafegando na porta remota 80
 


Após isto abra o Editor Hexadecimal

Veja que se trata de uma simples conexão HTTP (Veja a aula 17 do curso ASCD)

 

6-) Podemos fazer esta mesma conexão manualmente no navegador
Temos o Host e a URL do diretório.

Host:  www.hhdsoftware.com
Caminho: /dispatch/hex/checkforupdates.html

Veja abaixo os dados que o Software está acessando para verificar a versão:

 


 Problema de segurança:

Não existe nenhum tipo de checagem para comprovar a autenticidade dos arquivos baixados durante a atualização. Este problema existe na maioria dos programas que oferecem atualização diretamente pelo software.

Vamos ver isto na prática:

Criamos um executável totalmente inofensivo (que será nosso suposto vírus)
Já está hospedado:
http://www.insecuritynet.com.br/testes_aulas_ascd/hex-editor-neo.exe

Nas aulas 18 e 19 do curso ASCD estudamos sobre DNS Spoof, vamos “Spoffar” o domínio hhdsoftware.com para o IP 127.0.0.1 (localhost)

Veja na aula 18 do curso ASCD como fazer este Spoof ou utilize o Backdoor de DNS Spoof do Insecuritynet 3.X

Por motivos de segurança não vamos spoffar diretamente para o site da Insecuritynet, vamos criar um server local com o Insecuritynet 3.X (Veja a aula 17 do curso ASCD), veja na imagem abaixo.

 

Agora vamos recriar os diretórios do servidor original

/dispatch/hex/checkforupdates.html

 

Copie o arquivo HTML original do servidor (www.hhdsoftware.com/dispatch/hex/checkforupdates.html)  e altere o caminho do programa a ser baixado


 

Vamos verificar no navegador se o arquivo checkforupdates.html está carregando:

 

Note que o endereço real está apontado para a página hospedado localmente.

Agora vamos abrir o Software (Hex Editor Neo) e fazer a atualização:

 

 

 

Note que o arquivo carregado deveria ser a nova versão do Hex Editor Neo, mas é nosso suposto vírus.



Lista de materiais utilizados na experiência acima:

  • Programa Hex Editor Neo
  • Local monitor
  • hex-editor-neo.exe  (Suposto arquivo malicioso)
  • Sniffer desenvolvido em  Perl  (Curso PPAS)
  • Server HTTP do Insecuritynet 3.X (Curso ASCD)

Aulas envolvidas

  • DNS Spoof (Curso ASCD aulas 17 e 18)
  • Construindo um Sniffer em Perl (Curso PPAS aula 24)
  • Protocolo HTTP (Curso ASCD aula 17)

Confira nossos cursos onlines:


  • ASCD (Segurança da Informação)

    O curso Arquitetura e Segurança em Comunicação de Dados aborda a segurança na internet de uma forma bem técnica e direta, não é um curso que estuda ideologias e comportamentos, mas sim a parte técnica  como: Conexões, Portas, protocolos, etc. O curso é essencialmente prático e com uma linguagem simples e direta.

    • Funcionamento dos protocolos utilizados na internet
    • Princiapais vulnerabilidades encontradas na Web
    • Técnicas de Ataque, Defesa e Mitigação
    • Buffer overflow
    • Teste de Intrusão

    Saiba mais

  • (PPAS) Programação em Perl

    Gostaria de programar como um Hacker?
    Aprenda a programar utilizando umas das linguagens preferidas por administradores de sistemas. Vamos desenvolver ferramentas voltadas à segurança.

    Linguagem Multiplataforma:

    • Windows
    • Linux

    Diferentes Interfaces:

    • Terminal/Prompt
    • Aplicação Web
    • Interface Gráfica (Desktop)

    Saiba mais

  • 17/02/2015

  • by Insecuritynet

Compartilhar