KR102265137B1 - 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템 - Google Patents

자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템 Download PDF

Info

Publication number
KR102265137B1
KR102265137B1 KR1020200159060A KR20200159060A KR102265137B1 KR 102265137 B1 KR102265137 B1 KR 102265137B1 KR 1020200159060 A KR1020200159060 A KR 1020200159060A KR 20200159060 A KR20200159060 A KR 20200159060A KR 102265137 B1 KR102265137 B1 KR 102265137B1
Authority
KR
South Korea
Prior art keywords
flow
resource
usage
correlation coefficient
minimum
Prior art date
Application number
KR1020200159060A
Other languages
English (en)
Other versions
KR20210067899A (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 KR20210067899A publication Critical patent/KR20210067899A/ko
Application granted granted Critical
Publication of KR102265137B1 publication Critical patent/KR102265137B1/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/55Detecting local intrusion or implementing counter-measures
    • 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

Abstract

산업 자동화 및 제어시스템(IACS, Industrial Automation and Control System) 환경에서 프로세스 화이트리스트와 IACS 리소스 플로우를 연계하여 보안 감시를 수행하는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 관한 것으로서, 상기 운영장치 상의 프로세스에 대한 리소스 정보를 수집하는 리소스정보 수집부; 프로세스를 분류하는 프로세스 분류하는 프로세스 분류부; 각 프로세스의 플로우에 대한 정책을 설정하는 플로우 정책설정부; 실행되는 프로세스 플로우에 대한 통계치를 추출하는 플로우 통계부; 및, 통계치를 이용하여 이상징후를 감지하는 플로우 보안분석부를 포함하는 구성을 마련한다.
상기와 같은 시스템에 의하여, 프로세스별 CPU 사용량(Clock ticks), 메모리 사용량, 디스크 사용량, 네트워크 사용량과, 핸들(Handle), 쓰레드(Thread), 동적 링크 라이브러리(DLL), 자식 프로세스(Child Process) 정보를 포함하는 비교 프로세스 리스트를 구성함으로써, 기준 화이트리스트와의 비교를 쉽게 하여 이상징후 감지에 대한 처리속도를 향상시킬 수 있다.

Description

자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템 { A Security Monitoring System using Resource Flow for automation control system }
본 발명은 산업 자동화 및 제어시스템(IACS, Industrial Automation and Control System) 환경에서 IACS 리소스 플로우를 연계하여 보안 감시를 수행하는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 관한 것이다.
일반적인 IACS(Industrial Automation and Control System) 네트워크는 운영장치(HMI, EWS 등), 제어장치(PLC, DCS, RTU 등), 현장장치(센서, 액츄에이터 등)로 구성되며 산업용 제어프로토콜(EtherNet/IP, EtherCat, Modbus, Profinet, S7 Comm 등)을 사용하여 통신한다.
IACS 운영장치는 관리자가 개입하지 않는 한 환경설정에 따라 산업용 제어프로토콜을 이용하여 제어장치를 자동으로 제어하고 운영한다.
IACS 운영장치에 대한 악성코드 감염을 예방하기 위해서, 종래기술에 따른 블랙리스트 기반인 백신을 사용하거나 정상적인 프로세스를 화이트리스트로 구성하여 모니터링할 수 있다[특허문헌 1,2].
또한, 운영장치의 이상징후를 감지하기 위해, 프로세서(CPU) 사용량, 메모리(Memory) 사용량, 디스크(Disk) 사용량, 네트워크(Network) 사용량 등 시스템 리소스에 대한 성능을 모니터링할 수 있을 것이다.
그러나 시스템 프로세스나 응용 프로세스는 프로세스 소유자 권한을 확인하면 명확히 구분되지만 프로세스 특성을 판단할 기준이 없으며, 자동 제어 프로세스(Automation and Control Process)에서 처럼 정의된 단순한 정보 요청과 응답에 따른 정보 저장과 같이 비슷한 부하의 작업을 순차적으로 수행하는 프로세스, 요청의 결과인 응답에 따라 작업을 수행하고 스케줄링에 따라 다른 요청을 수행하는 프로세스, 이벤트 발생에 따라 작업을 수행하는 프로세스 등의 특성을 구분하기는 어렵다.
즉, 비정상 프로세스를 탐지하기 위하여 프로세스 화이트리스트와 파일 정보를 사용하고 시스템 리소스에 대한 모니터링 기능을 제공하는 종래 기술은, 일반적인 IT 시스템에 공통적으로 적용할 수 있는 시스템 모니터링 방법이 대부분이며, IACS 환경에서 자동 제어 프로세스의 작업 특성에 따른 시스템 이상징후 인지 기준을 명확히 제시하지 못하는 문제점이 있다.
대한민국 등록특허 10-1899149(2018년 09월 10일) 대한민국 공개특허 10-1838973(2018년 03월 13일)
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 기준 화이트리스트와 비교 프로세스 리스트를 효율적으로 구성하는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 IACS 프로세스 특성에 따라 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스, 비정규성(Non-Normal) 프로세스로 분류하고 분류에 따라 각기 다른 기준으로 프로세스의 이상 징후를 감지하는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 자동화 제어 네트워크 환경에서, 운영장치와 연동되는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 관한 것으로서, 각 프로세스별 리소스 사용량을 수집하되, 단위시간당 리소스 사용량을 시간순으로 측정하여 일련의 리소스 사용량을 수집하는 리소스정보 수집부; 각 프로세스의 사전에 정해진 기준 시간 동안의 일련의 프로세서 사용량에 대하여, 해당 프로세스의 왜도와 첨도를 구하고, 구한 왜도와 첨도를 이용하여 해당 프로세스를 분류하는 프로세스 분류부; 각 프로세스의 상기 기준 시간 동안의 일련의 리소스 사용량에 대하여, 해당 리소스 사용량의 통계치를 구하고, 통계치를 이용하여, 임계치 범위를 포함하는 기준범위를 구하고, 기준범위를 보안 정책으로 설정하는 플로우 정책설정부; 실행되는 프로세스의 일련의 리소스 사용량 및 해당 사용량의 통계치를 추출하는 플로우 통계부; 및, 실행되는 프로세스의 리소스 사용량 또는 해당 사용량의 통계치가 상기 기준범위를 벗어나면 이상징후로 감지하는 플로우 보안분석부를 포함하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 리소스정보 수집부는 상기 프로세서 사용량을, 해당 프로세스가 프로세서를 점유할 때의 CPU 클록틱 수를 합산하여 측정하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 프로세스 분류부는 왜도 γ가 γ > 0 이고 γ > γbasebase 는 사전에 설정된 기준 왜도율)이거나, γ < 0 이고 γ < -γbase이면, 비정규성 프로세스로 분류하고, 비정규성 프로세스가 아닌 나머지 프로세스를 첨도에 따라 주기성 프로세스, 정규성 프로세스, 유사 정규성 프로세스로 분류하되, 첨도 β가 β < 0 이고 β < -βbasebase 는 사전에 설정된 기준 첨도율)이면 유사 정규성 프로세스로, β > 0 이고 β > βbase 이면 주기성 프로세스로 분류하고, -βbase β ≤ βbase 는 정규성 프로세스로 분류하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 왜도 γ와 첨도 β는 [수식 1]에 의해 구하는 것을 특징으로 한다.
[수식 1]
Figure 112020126518919-pat00001
Figure 112020126518919-pat00002
단, x는 리소스 사용량이고, μ와 σ는 각각 리소스 사용량 x의 평균과 표준편차이고, E()는 기대값을 나타냄.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소값과 최대값을 추출하고, 추출된 최소값과 최대값의 표준점수를 각각 최소 표준점수와 최대 표준점수로 설정하고, 상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량의 표준점수가 상기 최소 표준점수와 최대 표준점수 내의 범위에 속하는 경우에만, 해당 리소스 사용량을 보안 분석에 사용하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 표준점수는 평균과 표준편차에 의해 정규화 되고, 상기 플로우 보안분석부는 리소스 사용량의 표준점수를 구할 때, 기준 시간 동안에 수집되어 추출된 평균과 표준편차를 이용하여 표준점수를 구하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소 임계치와 최대 임계치를 구하되, 최소 임계치와 최대 임계치는 분류된 프로세스의 종류에 따라 달리 설정되고, 상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량이 상기 최소 임계치와 최대 임계치 내의 범위에서 벗어나면 이상 징후로 판단하는 것을 특징으로 한다.
본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 최소 임계치 Pmin과 최대 임계치 Pmax는 [수식 2]에 의해 구하는 것을 특징으로 한다.
[수식 2]
Figure 112020126518919-pat00003
단, μ0, 는 평균, σ0 표준편차, r1과 r2는 상관계수를 나타내며, 상관계수 r1과 r2은 분류된 프로세스별로 사전에 설정된 값임.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 주기성 프로세스의 상관계수는 정규성 프로세스의 상관계수 보다 작게 설정하고, 유사성 프로세스의 상관계수는 정규성 프로세스의 상관계수 보다 크게 설정하고, 유사 정규성 프로세스인 경우, 음의 왜도이면 상관계수 r1이 상관계수 r2 보다 작게 설정하고, 양의 왜도이면 상관계수 r1이 상관계수 r2 보다 크게 설정하되, 크기가 작은 상관계수는 주기성 프로토콜의 상관계수 보다 크고 정규성 프로토콜의 상관계수 보다 작게 설정하고, 크기가 큰 상관계수는 정규성 프로토콜의 상관계수 보다 크고 유사 정규성 프로토콜의 상관계수 보다 작게 설정하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소 성능변화와 최대 성능변화를 구하되, 성능변화는 전체 사용량 대비 해당 프로세스의 사용량에 의해 구하고, 상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량의 성능변화를 산출하고, 산출된 성능변화가 상기 최소 성능변화와 최대 성능변화 내의 범위에서 벗어나면 이상 징후로 판단하는 것을 특징으로 한다.
또한, 본 발명은 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서, 최소 성능변화 Trandmin와 최대 성능변화 Trandmax는 [수식 3]을 적용하여 산출되는 것을 특징으로 한다.
[수식 3]
Figure 112020126518919-pat00004
단, Sb는 기준시간(학습구간) 프로세스별 사용량이고, Tb는 기준시간 전체 사용량이고, ()min, ()max 는 ()안의 값의 최소값과 최대값을 나타냄.
상술한 바와 같이, 본 발명에 따른 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 의하면, 프로세스별 CPU 사용량(Clock ticks), 메모리 사용량, 디스크 사용량, 네트워크 사용량과, 핸들(Handle), 쓰레드(Thread), 동적 링크 라이브러리(DLL), 자식 프로세스(Child Process) 정보를 포함하는 비교 프로세스 리스트를 구성함으로써, 기준 화이트리스트와의 비교를 쉽게 하여 이상징후 감지에 대한 처리속도를 향상시킬 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 의하면, 기준 화이트리스트에 대한 첨도율과 왜도율을 기반으로 프로세스들을 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스, 비정규성(Non-Normal) 프로세스로 분류하여 이상 징후를 감시함으로써 IACS 운영장치에 대한 분석력을 높여 이상징후 탐지율을 높일 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 의하면, 프로세스별 특성 정보에 대한 판단 기준, 주기성 프로세스에 대한 판단 기준, 정규성 프로세스에 대한 판단 기준, 유사 정규성 프로세스에 대한 판단 기준, 비정규성 프로세스에 대한 판단 기준, 프로세스 트랜드 변환에 대한 판단 기준을 제공함으로써 IACS 운영장치의 리소스 패킷 플로우에 대한 이상징후 탐지에 대한 오탐율을 줄이고 정확성을 높일 수 있는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템의 구성에 대한 블록도.
도 2는 본 발명의 일실시예에 따른 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템의 구성에 대한 블록도.
도 3은 본 발명의 일실시예에 따른 리소스 정보를 수집하는 방법을 설명하는 흐름도.
도 4는 본 발명의 일실시예에 따른 프로세스 플로우 정책을 설정하는 방법을 설명하는 흐름도.
도 5는 본 발명의 일실시예에 따른 프로세스를 보안 감시하는 방법을 설명하는 흐름도.
도 6은 본 발명의 일실시예에 따른 분포 특성에 따른 프로세스 분류를 나타낸 그래프.
도 7은 본 발명의 일실시예에 따른 각 프로세스 분류 별 분포를 그래프.
도 8은 본 발명의 일실시예에 따른 각 프로세스 분류 별 상관계수를 나타낸 표.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성을 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 현장장치를 제어하는 제어장치(300), 제어장치(300)를 제어하는 운영장치(200), 및, 운영장치(200)의 리소스를 모니터링하여 이상 징후를 감지하는 보안감시 시스템(100)으로 구성된다.
먼저, 제어장치(300)는 현장 장치를 제어하는 장치로서, 바람직하게는, PLC(Programmable Logic Controller), DCS(Distributed Control System), RTU(Remote Terminal Unit) 등으로 구성된다. 현장 장치는 센서, 액츄에이터 등 산업 시설 현장에 설치되는 장치이다. 또한, 제어장치(300)는 운영장치(200)로부터 제어 명령을 받아 현장 장치를 제어하고, 현장 장치로부터 운영 정보를 받아 운영장치(200)로 전달하고 보고하는 기능을 수행한다.
다음으로, 운영장치(200)는 제어장치(300)를 제어하는 장치로서, HMI(Human Machine Interface), EWS(Engineering Workstation) 등으로 구성된다. 즉, 운영장치(200)는 제어장치(300)에 제어명령을 내리거나, 제어장치(300)로부터 현장장치의 운영 정보를 수집하여 모니터링한다. 한편, 운영장치(200)와 제어장치(300)는 산업 제어 시스템(ICS, Industrial Control System) 프로토콜을 이용하여 통신한다.
다음으로, 보안감시 시스템(100)은 운영장치(200)의 리소스 정보를 수집하고, 수집된 리소스 정보를 분석하여 이상 징후를 감지한다. 이때, 보안감시 시스템(100)은 운영장치(200)의 리소스 정보를 에이전트(Agent) 방식 또는 에이전트리스(Agentless) 방식으로 수집한다.
다음으로, 본 발명의 일실시예에 따른 IACS 리소스 플로우 기반 보안 감시 시스템(100)의 구성을 도 2를 참조하여 설명한다.
도 2에서 보는 바와 같이, 본 발명의 일실시예에 따른 보안감시 시스템(100)은 운영장치 상의 프로세스의 리소스 정보를 수집하는 리소스정보 수집부(110), 프로세스를 분류하는 프로세스 분류부(121), 각 프로세스의 플로우에 대한 정책을 설정하는 플로우 정책설정부(122), 실행되는 프로세스의 플로우에 대한 통계치를 추출하는 플로우 통계부(131), 통계치를 이용하여 이상징후를 감지하는 플로우 보안분석부(132)로 구성된다.
먼저, 리소스정보 수집부(110)는 운영장치(200)를 모니터링 하여, 감시 대상 프로세스를 선정하고, 해당 프로세스에 대한 리소스 정보를 수집한다.
즉, 리소스정보 수집부(110)는 감시 대상 프로세스를 선정한다. 바람직하게는, 화이트리스트에 의해 통제하는 경우, 화이트리스트에 등록된 프로세스에 대해서만 감시한다. 즉, 감시 대상 프로세스는 화이트리스트에 사전에 등록되어 설정된다. 더욱 바람직하게는, 관리자 등의 명령이나 입력에 의하여 인가된 프로세스를 화이트리스트에 등록한다. 보안감시 시스템(100)은 화이트리스트에 등록된 프로세스만 실행을 허용한다.
더욱 바람직하게는, 모든 프로세스에 대해 무조건 수집하며 관리자에 의해 기관에서 인가된 프로세스(시스템 프로세스 + 인가된 응용 SW 프로세스)만 화이트리스트로 등록한다. 화이트리스트에 포함되지 않은 프로세스는 실행을 차단한다.
또한, 리소스정보 수집부(110)는 운영장치(200)의 리소스 정보를 에이전트(Agent) 방식 또는 에이전트리스(Agentless) 방식으로 수집한다.
프로세스의 리소스 정보는 해당 프로세스가 리소스를 사용하는 양으로서, 단위시간당 사용량을 시간순으로 수집하는 것을 말한다. 특히, 리소스 사용량을 시간순으로 나열하면 플로우(flow)로 볼 수 있다.
또한, 각 프로세스별로 리소스 정보를 수집한다. 특히, 화이트리스트에 등록된 프로세스 별로 리소스 정보를 수집한다.
또한, 리소스 정보는 리소스의 사용량 정보, 리소스의 특성 정보 등으로 구성된다. 또한, 리소스는 프로세서(CPU), 메모리, 디스크, 네트워크 등을 포함한다. 따라서 리소스의 사용량 정보는 프로세서 사용량(또는 점유량, 실행시간), 메모리 사용량, 디스크 사용량, 네트워크 사용량 등으로 구성된다.
먼저, 프로세스의 실행시간(또는 프로세서 사용량)은 해당 프로세스가 CPU(중앙처리장치)의 시스템 자원을 사용하는 실행시간을 말하며, 동시에, 프로세서를 점유한 시간을 말한다. 특히, 프로세스의 실행시간(프로세서 사용량)은 커널모드에서 실행한 시간과 사용자 모드에서 실행한 시간을 모두 포함한다. 이는 다음 수학식과 같다.
[수학식 1]
프로세스 실행시간 = 커널모드 실행시간 + 사용자모드 실행시간
바람직하게는, 프로세스 실행시간은 클록 틱(clock ticks)에 의한 시간 단위로 수집될 수 있다. 클록 틱(clock ticks)은 프로세서(CPU 등)에서 하나의 클록이 발생될 때마다 1씩 증가하는 값으로서, 클록이 일정한 간격으로 발생하므로 시간으로 활용될 수 있다. 이하에서 프로세스 실행시간(또는 프로세서 사용량)을 CPU 클록 틱(CPU clock ticks)으로 나타낸다.
즉, 프로세스의 실행시간(CPU clock ticks)은 해당 프로세스가 CPU(프로세서)를 점유하는 시간으로서, 점유를 종료하는 현재의 클록 틱(clock ticks)에서 점유 전의 이전 클록 틱(clock ticks)을 차감하여 획득될 수 있다. 이를 수학식으로 표현하면, 다음과 같다.
[수학식 2]
Figure 112020126518919-pat00005
여기서, clockticks(n)은 프로세스가 프로세서(CPU)를 n번째 점유 종료 시의 클록 틱을 나타내고, clokticks(n-1)은 프로세스가 프로세서(CPU)를 n번째 점유하기 바로 직전(점유 시작 시)의 클록 틱을 나타내며, CPUclockticks(n)는 프로세서(CPU)를 n번째로 점유한 프로세스의 실행시간이다
한편, 위의 식에 의한 CPU 클록틱은 프로세서(CPU)를 한번 점유할 때의 클록틱이다. t 시간 동안(t시간을 단위시간으로 봄)의 CPU 클록틱은 t 시간 동안 프로세서(CPU)를 점유하였을 때의 각 CPU 클록틱(n)을 구하여 이를 모두 합한 값으로 구해진다. 즉, t시간 동안 k회 점유하였다면, k회의 모든 CPU 클록틱을 합하여 t시간동안의 CPU 클록틱을 구한다.
즉, t시간동안의 CPU 클록틱 수는 해당 프로세스가 단위시간당 프로세서를 점유한 시간(또는 점유한 양)을 나타낸다. 이를 단위시간당 프로세서 사용량(또는 프로세서 사용량, CPU 사용량)이라 부르기로 한다. 즉, CPU 클록틱은 프로세서(CPU)의 사용량 또는 점유량으로 볼 수 있다.
한편, 리소스정보 수집부(110)는 단위시간당 리소스 사용량을 시간순으로 측정하여, 일련의 리소스 사용량을 수집한다. 예를 들어, 단위시간 간격으로 t1, t2, t3, ... 의 시간에 각각 x1, x2, x3, ... 의 리소스 사용량을 측정하여 수집한다.
또한, 프로세서 사용량(또는 CPU 사용량, 프로세서 점유량) 외의 리소스 사용량 정보는 메모리 사용량(Memory bytes), 디스크 읽기/쓰기 사용량(Disk read/write bytes), 네트워크 송수신 사용량(Network send/receive bytes) 등으로 구성된다.
한편, 리소스 정보는 프로세스의 특성 정보를 포함한다. 특성 정보는 프로세스의 핸들(handle) 개수, 쓰레드(Thread) 개수, DLL(dynamic linking library) 개수, 자식 프로세스(Child Process) 개수 등이다.
다음으로, 프로세스 분류부(121)는 프로세서 사용량(CPU 클록틱 등)의 통계치를 이용하여 프로세스를 분류한다. 특히, 기준 시간 범위 동안의 수집된 리소스 정보를 이용하여 통계치를 산출하고, 이를 이용하여 분류한다.
기준시간 범위(또는 학습시간 구간)는 프로세스가 정상적으로 작동할 때 통계치를 획득하기 위한 시간을 나타낸다. 즉, 프로세스가 정상적으로 작동할 때 일정한 시간 동안 리소스의 사용량 또는 특성을 수집하여, 프로세스를 분류하고 해당 프로세스의 통계치를 구하고, 구한 통계치를 이용하여 감시 기준을 설정한다.
구체적으로, 각 프로세스에 대하여 일정한 기준 시간 범위(기준시간 구간)에서의 프로세서 사용량(CPU 클록틱 등)의 왜도율과 첨도율에 따라 분류한다. 왜도율과 첨도율은 프로세서 사용량(CPU 클록틱 등)의 평균과 표준편차를 이용하여 산출된다.
한편, 화이트리스트에 의해 통제하는 경우, 화이트리스트에 등록된 프로세스에 대해서만 분류를 수행한다.
프로세스는 시스템 프로세스와 응용 프로세스, 상주 프로세스와 비상주 프로세스 등 구분할 수 있지만 모든 프로세스를 대상으로 하며 관리자가 모니터링 프로세스 대상을 선택할 수도 있다.
또한 모든 프로세스에 대해 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스, 비정규성(Non-Normal) 프로세스로 분류된다.
구체적으로, 프로세스 분류부(121)는 사전에 설정된 기준 시간 범위에서 CPU 클록틱(CPU Clock ticks)에 대한 평균과 표준편차를 구하여 왜도율과 첨도율을 구하고, 왜도율과 첨도율에 따라 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스, 비정규성(Non-Normal) 프로세스로 분류한다.
단위시간 당 CPU 클록틱(CPU Clock ticks) 등 프로세서 사용량 x에 대하여 평균(mean) μ, 표준편차(standard deviation) σ는 다음과 같이 계산된다.
[수학식 3]
Figure 112020126518919-pat00006
[수학식 4]
Figure 112020126518919-pat00007
여기서, xi는 기준 시간 범위에서 i번째 단위시간 당 CPU 사용량(또는 CPU 클록틱)을 나타낸다. N은 단위 시간에 의한 기준 시간을 나타낸다. 즉, 기준 시간 범위를 단위 시간으로 구분하면, 모두 N개의 단위 시간 구간으로 구분된다.
즉, 기준 시간 범위에서, 단위시간 당 CPU 클록틱(CPU 사용량) x1, x2, ..., xN을 구하고, 이로부터 평균과 표준편차를 구한다. 즉, 단위시간 당 CPU 클록틱 xi는 i번째 점유시간이라 할 수 있다.
왜도(Skewness) γ는 다음과 같이 계산할 수 있다.
[수학식 5]
Figure 112020126518919-pat00008
여기서, E()는 기대값을 나타낸다.
한편, 왜도는 0을 기준으로 γ > 0 인 경우 양의 왜곡도(Positive Skew.), γ < 0인 경우 음의 왜곡도(Negative Skew.)로 본다.
양의 왜곡도(Positive Skew.)(왼쪽으로 치우친 분포)이고 γ > γbase이거나, 음의 왜곡도(Negative Skew.)(오른쪽으로 치우친 분포)이고 γ < -γbase이면, 정규분포로 해석하기 어려우므로, 비정규성(Non-Normal) 프로세스로 분류한다.
여기서, γbase 는 기준 왜도율로서, 사전에 설정된 값이다.
다음으로 비정규(Non-Normal) 프로세스로 분류되지 않는 경우, 정규분포로 해석이 가능한다. 즉, 나머지 프로세스에 대하여, 첨도율(Kurtosis rate)을 이용하여, 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스로 분류한다.
첨도(Kurtosis) β는 다음과 같이 계산할 수 있다.
[수학식 6]
Figure 112020126518919-pat00009
첨도는 정규분포 0을 기준으로 β > 0(양의 첨도)인 경우 고첨(leptokutic), β < 0(음의 첨도)인 경우 저첨(platykutic)으로 본다.
저첨(platykutic)이고 β < -βbase 이면 유사 정규성(Normal-like) 프로세스로, 고첨(leptokutic)이고 β > βbase 이면 주기성(Period) 프로세스로 분류한다. 또한, -βbase β ≤ βbase 는 정규성(Normal) 프로세스로 분류한다.
βbase 는 기준 첨도율로서, 사전에 설정되는 값이다.
또한, 프로세스 분류부(121)는 각 프로세스의 평균 μ, 표준편차 σ, 최대값max x, 최소값 min x 등 통계치를 저장해둔다.
앞서 설명한 바와 같이, 프로세스는 주기성, 정규성, 유사 정규성, 비정규성(음의 왜곡, 양의 왜곡) 등 4가지로 분류된다. 이상징후를 검출할 경우, 각 프로세스의 분류된 종류에 따라 아래의 [수학식 8]의 상관계수 r1, r2에 따라 달라진다. 모든 프로세스에 대해 프로세스별로 [수학식 8]의 상관계수 r1, r2를 정의할 수 있으나 너무 많은 정책 설정이 필요하며 프로세스별로 설정하기도 어렵다. 이 문제를 해결하기 위해 프로세스를 주기성, 정규성, 유사 정규성, 비정규성(음의 왜곡, 양의 왜곡) 등으로 분류하고, 대표되는 상관계수를 적용함으로써 정책 설정을 편리하게 할 수 있다.
다음으로, 플로우 정책설정부(122)는 각 프로세스에 따른 보안 정책을 설정한다. 각 프로세스의 보안 정책은 해당 프로세스의 분류에 따라 그 내용이 달라질 수 있다.
즉, 플로우 정책설정부(122)는 기준 시간 범위(또는 학습 구간)에서 수집된 리소스 사용량을 이용하여 표준편차와 평균 등 통계치를 산출하고, 산출된 통계치를 이용하여 보안 정책의 검출 기준(또는 기준 범위)을 설정한다. 특히, 각 프로세스의 보안 정책은 리소스 별로 산출하여 저장한다.
구체적으로, 측정 오류를 필터링하기 위한 표준점수 범위, 보안 위험 상태를 검출하기 위한 임계치와 성능변화(trand) 범위 등 검출 기준 범위를 보안 정책으로 설정한다. 즉, 각 프로세스에 대한 리소스 별 임계치를 설정하고 통계치를 저장한다.
특히, 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스에 따라 리소스별 임계치를 설정하고 통계값을 저장한다.
구체적으로, 프로세스별 기준 시간 범위(또는 학습 구간)에서 메모리 사용량(Memory bytes)의 평균과 표준편차 μm, σm, 사용량 최소/최대 minm, maxm, 디스크 읽기/쓰기량(Disk read/write bytes)의 평균과 표준편차 μd, σd, 사용량 최소/최대 mind, maxd, 네트워크 송수신량(Network send/receive bytes) 평균과 표준편차 μn, σn, 사용량 최소/최대 minn, maxn 등 통계값을 구하여 저장한다.
이때, 앞서 프로세서 사용량(또는 CPU 클록틱)의 평균과 표준편차를 구한 것과 동일한 방식으로, 기준 시간 범위의 각 리소스 사용량에 대하여 단위 시간당 사용량을 구하고, 이로부터 평균과 표준편차를 구한다.
바람직하게는, 관련 통계값은 각 리소스별 평균과 표준편차로서, 표준점수를 계산하기 위해 보안 정책에 저장해둔다. 이들 통계치를 학습된 통계치라 부르기로 한다.
또한, 플로우 정책설정부(122)는 각 리소스 사용량의 최소값(min)과 최대값(max)을 추출하고, 추출된 최소값 xmin과 최대값 xmax을 이하 수학식 7을 이용하여 표준점수로 환산한다. 표준점수로 환산된 최소값과 최소값을 각각 최소 표준점수 Zmin과 최대 표준점수 Zmax 로 설정하고 기준 필터(filter)로 사용한다.
단위시간당 CPU 클록틱(Clock ticks) 등 리소스 사용량 x에 대한 최소/최대 표준점수 Zmin, Zmax는 다음과 같이 계산할 수 있다.
[수학식 7]
Figure 112020126518919-pat00010
평균 μ0, 표준편차 σ0는 학습의 기준 시간 구간에서 측정된 값으로 이미 학습된 데이터이며, x는 학습 구간의 단위시간당 측정된 값이 x이다. μ, σ, x는 프로세스별로 구한다.
또한, 플로우 정책설정부(122)는 임계치 Pmin, Pmax 를 산출하여 보안정책으로 저장해둔다. 즉, 기준 시간(학습구간)의 평균값에 대해 표준편차로 최소 임계치 Pmin과 최대 임계치 Pmax를 구하며 다음과 같이 계산한다.
[수학식 8]
Figure 112020126518919-pat00011
여기서 μ0, σ0, r은 프로세스별 평균 μ0, 표준편차 σ0, 상관계수 r을 나타낸다. 상관계수 r은 프로세스별로 사전에 설정된 값이다.
상관계수 r은 프로세스별로 달리 설정된다. 예를들면 주기성(Period) 프로세스의 경우 r=1, 정규성(Normal) 프로세스의 경우 r=3, 유사 정규성(Normal-like) 프로세스의 경우 r=4 등으로 설정된다. 즉, 프로세스 특성에 따라 달리 설정할 수 있다. 또한, 음의 왜도인 비정규성(Non-normal) 프로세스의 경우 Pmin의 r=1.5, Pmax의 r=3.5, 양의 왜도인 비정규성(Non-normal) 프로세스의 경우 Pmin의 r=3.5, Pmax의 r=1.5 등으로 설정된다. 즉, 비정규성(Non-normal) 프로세스의 경우, 왜도의 음/양에 따라, 또한, 최소 임계치/최대 임계치에 따라 상관계수 r을 달리 설정할 수 있다.
또한, 플로우 정책설정부(122)는 성능변화의 범위, 즉, 성능변화(Trand)의 최소값 및 최대값도 산출하여 보안정책으로 저장해둔다.
프로세스별 트랜드(Trand)의 기준 범위를 다음 식으로 계산한다. 즉, 전체 성능에 대한 프로세스별 최소 성능변화 Trandmin와 최대 성능변화 Trandmax를 구한다.
[수학식 9]
Figure 112020126518919-pat00012
여기서, Sb는 기준시간(학습구간) 동안의 프로세스별 사용량이고, Tb는 기준시간 동안의 모든 프로세스의 전체 사용량이다. ()min, ()max 는 ()안의 값의 최소값과 최대값을 나타낸다. 감시 기준범위를 설정하기 위한 학습은 여러번 수행될 수 있으며, 각각 학습에서 Sb 와 Tb 가 산출된다.
예를 들어, 학습시간이 1시간이고 기준시간이 5분이면 학습시간 동안 단위시간 당 (Sb/Tb)1, (Sb/Tb)1, ..., (Sb/Tb)12까지 12번이 관측된다. 12번 중 최소 트랜드 (Sb/Tb)min과 최대 트랜드 (Sb/Tb)max를 구한다.
또한, 바람직하게는, 플로우 정책설정부(122)는 각 프로세스의 속성 정보, 핸들 개수, 쓰레드 개수, DLL 개수, 자식 프로세스 개수 등을 수집하고, 해당 속성의 최대 개수 min과 최대 개수 max를 보안정책으로 저장해둔다.
또한, 플로우 정책설정부(122)는 기준 시간 단위에서 보안 정책을 업데이트하는 기능을 수행한다. 즉, 플로우 정책설정부(122)는 보안정책에서 CPU, 메모리(Memory), 디스크(Disk), 네트워크(Network), 핸들(Handle), 쓰레드(Thread), DLL, 자식 프로세스(Child process) 정보를 업데이트하고 종료한다.
다음으로, 플로우 통계부(131)는 비교 시간 범위에서 프로세스의 리소스 사용량에 대한 통계치(또는 특성값)을 산출한다. 특히, 비교 시간 범위 동안의 수집된 리소스 정보를 이용하여 특성값을 산출한다. 비교시간 범위는 프로세스를 감시하는 시간 구간으로서, 비교 구간 또는 감시 구간을 나타낸다.
즉, 비교시간 범위에서 수집 리소스 정보를 프로세스별 특성 정보의 변화에 따라 주기성(Normal) 프로세스 특성, 정규성(Normal) 프로세스 특성, 유사 정규성(Normal-like) 프로세스 특성, 비정규성(Non-normal) 프로세스 특성 등을 산출한다.
구체적으로, 플로우 통계부(131)는 비교 시간 범위 내의 단위시간당 CPU 클록틱(Clock ticks) 등 리소스 사용량에 대한 표준점수와 트랜드를 계산한다. 바람직하게는, 플로우 통계부(131)는 프로세스 리스트가 기준 화이트리스트에 있는지 비교할 수 있다.
먼저, 플로우 통계부(131)는 단위시간당 CPU 클록틱(Clock ticks) 등 리소스 사용량 x에 대한 표준점수(standard score) z는 다음과 같이 계산할 수 있다.
[수학식 10]
Figure 112020126518919-pat00013
평균 μ0, 표준편차 σ0는 학습의 기준 시간 구간에서 측정된 값으로 이미 학습된 데이터이며, x는 현재의 비교 시간 구간의 단위시간당 측정된 값이 x이다.
μ0, σ0, x는 프로세스별로 구하여 사용된다.
다음으로, 플로우 통계부(131)는 각 프로세스별 트랜드(trand)를 산출한다.
[수학식 11]
Figure 112020126518919-pat00014
여기서, Sc는 비교시간 동안의 프로세스별 사용량(CPU 클록틱 등)이고, Tc는 비교시간 동안의 모든 프로세스의 전체 사용량(CPU 클록틱 등)이다.
다음으로, 플로우 보안분석부(132)는 분석 대상의 프로세스에 대하여 리소스 사용량 및 통계치를 보안 정책의 검출 기준과 비교하여 이상 징후를 감지한다. 이때, 분석 대상의 프로세스의 분류를 먼저 확인하고, 프로세스 분류에 따라 비교 방법을 달리 적용한다.
먼저, 플로우 보안분석부(132)는 표준점수 범위로 각 사용량 x를 필터링한다. 프로세스는 주기성(Period) 프로세스, 정규성(Normal) 프로세스, 유사 정규성(Normal-like) 프로세스, 비정규성(Non-normal) 프로세스로 구분되는데, 각 프로세스별로 다음과 같이 필터링 규칙을 적용한다.
[수학식 12]
Figure 112020126518919-pat00015
여기서, Z는 앞서 플로우 통계부(131)에서 구한 x의 표준점수이다. 또한, Zmin 와 Zmax 는 각각 해당 프로세스의 최소 표준점수와 최대 표준점수이다.
즉, 학습 기간 동안 나타난 프로세스별 min, max 값을 기준으로 최소 표준점수 Zmin과 최대 표준점수 Zmax를 벗어나는 값을 판단한다. 수학식 12를 만족하는 사용량 x만 분석에 이용하고, 해당 범위를 벗어나는 사용량 x는 제외된다.
또한, 플로우 보안분석부(132)는 분석 대상의 프로세스의 사용량 x에 대하여 리소스별 임계치와 비교하여 이상 징후를 감지한다.
현재의 임계치 P는 비교 단위 측정치 x이다. 현재 사용량 x 또는 현재 임계치 P는 다음 수학식을 만족해야 한다.
[수학식 13]
Figure 112020126518919-pat00016
단, P=x이며, 비교 단위 측정치이다.
즉, 프로세스별 최소 임계치 Pmin 보다 적거나 최대 임계치 Pmax 보다 클 경우 이상징후로 판정하고 경고를 발생한다.
또한, 플로우 보안분석부(132)는 프로세스별 트랜드(Trand)가 트랜드 범위 내에 있는지를 판단한다.
각 프로세스별 트랜드(Trand)는 다음 수학식을 만족해야 한다.
[수학식 14]
Figure 112020126518919-pat00017
여기서, Trandmin 와 Trandmax 는 각각 프로세스별 최소 성능변화와 최대 성능변화이다.
즉, 현재의 트랜드 변화 Trand가 최소 트랜드 변화 Trandmin 보다 작거나 최대 트랜드 변화 Trandmax 보다 클 경우, 이상 징후로 판단하고 경고를 발생한다.
다음으로, 본 발명의 일실시예에 따른 리소스 정보를 수집하는 방법을 도 3을 참조하여 설명한다. 본 발명에 따른 리소스 정보를 수집하는 방법은 리소스정보 수집부(110)에 의해 수행된다.
도 3에서 보는 바와 같이, 운영장치(200)의 리소스 정보를 에이전트(Agent) 방식 또는 에이전트리스(Agentless) 방식으로 수집한다(S101). 이때, 기준 시간 범위 또는 비교 시간 범위 동안 리소스 정보를 수집한다.
다음으로, 수집된 리소스 정보에서 각 프로세스 별로 CPU 클록틱(CPU Clock ticks)을 계산하고 1차 리소스 정보를 구성한다(S102).
다음으로, 프로세스별 리소스 정보로서, 메모리 사용량(Memory byets), 디스크 읽기쓰기량(Disk read/write byte), 네트워크 송수신량(Network send/receive byte) 등을 2차 리소스 정보로 구성한다(S103).
다음으로, 프로세스 특성 정보로서 프로세스의 핸들(handle) 개수, 쓰레드(Thread) 개수, DLL(dynamic linking library) 개수, 자식 프로세스(Child Process) 개수 등을 3차 리소스 정보로 구성한다(S104).
구성된 리소스 정보는 프로세스 분류부(121) 또는 플로우 통계부(131)로 전달된다. 이때, 프로세스 분류부(121)로 전달되는 리소스 정보는 기준 시간을 기준으로 수집되어 구성되고, 플로우 통계부(131)로 전달되는 리소스 정보는 비교 시간을 기준으로 수집되어 구성된다.
다음으로, 본 발명의 일실시예에 따른 프로세스 플로우 정책을 설정하는 방법을 도 4를 참조하여 설명한다. 본 발명에 따른 프로세스 플로우 정책 설정 방법은 프로세스 분류부(121) 및 플로우 정책설정부(122)에 의해 수행된다.
도 4에서 보는 바와 같이, 먼저 프로세스 분류부(121)는 리소스정보 수집부(110)로부터 프로세스이 리소스 정보를 전달받으면, 기준 화이트리스트에 있는지 검사한다(S201). 만약 기준 화이트리스트에 없는 프로세스인 경우 관리자가 인가된 프로세스인지 비인가된 프로세스인지 재검토한다(S202).
만약 화이트리스트에 있으면 기준 시간 당 관측되지 않는 성능이 있는 지 본다(203). 만약 관측되지 않은 성능은 0이며 비상주 프로세스와 같이 실행되지 않은 경우로 통계에서 제외하고(S204) 관측되는 부분만 통계에 적용한다.
만약 기준 시간당 리소스 성능이 관측되었으면, 프로세스별 기준 시간 범위에서 CPU 클록틱 x에 대한 평균 μ, 표준편차 σ, 최소값 min, 최대값 max를 계산한다(S205).
다음으로, 프로세스별 왜도 γ와 첨도 β를 계산하고 왜도가 -γbase ≤ γ ≤ γbase를 벗어나면 비정규(Non-normal) 프로세스로 분류하고, 왜도가 허용 범위 내면서 첨도가 β > βbase이면 주기성(Period) 프로세스, -βbase ≤ β ≤ βbase이면 정규성(Normal) 프로세스, β > -βbase이면 유사 정규성(Normal-like) 프로세스로 분류한다(S206).
다음으로, 분류된 프로세스별 최소값 min과 최대값 max에 기반하여 최소 표준점수 Zmin과 최대 표준점수 Zmax를 계산한다(S207).
다음으로, 분류된 프로세스별 표준편차 상관계수 r에 기반하여 최소 임계치 Pmin과 최대 임계치 Pmax를 계산한다(S208).
다음으로, 전체 성능 대비 분류된 프로세스별 최소 성능변화 Trandmin과 최대 성능변화 Trandmax를 계산한다(S209).
다음으로, 처리할 2차 리소스 정보가 있는지 점검한다(S210). 만약 2차 처리할 리소스 정보가 있으면 프로세스별 기준 시간 범위에서 메모리 사용량(Memory bytes)의 평균과 표준편차 μm, σm, 최대/최소 사용량 minm, maxm, 디스크 사용량량(Disk read/write bytes)의 평균과 표준편차 μd, σd, 최대/최소 사용량 mind, maxd, 네트워크 사용량(Network send/receive bytes) 평균과 표준편차 μn, σn, 최대/최소 사용량 minn, maxn을 구한다(211).
다음으로 2차 리소스 정보에 대하여 S207, S208, S209 과정을 메모리 사용량, 디스크 사용량, 네트워크 사용량에 따라 반복 수행한다.
만약 처리할 2차 리소스 정보가 없으면, 처리할 3차 리소스 정보가 있는지 점검한다(S212). 만약 3차 리소스 정보가 있으면 핸들(handle) 개수, 쓰레드(Thread) 개수, DLL(dynamic linking library) 개수, 자식 프로세스(Child Process) 개수를 구하고, 그 개수의 최대값과 최소값을 구하여 저장한다(S213). 즉, 최대값과 최소값이 감시 기준 범위(또는 허용 범위)를 나타낸다.
만약 처리할 3차 리소스 정보가 없으면 프로세스 분류부(121)와 플로우 정책설정부(122) 과정을 종료한다.
다음으로, 본 발명의 일실시예에 따른 프로세스를 보안 감시하는 방법을 도 5를 참조하여 설명한다. 본 발명에 따른 보안 감시 방법은 플로우 통계부(131) 또는 플로우 보안분석부(132)에 의해 수행된다.
먼저, 플로우 통계부(131)는 리소스정보 수집부(110)로부터 프로세스(검사 대상 프로세스)의 리소스 정보를 전달받으면, 해당 프로세스가 기준 화이트리스트에 있는지 검사한다(S301).
만약, 해당 프로세스가 기준 화이트리스트에 없으면, 비인가 프로세스 실행 대한 경고를 발생하고(S302) 종료한다.
만약, 해당 프로세스가 기준 화이트리스트에 있는 프로세스이면 프로세스별 특성(속성)에 변화가 허용 범위 내에 있는지 검사한다(S303). 프로세스 특성은 핸들(Handle), 쓰레드(Thread), DLL, 자식 프로세스(Child Process) 등이며, 바람직하게는, 해당 특성의 개수가 허용범위(최소값 min 과 최대값 max 내의 범위) 내에 있는지를 검사한다. 만약 허용 범위를 벗어나면, 프로세스 무결성 변경으로 판단하여 이에 대한 경고를 발생하고(S304) 종료한다.
다음으로, 프로세스별 특성에 변화가 없으면, 해당 프로세스의 표준점수 및 프로세스 트랜드를 계산한다(S305). 특히, 비교 시간당 CPU 클록틱 등 리소스 사용량 x에 대한 표준점수 Zscore를 계산하고 프로세스 트랜드 Trend를 계산한다.
바람직하게는, CPU 클록틱 외에, 메모리, 디스크, 네트워크 등 리소스별 표준점수 및 프로세스 트랜드를 계산할 수 있다
다음으로, 프로세스에 대한 표준점수 Z가 최소 표준점수 Zmin과 최대 표준점수 Zmax 사이의 허용범위 내(Zmin ≤ Z ≤ Zmax) 있는지 검사한다(S306).
만약 표준점수가 허용 범위를 벗어나면, 기준 허용 범위를 벗어난 필터링된다는 경고를 발생하고(S307) 종료한다.
다음으로 프로세스별 한계치 P=x(비교 단위 측정치)가 Pmin 보다 작은지(P < Pmin) 검사한다(S308). 만약 P가 Pmin 보다 작으면, 프로세스 특성에 따른 경고를 발생하고(S309) 종료한다.
바람직하게는, 주기성 프로세스에 대해서는 주기성 증가, 중간자 공격 주의 경고를, 정규성 또는 유사 정규성 프로세스에 대해서는 프로세스의 평균 특성 변경, 비정규성 프로세스에 대해서는 왜곡도 변경 등의 경고를 발생할 수 있다.
다음으로 프로세스별 한계치 P=x(비교 단위 측정치)가 Pmax 보다 큰지(P > Pmax) 검사한다(S310). 만약 P가 Pmax 보다 크면, 프로세스 특성에 따른 경고를 발생하고(S311) 종료한다.
바람직하게는, 주기성 프로세스에 대해서는 주기성 감소, 재연 공격 주의 경고를, 정규성 또는 유사 정규성 프로세스에 대해서는 프로세스의 평균 특성 변경, 비정규성 프로세스에 대해서는 왜곡도 변경 등의 경고를 발생할 수 있다.
다음으로 비교 시간 트랜드 변화 Trand = SC/TC (비교 시간 프로세스 성능/비교 시간 전체 성능)가 기준 시간 최소 트랜드 변화 Trandmin 보다 작은지(Trand < Trandmin) 검사한다(S312). 만약 Trand가 Trnadmin 보다 작으면, 프로세스 성능 저하, 서비스 중지 주의에 대한 경고를 발생하고(S309) 종료한다.
다음으로 비교 시간 트랜드 변화 Trand = SC/TC (비교 시간 프로세스 성능/비교 시간 전체 성능)가 기준 시간 최대 트랜드 변화 Trandmax 보다 큰지(Trand > Trandmax) 검사한다(S312). 만약 Trand가 Trnadmax 보다 크면, 프로세스 부하 발생, 서비스 거부 주의에 대한 경고를 발생하고(S309) 종료한다.
다음으로, 본 발명의 일실시예에 따른 특성에 따른 프로세스 분류에 대해 도 6 및 도 7을 참조하여 설명한다.
본 발명에서는 (S401) 주기성 프로세스와 같이 주기 특성을 갖는 제어 프로세스에 대해 주기의 변화에 따른 재연 공격 가능성이나 중간자 공격 가능성 등을 찾을 수 있을 뿐만 아니라 다른 프로세스들에 대해서도 (S402) 정규성 프로세스, (S403) 유사 정규성 프로세스, (S404) 양의 왜도를 갖는 비정규성 프로세스, (S405) 음의 왜도를 갖는 비정규성 프로세스 등으로 프로세스 특성을 분석하여 프로세스별 이상징후을 분석하고 프로세스들 간의 상호 연관성 등을 분석할 수 있다.
한편, 도 6과 같이, 각 프로세스는 분류에 따라 다른 분포 특성을 보이고 있다. 따라서 프로세스 분류의 각 분포 특성에 따라, 임계치의 범위를 정할 때 상관계수가 달라진다. 이하에서, 각 분류에 따른 상관계수를 정하는 방법을 설명한다.
먼저, 정규성(Normal) 프로세스는 정규분포 특성을 갖는 프로세스를 의미한다. 정규분포의 중앙을 평균 μ라고 하면 평균에서 떨어진 정도(편차)를 표준편차 σ라고 한다.
도 7a에서 보는 바와 같이, 정규 분포에서 -1σ ≤ x ≤ 1σ일 확률은 68.3%, -2σ ≤ x ≤ 2σ일 확률은 95.4%, -3σ ≤ x ≤ 3σ일 확률은 99.7%이며 대부분 사용량은 2σ(95%)내에서 관측된다.
±2σ의 범위를 벗어나는 경우를 이상징후라고 정책으로 설정한다면, 평균에서 양쪽 대칭 구조이므로 r1과 r2는 각각 2가 되며 다음과 같이 계산된다.
Pmin = μ- 2σ, Pmax = μ+ 2σ
즉, 95% 이내에 들어오지 않으면 이상징후로 경고할 수 있다.
다른 실시예로서, 관리자는 필요에 따라 ±2σ을 벗어나는 경우 관심, ±3σ을 벗어나는 경우 주의, ±4σ을 벗어나는 경우 경계 등으로 세분할 수 있다.
바람직하게는, 정규성 프로세스인 경우, 상관계수 r은 1.5에서 3 사이로 정한다. 즉, 정규분포에서 정상의 경우가 90% - 99% 사이로 결정되도록 상관계수를 설정한다.
아래의 각 분류 경우에도 이와 같이, 상관계수를 달리하여 경고 단계의 수준을 여러 개로 구분할 수 있다.
다음으로, 주기성(Period) 프로세스는 정규분포보다 첨도가 높은 프로세스이며 확률 분포가 좁아진다. 예를들면 첨도가 높은 프로세스는 제어시스템에서 0.1초에 명령을 보내는 경우 1분이면 60번의 데이터를 전송하며 프로세스는 60번의 작업이 이루어진다. 실제 관측에서 1분에 57번에서 63번의 데이터 전송이 관측된다고 가정하였을 경우 프로세스는 57번에서 63번의 작업을 하게 되고 대부분 사용량이 ±1σ내에서 관측된다.
도 7b와 같이, 주기성 프로세서의 분포는 ±1σ 범위 내에서 95% 이상 확률을 가진다고 볼 수 있다. 이때, ±1σ의 범위를 벗어나는 경우를 이상징후라고 정책으로 설정한다면, 평균에서 양쪽 대칭 구조이므로 r1과 r2는 각각 1가 되며 다음과 같이 계산된다.
Pmin = μ - σ, Pmax = μ + σ
즉, ±1σ 범위 내에서 95% 이상 확률을 가지면 95% 이내에 들어오지 않으면 이상징후로 경고할 수 있다.
바람직하게는, 주기성 프로세스인 경우, 상관계수 r은 0.8에서 1.5 사이로 정한다. 즉, 정규성 프로세스의 상관계수 보다 작게 결정한다. 바람직하게는, 정규성의 상관계수 보다 50-70% 정도 작도록 설정한다.
다음으로, 유사 정규성(Normal-like) 프로세스는 정규성(Normal)과 비슷하게 해석할 수 있지만 확률 분포가 넓어진다. 도 7c와 같이 ±3σ 내의 확률이 90% 이상, ±4σ 내의 확률이 95% 이상일 수 있다.
±4σ의 범위를 벗어나는 경우를 이상징후라고 정책으로 설정한다면, 평균에서 양쪽 대칭 구조이므로 상관계수 r1과 r2는 각각 4가 되며 다음과 같이 계산된다.
Pmin = μ- 4σ, Pmax = μ+ 4σ
도 7c와 같이 ±4σ 범위 내에서 95% 이상 확률을 가진다고 가정하면 95% 이내에 들어오지 않으면 이상징후로 경고할 수 있다.
바람직하게는, 유사 정규성 프로세스인 경우, 상관계수 r은 3 에서 5 사이로 정한다. 즉, 정규성 프로세스의 상관계수 보다 크게 결정한다. 바람직하게는, 정규성의 상관계수 보다 150-200% 정도 크게 설정한다.
다음으로, 비정규성(Non-Normal) 프로세스는 정규 분포로 해석할 수 있는 범위의 왜도를 벗어난 경우이다. 왜도에 있어 가장 많은 빈도가 나타나는 것이 중앙값이지만 계산의 일관성을 주기 위해 평균값으로 계산한다.
도 7d와 같이 평균에서 양쪽 비대칭 구조이므로 r1과 r2를 달리하여 r1=3.5, r2=2.5로 적용하여 다음과 같이 계산된다.
Pmin = μ- 3.5σ, Pmax = μ+ 2.5σ
아래 그림과 같이 r1=3.5, r2=2.5 범위 내에서 95% 이상 확률을 가진다고 가정하면 95% 이내에 들어오지 않으면 이상징후로 경고할 수 있다.
바람직하게는, 비정규성 프로세스인 경우, 음의 왜도(오른쪽으로 치우친 분포)이면 r1이 r2 보다 크게 설정하고, 양의 왜도(왼쪽으로 치우친 분포)이면 r1이 r2 보다 작게 설정한다.
또한, 비정규성 프로세스인 경우, 한쪽의 상관계수 r은 1 에서 2.5 사이로 정하고, 다른 쪽의 상관계수 r은 2에서 4 사이로 정한다. 즉, 크기가 작은 상관계수는 주기성 프로세스의 상관계수 보다 크고 정규성 프로세스의 상관계수 보다 작게 설정된다. 또한, 크기가 큰 상관계수는 정규성 프로세스의 상관계수 보다 크고 유사 정규성 프로세스의 상관계수 보다 작게 설정된다.
각 프로세스 분류별(종류별) 상관계수가 도 8에 도시되고 있다.
이상, 첨부된 도면을 참조하여 본 개시에 따른 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해하여야 한다.
100 : 보안감시 시스템 110 : 리소스정보 수집부
121 : 프로세스 분류부 122 : 플로우 정책설정부
131 : 플로우 통계부 132 : 플로우 보안분석부
200 : 운영장치 300 : 제어장치

