Combatendo vulnerabilidades em programas P4 com verificação baseada em asserções - Freire, Lucas; Neves, Miguel; Schaeffer-Filho, Alberto; Barcellos, Marinho (Anais do Simpósio Brasileiro de Cibersegurança (SBSeg); 2017: Anais do XVII Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais, 2017)
Tendências recentes em SDN estendem a programabilidade da rede ao plano de dados através do uso de linguagens de programação como P4. Nesse contexto, a chance de se introduzir erros e, por consequência, vulnerabilidades de software na rede aumenta significativamente já que pacotes passam a ser processados de maneira genérica. Mecanismos de verificação de planos de dados existentes são incapazes de modelar programas P4 ou apresentam grandes restrições no conjunto de propriedades modeladas. Para contornar essas limitações e tornar planos de dados programáveis mais seguros, apresentamos um método de verificação de programas P4 baseado no uso de asserções e execução simbólica. Primeiro, programas P4 são anotados com asserções que expressam propriedades genéricas de corretude e segurança. Em seguida, os programas anotados são transformados em código C e todos seus possíveis caminhos são executados simbolicamente a fim de verificar a validade das asserções inseridas. Resultados mostram que é possível provar um conjunto expressivo de propriedades na ordem de segundos utilizando a técnica proposta.