KR102324489B1 - 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 - Google Patents

산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102324489B1
KR102324489B1 KR1020190151489A KR20190151489A KR102324489B1 KR 102324489 B1 KR102324489 B1 KR 102324489B1 KR 1020190151489 A KR1020190151489 A KR 1020190151489A KR 20190151489 A KR20190151489 A KR 20190151489A KR 102324489 B1 KR102324489 B1 KR 102324489B1
Authority
KR
South Korea
Prior art keywords
vulnerability
risk
control system
operating environment
industrial control
Prior art date
Application number
KR1020190151489A
Other languages
English (en)
Other versions
KR20210063049A (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 한국전자통신연구원
Priority to KR1020190151489A priority Critical patent/KR102324489B1/ko
Priority to US17/081,414 priority patent/US20210160273A1/en
Publication of KR20210063049A publication Critical patent/KR20210063049A/ko
Application granted granted Critical
Publication of KR102324489B1 publication Critical patent/KR102324489B1/ko

Links

Images

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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)

Abstract

산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치가 개시된다. 본 발명의 일실시예에 따른 위험도 산출 방법은 타겟 산업 제어 시스템에 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 상기 적어도 하나의 키워드에 상응하는 공격벡터를 생성하는 단계; 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집하는 단계; 상기 운영환경 특징 중 상기 적어도 하나의 키워드에 매칭되는 취약점 특징 및 상기 취약점 특징에 적용된 가중치를 고려하여 상기 공격벡터에 대한 타겟화된 위험도를 산출하는 단계; 및 상기 타겟 산업 제어 시스템의 운영자 모듈로 상기 타겟화된 위험도를 제공하는 단계를 포함한다.

Description

산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 {METHOD FOR CALCULATING RISK FOR INDUSTRIAL CONTROL SYSTEM AND APPARATUS USING THE SAME}
본 발명은 산업 제어 시스템을 위해 위험도를 산출하는 기술에 관한 것으로, 특히 공장, 병원, 발전소와 같이 다양한 산업 환경에서 운영되는 산업 제어 시스템을 운영하는 운영자가 새롭게 공표되는 신규 취약점이 자신이 운영하는 시스템에 미칠 수 있는 위험의 정도를 쉽고 정확하게 인지하도록 하는 기술에 관한 것이다.
제조 산업현장, 발전소, 금융, 국방, 치안, 통신, 운송 등의 분야에서는 PLC(Programmable Logic Controller), DCS(Distributed Control System)와 같은 산업용 시스템을 사용한다. 산업용 시스템은 기존 인터넷 환경에서 널리 사용되고 있는 서버 혹은 개인용 컴퓨터 시스템과는 운영의 목적, 동작 방식 및 사용 운영체제가 다르며, 주로 사회 간접자본 시설이나 대규모 공장 등에서 활용되고 있다.
이러한 산업용 시스템은 다양한 분야에서 널리 활용되고 있음에도 불구하고, 기존의 PC 및 서버와 같은 일반 컴퓨터와는 다르게 독립 망에서 운영되고 사용되는 운영체제도 일반적이지 않아 다양한 침해 행위의 대상에서 벗어나 있었던 것이 사실이다.
그러나, 최근에는 산업용 시스템들을 대상으로 도 1과 같이 다양한 형태의 공격 시도가 발생하고 있으며, 특히 국내에서는 2014년 한국수력원자력 시스템의 해킹으로 인해 산업용 시스템들에 대한 보안 위협이 현실화되고 있음을 알 수 있다. 기존에 망 분리 및 최신 보안이 적용된 것으로 알려진 한국수력원자력 시스템의 원자력 관련 내부망이 해킹되어 사회적 이슈가 되었으며, 북한과 대치중인 우리나라의 경우에는 매우 민감한 안보 관련 위협이 구체화, 현실화되었다고 볼 수 있는 사례이기도 하다.
이와 같은 상황에서 산업용 시스템 보호를 위해 신규로 발견되는 취약점들이 현재 운영하고 있는 산업용 시스템에 얼마나 큰 영향을 미칠 수 있는지를 신속히 파악하는 것은 매우 중요한 이슈로 대두되고 있다. 이를 위해서는 새롭게 발견된 취약점이 어떤 방식으로 공격에 활용될 수 있고, 그 위험의 정도는 어느 정도 인지를 일반 사용자들이 인지할 수 있도록 수치화하여 전달할 필요가 있는데, 기존의 위험도 산출 방식은 대부분 IT 시스템에 맞추어 개발되었기 때문에 산업 제어 시스템의 운영환경에는 적용하기 어려운 경우가 많았다.
대표적인 것이 CVSS(Common Vulnerability Scoring System)으로, 현재 3.1까지 발표되어 있다. 도 4를 참조하면, CVSS는 Base Metric, Temporal Metric, Environmental Metric으로 구성되어 있으나, 최초 취약점이 발표될 때에는 기본적으로 Base Metric만 작성되어 배포되기 때문에 실제로 취약점이 존재하는 시스템의 운영환경에 대한 특징은 전혀 반영되지 않은 채 전달되고 있는 상황이다. 다만, Environmental Metric에서 운영환경 특징을 반영할 수 있는 메트릭을 제공하고는 있으나, 이는 Base Metric과는 전혀 무관한 방식으로 위험도가 계산되고 있기 때문에 Environmental Metric을 이용하게 되면 기본적으로 특정 취약점이 갖는 특징을 전혀 반영하지 못하는 문제점이 존대한다. 또한 각 기업이나 장비 운영 기관에서는 해당 취약점에 대하여 Environmental Metric을 스스로 재작성해야 하는데, 이러한 환경 특징은 매우 추상적으로 표현하게 되어 있어서 적절한 방식의 정보가 활용되지 못한다는 단점이 있다.
산업제어 환경에서 운영되는 시스템은 기존의 IT 환경에서 운영되는 시스템과는 다르게 비록 취약점이 발견된 응용프로그램과 동일한 버전의 응용프로그램이 운영되고 있다고 하더라도, 해당 응용프로그램이 실행되는 시스템의 운영환경에 따라 해당 취약점이 전혀 영향을 미치지 못하는 경우도 매우 많다. 예를 들어, 어떤 취약점의 경우, 네트워크를 통해 서비스되는 임의의 응용프로그램에 존재하는 취약점일 수 있는데, 실제로 해당 응용프로그램이 실행되는 산업제어 시스템은 물리적으로 네트워크 통신이 불가능하게 설계될 수 있기 때문에, 이런 경우에는 해당 취약점이 존재하지 않는다고 할 수 있다.
이와 같이, 산업제어 시스템의 운영환경 특징은 실제 취약점의 존재여부를 판단하는데 있어서 매우 중요한 정보로, 이를 반영한 자동화된 위험도 계산 방법은 실제 시스템을 운영하는 운영자에게는 매우 필요한 사항이다.
한국 등록 특허 제10-1442691호, 2014년 9월 15일 등록(명칭: 시스템의 취약점 정량화 장치 및 그 방법)
본 발명의 목적은 현재 운영하고 있는 산업제어 시스템의 운영환경 특징을 반영하여 새롭게 발견된 취약점에 대한 실제적인 위험도를 산출하는 것이다.
또한, 본 발명의 목적은 새롭게 발견된 취약점이 운영환경 특성을 고려한 산업 제어 시스템에서 어떤 방식으로 공격에 활용될 수 있고, 그 위험의 정도가 어느 정도 인지를 일반 사용자들이 인지할 수 있도록 수치화하여 제공하는 것이다.
또한, 본 발명의 목적은 산업 제어 시스템의 운영자가 신규 취약점이 자신이 운영하는 시스템에 미칠 수 있는 영향도를 직관적으로 인지할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 취약점에 대해 위험도가 높은 운영환경이 무엇인지 쉽게 파악할 수 있도록 함으로써 취약점 제거에 필요한 소요자원을 현저히 감소시키는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 상기 적어도 하나의 키워드에 상응하는 공격벡터를 생성하는 단계; 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집하는 단계; 상기 운영환경 특징 중 상기 적어도 하나의 키워드에 매칭되는 취약점 특징 및 상기 취약점 특징에 적용된 가중치를 고려하여 상기 공격벡터에 대한 타겟화된 위험도를 산출하는 단계; 및 상기 타겟 산업 제어 시스템의 운영자 모듈로 상기 타겟화된 위험도를 제공하는 단계를 포함한다.
이 때, 적어도 하나의 키워드는 기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 상기 공표된 취약점에서 추출될 수 있다.
이 때, 공표된 취약점은 취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함할 수 있다.
이 때, 타겟화된 위험도는 상기 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출될 수 있다.
이 때, 가중치는 운영환경 특징 별로 적용된 가중치 중 상기 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응할 수 있다.
이 때, 타겟화된 위험도는 상기 공표된 취약점에 의한 범용적인 위험도에 상기 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 상기 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출될 수 있다.
이 때, 운영환경 특징은 상기 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 상기 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의될 수 있다.
이 때, 적어도 하나의 키워드는 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
이 때, 위험도 산출 방법은 상기 운영환경 특징 중 상기 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 상기 타겟 산업 제어 시스템은 상기 공표된 취약점에 대해 위험도가 없다고 판단하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 산업제어 시스템을 위한 위험도 산출 장치는, 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 상기 적어도 하나의 키워드에 상응하는 공격벡터를 생성하고, 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집하고, 상기 운영환경 특징 중 상기 적어도 하나의 키워드에 매칭되는 취약점 특징 및 상기 취약점 특징에 적용된 가중치를 고려하여 상기 공격벡터에 대한 타겟화된 위험도를 산출하고, 상기 타겟 산업 제어 시스템의 운영자 모듈로 상기 타겟화된 위험도를 제공하는 프로세서; 및 상기 공격벡터 및 상기 운영환경 특징을 저장하는 메모리를 포함한다.
이 때, 적어도 하나의 키워드는 기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 상기 공표된 취약점에서 추출될 수 있다.
이 때, 공표된 취약점은 취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함할 수 있다.
이 때, 타겟화된 위험도는 상기 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출될 수 있다.
이 때, 가중치는 운영환경 특징 별로 적용된 가중치 중 상기 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응할 수 있다.
이 때, 타겟화된 위험도는 상기 공표된 취약점에 의한 범용적인 위험도에 상기 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 상기 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출될 수 있다.
이 때, 운영환경 특징은 상기 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 상기 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의될 수 있다.
이 때, 적어도 하나의 키워드는 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
이 때, 프로세서는 상기 운영환경 특징 중 상기 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 상기 타겟 산업 제어 시스템은 상기 공표된 취약점에 대해 위험도가 없다고 판단할 수 있다.
본 발명에 따르면, 현재 운영하고 있는 산업제어 시스템의 운영환경 특징을 반영하여 새롭게 발견된 취약점에 대한 실제적인 위험도를 산출할 수 있다.
또한, 본 발명은 새롭게 발견된 취약점이 운영환경 특성을 고려한 산업 제어 시스템에서 어떤 방식으로 공격에 활용될 수 있고, 그 위험의 정도가 어느 정도 인지를 일반 사용자들이 인지할 수 있도록 수치화하여 제공할 수 있다.
또한, 본 발명은 산업 제어 시스템의 운영자가 신규 취약점이 자신이 운영하는 시스템에 미칠 수 있는 영향도를 직관적으로 인지할 수 있도록 할 수 있다.
또한, 본 발명은 취약점에 대해 위험도가 높은 운영환경이 무엇인지 쉽게 파악할 수 있도록 함으로써 취약점 제거에 필요한 소요자원을 현저히 감소시킬 수 있다.
도 1은 산업 제어 시스템에 대한 주요 공격 경로의 일 예를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 시스템을 나타낸 동작 흐름도이다.
도 3은 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법을 나타낸 동작 흐름도이다.
도 4는 CVSS 위험도 측정 메트릭의 일 예를 나타낸 도면이다.
도 5 내지 도 8은 일반적으로 NVD에서 제공되는 취약점 정보의 일 예를 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 과정을 상세하게 나타낸 동작 흐름도이다.
도 10은 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 장치를 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 시스템을 나타낸 동작 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 다른 산업 제어 시스템은 위험도 산출 장치(200), 취약점 정보(201) 및 운영자 모니터링 시스템(202)을 포함한다.
본 발명의 핵심 기술은 인터넷에 공표되는 취약점 정보(201)로부터 키워드를 기반으로 실제 산업 제어 시스템에 대한 공격벡터를 도출하고, 해당 공격벡터가 현재 운영중인 산업제어 시스템에 얼마나 영향을 미칠 수 있는지에 대한 위험도를 계산하여 운영자 모니터링 시스템(202)으로 제공함으로써 운영자가 시스템의 안정성 유지를 위해 어떤 조치를 취해야 하는가에 대한 판단을 할 수 있도록 지원하는 것이다.
이를 위해 위험도 산출 장치(200)는 도 2에 도시된 것처럼, 취약점 정보 수집 모듈(210), 취약점 정보 파싱 모듈(220), 공격벡터 생성 모듈(230), 취약점 검색 모듈(240), ICS 시스템 운영환경 특징 수집 모듈(250), 위험도 산출 모듈(260) 및 데이터베이스(270)를 포함한다.
취약점 정보 수집 모듈(210)은 인터넷을 통해 주기적 또는 비주기적으로 취약점 정보(201)를 수집할 수 있고, 취약점 정보 파싱 모듈(220)을 통해 수집된 취약점 정보(201)를 파싱하여 공격벡터 생성 모듈(230)로 전달할 수 있다.
이 후, 공격벡터 생성 모듈(230)에서는 제시된 취약점을 기반으로 공격이 성공되기 위해서 어떠한 단계를 거쳐야 하는지에 대한 경로를 포함하는 공격벡터를 생성하여 데이터베이스(270)에 저장할 수 있다.
이 후, 취약점 검색 모듈(240)은 위험도 산출 대상인 타겟 산업 제어 시스템과 관련된 키워드를 기반으로 데이터베이스(270)에서 검색을 수행하여 관련된 취약점을 선별할 수 있다. 이 때, 타겟 산업 제어 시스템과 관련된 키워드는 ICS 시스템 운영환경 특징 수집 모듈(250)을 통해 타겟 산업 제어 시스템에서 수집된 운영환경 특징을 기반으로 선별될 수 있다.
이 후, 위험도 산출 모듈(260)은 타겟 산업 제어 시스템의 운영환경 특징 중 검색된 키워드, 즉 공표된 취약점과 관련된 키워드에 매칭되는 취약점 특징과 해당하는 취약점 특징에 적용된 가중치를 고려하여 타겟화된 위험도를 산출할 수 있다.
이 때, 타겟화된 위험도란 공격벡터가 타겟 산업 제어 시스템에 실제로 영향을 미치는 정도를 의미하는 것으로, 공격벡터가 공격하는 대상의 운영환경 특징이 상이한 경우 타겟화된 위험도의 수치도 상이할 수 있다.
이렇게 산출된 타겟화된 위험도는 타겟 산업 제어 시스템에 대한 운영자 모니터링 시스템(202)으로 전달함으로써, 운영자들이 현재 운영하고 잇는 산업 제어 시스템에 대한 실제적인 위험도를 직관적으로 인지하도록 지원할 수 있다.
도 3은 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 적어도 하나의 키워드에 상응하는 공격벡터를 생성한다(S310).
이 때, 공표된 취약점은 인터넷을 통해 주기적으로 또는 비주기적으로 자동으로 수집될 수 있다. 예를 들어, 미국 NIST(National Institute of Standards and Technology)에서 관리하는 NVD(National Vulnerability Database)를 포함, 다양한 기관에서 제공하는 취약점 정보를 수집할 수 있다.
이 때, 최약점 정보는 다양한 형태와 포맷으로 수집될 수 있으므로, 인터넷을 통해 수집된 취약점은 일단 파싱을 통해 키워드를 추출하기 위한 형태로 구성될 수 있다. 예를 들어, 본 발명에서는 대표적으로 JSON 또는 CSV 포맷으로 취약점 정보를 처리할 수 있다.
이 때, 본 발명에서 정의하는 공격벡터는 공표된 취약점을 이용하여 공격이 성공되기 위해서는 어떠한 단계를 거쳐야 하는가에 관한 정보를 포함하는 것일 수 잇다. 이러한 개념은 본 발명에서 독자적으로 정의 및 개발하여 사용하는 것이며, 유사한 명칭의 타 정의와는 다른 개념일 수 있다.
따라서, 본 발명에서는 파싱된 취약점 정보에 포함된 취약점 대상, 취약점 자체에 대한 설명 정보 및 위험도를 공격벡터를 생성하기 위한 주요한 정보로 활용할 수 있다.
이 때, 적어도 하나의 키워드는 기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 공표된 취약점에서 추출될 수 있다.
이 때, 공표된 취약점은 취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함할 수 있다.
이 때, 적어도 하나의 키워드는 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
예를 들어, 일반적으로 NVD(National Vulnerability Database)에서 공표하는 취약점 정보에는 도 5에 도시된 것처럼 CVE번호, 상세 설명(Description), 위험도, 취약점이 존재하는 대상(운영체제, 서비스, 응용프로그램 등)에 관한 정보를 포함될 수 있다. 이 때, 도 5에 도시된 Vector는 CVSS에서 정의하여 사용하는 개념으로 본 발명에서 자동으로 생성되는 공격벡터와는 다른 개념일 수 있다.
이 때, 도 5에서 확인할 수 있는 정보는, 해당 취약점이 네트워크를 통해서 시도되는 공격이라는 것(AV:N)으로, 즉 취약점 대상으로의 접근 방식에 관한 것으로, 해당 정보는 실제로 특정 기기에 얼마나 영향이 있을지를 판단하기에는 매우 부족한 정보이다. 그러나, 본 발명에서는 해당 취약점에 대한 공격이 네트워크를 통해서 시도된다는 접근 방식에 관련된 정보를 키워드로 추출하여 공격벡터를 생성하는데 활용할 수 있다.
다시 말해서, CVSS의 AV(Attack Vector)는 공격에 성공하기 위해 접근하는 방식을 표현하는 것으로, N(Network), A(Adjacent), L(Local) 및 P(Physical)에 상응하는 4가지 값을 가질 수 있는데, 본원발명에서는 이러한 값들을 공격벡터를 생성하기 위해 사용하는 키워드로 추출할 수 있다.
다른 예를 들어, 도 6은 해당 공표된 취약점에 포함된 취약점 자체 설명 정보에 관한 것으로, 여기에서는 어떤 응용프로그램이나 서비스가 취약한지와 관련된 키워드, 즉 취약점 대상에 대한 키워드를 추출할 수 있다. 도 6에 도시된 정보를 참조하면, Jenkins LDAP Email Plugin이 취약점 대상인 것으로 파악하고, 해당 정보를 키워드로 추출할 수 있다.
또 다른 예를 들어, 도 7은 취약점 대상의 상세 정보에 관한 것으로, 도 7과 같은 정보를 기반으로 실제로 취약한 응용프로그램의 이름과 버전과 같은 정보를 키워드로 추출할 수 있다.
이처럼, 도 5 내지 도 7을 통해 추출된 키워드를 이용하면, 네트워크를 통해 Jenkins Ldap email plugin의 특정 버전에 대해 공격이 가능하며, Configuration 문제를 발생시키는 공격벡터를 생성할 수 있고, 이러한 공격 벡터는 'N <- PI <- LL'과 같이 표현될 수 있다.
이 때, N은 취약점에서 제공되는 Vector의 값이 Network이라는 의미이며, PI(Physical Interface), LL(Logical Location)는 산업 제어 시스템의 운영환경 특징을 설명할 때 상세하게 다루도록 한다.
도 8은 도 5 내지 도 7과는 다른 공표된 취약점 예시로써, 도 8과 같은 취약점 정보를 통해 생성된 공격벡터는 'P <- PI <- PL'로 정의될 수 있다. 이렇게 생성된 공격벡터에 의하면, 물리적인 접근이 가능해야 하며, Serial Port가 제공되어야 하기 때문에 실제로 운영되는 산업 제어 시스템의 물리적인 위치가 공격벡터의 유효성을 판단하는데 큰 요소가 될 수 있다.
이와 같이 공격벡터를 생성하는 과정은 자동적으로 수행될 수 있으며, 공표된 취약점으로부터 수집되는 각 키워드가 어떤 특징과 매칭되는지를 지속적으로 업데이트하여 보다 정확한 공격벡터가 생성되도록 할 수도 있다.
또한, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집한다(S320).
예를 들어, 산업 제어 시스템에 취약점이 존재하는 동일한 버전의 응용프로그램이 실행되고 있다고 하더라도, 해당 시스템이 운영되는 환경에 따라서 실제로는 취약하지 않을 수 있다. 따라서, 본 발명에서는 이러한 점을 반영하기 위해 타겟이 되는 산업 제어 시스템의 운영환경 특징을 이용할 수 있다.
예를 들어, 산업 제어 시스템이 운영되는 운영환경에서의 특징들은 아래와 [표 1]과 같이 분류될 수 있다.
CDA에서 취약한 서비스 제공 여부(VS: Vulnerable Service)
- 취약점에 기재되어 있는 취약한 서비스 사용 여부
CDA 로그인 서비스 제공 여부(LS: Login Service)
- CDA 원격접속 로그인 가능 여부
- CDA 콘솔 로그인 가능 여부
물리적 네트워크 인터페이스(PI: Physical Interface)
- 일반 네트워크, 무선 네트워크, 직렬통신, 단방향통신, 센서 네트워크
- 각 네트워크 인터페이스의 활성화 여부
- 네트워크 인터페이스의 물리적 접근 차단 여부
CDA 물리적 운영 위치(PL: Physical Location)
- PA(Protected Area): 보호구역: 물리적 방벽으로 보호
- VA(Vital Area): 중요구역: PA이면서 접근 통제로 보호하는 구역
- 소외: 발전소 외부
- CDA에 대한 잠금장치의 유지여부, 접근 인원 검증 및 통제 가능 여부
CDA 네트워크 상의 논리적 운영 위치(LL: Logical Location)
- CDA 네트워크 인터페이스가 타 level에서 접근 가능한가?
Low -> High
High -> Low
- CDA 접근 가능할 때 접근 통제 기법이 적용되어 있는가?
시스템, 소프트웨어 등(단방향, 방화벽 등)
휴대용 매체 및 장비 통제(PM: Portable Media)
- 물리적으로 접근 가능할 때 접근 가능한 인터페이스의 존재 여부(USB, SD카드, CD 등)
- 물리적 인터페이스를 물리적인 수단으로 접근 불능화 시켰는가?
- 존재하는 물리적인 접근 인터페이스를 소프트웨어적으로 불능화 시켰는가?
- 물리적인 접근에 대한 통제 및 식별 장치가 존재하는가?
공급망 통제(SC: Supply Chain)
- 설치 운영되는 S/W는 모두 검증/승인된 것인가?
- SW패치 및 업데이트는 검증 후에 진행되는가?
- CDA 공급자가 원격지에서 접근 가능한 상태인가?
- CDA 상에서 동작하는 SW 및 SW업데이트에 대한 설치 및 운영 기록이 유지되고 있는가?
- CDA가 이동되는 경우 이동간 관리 연속성이 유지되는가?
타 계통과의 연결 가능성(OS: Other System)
- CDA는 네트워크 등을 통해 타 계통의 시스템과 연결 가능한가?
- 해당 CDA에 대한 HMI 존재 여부
- 해당 CDA에 대한 EWS 접속 가능 여부
이 때, 운영환경 특징은 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의될 수 있다.
예를 들어, [표 1]에서 설명하는 운영환경 특징들은 각각 VS, LS, PI, PL, LL, PM, SC, OS로 표현할 수 있으며, 이와 함께 해당 취약점 정보에 존재하는 Vector에서 사용하는 N, A, L, P 값을 사용할 수 있다.
이를 기반으로 도 5 내지 도 7을 통해 도출한 공격벡터 'N <- PI <- LL'를 분석하면, 해당 공격벡터는 물리적인 네트워크 인터페이스(PI)가 존재하고, 네트워크를 통해 접근 가능한(LL) 운영환경 특징을 갖는 산업 제어 시스템에 공격을 가하여 영향을 줄 수 있다는 것을 알 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 타겟 산업 제어 시스템의 운영환경 특징과 관련된 키워드를 이용하여 타겟 산업 제어 시스템에 영향을 줄 수 있는 취약점을 검색할 수 있다. 이 때, 검색되는 키워드는 공격벡터를 생성하기 위해 취약점에서 추출되는 키워드와 유사하게 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
따라서, 제조사 정보, 제품 정보, 제품 버전 정보는 공표된 취약점에 포함된 취약점 대상을 기준으로 검색할 수 있고, 설명 정보는 공표된 취약점에 포함된 취약점 대상의 상세 정보를 기준으로 검색할 수 있다. 이와 같은 검색을 통해 타겟 산업 제어 시스템에 적용될 수도 있는 취약점을 선별하여 위험도를 산출할 수 있다.
또한, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 운영환경 특징 중 적어도 하나의 키워드에 매칭되는 취약점 특징 및 취약점 특징에 적용된 가중치를 고려하여 공격벡터에 대한 타겟화된 위험도를 산출한다(S330).
이 때, 타겟화된 위험도는 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출될 수 있다.
이 때, 가중치는 운영환경 특징 별로 적용된 가중치 중 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응할 수 있다.
예를 들어, 운영환경 특징 별 가중치는 [표 2]와 같이 할당될 수 있다.
CDA에서 취약한 서비스 제공 여부(VS: Vulnerable Service)
- 취약한 서비스 또는 관련 항목이 제공되지 않으면 0
- 취약한 서비스 또는 관련 항목이 제공되면 1
CDA 로그인 서비스 제공 여부(LS: Login Service)
- 원격접속 로그인이 가능하면 1
- 콘솔 로그인이 가능하면 1
- 두가지 모두 불가능하면 0.5
물리적 네트워크 인터페이스(PI: Physical Interface)
- CVE의 AV가 N or A or L 이고,
인터페이스가 일반 네트워크, 무선네트워크이고,
네트워크 인터페이스가 활성화 되어 있고
인터페이스에 대한 물리적 접근 차단이 되어 있지 않으면 1

