KR101950374B1 - 비표준 프로토콜 역공학 분석 장치 - Google Patents

비표준 프로토콜 역공학 분석 장치 Download PDF

Info

Publication number
KR101950374B1
KR101950374B1 KR1020180059769A KR20180059769A KR101950374B1 KR 101950374 B1 KR101950374 B1 KR 101950374B1 KR 1020180059769 A KR1020180059769 A KR 1020180059769A KR 20180059769 A KR20180059769 A KR 20180059769A KR 101950374 B1 KR101950374 B1 KR 101950374B1
Authority
KR
South Korea
Prior art keywords
message
control message
pattern
reverse engineering
response
Prior art date
Application number
KR1020180059769A
Other languages
English (en)
Inventor
장현진
권재식
Original Assignee
뉴브로드테크놀러지(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 뉴브로드테크놀러지(주) filed Critical 뉴브로드테크놀러지(주)
Priority to KR1020180059769A priority Critical patent/KR101950374B1/ko
Application granted granted Critical
Publication of KR101950374B1 publication Critical patent/KR101950374B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Abstract

본 발명은 비표준 프로토콜 역공학 분석 장치에 관한 것으로, IoT(Internet of Things) 메인 디바이스(main device)로부터 송신되는 제어 메시지를 탭핑(tapping)하는 제어 메시지 탭핑부, IoT 엣지 디바이스(edge device)로부터 송신되고 상기 제어 메시지에 응답하는 응답 메시지를 탭핑하는 응답 메시지 탭핑부, 상기 제어 메시지와 상기 응답 메시지가 비표준 프로토콜(protocol) 메시지에 해당하는 경우에는 상기 제어 메시지와 상기 응답 메시지를 연관시켜 학습 데이터를 생성하고, 상기 학습 데이터가 특정 기준 이상 축적되면 상기 제어 메시지를 입력으로 수신하고 상기 응답 메시지를 출력으로 제공하는 기계 학습 모델을 생성하는 프로토콜 역공학 학습부 및 상기 기계 학습 모델을 통해 신규 제어 메시지를 분석하여 해당 제어 패턴을 예측하는 프로토콜 예측 실행부를 포함한다.

Description

비표준 프로토콜 역공학 분석 장치{NON-STANDARD PROTOCOL REVERSE ENGINEERING ANALYSIS APPARATUS}
본 발명은 비표준 프로토콜 역공학 분석 기술에 관한 것으로, 보다 상세하게는 장치들 간의 비표준 프로토콜 통신을 분석하여 역공학을 통해 장치들을 제어할 수 있는 비표준 프로토콜 역공학 분석 장치에 관한 것이다.
RS-485 통신은 버스 방식을 적용할 수 있고 하나의 버스에 여러 개의 포트가 동시에 접속할 수 있어 1 대 N 통신을 수행할 수 있다. RS-485 통신 방식을 홈 네트워킹에 적용하면, 하나의 버스에 여러 가전 제품을 연결하여 중앙 서버에서 그것들을 제어할 수 있다. RS-485는 RS-422와 같은 계열인 규격으로, RS-485는 RS-422를 업그레이드하여 32 대 32까지 다점 사이의 전송이 가능하고 RS-422의 상위 호환으로서 RS-485에 적합한 것은 RS-422에도 적합하다. RS-485의 전송 거리는 최대 1200m이지만, 전송 속도에 의해 바뀌며(10 Mbps:12m, 1 Mbps:120m, 100 Kbps:1200m), 고속 전송이 가능하다.
한국 등록특허공보 제10-0676857(2007.01.25)호는 알에스485 프로토콜을 이용하는 통신장치에 관한 것으로, RS485의 변형 스타(star)형 배선 구조를 채택하고 RS485 통신을 이용하여 홈 네트워킹 등을 구성할 때 종래의 데이지 체인 방식이 갖고 있는 문제점을 극복한 새로운 배선 방식을 도입하였으며, 네트워크상의 한 장치가 고장을 일으키더라도 그 뒤에 연결되어 있는 나머지 장치들이 전혀 영향을 받지 않고 정상적으로 동작할 수 있으면서 고장이 발생한 특정 장치를 쉽게 식별해 낼 수 있다.
한국 등록특허공보 제10-0720359(2007.05.15)호는 알에스485 통신시스템의 통신방법에 관한 것으로, 마스터 통신개체와 슬레이브 통신개체의 통신속도가 다를 경우 슬레이브 통신개체가 마스터 통신개체에서 전송된 데이터를 자신의 통신속도에 따른 데이터와 비교하여 통신속도를 자동으로 설정하여 응답함으로서 통신속도의 초기화시간을 단축하도록 하는데 그 목적이 있다.
한국 등록특허공보 제10-0676857(2007.01.25)호 한국 등록특허공보 제10-0720359(2007.05.15)호
본 발명의 일 실시예는 장치들 간의 비표준 프로토콜 통신을 분석하여 역공학을 통해 장치들을 제어할 수 있는 비표준 프로토콜 역공학 분석 장치를 제공하고자 한다.
본 발명의 일 실시예는 제어 메시지 및 응답 메시지를 미리 정의된 메시지 패턴으로 분류하고 일정 기준 이상 수집된 메시지를 학습할 수 있는 비표준 프로토콜 역공학 분석 장치를 제공하고자 한다.
본 발명의 일 실시예는 장치들 간의 신규 제어 메시지를 기계 학습 모델에 입력하여 출력된 결과를 기초로 해당 제어 패턴을 예측할 수 있는 비표준 프로토콜 역공학 분석 장치를 제공하고자 한다.
실시예들 중에서, 비표준 프로토콜 역공학 분석 장치는 IoT(Internet of Things) 메인 디바이스(main device)로부터 송신되는 제어 메시지를 탭핑(tapping)하는 제어 메시지 탭핑부, IoT 엣지 디바이스(edge device)로부터 송신되고 상기 제어 메시지에 응답하는 응답 메시지를 탭핑하는 응답 메시지 탭핑부, 상기 제어 메시지와 상기 응답 메시지가 비표준 프로토콜(protocol) 메시지에 해당하는 경우에는 상기 제어 메시지와 상기 응답 메시지를 연관시켜 학습 데이터를 생성하고, 상기 학습 데이터가 특정 기준 이상 축적되면 상기 제어 메시지를 입력으로 수신하고 상기 응답 메시지를 출력으로 제공하는 기계 학습 모델을 생성하는 프로토콜 역공학 학습부 및 상기 기계 학습 모델을 통해 신규 제어 메시지를 분석하여 해당 제어 패턴을 예측하는 프로토콜 예측 실행부를 포함한다.
상기 제어 메시지 탭핑부는 상기 IoT 메인 디바이스 및 상기 IoT 엣지 디바이스 간의 메시지 통신에 적용된 통신 속도 및 연결 방식을 검출하고 상기 통신 속도 및 연결 방식을 기초로 상기 제어 메시지를 탭핑할 수 있다.
상기 프로토콜 역공학 학습부는 상기 제어 메시지 및 상기 응답 메시지 각각을 분석하여 적어도 하나의 메시지 패턴으로 분류하여 저장할 수 있다.
상기 프로토콜 역공학 학습부는 상기 제어 메시지 및 상기 응답 메시지 각각에 분류된 메시지 패턴을 적용하여 제어 신호 및 응답 신호를 추출하고, 상기 제어 메시지 및 상기 제어 신호를 입력으로 포함하고 상기 응답 메시지 및 상기 응답 신호를 출력으로 포함하는 상기 학습 데이터를 생성할 수 있다.
상기 프로토콜 역공학 학습부는 상기 적어도 하나의 메시지 패턴 별로 축적된 상기 학습 데이터의 총 용량이 제1 기준 용량을 초과하는 경우 상기 기계 학습 모델을 생성할 수 있다.
상기 프로토콜 역공학 학습부는 상기 적어도 하나의 메시지 패턴 별로 축적된 상기 학습 데이터의 용량 중 가장 작은 용량이 제2 기준 용량을 초과하는 경우 상기 기계 학습 모델을 생성할 수 있다.
상기 프로토콜 예측 실행부는 상기 신규 제어 메시지를 분석하여 상기 적어도 하나의 메시지 패턴으로 분류하고 상기 신규 제어 메시지에 분류된 메시지 패턴을 적용하여 상기 해당 제어 패턴을 예측할 수 있다.
상기 프로토콜 예측 실행부는 상기 분류된 메시지 패턴과 연관된 상기 기계 학습 모델에 상기 신규 제어 메시지를 입력하여 결과로서 획득한 응답 패턴을 상기 해당 제어 패턴으로서 예측할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 비표준 프로토콜 역공학 분석 장치는 제어 메시지 및 응답 메시지를 미리 정의된 메시지 패턴으로 분류하고 일정 기준 이상 수집된 메시지를 학습할 수 있다.
본 발명의 일 실시예에 따른 비표준 프로토콜 역공학 분석 장치는 장치들 간의 신규 제어 메시지를 기계 학습 모델에 입력하여 출력된 결과를 기초로 해당 제어 패턴을 예측할 수 있다.
도 1은 본 발명의 일 실시예에 따른 비표준 프로토콜 역공학 분석 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 비표준 프로토콜 역공학 분석 장치를 나타내는 블록도이다.
도 3은 도 1에 있는 비표준 프로토콜 역공학 분석 장치에서 수행되는 비표준 프로토콜 역공학 분석 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 비표준 프로토콜 역공학 분석 장치에서 수행되는 역공학 분석 과정의 일 실시예를 설명하는 흐름도이다.
도 5는 RS-485 통신의 표준 프로토콜인 Modbus에서 정의하는 데이터 포맷의 예를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
일반적인 산업용 장치들 간의 통신은 제조사에서 정의한 비공개, 비표준 프로토콜이 적용되어 장치들의 제어를 목적으로 활용되고 있다. 비표준 프로토콜을 사용하여 통신을 수행하는 경우 이기종 간의 장비 연동이 불가능하고 제조사가 폐업하는 경우 대체 가능한 장치를 구하기 어려운 문제가 발생할 수 있다. 본 발명의 일 실시예에 따른 비표준 프로토콜 역공학 분석 장치는 더 이상 기술 지원을 받을 수 없는 장치의 RS-485 저수준 데이터를 수집하고 수집된 데이터의 제어 패턴을 기계 학습을 통하여 분석할 수 있으며 해당 장치를 제어 함으로써 특정 장치에 상기와 같은 문제가 발생한 경우 대체 장치로의 안정적인 변경을 가능하게 한다.
도 1은 본 발명의 일 실시예에 따른 비표준 프로토콜 역공학 분석 시스템을 설명하는 도면이다.
도 1을 참조하면, 비표준 프로토콜 역공학 분석 시스템(100)은 메인 디바이스(110), 비표준 프로토콜 역공학 분석 장치(130), 데이터베이스(150) 및 엣지 디바이스(170)를 포함할 수 있다.
메인 디바이스(main device)(110)는 복수의 엣지 디바이스(edge device)(170)들과 연결되어 엣지 디바이스(170)로부터 정보를 수집하고 수집된 정보를 분석하여 엣지 디바이스(170)를 제어하기 위하여 복수의 엣지 디바이스(170)들과 네트워크를 통하여 통신을 수행할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 일 실시예에서, 메인 디바이스(110)는 네트워크를 통해 엣지 디바이스(170)와 연결되어 데이터를 주고 받을 수 있다. 또한, 메인 디바이스(110)는 비표준 프로토콜 역공학 분석 장치(130)와 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 비표준 프로토콜 역공학 분석 장치(130)와 데이터를 주고 받을 수 있다.
비표준 프로토콜 역공학 분석 장치(130)는 디바이스들 간의 비표준 프로토콜 통신을 기계 학습을 이용하여 분석함으로써 디바이스의 제어 패턴을 알 수 있고 해당 디바이스를 제어할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 비표준 프로토콜 역공학 분석 장치(130)는 메인 디바이스(110) 또는 엣지 디바이스(170)와 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 메인 디바이스(110) 또는 엣지 디바이스(170)와 데이터를 주고 받을 수 있다.
일 실시예에서, 비표준 프로토콜 역공학 분석 장치(130)는 데이터베이스(150)를 포함하여 구현될 수 있고, 데이터베이스(150)와 별도로 구현될 수 있다. 데이터베이스(150)와 별도로 구현된 경우 비표준 프로토콜 역공학 분석 장치(130)는 데이터베이스(150)와 연결되어 데이터를 송수신할 수 있다.
데이터베이스(150)는 비표준 프로토콜 역공학 분석 장치(130)가 메인 디바이스(110) 및 엣지 디바이스(170) 간의 통신에 사용되는 비표준 프로토콜을 분석하기 위해서 사용하는 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(150)는 메인 디바이스(110) 및 엣지 디바이스(170) 간의 통신을 통하여 주고 받은 메시지들을 저장할 수 있고, 메인 디바이스(110) 및 엣지 디바이스(170) 간의 통신에 사용된 프로토콜 관련 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 비표준 프로토콜 역공학 분석 장치(130)가 비표준 프로토콜을 분석하여 디바이스들 간의 제어 패턴을 획득하는 과정에서 다양한 형태로 수집 또는 가공한 정보를 저장할 수 있다.
데이터베이스(150)는 특정 범위에 속하는 정보들을 저장하는 적어도 하나의 독립된 서브-데이터베이스들로 구성될 수 있고, 적어도 하나의 독립된 서브-데이터베이스들이 하나로 통합된 통합 데이터베이스로 구성될 수 있다. 적어도 하나의 독립된 서브-데이터베이스들로 구성되는 경우에는 각각의 서브-데이터베이스들은 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 상호 간의 데이터를 주고 받을 수 있다. 통합 데이터베이스로 구성되는 경우에는 각각의 서브-데이터베이스들을 하나로 통합하고 상호 간의 데이터 교환 및 제어 흐름을 관리하는 제어부를 포함할 수 있다.
엣지 디바이스(edge device)(170)는 메인 디바이스(110)와 연결되어 제어 메시지를 송신하고 응답 메시지를 수신할 수 있는 컴퓨팅 장치에 해당하고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 일 실시예에서, 엣지 디바이스(170)는 복수의 센서들과 연결되어 실시간 또는 주기적으로 정보를 수집할 수 있고 모니터링한 내용을 메인 디바이스(110)로 송신할 수 있다. 다른 실시예에서, 엣지 다바이스(170)는 센서를 포함하여 구현될 수 있다. 복수의 엣지 디바이스(170)들은 하나의 메인 디바이스(110)와 연결되어 데이터를 주고 받을 수 있다.
도 2는 도 1에 있는 비표준 프로토콜 역공학 분석 장치를 나타내는 블록도이다.
도 2를 참조하면, 비표준 프로토콜 역공학 분석 장치(130)는 제어 메시지 탭핑부(210), 응답 메시지 탭핑부(230), 프로토콜 역공학 학습부(250), 프로토콜 예측 실행부(270) 및 제어부(290)를 포함할 수 있다.
제어 메시지 탭핑부(210)는 IoT 메인 디바이스(110)로부터 송신되는 제어 메시지를 탭핑할 수 있다. 메시지 탭핑(tapping)은 디바이스들 간의 통신을 모니터링 하기 위해 디바이스들 간의 통신 네트워크의 특정 지점에 삽입되어 메시지를 수집하는 것을 의미한다. IoT 메인 디바이스(110)는 적어도 하나의 엣지 디바이스(170)와 연결되어 IoT 네트워크를 구성할 수 있고, IoT 네트워크를 구성하는 다른 디바이스들을 설정 및 관리하는 마스터 디바이스에 해당할 수 있다. (이하, IoT 메인 디바이스(110)는 메인 디바이스(110)라 한다.)
일 실시예에서, 제어 메시지 탭핑부(210)는 메인 디바이스(110) 및 IoT 엣지 디바이스(170) 간의 메시지 통신에 적용된 통신 속도 및 연결 방식을 검출하고 통신 속도 및 연결 방식을 기초로 제어 메시지를 탭핑할 수 있다. (이하, IoT 엣지 디바이스(170)는 엣지 디바이스(170)라 한다.) 일반적으로 RS-485와 같은 시리얼 통신은 사용되는 통신 속도(Baud Rate)가 미리 정의되어 있다. 하지만, 비표준 프로토콜이 사용되는 디바이스 간의 통신은 프로토콜 뿐만 아니라 통신 속도, 예를 들어, Baud Rate 값도 공개하지 않는 경우가 존재할 수 있다.
제어 메시지 탭핑부(210)는 디바이스들 간의 메시지 통신에 적용된 통신 속도(Baud Rate 값)를 자동으로 검출할 수 있고, 2선식 연결 또는 4선식 연결 중 어떠한 연결 방식을 사용하는지 검출할 수 있다. 2선식 연결은 Half Duplex를 지원하는 2 와이어(Wire) 연결 방식에 해당할 수 있고, 4선식 연결은 Full Duplex를 지원하는 4 와이어 연결 방식에 해당할 수 있다.
응답 메시지 탭핑부(230)는 엣지 디바이스(170)로부터 송신되고 제어 메시지에 응답하는 응답 메시지를 탭핑할 수 있다. 메인 디바이스(110)는 네트워크 상에 연결된 복수의 엣지 디바이스(170)들에게 제어 메시지를 송신할 수 있고 모든 복수의 엣지 디바이스(170)들은 해당 제어 메시지를 수신할 수 있다. 다만, 해당 제어 메시지에 포함된 대상 엣지 디바이스(170)만이 이에 응답할 수 있다. 응답 메시지 탭핑부(230)는 메인 디바이스(110)가 송신한 제어 메시지에 대하여 응답할 수 있는 엣지 디바이스(170)에서 송신된 응답 메시지를 탭핑할 수 있고, 메인 디바이스(110)에서 송신된 제어 메시지와 연관시켜 해당 응답 메시지를 데이터베이스(150)에 저장할 수 있다.
프로토콜 역공학 학습부(250)는 제어 메시지와 응답 메시지가 비표준 프로토콜 메시지에 해당하는 경우에는 제어 메시지와 응답 메시지를 연관시켜 학습 데이터를 생성하고, 학습 데이터가 특정 기준 이상 축적되면 제어 메시지를 입력으로 수신하고 응답 메시지를 출력으로 제공하는 기계 학습 모델을 생성할 수 있다.
프로토콜 역공학 학습부(250)는 제어 메시지와 응답 메시지를 기초로 메인 디바이스(110) 및 엣지 디바이스(170) 간의 통신에서 사용되는 프로토콜이 표준인지 비표준인지 여부를 결정할 수 있다. 특히, 디바이스들 간의 RS-485 통신의 경우 일반적으로 사용되는 표준 프로토콜은 Modbus, Profibus, SAE-J1587, BSAE-J1722 및 BACnet 등을 포함할 수 있다. 비표준 프로토콜 역공학 분석 장치(130)는 프로토콜 역공학 학습부(250)를 통해 표준 프로토콜이 사용된 것으로 결정된 경우 해당 표준 프로토콜에 관한 정보를 제공할 수 있고, 해당 표준 프로토콜을 기초로 디바이스들을 제어하도록 할 수 있다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 제어 메시지 및 응답 메시지 각각을 분석하여 적어도 하나의 메시지 패턴으로 분류할 수 있고 그 결과를 데이터베이스(150)에 저장할 수 있다. 보다 구체적으로, 프로토콜 역공학 학습부(250)는 RS-485 통신의 여러가지 표준 프로토콜 정보를 기초로 제어 메시지와 응답 메시지 간의 공통 패턴을 검출할 수 있고 각 패턴에 포함된 구체적인 데이터를 이용하여 전체 메시지의 패턴을 추정할 수 있다. 프로토콜 역공학 학습부(250)는 추정된 전체 메시지의 패턴을 기초로 미리 정의된 적어도 하나의 메시지 패턴 중 어느 하나로 분류할 수 있다.
예를 들어, 도 5에서 RS-485 통신의 대표적인 표준 프로토콜 중 하나인 Modbus에서 정의하는 데이터 포맷의 예를 확인할 수 있다. 통신 네트워크의 종류와 요청 정보의 형식에 따라 여러가지 프레임 포맷이 존재할 수 있고, 프레임 포맷은 디바이스들 간의 통신을 통해 주고 받는 메시지의 패턴에 해당할 수 있다.
Modbus RTU는 시리얼 통신을 이용하며, 프레임에서는 이진정보를 사용할 수 있다. Modbus ASCII는 시리얼 통신을 이용하지만, 프레임에 ascii 문자를 넣어 통신할 수 있다. 즉, 0을 넣으면 실제 프레임에는 0의 ascii 코드인 48이 한 바이트를 차지하게 된다. Modbus TCP의 unit identifier는 modbus 게이트웨이 내부의 RTU 장비들을 지칭할 목적으로 사용되며, 이런 경우가 아니라면 IP 주소를 사용해 목적지를 인식할 수 있으므로 사용되지 않는다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 제어 메시지 및 응답 메시지 각각에 분류된 메시지 패턴을 적용하여 제어 신호 및 응답 신호를 추출하고, 제어 메시지 및 제어 신호를 입력으로 포함하고 응답 메시지 및 응답 신호를 출력으로 포함하는 학습 데이터를 생성할 수 있다. 프로토콜 역공학 학습부(250)는 분류된 메시지 패턴 정보를 기초로 제어 메시지 또는 응답 메시지로부터 제어 신호 또는 응답 신호에 해당하는 실제 데이터를 추출할 수 있고, 제어 메시지 및 제어 신호로 구성된 입력과 응답 메시지 및 응답 신호로 구성된 출력 쌍을 학습 데이터로서 생성할 수 있다. 프로토콜 역공학 학습부(250)는 생성된 학습 데이터를 분류된 메시지 패턴과 연관시켜 데이터베이스(150)에 저장할 수 있다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 적어도 하나의 메시지 패턴 별로 축적된 학습 데이터의 총 용량이 제1 기준 용량을 초과하는 경우 기계 학습 모델을 생성할 수 있다. 프로토콜 역공학 학습부(250)는 미리 정의된 메시지 패턴 별로 학습 데이터를 분류하여 저장할 수 있고, 각 메시지 패턴 별로 축적된 학습 데이터의 용량의 총합이 제1 기준 용량을 초과하는 경우 해당 학습 데이터들을 이용하여 기계 학습 모델을 생성할 수 있다. 여기에서, 제1 기준 용량은, 예를 들어, 10MB로 설정될 수 있고, 비표준 프로토콜 역공학 분석 장치(130)는 사전에 제1 기준 용량을 결정하여 데이터베이스(150)에 저장할 수 있다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 적어도 하나의 메시지 패턴 별로 축적된 학습 데이터의 총 용량이 다음의 수학식 1을 통해 산출된 제1 기준 용량을 초과하는 경우 기계 학습 모델을 생성할 수 있다.
[수학식 1]
Figure 112018051520859-pat00001
여기에서, Q1은 제1 기준 용량을, P는 미리 정의된 메시지 패턴의 수를, M은 전체 메시지의 평균 길이를, V는 통신 속도를 의미한다. 제1 기준 용량 Q1은 MB 단위를, 전체 메시지의 평균 길이 M은 bits 단위를, 통신 속도 V는 Baud Rate 값을 사용할 수 있다. 제1 기준 용량은 미리 정의된 메시지 패턴의 수, 통신을 통해 전송되는 메시지의 평균 길이 및 통신 속도의 로그값을 각각 곱하여 산출될 수 있다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 적어도 하나의 메시지 패턴 별로 축적된 학습 데이터의 용량 중 가장 작은 용량이 제2 기준 용량을 초과하는 경우 기계 학습 모델을 생성할 수 있다. 프로토콜 역공학 학습부(250)는 각 메시지 패턴 별로 축적된 학습 데이터의 용량의 총합이 제1 기준 용량을 초과하는 경우에도 각 메시지 패턴 별로 축적된 학습 데이터의 용량 중 가장 작은 용량이 제2 기준 용량을 초과하지 않은 경우라면 기계 학습 모델의 생성을 수행하지 않도록 함으로써 기계 학습 모델의 예측 정확도가 일정 수준 이상 유지될 수 있도록 할 수 있다.
여기에서, 제2 기준 용량은, 예를 들어, 제1 기준 용량이 10MB로 설정되고 미리 정의된 메시지 패턴의 수가 5인 경우 10 / 5 = 2MB로 설정될 수 있고, 비표준 프로토콜 역공학 분석 장치(130)는 사전에 결정된 제1 기준 용량 및 메시지 패턴의 수를 기초로 제2 기준 용량을 결정하여 데이터베이스(150)에 저장할 수 있다. 다른 실시예에서, 비표준 프로토콜 역공학 분석 장치(130)는 제1 기준 용량과 상관없이 제2 기준 용량을 결정할 수 있다.
일 실시예에서, 프로토콜 역공학 학습부(250)는 적어도 하나의 메시지 패턴 별로 축적된 학습 데이터의 용량 중 가장 작은 용량이 다음의 수학식 2를 통해 산출된 제2 기준 용량을 초과하는 경우 기계 학습 모델을 생성할 수 있다.
[수학식 2]
Figure 112018051520859-pat00002
여기에서, Q2는 제2 기준 용량을, Mmin은 가장 작은 용량을 가진 학습 데이터와 연관된 메시지 패턴으로 분류된 메시지들의 평균 길이를 의미한다. 제2 기준 용량 Q2는 제1 기준 용량 Q1과 동일한 단위를, Mmin은 전체 메시지 평균 길이 M과 동일한 단위를 사용한다. 제2 기준 용량은 제1 기준 용량을 미리 정의된 메시지 패턴의 수로 나눈 값과 가장 작은 용량을 가진 학습 데이터와 연관된 메시지 패턴으로 분류된 메시지들의 평균 길이를 전체 메시지의 평균 길이로 나눈 값을 곱하여 산출될 수 있다.
프로토콜 예측 실행부(270)는 기계 학습 모델을 통해 신규 제어 메시지를 분석하여 해당 제어 패턴을 예측할 수 있다. 일 실시예에서, 프로토콜 예측 실행부(270)는 신규 제어 메시지를 분석하여 적어도 하나의 메시지 패턴으로 분류하고 신규 제어 메시지에 분류된 메시지 패턴을 적용하여 해당 제어 패턴을 예측할 수 있다. 프로토콜 예측 실행부(270)는 데이터베이스(150)에 저장된 메시지 패턴 정보들을 기초로 신규 제어 메시지를 미리 정의된 메시지 패턴 중 하나로 분류할 수 있고, 신규 제어 메시지에 해당 메시지 패턴을 적용함으로써 해당 제어 패턴을 예측할 수 있다.
일 실시예에서, 프로토콜 예측 실행부(270)는 분류된 메시지 패턴과 연관된 기계 학습 모델에 신규 제어 메시지를 입력하여 결과로서 획득한 응답 패턴을 해당 제어 패턴으로서 예측할 수 있다. 프로토콜 예측 실행부(270)는 신규 제어 메시지를 분석하여 해당 메시지 패턴을 결정할 수 있고, 기계 학습 모델에 신규 제어 메시지 및 신규 제어 신호를 입력하여 출력된 응답 메시지 및 응답 신호를 기초로 응답 패턴을 획득할 수 있고, 응답 패턴을 제어 패턴으로서 예측할 수 있다.
제어부(290)는 비표준 프로토콜 역공학 분석 장치(130)의 전체적인 동작을 제어하고, 제어 메시지 탭핑부(210), 응답 메시지 탭핑부(230), 프로토콜 역공학 학습부(250) 및 프로토콜 예측 실행부(270) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 3은 도 1에 있는 비표준 프로토콜 역공학 분석 장치에서 수행되는 비표준 프로토콜 역공학 분석 과정을 설명하는 순서도이다.
도 3을 참조하면, 비표준 프로토콜 역공학 분석 장치(130)는 제어 메시지 탭핑부(210)를 통해 IoT 메인 디바이스(110)로부터 송신되는 제어 메시지를 탭핑할 수 있다(단계 S310). 비표준 프로토콜 역공학 분석 장치(130)는 응답 메시지 탭핑부(230)를 통해 IoT 엣지 디바이스(170)로부터 송신되고 제어 메시지에 응답하는 응답 메시지를 탭핑할 수 있다(단계 S330).
비표준 프로토콜 역공학 분석 장치(130)는 프로토콜 역공학 학습부(250)를 통해 제어 메시지와 응답 메시지가 비표준 프로토콜 메시지에 해당하는 경우에는 제어 메시지와 응답 메시지를 연관시켜 학습 데이터를 생성하고, 학습 데이터가 특정 기준 이상 축적되면 제어 메시지를 입력으로 수신하고 응답 메시지를 출력으로 제공하는 기계 학습 모델을 생성할 수 있다(단계 S350). 비표준 프로토콜 역공학 분석 장치(130)는 프로토콜 예측 실행부(270)를 통해 기계 학습 모델을 통해 신규 제어 메시지를 분석하여 해당 제어 패턴을 예측할 수 있다(단계 S370).
도 4는 도 1에 있는 비표준 프로토콜 역공학 분석 장치에서 수행되는 역공학 분석 과정의 일 실시예를 설명하는 흐름도이다.
도 4를 참조하면, 비표준 프로토콜 역공학 분석 장치(130)는 메인 디바이스(110) 및 엣지 디바이스(130) 간의 RS-485 통신의 중간에서 데이터를 수집할 수 있다. 일 실시예에서, 비표준 프로토콜 역공학 분석 장치(130)는 RS-485 통신에서 사용되는 485 Baud Rate 값과 연결 방식을 검출할 수 있고, 만약 검출에 실패한 경우에는 검출에 성공할 때까지 계속 검출을 시도할 수 있다(단계 S410).
비표준 프로토콜 역공학 분석 장치(130)는 RS-485 통신의 시리얼 데이터를 처리하여 데이터가 존재하는 경우 이를 데이터베이스(150)에 저장할 수 있다. 비표준 프로토콜 역공학 분석 장치(130)는 수집된 데이터의 용량이 10MB를 넘을 때까지 계속하여 데이터를 수집할 수 있고, 10MB를 넘는 경우 기계 학습 데이터 타입으로 변환하여 기계 학습을 수행할 수 있다(단계 S430).
비표준 프로토콜 역공학 분석 장치(130)는 학습 결과를 기초로 데이터 패턴 분석을 수행할 수 있고, 패턴 분석에 실패한 경우 수집된 데이터를 기초로 기계 학습을 반복하여 수행할 수 있다(단계 S450). 비표준 프로토콜 역공학 분석 장치(130)는 패턴 분석에 성공한 경우 패턴을 출력하여 해당 RS-485 통신을 수행하는 디바이스들의 제어에 활용할 수 있도록 할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 비표준 프로토콜 역공학 분석 시스템
110: 메인 디바이스
130: 비표준 프로토콜 역공학 분석 장치
150: 데이터베이스 170: 엣지 디바이스
210: 제어 메시지 탭핑부 230: 응답 메시지 탭핑부
250: 프로토콜 역공학 학습부 270: 프로토콜 예측 실행부
290: 제어부

Claims (8)

  1. IoT(Internet of Things) 메인 디바이스(main device)로부터 송신되는 제어 메시지를 탭핑(tapping)하는 제어 메시지 탭핑부;
    IoT 엣지 디바이스(edge device)로부터 송신되고 상기 제어 메시지에 응답하는 응답 메시지를 탭핑하는 응답 메시지 탭핑부;
    상기 제어 메시지와 상기 응답 메시지가 비표준 프로토콜(protocol) 메시지에 해당하는 경우에는 상기 제어 메시지와 상기 응답 메시지를 연관시켜 학습 데이터를 생성하고, 상기 학습 데이터가 특정 기준 이상 축적되면 상기 제어 메시지를 입력으로 수신하고 상기 응답 메시지를 출력으로 제공하는 기계 학습 모델을 생성하는 프로토콜 역공학 학습부; 및
    상기 기계 학습 모델을 통해 신규 제어 메시지를 분석하여 해당 제어 패턴을 예측하는 프로토콜 예측 실행부를 포함하되,
    상기 프로토콜 역공학 학습부는 표준 프로토콜 정보를 기초로 상기 제어 메시지와 상기 응답 메시지 간의 공통 패턴을 검출하고 각 공통 패턴에 포함된 구체적인 데이터를 이용하여 전체 메시지의 패턴을 추정하는 과정을 통해 상기 제어 메시지 및 상기 응답 메시지 각각을 분석한 후 적어도 하나의 메시지 패턴으로 분류하여 저장하고, 상기 적어도 하나의 메시지 패턴 별로 축적된 상기 학습 데이터에 대해 총 용량이 미리 정의된 메시지 패턴의 수, 전체 메시지의 평균 길이 및 통신 속도를 기초로 산출되는 제1 기준 용량을 초과하면서 가장 작은 용량이 상기 제1 기준 용량을 기초로 산출되는 제2 기준 용량을 초과하는 경우에만 상기 기계 학습 모델을 생성하는 것을 특징으로 하는 비표준 프로토콜 역공학 분석 장치.
  2. 제1항에 있어서, 상기 제어 메시지 탭핑부는
    상기 IoT 메인 디바이스 및 상기 IoT 엣지 디바이스 간의 메시지 통신에 적용된 통신 속도 및 연결 방식을 검출하고 상기 통신 속도 및 연결 방식을 기초로 상기 제어 메시지를 탭핑하는 것을 특징으로 하는 비표준 프로토콜 역공학 분석 장치.
  3. 삭제
  4. 제1항에 있어서, 상기 프로토콜 역공학 학습부는
    상기 제어 메시지 및 상기 응답 메시지 각각에 분류된 메시지 패턴을 적용하여 제어 신호 및 응답 신호를 추출하고,
    상기 제어 메시지 및 상기 제어 신호를 입력으로 포함하고 상기 응답 메시지 및 상기 응답 신호를 출력으로 포함하는 상기 학습 데이터를 생성하는 것을 특징으로 하는 비표준 프로토콜 역공학 분석 장치.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서, 상기 프로토콜 예측 실행부는
    상기 신규 제어 메시지를 분석하여 상기 적어도 하나의 메시지 패턴으로 분류하고 상기 신규 제어 메시지에 분류된 메시지 패턴을 적용하여 상기 해당 제어 패턴을 예측하는 것을 특징으로 하는 비표준 프로토콜 역공학 분석 장치.
  8. 제7항에 있어서, 상기 프로토콜 예측 실행부는
    상기 분류된 메시지 패턴과 연관된 상기 기계 학습 모델에 상기 신규 제어 메시지를 입력하여 결과로서 획득한 응답 패턴을 상기 해당 제어 패턴으로서 예측하는 것을 특징으로 하는 비표준 프로토콜 역공학 분석 장치.

KR1020180059769A 2018-05-25 2018-05-25 비표준 프로토콜 역공학 분석 장치 KR101950374B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180059769A KR101950374B1 (ko) 2018-05-25 2018-05-25 비표준 프로토콜 역공학 분석 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180059769A KR101950374B1 (ko) 2018-05-25 2018-05-25 비표준 프로토콜 역공학 분석 장치

Publications (1)

Publication Number Publication Date
KR101950374B1 true KR101950374B1 (ko) 2019-02-20

Family

ID=65561848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180059769A KR101950374B1 (ko) 2018-05-25 2018-05-25 비표준 프로토콜 역공학 분석 장치

Country Status (1)

Country Link
KR (1) KR101950374B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334179A (zh) * 2022-07-19 2022-11-11 四川大学 一种基于命名实体识别的未知协议逆向解析方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100676857B1 (ko) 2004-05-25 2007-01-31 주식회사 알티캐스트 알에스485 프로토콜을 이용하는 통신장치
KR100720359B1 (ko) 2005-11-14 2007-05-22 삼성전자주식회사 알에스485 통신시스템의 통신방법
JP2012141785A (ja) * 2010-12-28 2012-07-26 Yahoo Japan Corp 広告配信サーバ及び広告配信方法
KR20170006120A (ko) * 2015-07-07 2017-01-17 주식회사 케이티 재실 추론 확률에 기반한 홈 IoT 제어 시스템 및 홈 IoT 제어 방법
KR20180021531A (ko) * 2016-08-22 2018-03-05 에스케이텔레콤 주식회사 심층 신경망을 이용한 음성 끝점 검출 방법 및 이를 위한 끝점 검출 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100676857B1 (ko) 2004-05-25 2007-01-31 주식회사 알티캐스트 알에스485 프로토콜을 이용하는 통신장치
KR100720359B1 (ko) 2005-11-14 2007-05-22 삼성전자주식회사 알에스485 통신시스템의 통신방법
JP2012141785A (ja) * 2010-12-28 2012-07-26 Yahoo Japan Corp 広告配信サーバ及び広告配信方法
KR20170006120A (ko) * 2015-07-07 2017-01-17 주식회사 케이티 재실 추론 확률에 기반한 홈 IoT 제어 시스템 및 홈 IoT 제어 방법
KR20180021531A (ko) * 2016-08-22 2018-03-05 에스케이텔레콤 주식회사 심층 신경망을 이용한 음성 끝점 검출 방법 및 이를 위한 끝점 검출 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334179A (zh) * 2022-07-19 2022-11-11 四川大学 一种基于命名实体识别的未知协议逆向解析方法
CN115334179B (zh) * 2022-07-19 2023-09-01 四川大学 一种基于命名实体识别的未知协议逆向解析方法

Similar Documents

Publication Publication Date Title
US10609185B2 (en) Method for topology tree to learn about, present, and configure device information by automatically uploading device description files from device
CN107770022B (zh) 基于rtu协议的数据采集方法、电子设备及存储介质
US8793366B2 (en) Method and arrangement for diagnosing networks including field bus systems
CN106209542B (zh) 工业互联网现场层宽带总线架构系统
JP2018137803A (ja) プロセス制御システムで使用される通信プロトコルを特定するための方法及び装置
JP2017511942A (ja) プロセス制御システムにおける分散ビッグデータ、プロセス制御デバイス、分散ビッグデータの支援方法、プロセス制御デバイス
CN101179452A (zh) 用于现场总线系统的诊断方法和诊断设备
US20160105337A1 (en) Apparatus and method for analyzing a control network
US11388631B2 (en) Data reduction in a system
CN103997439A (zh) 一种流量监测方法、装置和系统
CN105892419B (zh) 用于自动化技术中的系统
CN112039791A (zh) 一种物联网智能网关路由方法及系统
KR101950374B1 (ko) 비표준 프로토콜 역공학 분석 장치
CN109802943B (zh) 数据采集装置
Sestito et al. A general optimization-based approach to the detection of real-time Ethernet traffic events
CN111315026A (zh) 信道的选择方法、装置、网关及计算机可读存储介质
JP2019159653A (ja) 制御システム、制御方法、および制御プログラム
CN113039759B (zh) 用于现场总线网络的现场检测设备
JP4873220B2 (ja) フィールド通信システム
CN103001839B (zh) 学习命令以自动组态设定的系统、网关器及其方法
JP2006121253A (ja) ノード検出方法及びノード検出装置
US11779037B2 (en) Adaptive food preparation automation and control
JP6913780B2 (ja) 製造現場システムにおける変化を検出する方法
US11973652B2 (en) Field detection device for a fieldbus network
CN110764463B (zh) 监测系统和包括该监测系统计算机数控系统

Legal Events

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