KR20240103941A - 악의적인 변경을 방지하기 위한 plc 접근 제어 시스템 및 그 방법 - Google Patents

악의적인 변경을 방지하기 위한 plc 접근 제어 시스템 및 그 방법 Download PDF

Info

Publication number
KR20240103941A
KR20240103941A KR1020230068235A KR20230068235A KR20240103941A KR 20240103941 A KR20240103941 A KR 20240103941A KR 1020230068235 A KR1020230068235 A KR 1020230068235A KR 20230068235 A KR20230068235 A KR 20230068235A KR 20240103941 A KR20240103941 A KR 20240103941A
Authority
KR
South Korea
Prior art keywords
plc
security
user terminal
access control
security module
Prior art date
Application number
KR1020230068235A
Other languages
English (en)
Inventor
조래성
Original Assignee
주식회사 와임
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 와임 filed Critical 주식회사 와임
Publication of KR20240103941A publication Critical patent/KR20240103941A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]

Abstract

악의적인 변경을 방지하기 위한 PLC 접근 제어 시스템 및 그 방법이 개시된다. PLC 접근 제어 시스템은, 설비 대상 디바이스의 제어를 위한 PLC(Programmable Logic Controller); 사용자 단말과 상기 PLC 사이에 배치되어 상기 사용자 단말과 상기 PLC 간의 암호화 통신 기능(Secure Communication)을 제공하는 보안 모듈; 및 상기 PLC와 관련하여 보안 정책 설정(Security Policy Setting)을 위한 보안 서버(Security Server)를 포함하고, 상기 보안 모듈은, 상기 사용자 단말로부터 전달되는 상기 PLC의 명령(command) 또는 운전 데이터(operation data)를 수신하고, 상기 보안 서버와의 연동을 통해 상기 보안 정책 설정을 이용하여 상기 수신된 명령 또는 운전 데이터를 검증하고, 검증 결과를 기초로 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달 또는 차단할 수 있다.

Description