- CVE의 AV가 P이고 직렬통신이고
인터페이스가 활성화 되어 있고,
인터페이스에 대한 물리적 접근 차단이 되어 있지 않으면 1
- 단방향통신 0.25
- 센서 네트워크 0.25
- Else 0.25
CDA 물리적 운영 위치(PL: Physical Location)
- PA(Protected Area)이면 0.7
- VA(Vital Area)이면 0.5
- 소외면 1
CDA에 대한 잠금장치의 유지, 접근 인원 검증, 통제 가능 여부
1개 만족 시 상위 값을 각각 0.5, 0.3, 0.7로 변경
2개 만족 시 상위 값을 각각 0.3, 0.2, 0.5로 변경
3개 만족 시 상위 값을 각각 0.1, 0.1, 0.3로 변경
CDA 네트워크 상의 논리적 운영 위치(LL: Logical Location)
- 타 레벨에서 접근 가능하고 1
접근 통제 기법이 적용되어 있지 않으면
- 타 레벨에서 접근 가능하고 0.6
접근 통제 기법이 적용되어 있으면
- 타 레벨에서 접근 불가능하고
접근 통제 기법이 적용되어 있지 않으면 0.7
- 타 레벨에서 접근 불가능하고
접근 통제 기법이 적용되어 있으면 0.3
휴대용 매체 및 장비 통제(PM: Portable Media)
- 이동형 저장장치 인터페이스가 존재하고,
이를 물리적으로 접근 불능화 시키지 않고,
소프트웨어 적으로도 불능화 하지 않았으며,
이동형 저장장치에 대한 통제 식별 장치가 존재하지 않는 경우 1
- 이동형 저장장치 인터페이스가 존재하고,
이를 물리적으로 접근 불능화 시키지 않고,
소프트웨어 적으로도 불능화 하지 않았으며,
이동형 저장장치에 대한 통제 식별 장치가 존재하는 경우 0.5
- 이동형 저장장치 인터페이스가 존재하지 않거나,
이를 물리적으로 접근 불능화 시켰거나,
소프트웨어 적으로도 불능화 시켰으면 0.1
공급망 통제(SC: Supply Chain)
- 설치 운영되는 S/W는 모두 검증/승인된 된 것이 아니거나
SW패치 및 업데이트가 검증 후에 진행되지 않으면 1.0
- CDA 공급자가 원격지에서 접근 가능한 상태이면
- CDA 상에서 동작하는 SW 및 SW업데이트에 대한 설치 및 운영 기록이 유지되지 않으면 1.0
- CDA가 이동되는 경우 이동간 관리 연속성이 유지되지 않으면 1.0
- Else 0.1
타 계통과의 연결 가능성(OS: Other System)
- CDA가 네트워크 등을 통해 타 계통의 시스템과 연결 가능하면 1.0
- 해당 CDA에 대한 HMI 존재하면 0.5
- 해당 CDA에 대한 EWS 접속이 가능하면 0.5
- Else 0.1
이 때, 타겟화된 위험도는 공표된 취약점에 의한 범용적인 위험도에 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출될 수 있다.
예를 들어, 제1 위험도를 Operational Risk Score, 제2 위험도를 Potential Risk Score라고 가정하면, 제1 위험도는 [수학식 1], 제2 위험도는 [수학식 2]와 같이 산출될 수 있다.
[수학식 1]
AV: N or A
AttackVector * VS * PI * LL
AV: L (아래 값 중 큰 값)
AttackVector * VS * LS * PI * LL
AttackVector * VS * LS * PI * PL
AV: P
AttackVector * VS * PL
[수학식 2]
w0PM + w1SC + w2OS
여기서 제1 위험도는 공표된 취약점과 직접적으로 연계된 위험도를 산출한 값에 상응하고, 잠재적 위험도에 해당하는 제2 위험도는 취약한 응용프로그램이나 서비스가 실제로 존재하여 위험할 수 있는 가능성이 더 높을 수 있는 상황의 위험도를 산출한 값에 상응할 수 있다.
따라서, 이와 같이 각각 계산된 위험도를 바탕으로 CVSS의 최종 위험도 산출 값의 AttackVector를 대치하여 최종적으로 타겟화된 위험도를 계산할 수 있다.
예를 들어, Base score를 본 발명에서 제안하는 방법으로 계산하기 위해 AttackVector를 특징 기반위험도(Characteristic Risk)로 대치하여 최종적으로 타겟화된 위험도를 계산하는 방법은 [수학식 3]과 같다.
[수학식 3]
8.22 * Characteristic Risk * AttackComplexity * PrivilegeRequired * UserInteraction
이 때, AttackComplexity, PrivilegeRequired, UserInteraction은 NVD에서 제공하는 취약점 정보에 포함된 값을 사용할 수 있다.
또한, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 타겟 산업 제어 시스템의 운영자 모듈로 타겟화된 위험도를 제공한다(S340).
이와 같은 방법으로 제공되는 타겟화된 위험도는 발견된 취약점 자체의 특징을 유지하면서도 타겟 산업 제어 시스템의 운영환경 특징을 모두 반영한 것이므로, 실질적으로 특정 취약점이 해당 운영 환경에서 조치가 필요한지 여부를 판단하는데 큰 도움을 줄 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 운영환경 특징 중 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 타겟 산업 제어 시스템이 공표된 취약점에 대해 위험도가 없다고 판단할 수 있다.
또한, 상술한 위험도 산출 과정은 도 9에 도시된 것처럼 상세하게 나타낼 수 있다.
도 9를 참조하면, 먼저 신규 취약점이 발표되는지 여부를 판단하고(S905), 신규 취약점이 발표되지 않았으면 지속적으로 대기할 수 있다.
또한, 단계(S905)의 판단결과 신규 취약점이 발표되었으면, 취약점 목록을 다운로드 받아 공표된 취약점을 수집하고(S910), 수집된 취약점을 파싱하여(S920) 취약점 별 Attack Vector 및 주요 키워드를 추출할 수 있다.
이렇게 추출한 Attack Vector 및 주요 키워드를 이용하여 공격벡터를 생성하고(S930) 생성된 공격벡터는 취약점과 함께 데이터베이스에 저장할 수 있다(S940). 이러한 과정은 새롭게 발표된 모든 취약점에 대해 진행될 수 있다.
즉, 새롭게 발표된 모든 취약점에 대해 상기의 과정이 처리되었는지 여부를 판단하고(S950), 모두 처리되지 않았으면 단계(S920)부터 반복적으로 수행할 수 있다.
이러한 과정을 거쳐 타겟 산업 제어 시스템에 대해서 새로운 취약점들이 얼마나 위협적인지를 확인할 수 있다. 즉, 타겟 산업 제어 시스템과 관련된 다양한 키워드를 적용하여 취약점을 추출하고, 타겟 산업 제어 시스템의 운영환경 특징을 고려하여 타겟 산업 제어 시스템에 타겟화된 실질적인 위험도를 계산하여 위협의 정도를 알릴 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 방법은 상술한 위험도 산출 과정에서 발생하는 다양한 정보를 별도의 저장 모듈에 저장한다.
이와 같은 산업 제어 시스템을 위한 위험도 산출 방법을 통해 현재 운영하고 있는 산업제어 시스템의 운영환경 특징을 반영하여 새롭게 발견된 취약점에 대한 실제적인 위험도를 산출할 수 있다.
또한, 새롭게 발견된 취약점이 운영환경 특성을 고려한 산업 제어 시스템에서 어떤 방식으로 공격에 활용될 수 있고, 그 위험의 정도가 어느 정도 인지를 일반 사용자들이 인지할 수 있도록 수치화하여 제공할 수 있고, 산업 제어 시스템의 운영자가 신규 취약점이 자신이 운영하는 시스템에 미칠 수 있는 영향도를 직관적으로 인지할 수 있도록 할 수도 있다.
도 10은 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 장치를 나타낸 블록도이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 산업 제어 시스템을 위한 위험도 산출 장치는 통신부(1010), 프로세서(1020) 및 메모리(1030)를 포함한다.
통신부(1010)는 네트워크와 같은 통신망을 통해 산업 제어 시스템을 위한 위험도 산출을 위해 필요한 정보를 송수신하는 역할을 한다. 특히, 본 발명의 일실시예에 따른 통신부(1010)는 인터넷으로부터 공표된 취약점을 수신하고, 최종적으로 산출된 타겟 산업 제어 시스템에 대한 타겟화된 위험도를 운영자 또는 운영자 모듈에게 송신할 수 있다.
프로세서(1020)는 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 적어도 하나의 키워드에 상응하는 공격벡터를 생성한다.
이 때, 공표된 취약점은 인터넷을 통해 주기적으로 또는 비주기적으로 자동으로 수집될 수 있다. 예를 들어, 미국 NIST(National Institute of Standards and Technology)에서 관리하는 NVD(National Vulnerability Database)를 포함, 다양한 기관에서 제공하는 취약점 정보를 수집할 수 있다.
이 때, 최약점 정보는 다양한 형태와 포맷으로 수집될 수 있으므로, 인터넷을 통해 수집된 취약점은 일단 파싱을 통해 키워드를 추출하기 위한 형태로 구성될 수 있다. 예를 들어, 본 발명에서는 대표적으로 JSON 또는 CSV 포맷으로 취약점 정보를 처리할 수 있다.
이 때, 본 발명에서 정의하는 공격벡터는 공표된 취약점을 이용하여 공격이 성공되기 위해서는 어떠한 단계를 거쳐야 하는가에 관한 정보를 포함하는 것일 수 잇다. 이러한 개념은 본 발명에서 독자적으로 정의 및 개발하여 사용하는 것이며, 유사한 명칭의 타 정의와는 다른 개념일 수 있다.
따라서, 본 발명에서는 파싱된 취약점 정보에 포함된 취약점 대상, 취약점 자체에 대한 설명 정보 및 위험도를 공격벡터를 생성하기 위한 주요한 정보로 활용할 수 있다.
이 때, 적어도 하나의 키워드는 기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 공표된 취약점에서 추출될 수 있다.
이 때, 공표된 취약점은 취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함할 수 있다.
이 때, 적어도 하나의 키워드는 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
예를 들어, 일반적으로 NVD(National Vulnerability Database)에서 공표하는 취약점 정보에는 도 5에 도시된 것처럼 CVE번호, 상세 설명(Description), 위험도, 취약점이 존재하는 대상(운영체제, 서비스, 응용프로그램 등)에 관한 정보를 포함될 수 있다. 이 때, 도 5에 도시된 Vector는 CVSS에서 정의하여 사용하는 개념으로 본 발명에서 자동으로 생성되는 공격벡터와는 다른 개념일 수 있다.
이 때, 도 5에서 확인할 수 있는 정보는, 해당 취약점이 네트워크를 통해서 시도되는 공격이라는 것(AV:N)으로, 즉 취약점 대상으로의 접근 방식에 관한 것으로, 해당 정보는 실제로 특정 기기에 얼마나 영향이 있을지를 판단하기에는 매우 부족한 정보이다. 그러나, 본 발명에서는 해당 취약점에 대한 공격이 네트워크를 통해서 시도된다는 접근 방식에 관련된 정보를 키워드로 추출하여 공격벡터를 생성하는데 활용할 수 있다.
다시 말해서, CVSS의 AV(Attack Vector)는 공격에 성공하기 위해 접근하는 방식을 표현하는 것으로, N(Network), A(Adjacent), L(Local) 및 P(Physical)에 상응하는 4가지 값을 가질 수 있는데, 본원발명에서는 이러한 값들을 공격벡터를 생성하기 위해 사용하는 키워드로 추출할 수 있다.
다른 예를 들어, 도 6은 해당 공표된 취약점에 포함된 취약점 자체 설명 정보에 관한 것으로, 여기에서는 어떤 응용프로그램이나 서비스가 취약한지와 관련된 키워드, 즉 취약점 대상에 대한 키워드를 추출할 수 있다. 도 6에 도시된 정보를 참조하면, Jenkins LDAP Email Plugin이 취약점 대상인 것으로 파악하고, 해당 정보를 키워드로 추출할 수 있다.
또 다른 예를 들어, 도 7은 취약점 대상의 상세 정보에 관한 것으로, 도 7과 같은 정보를 기반으로 실제로 취약한 응용프로그램의 이름과 버전과 같은 정보를 키워드로 추출할 수 있다.
이처럼, 도 5 내지 도 7을 통해 추출된 키워드를 이용하면, 네트워크를 통해 Jenkins Ldap email plugin의 특정 버전에 대해 공격이 가능하며, Configuration 문제를 발생시키는 공격벡터를 생성할 수 있고, 이러한 공격 벡터는 'N <- PI <- LL'과 같이 표현될 수 있다.
이 때, N은 취약점에서 제공되는 Vector의 값이 Network이라는 의미이며, PI(Physical Interface), LL(Logical Location)는 산업 제어 시스템의 운영환경 특징을 설명할 때 상세하게 다루도록 한다.
도 8은 도 5 내지 도 7과는 다른 공표된 취약점 예시로써, 도 8과 같은 취약점 정보를 통해 생성된 공격벡터는 'P <- PI <- PL'로 정의될 수 있다. 이렇게 생성된 공격벡터에 의하면, 물리적인 접근이 가능해야 하며, Serial Port가 제공되어야 하기 때문에 실제로 운영되는 산업 제어 시스템의 물리적인 위치가 공격벡터의 유효성을 판단하는데 큰 요소가 될 수 있다.
이와 같이 공격벡터를 생성하는 과정은 자동적으로 수행될 수 있으며, 공표된 취약점으로부터 수집되는 각 키워드가 어떤 특징과 매칭되는지를 지속적으로 업데이트하여 보다 정확한 공격벡터가 생성되도록 할 수도 있다.
또한, 프로세서(1020)는 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집한다.
예를 들어, 산업 제어 시스템에 취약점이 존재하는 동일한 버전의 응용프로그램이 실행되고 있다고 하더라도, 해당 시스템이 운영되는 환경에 따라서 실제로는 취약하지 않을 수 있다. 따라서, 본 발명에서는 이러한 점을 반영하기 위해 타겟이 되는 산업 제어 시스템의 운영환경 특징을 이용할 수 있다.
예를 들어, 산업 제어 시스템이 운영되는 운영환경에서의 특징들은 상기에 기재된 [표 1]과 같이 분류될 수 있다.
이 때, 운영환경 특징은 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의될 수 있다.
예를 들어, [표 1]에서 설명하는 운영환경 특징들은 각각 VS, LS, PI, PL, LL, PM, SC, OS로 표현할 수 있으며, 이와 함께 해당 취약점 정보에 존재하는 Vector에서 사용하는 N, A, L, P 값을 사용할 수 있다.
이를 기반으로 도 5 내지 도 7을 통해 도출한 공격벡터 'N <- PI <- LL'를 분석하면, 해당 공격벡터는 물리적인 네트워크 인터페이스(PI)가 존재하고, 네트워크를 통해 접근 가능한(LL) 운영환경 특징을 갖는 산업 제어 시스템에 공격을 가하여 영향을 줄 수 있다는 것을 알 수 있다.
또한, 프로세서(1020)는 타겟 산업 제어 시스템의 운영환경 특징과 관련된 키워드를 이용하여 타겟 산업 제어 시스템에 영향을 줄 수 있는 취약점을 검색할 수 있다. 이 때, 검색되는 키워드는 공격벡터를 생성하기 위해 취약점에서 추출되는 키워드와 유사하게 제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함할 수 있다.
따라서, 제조사 정보, 제품 정보, 제품 버전 정보는 공표된 취약점에 포함된 취약점 대상을 기준으로 검색할 수 있고, 설명 정보는 공표된 취약점에 포함된 취약점 대상의 상세 정보를 기준으로 검색할 수 있다. 이와 같은 검색을 통해 타겟 산업 제어 시스템에 적용될 수도 있는 취약점을 선별하여 위험도를 산출할 수 있다.
또한, 프로세서(1020)는 운영환경 특징 중 적어도 하나의 키워드에 매칭되는 취약점 특징 및 취약점 특징에 적용된 가중치를 고려하여 공격벡터에 대한 타겟화된 위험도를 산출한다.
이 때, 타겟화된 위험도는 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출될 수 있다.
이 때, 가중치는 운영환경 특징 별로 적용된 가중치 중 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응할 수 있다.
예를 들어, 운영환경 특징 별 가중치는 상술한 [표 2]와 같이 할당될 수 있다.
이 때, 타겟화된 위험도는 공표된 취약점에 의한 범용적인 위험도에 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출될 수 있다.
예를 들어, 제1 위험도를 Operational Risk Score, 제2 위험도를 Potential Risk Score라고 가정하면, 제1 위험도는 [수학식 1], 제2 위험도는 [수학식 2]와 같이 산출될 수 있다.
[수학식 1]
AV: N or A
AttackVector * VS * PI * LL
AV: L (아래 값 중 큰 값)
AttackVector * VS * LS * PI * LL
AttackVector * VS * LS * PI * PL
AV: P
AttackVector * VS * PL
[수학식 2]
w0PM + w1SC + w2OS
여기서 제1 위험도는 공표된 취약점과 직접적으로 연계된 위험도를 산출한 값에 상응하고, 잠재적 위험도에 해당하는 제2 위험도는 취약한 응용프로그램이나 서비스가 실제로 존재하여 위험할 수 있는 가능성이 더 높을 수 있는 상황의 위험도를 산출한 값에 상응할 수 있다.
따라서, 이와 같이 각각 계산된 위험도를 바탕으로 CVSS의 최종 위험도 산출 값의 AttackVector를 대치하여 최종적으로 타겟화된 위험도를 계산할 수 있다.
예를 들어, Base score를 본 발명에서 제안하는 방법으로 계산하기 위해 AttackVector를 특징 기반위험도(Characteristic Risk)로 대치하여 최종적으로 타겟화된 위험도를 계산하는 방법은 [수학식 3]과 같다.
[수학식 3]
8.22 * Characteristic Risk * AttackComplexity * PrivilegeRequired * UserInteraction
이 때, AttackComplexity, PrivilegeRequired, UserInteraction은 NVD에서 제공하는 취약점 정보에 포함된 값을 사용할 수 있다.
또한, 프로세서(1020)는 타겟 산업 제어 시스템의 운영자 모듈로 타겟화된 위험도를 제공한다.
이와 같은 방법으로 제공되는 타겟화된 위험도는 발견된 취약점 자체의 특징을 유지하면서도 타겟 산업 제어 시스템의 운영환경 특징을 모두 반영한 것이므로, 실질적으로 특정 취약점이 해당 운영 환경에서 조치가 필요한지 여부를 판단하는데 큰 도움을 줄 수 있다.
또한, 프로세서(1020)는 방법은 운영환경 특징 중 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 타겟 산업 제어 시스템이 공표된 취약점에 대해 위험도가 없다고 판단할 수 있다.
또한, 상술한 위험도 산출 과정은 도 9에 도시된 것처럼 상세하게 나타낼 수 있다.
도 9를 참조하면, 먼저 신규 취약점이 발표되는지 여부를 판단하고(S905), 신규 취약점이 발표되지 않았으면 지속적으로 대기할 수 있다.
또한, 단계(S905)의 판단결과 신규 취약점이 발표되었으면, 취약점 목록을 다운로드 받아 공표된 취약점을 수집하고(S910), 수집된 취약점을 파싱하여(S920) 취약점 별 Attack Vector 및 주요 키워드를 추출할 수 있다.
이렇게 추출한 Attack Vector 및 주요 키워드를 이용하여 공격벡터를 생성하고(S930) 생성된 공격벡터는 취약점과 함께 데이터베이스에 저장할 수 있다(S940). 이러한 과정은 새롭게 발표된 모든 취약점에 대해 진행될 수 있다.
즉, 새롭게 발표된 모든 취약점에 대해 상기의 과정이 처리되었는지 여부를 판단하고(S950), 모두 처리되지 않았으면 단계(S920)부터 반복적으로 수행할 수 있다.
이러한 과정을 거쳐 타겟 산업 제어 시스템에 대해서 새로운 취약점들이 얼마나 위협적인지를 확인할 수 있다. 즉, 타겟 산업 제어 시스템과 관련된 다양한 키워드를 적용하여 취약점을 추출하고, 타겟 산업 제어 시스템의 운영환경 특징을 고려하여 타겟 산업 제어 시스템에 타겟화된 실질적인 위험도를 계산하여 위협의 정도를 알릴 수 있다.
메모리(1030)는 공격벡터 및 운영환경 특징을 저장한다.
또한, 메모리(1030)는 상술한 바와 같이 본 발명의 일실시예에 따른 위험도 산출 과정에서 발생하는 다양한 정보를 저장한다.
실시예에 따라, 메모리(1030)는 위험도 산출 장치와 독립적으로 구성되어 위험도 산출을 위한 기능을 지원할 수 있다. 이 때, 메모리(1030)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.
한편, 위험도 산출 장치는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
이와 같은 산업 제어 시스템을 위한 위험도 산출 장치를 이용함으로써 현재 운영하고 있는 산업제어 시스템의 운영환경 특징을 반영하여 새롭게 발견된 취약점에 대한 실제적인 위험도를 산출할 수 있다.
또한, 새롭게 발견된 취약점이 운영환경 특성을 고려한 산업 제어 시스템에서 어떤 방식으로 공격에 활용될 수 있고, 그 위험의 정도가 어느 정도 인지를 일반 사용자들이 인지할 수 있도록 수치화하여 제공할 수 있고, 산업 제어 시스템의 운영자가 신규 취약점이 자신이 운영하는 시스템에 미칠 수 있는 영향도를 직관적으로 인지할 수 있도록 할 수도 있다.
이상에서와 같이 본 발명에 따른 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
200: 위험도 산출 장치 201: 취약점 정보
202: 운영자 모니터링 시스템 210: 취약점 정보 수집 모듈
220: 취약점 정보 파싱 모듈 230: 공격벡터 생성 모듈
240: 취약점 검색 모듈
250: ICS 시스템 운영환경 특징 수집 모듈
260: 위험도 산출 모듈 270: 데이터베이스
410: Base Metric Group 420: Temporal Metric Group
430: Enviromental Metric Group 1010: 통신부
1020: 프로세서 1030: 메모리

