7
O que é engenharia reversa? Quem é que nunca abriu um objeto eletrônico qualquer para entender seu funcionamento (relógios de pulso são as vítimas mais frequentes)? Nem todas as invenções tecnológicas do mundo moderno foram criadas a partir de uma grande ideia. Algumas delas surgiram do estudo de outras, e posteriormente se desenvolveram de forma independente do objeto inicial de estudos. A engenharia reversa está cada vez mais se tornando uma importante área de pesquisas para o avanço das tecnologias existentes, pois permite que mesmo aquilo que é protegido por leis de propriedade intelectual seja estudado e melhorado pelos concorrentes. ADVERTISEMENT Apesar de parecer, a engenharia reversa não pode ser considerada uma espécie de cópia, pois se trata apenas do estudo daquilo que foi criado. A cópia é somente uma das consequências possíveis do estudo de um produto ou ideia. A engenharia reversa também pode nos ajudar a entender o funcionamento de algo, para desenvolver o objeto de estudo, ou mesmo produzir algo completamente novo, a partir dos dados coletados, sem qualquer semelhança com o original. Desde a sua primeira utilização, a engenharia reversa cresceu muito, e hoje possibilita desde o entendimento e melhoria daquilo que se estuda, até a descoberta de segredos industriais e comerciais. História Não há um registro inicial de utilização da engenharia reversa, mas sabe-se que quando ela surgiu, suas primeiras aplicações foram em equipamentos militares, para que se alcançasse a superioridade militar, e até mesmo como método de espionagem. A espionagem industrial também encontrou na engenharia reversa um poderoso aliado para a “criação” de equipamentos concorrentes. Fazendo tudo ao contrário O nome “engenharia reversa” define muito bem o conceito do que ela faz. Trata-se do estudo de um objeto, seja um processador, um monitor, um programa ou até mesmo um simples relógio, desmontanto-o e analisando suas peças, seus componentes, seus comandos e seu comportamento (no caso de programas). Isso é feito para descobrir como ele foi fabricado, como ele poderia ser melhorado e que outras funções ele poderia realizar. Explicando de forma fácil e resumida, a engenharia reversa pode ser comparada a uma dissecação do objeto de estudo, como é feito com sapos, minhocas e outros animais em aulas de biologia. Abre-se o objeto estudado, separam-se suas partes e estuda-se sua composição química, construção, formatos de peças e diversos outros itens, com o intuito de descobrir como tudo funciona e como repetir o processo de criação. Em que ela foi usada?

O Que é Engenharia Reversa?

Embed Size (px)

DESCRIPTION

Tudo sobre engenharia reversa, o que é, como aplicala. para que serve.

Citation preview

Page 1: O Que é Engenharia Reversa?

O que é engenharia reversa?

Quem é que nunca abriu um objeto eletrônico qualquer para entender seu

funcionamento (relógios de pulso são as vítimas mais frequentes)? Nem todas as

invenções tecnológicas do mundo moderno foram criadas a partir de uma grande ideia.

Algumas delas surgiram do estudo de outras, e posteriormente se desenvolveram de

forma independente do objeto inicial de estudos. A engenharia reversa está cada vez

mais se tornando uma importante área de pesquisas para o avanço das tecnologias

existentes, pois permite que mesmo aquilo que é protegido por leis de propriedade

intelectual seja estudado e melhorado pelos concorrentes.

ADVERTISEMENT

Apesar de parecer, a engenharia reversa não pode ser considerada uma espécie de cópia,

pois se trata apenas do estudo daquilo que foi criado. A cópia é somente uma das

consequências possíveis do estudo de um produto ou ideia. A engenharia reversa

também pode nos ajudar a entender o funcionamento de algo, para desenvolver o objeto

de estudo, ou mesmo produzir algo completamente novo, a partir dos dados coletados,

sem qualquer semelhança com o original. Desde a sua primeira utilização, a engenharia

reversa cresceu muito, e hoje possibilita desde o entendimento e melhoria daquilo que

se estuda, até a descoberta de segredos industriais e comerciais.

História

Não há um registro inicial de utilização da engenharia reversa, mas sabe-se que quando

ela surgiu, suas primeiras aplicações foram em equipamentos militares, para que se

alcançasse a superioridade militar, e até mesmo como método de espionagem. A

espionagem industrial também encontrou na engenharia reversa um poderoso aliado

para a “criação” de equipamentos concorrentes.

Fazendo tudo ao contrário

O nome “engenharia reversa” define muito bem o conceito do que ela faz. Trata-se do

estudo de um objeto, seja um processador, um monitor, um programa ou até mesmo um

simples relógio, desmontanto-o e analisando suas peças, seus componentes, seus

comandos e seu comportamento (no caso de programas). Isso é feito para descobrir

como ele foi fabricado, como ele poderia ser melhorado e que outras funções ele

poderia realizar.

Explicando de forma fácil e resumida, a engenharia reversa pode ser comparada a uma

dissecação do objeto de estudo, como é feito com sapos, minhocas e outros animais em

aulas de biologia. Abre-se o objeto estudado, separam-se suas partes e estuda-se sua

composição química, construção, formatos de peças e diversos outros itens, com o

intuito de descobrir como tudo funciona e como repetir o processo de criação.

Em que ela foi usada?

Page 2: O Que é Engenharia Reversa?

Foi através da engenharia reversa, por exemplo, que a fabricante de processadores AMD

conseguiu fazer uma cópia exata do processador Intel 8080, no ano de 1975

(comentamos isso no artigo sobre os processadores da AMD. A empresa provavelmente

comprou alguns processadores da Intel, abriu-os e os estudou detalhadamente,

conseguindo criar uma cópia perfeita através de tentativa e erro.

Outro tipo de aplicação é na engenharia de software. Programas proprietários, ou seja,

que não possuem seu código aberto, não permitem que você saiba como eles foram

programados, para descobrir maneiras de melhorá-los ou mesmo copiá-los. A

engenharia reversa tem condições de fazer análises minuciosas sobre o comportamento

de programas, para então tentar reconstruí-los, descobrindo assim como eles funcionam

internamente.

Independente da área de conhecimento, a engenharia reversa é extremamente útil

também para aqueles que desejam tornar programas e equipamentos interoperáveis. Isto

é, por exemplo, fazer com que um programa de Windows possa ser rodado em Linux ou

Mac, e vice-versa. Logicamente, isso não é feito pelos desenvolvedores proprietários

dos programas, já que são eles os criadores e os donos do código-fonte.

Onde eu encontro?

A engenharia reversa está mais próxima do seu dia a dia, do que você poderia imaginar.

A pirataria de CDs e DVDs, por exemplo, utiliza a engenharia reversa para descobrir

como funciona a proteção anticópia dos discos e removê-la. Porém, nem tudo é crime,

pois como qualquer tecnologia, a engenharia reversa pode ser usada para fins

acadêmicos, no campo da pesquisa, e em qualquer área de conhecimento. Tecnologias

antigas, por exemplo, têm uma grande carência de documentação descritiva. A

engenharia reversa permite que a documentação seja elaborada e a tecnologia velha seja

especificada.

E você? Já abriu um relógio para ver como ele funciona? Já desmontou seu carrinho de

controle remoto quando era criança? E aquele típico Papai Noel que cantava sempre que

você passava na frente? Fique à vontade para compartilhar que tipo de objeto você já

desmontou para saber como funciona.

Engenharia reversa de software

A área de software, nada obstante o fato de já fazer parte de nossa vida cotidiana, seja

pela presença marcante e directa em nossas atividades profissionais, pessoais ou

educacionais, seja pela presença indirecta, através das inúmeras soluções tecnológicas

embarcadas em nossos veículos, equipamentos eletrônicos ou eletrodomésticos da

chamada „última geração‟, ainda suscita grandes dúvidas na maioria da população “não

iniciada” em seus segredos.

A criação de uma nova tecnologia não garante automaticamente o direito à sua

propriedade ou mesmo o direito autoral. Para que estes direitos sejam reconhecidos

deve-se proceder aos meios legalmente cabíveis para reconhecimento destes direitos e,

até mesmo, a fruição financeira da criação.

Page 3: O Que é Engenharia Reversa?

Após os trâmites legais estabelecidos, um objeto pode ser reconhecido pela pessoa ou

organização que o criou como não suficientemente rentável para justificar sua

exploração comercial. Neste caso algumas há algumas opções possíveis de serem

adotadas pelo detentor dos direitos em questão a exemplo de: 1) ele pode abandonar o

