학술논문

PGPatch: Policy-Guided Logic Bug Patching for Robotic Vehicles
Document Type
Conference
Source
2022 IEEE Symposium on Security and Privacy (SP) SP Security and Privacy (SP), 2022 IEEE Symposium on. :1826-1844 May, 2022
Subject
Components, Circuits, Devices and Systems
Computing and Processing
Privacy
Codes
Heuristic algorithms
Computer bugs
Maintenance engineering
Software
Safety
automated-program-repair
Robotic-Vehicle
Logic-bug
Patching
Language
ISSN
2375-1207
Abstract
Automated program repair (APR) methods aim to identify patches for a given bug and apply them with minimal human intervention. To date, existing APR approaches focus on repairing software bugs, such as memory safety bugs. However, our analysis of popular robotic vehicle (RV) control software shows that most of their bugs are not memory bugs but rather logic bugs. These bugs, while not causing software crashes, can cause an RV to reach an undesired physical state (e.g., hitting the ground). To fix these logic bugs, we introduce PGPatch, a policy-guided program repair framework for RV control programs, which identifies the correct patch for a given logic bug and applies it without human intervention. PGPatch takes, as input, existing or new logic formulas used to discover logic bugs. It then leverages the formulas using a dedicated dynamic analysis to classify the previously known logic bugs into a patch type. It next uses a customized algorithm, based on the identified patch type and violated formula, to produce a source code patch as output. Lastly, it creates repeatable tests to verify the patch’s completeness, ensuring that the patch is correct and does not degrade the RV’s performance. We evaluate PGPatch on selected bug cases from three popular RV control software and find that it correctly fixes 258 out of 297 logic bugs (86.9%). We additionally recruit 18 experienced RV developers and users and conduct a user study that demonstrates how using PGPatch makes fixing bugs in RV software significantly quicker and less error-prone.