Claims (10)

  1. IACS(Industrial Automation and Control System) 네트워크 환경에서, 운영장치와 연동되는, 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템에 있어서,
    각 프로세스별 리소스 사용량을 수집하되, 단위시간당 리소스 사용량을 시간순으로 측정하여 일련의 리소스 사용량을 수집하는 리소스정보 수집부;
    각 프로세스의 사전에 정해진 기준 시간 동안의 일련의 프로세서 사용량에 대하여, 해당 프로세스의 왜도와 첨도를 구하고, 구한 왜도와 첨도를 이용하여 해당 프로세스를 분류하는 프로세스 분류부;
    각 프로세스의 상기 기준 시간 동안의 일련의 리소스 사용량에 대하여, 해당 리소스 사용량의 통계치를 구하고, 통계치를 이용하여, 임계치 범위를 포함하는 기준범위를 구하고, 기준범위를 보안 정책으로 설정하는 플로우 정책설정부;
    실행되는 프로세스의 일련의 리소스 사용량 및 해당 사용량의 통계치를 추출하는 플로우 통계부; 및,
    실행되는 프로세스의 리소스 사용량 또는 해당 사용량의 통계치가 상기 기준범위를 벗어나면 이상징후로 감지하는 플로우 보안분석부를 포함하고,
    상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소 임계치와 최대 임계치를 구하되, 최소 임계치와 최대 임계치는 분류된 프로세스의 종류에 따라 달리 설정되고,
    상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량이 상기 최소 임계치와 최대 임계치 내의 범위에서 벗어나면 이상 징후로 판단하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  2. 제1항에 있어서,
    상기 리소스정보 수집부는 상기 프로세서 사용량을, 해당 프로세스가 프로세서를 점유할 때의 CPU 클록틱 수를 합산하여 측정하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  3. 제1항에 있어서,
    상기 프로세스 분류부는 왜도 γ가 γ > 0 이고 γ > γbasebase 는 사전에 설정된 기준 왜도율)이거나, γ < 0 이고 γ < -γbase이면, 비정규성 프로세스로 분류하고, 비정규성 프로세스가 아닌 나머지 프로세스를 첨도에 따라 주기성 프로세스, 정규성 프로세스, 유사 정규성 프로세스로 분류하되, 첨도 β가 β < 0 이고 β < -βbasebase 는 사전에 설정된 기준 첨도율)이면 유사 정규성 프로세스로, β > 0 이고 β > βbase 이면 주기성 프로세스로 분류하고, -βbase β ≤ βbase 는 정규성 프로세스로 분류하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  4. 제3항에 있어서,
    상기 왜도 γ와 첨도 β는 [수식 1]에 의해 구하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
    [수식 1]
    Figure 112020126518919-pat00018

    Figure 112020126518919-pat00019

    단, x는 리소스 사용량이고, μ와 σ는 각각 리소스 사용량 x의 평균과 표준편차이고, E()는 기대값을 나타냄.
  5. 제1항에 있어서,
    상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소값과 최대값을 추출하고, 추출된 최소값과 최대값의 표준점수를 각각 최소 표준점수와 최대 표준점수로 설정하고,
    상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량의 표준점수가 상기 최소 표준점수와 최대 표준점수 내의 범위에 속하는 경우에만, 해당 리소스 사용량을 보안 분석에 사용하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  6. 삭제
  7. 제1항에 있어서,
    상기 최소 임계치 Pmin과 최대 임계치 Pmax는 [수식 2]에 의해 구하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
    [수식 2]
    Figure 112021025956442-pat00020

    단, μ0, 는 평균, σ0 표준편차, r1과 r2는 상관계수를 나타내며, 상관계수 r1과 r2은 분류된 프로세스별로 사전에 설정된 값임.
  8. 제7항에 있어서,
    주기성 프로세스의 상관계수는 정규성 프로세스의 상관계수 보다 작게 설정하고, 유사 정규성 프로세스의 상관계수는 정규성 프로세스의 상관계수 보다 크게 설정하고, 비정규성 프로세스인 경우, 음의 왜도이면 상관계수 r1이 상관계수 r2 보다 크게 설정하고, 양의 왜도이면 상관계수 r1이 상관계수 r2 보다 작게 설정하되, 크기가 작은 상관계수는 주기성 프로토콜의 상관계수 보다 크고 정규성 프로토콜의 상관계수 보다 작게 설정하고, 크기가 큰 상관계수는 정규성 프로토콜의 상관계수 보다 크고 유사 정규성 프로토콜의 상관계수 보다 작게 설정하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  9. 제1항에 있어서,
    상기 플로우 정책설정부는 기준 시간 동안의 리소스 사용량의 최소 성능변화와 최대 성능변화를 구하되, 성능변화는 전체 사용량 대비 해당 프로세스의 사용량에 의해 구하고,
    상기 플로우 보안분석부는 실행하는 프로세스의 리소스 사용량의 성능변화를 산출하고, 산출된 성능변화가 상기 최소 성능변화와 최대 성능변화 내의 범위에서 벗어나면 이상 징후로 판단하는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
  10. 제9항에 있어서,
    최소 성능변화 Trandmin와 최대 성능변화 Trandmax는 [수식 3]을 적용하여 산출되는 것을 특징으로 하는 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템.
    [수식 3]
    Figure 112020126518919-pat00021

    단, Sb는 기준시간(학습구간) 프로세스별 사용량이고, Tb는 기준시간 전체 사용량이고, ()min, ()max 는 ()안의 값의 최소값과 최대값을 나타냄.