objeto rejeitando qualquer divulgação ou acesso sobre ele; 2) pode disponibilizar o

produto final para uso geral em caráter classificado como freeware que é a distribuição

gratuita de sua criação, podendo, entretanto, haver alguma licença restritiva a seu uso,

distribuição e modificação; 3) pode o disponibilizar na forma de shareware que é a

distribuição gratuita do software havendo, contudo, restrição de algumas de suas

funcionalidades e (ou) para uso por tempo determinado, com o intuito de provocar a

experiência do uso e criar a necessidade da aquisição da versão integral; ou ainda 4)

pode disponibilizar a versão integral do produto acompanhada de seus códigos de

desenvolvimento, os chamados „códigos fonte‟, permitindo que futuros usuários possam

usar, copiar, estudar, modificar e redistribuir sem nenhuma restrição, esta modalidade é

conhecida com „Software Livre‟.

Segundo o Prof. Rodolfo Politano em seu artigo para a Revista UNIEMP Inovação

“Outro aspecto importante é de que a proteção está vinculada à forma que a nova

concepção se materializou – e não a idéia em si. Mecanismos de mascaramento interno

no algoritmos garantem uma prevenção contra a engenharia reversa”.

O uso da engenharia reversa no desenvolvimento de novas aplicações é legalmente

aceita quando aplicada a softwares abandonados pelos desenvolvedores, como por

exemplo o Cosmo Player (software para navegação em ambiente de realidade virtual

desenvolvido originalmente pela Computer Associates). Em um primeiro momento a

empresa comercializou este produto nas bases tradicionais do comércio de software,

contudo, esta prática não produziu a rentabilidade suficiente para justificar o esforço de

manutenção e comercialização. Sob este cenário, a empresa decidiu pela

descontinuação da sua produção e suporte e disponibilizou o software integral para uso

generalizado sem remuneração. Alguns anos se passaram e quando um grupo de

desenvolvedores mostrou-se interessado em adquirir os direitos sobre o software o

proprietário original alegou que a documentação e as fontes não mais eram localizáveis

e autorizou a quebra do código. O processo de Engenharia Reversa pôde auxiliar na

recuperação do código fonte que passou por aprimoramentos e novos desenvolvimentos

proporcionados por um consórcio de desenvolvimento mundial que serviu de base para

vários produtos comercializados independentemente.

Uma das empresas que participou do consórcio para exploração da ferramenta é a

brasileira P3D Engenharia de Software Ltda. Esta empresa que até então distribui

gratuitamente o Cosmo Player com seus softwares de educação, em 2007 recebeu verba

através do programa de subvenção da FINEP e está concluindo o desenvolvimento de

um player de realidade virtual próprio, a partir das características do software original.

Este produto chegará ao mercado em 2009, se as previsões se confirmarem.

A engenharia reversa também é considerada uma ferramenta eficaz para a garantia da

segurança de sistemas de alta criticidade, pois por meio de suas técnicas pode explorar o

código dos programas a fim de averiguar se há códigos maliciosos, averiguar se o

código original de um software não sofreu alterações como injeção de rotinas ocultas ou

se há códigos de desenvolvimento esquecidos pelos idealizadores.

Page 4: O Que é Engenharia Reversa?

As técnicas de engenharia reversa podem ainda ser de grande utilidade na recuperação

de desastres com dados. Por exemplo, um sistema de arquivos criptografado pode ser

compreendido e sua decodificação ser fundamental para a recuperação de dados

perdidos.

Em alguns países a prática de engenharia reversa é considerada ilegal e alguns

praticantes interessam-se em obter acesso não autorizado a recursos de software não

oferecidos gratuitamente pelos detentores dos direitos comerciais do produto. Tal

prática é denominada Cracking.

Aplicabilidades legais da engenharia reversa

