Александр Викторович Кныш
◽
Дмитрий Александрович Кобзев
◽
Оксана Николаевна Давиденко
◽
Сергей Анатольевич Детистов
◽
Иван Александрович Шечев
◽
...
В условиях существующего многообразия автоматизированных систем управления технологическими процессами (АСУТП), возрастающих рисков компьютерных инцидентов, обусловленных развитием информационных технологий, неизменно актуальными являются вопросы повышения качества программного обеспечения (ПО) АСУТП. В настоящей статье на примере АСУТП организаций системы «Транснефть» представлена возможность использования методов статического анализа исходного кода ПО с целью обеспечения информационной безопасности АСУТП. Рассмотрены причины низкого качества ПО и подходы к его повышению. Проанализированы методы анализа исходного кода ПО (статический, динамический, интерактивный), сделан вывод о том, что наиболее перспективной является комбинация трех видов статического анализа: сигнатурного анализа, анализа потока управления, анализа потока данных. Указанная комбинация легла в основу методики выявления ошибок, потенциально опасных конструкций, логических бомб и неиспользуемых переменных в ПО АСУТП, разработанной в рамках научно-исследовательской работы «Создание системы анализа исходного кода программного обеспечения автоматизированных систем управления технологическими процессами». Основным достоинством созданной методики является ее инвариантность по отношению к языкам программирования и разновидностям дефектов. При этом общий алгоритм поиска дефектов остается неизменным: меняются только сигнатуры, правила выявления.
With the existing variety of automated process control systems (APCS) and the increasing risks of computer incidents caused by the development of information technology, the issues of improving the quality of the APCS software are invariably topical. This article presents the possibility of using the software source code static analysis methods for ensuring the information security of the APCS using the example of Transneft system entities’ APCS. The reasons for the low quality of software and approaches to its improvement are considered. Methods of software source code analysis (static, dynamic, interactive) are analyzed, and it is concluded that the most promising is a combination of three types of static analysis: signature analysis, control flow analysis, data flow analysis. This combination serves as the basis for the methodology of detecting errors, potentially dangerous structures, logic bombs, and unused variables in the APCS software developed as part of the research work entitled “Creation of a System for Analyzing the Source Code of Automated Process Control System Software”. The main advantage of the created methodology is its invariance with respect to programming languages and types of defects. At the same time, the general defect searching algorithm remains unchanged: only signatures and detection rules are subject to change.