Artigos de autoria do Prof. Stefanelli

Engenharia Reversa

Discussão sobre validade e legalidade desta prática

Resumo

Este artigo discute o controverso papel da engenharia reversa na indústria da informática, dentre outras. Para isso, toma emprestado exemplos da indústria de software, produção de hardware de alta tecnológia e da indústria farmacêutica, todos estes exemplos práticos das vantagens e desvantagens de utilização desta contestável prática.

Introdução

Cabe, em primeira instância, a determinação do conceito de engenharia reversa, suas práticas e resultados mais significativos. A engenharia reversa visa apropriar-se de conceitos estratégicos novos a partir da desconstrução de modelos ou soluções prontas.
Esta prática pode ser considerada como o processo de análise de um produto físico ou virtual, como aparelhos, programas de computador, ou mesmo modelos de negócios, compreendendo os detalhes de seu funcionamento, geralmente com a intenção de construir um ‘clone‘ com a mesma função, sem efetivamente copiar alguma coisa do original.

Objetivamente a engenharia reversa consiste em, por exemplo, desmontar uma máquina ou decupar um programa de computador para descobrir como se dá o funcionamento.
Segundo Ricardo Drizin “A engenharia reversa no caso de hardware, requer um nível muito maior de conhecimento, e é muito mais cara que a de Software. Um fabricante, por exemplo, se quiser saber como o processador do concorrente funciona, pode comprá-lo, fazer a engenharia reversa, e criar um processador similar. Em geral a engenharia reversa de Hardware utiliza ferramentas eletrônicas de medição, como multímetro, osciloscópio, e um programador de dispositivos.”.

Por um lado podemos vislumbrar imensos progressos na massificação do uso das tecnologias que se iniciaram pelo emprego da engenharia reversa como ponto inicial da produção em escala, citando aqui o clássico caso da criação do primeiro PC -computador pessoal- compatível do mercado pela Compaq, que empregou a engenharia reversa sobre equipamento originalmente produzido pela IBM.

Por outro lado, esta prática também é posta a serviço da chamada “cultura cracker” e de suas práticas nocivas para a sociedade de consumo, para o direito à propriedade intelectual e para o direito à autoria. Neste artigo, utilizaremos o termo ‘cracker’ como o indivíduo pertencente a uma comunidade específica de programadores, também conhecidos como “hackers”, contudo, suas intenções pendem para atividades consideradas ilegais na comunidade onde atuam. É importante discriminar mais claramente os indivíduos atuantes na comunidade de desenvolvimento do chamado ‘software livre’ ou ’opensource‘. Eles disponibilizam seus conhecimentos para o  desenvolvimento tecnológico, desenvolvendo novas funcionalidades a sistemas pré-existentes ou criando sistemas novos e são conhecidos como hacker., Em contraste, há o indivíduo que, na maioria das vezes, é tratado como párea por esta comunidade, pois, geralmente, põem suas competências a serviço de um projeto mesquinho e de ética contestável, ao criar sistemas maliciosos violando legal e moralmente sistemas cibernéticos, estes indivíduos são os crackers.

A discussão, aqui levantada, a respeito os aspectos positivos e negativos decorrentes da aplicação da engenharia reversa poderão lançar uma nova luz sobre os limites morais, éticos e legais desta prática e alertar desenvolvedores de sistemas informáticos sobre como se prevenir contra esta prática.

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.

Eduardo José Stefanelli
Ricardo Infantozzi
Miltom Mansilla Vargas
Dr. Rodolfo Politano

Prof.: Eduardo José Stefanelli
Prof. Ms. do IFSP - Instituto Federal de Educação, Ciência e Tecnologia São Paulo.
Instituto de Pesquisas Energéticas e Nucleares (IPEN / CNEN - SP)
ipen@stefanelli.eng.br
http://www.stefanelli.eng.br

Eduardo J. Stefanelli - www.stefanelli.eng.br