KR20190020118A - Plc 가상 패칭 및 보안 콘텍스트의 자동화된 배포 - Google Patents

Plc 가상 패칭 및 보안 콘텍스트의 자동화된 배포 Download PDF

Info

Publication number
KR20190020118A
KR20190020118A KR1020197001980A KR20197001980A KR20190020118A KR 20190020118 A KR20190020118 A KR 20190020118A KR 1020197001980 A KR1020197001980 A KR 1020197001980A KR 20197001980 A KR20197001980 A KR 20197001980A KR 20190020118 A KR20190020118 A KR 20190020118A
Authority
KR
South Korea
Prior art keywords
virtual
security
patching
production environment
industrial
Prior art date
Application number
KR1020197001980A
Other languages
English (en)
Other versions
KR102208938B1 (ko
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 KR20190020118A publication Critical patent/KR20190020118A/ko
Application granted granted Critical
Publication of KR102208938B1 publication Critical patent/KR102208938B1/ko

Links

Images

Classifications

    • 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
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Programmable Controllers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템은 산업 자동화 디바이스(예컨대, PLC)를 포함한다. 산업 자동화 디바이스는, 복수의 산업 자동화 디바이스들에 걸쳐 있으며 하나 또는 그 초과의 가상 패치들을 저장하는 분산 데이터베이스의 인스턴스, 및 가상 패칭 엔진 보안 애플리케이션을 포함하는 앱 컨테이너를 포함한다. 앱 컨테이너는, 동작 동안 산업 자동화 디바이스에 의해 생성된 시스템 정보를 수집하고, 하나 또는 그 초과의 보안 공격들을 식별하기 위해 시스템 정보에 하나 또는 그 초과의 가상 패치들을 적용하도록 구성된다.

Description

PLC 가상 패칭 및 보안 콘텍스트의 자동화된 배포
[1] 본 발명은 일반적으로, 가상 패칭(patching) 및 보안 콘텍스트(context) 정보의 자동화된 배포를 이용하여, 사이버공격(cyberattack)들에 대한 제어 시스템(system)들의 복원력(resiliency)을 개선시키는 것에 관한 것이다. 개시된 기술은, 예컨대, 산업 제어기들, 이를테면 프로그램가능 로직 제어기(PLC; programmable logic controller)들 및 분산 제어 시스템(DCS; distributed control system)들이 사용되는 다양한 자동화된 생산 환경들에 적용될 수 있다.
[2] 보안 패칭은 산업 제어 시스템(ICS; Industrial Control Systems) 보안 커뮤니티(community)가 직면하는 가장 도전적인 문제들 중 하나이다. 주어진 프로그램가능 로직 제어기(PLC; programmable logic controller)에서의 보안 취약성을 고치기 위하여, 대부분의 경우들에서, 완전한 펌웨어 업데이트(firmware update) 및 전체 시스템 리부트(reboot)가 요구된다. 부가하여, 보안 패치(patch)들은 새로운 고장(failure)들 및 취약성들을 유입시킬 수 있으며, 이는 라이브(live) 실행 생산 시스템들을 업데이트(updating)하는 위험 및 비용을 극적으로 증가시킨다.
[3] 전통적으로, 산업 제어 시스템들에 대한 패치 관리는 대부분의 경우들에서 수동으로 수행되었다. 적용가능한 표준들 및 최선의 관행들에 의해 권고되는 부가적인 (외부) 보안 제어들은, 애플리케이션 벤더(application vendor)로부터의 패치 호환성 테스팅(testing) 결과들을 기다리면서, 긴 패치 지연들을 보상하기 위한 부가적인 보호를 제공하는 조치(measure)들(국제전기기술위원회 62443.02.01_2009 참고)을 배치(deploy)한다. 그러나, 그러한 조치들은 통상적으로 PLC 외부에 있으며, 무엇이 네트워크(network) 수준에서 수행될 수 있는지에 의해 제한된다.
[4] 본 발명의 실시예들은, 제어 시스템들에 대해, 가상 패칭 및 보안 콘텍스트 정보의 자동화된 배포에 관련된 방법들, 시스템들, 및 장치들을 제공함으로써, 위의 단점들 및 결점들 중 하나 또는 그 초과를 해결 및 극복한다. 더욱 구체적으로, 본원에서 설명된 기법들은, 완전한 소프트웨어 이미지(software image)/OS를 리로딩(reload)할 필요 없이 가상 패치들의 배치를 가능하게 하는, PLC에 대한 자동화된 메커니즘(mechanism)(프로세스(process)), 아키텍처(architecture) 및 보안 애플리케이션(예컨대, 앱(app))을 제공한다. 가상 패치는, 취약성 발각과 시스템 업그레이드(upgrade) 사이의 시간 슬롯(slot)으로부터의 완화되지 않은 취약성을 악용하는 잠재적인 공격자들에 대한 보호를 제공한다.
[5] 본 발명의 일부 실시예들에 따라, 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템은 산업 자동화 디바이스(device)(예컨대, PLC)를 포함한다. 산업 자동화 디바이스는, 복수의 산업 자동화 디바이스들에 걸쳐 있고 하나 또는 그 초과의 가상 패치들을 저장하는 분산 데이터베이스(database)의 인스턴스(instance), 및 가상 패칭 엔진(engine) 보안 애플리케이션을 포함하는 앱 컨테이너(container)를 포함한다. 앱 컨테이너는, 동작 동안 산업 자동화 디바이스에 의해 생성된 시스템 정보를 수집하고, 하나 또는 그 초과의 보안 공격들을 식별하기 위해 시스템 정보에 하나 또는 그 초과의 가상 패치들을 적용하도록 구성된다. 각각의 가상 패치는 산업 자동화 디바이스 상에서 악용가능한 별개의 공격 서명을 설명할 수 있다.
[6] 전술된 시스템에서 사용되는 시스템 정보는 산업 자동화 디바이스 상에서 실행되는 하나 또는 그 초과의 애플리케이션들에 의해 이루어진 시스템 호출들에 대응할 수 있다. 일부 실시예들에서, 시스템 정보는 (i) 판독 또는 기록 동작 중 적어도 하나가 수행된 메모리 블록(memory block)들; (ⅱ) 시스템 구성 변화들; 및 (ⅲ) 알람(alarm) 상태 변화들 중 하나 또는 그 초과를 포함한다. 부가적으로(또는 대안적으로), 시스템 정보는 (i) 산업 자동화 디바이스 상에서 실행되는 프로세스들; (ⅱ) 산업 자동화 디바이스 상에서 실행되는 스레드(thread)들; (ⅲ) 산업 자동화 디바이스에 의해 활용되는 네트워킹(networking) 연결들; (ⅳ) 파일(file) 생성 정보; 및 (v) 파일 수정 정보 중 하나 또는 그 초과를 포함할 수 있다.
[7] 전술된 시스템의 일부 실시예들에서, 가상 패칭 엔진 보안 애플리케이션은, 하나 또는 그 초과의 제어 커맨드(command)들과 결합하여 산업 자동화 디바이스의 하나 또는 그 초과의 구성들을 실행하는 것의 미래 결과(future consequence)들을 결정하기 위해, 산업 자동화 디바이스에 의해 실행되는 제어 코드(code)의 기호 실행을 수행한다. 이들 미래 결과들은, 예컨대, 보안 위반들, 시스템 고장, 또는 다른 원치 않는 상태들의 표시자들의 형태로 식별될 수 있다. 가상 패칭 엔진 보안 애플리케이션은, 미래 결과들의 표시자가 예컨대 미안전 시스템 상태 또는 산업 생산 환경과 연관된 미리 결정된 안전 제약들의 위반에 대응하면, 제어 커맨드들의 미래 실행을 차단할 수 있다.
[8] 전술된 시스템의 일부 실시예들에서, 분산 데이터베이스의 인스턴스 및 앱 컨테이너는 산업 자동화 디바이스 상의 제1 가상 머신(machine)에서 실행된다. 산업 자동화 디바이스는 제2 가상 머신을 더 포함할 수 있으며, 제2 가상 머신은, 하나 또는 그 초과의 필드(field) 디바이스들과 연관된 자동화 시스템 생산 데이터(data)를 이용하여 스캔(scan) 주기에 따라 업데이트되는(updated) 프로세스 이미지, 및 플랜트 플로어(plant floor) 네트워크 상에서 자동화 시스템 네트워크 데이터를 전송 및 수신하도록 구성된 네트워킹 구성요소를 실행한다. 일 실시예에서, 제2 가상 머신은 또한, 프로세스 이미지를 통해 수집된 자동화 시스템 생산 데이터 및 네트워킹 구성요소를 통해 수집된 자동화 시스템 네트워크 데이터를 저장하도록 구성되는 임베디드 히스토리언(embedded historian)을 포함하는 실시간 데이터베이스를 실행한다. 그런 다음, 동작 동안 산업 자동화 디바이스에 의해 생성된 시스템 정보는 임베디드 히스토리언으로부터 가상 패칭 엔진 보안 애플리케이션에 의해 리트리빙될(retrieved) 수 있다.
[9] 전술된 시스템의 일부 실시예들에서, 가상 패칭 엔진 보안 애플리케이션은 추가로, (i) 보안 운용 센터(operations center)에 의해 생성된 새로운 가상 패치들을 수신하며, 그리고 (ⅱ) 새로운 가상 패치들을 분산 데이터베이스에 저장하도록 구성된다. 부가적으로, 가상 패칭 엔진 보안 애플리케이션은 추가로, 보안 공격들의 표시를 보안 운용 센터에 송신하도록 구성될 수 있다. 일부 실시예들에서, 가상 패칭 엔진 보안 애플리케이션은 추가로, 하나 또는 그 초과의 보안 공격들과 연관된 하나 또는 그 초과의 제어 커맨드들을 식별하도록 구성된다. 하나 또는 그 초과의 보안 공격들을 식별하는 것에 대한 응답으로, 가상 패칭 엔진 보안 애플리케이션은, 액티브(active) 응답 세팅(setting)이 인에이블링되는지(enabled) 여부를 결정한다. 액티브 응답 세팅이 인에이블링되지 않으면, 제어 커맨드들이 실행되고, 산업 자동화 디바이스와 연관된 운용자에게 이상(anomaly)이 보고된다. 다른 한편으로, 액티브 응답 세팅이 인에이블링되면, 제어 커맨드(들)의 실행은 차단된다.
[10] 본 발명의 다른 실시예들에 따라, 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템은, 2개의 가상 머신들, 가상 머신들 사이의 시스템 정보의 전송을 가능하게 하도록 구성된 내부 통신 채널(channel), 및 가상 머신들을 실행하는 하이퍼바이저(hypervisor)를 포함한다. 시스템의 제1 가상 머신이 하나 또는 그 초과의 제어 프로그램(program)들을 실행하는 반면에, 제2 가상 머신은 (예컨대, 위에서 설명된 앱 컨테이너의) 가상 패칭 엔진 보안 애플리케이션을 실행을 실행한다. 가상 패칭 엔진 보안 애플리케이션은, 하나 또는 그 초과의 제어 프로그램들에 관련된 시스템 정보를 수집하고, 하나 또는 그 초과의 보안 공격들을 식별하기 위해 시스템 정보에 하나 또는 그 초과의 가상 패치들을 적용하도록 구성된다. 이 시스템 정보는 예컨대 (i) 판독 또는 기록 동작 중 적어도 하나가 수행된 메모리 블록들; (ⅱ) 시스템 구성 변화들; 및 (ⅲ) 알람 상태 변화들; (ⅳ) 제1 가상 머신 상에서 실행되는 프로세스들; (v) 제1 가상 머신 상에서 실행되는 스레드들; (ⅵ) 제1 가상 머신에 의해 활용되는 네트워킹 연결들; (ⅶ) 파일 생성 정보; 및/또는 (ⅷ) 파일 수정 정보 중 하나 또는 그 초과를 포함할 수 있다. 일부 실시예들에서, 제2 가상 머신은, 복수의 산업 제어기들에 걸쳐 있고 하나 또는 그 초과의 가상 패치들을 저장하는 분산 데이터베이스의 인스턴스를 더 포함한다. 일부 실시예들에서, 시스템 정보는 제1 가상 머신의 임베디드 히스토리언으로부터 가상 패칭 엔진 보안 애플리케이션에 의해 리트리빙된다.
[11] 본 발명의 다른 실시예들에 따라, 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터(computer)-구현 방법은, 보안 운용 센터 컴퓨터가, 산업 제어 시스템들에 적용가능한 보안 취약성 악용 방법들의 표시를 수신하는 단계, 및 시뮬레이팅된(simulated) 산업 환경을 사용하여 그러한 보안 취약성 악용 방법들을 재생하는 단계를 포함한다. 보안 운용 센터 컴퓨터는, 보안 취약성 악용 방법들에 대응하는 취약성 악용 검출 서명을 생성하고, 취약성 악용 검출 서명이 적용가능한 산업 제어기들의 사용자들을 식별한다. 그런 다음, 각각의 식별된 사용자에 대해, 보안 운용 센터 컴퓨터는 (i) 보안 취약성 악용의 시도되는 실행을 검출하도록 동작가능한 가상 패치를 생성하고, (ⅱ) 가상 패치를 식별된 사용자에게 배포한다.
[12] 본 발명의 다른 실시예들에 따라, 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터-구현 방법은, 보안 운용 센터 컴퓨터가, 산업 제어 시스템들에 적용가능한 공격 캠페인(campaign)들의 표시를 수신하는 단계, 및 공격 캠페인들에 대응하는 공격 검출 서명을 생성하는 단계를 포함한다. 방법은, 보안 운용 센터 컴퓨터가, 공격 검출 서명이 적용가능한 산업 제어기들의 사용자들을 식별하는 단계를 더 포함한다. 각각의 식별된 사용자에 대해, 보안 운용 센터 컴퓨터는, 공격 검출 서명을 검출하도록 동작가능한 가상 패치를 생성하고, 가상 패치를 식별된 사용자에게 배포한다.
[13] 본 발명의 부가적인 특징들 및 장점들은, 첨부된 도면들을 참조하여 진행되는 예시적인 실시예들의 다음의 상세한 설명으로부터 자명해질 것이다.
[14] 본 발명의 전술된 그리고 다른 양상들은, 첨부된 도면들과 관련하여 읽을 때, 다음의 상세한 설명으로부터 최선으로 이해된다. 본 발명을 예시하는 목적을 위해, 현재 바람직한 실시예들이 도면들에서 도시되지만, 본 발명이 개시된 특정 수단들로 제한되지 않는다는 것이 이해된다. 다음의 도면들이 도면들에 포함된다:
[15] 도 1은 일부 실시예들에 따른, 사이버보안(cybersecurity) 애플리케이션과 고도로-커플링된(highly-coupled) 제어-보안 PLC를 보여주고;
[16] 도 2는 일부 실시예들에 따른, 보안 이상 검출 및 가상 패칭의 아키텍처를 예시하며; 그리고
[17] 도 3은 일부 실시예들에 따른 가상 패칭 프로세스를 예시한다.
[18] 일반적으로 가상 패칭 및 보안 콘텍스트 정보의 자동화된 배포를 이용하여, 사이버공격들에 대한 제어 시스템들의 복원력을 개선시키는 것에 관한 시스템들, 방법들, 및 장치들이 본원에서 설명된다. 본원에서 설명된 가상 패치는, 의심스러운 활동들 또는 구성 커맨드들을 검출하며 그리고 구성되는 경우 이러한 의심스러운 활동들 또는 구성 커맨드들을 가로채기 위해, 운영체제 및 메모리에 대한 면밀한(in-depth) 저수준 접근을 갖는 PLC 커널 모듈(kernel module) 애플리케이션으로서 배치될 수 있다. PLC들에 대한 가상 패칭은, 라이브 생산 시스템들의 패칭과 연관된 문제들을 크게 완화시키기 위해 적용될 수 있는데, 그 이유는 이러한 PLC들에 대한 가상 패칭이, 취약성 악용의 검출, 그리고 일부 경우들에서, 공격 방지를 가능하게 하기 때문이다.
[19] "Improving Control System Resilience by Highly Coupling Security Functions with Control"이란 명칭으로 2016년 4월 22일자로 출원된 PCT 특허 출원 일련 번호 PCT/US2016/28893(이 PCT 특허 출원은 인용에 의해 본원에 통합됨)은, 프로세스 변수들(센서(sensor)들 및 액추에이터(actuator)들)의 지식에 기반한 침입 검출 방식을 포함하는 보안 이상 검출 앱을 설명한다. 개시된 아키텍처 및 애플리케이션은 비지도 머신 러닝(unsupervised machine learning)에 기반한, PLC에 대한 로컬(local) 보호를 제공했다. 본원에서 설명된 시스템들 및 방법들은, 가상 패치들로서 자동적으로 보안 운용 센터(SOC; Security Operations Center)로부터 로우 풋프린트(low footprint) 공격 서명들을 배치하는 메커니즘(mechanism)을 제공함으로써, 그 아키텍처 및 애플리케이션을 보완하고 향상시킨다.
[20] 도 1은 일부 실시예들에 따른, 사이버보안 애플리케이션과 고도로-커플링된 제어-보안 PLC(100)를 보여준다. 이 예는 Siemens 소프트웨어 환경 내의 구현을 도시하지만; 도 1에서 설명된 일반적인 개념들이 다른 환경들의 등가 소프트웨어로도 또한 확장될 수 있다는 것이 이해되어야 한다. PLC(100)는 복수의 가상 머신(VM; virtual machine)들을 실행하는 다수의 프로세서 코어(processor core)들을 갖는다. 일부 실시예들에서, 각각의 코어는 별개의 가상 머신에 전용될 수 있다. 도 1의 예에서, 하나의 가상 머신(105)은 Simatic S7 펌웨어(FW; Firmware)를 구현하도록 구성되고, 다른 가상 머신(110)은 Windows 또는 Linux를 구현하도록 구성된다. Simatic S7 PLC 펌웨어는, 자동화 환경의 필드 디바이스들과 인터페이싱(interfacing)하기 위한 하나 또는 그 초과의 제어 프로그램들을 실행한다. VM1 상에서 실행되는 임의의 애플리케이션은 VM0 상에서 실행되는 제어 애플리케이션들에 대한 어떤 악영향도 갖지 않는다. 가상 머신(105) 내에, 임베디드 히스토리언에 의해 구동되는 실시간 데이터베이스가 존재한다. 그것은 시계열로서 하나 또는 그 초과의 제어 프로그램들에 관련된 모든 실시간 프로세스 이미지 데이터, 이를테면, 입력들, 출력들, 메모리 변수들, 그리고 하나 또는 그 초과의 사람 머신 인터페이스(HMI; human machine interface) 및 제조 실행 시스템(MES; manufacturing execution system)으로부터의 커맨드들을 수집한다. "Distributed Embedded Data and Knowledge Management System Integrated with PLC Historian"이란 명칭으로 2015년 12월 10일자로 출원된 PCT 특허 출원 일련 번호 PCT/US2015/64863(이 PCT 특허 출원은 인용에 의해 본원에 통합됨)은, 본원에서 설명된 고도로-커플링된 제어-보안 PLC(100)와 함께 사용될 수 있는 히스토리언을 구현하기 위한 기법들의 예들을 제공한다. Windows/Linux 가상 머신(110)에서, 다른 실시간 데이터베이스는, 내부 통신 채널 또는 공유 메모리(SM; shared memory)를 사용하여 Simatic S7 펌웨어에서 호스팅되는(hosted) 실시간 데이터베이스(RTDB; real-time database)와 데이터를 교환한다.
[21] 가상 머신(110)의 "프로세싱(Processing)" 블록은, 일차 데이터 프로세싱인, 실시간 데이터베이스의 일차 데이터를 판독/기록/필터링(filtering)/스무딩(smoothing)하는 것을 수행하는 기능 블록이다. 가상 머신(110)의 "콘텍스트"의 블록은 번역기로서 작동하며, 이 번역기는 모든 데이터의 의미를 생산 지식으로 번역하는데, 이를테면 측정들을 (예컨대, 맥주 발효 탱크(beer fermentation tank)의) 온도로 번역한다. 가상 머신(110)의 앱 컨테이너에 의해 호스팅되는 다수의 애플리케이션들이 존재하며, 이러한 다수의 애플리케이션들 중 일부는 보안 기능성으로 지향될 수 있다. 예컨대, App1은 (아래에서 더욱 상세히 논의되는) 사이버공격 검출/방지를 위한 가상 패칭 앱에 사용될 수 있고, App2는 머신 징후(prognostic) 분석 애플리케이션일 수 있다. 그들 둘 모두는 실시간 데이터베이스에 수집된 데이터에 기반하여 작동할 필요가 있다. 이 경우, 가상 패칭 앱은, 꼭 Windows 또는 Linux 애플리케이션처럼 쉽게 추가, 제거 및 업데이트될(updated) 수 있다. PLC의 앱 컨테이너들 내에 앱들을 구현하기 위한 방법들 및 시스템들은, "Extending a Programmable Logic Controller with Apps"란 명칭으로 2016년 2월 10일자로 출원된 미국 특허 출원 번호 15/040,565(이 미국 특허 출원은 인용에 의해 본원에 통합됨)에서 더욱 상세히 설명된다.
[22] 본원에서 사용된 가상 패치란 용어는, 별개의 취약성 또는 공격을 설명하는 실행가능 알고리즘(algorithm)(서명)을 지칭한다. 가상 패치는 (i) 재생된 취약성/공격의 분석; (ⅱ) PLC 취약성/공격의 잠재적인 근본 원인의 결정; (ⅲ) 취약성의 근본 원인과 연관되는 레코딩된 공격 벡터(recorded attack vector); (ⅳ) 공격 벡터가 동작할 수 있게 하는 인에이블링된(enabled) 필수 PLC 구성(예컨대, 인에이블링된 취약 서비스(service)들), 및 (v) 다른 콘텍스트적(contextual) 정보, 이를테면 생산 프로세스 유형, 제어되는 변수, 연결된 기계류 등 중 하나 또는 그 초과에 기반하여 생성된다. 각각의 가상 패치는, 표준화된 언어, 이를테면 사이버 관찰가능 표현(Cyber Observable eXpression)(CybOX™) 또는 제어 시스템들의 상세들을 고려하는, 이러한 표준화된 언어의 파생된 확장 버전(version)에 의해 정의되는, 공격의 세부사항들을 포함할 수 있다. 이들 세부사항들은 예컨대 파일 패턴(pattern), 네트워크 패킷(packet)들/흐름, 사용자 세션(session) 식별자, 시스템 이벤트 로그(event log) 등을 포함할 수 있다. 가상 패치는 침입/사이버(cyber) 보안 공격들, 이를테면 HMI로부터의 가짜 커맨드들, MES로부터의 위조된 데이터 블록들 및 심지어 서비스 거부(DoS; denial-of-service) 공격들을 설명할 수 있는 온톨로지(ontology)들을 통해 설명될 수 있다. 온톨로지는 또한, 다른 지식, 이를테면 사이버공격들에 의해 유도되는 악영향들(예컨대, 생산 및 품질 측면에서 저하된 성능, 머신들의 손상)을 포함할 수 있다. 침입 및 사이버보안 온톨로지, 뿐만 아니라 부가적인 생산 프로세스 지식은, 프로세스 이미지 데이터(필드 데이터)와 제어기들에서의 다른 형태들의 콘텍스트 정보 사이에서 인과적으로 연결되며, 이상 이벤트들에 관한 추리를 인에이블링(enable)할 수 있다.
[23] (아래에서 더욱 상세히 설명되는) 각각의 제어기 상에의 가상 패칭 엔진의 배치는, 각각의 경우에 대한 특정 적용가능 공격 시나리오(scenario)들에 기반하여 서명 기반 보안 침입 검출을 인에이블링한다. 일부 실시예들에서, 각각의 가용한 공격 벡터의 잠재적인 악용 위험들에 기반하여, 관련 서명들의 작은 서브세트(subset)만이 로딩되며(loaded), 이는 불필요한 CPU 활용을 방지한다. 각각의 가상 패치는, 제어 디바이스(예컨대, PLC) 상의 검출 엔진이 점검될 의심스러운 데이터 흐름(네트워크 또는 메모리)과 시스템 이산 보안 이벤트들(예컨대, 구성 변화)의 주어진 결합에 대해 연속적으로 검증할 수 있게 하는 명령들 및 페이로드(payload)들을 포함한다. 주어진 PLC/시나리오에 대한 가상 패치의 적용가능성의 검사(validation) 및 검증은 이 가상 패치의 배치 전에 수행될 수 있다.
[24] 도 2는 일부 실시예들에 따른, 보안 이상 검출 및 가상 패칭의 아키텍처(200)를 예시한다. 이 예는 활동에 의해 3개의 영역들, 즉, 엔지니어(engineer)들 및 플랜트 운용자들에 의해 수행되는 로컬 플랜트(205) 활동, 제어기들(또는 다른 인에이블링된 디바이스들)(215A, 215B, 및 215C) 상에서 구현되는 보안 이상 검출 기능성, 및 SOC(210)에 있는 위협 관리로 개념적으로 나누어진다. 도 2에서 제시된 화살표들이, 아키텍처(200)의 디바이스들 사이에서 정보/데이터가 전송될 수 있는 일부 잠재적인 방식들을 나타내기 위한 예시적인 목적들을 위해 제시되지만; 이들 화살표들은 단지 아키텍처(200)를 사용하여 이루어질 수 있는 다양한 정보/데이터 전송들의 예들이고, 디바이스들의 상이한 쌍들 사이의 전송들이 아키텍처(200) 내에서 유사하게 구현될 수 있다는 것이 이해되어야 한다.
[25] 작업흐름의 로컬 플랜트(205) 부분은 엔지니어들(205A) 및 플랜트 운용자들(205B)을 포함한다. 엔지니어들(205A)은 제어기들(215A, 215B, 및 215C)에 대한 이상 검출 앱들, 가상 패칭 앱들, 및 다른 보안 앱들을 개발하여 배치한다. 부가적으로, 엔지니어들(205A)은, 제어기들(215A, 215B, 및 215C)과 SOC(210) 사이의 정보 교환 수준을 특정하도록 (배치된 앱들에 의해 또는 다른 시스템(세팅들)을 통해) 제어기들(215A, 215B, 및 215C)을 구성할 수 있다. 게다가, 일부 실시예들에서, 엔지니어들(205A)은, SOC(210)가 소정의 위협 조건들에 어떻게 반응해야 하는지를 특정할 수 있다.
[26] SOC(210)는 보안/프로세스 제어 전문가들(210A) 및 분석 클라우드(Cloud)(210B)를 포함한다. 보안/프로세스 제어 전문가들(210A)은 위협 지능 정보를 분석 클라우드(210B)에 제공한다. 분석 클라우드(210B)는, (아래에서 더욱 상세히 설명되는 바와 같이) 제어기들(215A, 215B, 및 215C)에 전달될 수 있는 새로운 공격 벡터들을 식별하기 위해, 전문화된 보안 분석들을 이용하여 위협 지능 정보를 프로세싱(process)한다. 부가적으로, 분석 클라우드(210B)는, 플랜트 보안 상태 정보(예컨대, 이벤트들 등)를 모으고, 위협 지능 정보를 추가로 다듬기 위해 이 정보를 보안/프로세스 제어 전문가들(210A)과 공유할 수 있다.
[27] 일단 제어기들(215A, 215B, 및 215C)에 배치되면, 이상 검출 앱은 각각의 디바이스 상에서의 보안 행동(예컨대, 보안 이벤트/로그 수집)을 인에이블링한다. 부가적으로, 일부 실시예들에서, 이상 검출 앱은 상황 인식 콘텍스트를 제어기(215A, 215B, 및 215C)에 제공한다. 각각의 제어기(215A, 215B, 및 215C)는 또한, 복원력을 증가시키기 위해 앱-대-앱 통신에 의해 인에이블링되는 분산 모니터링(monitoring)을 제공할 수 있다. 프로세스 제어 또는 프로세스 뷰(view)를 조작하려는 임의의 시도는, 각각의 제어기(215A, 215B, 및 215C)에 포함된 임베디드 히스토리언에 걸쳐 있는 분산 데이터베이스 관리 시스템(DDMS; distributed database management system)을 사용하여 피어(peer)들을 통해서 뿐만 아니라 로컬로(locally) 검출될 수 있다.
[28] 부가적으로, 도 2에서 도시된 이 아키텍처(200)는, 로컬 데이터베이스에 대한 데이터 지점들로서 배치될 커스텀(custom) 보안 서명들의 프로비저닝(provisioning)을 위해 사용될 수 있다. 예컨대, 전역(global) 지능과 상관되는 새로운 (외부) 공격 벡터들은, SOC(210)에 포함된 분석 클라우드(210B)로부터의 콘텍스트에 기반하여 전달되는 커스텀일 수 있다. 유사하게, 보안 이상들이 제어기(215A, 215B, 및 215C)에 의해 SOC(210)에 브로드캐스팅될(broadcasted) 수 있다. 커스텀 서명들 및 가상 패치들은 SOC(210)에 의해 발행되고, 이 SOC(210)의 분석 클라우드(210B)를 통해 전달될 수 있다(선택적으로, 커스텀은 자신만의 SOC를 갖기로 결심할 수 있음). 예컨대, 일부 실시예들에서, 분석 클라우드(210B)는, 외부 보안 정보(예컨대, 위협 지능), 제품 정보(예컨대, PLC 기술 특징들), 보안 취약성 정보 그리고 다른 콘텍스트 관련 정보, 이를테면, 생산 프로세스 데이터, 프로세스 구성, 네트워크 토폴로지(topology) 및 보안 구성(이들에 제한되지 않음)을 상관시키는 하나 또는 그 초과의 애플리케이션들을 실행한다. 이 정보에 기반하여, 분석 클라우드(210B)는 제어기들(215A, 215B, 및 215C)에 적용가능한 공격 벡터들을 식별한다. 일단 이들 공격 벡터들이 식별되면, 공격들을 검출하기 위한 가상 패치가 생성되고, 보안 프로페셔널(professional)들(201A)이 사이버공격 및 가상 패치를 검사 및 검증한 후에 제어기(215A, 215B, 및 215C)에 배치될 수 있다. 이 인프라구조(infrastructure)는 또한, 동일한 취약성들을 갖는 유사한 인프라구조에서의 사고(happening)로부터 과거에 발생한 사건(incident)들(이에 대해, 공격 서명, 또는 전술들 기법들 및 절차들(TTP; Tactics Techniques and Procedures)이 알려짐)을 방지하기 위해 사용될 수 있다.
[29] 각각의 제어기(215A, 215B, 및 215C)는 DDMS로서 실행되는 자신의 개개의 임베디드 히스토리언 내의 가상 패치들의 로컬 데이터베이스를 포함한다. 이들 데이터베이스들 각각은 "가상 패치 데이터베이스"로 본원에서 지칭되는 데이터세트(dataset)를 갖는다. 이들 데이터베이스들을 사용하여, 공격이 발생하고 있음을 확인하기 위해, 다른 연결된 제어 디바이스들로부터의 데이터 또는 공격 서명들이 판독될 수 있다. 예컨대, 제어기들(215A 및 215B)로부터의 네트워크 연결 이벤트들을 분석함으로써, 제어기(215C)는 주어진 악성 패턴을 확인할 수 있다.
[30] 가상 패치 데이터베이스는 2개의 주요 인스턴스들, 즉, 실시간 인스턴스와 사후-검토(post-mortem) 인스턴스로 나누어질 수 있다. 실시간 인스턴스는 크기가 감소되고(제한된 수의 가상 패치들이 설치될 수 있음), 커맨드 가로채기를 가능하게 한다. 선택적으로, 가로채진 커맨드 실행은, 가용한 입력이 주어지면, 요청된 커맨드의 기호 실행 및 메모리 상태가 미안전 프로세스 상태로 이어지는지를 체크(checking)함으로써 확인될 수 있다. 사후 검토는, 제어 또는 구성 커맨드를 가로채는 것을 가능하게 하는 것이 아니라, 보안 타협의 확인이 경고될 수 있게 하고, 부가적인 포렌식(forensic) 데이터가 안전하게 수집될 수 있게 한다.
[31] 각각의 제어기(215A, 215B, 및 215C)의 앱 컨테이너는 (도 2에서 도시된 바와 같이) "가상 패치 엔진"으로 본원에서 지칭된 커널 모듈 보안 애플리케이션을 포함한다. 이 가상 패치 엔진은, 보안 피드(feed)들로서 가상 패치들 및 위협 지능을 자동적으로 수신하기 위해 SOC(210)와 통신한다. 엔진은 이 정보를 사용하여 검출 알고리즘을 실행하며, 이 검출 알고리즘은, 사이버공격 실행을 표시하는 매칭(matching)되는 의심스러운 보안 행동을 식별하기 위하여 가상 패치 데이터베이스를 계속해서 스캔(scan)한다. 가상 패치 엔진은 부가적으로, 시스템 관련 정보, 이를테면 실행되는 프로세스들/스레드들, 네트워크 연결들, 파일 생성/수정 그리고 PLC 특정 정보, 이를테면 판독 및 기록된 메모리 블록들, 시스템 구성 변화들, 알람 상태 변화, 스캔 시간, 블록 실행 시간 등을 수집할 수 있다. 그런 다음, 매칭되는 진행중인 공격들을 식별하기 위하여, 수집된 정보는 가상 패치 엔진에 의해 분석될 수 있다. 일부 실시예들에서, 각각의 제어기(215A, 215B, 및 215C)의 임베디드 로컬 히스토리언은 또한, 제한된 시간 슬롯(slot) 내에 최신 시스템 변화들의 이력 분석을 가능하게 한다. 일단 공격이 식별되면, 이 공격은 (예컨대, 특정 어드레스(address)로부터의 네트워크 트래픽(traffic)을 차단하는) 제어기에 의해 로컬로(locally) 처리될 수 있다. 대안적으로(또는 부가적으로), 보안 툴(tool)들을 통한 추가적인 단계적 확대 또는 관리를 위해, 공격에 관한 통지가 플랜트 운용자(205B)에게 전송될 수 있다.
[32] 일부 실시예들에서, 가상 패치 엔진은, 주어진 제어 커맨드/제어 로직(logic)과 결합하여 주어진 구성을 실행하는 것의 미래 결과를 결정하기 위해 제어 코드의 기호 실행을 사용하고, 필요하다면(예컨대, 그것이 시스템이 미안전 상태가 되게 하거나 또는 안전 제약들을 위반하면), 그것을 차단한다. 일부 실시예들에서, 가상 패치 엔진은, PLC 애플리케이션 프로그램, 뿐만 아니라 I/O 및 다른 연결된 PLC 인터페이스(interface)들에 접근하려고 시도하는 모든 호출들을 가로챈다. 가상 패치 엔진은, 각각의 호출이 진행될 수 있게 하기 전에, 호출을 검사한다. 가상 패치 엔진의 검출은 선택적으로, (위에서 논의된) 보안 이상 검출 앱에 의해 또는 적용가능한 공격 캠페인 동안 활성화될 수 있다.
[33] 도 3은 일부 실시예에 따른 가상 패칭 프로세스(300)를 예시한다. 프로세스(300)는, PLC 상에 2개의 보안-초점 앱들이 설치될 때 시작한다. 더욱 구체적으로, 단계(305)에서, PLC 상에 설치된 이상 검출 앱이 행동 침입 검출을 인에이블링하고, 단계(310)에서, PLC 상에 설치된 가상 패칭 앱이 서명 기반 검출을 인에이블링한다. 설치 순서를 지시하는 일부 실시예에서, 앱들 사이의 종속성들이 존재할 수 있지만, 이들 앱들은 일반적으로, 임의의 순서로 설치될 수 있다. 일단 설치되면, 단계(315)에서, PLC는 연속적인 모니터링 상태에 들어간다.
[34] 일단 공격이 검출되면, 제어기에 의해 응답 동작이 수행된다. (예컨대, 엔지니어 또는 운용자에 의해 앱들 중 하나 또는 그 초과 내에서 특정된) 디바이스 상에서의 구성에 기반하여, 상이한 수준들의 응답이 가능하다. 최소 침입 응답 액션(action)에서는, 보안 이상만이 보고되고, 로그들은 제어기 밖으로 보내진다. 다른 극단적인 경우에서는, 구성 커맨드들이 거부될 수 있고, 안전한 셧다운(shutdown) 액션이 트리거링될(triggered) 수 있다. 예로서, 하트블리드 셸쇼크(Heartbleed Shellshock) 취약 오픈SSL(OpenSSL) 라이브러리(library)에 의해 인에이블링되는 실행되는 취약 HTTPS 서비스의 가용성은, 네트워크 하트블리드 페이로드의 주입의 검출 시 디스에이블링될(disabled) 수 있다. 대안적으로, 커맨드는 수용되지만, 응답은 방지될 수 있다. 두 극단적인 경우들 사이에, 다른 응답 형태들이 사용될 수 있다.
[35] 도 3의 예에서, 제어기 상에서 "액티브 응답"이 인에이블링되는지 여부에 기반하여 선택되는 2개의 가능한 응답들이 도시된다. "액티브 응답"이란 용어는, 실행이 차단되어야 하는지 또는 아닌지를 표시하는 제어기 세팅을 지칭한다. 이 세팅은 예컨대 제어기의 엔지니어 또는 운용자에 의해 제공될 수 있다. 액티브 응답이 인에이블링되면, 단계(330)에서, 실행이 차단되거나 또는 하나 또는 그 초과의 커맨드들이 거부될 수 있다. 대안적으로, 액티브 응답이 인에이블링되지 않으면, 단계(335)에서, 구성/제어 커맨드는 실행되고, 이상은 (예컨대, HMI를 통해 또는 직접적으로 플랜트 운용자에게) 보고된다.
[36] 도 3을 계속해서 참조하면, 단계(340)에서, 자동화 환경 내의 디바이스에 의해 또는 외부 소스(source)에 의해 새로운 취약성이 발각된다. 단계(345)에서, SOC는 취약성을 검증 및 재생한다. 다음 차례로, 단계(350)에서, SOC는, 특정 디바이스가 취약성을 식별하는 것을 가능하게 할 새로운 취약성 악용 검출 서명을 생성하고, 그것을 악용하려고 시도한다. 그런 다음, 단계(325)에서, 가상 패치가 생성되고, (예컨대, 매칭되는 펌웨어 버전, 하드웨어(hardware), 및 다른 매개변수들에 기반하여) 서명이 적용가능한 각각의 고객에게 배포된다. 고객의 현장(site)에서, 가상 패치는 자동화 시스템에 의해 단계(320)에서 배치된다. 엔지니어들 또는 운용자들은 소프트웨어 인터페이스를 사용하여 패치를 승인하기로 결심할 수 있지만, 일반적으로, 자동화 시스템은 일단 패치가 선택/확인되면 자동적으로 이 패치를 배치할 것이다. 일단 배치되면, 엔지니어들 또는 운용자들은 패치에 기반하여 시스템 구성을 수정할 수 있다. 예컨대, 특정 취약성의 경우, 엔지니어 또는 운용자는, 관련 취약성 악용 서명의 검출 시 즉시 또는 정중하게 셧 다운(shut down)하도록 제어기를 구성할 수 있다. SOC가 자동화 환경과 밀접하게 통합되거나 또는 플랜트 운용자들/엔지니어들이 SOC에게 일부 책임들을 위임한 시나리오들에서, 단계(320)와 단계(325)가 결합될 수 있다는 것이 주목되어야 한다. 따라서, SOC(또는 어떤 다른 중간 그룹(group) 또는 서비스)는 직접적으로 제어 디바이스(들)에 가상 패치를 배포하고, (예컨대, 플랜트의 엔지니어들 또는 운용자들에 의해 제공되는 선호도들에 기반하여) 대응하는 응답 행동을 구성할 수 있다. 반드시 취약성들의 존재에 따라 좌우되지 않는 공격 방법들을 검출하기 위해 이 메커니즘이 사용될 수 있다는 것이 주목되어야 한다. 예컨대, 이들 서명들은, "브루트 포스(brute force)" 유형의 공격들 또는 "자원 고갈"을 검출하기 위해 사용될 수 있다. 게다가, 발각된 취약성들에 대한 페이로드 검출 알고리즘들을 적용하는 것에 부가하여, 가상 패치들의 배포를 통해 공격 캠페인들이 또한 검출될 수 있다.
[37] 일부 실시예들에서, (보안 정보 및 이벤트 관리 상관 규칙들과 유사하게) 참 결과(true result)가 공격의 포지티브 특성화(positive characterization)를 나타내는 불 대수(Boolean algebra)의 계산에 의해, 가상 패치는 인에이블링된다. 다음의 예가 이 경우를 예시한다:
참 공격 =
Figure pct00001
여기서, x는 매칭되는 인증 이벤트이고, y는 인바운드(inbound) 메모리 블록 변화 요청이고, z는 매칭되는 아웃바운드(outbound) 커맨드 값이며, 그리고 a는 CPU 펌웨어 버전이다.
[38] 도 3은 새로운 공격 기법들, 관행들, 및 절차들이 출현할 때 이러한 새로운 공격 기법들, 관행들, 및 절차들에 시스템이 어떻게 반응할 수 있는지를 도시한다. 단계(355)에서, 예컨대, 자동화 디바이스들에 의해, 플랜트 엔지니어들 또는 운용자들에 의해, 또는 SOC 자체에 의해, 공격 캠페인이 검출된다. 그에 따라서, 다음 차례로, 단계(360)에서, SOC는 공격을 조사 및 특성화(characterize)한다. 단계(365)에서, 이 특성화에 기반하여, SOC는 공격 검출 서명을 생성한다. 그런 다음, 단계들(320 및 325)에서, 서명은, 이 서명이 가상 패치의 형태로 적용되는 각각의 고객에게 배포 및 배치된다. 배포 및 배치의 방식은, 취약성 검출 서명들에 대해 위에서 논의된 것과 유사한 방식으로 구현될 수 있다.
[39] 종래의 시스템들과 비교하여, 본원에서 설명된 방법들, 시스템들, 및 장치들은 몇몇 장점들을 제공한다. 예컨대, 본원에서 설명된 가상 패치는, PLC 특정 보안 서명들의 자동화된 배포를 가능하게 하고, 취약성/패치 릴리즈(release)와 패치 설치 사이의 시간 기간 동안 보호를 위한 가능성을 제공한다. 부가적으로, 본원에서 설명된 기법들은, 특히 분산 컴퓨팅(computing) 환경들에서, PLC 하드웨어에 대한 최소의 영향으로 적용될 수 있다. 예컨대, 분산 유휴 CPU/메모리 자원들이 분산 이상 검출을 위해 사용될 수 있고, 분산 가용 저장 공간이 분산 이상 검출을 위해 사용될 수 있다. 분산 컴퓨팅의 사용은 또한, 분산적인 공격 검출을 가능하게 하며, 이는 종래의 시스템들에서 종종 존재하는 단일 고장 지점을 방지한다. 생성된 검출 서명들/가상 패치들은 또한, 단지 순수 네트워크 관련 데이터 및 이벤트들보다는, 다수의 차원들(예컨대, 네트워크 행동, 시스템 행동, 생산 프로세스 행동)로부터의 입력 데이터에 기반한 검출을 가능하게 한다. 또한, 서명들은 인접한 디바이스들을 보호하기 위해 생성될 수 있다. 이 접근법은 레거시(legacy) 디바이스들을 보호하기 위한 구현 경로를 제공한다.
[40] 제어 디바이스들에 의해 사용된, 본원에서 설명된 프로세서들은 하나 또는 그 초과의 중앙 프로세싱 유닛(CPU; central processing unit)들, 그래픽 프로세싱 유닛(GPU; graphical processing unit)들, 또는 기술분야에서 알려진 임의의 다른 프로세서를 포함할 수 있다. 더욱 일반적으로, 본원에서 사용된 프로세서는, 태스크(task)들을 수행하기 위해 컴퓨터 판독가능 매체 상에 저장된 머신-판독가능 명령들을 실행하기 위한 디바이스이며, 하드웨어 및 펌웨어 중 임의의 하나, 또는 이 둘의 결합을 포함할 수 있다. 프로세서는 또한, 태스크들을 수행하기 위해 실행가능한 머신-판독가능 명령들을 저장하는 메모리를 포함할 수 있다. 프로세서는, 실행가능한 절차 또는 정보 디바이스에 의한 사용을 위해 정보를 조작, 분석, 수정, 변환 또는 송신함으로써, 그리고/또는 정보를 출력 디바이스로 라우팅(routing)함으로써, 정보에 대해 동작한다. 프로세서는 예컨대 컴퓨터, 제어기 또는 마이크로프로세서(microprocessor)의 능력들을 사용하거나 또는 포함하며, 그리고 범용 컴퓨터에 의해 수행되지 않는 특수 목적 기능들을 수행하기 위해, 실행가능한 명령들을 사용하여 컨디셔닝될(conditioned) 수 있다. 프로세서는 임의의 다른 프로세서와 (전기적으로, 그리고/또는 실행가능한 구성요소들을 포함하여) 커플링될 수 있으며, 이는 그들 사이의 상호작용 및/또는 통신을 인에이블링한다. 사용자 인터페이스 프로세서 또는 생성기는, 디스플레이(display) 이미지들 또는 디스플레이 이미지들의 일부분들을 생성하기 위한 전자 회로소자 또는 소프트웨어 또는 이 둘의 결합을 포함하는 알려진 엘리먼트(element)이다. 사용자 인터페이스는, 프로세서 또는 다른 디바이스와의 사용자 상호작용을 인에이블링하는 하나 또는 그 초과의 디스플레이 이미지들을 포함한다.
[41] 제어 계층 디바이스들 및 관련 컴퓨팅 인프라구조(이들에 제한되지 않음)를 포함하는, 본원에서 설명된 다양한 디바이스들은, 본 발명의 실시예들에 따라 프로그래밍된(programmed) 명령들을 유지하고, 본원에서 설명된 데이터 구조들, 테이블(table)들, 레코드(record)들, 또는 다른 데이터를 포함하기 위한 적어도 하나의 컴퓨터 판독가능 매체 또는 메모리를 포함할 수 있다. 본원에서 사용된 "컴퓨터 판독가능 매체"란 용어는, 실행을 위해 하나 또는 그 초과의 프로세서들에 명령들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체는, 비-일시적, 비-휘발성 매체, 휘발성 매체, 및 송신 매체(그러나, 이들에 제한되지 않음)를 포함하는 많은 형태들을 취할 수 있다. 비-휘발성 매체의 비-제한적인 예들은 광학 디스크(disk)들, 고체 상태 드라이브(drive)들, 자기 디스크들, 및 광자기 디스크들을 포함한다. 휘발성 매체의 비-제한적인 예들은 동적 메모리를 포함한다. 송신 매체의 비-제한적인 예들은, 시스템 버스(bus)를 형성하는 와이어(wire)들을 비롯하여, 동축 케이블(cable)들, 구리 와이어, 및 광섬유들을 포함한다. 송신 매체는 또한, 음향 파 또는 광 파, 이를테면, 라디오(radio) 파 및 적외선 데이터 통신들 동안 생성된 파들의 형태를 취할 수 있다.
[42] 본원에서 사용된 실행가능한 애플리케이션은, 사용자 커맨드 또는 입력에 대한 응답으로, 미리 결정된 기능들, 이를테면, 예컨대, 운영체제, 콘텍스트 데이터 획득 시스템 또는 다른 정보 프로세싱(processing) 시스템의 기능들을 구현하도록 프로세서를 컨디셔닝(conditioning)하기 위한 코드 또는 머신 판독가능 명령들을 포함한다. 실행가능한 절차는, 하나 또는 그 초과의 특정 프로세스들을 수행하기 위한 코드 또는 머신 판독가능 명령의 세그먼트(segment), 서브-루틴(sub-routine), 또는 실행가능한 애플리케이션의 코드 또는 일부분의 다른 별개의 섹션(section)이다. 이들 프로세스들은 입력 데이터 및/또는 매개변수들을 수신하는 것, 수신된 입력 데이터에 대한 동작들을 수행하는 것 그리고/또는 수신된 입력 매개변수들에 대한 응답으로 기능들을 수행하는 것, 그리고 결과적인 출력 데이터 및/또는 매개변수들을 제공하는 것을 포함할 수 있다.
[43] 본원의 기능들 및 프로세스 단계들은, 사용자 커맨드에 대한 응답으로 부분적으로 또는 전적으로, 자동적으로 수행될 수 있다. 자동적으로 수행되는 활동(단계를 포함함)은, 이 활동의 사용자 직접 개시 없이 디바이스 동작 또는 하나 또는 그 초과의 실행가능한 명령들에 대한 응답으로 수행된다.
[44] 도면들의 시스템 및 프로세스들은 배타적이지 않다. 동일한 목적들을 달성하기 위해 본 발명의 원리들에 따라 다른 시스템들, 프로세스들 및 메뉴(menu)들이 파생될 수 있다. 본 발명이 특정 실시예들을 참조하여 설명되었지만, 본원에서 설명 및 도시된 실시예들 및 변형들은 예시 목적들만을 위한 것임이 이해되어야 한다. 본 발명의 범위로부터 벗어나지 않고, 당업자들에 의해 본 설계에 대한 수정들이 구현될 수 있다. 본원에서 설명된 바와 같이, 하드웨어 구성요소들, 소프트웨어 구성요소들, 및/또는 이들의 결합들을 사용하여 다양한 시스템들, 서브시스템(subsystem)들, 에이전트(agent)들, 관리자들 및 프로세스들이 구현될 수 있다. 본원의 어떤 청구항 엘리먼트도, 그 엘리먼트가 "~하기 위한 수단"이란 어구를 사용하여 명시적으로 언급되지 않는 한, 35 U.S.C. 112의 6번째 단락의 조항들 하에서 해석되지 않아야 한다.

Claims (22)

  1. 산업 생산 환경에서의 보안 취약성들의 가상 패칭(patching)을 위한 시스템(system)으로서, 상기 시스템은,
    산업 자동화 디바이스(device)를 포함하며, 상기 산업 자동화 디바이스는,
    복수의 산업 자동화 디바이스들에 걸쳐 있고, 하나 또는 그 초과의 가상 패치(patch)들을 저장하는 분산 데이터베이스(database)의 인스턴스(instance), 및
    가상 패칭 엔진(engine) 보안 애플리케이션(application)을 포함하는 앱 컨테이너(app container)
    를 포함하며,
    상기 앱 컨테이너는,
    동작 동안 상기 산업 자동화 디바이스에 의해 생성된 시스템 정보를 수집하며, 그리고
    하나 또는 그 초과의 보안 공격들을 식별하기 위해, 상기 시스템 정보에 상기 하나 또는 그 초과의 가상 패치들을 적용하도록
    구성된,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  2. 제1 항에 있어서,
    상기 하나 또는 그 초과의 가상 패치들 각각은 상기 산업 자동화 디바이스 상에서 악용가능한 별개의 공격 서명을 설명하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  3. 제1 항에 있어서,
    상기 시스템 정보는 상기 산업 자동화 디바이스 상에서 실행되는 하나 또는 그 초과의 애플리케이션들에 의해 이루어진 시스템 호출들에 대응하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  4. 제1 항에 있어서,
    상기 시스템 정보는 (i) 판독 또는 기록 동작 중 적어도 하나가 수행된 메모리 블록(memory block)들; (ⅱ) 시스템 구성 변화들; 및 (ⅲ) 알람(alarm) 상태 변화들 중 하나 또는 그 초과를 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  5. 제4 항에 있어서,
    상기 시스템 정보는 (i) 상기 산업 자동화 디바이스 상에서 실행되는 프로세스(process)들; (ⅱ) 상기 산업 자동화 디바이스 상에서 실행되는 스레드(thread)들; (ⅲ) 상기 산업 자동화 디바이스에 의해 활용되는 네트워킹(networking) 연결들; (ⅳ) 파일(file) 생성 정보; 및 (v) 파일 수정 정보 중 하나 또는 그 초과를 더 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  6. 제1 항에 있어서,
    상기 가상 패칭 엔진 보안 애플리케이션은, 하나 또는 그 초과의 제어 커맨드(command)들과 결합하여 상기 산업 자동화 디바이스의 하나 또는 그 초과의 구성들을 실행하는 것의 미래 결과(future consequence)들의 표시자를 결정하기 위해, 상기 산업 자동화 디바이스에 의해 실행되는 제어 코드(code)의 기호 실행을 수행하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  7. 제6 항에 있어서,
    상기 가상 패칭 엔진 보안 애플리케이션은, 상기 미래 결과들의 표시자가 (i) 미안전 시스템 상태 또는 (ⅱ) 상기 산업 생산 환경과 연관된 하나 또는 그 초과의 미리 결정된 안전 제약들의 위반에 대응하면, 상기 하나 또는 그 초과의 제어 커맨드들의 미래 실행을 차단하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  8. 제1 항에 있어서,
    상기 분산 데이터베이스의 상기 인스턴스 및 상기 앱 컨테이너는 상기 산업 자동화 디바이스 상의 제1 가상 머신(machine)에서 실행되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  9. 제8 항에 있어서,
    상기 산업 자동화 디바이스는 제2 가상 머신을 포함하며,
    상기 제2 가상 머신은,
    하나 또는 그 초과의 필드(field) 디바이스들과 연관된 자동화 시스템 생산 데이터(data)를 이용하여 스캔(scan) 주기에 따라 업데이트되는(updated) 프로세스 이미지(image);
    플랜트 플로어 네트워크(plant floor network) 상에서 자동화 시스템 네트워크 데이터를 전송 및 수신하도록 구성된 네트워킹 구성요소
    를 실행하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  10. 제9 항에 있어서,
    상기 제2 가상 머신은 부가적으로, 상기 프로세스 이미지를 통해 수집된 상기 자동화 시스템 생산 데이터 및 상기 네트워킹 구성요소를 통해 수집된 상기 자동화 시스템 네트워크 데이터를 저장하도록 구성된 임베디드 히스토리언(embedded historian)을 포함하는 실시간 데이터베이스를 실행하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  11. 제10 항에 있어서,
    동작 동안 상기 산업 자동화 디바이스에 의해 생성된 상기 시스템 정보는 상기 임베디드 히스토리언으로부터 상기 가상 패칭 엔진 보안 애플리케이션에 의해 리트리빙되는(retrieved),
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  12. 제1 항에 있어서,
    상기 가상 패칭 엔진 보안 애플리케이션은 추가로, (i) 보안 운용 센터(operations center)에 의해 생성된 하나 또는 그 초과의 새로운 가상 패치들을 수신하며, 그리고 (ⅱ) 하나 또는 그 초과의 새로운 가상 패치들을 상기 분산 데이터베이스에 저장하도록 구성되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  13. 제12 항에 있어서,
    상기 가상 패칭 엔진 보안 애플리케이션은 추가로, 상기 하나 또는 그 초과의 보안 공격들의 표시를 상기 보안 운용 센터에 송신하도록 구성되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  14. 제1 항에 있어서,
    상기 가상 패칭 엔진 보안 애플리케이션은 추가로,
    상기 하나 또는 그 초과의 보안 공격들과 연관된 하나 또는 그 초과의 제어 커맨드들을 식별하고;
    하나 또는 그 초과의 보안 공격들을 식별하는 것에 대한 응답으로, 액티브(active) 응답 세팅(setting)이 인에이블링되는지(enabled) 여부를 결정하고;
    상기 액티브 응답 세팅이 인에이블링되지 않으면, 상기 하나 또는 그 초과의 제어 커맨드들을 실행하고, 상기 산업 자동화 디바이스와 연관된 운용자에게 이상(anomaly)을 보고하며; 그리고
    상기 액티브 응답 세팅이 인에이블링되면, 하나 또는 그 초과의 제어 커맨드들의 실행을 차단하도록
    구성되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  15. 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템으로서, 상기 시스템은,
    하나 또는 그 초과의 제어 프로그램(program)들을 실행하는 제1 가상 머신;
    상기 하나 또는 그 초과의 제어 프로그램들에 관련된 시스템 정보를 수집하고, 하나 또는 그 초과의 보안 공격들을 식별하기 위해 상기 시스템 정보에 하나 또는 그 초과의 가상 패치들을 적용하도록 구성된 가상 패칭 엔진 보안 애플리케이션을 실행하는 제2 가상 머신;
    상기 제1 가상 머신과 상기 제2 가상 머신 사이의 상기 시스템 정보의 전송을 가능하게 하도록 구성된 내부 통신 채널(channel); 및
    상기 제1 가상 머신과 상기 제2 가상 머신을 실행하는 하이퍼바이저(hypervisor)
    를 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  16. 제15 항에 있어서,
    상기 제2 가상 머신은,
    복수의 산업 제어기들에 걸쳐 있고, 상기 하나 또는 그 초과의 가상 패치들을 저장하는 분산 데이터베이스의 인스턴스
    를 더 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  17. 제15 항에 있어서,
    동작 동안 상기 하나 또는 그 초과의 제어 프로그램들에 의해 생성된 상기 시스템 정보는 상기 제1 가상 머신의 임베디드 히스토리언으로부터 상기 가상 패칭 엔진 보안 애플리케이션에 의해 리트리빙되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  18. 제17 항에 있어서,
    상기 제2 가상 머신은 복수의 앱들을 실행하도록 구성된 앱 컨테이너를 포함하며, 상기 가상 패칭 엔진 보안 애플리케이션은 상기 앱 컨테이너에서 실행되는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  19. 제15 항에 있어서,
    상기 시스템 정보는 (i) 판독 또는 기록 동작 중 적어도 하나가 수행된 메모리 블록들; (ⅱ) 시스템 구성 변화들; 및 (ⅲ) 알람 상태 변화들 중 하나 또는 그 초과를 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  20. 제19 항에 있어서,
    상기 시스템 정보는 (i) 상기 제1 가상 머신 상에서 실행되는 프로세스들; (ⅱ) 상기 제1 가상 머신 상에서 실행되는 스레드들; (ⅲ) 상기 제1 가상 머신에 의해 활용되는 네트워킹 연결들; (ⅳ) 파일 생성 정보; 및 (v) 파일 수정 정보 중 하나 또는 그 초과를 더 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 시스템.
  21. 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터(computer)-구현 방법으로서, 상기 방법은,
    보안 운용 센터 컴퓨터가, 산업 제어 시스템들에 적용가능한 하나 또는 그 초과의 보안 취약성 악용 방법들의 표시를 수신하는 단계;
    상기 보안 운용 센터 컴퓨터가, 시뮬레이팅된(simulated) 산업 환경을 사용하여 상기 하나 또는 그 초과의 보안 취약성 악용 방법들을 재생하는 단계;
    상기 보안 운용 센터 컴퓨터가, 상기 하나 또는 그 초과의 보안 취약성 악용 방법들에 대응하는 취약성 악용 검출 서명을 생성하는 단계;
    상기 보안 운용 센터 컴퓨터가, 상기 취약성 악용 검출 서명이 적용가능한 산업 제어기들의 하나 또는 그 초과의 사용자들을 식별하는 단계;
    각각의 식별된 사용자에 대해, 하나 또는 그 초과의 보안 취약성 악용의 시도되는 실행을 검출하도록 동작가능한 가상 패치를 생성하고, 상기 가상 패치를 상기 식별된 사용자에게 배포하는 단계
    를 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터-구현 방법.
  22. 산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터-구현 방법으로서, 상기 방법은,
    보안 운용 센터 컴퓨터가, 산업 제어 시스템들에 적용가능한 하나 또는 그 초과의 공격 캠페인(campaign)들의 표시를 수신하는 단계;
    상기 보안 운용 센터 컴퓨터가, 상기 하나 또는 그 초과의 공격 캠페인들에 대응하는 공격 검출 서명을 생성하는 단계;
    상기 보안 운용 센터 컴퓨터가, 상기 공격 검출 서명이 적용가능한 산업 제어기들의 하나 또는 그 초과의 사용자들을 식별하는 단계; 및
    각각의 식별된 사용자에 대해, 상기 공격 검출 서명을 검출하도록 동작가능한 가상 패치를 생성하고, 상기 가상 패치를 상기 식별된 사용자에게 배포하는 단계
    를 포함하는,
    산업 생산 환경에서의 보안 취약성들의 가상 패칭을 위한 컴퓨터-구현 방법.
KR1020197001980A 2016-06-24 2016-06-24 Plc 가상 패칭 및 보안 콘텍스트의 자동화된 배포 KR102208938B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/039237 WO2017222553A1 (en) 2016-06-24 2016-06-24 Plc virtual patching and automated distribution of security context

Publications (2)

Publication Number Publication Date
KR20190020118A true KR20190020118A (ko) 2019-02-27
KR102208938B1 KR102208938B1 (ko) 2021-01-27

Family

ID=56411902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197001980A KR102208938B1 (ko) 2016-06-24 2016-06-24 Plc 가상 패칭 및 보안 콘텍스트의 자동화된 배포

Country Status (6)

Country Link
US (1) US11022949B2 (ko)
EP (1) EP3475866A1 (ko)
JP (1) JP6745921B2 (ko)
KR (1) KR102208938B1 (ko)
CN (1) CN109690545B (ko)
WO (1) WO2017222553A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387642B2 (en) * 2016-12-27 2019-08-20 Mcafee, Llc Dynamic re-distribution of detection content and algorithms for exploit detection
CN110678864A (zh) * 2017-05-24 2020-01-10 西门子股份公司 危害和取证数据的plc指标的收集
US10623432B2 (en) * 2017-06-21 2020-04-14 International Business Machines Corporation Mitigating security risks utilizing continuous device image reload with data integrity
GB2569302B (en) * 2017-12-12 2022-05-25 F Secure Corp Probing and responding to computer network security breaches
CN109063486B (zh) * 2018-08-01 2020-11-24 杭州安恒信息技术股份有限公司 一种基于plc设备指纹识别的安全渗透测试方法与系统
JP7180500B2 (ja) * 2019-03-29 2022-11-30 オムロン株式会社 制御システム、および設定方法
JP2021026380A (ja) * 2019-08-01 2021-02-22 東芝三菱電機産業システム株式会社 プロセス制御装置
CN110673849B (zh) * 2019-08-14 2023-04-21 惠州市德赛西威智能交通技术研究院有限公司 一种批量预设置文件安全上下文的方法及装置
CN111859405A (zh) * 2020-07-31 2020-10-30 深信服科技股份有限公司 一种威胁免疫框架、方法、设备及可读存储介质
US11443039B2 (en) 2020-08-21 2022-09-13 Fathom5 Corporation Controller computing system for preventing malicious control of a controlled machinery system
US20220404786A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants
JP2024018790A (ja) * 2022-07-29 2024-02-08 株式会社日立産機システム コントロールシステム及び方法
CN116756272B (zh) * 2023-06-20 2024-02-23 广州大学 面向中文威胁报告的att&ck模型映射方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2154626A2 (en) * 2008-08-13 2010-02-17 Fujitsu Ltd. Anti-virus method, computer, and recording medium
US20130086688A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Web application exploit mitigation in an information technology environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291407B2 (en) * 2002-06-12 2012-10-16 Symantec Corporation Systems and methods for patching computer programs
US20090271504A1 (en) * 2003-06-09 2009-10-29 Andrew Francis Ginter Techniques for agent configuration
US20050240781A1 (en) 2004-04-22 2005-10-27 Gassoway Paul A Prioritizing intrusion detection logs
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
CN101154257A (zh) * 2007-08-14 2008-04-02 电子科技大学 基于漏洞特征的动态执行补丁方法
CA2640804C (en) * 2007-10-07 2015-04-07 Embotics Corporation Method and system for integrated securing and managing of virtual machines and virtual appliances
US8316448B2 (en) * 2007-10-26 2012-11-20 Microsoft Corporation Automatic filter generation and generalization
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
JP5166169B2 (ja) 2008-08-27 2013-03-21 株式会社日立製作所 ハイパバイザを有する計算機システム
US8533337B2 (en) * 2010-05-06 2013-09-10 Citrix Systems, Inc. Continuous upgrading of computers in a load balanced environment
FR2977050A1 (fr) * 2011-06-24 2012-12-28 France Telecom Procede de detection d'attaques et de protection
CN102467637A (zh) 2011-07-28 2012-05-23 中标软件有限公司 一种虚拟化环境下的反病毒系统及其反病毒方法
US8650556B2 (en) * 2011-08-16 2014-02-11 Dell Products L.P. Virtual machine asynchronous patch management
JP5773066B2 (ja) * 2012-03-19 2015-09-02 富士通株式会社 プログラム、管理サーバおよびパッチスケジューリング方法
US9152540B2 (en) * 2012-08-31 2015-10-06 Oregon State Board Of Higher Education On Behalf Of Portland State University System and methods for generating and managing a virtual device
US20140137257A1 (en) * 2012-11-12 2014-05-15 Board Of Regents, The University Of Texas System System, Method and Apparatus for Assessing a Risk of One or More Assets Within an Operational Technology Infrastructure
US10409980B2 (en) * 2012-12-27 2019-09-10 Crowdstrike, Inc. Real-time representation of security-relevant system state
US20150295944A1 (en) * 2013-07-01 2015-10-15 Hitachi, Ltd. Control system, control method, and controller
US9866581B2 (en) * 2014-06-30 2018-01-09 Intuit Inc. Method and system for secure delivery of information to computing environments
WO2016093182A1 (ja) * 2014-12-09 2016-06-16 日本電信電話株式会社 特定装置、特定方法および特定プログラム
JP6129243B2 (ja) * 2015-06-29 2017-05-17 株式会社野村総合研究所 情報処理装置、電子ファイル閲覧制限方法、コンピュータプログラムおよび情報処理システム
US10050999B1 (en) * 2015-09-22 2018-08-14 Amazon Technologies, Inc. Security threat based auto scaling
US10955810B2 (en) * 2015-11-13 2021-03-23 International Business Machines Corporation Monitoring communications flow in an industrial system to detect and mitigate hazardous conditions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2154626A2 (en) * 2008-08-13 2010-02-17 Fujitsu Ltd. Anti-virus method, computer, and recording medium
US20130086688A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Web application exploit mitigation in an information technology environment

Also Published As

Publication number Publication date
EP3475866A1 (en) 2019-05-01
US11022949B2 (en) 2021-06-01
WO2017222553A1 (en) 2017-12-28
US20190317465A1 (en) 2019-10-17
CN109690545A (zh) 2019-04-26
JP2019527877A (ja) 2019-10-03
KR102208938B1 (ko) 2021-01-27
CN109690545B (zh) 2023-08-11
JP6745921B2 (ja) 2020-08-26

Similar Documents

Publication Publication Date Title
KR102208938B1 (ko) Plc 가상 패칭 및 보안 콘텍스트의 자동화된 배포
US9158919B2 (en) Threat level assessment of applications
EP4104410B1 (en) Security automation system with machine learning functions
CN105893228A (zh) 用于行为沙箱化的系统和方法
EP3320661B1 (en) Automation system with self-defending smart field devices
US20240028743A1 (en) Control flow integrity instruction pointer patching
CN113557482A (zh) 控制器系统
CN111107108A (zh) 一种工业控制系统网络安全分析的方法
US11029662B2 (en) System and method for enabling data to be transmitted between program modules based on compliance with rules
WO2018004523A1 (en) Plc virtual patching and automated distribution of security context
RU2724796C1 (ru) Система и способ защиты автоматизированных систем при помощи шлюза
US20190102541A1 (en) Apparatus and method for defending against unauthorized modification of programs
US20180260563A1 (en) Computer system for executing analysis program, and method of monitoring execution of analysis program
US11841698B2 (en) Arrangement and method for secure execution of an automation program in a cloud computing environment
EP3951520A1 (en) Control system and setting method
US11558389B2 (en) Cybersecurity hardening for networked systems
KR20190098477A (ko) 항만물류정보시스템의 정보보안 취약점 진단시스템
CN114329444A (zh) 系统安全提升方法及装置
CN113330375B (zh) 控制装置、记录介质以及控制系统
Sadamatsu et al. Practice within fujitsu of security operations center: Operation and security dashboard
RU2637435C1 (ru) Способ обнаружения аномального исполнения системы исполнения программируемого логического контроллера
US20230208883A1 (en) Security setting device, method of setting per-process security policy, and computer program stored in recording medium
Bavendiek Attack surface analysis of the Linux kernel based on complexity metric
EP3361332B1 (en) System and method of monitoring of the execution system of a programmable logic controller
EP3109807A1 (en) Method for assessing safety and security risks of an industrial process

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant