Identifying Challenges with Fuzzing the RLC-510WA IP Camera using AFL++
Abstract
I løpet av de siste 20 årene har internettbaserte enheter blitt stadig mer populære, og overvåkningskameraer har vært et av de mest populære tiltak- ene for å forbedre sikkerheten i hjemmet. Dessverre er det slik at mange IoT-enheter inneholder kritiske sikkerhetshull allerede når de legges ut for salg, siden produsentene ofte nedprioriterer implementering av sikkerhetstil- tak. Denne realiteten, kombinert med sjelden oppdatering av progamvare, ofte som følge av uvitenhet fra eiernes side eller uaktsomhet fra produsentens side, gjør IoT-enheter spesielt utsatt for sikkerhetsbrudd. I lys av dette vil vi i vår oppgave utforske noen av prosessene som går ut på å avdekke disse sikkerhetshullene. I denne oppgaven har vi valgt fuzzing som metode for penetrasjonstesting, ved bruk av det populære fuzzing-verktøyet AFL++. Den spesifikke IoT-enheten vi skal teste, er IP-kameraet RLC-510WA fra Reolink. Formålet med oppgaven er å finne ut hvilke utfordringer man kan støte på når man forsøker å fuzze de binære filene til RLC-510WA kameraet. Vi tar spesielt for oss utfordringer knyttet til uthenting av programvare, «re- verse engineering», emulering av programvare og bruk av AFL++ for fuzzing. Som en generell fremgangsmåte følger vi trinnene som er beskrevet i OWASP Firmware Security Testing Methodology. I denne oppgaven presenterer vi de ulike trinnene i metodikken og hvordan vi utførte hvert trinn. Til slutt pre- senterer og diskuterer vi resultatene og utfordringene i emulerings-, reverse engineering- og fuzzing-prosessene. På grunn av de mange utfordringene vi støtte på i løpet av prosjektet, var vi ikke i stand til å følge stegene til metodikken helt ut. Vi klarte imidlertid til slutt å få til en fungerende emu- lering og en «proof of concept»-fuzzing-test. Denne erfaringen ga oss verdifull innsikt i svakhetene ved fuzzing som metode for penetrasjonstesting, når den brukes spesifikt for innebygde enheter som RLC-510WA IP-kameraet. Over the last 20 years, internet-enabled devices have seen a significant rise in popularity, with security cameras being a front runner for improvement of home security measures. Unfortunately, due to manufacturers not pri- oritizing security, a large amount of IoT devices contain critical security vulnerabilities out of the box. This, combined with inconsistent firmware patching, often as a result of ignorance by the owners or negligence by the manufacturer, makes IoT devices especially prone to security breaches. In light of this, we will in our thesis explore some of the processes that go into uncovering these vulnerabilities. For this thesis, we have chosen fuzzing as our penetration testing method, using the popular fuzzing tool AFL++. The specific IoT device we will be testing is the RLC-510WA IP Camera manufac- tured by Reolink. The purpose of this thesis is to discover what challenges can be encountered while attempting to fuzz the binary files of the RLC- 510WA. We specifically cover challenges surrounding firmware extraction, reverse engineering, firmware emulation, and using AFL++ for fuzzing. As a general guideline, we follow the steps outlined in the OWASP Firmware Security Testing Methodology. This thesis presents the different stages of this methodology and how we executed each stage. Finally, we present and discuss the results and challenges of the emulation, reverse engineering, and fuzzing process. Due to the numerous challenges we encountered during our project, we were not able to follow the methodology through to its conclu- sion. However, we were eventually able to achieve a working emulation and a proof of concept fuzzing test. This experience gave us valuable insight into the shortcomings of fuzzing as a penetration testing method, when used specifically for embedded devices like the RLC-510WA IP Camera.