Symbolic Execution of Programmable Logic Controller Code

被引:21
|
作者
Guo, Shengjian [1 ]
Wu, Meng [1 ]
Wang, Chao [2 ]
机构
[1] Virginia Tech, Blacksburg, VA 24061 USA
[2] Univ Southern Calif, Los Angeles, CA USA
基金
美国国家科学基金会;
关键词
Symbolic execution; Test generation; Partial order reduction; Programmable logic controller; PLC; SCADA; VERIFICATION;
D O I
10.1145/3106237.3106245
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programmable logic controllers (PLCs) are specialized computers for automating a wide range of cyber-physical systems. Since these systems are often safety-critical, software running on PLCs need to be free of programming errors. However, automated tools for testing PLC software are lacking despite the pervasive use of PLCs in industry. We propose a symbolic execution based method, named SYMPLC, for automatically testing PLC software written in programming languages specified in the IEC 61131-3 standard. SYMPLC takes the PLC source code as input and translates it into C before applying symbolic execution, to systematically generate test inputs that cover both paths in each periodic task and interleavings of these tasks. Toward this end, we propose a number of PLC-specific reduction techniques for identifying and eliminating redundant interleavings. We have evaluated SYMPLC on a large set of benchmark programs with both single and multiple tasks. Our experiments show that SYMPLC can handle these programs efficiently, and for multi-task PLC programs, our new reduction techniques outperform the slate-of-the-art partial order reduction technique by more than two orders of magnitude.
引用
收藏
页码:326 / 336
页数:11
相关论文
共 50 条
  • [1] Exploring Code Clones in Programmable Logic Controller Software
    Thaller, Hannes
    Ramler, Rudolf
    Pichler, Josef
    Egyed, Alexander
    2017 22ND IEEE INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION (ETFA), 2017,
  • [2] Automated Test Case Generation for Programmable Logic Controller Code
    Suresh, Varsha P.
    Chakrabarti, Sujit
    Jetley, Raoul
    PROCEEDINGS OF THE 12TH INNOVATIONS ON SOFTWARE ENGINEERING CONFERENCE (ISEC), 2019,
  • [3] Symbolic Execution of Obfuscated Code
    Yadegari, Babak
    Debray, Saumya
    CCS'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2015, : 732 - 744
  • [4] Symbolic execution with separation logic
    Berdine, J
    Calcagno, C
    O'Hearn, PW
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 52 - 68
  • [5] Programmable Logic Controller Forensics
    Ahmed, Irfan
    Obermeier, Sebastian
    Sudhakaran, Sneha
    Roussev, Vassil
    IEEE SECURITY & PRIVACY, 2017, 15 (06) : 18 - 24
  • [6] Symbolic Analysis of Programmable Logic Controllers
    Zhang, Hehua
    Jiang, Yu
    Hung, William N. N.
    Song, Xiaoyu
    Gu, Ming
    Sun, Jiaguang
    IEEE TRANSACTIONS ON COMPUTERS, 2014, 63 (10) : 2563 - 2575
  • [7] SymWalker: Symbolic Execution in Routines of Binary Code
    Ma, Jinxin
    Dong, Guowei
    Zhang, Puhan
    Guo, Tao
    2014 TENTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS), 2014, : 694 - 698
  • [8] Code Obfuscation Against Symbolic Execution Attacks
    Banescu, Sebastian
    Collberg, Christian
    Ganesh, Vijay
    Newsham, Zack
    Pretschner, Alexander
    32ND ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2016), 2016, : 189 - 200
  • [9] Programmable logic controller simulation on a microcomputer
    Parker, Joey K.
    CoED, 1990, 10 (01): : 9 - 13
  • [10] The Fuzzy controller by programmable logic circuit
    Xia, LY
    Qu, YT
    PROCEEDINGS OF THE 4TH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION, VOLS 1-4, 2002, : 2533 - 2536