{'fraction_non_alphanumeric': 0.01773049645390071, 'fraction_numerical': 0.0, 'mean_word_length': 5.451428571428571, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Software Safety and Security for Programmable Logic Controllers

Supervisory Control and Data Acquisition (SCADA) systems are widely used in automated manufacturing and in all areas of our nation's infrastructure. Current research on SCADA security focuses on the primary SCADA components and targets network centric attacks. Security risks via attacks against the peripheral devices such as the Programmable Logic Controllers (PLCs) have not been sufficiently addressed. Since PLCs dictate the functionality of the processes it is crucial that they function correctly and securely. In this paper we study the problem of providing safety and security for ladder logic code. We argue that general purpose safety and security methods are insufficient for PLCs due to the specific context and the unique processing logic of ladder logic applications. We present a PLC Security Framework (PLC-SF) that is compatible with the current PLC compilers, detects and classifies incorrect and unsafe ladder logic code. After the classification of the vulnerabilities, PLC-SF recommends appropriate design-patterns to eliminate the problems.