Claims (18)

  1. 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 상기 적어도 하나의 키워드에 상응하는 공격벡터를 생성하는 단계;
    타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집하는 단계;
    상기 운영환경 특징 중 상기 적어도 하나의 키워드에 매칭되는 취약점 특징 및 상기 취약점 특징에 적용된 가중치를 고려하여 상기 공격벡터에 대한 타겟화된 위험도를 산출하는 단계; 및
    상기 타겟 산업 제어 시스템의 운영자 모듈로 상기 타겟화된 위험도를 제공하는 단계
    를 포함하고,
    상기 가중치는
    운영환경 특징 별로 적용된 가중치 중 상기 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응하고,
    상기 타겟화된 위험도는
    상기 공표된 취약점에 의한 범용적인 위험도에 상기 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 상기 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  2. 청구항 1에 있어서,
    상기 적어도 하나의 키워드는
    기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 상기 공표된 취약점에서 추출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  3. 청구항 1에 있어서,
    상기 공표된 취약점은
    취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  4. 청구항 1에 있어서,
    상기 타겟화된 위험도는
    상기 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  5. 삭제
  6. 삭제
  7. 청구항 2에 있어서,
    상기 운영환경 특징은
    상기 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 상기 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  8. 청구항 1에 있어서,
    상기 적어도 하나의 키워드는
    제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  9. 청구항 1에 있어서,
    상기 위험도 산출 방법은
    상기 운영환경 특징 중 상기 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 상기 타겟 산업 제어 시스템은 상기 공표된 취약점에 대해 위험도가 없다고 판단하는 단계를 더 포함하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 방법.
  10. 공표된 취약점을 기반으로 적어도 하나의 키워드를 수집하고, 상기 적어도 하나의 키워드에 상응하는 공격벡터를 생성하고, 타겟 산업 제어 시스템에서 현재 사용중인 운영환경에 상응하는 운영환경 특징을 수집하고, 상기 운영환경 특징 중 상기 적어도 하나의 키워드에 매칭되는 취약점 특징 및 상기 취약점 특징에 적용된 가중치를 고려하여 상기 공격벡터에 대한 타겟화된 위험도를 산출하고, 상기 타겟 산업 제어 시스템의 운영자 모듈로 상기 타겟화된 위험도를 제공하는 프로세서; 및
    상기 공격벡터 및 상기 운영환경 특징을 저장하는 메모리
    를 포함하고,
    상기 가중치는
    운영환경 특징 별로 적용된 가중치 중 상기 취약점 특징에 상응하는 운영환경 특징에 적용된 가중치에 상응하고,
    상기 타겟화된 위험도는
    상기 공표된 취약점에 의한 범용적인 위험도에 상기 취약점 특징에 적용된 가중치를 적용하여 산출된 제1 위험도와 상기 운영환경 특징 별로 적용된 가중치를 고려한 잠재적 위험도인 제2 위험도를 합산하여 산출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  11. 청구항 10에 있어서,
    상기 적어도 하나의 키워드는
    기정의된 CVSS(COMMON VULNERABILITY SCORING SYSTEM)에서 사용하는 파라미터를 기반으로 상기 공표된 취약점에서 추출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  12. 청구항 10에 있어서,
    상기 공표된 취약점은
    취약점 대상으로의 접근 방식, 취약점 대상 및 취약점 대상의 상세 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  13. 청구항 10에 있어서,
    상기 타겟화된 위험도는
    상기 취약점 특징을 기반으로 도출가능한 공격 경로에 상응하게 산출되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  14. 삭제
  15. 삭제
  16. 청구항 11에 있어서,
    상기 운영환경 특징은
    상기 적어도 하나의 키워드와의 매칭여부를 판단할 수 있도록 상기 기정의된 CVSS에서 사용하는 파라미터를 고려하여 정의되는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  17. 청구항 10에 있어서,
    상기 적어도 하나의 키워드는
    제조사 정보, 제품 정보, 제품 버전 정보 및 설명 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
  18. 청구항 10에 있어서,
    상기 프로세서는
    상기 운영환경 특징 중 상기 적어도 하나의 키워드와 매칭되는 취약점 특징이 존재하지 않는 경우, 상기 타겟 산업 제어 시스템은 상기 공표된 취약점에 대해 위험도가 없다고 판단하는 것을 특징으로 하는 산업 제어 시스템을 위한 위험도 산출 장치.
