KR20140117753A - 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법 - Google Patents

제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법 Download PDF

Info

Publication number
KR20140117753A
KR20140117753A KR1020130032212A KR20130032212A KR20140117753A KR 20140117753 A KR20140117753 A KR 20140117753A KR 1020130032212 A KR1020130032212 A KR 1020130032212A KR 20130032212 A KR20130032212 A KR 20130032212A KR 20140117753 A KR20140117753 A KR 20140117753A
Authority
KR
South Korea
Prior art keywords
entry
modbus
request message
same
management table
Prior art date
Application number
KR1020130032212A
Other languages
English (en)
Other versions
KR101889502B1 (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 KR1020130032212A priority Critical patent/KR101889502B1/ko
Priority to US13/933,822 priority patent/US9298175B2/en
Publication of KR20140117753A publication Critical patent/KR20140117753A/ko
Application granted granted Critical
Publication of KR101889502B1 publication Critical patent/KR101889502B1/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
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40228Modbus
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법에 관한 것이다. 개시된 비정상 트래픽 탐지 방법은 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 관리 테이블에 존재하는지 검사하는 단계와, 관리 테이블에 세션 정보가 존재하지 않으면 새로운 엔트리를 관리 테이블에 추가하는 단계와, 관리 테이블에 세션 정보가 존재하면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 MODBUS 요청 메시지의 트랜잭션 ID와 동일한지 여부를 검사하는 단계와, 테이블 엔트리와 MODBUS 요청 메시지의 트랜잭션 ID가 동일하지 않으면 수신된 MODBUS 요청 메시지의 데이터와 테이블 엔트리 내의 데이터가 동일한지를 검사하는 단계와, 테이블 엔트리와 MODBUS 요청 메시지의 트랜잭션 ID가 동일하거나 데이터가 동일하면 비정상 트래픽으로 탐지하는 단계와, 테이블 엔트리와 MODBUS 요청 메시지의 데이터가 동일하지 않으면 테이블 엔트리를 MODBUS 요청 메시지의 패킷 정보로 갱신하는 단계를 포함한다. 따라서, 제어시스템 프로토콜 상의 정상적인 서비스 연결을 방해하거나 오류를 유발할 수 있는 형태의 비정상 트래픽을 조기에 탐지하고 대응할 수 있도록 하여 제어시스템 간의 안정적인 연결 서비스를 제공하며, 이는 공격자에 의한 의도적인 행위뿐만 아니라, 시스템 및 네트워크 오류로 인한 비정상 트래픽에 대해서도 신속하게 탐지, 대응할 수 있도록 한다.

Description

제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법{ABNORMAL TRAFFIC DETECTION METHOD ON CONTROL SYSTEM PROTOCOL}
본 발명은 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법에 관한 것으로, 더욱 상세하게는 제어시스템 프로토콜 상의 비정상 트래픽을 조기에 탐지하고 대응할 수 있도록 하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법에 관한 것이다.
제어시스템은 원격지의 시스템을 효율적으로 감시하고, 관리하는 목적으로 사용되는 시스템이며, 전력, 가스, 상하수도, 교통 등의 국가주요시설의 운용에 사용되고 있다. 비공개 제어시스템 프로토콜 표준이 점차 국제 표준으로 공개됨에 따라, 공격자에게 제어시스템 및 네트워크 동작에 대한 더 많은 지식을 제공하게 됨으로써 점차적으로 제어시스템에 대한 사이버침해의 가능성과 위험성이 높아지고 있다. 무엇보다도 제어시스템에 대한 사이버 침해사고 발생 시 국가적 혼란을 야기 시킬 수 있으므로 특별한 보안 관리가 요구된다.
이러한 제어시스템 프로토콜 중 MODBUS는 PLC(Programmable Logic Controller) 제어를 위한 산업용 통신 프로토콜이다. 다양한 전송 매체를 이용하여 클라이언트/서버 기반의 요청/응답(Request/Reply) 통신을 제공하는 용용 계층 메시지 프로토콜이며, 전세계적으로 산업 어플리케이션에서 널리 사용되고 있는 통신 방식 중 하나이다.
MODBUS 프로토콜의 통신 방식은 크게 MODBUS Serial, MODBUS Plus, MODBUS TCP/IP 등으로 나뉘어지며, MODBUS TCP/IP가 개발되기 이전에는 상위 시스템 간의 통신에 MODBUS PLUS를 사용하였다. 그러나, MODBUS TCP/IP가 개발된 이후에는 통신속도와 시스템의 응용성에서 우위를 점하고 있는 MODBUS TCP/IP가 주로 사용되는 통신 방법이 되었다. 그리고 기존부터 사용해온 MODBUS Plus와 MODBUS 232/485는 게이트웨이(Gateway)를 사용해 MODBUS TCP/IP로 변환하여 상위의 시스템과 연결하는 방법이 보편적으로 사용되고 있다.
이처럼, MODBUS는 SCADA 시스템의 일반적인 프로토콜 표준으로 자리 잡아가고 있는 중이나, 문제는 이를 이용한 공격이 손쉽게 가능하다는 점에 있다. 특히, 스턱스넷과 같은 악성코드를 이용해 복잡하게 SCADA 시스템을 공격하는 것이 아니라, SCADA 시스템의 프로토콜인 MODBUS의 취약점을 직접 공격하기에 그 위험성이 더 크다고 할 수 있다.
가령, 디즈멀(Dismal) 공격 도구를 이용하면, 수력발전소 혹은 원자력발전소 등 시설에 따라 어떤 시스템을 사용하고 있는지의 정보를 수집할 수 있다. 즉, 디즈멀에 정보 수집 명령을 내리면 어떤 시스템이든 공격자에게 정보가 전달되며, 악의적인 명령 전달도 가능하다. 따라서, 스턱스넷과 같은 제로데이 공격보다 패킷 조작만으로 공격이 가능한 프로토콜 자체의 문제가 크다고 할 수 있다. 즉, 손쉬운 패킷 조작을 통해서 얼마든지 새로운 형태의 공격이 발생할 수 있는 가능성이 존재한다.
또한, MODBUS 프로토콜은 클라이언트의 요청에 대한 서버의 응답에 대해 인증, 인가에 대한 보안 사항을 고려하지 않았기 때문에, 전력분야에서는 제어 프로토콜 상의 보안 취약점 이외에도 서비스거부 공격 관점에서의 보안사항을 고려하기 시작하였다. 왜냐하면, 몇몇 디바이스의 경우, 브로드캐스트/멀티캐스트(broadcast/multicast)와 같은 일반적인 네트워크 트래픽에 의해서도 크래쉬(crash) 되거나 부하 유발이 가능하기 때문이다.
결론적으로, 의도적 또는 비의도적인 행위로 인하여 주요기반시설 제어시스템의 안전한 시스템 운영을 방해하는 활동에 대한 우려가 증대하고 있으나, 현재 방화벽(Firewall), IDS(Intrusion Detection System), IPS(Intrusion Prevention System) 등의 엔터프라이즈 보안 제품군은 외부 네트워크 경계 영역에 집중되어 있기 때문에 내부 인프라에서 발생되는 문제에 취약한 상태이다. 즉, 내부자 위협을 포함하여 침투경로가 다양해지고 있는 상황에서, 제어망의 경우에도 경계망 보안에 초점이 맞춰져 있어 내부 행위분석의 방안이 미약한 상태이다. 따라서, 제어시스템 간의 안정적인 서비스 제공을 위하여, 제어시스템 프로토콜에 적합한 보안 기법이 요구된다.
대한민국 등록특허공보 10-1023708, 등록일자 2011년 03월 14일.
본 발명은 전술한 바와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 제어시스템 프로토콜 상의 비정상 트래픽을 조기에 탐지하고 대응할 수 있도록 하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법을 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 제 1 관점으로서 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법은, 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 관리 테이블에 존재하는지 검사하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하지 않으면 새로운 엔트리를 상기 관리 테이블에 추가하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 상기 MODBUS 요청 메시지의 트랜잭션 ID와 동일한지 여부를 검사하는 단계와, 상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하지 않으면 수신된 상기 MODBUS 요청 메시지의 데이터와 상기 테이블 엔트리 내의 데이터가 동일한지를 검사하는 단계와, 상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하거나 데이터가 동일하면 비정상 트래픽으로 탐지하는 단계와, 상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 데이터가 동일하지 않으면 상기 테이블 엔트리를 상기 MODBUS 요청 메시지의 패킷 정보로 갱신하는 단계를 포함할 수 있다.
여기서, 상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함할 수 있다.
상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제할 수 있다.
본 발명의 제 2 관점으로서 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법은, 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 관리 테이블 내에 존재하는지 검사하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 상기 MODBUS 요청 메시지의 트랜잭션 ID와 동일한지 여부를 검사하는 단계와, 상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하지 않으면 수신된 상기 MODBUS 요청 메시지의 데이터와 상기 해당 테이블 엔트리 내의 데이터가 동일한지를 검사하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하지 않거나 상기 데이터가 동일하지 않으면 상기 관리 테이블에 새로운 엔트리로 추가하는 단계와, 상기 테이블 엔트리 내의 트랜잭션 ID와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일한 경우와 상기 데이터가 동일한 경우에 비정상 트래픽으로 탐지하는 단계를 포함할 수 있다.
여기서, 상기 수신된 패킷이 MODBUS 응답 메시지이면 세션 정보가 상기 관리 테이블 내에 존재하는지 검사하는 단계와, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하면 해당 엔트리를 삭제하는 단계와, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지 않는 경우, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지만 동일한 트랜잭션 ID를 갖는 엔트리가 등록되어 있지 않는 경우에 비정상 트래픽으로 탐지하는 단계를 더 포함할 수 있다.
상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함할 수 있다.
상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제할 수 있다.
본 발명의 제 3 관점으로서 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법은, 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 익셉션(Exception) 테이블에 존재하는지 검사하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하면 상기 MODBUS 요청 메시지의 데이터와 상기 익셉션 테이블에 존재하는 엔트리 내의 데이터가 동일한지를 검사하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하지 않거나, 존재하더라도 상기 데이터가 동일하지 않으면 상기 익셉션 테이블에 해당 메시지의 정보를 갖는 새로운 엔트리를 추가하는 단계와, 상기 관리 테이블에 상기 세션 정보가 존재하고 상기 데이터가 동일한 엔트리가 존재하면 비정상 트래픽으로 탐지하는 단계를 포함할 수 있다.
여기서, 상기 수신된 패킷이 MODBUS 응답 메시지이면 세션 정보가 상기 관리 테이블 내에 존재하는지 검사하는 단계와, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지 않으면 비정상 트래픽으로 탐지하는 단계와, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하고 동일한 트랜잭션 ID를 갖는 엔트리가 존재하면 상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내는지 여부를 검사하는 단계와, 상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내면 해당 엔트리의 정보를 바탕으로 익셉션 엔트리를 생성하고 익셉션 테이블에 추가하는 단계를 더 포함할 수 있다.
상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내지 않거나 상기 익셉션 엔트리를 상기 익셉션 테이블에 추가한 후에 상기 관리 테이블의 엔트리를 삭제하는 단계를 더 포함할 수 있다.
상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함할 수 있다.
상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제할 수 있다.
본 발명은 제어시스템 프로토콜 상의 정상적인 서비스 연결을 방해하거나 오류를 유발할 수 있는 형태의 비정상 트래픽을 조기에 탐지하고 대응할 수 있도록 하여 제어시스템 간의 안정적인 연결 서비스를 제공한다. 이는 공격자에 의한 의도적인 행위뿐만 아니라, 시스템 및 네트워크 오류로 인한 비정상 트래픽에 대해서도 신속하게 탐지, 대응할 수 있도록 한다.
이는 제어시스템 간 송수신 메시지를 추적, 관리하고, 이를 통한 비정상 트래픽 유형을 분석함으로써 가능하다. 따라서, 제어시스템 프로토콜 상의 비정상 트래픽을 조기에 탐지함으로써, 의도적 또는 비의도적인 행위로 인하여 주요기반시설 제어시스템의 안전한 시스템 운영을 방해하는 활동을 차단할 수 있으며, 제어망 내의 보안위협에 대한 신속한 발견 및 대응으로 서비스의 신뢰성과 가용성 확보를 가능케 한다.
도 1은 본 발명의 실시예에 따른 제어시스템 프로토콜 상의 비정상 트래픽 탐지 장치의 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 MODBUS TCP/IP의 ADU를 나타낸 구조도이다.
도 3은 도 2의 MODBUS TCP/IP ADU를 사용한 제어 시스템 간의 통신 방법을 설명하기 위한 흐름도이다.
도 4, 도 5a, 도 5b, 도 6은 도 3에 나타낸 통신 방식에 기초하여 탐지하고자 하는 비정상 트래픽의 유형들을 간략하게 보여준 흐름도이다.
도 7a은 본 발명의 실시예에 따라 비정상 트래픽 유형들을 탐지하기 위한 테이블의 구조도이다.
도 7b는 MODBUS PDU 요청 메시지의 예시도이다.
도 8은 도 4에 나타낸 Type 1 유형에 대한 탐지 기법을 설명하기 위한 흐름도이다.
도 9는 도 5에 나타낸 Type 2 유형에 대한 탐지 기법을 설명하기 위한 흐름도이다.
도 10a와 도 10b는 도 4에 나타낸 Type 1의 탐지 기법에 쓰이는 테이블과 Type2, 3에서 쓰이는 테이블의 엔트리 저장 방식의 차이점을 간략한 예로 보인 도면이다.
도 11은 도 6에 나타낸 Type 3의 비정상 트래픽 유형을 탐지하기 위해서 추가로 사용되는 익셉션 테이블의 구조도이다.
도 12는 도 6에 나타낸 Type 3 유형에 대한 탐지 기법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 제어시스템 프로토콜 상의 비정상 트래픽 탐지 장치의 블록 구성도이다.
본 발명의 실시예에 따른 비정상 트래픽 탐지 장치(100)는 MODBUS TCP/IP 선로 상에서 트래픽을 모니터링할 수 있도록 인라인(in-line) 형태로 선로 중간에 배치하여 패킷들을 중계하도록 배치할 수 있다. 또는 패킷을 모니터링 가능한 어떠한 위치도 가능하다.
이처럼 비정상 트래픽 탐지 장치(100)는 MODBUS 클라이언트와 MODBUS 서버 사이의 위치에 배치되어 MODBUS TCP/IP 통신 구조를 갖는 제어망 내에서의 패킷을 모니터링하고 분석하여 비정상 트래픽을 탐지한다.
이러한 비정상 트래픽 탐지 장치(100)는 TCP 세션 관리부(TCP session Mgmt.)(110), MODBUS 새너티 체크부(sanity check)(120), 메시지 분석부(130) 등을 포함한다.
TCP 세션 관리부(110)는 MODBUS 송수신 메시지에 대해 정상적으로 연결된 TCP 세션에 속하는지를 판별한다.
MODBUS 새너티 체크부(120)는 MODBUS 송수신 메시지에 대해 프로토콜 규약에 대한 단순 위반 여부를 점검한다.
메시지 분석부(130)는 정상적으로 연결된 TCP 세션에 속하면서 MODBUS 프로토콜 규약을 위반하지 않은 MODBUS 송수신 메시지에 대한 분석을 수행하여 MODBUS 통신 상의 비정상 트래픽(abnormal traffic)을 탐지(detection)한다.
도 2는 본 발명의 실시예에 따른 MODBUS TCP/IP의 ADU(Application Data Unit)를 나타낸 구조도이다. 이러한 ADU는 기본적으로 TCP 헤더 위에 존재하게 된다. 이에 대해서는 도 7에 나타낸 MODBUS/TCP 이더넷 패킷(Ethernet Packet)의 구조도를 참조할 수 있다.
도 2에 나타낸 바와 같이, MODBUS TCP/IP ADU(200)는 다시 7Bytes 크기의 MBAP 헤더(MODBUS Application Protocol Header)(210)와 MODBUS PDU(Protocol Data Unit)(220)로 나뉘며, MODBUS PDU(220)는 최소 1byte의 펑션 코드(function code)(221)를 갖는 가변 데이터 사이즈를 가진다.
MBAP 헤더(210)는 트랜잭션 ID(211), 프로토콜 ID(212), 길이(213), 유닛 ID(214) 등의 필드를 가지며, MODBUS PDU(220)는 펑션 코드(221), 가변 데이터(222) 등의 필드를 가진다.
여기서, 트랜잭션 ID(211)는 MODBUS 송수신 메시지에 대한 TCP 세션 내 식별자이다. 프로토콜 ID(212)는 MODBUS 프로토콜을 나타내는 것으로 '0'으로 표시할 수 있다. 길이(213)는 유닛 ID부터 마지막 데이터까지의 길이로 Byte 단위를 이용할 수 있다. 유닛 ID(214)는 시리얼 라인(serial line)과 같은 다른 버스 상에 연결된 원격 시스템에 대한 식별자이다. 펑션 코드(221)는 클라이언트가 요청하고자 하는 명령 코드이다.
이러한 MODBUS TCP/IP ADU(200)에서 길이(213)와 펑션 코드(221)를 제외한 필드들은 클라이언트에서 생성된 값이 서버에서 그대로 복사되어 되돌아 오게 된다.
도 3은 도 2의 MODBUS TCP/IP ADU를 사용한 제어 시스템 간의 통신 방법을 설명하기 위한 흐름도이다.
클라이언트와 서버 사이의 TCP 세션(서버 측 서비스 포트 502)이 연결된 후, 클라이언트는 서버로 요청(Request) 메시지를 송신하게 된다(S301). 이에 따라, 서버는 해당 클라이언트로 적당한 응답(Response)이나 오류(Error) 메시지를 되돌려 주게 된다. 여기에서 정상적인 응답은 응답 메시지의 펑션 코드를 그대로 사용하나, 오류의 경우에는 응답 메시지의 펑션 코드 값에 0x80 값을 더하여 되돌려 주게 된다(S303).
동일 TCP 세션 내에서 트랜잭션 ID는 송수신 메시지에 대한 식별자이며, 요청 마다 서로 다른 식별자 값을 가지고 통신을 수행하게 된다. 이때, 클라이언트의 동일 세션 내 요청 메시지는 트랜잭션 ID로 각각의 송수신 쌍이 구별되기 때문에, 도 3에서와 같이 연속적으로 여러 요청이 전달(S305, S307)된 후, 이에 대한 응답을 단계적으로 수신(S309, S311)하는 것이 가능하다.
도 4, 도 5, 도 6은 도 3에 나타낸 통신 방식에 기초하여 탐지하고자 하는 비정상 트래픽의 유형들을 간략하게 보여준다.
도 4는 동일 TCP 세션 내에서 동일 트랜잭션 ID를 갖는 요청 메시지가 연속적으로 발생하는 경우(Type 1-1)와 트랜잭션 ID는 다르나 동일 펑션 코드와 데이터를 갖는 요청 메시지가 연속적으로 발생하는 경우(Type1-2)를 나타낸다. 즉, 이러한 형태의 의도적인 메시지 변조는 제어 시스템의 정상적인 동작을 방해할 가능성이 존재한다.
도 5a 및 도 5b는 도 4와 같이 연속적인 요청 메시지 발생은 아닐지라도, 동일 TCP 세션 내에서 해당 트랜잭션 ID를 갖는 요청 메시지에 대한 응답이 없는 상태에서 동일 트랜잭션 ID를 갖는 요청 메시지가 다시 발생하는 경우(Type 2-1)와 요청 메시지가 존재하지 않은 상태에서 서버로부터 응답 메시지가 도착하는 경우(Type 2-2), 그리고 마지막으로 트랜잭션 ID는 다르나 이전 펑션 코드와 데이터를 갖는 요청 메시지에 대한 응답이 없는 상태에서 다시 동일한 펑션 코드와 데이터를 갖는 요청 메시지 발생하는 경우(Type2-3)를 나타낸다. 이러한 형태 또한 연속적인 메시지 발생은 아닐지라도, 제어 시스템의 정상적인 동작을 방해할 가능성이 존재한다.
도 6은 클라이언트의 특정 펑션 코드와 데이터를 갖는 요청 메시지에 대해서 이를 수신한 서버가 오류 메시지를 되돌렸으나, 클라이언트가 재차 동일한 펑션 코드와 데이터를 갖는 요청 메시지를 송신하는 경우(Type 3)를 나타낸다. 게다가 이러한 오류 메시지를 유발하는 동일 펑션 코드와 데이터를 갖는 요청 메시지는 상기의 Type 1, 2와 달리 동일 TCP 세션에 국한되지 않는다. 즉, 오류를 유발할 것을 알고 여러 클라이언트에서 동시 다발로 비정상 트래픽을 유발하게 할 가능성이 존재한다.
도 7a은 본 발명의 실시예에 따라 비정상 트래픽 유형들을 탐지하기 위한 테이블 구조를 나타내며, Type 1, Type 2, Type 3의 탐지 기법들에서 동일한 형태로 사용된다. 즉, 상기의 트래픽 유형들을 탐지하기 위해서는 제어시스템 간 송수신 메시지에 대한 관리 및 추적이 요구된다.
도 7a에 나타낸 바와 같이, MODBUS/TCP 이더넷 패킷(400)은 이더넷 헤더(410), IP 헤더(420), TCP 헤더(430), MODBUS ADU(440)를 포함한다.
이처럼 구성되는 MODBUS/TCP 이더넷 패킷(400)의 해당 테이블 엔트리 필드 중에서 IP 헤더(420)는 클라이언트의 IP 주소(SIP: Source IP)(421), 서버의 IP 주소(DIP: Destination IP)(422)를 포함한다. TCP 헤더(430)는 클라이언트의 서비스 포트(sport: source port)(431)를 포함한다. 서버의 서비스 포트는 502이므로 따로 관리할 필요가 없다. 즉, 이는 해당 MODBUS 송수신 메시지가 속한 TCP 세션을 나타내므로, TCP 세션 관리부(110)로부터 별도의 식별 ID를 부여 받아 관리해도 무방하다. 다음으로, MODBUS ADU(440)는 해당 세션 내의 송수신 메시지 식별자인 트랜잭션 ID 필드(441), 유닛 ID와 펑션 코드 및 데이터에 대한 길이 필드(442), 데이터 필드(443)를 포함한다.
여기에서 길이 필드(442)는 10을 넘지 않기 때문에 4bit만 요구되며, 이에 따라 관리되는 데이터 필드 또한 10byte를 넘지 않는다. 이는 도 7b의 MODBUS PDU 요청 메시지의 예와 같이 10byte까지만 비교해도 동일 요청 메시지인지 여부를 파악할 수 있기 때문이다. 즉, 실제 수집된 메시지의 길이가 아무리 크다고 하더라도, 실제 관리 테이블에서는 사이즈 10까지만 관리하게 된다. 이는 제어시스템 간 송수신 메시지 관리를 함에 있어서 효율적인 자원 사용을 가능케 한다.
도 8은 도 4에 나타낸 Type 1 유형에 대한 탐지 기법을 나타낸다.
우선, 패킷이 수신(S501)되면 MODBUS ADU 요청 메시지인지 여부를 판단한다(S503). 이는 수신 패킷의 dport가 502인지 아닌지로 판단 가능하다. 만약 요청 메시지가 아니라면 다음 패킷을 수신하게 된다(S505). 요청 메시지가 맞다면, 해당 패킷의 SIP, DIP, sport 조합 쌍이 관리 테이블에 존재하는지 검사한다(S507). 존재하지 않는다면 새로운 엔트리를 테이블에 추가하고(S509), 존재한다면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 메시지의 트랜잭션 ID와 동일한지 여부를 검사한다(S511). 동일하다면 Type 1-1의 비정상 트래픽을 탐지하게 된다(S513). 만약 트랜잭션 ID가 동일하지 않다면, 수신된 메시지의 유닛 ID부터 10byte 이내의 데이터가 해당 엔트리의 데이터와 동일한지 여부를 검사한다(S515). 동일하다면 Type 1-2의 비정상 트래픽을 탐지하게 된다(S517). 만약 요청 데이터도 동일하지 않다면, 해당 엔트리를 현재 수신된 패킷 정보로 갱신하게 된다(S519). 즉, 세션(SIP/DIP/sport)은 동일하게 존재하며, 현재 수신된 메시지의 트랜잭션 ID와 길이/데이터(Length/Data) 정보로 해당 테이블 엔트리 정보를 갱신하게 된다. 즉, 연속적인 비정상 메시지를 위한 Type 1 테이블 정보는 세션당 하나의 엔트리만 존재하게 된다. 여기에서 탐지 결과에 대한 대응은 해당 메시지를 필터링 하는 방법과 경보만 전달해 주는 방법 등 여러 방법이 존재할 수 있다. 또한 세션당 관리되는 엔트리는 적절한 타이머에 의해서 삭제해 주는 방법과 TCP 세션 관리부(110)로부터 해당 세션이 종료된 정보를 이용하여 삭제해 주는 방법이 존재한다. 이러한 탐지 결과에 대한 대응 부분과 엔트리 삭제 기법은 이하 기법에도 동일하게 적용될 수 있다.
도 9는 도 5에 나타낸 Type 2 유형에 대한 탐지 기법을 나타낸다. 이는 Type 1과 달리 모든 송수신 메시지에 대한 분석을 수행한다.
우선, 패킷이 수신(S601)되면 MODBUS 요청 메시지인지 여부를 판단한다(S603). MODBUS 요청 메시지라면, 수신 패킷의 세션 정보(SIP/DIP/sport)가 테이블 내에 존재하는지 여부를 검사한다(S605). 만약, 존재하지 않는다면 새로운 엔트리가 추가되며(S607), 존재한다면 동일 트랜잭션 ID가 존재하는지를 검사한다(S609). 만약, 수신된 메시지의 트랜잭션 ID와 동일한 값을 갖는 엔트리가 존재한다면, Type 2-1을 탐지하게 된다(S611). 만약, 동일한 트랜잭션 ID를 갖는 엔트리가 존재하지 않는다면, 수신된 메시지의 유닛 ID부터 10byte 이내의 데이터가 동일한 엔트리가 존재하는지 여부를 검사한다(S613). 동일한 엔트리가 존재한다면 Type 2-3의 비정상 트래픽을 탐지하게 된다(S615). 만약 데이터 부분도 동일하지 않다면, 이 또한 새로운 엔트리로 추가하게 된다(S607). 즉, Type 1과 테이블 필드 구성은 동일하나, 동일 세션으로 여러 엔트리가 구성될 수 있다(도 10 참조). 다음으로, 수신 패킷이 MODBUS 응답 메시지인 경우(S617)에도 수신 패킷의 세션 정보가 테이블 내에 존재하는지 여부를 검사한다(S619, S621). 여기서 해당 세션 정보 비교 시, 수신 패킷의 DIP/SIP/dport 조합을 테이블 내의 SIP/DIP/sport 조합과 비교를 해야 한다. 이는 응답 메시지의 경우 서버로부터 클라이언트로 전달되는 메시지이기 때문이다. 만약, 해당 세션 정보를 갖는 엔트리가 존재하지 않거나, 엔트리는 존재하나 동일한 트랜잭션 ID를 갖는 엔트리가 등록되어 있지 않다면 Type 2-2의 비정상 트래픽을 탐지하게 된다(S623). 이와 달리 동일 트랜잭션 ID를 갖는 엔트리가 존재한다면, 해당 엔트리를 삭제하게 된다(S625). 이외에 탐지 결과에 대한 대응이나 기타의 엔트리 삭제 기법은 도 8에서 언급한 내용과 동일하다.
도 10a와 도 10b는 Type 1의 탐지 기법에 쓰이는 테이블과 Type2, 3에서 쓰이는 테이블의 엔트리 저장 방식의 차이점을 간략한 예로 보인다. 도 10a와 같이 트랜잭션 ID가 a이고 펑션 코드가 x인 메시지가 클라이언트에서 서버로 수신된 후에 트랜잭션 ID가 b이고 펑션 코드가 y인 메시지가 클라이언트에서 서버로 수신되었을 때에, 도 10b에 나타낸 바와 같이 Type1 테이블의 경우에는 세션 당 하나의 엔트리가 저장되며, Type 2, 3에서 사용되는 테이블은 세션 당 여러 개의 엔트리가 저장되는 방식으로 사용됨으로써, 탐지 기능을 수행하게 된다.
도 11은 Type 3의 비정상 트래픽 유형을 탐지하기 위해서 추가로 사용되는 익셉션(exception) 테이블 구조를 나타내며, 이는 기존 테이블에서 DIP(422)와 길이(442) 및 데이터(443) 만을 사용할 수 있다. 이에 대한 사용 기법은 도 12에서 기술된다.
도 12는 Type 3 유형에 대한 탐지 기법을 나타낸다. 이는 Type 2와 마찬가지로 모든 송수신 메시지에 대한 분석을 수행한다.
우선, 패킷이 수신(S701)되면 MODBUS 요청 메시지인지 여부를 판단한다(S703). MODBUS 요청 메시지라면, 해당 메시지의 DIP가 익셉션(Exception) 테이블에 존재하는 여부를 검사한다(S705). 존재한다면, 수신된 메시지의 유닛 ID부터 10byte 이내의 데이터가 동일한 엔트리가 존재하는지 여부를 검사한다(S707). 동일한 엔트리가 존재한다면 Type 3의 비정상 트래픽을 탐지하게 된다(S709). 만약 해당 DIP를 갖는 엔트리가 존재하지 않거나, 존재하더라도 데이터 부분이 동일하지 않다면, Type 3 테이블에 해당 메시지의 정보를 갖는 새로운 엔트리를 추가하게 된다(S711).
다음으로, 수신 패킷이 MODBUS 응답 메시지인 경우(S713)에는 수신 패킷의 세션 정보가 Type 3 테이블 내에 존재하는지 여부를 검사한다. 여기서 해당 세션 정보 비교는 Type 2 탐지 기법에서와 같이, 수신 패킷의 DIP/SIP/dport 조합을 테이블 내의 SIP/DIP/sport 조합과 비교를 해야 한다(S715).
만약, 해당 세션 정보를 갖는 엔트리가 존재하지 않거나, 엔트리는 존재하나 동일한 트랜잭션 ID를 갖는 엔트리가 등록되어 있지 않는 경우(S717)는 Type 2 유형의 탐지 기법과 같이 처리된다(S719). 이와 달리 동일 트랜잭션 ID를 갖는 엔트리가 존재한다면, 수신된 메시지의 펑션 코드가 오류를 나타내는지 여부를 검사한다(S721). 만약, 오류를 나타내는 경우라면, 해당 엔트리의 정보를 바탕으로 익셉션 엔트리를 생성하고 익셉션 테이블에 추가한다(S723). 그리고, 해당 Type 3 테이블의 엔트리는 삭제한다(S725). 오류를 나타내지 않는 경우에는 Type 3 테이블의 엔트리만 삭제하고 다음의 패킷 분석을 수행하게 된다(S725). 이외에 탐지 결과에 대한 대응이나 Type 3 테이블의 부가적인 엔트리 삭제 기법은 도 8에서 언급한 내용과 동일하다.
상기에서 익셉션 테이블은 결국 오류를 유발하는 요청 타입을 지속적으로 생성하는 비정상 트래픽을 차단하기 위한 테이블로써, 이는 Type 1, 2와 달리 세션의 동일 여부와 상관없이 동작하게 된다. 이러한 익셉션 테이블의 엔트리 삭제는 적절한 타이머를 이용하거나, 관리자에 의해서 조절 가능한 기법 등을 사용하여 관리될 수 있다.
상기와 같은 제어시스템 프로토콜 상의 비정상 트래픽 탐지 기법은 효율적이고 신속한 비정상 트래픽 탐지 기법을 제공하고 대응할 수 있도록 함으로써, 제어시스템 간의 안정적인 통신 서비스를 제공토록 도와준다. 또한, 최소한의 테이블 관리를 통해서 적은 자원으로 동작 가능하므로 하드웨어로의 구현도 가능하다. 무엇보다도, 상기의 비정상 트래픽 탐지 기법은 MODBUS TCP/IP 상에서 발생할 수 있는 여러 유형의 비정상 트래픽을 효율적으로 탐지하는 기법을 제공한다. 또한, 이러한 비정상 트래픽 탐지 기법은 MODBUS Serial 및 MODBUS PLUS 등에도 변경, 적용 가능하다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 비정상 트래픽 탐지 장치
110 : TCP 세션 관리부
120 : MODBUS 새너티 체크부
130 : 메시지 분석부

Claims (12)

  1. 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 관리 테이블에 존재하는지 검사하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하지 않으면 새로운 엔트리를 상기 관리 테이블에 추가하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 상기 MODBUS 요청 메시지의 트랜잭션 ID와 동일한지 여부를 검사하는 단계와,
    상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하지 않으면 수신된 상기 MODBUS 요청 메시지의 데이터와 상기 테이블 엔트리 내의 데이터가 동일한지를 검사하는 단계와,
    상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하거나 데이터가 동일하면 비정상 트래픽으로 탐지하는 단계와,
    상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 데이터가 동일하지 않으면 상기 테이블 엔트리를 상기 MODBUS 요청 메시지의 패킷 정보로 갱신하는 단계를 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  2. 제 1 항에 있어서,
    상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  3. 제 1 항에 있어서,
    상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  4. 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 관리 테이블 내에 존재하는지 검사하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하면 해당 테이블 엔트리 내의 트랜잭션 ID가 수신된 상기 MODBUS 요청 메시지의 트랜잭션 ID와 동일한지 여부를 검사하는 단계와,
    상기 테이블 엔트리와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일하지 않으면 수신된 상기 MODBUS 요청 메시지의 데이터와 상기 해당 테이블 엔트리 내의 데이터가 동일한지를 검사하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하지 않거나 상기 데이터가 동일하지 않으면 상기 관리 테이블에 새로운 엔트리로 추가하는 단계와,
    상기 테이블 엔트리 내의 트랜잭션 ID와 상기 MODBUS 요청 메시지의 트랜잭션 ID가 동일한 경우와 상기 데이터가 동일한 경우에 비정상 트래픽으로 탐지하는 단계를 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  5. 제 4 항에 있어서,
    상기 수신된 패킷이 MODBUS 응답 메시지이면 세션 정보가 상기 관리 테이블 내에 존재하는지 검사하는 단계와,
    상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하면 해당 엔트리를 삭제하는 단계와,
    상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지 않는 경우, 상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지만 동일한 트랜잭션 ID를 갖는 엔트리가 등록되어 있지 않는 경우에 비정상 트래픽으로 탐지하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  6. 제 4 항에 있어서,
    상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  7. 제 4 항에 있어서,
    상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  8. 수신된 패킷이 MODBUS 요청 메시지이면 세션 정보가 익셉션(Exception) 테이블에 존재하는지 검사하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하면 상기 MODBUS 요청 메시지의 데이터와 상기 익셉션 테이블에 존재하는 엔트리 내의 데이터가 동일한지를 검사하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하지 않거나, 존재하더라도 상기 데이터가 동일하지 않으면 상기 익셉션 테이블에 해당 메시지의 정보를 갖는 새로운 엔트리를 추가하는 단계와,
    상기 관리 테이블에 상기 세션 정보가 존재하고 상기 데이터가 동일한 엔트리가 존재하면 비정상 트래픽으로 탐지하는 단계를 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  9. 제 8 항에 있어서,
    상기 수신된 패킷이 MODBUS 응답 메시지이면 세션 정보가 상기 관리 테이블 내에 존재하는지 검사하는 단계와,
    상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하지 않으면 비정상 트래픽으로 탐지하는 단계와,
    상기 관리 테이블 내에 상기 MODBUS 응답 메시지와 동일한 세션 정보를 가지는 엔트리가 존재하고 동일한 트랜잭션 ID를 갖는 엔트리가 존재하면 상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내는지 여부를 검사하는 단계와,
    상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내면 해당 엔트리의 정보를 바탕으로 익셉션 엔트리를 생성하고 익셉션 테이블에 추가하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  10. 제 9 항에 있어서,
    상기 MODBUS 응답 메시지의 펑션 코드가 오류를 나타내지 않거나 상기 익셉션 엔트리를 상기 익셉션 테이블에 추가한 후에 상기 관리 테이블의 엔트리를 삭제하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  11. 제 8 항에 있어서,
    상기 비정상 트래픽으로 탐지된 상기 MODBUS 요청 메시지를 삭제하거나 상기 비정상 트래픽의 탐지를 경보하는 단계를 더 포함하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
  12. 제 8 항에 있어서,
    상기 관리 테이블에 관리되는 상기 테이블 엔트리는, 타이머에 의해 삭제하거나 세션 종료 정보를 이용하여 삭제하는 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법.
KR1020130032212A 2013-03-26 2013-03-26 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법 KR101889502B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130032212A KR101889502B1 (ko) 2013-03-26 2013-03-26 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법
US13/933,822 US9298175B2 (en) 2013-03-26 2013-07-02 Method for detecting abnormal traffic on control system protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130032212A KR101889502B1 (ko) 2013-03-26 2013-03-26 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법

Publications (2)

Publication Number Publication Date
KR20140117753A true KR20140117753A (ko) 2014-10-08
KR101889502B1 KR101889502B1 (ko) 2018-08-20

Family

ID=51621603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130032212A KR101889502B1 (ko) 2013-03-26 2013-03-26 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법

Country Status (2)

Country Link
US (1) US9298175B2 (ko)
KR (1) KR101889502B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170079858A (ko) 2015-12-31 2017-07-10 다운정보통신(주) 자동제어시스템 내 제어신호 분석을 이용한 제어신호 무결성 검증 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062033B (zh) * 2017-11-29 2021-04-30 杭州九略智能科技有限公司 基于Linux系统的工业协议自动化仿真测试系统及方法
CN111224917B (zh) * 2018-11-23 2021-11-23 广州汽车集团股份有限公司 一种汽车网关防火墙报文健康检查方法及网关装置、汽车
WO2021095106A1 (ja) * 2019-11-11 2021-05-20 日本電信電話株式会社 異常検出装置、異常検出方法、及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101023708B1 (ko) 2008-12-30 2011-03-25 한국전기연구원 Modbus 기반 산업용 scada 네트워크의 데이터 보호 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101023708B1 (ko) 2008-12-30 2011-03-25 한국전기연구원 Modbus 기반 산업용 scada 네트워크의 데이터 보호 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Javier Jimenez Diaz, "Using SNORT? for intrusion detection in MODBUS TCP/IP communications", The SANS Institute (2011.12.07.) *
Niv Goldenberg, Avishai Wool, "Accurate Modeling of Modbus/TCP for Intrusion Detection in SCADA Systems", International Journal of Critical Infrastructure Protection (2013.01.04) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170079858A (ko) 2015-12-31 2017-07-10 다운정보통신(주) 자동제어시스템 내 제어신호 분석을 이용한 제어신호 무결성 검증 방법 및 장치

Also Published As

Publication number Publication date
US9298175B2 (en) 2016-03-29
KR101889502B1 (ko) 2018-08-20
US20140297004A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
US10681079B2 (en) Method for mitigation of cyber attacks on industrial control systems
KR101977731B1 (ko) 제어 시스템의 이상 징후 탐지 장치 및 방법
Yang et al. Intrusion detection system for IEC 60870-5-104 based SCADA networks
US9699204B2 (en) Abnormal traffic detection apparatus and method based on modbus communication pattern learning
Yang et al. Rule-based intrusion detection system for SCADA networks
EP2945350B1 (en) Protocol splitter and corresponding communication method
WO2015008282A1 (en) Network protection
US9661006B2 (en) Method for protection of automotive components in intravehicle communication system
KR102112587B1 (ko) 패킷 감시 장치 및 통신 패킷에 대한 패킷 감시 방법
KR101889502B1 (ko) 제어시스템 프로토콜 상의 비정상 트래픽 탐지 방법
KR20140147583A (ko) 산업제어 시스템의 부정 접근을 방지하기 위한 장치 및 그 방법
Taylor et al. Enhancing integrity of modbus TCP through covert channels
Januário et al. Security challenges in SCADA systems over Wireless Sensor and Actuator Networks
KR101881061B1 (ko) 모드 변경이 가능한 양방향 통신 장치 및 방법
KR101871406B1 (ko) 화이트리스트를 이용한 제어시스템의 보안관제 방법 및 이를 위한 시스템
KR101343693B1 (ko) 네트워크 보안시스템 및 그 처리방법
Hareesh et al. Passive security monitoring for IEC-60870-5-104 based SCADA systems
US20100157806A1 (en) Method for processing data packet load balancing and network equipment thereof
US20240146694A1 (en) Automatic firewall configuration for control systems in critical infrastructure
CN102868698B (zh) 用于网络的防御方法及系统
Zhang et al. Construction of Security Control and Protection of Internal and External Networks of Communication Terminals Under the Heterogeneous Network Environment
WO2017082918A1 (en) Redirecting flow control packets
JP2013121094A (ja) プロトコル変換システム
JP2022127966A (ja) ネットワーク監視制御システム、監視制御装置、解析監視サーバ及びネットワーク監視制御方法
CN114793336A (zh) 数据处理方法、相关设备及存储介质

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