1. Detecting Insecure Code Patterns in Industrial Robot Programs
- Author
-
Stefano Zanero, Federico Maggi, Marcello Pogliani, Davide Quarta, and Marco Balduzzi
- Subjects
File system ,021110 strategic, defence & security studies ,business.industry ,Computer science ,Project commissioning ,0211 other engineering and technologies ,02 engineering and technology ,computer.software_genre ,law.invention ,Task (project management) ,Set (abstract data type) ,Industrial robot ,law ,0202 electrical engineering, electronic engineering, information engineering ,Code (cryptography) ,Robot ,020201 artificial intelligence & image processing ,Industrial robotics ,Software engineering ,business ,computer - Abstract
Industrial robots are complex and customizable machines that can be programmed with proprietary domain-specific languages. These languages provide not only movement instructions, but also access to low-level system resources such as the network or the file system. Although useful, these features can lead to taint-style vulnerabilities and can be misused to implement malware---on par with general-purpose programming languages. In this paper, we analyze the languages of $8$ leading industrial robot vendors, systematize their technical features, and discuss cases of vulnerable and malicious uses. We then describe a static source-code analyzer that we created to analyze robotic programs and discover insecure or potentially malicious code paths. We focused our proof-of-concept implementation on two popular languages, namely ABB's RAPID and KUKA's KRL. By evaluating our tool on a set of publicly available programs, we show that insecure patterns are found in real-world code; therefore, static source-code analysis is an effective security screening mechanism, for example to prevent commissioning insecure or malicious industrial task programs. Finally, we discuss remediation steps that developers and vendors can adopt to mitigate such issues.
- Published
- 2020
- Full Text
- View/download PDF