Upload
jessica-jackson
View
217
Download
0
Embed Size (px)
DESCRIPTION
Tudo sobre engenharia reversa, o que é, como aplicala. para que serve.
Citation preview
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?
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.
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.
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
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
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.