MAC0215 - Especificações do Projeto

Por Ivan Gabriel Ferreira Dias
NUSP 11261451 Email: ivangabrielfdias@usp.br

Orientado pelo Prof. Dr. Daniel Macêdo Batista
Email: batista@ime.usp.br


Projeto de fuzzer para o protocolo AMQP

A pesquisa consistirá no estudo de Redes de Computadores, em especial o protocolo AMQP da camada de aplicação, de modo a possibilitar que o aluno projete um fuzzer para o protocolo.
Este projeto será baseado no trabalho feito por Luis Gustavo Araujo Rodriguez em sua tese Mechanisms to improve fuzz testing for message brokers, com viés especial em testar versões mais antigas do broker, de modo que haverão mais vulnerabilidades para serem (potencialmente) expostas. Além disso, será avaliado um protocolo diferente, dado que a tese do Luis explorou o protocolo MQTT.
Para tal, serão necessárias quatro grandes etapas:

  1. Estudo de Redes de Computadores
  2. Estudo do Protocolo e de Ferramentas
  3. Aplicação Prática do Protocolo
  4. Especificações do Fuzzer

O planejamento referente a cada uma das etapas estará detalhado a seguir.

Estudo de Redes

Nessa etapa o aluno deverá estudar os capítulos 1 e 2 do livro Computer Networking a top-down approach de Kurose & Ross, e os capítulos 1 a 5 do livro UNIX Network Programming Vol. 1: The Sockets API de Stevens, Fenner & Rudoff.

Para ambos os casos, será produzido um resumo do que foi lido. Estima-se que esse processo todo deverá levar em torno de 20 horas.

Estudo do Protocolo e Ferramentas

Nesse período o aluno irá se familiarizar à documentação do protocolo e o uso de ferramentas como Wireshark e o utilitário amqp-tools.
Além disso, é nesse período que serão listados os brokers a serem testados, dando preferência a brokers mais populares e versões mais antigas que sejam possíveis de compilar via código-fonte, de modo a:

  1. Ser relevante para os usuários do protocolo;
  2. Poder obter dados de cobertura de código; e
  3. Dispor de um rol maior de vulnerabilidades a serem potencialmente expostas.

Esta seção produzirá uma descrição simplificada do protocolo e um conjunto de diagramas de fluxo para cenários comuns da comunicação.
Dada a dificuldade de encontrar documentação de versões antigas, espera-se que esse período tome em torno de 30 horas.

Aplicação Prática do Protocolo

Esse tempo estará reservado à implementação de um broker AMQP com funcionalidade reduzida para que haja conhecimento prático não só do funcionamento do protocolo em si, mas também das possíveis estruturas internas de um broker desse tipo.
A implementação seguirá o enunciado do EP1 da disciplina MAC0352 - Redes de Computadores e Sistemas Distribuídos, ministrada no segundo semestre de 2023.

A etapa produzirá, naturalmente, um broker AMQP simplificado, assim como um relatório de experimentos e documentação do processo. Estima-se que o processo todo leve em torno de 30 horas.

Nota: para evitar cenários de plágio caso um enunciado similar seja usado na disciplina no futuro, o código-fonte estará disponível apenas sob demanda via e-mail.

Especificações do Fuzzer

A etapa final da pesquisa será produzir um documento especificando os requisitos e a estrutura do fuzzer proposto. Para esse fim, será feito um estudo da tese de Luis Gustavo Araujo Rodriguez, como mencionado anteriormente.
Estima-se que o processo leve de 30 a 40 horas.

Implementação preliminar do fuzzer (extra)

Caso sobre tempo, será produzida uma versão preliminar do fuzzer proposto, testando um ou dois métodos do protocolo, e limitando-se ao mesmo escopo do broker produzido na etapa de Aplicação Prática do Protocolo.

Este texto também está disponível em https://linux.ime.usp.br/~igfd/pesquisa/2024-planejamento-mac0215.
As páginas referentes à pesquisa e suas saídas poderão ser acompanhadas em https://linux.ime.usp.br/~igfd/pesquisa#mac0215.