p O estudante de doutorado Jacob Harer (à esquerda) e o professor de pesquisa Peter Chin trabalharam com pesquisadores da Draper para desenvolver tecnologia que pudesse encontrar o tipo de falha de software que costuma ser explorada por hackers. Crédito:Jackie Ricciardi
p À medida que o volume de informações digitais nas redes corporativas continua a crescer, aumenta o número de ataques cibernéticos, e seu custo. Um fornecedor de cibersegurança, Juniper Networks, estima que o custo das violações de dados em todo o mundo chegará a US $ 2,1 trilhões em 2019, cerca de quatro vezes o custo das violações em 2015. p Agora, dois cientistas da computação da Universidade de Boston, trabalhando com pesquisadores da Draper, uma empresa de soluções de engenharia sem fins lucrativos localizada em Cambridge, desenvolveram uma ferramenta que pode tornar mais difícil para os hackers encontrarem seu caminho em redes às quais não pertencem.
p Peter Chin, um professor pesquisador de ciência da computação e afiliado do Instituto Rafik B. Hariri de Computação e Ciência e Engenharia Computacional, e Jacob Harer, um Ph.D. do quarto ano estudante de ciência da computação, trabalhou com os pesquisadores da Draper para desenvolver tecnologia que pode varrer os sistemas de software em busca de tipos de vulnerabilidades que costumam ser usados por cibercriminosos para entrar. A ferramenta, que usava aprendizado profundo para treinar redes neurais para identificar padrões que indicam falhas de software, pode escanear milhões de linhas de código em segundos, e algum dia terá a capacidade de corrigir os erros de codificação que detectar.
p Chin diz que a ideia para o projeto, chamado DeepCode e financiado pelo programa MUSE da DARPA (Defense Advanced Research Projects Agency) e pelo Air Force Research Laboratory, veio a ele quatro anos atrás, enquanto ele estava dando uma palestra em sua aula de aprendizado de máquina (CS 542). Chin estava descrevendo a conquista revolucionária de cientistas do Google e da Universidade de Stanford, que usou o aprendizado profundo para ensinar uma rede neural a detectar padrões comuns em milhões de imagens e usar os padrões para identificar gatos em vídeos do YouTube. Ele se perguntou se uma rede semelhante poderia explorar o big data de programas de código-fonte aberto e encontrar padrões que indiquem vulnerabilidades de software.
p Chin sabia que era possível representar um programa de software visualmente, como um gráfico de fluxo de controle. Ele também sabia que havia uma biblioteca com mais de 10, 000 erros comuns de codificação, chamado CWE (Common Weakness Enumerations), que foi elaborado pelo Instituto Nacional de Padrões e Tecnologia (NIST). Se esses erros comuns de codificação no CWE do NIST pudessem ser apresentados como uma imagem, ele raciocinou, uma rede neural poderia concebivelmente ser treinada neles para encontrar padrões comuns de vulnerabilidades, assim como a rede neural de Stanford aprendeu a identificar características comuns de gatos.
p Com essa inspiração inicial, Queixo, que na época era um cientista-chefe em sistemas de decisão na Draper, bem como professor na BU, ajudou a garantir financiamento para o projeto da DARPA. Ele, Harer (um Draper Fellow na BU), e colegas da Draper começaram a testar suas suposições em programas de computador baseados em funções C e C ++ de código aberto.
p Desde o início do projeto em 2014, os pesquisadores perceberam que precisavam de mais do que apenas uma imagem do gráfico de fluxo de controle para detectar vulnerabilidades. Desde então, eles aprimoraram suas técnicas, adicionar recursos adicionais, como uma representação analisada para código semelhante ao usado por compiladores modernos, e eles adotaram redes comumente usadas para processamento de linguagem natural. Sua pesquisa, que Chin diz que ilustra a promessa de tais parcerias universidade / indústria, agora é descrito em dois artigos, "Detecção automatizada de vulnerabilidades em código-fonte usando aprendizado de representação profunda, "que foi aceito no IEEE ICMLA 2018, e "Aprendendo a reparar vulnerabilidades de software com redes adversárias generativas, "que foi aceito no NIPS 2018.
p Chin diz a segunda função do DeepCode, corrigindo os erros de codificação, ainda é um projeto de trabalho. "É muito difícil, "ele diz." Corrigir software ruim é muito parecido com corrigir erros gramaticais. Alguém poderia dizer 'Fui ao mercado' quando deveria ter dito 'Fui ao mercado'. Você treina a rede para identificar o padrão errado e substituí-lo pelo padrão adequado. Pelo menos essa é a ideia básica. "
p Harer diz que um problema é que os pesquisadores não sabem o suficiente sobre como as máquinas reconhecem vulnerabilidades. "Esses modelos de rede neural são em grande parte modelos de caixa preta, "ele diz." Eles são treinados em grandes quantidades de dados e esperamos que eles possam descobrir o que está acontecendo. Este é um problema com o aprendizado profundo em geral. "
p Queixo, Harer, e os pesquisadores da Draper continuarão a trabalhar no DeepCode, e planejam oferecer uma versão que pode ser implantada em um laptop e enviada para empresas, muitos dos quais relutam em compartilhar seu código com terceiros, até mesmo para um exame que poderia economizar dezenas de milhões de dólares.