KR1020200159060A 2019-11-29 2020-11-24 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템 KR102265137B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190156884 2019-11-29
KR20190156884 2019-11-29

Publications (2)

Publication Number Publication Date
KR20210067899A KR20210067899A (ko) 2021-06-08
KR102265137B1 true KR102265137B1 (ko) 2021-06-15

Family

ID=76399564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200159060A KR102265137B1 (ko) 2019-11-29 2020-11-24 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템

Country Status (1)

Country Link
KR (1) KR102265137B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016149131A (ja) * 2015-02-13 2016-08-18 フィッシャー−ローズマウント システムズ,インコーポレイテッド 仮想マシンイントロスペクションを通じたセキュリティ事象検出方法、装置、及び有形コンピュータ可読記憶媒体
JP2016184358A (ja) * 2015-03-26 2016-10-20 株式会社日立システムズ データ分析システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130102221A (ko) * 2012-03-07 2013-09-17 인프라닉스 주식회사 스마트 디바이스 및 센서 단말 기반의 서비스에 대한 사전 장애 감지 디시젼 엔진 시스템 및 방법
KR101838973B1 (ko) 2016-02-17 2018-03-19 동명대학교산학협력단 화이트 리스트를 이용한 에이전트 기반 보안위협 모니터링 시스템
KR101899149B1 (ko) 2018-04-30 2018-09-14 에스엠테크놀러지(주) 비정상 프로세스 감시 및 통제 시스템 및 방법, 상기 방법을 수행하기 위한 기록 매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016149131A (ja) * 2015-02-13 2016-08-18 フィッシャー−ローズマウント システムズ,インコーポレイテッド 仮想マシンイントロスペクションを通じたセキュリティ事象検出方法、装置、及び有形コンピュータ可読記憶媒体
JP2016184358A (ja) * 2015-03-26 2016-10-20 株式会社日立システムズ データ分析システム

Also Published As

Publication number Publication date
KR20210067899A (ko) 2021-06-08

Similar Documents

Publication Publication Date Title
US8850582B2 (en) Security monitoring system and security monitoring method
CN106462702B (zh) 用于在分布式计算机基础设施中获取并且分析电子取证数据的方法和系统
CN111262722A (zh) 一种用于工业控制系统网络的安全监测方法
KR101538709B1 (ko) 산업제어 네트워크를 위한 비정상 행위 탐지 시스템 및 방법
CN108885664A (zh) 信息处理方法、信息处理系统、以及程序
US7636051B2 (en) Status monitor apparatus
CN107888441B (zh) 一种网络流量基线自学习自适应方法
EP3314762B1 (en) Adaptive filtering based network anomaly detection
Kalair et al. Anomaly detection and classification in traffic flow data from fluctuations in the flow–density relationship
KR102265134B1 (ko) 자동화 제어 시스템의 패킷 플로우 기반 보안 감시 시스템
CN112188531A (zh) 异常检测方法、装置、电子设备及计算机存储介质
JP6711710B2 (ja) 監視装置、監視方法および監視プログラム
JP2018139085A (ja) 異常予測方法、異常予測装置、異常予測システムおよび異常予測プログラム
CN115454778A (zh) 大规模云网络环境下的时序指标异常智能监控系统
CN113448805A (zh) 基于cpu动态阈值的监控方法、装置、设备及存储介质
KR102265137B1 (ko) 자동화 제어 시스템의 리소스 플로우 기반 보안 감시 시스템
KR101960755B1 (ko) 미취득 전력 데이터 생성 방법 및 장치
CN106415578A (zh) 日志分析装置和日志分析方法
JP6773725B2 (ja) データ収集システム、データ収集方法及び制御装置
JP2006228779A (ja) 半導体製造装置の管理方法
JP7081953B2 (ja) アラート通知装置およびアラート通知方法
US9054995B2 (en) Method of detecting measurements in service level agreement based systems
CN111651503A (zh) 一种配电网数据异常识别方法、系统及终端设备
CN104756448A (zh) 信息处理装置、信息处理方法和程序
TWI808762B (zh) 異常事件監控方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant