
Este blog apresenta um breve resumo e meus comentários sobre o discurso de Ken Thompson durante a entrega do prêmio Turing Award de 1983 (Turing_Award) recebido por ele juntamente com Dennis Ritchie pelo desenvolvimento da teoria dos sistemas operacionais genéricos e pela implementação do sistema operacional UNIX.
Ken Thompson abre o seu discurso saudando a todos os inúmeros colaboradores do sistema operacional UNIX e diz que ele sendo um programador, irá utilizar o programa mais curto que ele já fez para embasar a sua mensagem.
O programa é apresentado em três estágios e tem o objetivo de introduzir um Trojan em um compilador. No estágio 1 ele mostra um programa inofensivo capaz de gerar uma cópia do seu próprio código fonte quando for executado. No estágio 2, Thompson apresenta o compilador C sofrendo uma modificação para reconhecer o caractere barra vertical como parte da sua sintaxe. No estágio 3, é apresentado um trecho hipotético do compilador C capaz de introduzir código malicioso no programa que está sendo compilado e adverte que o código binário gerado dificilmente será descoberto por alguém. Ainda acrescenta que o código malicioso tem a capacidade de se reproduzir, gerando assim programas compilados com código malicioso sem que o código fonte seja alterado.
Ken Thompson conclui seu discurso dizendo categoricamente que não se deve confiar em programas que você não tenha escrito totalmente e caracteriza os técnicos que promovem esse tipo de fraude como vândalos, perigosos e merecedores de permanecerem presos por muitos anos. Chega a comparar a atividade de forjar programas com a de dirigir embriagado e lança um alerta para impressa e a comunidade em geral de que esse tipo de atividade deixe de ser enaltecida e seja encarada como prejudicial e criminosa.
Comentários
As colocações de Ken Thompson feitas em 1983 são extremamente atuais em 2007. Pode-se dizer que o apelo dele ainda não foi ouvido mesmo depois de tantas vítimas. Existe uma forte tendência na comunidade em geral em confiar prontamente naquilo que é dito a respeito dos benefícios de um programa e rapidamente ser adotado em ambientes empresariais. Poucas são as vezes em que se aplica uma política rígida de homologação e verificação das funcionalidades desse programa, quem dirá uma revisão minuciosa do seu código-fonte. Uma prova da atualidade do discurso de Ken Thompson está no pessoal do fórum voto-seguro (http://www.mail-archive.com/voto-eletronico@pipeline.iron.com.br/index.html#01214) que acusa o governo brasileiro de ser leviano na avaliação e verificação do sistema computacional de votação eletrônica. A opinião dos participantes do fórum indica que foi feita uma inspeção parcial do código e num tempo incompatível com o tamanho do sistema.
Foi registrado no começo de 2007, o primeiro período consecutivo de 12 meses sem fraude em sites brasileiros de internet banking. Isso demonstra uma forte tendência e uma melhora considerável nos sistemas de controle, no entanto, o número de ataques e de variações de ameaças continua crescendo o que demonstra que os sujeitos envolvidos em criar tais ameaças não desistiram e continuam buscando novos meios de quebrar os sistemas de segurança.
Diante de tamanha insegurança, devemos optar pela utilização de programas auditáveis, ou seja, programas que sigam implementem padrões abertos, que utilizem algoritmos públicos e reconhecidos pela comunidade em geral ou ainda programas de código aberto. Fazendo assim, estaremos criando programas auditáveis e dignos de maior confiança por quem os utilizam.
Nenhum comentário:
Postar um comentário