Namn: Peter Caprioli

Titel: Validering och testning av AMQP-standarden

Sammanfattning (på svenska):

Allt eftersom storskaliga datorapplikationer (t.ex. Internet of Things) blir vanligare så ökar behovet av att kunna skala upp dessa över flertalet fysiska servrar. En teknik som gör detta möjligt kallas Middleware. Denna teknik bryter ner en större applikation till mindre delar, individuellt kallade funktioner. Varje funktion körs oberoende av övriga funktioner vilket tillåter den större applikationen att skala mycket enkelt. Det finns flertalet Middleware-lösningar på marknaden idag. En av de mer populära kallas AMQP (Advanced Message Queueing Protocol), som även har en stor mängd servrar och klienter på marknaden idag, varav många är släppta som öppen källkod.

I rapporten undersöks fem populära klientimplementationer av AMQP med avseende på hur dessa hanterar det formellt definierade nätverksprotokollet. Även skillnader mellan olika implementationer undersöks. Dessa skillnader evalueras sedan med avseende på både säkerhet och stabilitet. Ett flertal skillnader mellan de olika implementationerna och det formellt definierade protokollet upptäcktes. Många implementationer hade liknande avvikelser, vilket tyder på att dessa har utvecklats mot en specifik serverimplementation istället för mot den officiella specifikationen. De upptäckta skillnaderna visade sig vara små och utgör i de flesta fall inget hot mot säkerheten eller stabiliteten i protokollet. I vissa specifika fall var det, på grund av dessa skillnader, dock möjligt att genomföra en datainjectionsattack. Denna gör det möjlig för en attackerare att injecera arbiträra datatyper i vissa aspekter av protokollet.

En mjukvarutestare, AMQPTester, används för att testa de olika implementationerna. Denna testare publiceras tillsammans med rapporten och tillåter envar att själv med enkelhet dekoda/enkoda AMQP-protokollet. Hitintills har inget testverktyg för AMQP existerat. I och med publicerandet av denna rapport och AMQPTester så förenklas således framtida forskning inom AMQP-protokollet.