2009/10/30

Software Auto-Correctivo


Parece que estamos prestes a atingir um marco histórico na história da computação. Como todos sabem, a maioria do software existente (e isso engloba tudo: desde sistemas operativos a browsers, e tudo o resto que faz o vosso computador "mexer") sofre invariavelmente de bugs que, mais tarde ou mais cedo, acabam por causar algum problema.

É por isso que actualmente se torna indispensável manter o software constantemente actualizado, com as frequentes correcções e updates de segurança que visam colmatar os erros mais críticos que sejam detectados.

No entanto, isso é um processo moroso e complicado, que pode demorar horas, dias... ou até mesmo meses ou anos - e no pior caso, nem sequer ser corrigido, caso se trate de software já antigo que deixou de ser suportado.

Com toda a potência computacional existente actualmente, não seria interessante arranjar um método mais eficiente? E que tal se deixássemos essas correções a cargo de um programa encarregado de corrigir outros programas?

É isso mesmo que começa a ser possível: com software que se corrije a ele próprio.

A ideia é simples, um programa monitoriza continuamente a execução de outros programas em tempo real, na sua forma binária (e sem necessidade do seu código fonte, o que lhe permite funcionar com todo o tipo de software proprietário e "fechado") e analisa o seu comportamento.

Quando algo corre mal, o sistema consegue detectar e impedir o funcionamento do programa; analisando o que se passou e tentando vários métodos de correcção que são testados nas mesmas condições. As correcções que não funcionarem são prontamente eliminadas, até que eventualmente uma delas resolva o problema.

Este sistema ClearView foi testado com o Firefox, tendo sido pedido a várias equipas que "atacassem" o browser utilizando 10 tipos de vulnerabilidades... Em todas elas o ClearView detectou e terminou a execução do programa antes que os ataques pudessem ter algum efeito. Para sete dos casos, o sistema conseguiu criar correcções que resolveram esse problema.

Claro que o sistema não é perfeito, e muitas vezes as correcções implementadas poderão não ser as pretendidas... No entanto não deixa de ser interessante este método de auto-correcção de software, que poderá ter um papel cada vez mais importante na crescente complexidade de programas que utilizamos.

É que, um sistema deste tipo pode fazer com que possamos usar software em segurança, mesmo se os seus criadores não lançarem actualizações para os corrigir.

No entanto, uma pergunta permanece: será o ClearView capaz de se corrigir a ele próprio quando detectar um erro na sua execução? ;)

1 comentário: