Signal Breaker: Fuzzing Digital Signal Processors

dc.contributor.authorGarcia, Cameron Santiagoen
dc.contributor.committeechairHicks, Matthewen
dc.contributor.committeechairYao, Danfengen
dc.contributor.committeememberHasan, Shaddi Huseinen
dc.contributor.departmentComputer Science and Applicationsen
dc.date.accessioned2025-05-31T08:05:46Zen
dc.date.available2025-05-31T08:05:46Zen
dc.date.issued2025-05-30en
dc.description.abstractFuzzing is one of the most popular ways to find vulnerabilities in software. A fuzzer uses feedback from the execution of previous test cases to create new test cases through random mutation and the software under test executes these generated test cases to find crashes. Applications, operating systems, processors, and network protocols have been subjected to fuzzing to discover security vulnerabilities, making fuzzing one of the most successful software testing methodologies. Despite its vast application, fuzzing has yet to make its way to Digital Signal Processor (DSP) software. DSPs sit at the border between hardware and software systems: they transform analog signals external to a system into digital signals for internal processing. Many important societal applications including telecommunication, transportation, and defense rely on DSPs, making their testing a critical problem. Addressing this need, I introduce a DSP fuzzer SBFUZZ. Because of the cyber-physical nature of DSPs, SBFUZZ takes a semi-hosted approach to DSP fuzzing: strategically decomposing the traditional coverage-guided fuzzing loop into host-based and DSP-based components. Our driving insight is that the DSP can perform most of fuzzing's duties, but due to its limited resources, it requires periodic assistance from a more powerful host computer. This allows a single host to control the fuzzing of multiple physical DSPs. I implement SBFUZZ using a Texas Instruments TMS320C5515 to find vulnerabilities in nine DSP benchmark programs. My evaluation using nine real-world DSP programs shows that SBFUZZ performs over 2.5x better in throughput and code coverage compared to naively using embedded fuzzers for DSP software on its way to revealing five bugsen
dc.description.abstractgeneralFuzzing is a popular type of software vulnerability testing. Randomly generated inputs are provided to software to see if said inputs cause a crash. Any inputs that cause a crash are later investigated by a tester to fix vulnerabilities presented by the fuzzer. Digital Signal Processors (DSPs) are small embedded devices which rapidly handle signals from the outside world. These devices have yet to have a method created for the vulnerability testing of internal software. In this work, I present a split system i.e. a desktop computer and DSP device, fuzzer to efficiently find vulnerabilities in DSP software.en
dc.description.degreeMaster of Scienceen
dc.format.mediumETDen
dc.identifier.othervt_gsexam:43869en
dc.identifier.urihttps://hdl.handle.net/10919/134966en
dc.language.isoenen
dc.publisherVirginia Techen
dc.rightsCreative Commons Attribution 4.0 Internationalen
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/en
dc.subjectFuzzingen
dc.subjectSecurityen
dc.subjectDSPen
dc.titleSignal Breaker: Fuzzing Digital Signal Processorsen
dc.typeThesisen
thesis.degree.disciplineComputer Science & Applicationsen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.levelmastersen
thesis.degree.nameMaster of Scienceen

Files

Original bundle
Now showing 1 - 1 of 1
Name:
Garcia_CS_T_2025.pdf
Size:
416.05 KB
Format:
Adobe Portable Document Format

Collections