KR1020190151489A 2019-11-22 2019-11-22 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 KR102324489B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190151489A KR102324489B1 (ko) 2019-11-22 2019-11-22 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치
US17/081,414 US20210160273A1 (en) 2019-11-22 2020-10-27 Method for calculating risk for industrial control system and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190151489A KR102324489B1 (ko) 2019-11-22 2019-11-22 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20210063049A KR20210063049A (ko) 2021-06-01
KR102324489B1 true KR102324489B1 (ko) 2021-11-11

Family

ID=75975241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190151489A KR102324489B1 (ko) 2019-11-22 2019-11-22 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치

Country Status (2)

Country Link
US (1) US20210160273A1 (ko)
KR (1) KR102324489B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11156969B1 (en) * 2020-04-24 2021-10-26 MakinaRocks Co., Ltd. Environment factor control device and training method thereof
WO2022047245A1 (en) * 2020-08-27 2022-03-03 Virsec Systems, Inc. Automated application vulnerability and risk assessment
US20230038196A1 (en) * 2021-08-04 2023-02-09 Secureworks Corp. Systems and methods of attack type and likelihood prediction
KR102577809B1 (ko) * 2021-10-08 2023-09-13 한국보안평가 주식회사 산업 기술 유출에 관한 정보를 관리하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
CN114021151B (zh) * 2021-11-17 2022-07-01 山东云天安全技术有限公司 基于Summary长度特征预测工控网漏洞的系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058514A (ja) * 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2014174678A (ja) * 2013-03-07 2014-09-22 Canon Inc 情報処理装置及びその制御方法
KR101442691B1 (ko) * 2013-03-26 2014-09-25 한국전자통신연구원 시스템의 취약점 정량화 장치 및 그 방법
JP2019519018A (ja) * 2016-04-12 2019-07-04 サービスナウ, インコーポレイテッドServiceNow, Inc. ネットワーク化コンピュータシステムアーキテクチャにおけるセキュリティリスクを低減させるための方法および装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101897395B1 (ko) * 2017-02-24 2018-09-10 국방과학연구소 사이버전 시나리오 작성 및 유효성 확인을 위한 표준 데이터 기반 보안 취약점 대응 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058514A (ja) * 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2014174678A (ja) * 2013-03-07 2014-09-22 Canon Inc 情報処理装置及びその制御方法
KR101442691B1 (ko) * 2013-03-26 2014-09-25 한국전자통신연구원 시스템의 취약점 정량화 장치 및 그 방법
JP2019519018A (ja) * 2016-04-12 2019-07-04 サービスナウ, インコーポレイテッドServiceNow, Inc. ネットワーク化コンピュータシステムアーキテクチャにおけるセキュリティリスクを低減させるための方法および装置

Also Published As

Publication number Publication date
KR20210063049A (ko) 2021-06-01
US20210160273A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
KR102324489B1 (ko) 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치
US10708292B2 (en) Vulnerability contextualization
CN107196895B (zh) 网络攻击溯源实现方法及装置
US8839440B2 (en) Apparatus and method for forecasting security threat level of network
CN102523218B (zh) 一种网络安全防护方法、设备和系统
US20160065621A1 (en) Generating Accurate Preemptive Security Device Policy Tuning Recommendations
CN107943949B (zh) 一种确定网络爬虫的方法及服务器
US11336676B2 (en) Centralized trust authority for web application components
CN106716953A (zh) 控制系统中的网络安全风险的动态量化
CN105635126A (zh) 恶意网址访问防护方法、客户端、安全服务器及系统
JP6320329B2 (ja) ホワイトリスト作成装置
JP6058246B2 (ja) 情報処理装置及び情報処理方法及びプログラム
CN110704816B (zh) 接口破解的识别方法、装置、设备及存储介质
CN104038488A (zh) 系统网络安全的防护方法及装置
CN104317672A (zh) 一种系统文件修复的方法、装置及系统
KR101372906B1 (ko) 악성코드를 차단하기 위한 방법 및 시스템
JP2015026182A (ja) セキュリティサービス効果表示システム、セキュリティサービス効果表示方法、及びセキュリティサービス効果表示プログラム
CN110719263B (zh) 多租户dns安全管理方法、装置及存储介质
US20230018096A1 (en) Analysis apparatus, analysis method, and non-transitory computer readable medium storing analysis program
KR101938563B1 (ko) 위험 자산 알림 시스템의 동작 방법
KR101935261B1 (ko) 위험 자산 알림 시스템 및 이의 동작 방법
CN109040089B (zh) 网络策略审计方法、设备及计算机可读存储介质
CN111949363A (zh) 业务访问的管理方法、计算机设备、存储介质及系统
Babbar et al. Framework and methodological solutions for cyber security in Industry 4.0
CN113872959B (zh) 一种风险资产等级判定和动态降级方法和装置及设备

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)