악의적인 변경을 방지하기 위한 PLC 접근 제어 시스템 및 그 방법{PLC ACCESS CONTROL SYSTEM AND METHOD TO PREVENT MALICIOUS CHANGES}
아래의 설명은 각종 하위 디바이스를 제어하는 PLC(Programmable Logic Controller)를 악의적인 공격으로부터 보호하는 기술에 관한 것이다.
일반적으로, 제조 설비에서 사용하는 로봇, 센서, 컨트롤러, 모터 등 각종 하위 디바이스와 연결되어 해당 디바이스의 동작을 제어하는 PLC는 하위 디바이스의 상태를 측정하고 측정 결과를 반영하여 하위 디바이스를 제어하는 역할을 수행한다.
PLC는 운영 시스템과 연결되어 하위 디바이스의 상태 측정 결과를 운영 시스템으로 제공하고 운영 시스템으로부터 명령과 데이터를 전달받아 하위 디바이스의 동작을 제어한다.
PLC와 관련된 기술의 일례로, 한국등록특허 제10-1059061호(스마트 그리드용 시설물 통합 시스템 및 그 방법, 등록일 2011년 08월 17 일)에는 복잡한 전력 서비스 망과 정보 통신 인프라, 시설물 및 설비, 그리고 기 구축되어 운영되고 있는 다양 한 기간 시스템들과 연계시켜 관리 방법을 하나로 통합된 관리와 운영 방법 및 전력 정보와 전력 망 정보를 제 공하는 기술이 개시되어 있다.
운영 시스템과 PLC 간의 암호화 통신을 적용하고 PLC을 보호하기 위한 정책을 적용하여 PLC의 무단 변경과 침입을 방지할 수 있는 시스템과 방법을 제공한다.
컴퓨터 장치로 구현되는 PLC 접근 제어 시스템에 있어서, 설비 대상 디바이스의 제어를 위한 PLC(Programmable Logic Controller); 사용자 단말과 상기 PLC 사이에 배치되어 상기 사용자 단말과 상기 PLC 간의 암호화 통신 기능(Secure Communication)을 제공하는 보안 모듈; 및 상기 PLC와 관련하여 보안 정책 설정(Security Policy Setting)을 위한 보안 서버(Security Server)를 포함하고, 상기 보안 모듈은, 상기 사용자 단말로부터 전달되는 상기 PLC의 명령(command) 또는 운전 데이터(operation data)를 수신하고, 상기 보안 서버와의 연동을 통해 상기 보안 정책 설정을 이용하여 상기 수신된 명령 또는 운전 데이터를 검증하고, 검증 결과를 기초로 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달 또는 차단하는 것을 특징으로 하는 PLC 접근 제어 시스템을 제공한다.
일 측면에 따르면, 상기 보안 모듈은, PADT(Programming And Debugging Tool) 기능이 확장된 외부 PADT(External PADT) 형태로 구현될 수 있다.
다른 측면에 따르면, 상기 보안 모듈은, PADT 포트와 일체화된 모듈로 상기 PADT 포트에 내장된 형태로 구현되거나, 또는 상기 PLC의 펌웨어 또는 보안 칩 형태로 구현될 수 있다.
또 다른 측면에 따르면, 상기 보안 모듈은, 상기 보안 서버로부터 상기 PLC에 대해 운영자에 의해 정의된 상기 보안 정책 설정을 수신하고, 상기 사용자 단말에서 상기 PLC로 전달하고자 하는 명령 또는 데이터가 상기 보안 정책 설정에 부합되는 경우 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달하고, 상기 사용자 단말에서 상기 PLC로 전달하고자 하는 명령 또는 데이터가 상기 보안 정책 설정에 위배되는 경우 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 차단할 수 있다.
또 다른 측면에 따르면, 상기 보안 정책 설정은 상기 PLC의 명령을 검증하기 위한 명령감시정책과 상기 PLC의 운전 데이터를 검증하기 위한 운전감시정책으로 구분될 수 있다.
또 다른 측면에 따르면, 상기 보안 모듈은, 상기 PLC의 접근을 위해 PADT 포트에 접속 가능한 사용자 권한과 상기 PADT 포트에 접속 가능한 시간을 설정하여 상기 PADT 포트에 접속하는 사용자와 시간을 제한할 수 있다.
컴퓨터로 구현되는 보안 장치에서 수행되는 PLC 접근 제어 방법에 있어서, 상기 보안 장치는 설비 대상 디바이스의 제어를 위한 PLC에 대한 보안 모듈을 포함하고, 상기 보안 모듈은 사용자 단말과 상기 PLC 사이에 배치되어 상기 사용자 단말과 상기 PLC 간의 암호화 통신 기능을 제공하고, 상기 PLC 접근 제어 방법은, 상기 보안 모듈에 의해, 상기 사용자 단말로부터 전달되는 상기 PLC의 명령 또는 운전 데이터를 수신하는 단계; 상기 보안 모듈에 의해, 기 PLC와 관련된 보안 정책 설정을 위한 보안 서버와의 연동을 통해 상기 보안 정책 설정을 이용하여 상기 수신된 명령 또는 운전 데이터를 검증하는 단계; 및 상기 보안 모듈에서, 검증 결과를 기초로 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달 또는 차단하는 단계를 포함하는 PLC 접근 제어 방법을 제공한다.
본 발명의 실시예들에 따르면, 운영 시스템과 PLC 간의 암호화 통신을 적용하고 PLC을 보호하기 위한 정책을 적용함으로써 PLC의 무단 변경과 침입을 시도하는 다양한 위협 요소로부터 대상 디바이스를 보호할 수 있다.
도 1 내지 도 3은 일반적인 PLC 시스템 구성 및 악의적인 공격 상황을 도시한 것이다.
도 4는 본 발명의 일실시예에 있어서 보안 기능이 포함된 PLC 접근 제어 시스템을 도시한 것이다.
도 5는 본 발명의 일실시예에 있어서 공격 상황에서 PLC 프로그램 및 운전 데이터를 보호하는 과정을 도시한 것이다.
도 6은 본 발명의 일실시예에 있어서 PLC 접근 제어 방법을 수행하기 위한 컴퓨터 장치의 예를 도시한 블록도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들은 각종 하위 디바이스를 제어하는 PLC를 악의적인 공격으로부터 보호하는 기술에 관한 것이다.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 운영 시스템과 PLC 간의 암호화 통신 기능과 정책 설정에 따른 명령 및 데이터 검증 기능을 통해 외부 공격으로부터 PLC를 보호할 수 있다.
본 발명의 실시예들에 따른 PLC 접근 제어 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 PLC 접근 제어 방법은 PLC 접근 제어 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 PLC 접근 제어 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 PLC 접근 제어 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1 내지 도 3은 일반적인 PLC 시스템 구성 및 악의적인 공격 상황을 도시한 것이다.
도 1을 참조하면, 운영자 단말에 해당되는 운영 시스템(10)은 PLC(20)로 운전 명령을 전달한다(S11). 운영 시스템(10)은 PLC(20)에 접근할 수 있는 PADT(Programming And Debugging Tool) 포트(30)에 접속하여 PADT 포트(30)를 통해 PLC(20)로 운전 명령을 전달할 수 있다.
PLC(20)는 PADT 포트(30)에 연결된 운영 시스템(10)으로부터 운영 시스템(10)의 운전 명령을 수신할 수 있다(S12).
PLC(20)는 운영 시스템(10)으로부터 수신된 운전 명령을 대상 디바이스인 로봇(40)으로 전달함으로써 로봇(40)의 동작을 제어할 수 있다(S13).
로봇(40)은 PLC(20)의 제어 하에 운영 시스템(10)의 운전 명령에 따라 사전에 정해진 작업을 수행할 수 있다(S14).
일반적인 PLC 시스템은 운영 시스템(10)을 통해 PLC(20)의 프로그램 및 운전 데이터를 설정하고 PADT 포트(30)와의 접속 환경에서 PLC(20)를 통해 로봇(40)의 운전을 제어할 수 있다.
상기한 PLC 시스템은 PADT 포트(30)를 이용하여 물리적 액세스가 가능하다는 점에서 외부 공격이 쉬어 암호 보안이 취약하기 때문에 PLC(20)의 프로그램(즉, 명령)이나 운전 데이터를 변조하는 공격에 취약하다.
도 2를 참조하면, PADT 포트(30)에 연결된 공격자 단말(50)에서 PLC(20)로 악성 명령을 전송할 수 있다(S25).
PLC(20)는 PADT 포트(30)에 연결된 공격자 단말(50)로부터 악성 명령을 수신할 수 있다(S26).
PLC(20)는 공격자 단말(50)로부터 수신된 악성 명령을 로봇(40)으로 전달할 수 있다(S27).
로봇(40)은 공격자 단말(50)의 악성 명령에 따라 작업을 수행할 수 있다(S28). 다시 말해, 악성 코드로 수정된 운전 명령을 로봇(40)으로 전달한 결과 PLC(20)는 로봇(40)을 비정상적으로 동작시키게 된다.
도 3에 도시한 바와 같이, 일반적인 PLC 시스템의 경우 외부 공격에 의한 비정상적인 운전 과정(S25 내지 S28) 또한 정상적인 운전 과정(S11 내지 S14)과 같이 동작한다.
이와 같이, PLC(20)의 프로그램 및 운전 데이터의 악의적인 변경이 발생하는 경우 로봇(40)의 잠재적인 오작동이나 고장을 초래하여 산업재해가 발생할 수 있고, PLC(20)의 프로그램 및 운전 데이터에 대한 변경 로그가 부재할 경우 원인 규명에도 어려움이 따르게 된다.
이러한 문제를 해결하기 위해, 본 실시예에서는 PADT 포트(30)를 이용한 물리적 액세스를 통해 로봇(40)의 운전을 제어하는 PLC 환경에서 원치 않는 공격으로부터 PLC(20)를 보호하기 위해 보안 정책과 암호화 통신을 적용할 수 있다. IT 시스템 전반에 장애가 발생하고 악성 코드가 유포되더라도 이를 차단하여 로봇(40)의 비정상적인 동작을 미연에 방지할 수 있다.
도 4는 본 발명의 일실시예에 있어서 보안 기능이 포함된 PLC 접근 제어 시스템을 도시한 것이다.
운영 시스템(10)과 공격자 단말(50)은 PLC(20)의 명령과 데이터에 대한 요청을 입력하는 사용자 단말에 해당된다. 본 실시예들은 정상적인 운영 시스템(10)을 통한 요청이 아닌, 공격자 단말(50)을 통한 위협 요소에 해당되는 요청을 차단할 수 있다.
본 발명에 따른 PLC 접근 제어 시스템은 PLC 프로그램 및 운전 데이터를 보호할 수 있으며, 이를 위해 PLC(20)의 액세스 및 동작을 제어하는 환경에서 PADT 포트(30)와의 연결을 위한 보안 통신, 운영자 인증을 통한 PLC(20) 접근, 허가되지 않은 PLC 명령 및 데이터 변조 차단 등을 포함한 보안 기능을 제공할 수 있다.
본 실시예에서는 정책 설정(Policy Setting)을 통해 이상행위를 탐지 및 차단할 수 있고, 무단 액세스 및 정책 위반 동작에 대한 브로드캐스트 경고(Broadcast alert)를 제공할 수 있다.
도 4를 참조하면, 본 발명에 따른 PLC 접근 제어 시스템은 PADT 포트(30)를 통해 접근할 수 있는 PLC(20)에 대해 별도의 보안 모듈(420)과 보안 서버(430)를 포함할 수 있다.
보안 모듈(420)은 외부 공격으로부터 PLC(20)를 보호하기 위한 기능으로서 운영 시스템(10)과 PLC(20) 간의 암호화 통신 기능(Secure Communication), 그리고 명령 및 데이터 검증을 위한 보안 정책 설정 기능(Security Policy Setting)을 포함할 수 있다.
보안 모듈(420)은 운영 시스템(10)과 PLC(20) 간의 통신을 담당할 수 있다. 통신은 이더넷, TCP/IP, USB, Serial 등 PLC(20)가 제공하는 통신 체계는 모두 이용 가능하다. 보안 모듈(420)은 운영 시스템(10)과 PLC(20) 간의 모든 통신을 감시하게 된 다.
보안 모듈(420)은 PLC 접근 제어 역할을 위한 별도의 보드로서 PADT 기능이 확장된 외부 PADT(External PADT) 형태로 구현될 수 있고, 실시예에 따라서는 PADT 포트(30)와 일체화된 모듈로 보안 모듈(420)이 PADT 포트(30)에 내장된 형태로 구현될 수도 있고 PLC(20) 내의 펌웨어 또는 보안 칩 형태로 구현 내지 제작될 수도 있다.
보안 모듈(420)은 보안 서버(430)와의 연동을 통해 본 발명에 따른 보안 기능을 제공할 수 있으며, 보안 서버(430)로부터 PLC(20)에 대한 최고 권한을 가진 운영자에 의해 정의된 보안 정책을 수신하여 설정할 수 있다. 보안 정책에는 로봇(40)의 운전을 제어하기 위한 명령들과, 그리고 각 명령 별로 해당 명령을 실행할 때 사용하는 값(value)인 운전 데이터를 포함할 수 있다. 예를 들어, 로봇(40)의 동작 A에 대해 명령 Ⅰ가 정의될 수 있고, 명령 Ⅰ에 대한 운전 데이터가 1~100 범위로 정해질 수 있다.
다시 말해, 보안 모듈(420)은 보안 서버(430)로부터 운영자에 의해 정의된 보안 정책을 수신하여 보안 정책 설정을 유지할 수 있으며, 보안 정책 설정에 기초하여 로봇(40)의 제어를 위해 외부로부터 들어오는 명령과 운전 데이터를 검증할 수 있다.
그리고, 보안 모듈(420)은 PLC(20)의 접근을 위해 PADT 포트(30)에 접속할 수 있는 사용자 인증 기능을 제공하고, 이때 접속 가능한 사용자 권한 레벨을 사전에 설정할 수 있다. PADT 포트(30)에 접속 가능한 사용자 레벨을 복수 개의 레벨(예를 들어, 1단계 사용자, 2단계 사용자, 3단계 사용자 등)로 정의할 수 있고 각 레벨 별로 서로 다른 권한을 부여할 수 있다. 예를 들어, 1단계는 최고 권한으로서 보안 정책 설정을 포함한 환경 설정 권한과 함께 설비 제어 권한을 가진 사용자로 정의하고, 2단계는 환경 설정 권한을 제외하고 설비 제어 권한을 가진 사용자로 정의하고, 3단계는 단순히 설비 모니터링만 가능한 일반 사용자로 정의할 수 있다. PLC(20)에 접근하여 로봇(40)을 제어할 수 있는 사용자 레벨은 로봇(40)을 이용한 작업 권한을 가진 2단계 이상의 사용자(1단계 사용자와 2단계 사용자)로 제한할 수 있다. 3단계 사용자가 PADT 포트(30)에 접속하는 경우 설비 제어 권한이 없으므로 로봇(40)의 제어를 차단할 수 있다. 또한, 보안 모듈(420)은 PLC(20)의 접근을 위해 PADT 포트(30)에 접속할 수 있는 시간을 함께 설정하는 것 또한 가능하다. 예를 들어, PLC(20)의 접근을 위해 PADT 포트(30)에 접속할 수 있는 날짜와 시간 범위 등을 설정할 수 있다.
로봇(40) 운전 과정은 다음과 같다.
도 4를 참조하면, 운영 시스템(10)은 보안 모듈(420)과의 암호화 통신을 바탕으로 PLC(20)로의 운전 명령을 전달한다(S411).
운영 시스템(10)과 PLC(20) 사이에 확장된 PADT 기능 형태로 배치된 보안 모듈(420)은 운영 시스템(10)에서 전달한 명령을 수신할 수 있으며, 이때 운영 시스템(10)으로부터 수신된 명령을 사전에 설정된 보안 정책을 통해 우선적으로 검증할 수 있다.
보안 모듈(420)은 보안 정책 설정에 부합하는 명령의 경우 해당 명령을 PADT 포트(30)를 통해 PLC(20)로 전달한다.
PLC(20)는 보안 모듈(420)을 통한 검증을 통해 운영 시스템(10)으로부터 보안 정책 설정에 속하는 명령을 수신할 수 있다(S412).
PLC(20)는 운영 시스템(10)으로부터 수신된 운전 명령을 대상 디바이스인 로봇(40)으로 전달함으로써 로봇(40)의 동작을 제어할 수 있다(S413).
로봇(40)은 PLC(20)의 제어 하에 운영 시스템(10)의 운전 명령에 따라 사전에 정해진 작업을 수행할 수 있다(S414).
한편, 공격자 단말(50)에서 보안 모듈(420)과의 암호화 통신을 뚫고 PLC(20)에 대한 악성 명령을 전송할 수 있다(S425).
보안 모듈(420)은 PLC(20)로 전달되는 악성 명령을 먼저 수신할 수 있고, 보안 정책 설정을 이용하여 해당 명령을 검증할 수 있다(S426). 보안 모듈(420)은 보안 정책 설정을 벗어난 명령이나 데이터를 검출할 수 있고 검출된 명령이나 데이터가 PLC(20)로 실제 전달되는 것을 차단할 수 있다.
보안 모듈(420)은 보안 정책 설정을 통해 공격자 단말(50)의 악성 명령을 검출하여 로봇(40)의 비정상적인 동작을 차단할 수 있다.
보안 모듈(420)은 보안 정책 설정을 벗어난 명령이나 데이터가 검출됨에 따라 무단 액세스 및 정책 위반 동작으로 간주하여 외부 공격 경고를 보안 서버(430)로 전달할 수 있다(S427).
보안 서버(430)는 보안 모듈(420)을 통해 PLC(20)의 상태를 모니터링하고 있다가 보안 모듈(420)로부터 외부 공격 경고가 수신되면 수신된 경고 알림을 표시할 수 있다(S428).
도 5는 본 발명의 일실시예에 있어서 공격 상황에서 PLC 프로그램 및 운전 데이터를 보호하는 과정을 도시한 것이다.
도 5를 참조하면, 우선적으로 보안 서버(430)는 PLC(20)에 대한 보안 모듈(420)에 로봇(40)의 동작을 허용하는 명령과 운전 데이터를 포함하는 보안 정책을 설정할 수 있다.
PLC(20)는 보안 모듈(420)을 통해 보안 정책 설정에 부합하는 명령과 데이터를 수신할 수 있고, 상기한 과정(S411 내지 S414)과 같이 로봇(40)을 정상적으로 동작시킬 수 있다.
한편, PLC(20)는 상기한 과정(S425 내지 S428)을 통해 보안 모듈(420)에서 보안 정책 설정을 벗어난 명령과 데이터가 검출되는 경우 해당 명령과 데이터를 차단함으로써 로봇(40)의 비정상적인 동작을 막을 수 있다.
보안 정책 설정에 기반한 검증 과정은 PLC(20)의 프로그램(즉, 명령)을 수정하는지 여부를 감시하는 과정, 그리고 PLC(20)에서 사용하는 운전 데이터를 공격자 단말(50)에서 변경하려고 하는 경우 정해진 정책을 확인하여 정상적인 범위에서의 변경인지를 감시하는 과정을 포함한다. 명령 검증과 운전 데이터 검증은 보안 서버(430)에서 제공하는 보안 정책 설정으로서 각각의 정책 데이터베이스 구조를 가지고 있다. 다시 말해, 보안 서버(430)는 명령 검증을 지원하는 명령감시정책 데이터베이스와, 운전 데이터 검증을 지원하는 운전감시정책 데이터베이스로 구분될 수 있다.
보안 모듈(420)은 보안 서버(430)와의 연동을 통해 PLC(20)의 명령 체계로 구성된 명령감시정책 데이터베이스를 바탕으로 PLC(20)의 프로그램 변형에 관계된 모든 명령을 감시할 수 있다. 다시 말해, 보안 모듈(420)은 공격자 단말(50)로부터 PLC(20)에 대한 프로그램의 변형 명령이 수신되면 해당 명령이 인증된 내용인지 명령감시정책 데이터베이스를 통해 검증을 하게 된다. 이때, 만일 정해진 보안 정책에 위배되는 내용일 경우 이에 대한 대응 방안에 따라 정해진 정책 위반 알림을 수행한다. 예를 들어, 공격자 단말(50)과 PLC(20) 간의 통신 연결을 차단하고, 아울러 경고를 발령하고 운영자에게 해당 경고를 전송하여 조치를 기다리는 등의 대응을 하게 된다. 한편, 보안 모듈(420)은 PLC(20)에 대한 프로그램의 변형 명령이 보안정책에 위배되는 내용이 아닐 경우 운영 시스템(10)과 PLC(20) 간에 전송되는 통신을 정상적으로 전달할 수 있다.
따라서, 명령감시정책에 의한 보안 구성은 PLC(20)에 대한 프로그램의 변형을 직접적으로 관리할 수 있는 방법을 제공하므로 PLC(20)에 대한 프로그램의 실수로 인한 변형이나 악의적인 변형을 목적으로 침투하는 불법 프로그램 등이 운용자가 감지하지 못하는 사이 변형 명령을 전송하여도 본 발명에 따른 보안 모듈(420)이 이를 탐지하여 운용자에게 그 사실을 통보하므로 어떠한 악의적인 변형 시도도 허용하지 않게 된다.
운전감시정책은 명령감시정책과 달리, PLC(20)에서 사용하는 데이터를 검증하는 역할을 하게 된다. 보안 모듈(420)은 PLC(20)에 대한 프로그램의 변형 명령이 아닌 운전 설정 값이나 특정 데이터의 변형을 시도하는 통신이 감지되면 해당 데이터의 중요도를 점검하여 각 중요도에 맞게 설정된 보안정책을 실시하고 운전에 중대한 영향을 미치는 데이터의 경우 운전감시정책 데이터베이스에 설정된 정책에 위배되는지 여부를 판단한다. 만일 정책에 위배되는 값일 경우 공격자 단말(50)과 PLC(20) 간의 통신 연결을 차단하고 경고 발령과 함께 그 조치를 기다리게 된다. 이때, 만일 정해진 보안정책에 위배되는 값일 경우 이에 대한 대응방안에 따라 정해진 정책 위반 경고를 제공하되, 경고를 발령하고 운영자에게 해당 경고를 전송하여 조치를 기다리는 등의 대응을 하게 된다. 한편, 보안 모듈(420)은 운전 데이터가 보안정책에 위배되는 내용이 아닐 경우 운영 시스템(10)과 PLC(20) 간에 전송되는 통신을 정상적으로 전달할 수 있다.
따라서, 운전감시정책에 의한 보안 구성은 보안 서버(430)와의 연동을 통해 보안정책 설정을 이용하여 PLC(20)가 사용하는 데이터의 안전성을 높여서 최악의 경우 악의적인 침투로 데이터의 변형이 생겨도 로봇(40)의 안전을 위협할 수 있는 수준의 데이터 변형을 강제로 막을 수 있는 방법을 제공하며, 운용자가 인지하지 못하는 변형 시도도 탐지할 수 있게 된다.
도 6은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 본 발명에 따른 PLC 접근 제어 방법은 도 6과 같이 구성된 컴퓨터 장치(600)에 의해 수행될 수 있다.
도 6에 도시된 바와 같이 컴퓨터 장치(600)는 본 발명의 실시예들에 따른 PLC 접근 제어 방법을 실행하기 위한 구성요소로서, 메모리(610), 프로세서(620), 통신 인터페이스(630) 그리고 입출력 인터페이스(640)를 포함할 수 있다.
메모리(610)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(610)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(600)에 포함될 수도 있다. 또한, 메모리(610)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(610)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(610)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(630)를 통해 메모리(610)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(660)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(600)의 메모리(610)에 로딩될 수 있다.
프로세서(620)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(610) 또는 통신 인터페이스(630)에 의해 프로세서(620)로 제공될 수 있다. 예를 들어 프로세서(620)는 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(630)는 네트워크(660)를 통해 컴퓨터 장치(600)가 다른 장치와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(600)의 프로세서(620)가 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(630)의 제어에 따라 네트워크(660)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(660)를 거쳐 컴퓨터 장치(600)의 통신 인터페이스(630)를 통해 컴퓨터 장치(600)로 수신될 수 있다. 통신 인터페이스(630)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(620)나 메모리(610)로 전달될 수 있고, 파일 등은 컴퓨터 장치(600)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
통신 방식은 제한되지 않으며, 네트워크(660)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들 간의 근거리 유선/무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(660)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(660)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
입출력 인터페이스(640)는 입출력 장치(650)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(640)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(650)는 컴퓨터 장치(600)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(600)는 도 6의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(600)는 상술한 입출력 장치(650) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 각종 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이처럼 본 발명의 실시예들에 따르면, PLC와의 암호화 통신을 적용하고 PLC을 보호하기 위한 정책을 적용함으로써 정책에 포함되지 않은 명령이나 데이터를 차단하여 PLC의 무단 변경과 침입을 시도하는 다양한 위협 요소로부터 대상 디바이스를 보호할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (7)

  1. 컴퓨터 장치로 구현되는 PLC 접근 제어 시스템에 있어서,
    설비 대상 디바이스의 제어를 위한 PLC(Programmable Logic Controller);
    사용자 단말과 상기 PLC 사이에 배치되어 상기 사용자 단말과 상기 PLC 간의 암호화 통신 기능(Secure Communication)을 제공하는 보안 모듈; 및
    상기 PLC와 관련하여 보안 정책 설정(Security Policy Setting)을 위한 보안 서버(Security Server)
    를 포함하고,
    상기 보안 모듈은,
    상기 사용자 단말로부터 전달되는 상기 PLC의 명령(command) 또는 운전 데이터(operation data)를 수신하고,
    상기 보안 서버와의 연동을 통해 상기 보안 정책 설정을 이용하여 상기 수신된 명령 또는 운전 데이터를 검증하고,
    검증 결과를 기초로 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달 또는 차단하는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  2. 제1항에 있어서,
    상기 보안 모듈은,
    PADT(Programming And Debugging Tool) 기능이 확장된 외부 PADT(External PADT) 형태로 구현되는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  3. 제1항에 있어서,
    상기 보안 모듈은,
    PADT 포트와 일체화된 모듈로 상기 PADT 포트에 내장된 형태로 구현되거나, 또는 상기 PLC의 펌웨어 또는 보안 칩 형태로 구현되는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  4. 제1항에 있어서,
    상기 보안 모듈은,
    상기 보안 서버로부터 상기 PLC에 대해 운영자에 의해 정의된 상기 보안 정책 설정을 수신하고,
    상기 사용자 단말에서 상기 PLC로 전달하고자 하는 명령 또는 데이터가 상기 보안 정책 설정에 부합되는 경우 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달하고,
    상기 사용자 단말에서 상기 PLC로 전달하고자 하는 명령 또는 데이터가 상기 보안 정책 설정에 위배되는 경우 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 차단하는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  5. 제4항에 있어서,
    상기 보안 정책 설정은 상기 PLC의 명령을 검증하기 위한 명령감시정책과 상기 PLC의 운전 데이터를 검증하기 위한 운전감시정책으로 구분되는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  6. 제1항에 있어서,
    상기 보안 모듈은,
    상기 PLC의 접근을 위해 PADT 포트에 접속 가능한 사용자 권한과 상기 PADT 포트에 접속 가능한 시간을 설정하여 상기 PADT 포트에 접속하는 사용자와 시간을 제한하는 것
    을 특징으로 하는 PLC 접근 제어 시스템.
  7. 컴퓨터로 구현되는 보안 장치에서 수행되는 PLC 접근 제어 방법에 있어서,
    상기 보안 장치는 설비 대상 디바이스의 제어를 위한 PLC에 대한 보안 모듈을 포함하고,
    상기 보안 모듈은 사용자 단말과 상기 PLC 사이에 배치되어 상기 사용자 단말과 상기 PLC 간의 암호화 통신 기능을 제공하고,
    상기 PLC 접근 제어 방법은,
    상기 보안 모듈에 의해, 상기 사용자 단말로부터 전달되는 상기 PLC의 명령 또는 운전 데이터를 수신하는 단계;
    상기 보안 모듈에 의해, 기 PLC와 관련된 보안 정책 설정을 위한 보안 서버와의 연동을 통해 상기 보안 정책 설정을 이용하여 상기 수신된 명령 또는 운전 데이터를 검증하는 단계; 및
    상기 보안 모듈에서, 검증 결과를 기초로 상기 사용자 단말과 상기 PLC 간에 전송되는 통신을 전달 또는 차단하는 단계
    를 포함하는 PLC 접근 제어 방법.
KR1020230068235A 2022-12-27 2023-05-26 악의적인 변경을 방지하기 위한 plc 접근 제어 시스템 및 그 방법 KR20240103941A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220185569 2022-12-27

Publications (1)

Publication Number Publication Date
KR20240103941A true KR20240103941A (ko) 2024-07-04

Family

ID=

Similar Documents

Publication Publication Date Title
US10333967B2 (en) Method and system for dynamic platform security in a device operating system
EP3486824B1 (en) Determine malware using firmware
EP3208718A1 (en) Security monitoring at operating system kernel level
US20200320193A1 (en) Baseboard management controller to perform security action based on digital signature comparison in response to trigger
US7743413B2 (en) Client apparatus, server apparatus and authority control method
CN110691064A (zh) 一种现场作业终端安全接入防护和检测系统
CN112653689B (zh) 一种终端零信任安全控制方法及系统
US10931641B1 (en) Hardware control logic based data forwarding control method and system
EP3465519B1 (en) System and method for bridging cyber-security threat intelligence into a protected system using secure media
US20190318131A1 (en) Methods and system for high volume provisioning programmable logic devices with common and unique data portions
WO2017196319A1 (en) Electronic device access control
CN113608505A (zh) 现场设备、改装模块、设置it安全等级的方法及计算机程序代码
KR20170119903A (ko) 랜섬웨어를 포함한 멀웨어 제어 방법 및 그 제어 장치
CN101458749B (zh) 创建受保护环境的方法
US20040193883A1 (en) Method and system for validating physical access to an information handling system
US20210385198A1 (en) Computing system with intelligent data provenance
KR20240103941A (ko) 악의적인 변경을 방지하기 위한 plc 접근 제어 시스템 및 그 방법
KR101614809B1 (ko) 엔드포인트 응용프로그램 실행 제어 시스템 및 그 제어 방법
KR101323086B1 (ko) 자동화 제어 시스템의 보안을 위한 시스템 및 방법
Ye et al. Position paper: On using trusted execution environment to secure COTS devices for accessing industrial control systems
WO2024143870A1 (ko) 악의적인 변경을 방지하기 위한 plc 접근 제어 시스템 및 그 방법
Velasteguí et al. IoT-based Security Alarm Protocol
JP4638494B2 (ja) コンピュータのデータ保護方法
CN113885425A (zh) 一种工业现场plc网络安全运维方法
CN111858114B (zh) 设备启动异常处理,设备启动控制方法、装置及系统