MIT inventa corretor de erros de software que conserta programa sem necessitar acessar o código-fonte. [Jose-Luis Olivares/MIT]
MIT inventa corretor de erros de software que conserta programa sem necessitar acessar o código-fonte.
O nome dele é CodePhage. Um sistema do Laboratório de Ciências da Computação e Inteligência Artificial (CSAIL) do MIT que corrige softwares com falhas automaticamente. Apresentado na conferência Implementação e Design de Linguagem de Programação da Association for Computing Machinery, o novo sistema basicamente copia código sem defeitos de outros programas, e então corrige a falha, sem precisar de acesso ao código fonte.
De acordo com os pesquisadores, verificações de segurança podem representar 80% dos códigos dos software atuais, ou até mais. A esperança é que futuras versões do CodePhage possa reduzir drasticamente o tempo empregado pelos programadores para essas verificações.
Testado em sete programas de código aberto comuns nos quais o DIODE (um programa para encontrar falhas, desenvolvido pela mesma equipe) encontrou erros, o CodePhage importou reparos de dois a quatro programas doadores para cada bug. Em todos os casos, o sistema consertou a vulnerabilidade levando de dois a 10 minutos por reparo.
Os detalhes de como esse sistema transforma linguagem de máquina em uma linguagem simbólica, acha o ponto de inserção do código "benigno" e garante que tudo ocorreu bem é bastante técnico e pode ser visto nesses slides de apresentação da solução (PDF em inglês).
Esse pode ser o início da automação de tarefas de engenharia de software que são normalmente caras, lentas e manuais: Busca e eliminação de defeitos em softwares; e transferência de códigos entre aplicações.
Esse novo processo de programação pode transformar a forma como a sociedade irá produzir software trazendo mais confiabilidade, segurança e funcionalidade. Talvez atraindo mais pessoas para a programação e mudando profundamente essa indústria.
Fonte: MIT News
[Visto no Brasil Acadêmico]
[Jose-Luis Olivares/MIT] |
O nome dele é CodePhage. Um sistema do Laboratório de Ciências da Computação e Inteligência Artificial (CSAIL) do MIT que corrige softwares com falhas automaticamente. Apresentado na conferência Implementação e Design de Linguagem de Programação da Association for Computing Machinery, o novo sistema basicamente copia código sem defeitos de outros programas, e então corrige a falha, sem precisar de acesso ao código fonte.
Temos toneladas de código-fonte disponíveis em repositórios de código-fonte aberto, milhões de projetos, e muitos desses projetos implementam especificações similares. Mesmo que possa não ser a principal funcionalidade do programa, eles frequentemente têm subcomponentes que compartilham funcionalidades através de um grande número de projetos.
Stelios Sidiroglou-Douskos. Pesquisador do Computer Science and Artificial Intelligence Laboratory (CSAIL) do MIT e líder do desenvolvimento do CodePhage.
De acordo com os pesquisadores, verificações de segurança podem representar 80% dos códigos dos software atuais, ou até mais. A esperança é que futuras versões do CodePhage possa reduzir drasticamente o tempo empregado pelos programadores para essas verificações.
A técnica de pedir o código de outro programa que tem funcionalidade semelhante, e ser capaz de ter um programa que, essencialmente, está quebrado e corrigi-lo dessa maneira, é um resultado muito legal. Para ser honesto, fiquei surpreso que ele tenha funcionado afinal.
Emery Berger, professor de ciência da computação na Universidade de Massachusetts em Amherst
Testado em sete programas de código aberto comuns nos quais o DIODE (um programa para encontrar falhas, desenvolvido pela mesma equipe) encontrou erros, o CodePhage importou reparos de dois a quatro programas doadores para cada bug. Em todos os casos, o sistema consertou a vulnerabilidade levando de dois a 10 minutos por reparo.
A visão a longo prazo é que você nunca mais precisará escrever um código que outra pessoa já escreveu. O sistema encontra esse pedaço de código e automaticamente junta com os outros que você precisa para fazer seu programa funcionar.
Martin Rinard. Professor de engenharia e ciência da computação do MIT e membro do time de pesquisadores do CodePhage.
Os detalhes de como esse sistema transforma linguagem de máquina em uma linguagem simbólica, acha o ponto de inserção do código "benigno" e garante que tudo ocorreu bem é bastante técnico e pode ser visto nesses slides de apresentação da solução (PDF em inglês).
O programa de doador não foi escrito pelas mesmas pessoas. Eles têm diferentes padrões de codificação; eles nomeam variáveis de forma diferente; eles usam todos os tipos de variáveis diferentes; as variáveis podiam ser locais; ou poderiam estar mais acima na pilha. E o CodePhage é capaz de identificar essas conexões e dizer: 'Essas variáveis se correlacionam com essas variáveis.' Falando em termos de doação de órgãos, transforma esse código para torná-lo um enxerto perfeito, como se tivesse sido escrito assim no começo. O fato de funcionar tão bem como ele funciona é surpreendente - E legal.
Emery Berger
Esse pode ser o início da automação de tarefas de engenharia de software que são normalmente caras, lentas e manuais: Busca e eliminação de defeitos em softwares; e transferência de códigos entre aplicações.
Esse novo processo de programação pode transformar a forma como a sociedade irá produzir software trazendo mais confiabilidade, segurança e funcionalidade. Talvez atraindo mais pessoas para a programação e mudando profundamente essa indústria.
Fonte: MIT News
[Visto no Brasil Acadêmico]
Comentários