본문 바로가기
KERD
논문KCI 등재

PLC용 uC/OS 운영체제의 보안성 강화를 위한 실행코드 새니타이저

Executable Code Sanitizer to Strengthen Security of uC/OS Operating System for PLC

0

조회

0

다운로드

2

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

PLC(Programmable Logic Controller)는 안전 지향 제어시스템(safety-critical control system)을 위한 실시간 임베디드 제어 애플리케이션들을 지원하는 고신뢰성의 산업용 디지털 컴퓨터이다. PLC의 실시간 제약조건을 만족시키기 위하여 uC/OS 등의 실시간 운영체제들이 구동되고 있다. PLC들이 산업제어 시스템 등에 널리보급되고 인터넷에 연결됨에 따라, PLC 시스템을 대상으로 한 사이버 공격들이 증대되고 있다. 본 논문에서는, 통합 개발 환경(IDE)에서 개발된 프로그램이 PLC로 다운로드 되기 전에 실행 코드를 분석하여 취약성을 완화시켜주는 “실행코드 새니타이저(sanitizer)“를 제안한다. 제안기법은, PLC 프로그램 개발 중에 포함되는 취약한 함수들과 잘못된 메모리 참조를 탐지한다. 이를 위해 취약한 함수 DB 및 이상 포인터 연산과 관련된 코드 패턴들의 DB를 관리한다. 이들 DB를 기반으로, 대상 실행 코드 상에 취약 함수들의 포함 여부 및 포인터 변수의 이상 사용 패턴을 탐지·제거한다. 제안 기법을 구현하고 실험을 통해 그 유효성을 검증하였다.

Abstract

A PLC (Programmable Logic Controller) is a highly-reliable industrial digital computer which supports real-time embeddedcontrol applications for safety-critical control systems. Real-time operating systems such as uC/OS have been used for PLCsand must meet real-time constraints. As PLCs have been widely used for industrial control systems and connected to theInternet, they have been becoming a main target of cyberattacks. In this paper, we propose an execution code sanitizer toenhance the security of PLC systems. The proposed sanitizer analyzes PLC programs developed by an IDE beforedownloading the program to a target PLC, and mitigates security vulnerabilities of the program. Our sanitizer can detectvulnerable function calls and illegal memory accesses in development of PLC programs using a database of vulnerablefunctions as well as the other database of code patterns related to pointer misuses. Based on these DBs, it detects andremoves abnormal use patterns of pointer variables and existence of vulnerable functions shown in the call graph of thetarget executable code. We have implemented the proposed technique and verified its effectiveness through experiments.

참고문헌 (20)

  1. Ephrem Ryan Alphonsus, "A review on the applications of programmable logic controllers(PLCs)", Renewable and Sustainable Energy Reviews, 60, pp.1185~1205 (2016)
  2. Naoum Sayegh, "Internal security attacks on SCADA systems", Third International Conference on Communications and Information Technology(ICCIT) (2013)
  3. Ghost in the PLC: stealth on-the-fly manipulation of programmable logic controllers’ I, "O, CTIT Technical Report Series, (TR-CTIT-16-02)", Ali Abbasi, 2016
  4. Do-Yeon Kim, "Cyber security issues imposed on nuclear power plants", Annals of Nuclear Energy, 65, pp.141~143 (2013)
  5. G. P. H. Sandaruwan, "PLC security and critical infrastructure protection", IEEE 8th International Conference on Industrial and Information Systems, pp.81~85 (2013)
  6. Nicolas Falliere, "Liam O Murchu and Eric Chien, W32.Stuxnet Dossier", White paper, Symantec Corporation, Security Response, 5(6), pp.1~69 (2011)
  7. Eric Chien, "W32.Duqu: The Precursor to the Next Stuxnet", The 5th USENIX Workshop on Large-Scale Exploits and Emergent Threats (2011)
  8. Candid Wueest, "Targeted Attacks Against the Energy Sector", Symantec Security Response, 1~29 (2014)
  9. Stevan A. Milinkovic, "Industrial PLC security issues", 20th Telecommunications Forum (TELFOR), pp.1536~1539 (2012)
  10. Kwang Hyun Park, "Embedded Operating Systems:Windows CE, Embedded Linux, pSOS, uC", OS, 2003 (2003), 1976~1981
  11. Dong Yulin, "Design and research of embedded PLC development system", 3rd International Conference on Computer Research and Development, 3, pp.226~228 (2011)
  12. Sampat S. Pawar, "Design and Development of ARM based Real-Time Industry Automation System using GSM", International Research Journal of Engineering and Technology(IRJET), 2(5), pp.800~805 (2015)
  13. Konstantin Serebryany, "AddressSanitizer: A Fast Address Sanity Checker", USENIX Annual Technical Conference, pp.309~318 (2012)
  14. Ramakrishnan Venkitaraman, "Static program analysis of embedded executable assembly code", Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems, pp.157~166 (2004)
  15. Software Reliability Enhancement Center, "Technology Headquarters and Information-technology Promotion Agency, ESCR(Embedded System development Coding Reference)", Ver.3.0, Informationtechnology Promotion Agency(IPA), ~ (2018)
  16. Amjad Basha M Sikiligiri, "Buffer overflow attack and prevention for embedded systems", Doctoral, Science in Computer Engineering, pp.2011
  17. Haugh Eric, "Testing C Programs for Buffer Overflow Vulnerabilities", The 10th Annual Network and Distributed System Security Symposium(NDSS) (2003)
  18. Robert Seacord, "Secure Coding in C and C++: Secure Coding in C and C++ (SEI Series in Software Engineering)" (2013), Addison-Wesley Professional
  19. Motor Industry Software Reliability Association, "MISRA-C:2012 Guideline for the use of the C language in critical systems", MIRA Limited, ISBN 978-1-906400-10-1, ~ (2012)
  20. Texas Instruments, "TMS320C6000Code Composer Studio Tutorial, Literature Number SPRU301C" (2000), Texas Instruments Publishers

관련 논문AI추천

이 간행물의 다른 논문 (16건)