A questão da legalidade da quebra de um processo funcional, aplicabilidade e modelo

de negócio podem ser amplamente discutidas, mas são justamente nas patentes, direito

autoral e direito de propriedade que o questionamento sobre a validade do uso da

engenharia reversa é massivamente combatida.

Em contraste, certas aplicabilidades da engenharia reversa são consideradas

perfeitamente válidas e até elevadas a categoria de “melhores práticas”. Podemos citar

como exemplos bem-vindos da utilização desta prática a, classificada por alguns,

“guerra” contra os vírus de computador, a pesquisa militar e aspectos de segurança

nacional ou governamental e na auditoria de segurança dentre outras.

A guerra contra vírus de computador parece ser interminável, mas sem a engenharia

reversa ela poderia ser considerada perdida. 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.”.

Os orçamentos: governamentais e militares para uma permanência segura no mundo

virtual têm aumentado vertiginosamente. Em 1999 Bill Clinton anunciou US$1,46

bilhão para melhorar a segurança dos computadores do governo e isto foi apenas o

começo. Sem a engenharia reversa tais valores poderiam ser muitas vezes multiplicados

e com uma expectativa de eficácia muito aquém da encontrada atualmente.

Como garantir a segurança de trilhões de dólares de capital público e privado trafegando

em um mundo cada vez mais globalizado e conectado? A busca da relativa

tranquilidade almejada pelas instituições financeiras para garantir a segurança de seus

dados encontra eco na auditoria sobre os principais softwares que utilizam. Quando o

código fonte está disponível, ele passa por uma auditoria de segurança, que vai avaliar

os riscos envolvidos. Quando o código fonte não está disponível, costuma-se utilizar a

engenharia reversa para atestar a segurança e comportamento do software.

Questionamentos quanto à proteção do copyright

Cabe salientar a motivação que leva à proteção de um produto intelectual. Para O Prof.

Dr. Rodolfo Politano em seu artigo para o Jornal Órbita do Ipen “Existe uma

preocupação referente à evasão do patrimônio intelectual. Uma inovação que deixa de

ser protegida é como um bem material que fica exposto displicentemente. Outros podem

Page 5: O Que é Engenharia Reversa?

fazer uso desta inovação sem que o inventor (e a instituição) recebam qualquer

retribuição financeira - e pior, sem nenhum mecanismo legal para que se possa exigir

esta retribuição.”. Portanto podemos considerar uma obrigação do proponente de um

copyright fazer uso de todas as formas ao seu alcance para dificultar a prática de

engenharia reversa, caso seja esta sua intenção.

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.

Ricardo Drizin cita, em seus escritos, a quebra do formato de encriptação do DVD. “O

DeCSS, programa para decriptar DVDs, foi escrito por um adolescente de 16 anos na

Noruega, e por isso não estava sujeito às leis americanas (DMCA). No entanto, foi

julgado por infração de copyright em seu próprio país, e o seu programa foi proibido de

ser hospedado em websites americanos. Os advogados do adolescente alegam que a

decriptografia do DVD não foi para fazer cópias de filmes, e sim para poder criar um

software que tocasse DVD no Linux, que até então não existia.”.

Mas um copyright pode ser quebrado ou contornado. Para isto existe uma metodologia

chamada „clean room design‟.

Um caso de clean room design que foi praticado pela Compaq em 1982 é tratado como

clássico. No ano anterior a IBM havia entrado no negócio de computador pessoal com o

seu IBM-PC. A BIOS das máquinas era código proprietário da IBM e, como tal,

protegido. Na onda do sucesso da IBM a Compaq produziu o primeiro PC, o chamado

“PC compatível”. De acordo com uma decisão judicial, a Compaq não poderia copiar

diretamente a BIOS da IBM, mas poderia fazer a engenharia reversa desta e criar sua

própria BIOS usando o clean room design.

Ulisses Buonanni define Clean Room Design como “Um método onde se pode utilizar a

engenharia reversa para entender o funcionamento de um software e cloná-lo, desde que

o time que faça a codificação do clone tenha contato apenas com a especificação do

sistema, feita pelo time que fez a engenharia reversa. Deste modo alguém que teve

