Saltar para o conteúdo

Usuário(a):Abimael O.f/Testes

Origem: Wikipédia, a enciclopédia livre.

A palavra bypass, em inglês, varia conforme o contexto e quer dizer "desvio; contorno; desviar; escapar; passar por cima de; dar a volta; driblar". Existem vários exemplos para o termo bypass em diversas áreas, mas em TI esse termo é utilizado quando se necessita desviar de algo, por exemplo: desviar de um proxy, firewall, antivírus, engenharia reversa, dentre outros.

Mais especificamente na engenharia reversa, bypass pode ser aplicado à técnicas utilizadas por indivíduos com o objetivo de driblar mecanismos de segurança em softwares. Essa técnica também é estudada por fabricantes de soluções de segurança com o objetivo de melhorar seus produtos.

Segundo Ricardo Drizin, “As empresas de antivírus costumam ter equipes especializadas em receber arquivos infectados (dos usuários e colaboradores) e analisá-los para que na próxima versão (das assinaturas) do antivírus haja a detecção de novo vírus. Os vírus modernos utilizam as mesmas tecnologias de encriptação que os packers e por isso a engenharia reversa pode utilizar para estudar um vírus as mesmas técnicas que usa para crackear um programa.”. [1]

Por exemplo, atualizações recentes no Google Chrome fazem bypass de serviços normalmente prestados pelo provedor de acesso, tal como o DNS. Tudo isso num esforço de trazer maior privacidade a seus usuários. [2]

O DMCA é uma lei americana que torna crime à produção e disseminação de tecnologias que possam driblar medidas tomadas para proteger o copyright, e aumenta as penas para a quebra de copyrights na Internet. A quebra do copyright não é o objeto deste artigo e sim a produção e disseminação de tecnologias ou conhecimento.

Na engenharia reversa, quando se está analisando uma determinada verificação de segurança de software e se tem uma função tal como: JNE (Jump if Not Equal, ou salto se não for igual) , quando se altera o JNE para JMP (Unconditional Jump, ou salto incondicional), todo o código de segurança será afetado pelo bypass. Assim sendo, toda a verificação será deixada de lado.

EXEMPLO[editar | editar código-fonte]

00401000 push serial //123
00401004 push entrada //000
00401008 cmp serial, entrada
0040100C je offset_401010
00401010 msgbox “Ativação com Sucesso”
...
...
0040101C msgbox “Serial inválido”
00401020 ret 1

No endereço 00401008, o JE (Jump if Equal, ou salto se for igual) recebe o retorno da comparação CMP, que por sua vez verifica se o serial é igual à entrada. Se a comparação for verdadeira, a instrução JE salta para o offset_00401010, caso contrário, se falsa, mostra o erro de “Serial inválido”.

O bypass pode acontecer de várias maneiras. Uma delas, bem simples, seria alterar a instrução JE (Jump if Equal) para JMP (Unconditional Jump), assim, o programa seria orientado a ir direto para a mensagem “Ativação com Sucesso”.

Outra alternativa seria trocar a instrução cmp serial, entrada pela instrução mov al,al que resultaria em 0, ou seja, o salto condicional (JE) receberia um retorno 0 (verdadeiro).

Em último caso, pode-se fazer uso da instrução NOP (No Operation, ou Sem Operação) em um linha de código para efetivar a ativação do mesmo. Se a instrução JE (Jump if Equal) for alterada pela instrução NOP (No Operation), quando chegar no endereço 0040100C, o compilador verá que não existe nada para fazer nesta linha, e automaticamente executa a próxima linha, que seria a msgbox “Ativação com Sucesso”, assim fazendo um outro tipo de bypass.

REFERÊNCIAS[editar | editar código-fonte]

[1] https://www.stefanelli.eng.br/engenharia-reversa-validade-legalidade/

[2] https://www.forbes.com/sites/zakdoffman/2019/04/22/crisis-as-changes-to-google-chrome-threaten-child-safety-and-cybersecurity

https://blog.corujadeti.com.br/bypass-de-firewall-com-tunelamento-por-dns/

https://pt.m.wikipedia.org/wiki/Bypass_(desambiguação)

https://pt.m.wikipedia.org/wiki/Bypass_(TI)



  1. «Engenharia Reversa: Discussão a respeito de sua validade e legalidade». Prof. Eduardo J. Stefanelli. 12 de maio de 2016. Consultado em 25 de abril de 2019 
  2. Doffman, Zak. «Google Chrome Update -- 'A Threat To Children, Cybersecurity And Government Snooping'». Forbes (em inglês). Consultado em 25 de abril de 2019