Brussels / 2 & 3 February 2019

schedule

Machine Learning, Fuzzing and WebRTC using Janus

Having fun with Janus, libFuzzer, OpenCV and Tensorflow


This presentation will address two challanges we had to face: Machine Learning and Fuzz Testing in the Janus WebRTC Server The former part will show how to integrate Machine Learning functionality with WebRTC using the Janus WebRTC Server The latter part is about fuzzing, and will demonstrate how a fuzz testing has been implemented and integrated in the code base in order to fix the discovered bugs.

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

The former part will show how to integrate Machine Learning functionality 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 latter part is about 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.

Speakers

Paolo Saviano & Alessando Toppi

Links