Brussels / 2 & 3 February 2019


Artificial Intelligence, Fuzzing and WebRTC using Janus

Having fun with Janus, libFuzzer, OpenCV and Tensorflow

This presentation will address two challanges we had to face: Artificial Intelligence and Fuzz Testing in the Janus WebRTC Server

The first part of the slot will show how to integrate Artificial Intelligence world with WebRTC using the Janus WebRTC Server. Taking advantage of a dockerized architecture, a Janus instance was configured to provide the handled media to an OpenCV/Tensorflow Server as a low-latency RTP stream, and to receive back information on the processed media through a data channel, everything in a seamless way. The presentation will explore how we built a tool that can be specialized to execute different Computer Vision tasks, from the architecture till the code.

The second part is dedicated to fuzzing, and will demonstrate how fuzz testing has been implemented and integrated in the code base in order to fix the discovered bugs. This was particularly useful, considering the emphasis that has recently been placed on fuzz testing in the WebRTC servers world. By randomizing and altering the input patterns in an automated fashion, many software products, thought to be secure because used for years, proved to be vulnerable to specific RTP and RTCP packets, leading to crashes and memory overflow errors. The well known libFuzzer tool was put in place and fully integrated, through the writing of tests and the updating of building scripts in Janus code base.


Photo of Alessandro Toppi Alessandro Toppi
Paolo Saviano