contato com o código original não pode participar do desenvolvimento direto do clone,

apenas da especificação detalhada.”.

Foi a partir do Clean Room Design, e da iniciativa da Compaq, que surgiu a indústria

dos clones de PC e a popularização destes sistemas que alicerçaram a chamada „cultura

da informação‟.

Notícias amplamente veiculadas na imprensa brasileira e internacional, informam que

no ano de 2001 o ministro da saúde do governo brasileiro determinou a primeira quebra

de patente de medicamentos do Brasil. O medicamento Nelfinavir, fabricado pelo

laboratório Roche, teve quebrado a sua patente devido ao preço elevado para o

consumidor. Cada comprimido do medicamento custava o equivalente a US$ 1,36. No

Brasil, este medicamento é usado por 25% dos pacientes com AIDS. O laboratório

público Far-Manguinhos, da Fiocruz (Fundação Oswaldo Cruz) passou a produzir o

medicamento genérico do Netfinavir de forma não exclusiva. O laboratório conseguiu

produzir o medicamento por um valor 40% menor que o cobrado pela detentora do

Page 6: O Que é Engenharia Reversa?

direito de fabricação do Nelfinavir. Isso representou uma economia de US$88 milhões

por ano para o país.

A cópia da molécula da substância deste medicamento foi obtida a partir da técnica de

engenharia reversa e testes de bioequivalência.

Para justificar o procedimento o governo brasileiro usou o artigo 71 da Lei de Patentes,

que reza “Art. 71 - Nos casos de emergência nacional ou interesse público, declarados

em ato do Poder Executivo Federal, desde que o titular da patente ou seu licenciado

não atenda a essa necessidade, poderá ser concedida de ofício, licença compulsória,

temporária e não exclusiva, para a exploração da patente, sem prejuízo dos direitos do

respectivo titular.

Parágrafo Único - O ato de concessão da licença estabelecerá seu prazo de vigência e

a possibilidade de prorrogação.”,e assim,prevê a licença compulsória em casos de

emergência. O governo alegou que ficaria difícil manter a distribuição gratuita com o

alto custo do medicamento importado.

Quem certamente não gostou da terminação unilateral do governo brasileiro foi a

Roche, fabricante do produto e vítima da engenharia reversa. Como medida imediata, a

indústria reduziu sua verba de pesquisa em novos medicamentos alegando que os custos

para desenvolvimento de novas moléculas eram considerados investimentos garantidos

por lei, que agora se tornava incerta.

Outros laboratórios, diante da quebra de patentes exercidas por países como Índia e

Brasil estabeleceram uma política de incentivo inverso para seus pesquisadores. Tal

política consistia em uma premiação para o pesquisador que encerrasse a pesquisa de

novos medicamentos, caso detectasse a possibilidade de insucesso iminente. Ou seja, a

quebra das garantias de patente desestimularam as pesquisas mais longas e incertas

tendo como consequência direta o não lançamento de uma molécula realmente

inovadora pela indústria farmacêutica mundial há mais de quatro anos.

Conclusão

A prática da engenharia reversa, quando tratada como um fenômeno sem ideologia, é

uma ferramenta eficaz para o desenvolvimento tecnológico e a adoção de práticas mais

seguras para o dia-a-dia das organizações e da sociedade. É incontestável que a

engenharia reversa acelera o processo de desenvolvimento e estimula a popularização

de tecnologias por intermédio da redução dos custos e consequente redução do preço

final dos produtos desenvolvidos, mas o que devemos refletir é se o custo social éticos

e moral oculta na adoção desta prática justificam a economia imediata obtida.

O estímulo à criação e invenção não pode ser obscurecido pelas práticas mais

convenientes ou pela falta de investimentos em centros de pesquisa por instituições ou

países despreparados para atuar na era do conhecimento.

Definitivamente a engenharia reversa convive em uma permanente gangorra entre a

legalidade e a ilegalidade, a validade e a condenação e seus praticantes, por associação,

podem ser considerados gurus do estímulo ao conhecimento ou piratas navegantes do

oceano tecnológico.

Page 7: O Que é Engenharia Reversa?