KR20230050869A - Vulnerability testing method and apparatus for serial communication apparaus - Google Patents

Vulnerability testing method and apparatus for serial communication apparaus Download PDF

Info

Publication number
KR20230050869A
KR20230050869A KR1020210134174A KR20210134174A KR20230050869A KR 20230050869 A KR20230050869 A KR 20230050869A KR 1020210134174 A KR1020210134174 A KR 1020210134174A KR 20210134174 A KR20210134174 A KR 20210134174A KR 20230050869 A KR20230050869 A KR 20230050869A
Authority
KR
South Korea
Prior art keywords
attack
target device
packet
transmitting
packets
Prior art date
Application number
KR1020210134174A
Other languages
Korean (ko)
Other versions
KR102581422B1 (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 KR1020210134174A priority Critical patent/KR102581422B1/en
Publication of KR20230050869A publication Critical patent/KR20230050869A/en
Application granted granted Critical
Publication of KR102581422B1 publication Critical patent/KR102581422B1/en

Links

Images

Classifications

    • 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
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a vulnerability testing method for a serial communication device and a device thereof. According to an embodiment of the present invention, the testing method is a method performed in a test device that is connected to a target device in a serial communication manner and tests vulnerabilities due to serial communication of the target device. The method comprises the following steps of: transmitting an attack packet to a target device; transmitting a normal packet including a value within an allowed normal range to the target device; and determining that the target device is vulnerable to the attack packet when an abnormal state of the target device occurs.

Description

직렬 통신 장치에 대한 취약성 테스트 방법 및 장치{VULNERABILITY TESTING METHOD AND APPARATUS FOR SERIAL COMMUNICATION APPARAUS}Vulnerability testing method and apparatus for serial communication device {VULNERABILITY TESTING METHOD AND APPARATUS FOR SERIAL COMMUNICATION APPARAUS}

본 발명은 직렬 통신 장치에 대한 취약성 테스트 기술에 관한 것으로서, 더욱 상세하게는 모드버스 RTU(Modbus Remote Terminal Unit) 등과 같은 프로토콜(protocol)의 직렬 통신로 연결되는 대상 장치에 대해 해당 프로토콜의 직렬 통신에 따른 취약성을 테스트하기 위한 기술에 관한 것이다.The present invention relates to a vulnerability testing technology for a serial communication device, and more particularly, to a serial communication of a protocol such as Modbus RTU (Modbus Remote Terminal Unit) for a target device connected by serial communication. It is about techniques for testing vulnerabilities according to

종래의 취약성 테스트 방식은 TCP/IP 프로토콜 기반의 방식이다. 즉, 원격지에서 IP주소를 가지고 있는 대상 장치에 대해 특정의 TCP/IP 프로토콜 패킷을 송신한 후 그에 대한 응답 TCP/IP 프로토콜 패킷을 수신하며 수신된 패킷을 검사함으로써 해당 대상 장치의 TCP/IP 프로토콜 통신에 따른 취약성 테스트를 수행하였다.A conventional vulnerability testing method is based on a TCP/IP protocol. That is, after sending a specific TCP/IP protocol packet to a target device having an IP address from a remote location, receiving a response TCP/IP protocol packet and inspecting the received packet, the TCP/IP protocol communication of the target device A vulnerability test was performed according to .

하지만, 모드버스 RTU 등의 직렬 통신 프로토콜을 사용하는 대상 장치의 경우, 상술한 종래의 취약성 테스트 방식의 적용이 불가능하다. 이는 모드버스 RTU를 사용하는 대상 장치의 경우, 비정상 데이터를 수신하면 TCP/IP 프로토콜 방식과 달리 그에 대한 오류 메시지를 대부분 응답하지 않기 때문이다.However, in the case of a target device using a serial communication protocol such as Modbus RTU, the aforementioned conventional vulnerability test method cannot be applied. This is because, in the case of a target device using Modbus RTU, when it receives abnormal data, most of them do not respond with an error message, unlike the TCP/IP protocol method.

즉, 실제 산업 현장에 적용되는 모드버스 RTU 방식이 적용된 대상 장치의 경우, 기본적으로 대부분 종류의 패킷에 대해 단방향 직렬 통신(즉, 데이터 수신)만이 제공된다. 그 결과, 대상 장치로 비정상 데이터를 전송하더라도, 대상 장치는 해당 비정상 데이터에 대해 거부 또는 삭제 등을 수행하지만, 해당 비정상 데이터의 수신에 따른 오류 메시지 등을 송신 측으로 응답하지 않으므로, 종래의 취약성 테스트 방식이 적용되기 어렵다.That is, in the case of a target device to which the Modbus RTU method applied in an actual industrial field is applied, only one-way serial communication (ie, data reception) is basically provided for most types of packets. As a result, even if abnormal data is transmitted to the target device, the target device rejects or deletes the abnormal data, but does not respond to the sender with an error message or the like according to the reception of the abnormal data, so the conventional vulnerability test method This is difficult to apply.

따라서, 모드버스 RTU 등의 직렬 통신 프로토콜을 사용하는 대상 장치에 적용될 수 있는 새로운 방식의 취약성 테스트 기술이 필요한 실정이다.Therefore, there is a need for a new type of vulnerability test technology that can be applied to a target device using a serial communication protocol such as Modbus RTU.

상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 TCP/IP 프로토콜 방식이 아닌 모드버스 RTU 등과 같은 프로토콜 방식의 직렬 통신로 연결되는 대상 장치에 대해 해당 프로토콜의 직렬 통신에 따른 취약성을 테스트할 수 있는 기술을 제공하는데 그 목적이 있다.In order to solve the problems of the prior art as described above, the present invention tests the vulnerability according to the serial communication of the corresponding protocol for a target device connected by serial communication of a protocol such as Modbus RTU rather than the TCP/IP protocol method. Its purpose is to provide the technology that can do it.

다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problem to be solved by the present invention is not limited to the above-mentioned problems, and other problems not mentioned can be clearly understood by those skilled in the art from the description below. There will be.

상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 방법은 대상 장치에 직렬 통신 방식으로 연결되어 상기 대상 장치의 직렬 통신에 따른 취약성을 테스트하는 테스트 장치에서 수행되는 방법으로서, 상기 대상 장치로 공격 패킷을 전송하는 단계; 상기 대상 장치로 허용된 정상 범위 내의 값을 포함하는 정상 패킷을 전송하는 단계; 상기 대상 장치의 비정상 상태가 발생하는 경우, 상기 대상 장치가 상기 공격 패킷에 대해 취약성이 있는 것으로 판단하는 단계;를 포함한다.A method according to an embodiment of the present invention for solving the above problems is a method performed in a test device that is connected to a target device in a serial communication method and tests vulnerabilities according to serial communication of the target device, wherein the target device Transmitting an attack packet to; Transmitting a normal packet including a value within an allowed normal range to the target device; and determining that the target device is vulnerable to the attack packet when an abnormal state of the target device occurs.

상기 비정상 상태는 상기 대상 장치의 가동 중지 현상 또는 랙(lag) 현상이 발생하거나, 상기 대상 장치가 허용된 범위 외의 값을 가지는 응답 패킷으로 응답하는 경우를 포함할 수 있다.The abnormal state may include a case where an operation stoppage phenomenon or a lag phenomenon of the target device occurs, or when the target device responds with a response packet having a value outside the permitted range.

상기 직렬 통신은 모드버스 RTU(Modbus Remote Terminal Unit) 프로토콜을 기반으로 하는 통신일 수 있다.The serial communication may be communication based on a Modbus Remote Terminal Unit (RTU) protocol.

상기 공격 패킷을 전송하는 단계는 복수의 공격 패킷을 연속으로 대상 장치로 전송하는 단계를 포함할 수 있으며, 상기 판단하는 단계는 상기 비정상 상태가 발생하는 경우에 상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단하는 단계를 포함할 수 있다.The transmitting of the attack packets may include continuously transmitting a plurality of attack packets to the target device, and the determining step may include transmitting the plurality of attack packets to the target device when the abnormal state occurs. It may include a step of determining that there is a vulnerability to

본 발명의 일 실시예에 따른 방법은, 상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단되는 경우, 상기 복수이 공격 패킷을 그룹으로 나누고 그룹에 속한 공격 패킷을 이용하여, 그룹 별로 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 반복 수행함으로써, 상기 복수의 공격 패킷 중에서 취약성이 있는 공격 패킷을 찾는 단계를 더 포함할 수 있다.In the method according to an embodiment of the present invention, when it is determined that the target device is vulnerable to the plurality of attack packets, the plurality of attack packets are divided into groups, and attack packets belonging to the groups are used to perform the attack packets for each group. The method may further include finding an attack packet having a vulnerability among the plurality of attack packets by repeatedly performing the transmitting of the attack packet, the transmitting of the normal packet, and the determining step.

상기 공격 패킷을 전송하는 단계는 공개된 기존 취약점 정보(Common Vulnerabilities and Exposures, CVE)에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 단계를 포함할 수 있다.Transmitting the attack packet may include generating and transmitting an attack packet having a value related to the existing information on common vulnerabilities and exposures (CVE).

상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 단계를 포함할 수 있다.The transmitting of the attack packets stores setting values or operation-related information of the target device, but generates a plurality of attack packets each having a value that changes outside of the permitted range for all memory addresses of the target device that are writable. and continuously transmitting.

상기 공격 패킷은 데이터 길이(data length) 섹션이 허용된 길이 범위 외의 값을 가지는 비정상 데이터, 데이터 섹션이 데이터 길이 섹션과 다른 길이의 데이터를 가지는 비정상 데이터, 데이터 섹션이 허용된 값 외의 값을 가지는 비정상 데이터, 또는 데이터 섹션이 허용된 종류 외의 데이터 종류를 가지는 비정상 데이터를 포함할 수 있다.The attack packet includes abnormal data in which the data length section has a value outside the allowed length range, abnormal data in which the data section has data having a length different from that of the data length section, and abnormal data in which the data section has a value outside the allowed value. The data or data section may contain abnormal data having a data type other than the permitted type.

상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 단계를 포함할 수 있다.Transmitting the attack packets may include transmitting attack packets to a plurality of writable memory addresses of the target device in a different order while storing setting values or operation-related information of the target device.

공개된 기존 취약점 정보에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 기존 취약점 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 무작위 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 의미론적 공격을 각각 포함하는 공격 그룹 중에서 선택된 적어도 2개의 공격이 상기 공격 패킷을 전송하는 단계에서 각각 수행될 수 있다.An existing vulnerability attack that generates and transmits an attack packet having a value related to existing vulnerability information that has been disclosed, and changes outside the permitted range for all memory addresses of the target device that store information related to the operation of the target device. A random attack that generates and continuously transmits a plurality of attack packets having values, and a semantic attack that transmits attack packets to a plurality of memory addresses of the target device that store information related to the operation of the target device in different order. At least two attacks selected from attack groups each including each attack may be performed in the step of transmitting the attack packet.

상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 수행하며, 이후 상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행될 수 있다.Transmitting the attack packet according to any one attack from the attack group, transmitting the normal packet, and performing the determining step, and then transmitting the attack packet according to another attack from the attack group The step of transmitting the normal packet and the step of determining may be performed.

상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 수행하고, 이후 상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 수행하며, 이후 상기 공격 그룹 중에서 나머지 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행될 수 있다. Transmitting the attack packet according to any one attack from the attack group, transmitting the normal packet, and performing the determining step, and then transmitting the attack packet according to another attack from the attack group carrying out the steps of transmitting the normal packet, transmitting the normal packet, and determining the attack packet, and then transmitting the attack packet according to the attack of the other one of the attack group, transmitting the normal packet, and determining the attack packet. can be performed.

본 발명의 일 실시예에 따른 장치는 대상 장치와 직렬 통신을 수행하는 통신부; 및 상기 통신부의 동작을 제어하면서 상기 대상 장치의 직렬 통신에 따른 취약성 테스트를 제어하는 제어부;를 포함한다.An apparatus according to an embodiment of the present invention includes a communication unit that performs serial communication with a target device; and a controller controlling a vulnerability test according to serial communication of the target device while controlling an operation of the communication unit.

상기 제어부는, 상기 대상 장치로 공격 패킷을 전송한 후에 상기 대상 장치로 허용된 정상 범위 내의 값을 포함하는 정상 패킷을 전송하도록 제어할 수 있으며, 이후 상기 대상 장치의 가동 중지 또는 랙(lag) 현상이 발생하거나 상기 상 장치가 허용된 범위 외의 값을 가지는 응답 패킷으로 응답하는 경우에 상기 대상 장치가 상기 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다.After transmitting the attack packet to the target device, the control unit may control to transmit a normal packet including a value within an allowed normal range to the target device, and then stop or lag the target device. If this occurs or the device responds with a response packet having a value outside the permitted range, it may be determined that the target device has vulnerability to the attack packet.

상기와 같이 구성되는 본 발명은 모드버스 RTU 등과 같은 프로토콜 방식의 직렬 통신로 연결되는 대상 장치에 대해 해당 프로토콜의 직렬 통신에 따른 취약성을 테스트할 수 있어, 종래의 TCP/IP 프로토콜 방식에 따른 취약성 테스트의 한계를 극복할 수 있는 이점이 있다.The present invention configured as described above can test the vulnerability according to the serial communication of the corresponding protocol for the target device connected to the serial communication of the protocol method such as Modbus RTU, and the vulnerability test according to the conventional TCP/IP protocol method There are advantages to overcoming the limitations of

또한, 본 발명은 기존 취약점 공격, 무작위 공격 단계 및 의미론적 공격으로 이루어진 공격 그룹에서 적어도 2개를 선택하여 공격하는 복합 공격을 수행함으로써, 대상 장치의 다양한 설정 값 또는 동작에 대한 취약성을 보다 면밀하게 확인할 수 있는 이점이 있다.In addition, the present invention performs a complex attack in which at least two are selected and attacked from an attack group consisting of an existing vulnerability attack, a random attack step, and a semantic attack, thereby more closely examining the vulnerability of various setting values or operations of the target device. There are benefits that can be identified.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.

도 1은 본 발명의 일 실시예에 따른 테스트 장치(100)와 대상 장치(200)의 연결 개념도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 테스트 장치 및 대상 장치(100, 200)의 블록 구성도를 나타낸다.
도 3은 테스트 장치(100)의 제어부(130)의 블록 구성도를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 테스트 방법의 순서도를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 테스트 방법에서 수행되는 공격 종류를 나타낸다.
도 6은 메모리 주소에 대한 예시를 나타낸다.
도 7은 본 발명의 실험에서 발견된 4개의 취약점에 대한 내용을 나타낸다.
1 shows a connection conceptual diagram between a test device 100 and a target device 200 according to an embodiment of the present invention.
2 shows a block diagram of a test device and a target device 100 or 200 according to an embodiment of the present invention.
3 shows a block configuration diagram of the control unit 130 of the test device 100.
4 shows a flow chart of a test method according to an embodiment of the present invention.
5 shows types of attacks performed in a test method according to an embodiment of the present invention.
6 shows an example of a memory address.
7 shows the contents of the four vulnerabilities found in the experiment of the present invention.

본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.The above objects and means of the present invention and the effects thereof will become clearer through the following detailed description in conjunction with the accompanying drawings, and accordingly, those skilled in the art to which the present invention belongs can easily understand the technical idea of the present invention. will be able to carry out. In addition, in describing the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.Terms used in this specification are for describing the embodiments and are not intended to limit the present invention. In this specification, singular forms also include plural forms in some cases unless otherwise specified in the text. In this specification, terms such as "comprise", "have", "provide" or "have" do not exclude the presence or addition of one or more other elements other than the mentioned elements.

본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “또는 B”“및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.In this specification, terms such as “or” and “at least one” may represent one of the words listed together, or a combination of two or more. For example, "or B" and "at least one of B" may include only one of A or B, or may include both A and B.

본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.In this specification, descriptions following "for example" may not exactly match the information presented, such as cited characteristics, variables, or values, and tolerances, measurement errors, limits of measurement accuracy and other commonly known factors It should not be limited to the embodiments of the present invention according to various embodiments of the present invention with effects such as modifications including.

본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어’ 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.In this specification, when a component is described as being 'connected' or 'connected' to another component, it may be directly connected or connected to the other component, but there may be other components in the middle. It should be understood that it may be On the other hand, when a component is referred to as 'directly connected' or 'directly connected' to another component, it should be understood that no other component exists in the middle.

본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.In the present specification, when an element is described as being 'on' or 'in contact with' another element, it may be in direct contact with or connected to the other element, but another element may be present in the middle. It should be understood that On the other hand, if an element is described as being 'directly on' or 'directly in contact with' another element, it may be understood that another element in the middle does not exist. Other expressions describing the relationship between components, such as 'between' and 'directly between', can be interpreted similarly.

본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.In this specification, terms such as 'first' and 'second' may be used to describe various elements, but the elements should not be limited by the above terms. In addition, the above terms should not be interpreted as limiting the order of each component, and may be used for the purpose of distinguishing one component from another. For example, a 'first element' may be named a 'second element', and similarly, a 'second element' may also be named a 'first element'.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. Unless otherwise defined, all terms used in this specification may be used in a meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 테스트 장치(100)와 대상 장치(200)의 연결 개념도를 나타내며, 도 2는 본 발명의 일 실시예에 따른 테스트 장치 및 대상 장치(100, 200)의 블록 구성도를 나타낸다.1 shows a conceptual diagram of a connection between a test device 100 and a target device 200 according to an embodiment of the present invention, and FIG. Shows the block diagram.

도 1을 참조하면, 본 발명의 일 실시예에 따른 테스트 장치(100)는 대상 장치(200)에 직렬 통신 방식으로 연결되어 대상 장치(200)에 적용된 직렬 통신의 프로토콜(protocol)에 따른 취약성을 테스트하는 장치이다. Referring to FIG. 1 , a test device 100 according to an embodiment of the present invention is connected to a target device 200 in a serial communication method to detect vulnerabilities according to a serial communication protocol applied to the target device 200. It is a test device.

한편, 종래 기술이 TCP/IP 프로토콜 기반의 취약성 테스트 방식을 수행하는 것과 달리, 본 테스트 장치(100)는 대상 장치(200)가 모드버스 RTU(Modbus Remote Terminal Unit) 등의 직렬 통신 프로토콜을 사용하는 경우에 해당 직렬 통신 프로토콜에 적용되기 위한 취약성 테스트 방식을 수행한다.On the other hand, unlike the prior art that performs a vulnerability test method based on the TCP/IP protocol, the present test device 100 uses a serial communication protocol such as Modbus RTU (Modbus Remote Terminal Unit) when the target device 200 is used. In this case, a vulnerability test method to be applied to the corresponding serial communication protocol is performed.

특히, 모드버스 RTU의 직렬 통신 프로토콜이 적용된 경우, 대상 장치(200)로 비정상 데이터를 전송하더라도, 대상 장치(200)는 해당 비정상 데이터에 대해 거부 또는 삭제 등을 수행하지만, 해당 비정상 데이터의 수신에 따른 오류 메시지 등을 송신 측으로 대부분 응답하지 않으므로, 종래 기술에 따른 취약성 테스트 방식이 적용되기 어렵다. In particular, when the serial communication protocol of Modbus RTU is applied, even if abnormal data is transmitted to the target device 200, the target device 200 rejects or deletes the abnormal data, but is unable to receive the abnormal data. Since most of the error messages and the like according to the transmission side do not respond, it is difficult to apply the vulnerability test method according to the prior art.

이를 해결하기 위해, 본 테스트 장치(100)는 대상 장치(200)에 적용된 모드버스 RTU의 직렬 통신 프로토콜 등에 대한 취약성을 테스트하기 위한 장치로서, 컴퓨팅(computing)이 가능한 전자 장치 또는 컴퓨팅 네트워크일 수 있다.In order to solve this problem, the present test device 100 is a device for testing vulnerabilities in the serial communication protocol of the Modbus RTU applied to the target device 200, and may be an electronic device capable of computing or a computing network. .

예를 들어, 전자 장치는 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), 스마트폰(smartphone), 스마트패드(smartpad), 또는 휴대폰(mobile phone), 등이거나, 취약성 테스트를 위해 별도로 제작된 전자 장치일 수 있으나, 이에 한정되는 것은 아니다.For example, the electronic device includes a desktop personal computer, a laptop personal computer, a tablet personal computer, a netbook computer, a workstation, and a personal digital assistant (PDA). , a smartphone, a smartpad, or a mobile phone, or a separately manufactured electronic device for vulnerability testing, but is not limited thereto.

또한, 대상 장치(200)는 취약성 테스트의 대상이 되는 장치로서, 모드버스 RTU의 직렬 통신 프로토콜 등을 기반으로 직렬 통신 가능한 장치이다. 예를 들어, 대상 장치(200)는 PLC(programmable logic controller) 장치와 같이 다양한 산업 제어용으로 사용되는 장치, 또는 스마트 분배 전기 장치를 포함하는 보호 계전기 장치 등일 수 있으나, 이에 한정되는 것은 아니다.In addition, the target device 200 is a device subject to vulnerability testing, and is a device capable of serial communication based on a serial communication protocol of Modbus RTU. For example, the target device 200 may be a device used for various industrial controls such as a programmable logic controller (PLC) device, or a protection relay device including a smart distribution electric device, but is not limited thereto.

이러한 테스트 장치 및 대상 장치(100, 200)는, 도 2에 도시된 바와 같이, 통신부(110), 메모리(120) 및 제어부(130)를 포함할 수 있다.As shown in FIG. 2 , the test device and the target device 100 or 200 may include a communication unit 110 , a memory 120 , and a control unit 130 .

통신부(110, 210)는 타 장치와 통신을 수행하는 구성이다. 즉, 테스트 장치(100)의 통신부(110)와 대상 장치(200)의 통신부(210)는 서로 연결되어 모드버스 RTU 등의 직렬 통신 프로토콜을 기반으로 직렬 통신을 수행할 수 있다. 이를 위해, 통신부(110, 210)는 직렬 통신을 위한 구성을 포함한다. 예를 들어, 직렬 통신 구성은 RS485, RS423, RS422, RS232 또는 USB 방식으로 연결될 수 있으나, 이에 한정되는 것은 아니다. The communication units 110 and 210 are components that communicate with other devices. That is, the communication unit 110 of the test device 100 and the communication unit 210 of the target device 200 may be connected to each other to perform serial communication based on a serial communication protocol such as Modbus RTU. To this end, the communication units 110 and 210 include components for serial communication. For example, the serial communication configuration may be connected in an RS485, RS423, RS422, RS232 or USB method, but is not limited thereto.

즉, 테스트 장치(100)의 통신부(110)는 후술할 본 발명에 따른 테스트 방법의 수행 시에 직렬 통신 방식으로 공격 패킷, 정상 패킷 등을 대상 장치(200)의 통신부(210)로 전송할 수 있으며, 이후에 대상 장치(200)의 통신부(210)로부터 직렬 통신 방식으로 응답 패킷 등을 수신할 수도 있다.That is, the communication unit 110 of the test device 100 can transmit attack packets, normal packets, etc. to the communication unit 210 of the target device 200 in a serial communication method when performing a test method according to the present invention, which will be described later. , Afterwards, a response packet or the like may be received in a serial communication method from the communication unit 210 of the target device 200.

메모리(120, 220)는 테스트 장치(100) 및 대상 장치(200)의 동작에 필요한 각종 정보를 저장한다. 가령, 테스트 장치(100)의 메모리(120)의 저장 정보로는 기존 취약점 정보(Common Vulnerabilities and Exposures, CVE), 공격 패킷에 대한 정보, 정상 패킷에 대한 정보, 후술할 본 발명에 따른 테스트 방법에 관련된 프로그램 정보 등이 포함될 수 있으나, 이에 한정되는 것은 아니다. 또한, 대상 장치(200)의 메모리(220)의 저장 정보로는 대상 장치(200)에 대한 각종 설정 값 및 작동에 관련된 정보를 포함할 수 있으나, 이에 한정되는 것은 아니다.The memories 120 and 220 store various types of information necessary for the operation of the test device 100 and the target device 200 . For example, the storage information of the memory 120 of the test apparatus 100 includes existing vulnerability information (Common Vulnerabilities and Exposures, CVE), information on attack packets, information on normal packets, and the test method according to the present invention to be described later Related program information may be included, but is not limited thereto. In addition, information stored in the memory 220 of the target device 200 may include information related to various setting values and operations of the target device 200, but is not limited thereto.

예를 들어, 메모리(120, 220)는 그 유형에 따라 하드디스크 타입(hard disk type), 마그네틱 매체 타입(Magnetic media type), CD-ROM(compact disc read only memory), 광기록 매체 타입(Optical Media type), 자기-광 매체 타입(Magneto-optical media type), 멀티미디어 카드 마이크로 타입(Multimedia card micro type), 플래시 저장부 타입(flash memory type), 롬 타입(read only memory type), 또는 램 타입(random access memory type) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 메모리(120, 220)는 그 용도/위치에 따라 캐시(cache), 버퍼, 주기억장치, 또는 보조기억장치이거나 별도로 마련된 저장 시스템일 수 있으나, 이에 한정되는 것은 아니다.For example, the memories 120 and 220 may be a hard disk type, a magnetic media type, a compact disc read only memory (CD-ROM), and an optical recording medium type according to their type. Media type), Magneto-optical media type, Multimedia card micro type, flash memory type, read only memory type, or RAM type (random access memory type), etc., but is not limited thereto. In addition, the memories 120 and 220 may be caches, buffers, main storage devices, auxiliary storage devices, or separately provided storage systems depending on their use/location, but are not limited thereto.

제어부(130, 230)는 테스트 장치(100) 및 대상 장치(200)의 다양한 제어 동작을 수행할 수 있다. 가령, 테스트 장치(100의 제어부(130)는 테스트 장치(100)의 나머지 구성인 통신부(110) 및 메모리(120) 등의 동작을 제어하면서, 대상 장치(200)의 직렬 통신에 따른 취약성 테스트를 제어할 수 있다. 즉, 제어부(130)는 메모리(120)에 저장된 정보를 이용하여 후술할 본 발명에 따른 테스트 방법의 수행을 제어할 수 있다. 또한, 대상 장치(200)의 제어부(230)는 대상 장치(200)의 나머지 구성인 통신부(210) 및 메모리(220) 등의 동작을 제어하면서 대상 장치(200)가 가지는 산업용 제어 등의 고유 기능을 제어할 수 있다.The controllers 130 and 230 may perform various control operations of the test device 100 and the target device 200 . For example, the control unit 130 of the test device 100 performs a vulnerability test according to serial communication of the target device 200 while controlling operations of the communication unit 110 and the memory 120, which are the other components of the test device 100. That is, the control unit 130 can control the execution of a test method according to the present invention, which will be described later, using information stored in the memory 120. In addition, the control unit 230 of the target device 200 can control unique functions of the target device 200, such as industrial control, while controlling operations of the communication unit 210 and the memory 220, which are the other components of the target device 200.

예를 들어, 제어부(130, 230)는 하드웨어인 프로세서(processor) 또는 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.For example, the controllers 130 and 230 may include a processor that is hardware or a process that is software executed in the corresponding processor, but is not limited thereto.

한편, 테스트 장치(100) 및 대상 장치(200)는 입력부(미도시) 또는 표시부(미도시) 등을 추가적으로 포함할 수 있다.Meanwhile, the test device 100 and the target device 200 may additionally include an input unit (not shown) or a display unit (not shown).

이때, 입력부는 사용자의 입력에 대응하여, 입력데이터를 발생시키며, 다양한 입력수단을 포함할 수 있다. 예를 들어, 입력부는 키보드(key board), 키패드(key pad), 돔 스위치(dome switch), 터치 패널(touch panel), 터치 키(touch key), 터치 패드(touch pad), 마우스(mouse), 메뉴 버튼(menu button) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.At this time, the input unit generates input data in response to a user's input, and may include various input means. For example, the input unit may include a keyboard, a key pad, a dome switch, a touch panel, a touch key, a touch pad, and a mouse. , a menu button, and the like, but is not limited thereto.

또한, 표시부는 다양한 영상 데이터를 화면으로 표시하는 것으로서, 비발광형 구성이나 발광형 구성을 포함할 수 있다. 예를 들어, 표시부는 발광 다이오드(LED; light emitting diode), 액정 디스플레이(LCD; liquid crystal display) 패널, 발광 다이오드(LED; light emitting diode) 디스플레이 패널, 유기 발광 다이오드(OLED; organic LED) 디스플레이 패널, 마이크로 전자기계 시스템(MEMS; micro electro mechanical systems) 디스플레이 패널, 또는 전자 종이(electronic paper) 디스플레이 패널 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 표시부는 입력부와 결합되어 터치 스크린(touch screen) 등으로 구현될 수도 있다.In addition, the display unit displays various image data on a screen, and may include a non-emission-type configuration or a light-emission-type configuration. For example, the display unit may include a light emitting diode (LED), a liquid crystal display (LCD) panel, a light emitting diode (LED) display panel, and an organic LED (OLED) display panel. , a micro electro mechanical systems (MEMS) display panel, or an electronic paper display panel, but is not limited thereto. Also, the display unit may be combined with the input unit and implemented as a touch screen or the like.

도 3은 테스트 장치(100)의 제어부(130)의 블록 구성도를 나타낸다.3 shows a block configuration diagram of the control unit 130 of the test device 100.

도 3을 참조하면, 테스트 장치(100)의 제어부(130)는 후술할 본 발명에 따른 테스트 방법의 수행을 제어하기 위해, 공격 패킷 생성부(131), 정상 패킷 생성부(132) 및 취약성 판단부(133)를 포함할 수 있다. 예를 들어, 공격 패킷 생성부(131), 정상 패킷 생성부(132) 및 취약성 판단부(133)는 제어부(130)의 하드웨어 구성이거나, 제어부(130)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다.Referring to FIG. 3 , the control unit 130 of the test apparatus 100 includes an attack packet generator 131, a normal packet generator 132, and vulnerability determination in order to control the execution of a test method according to the present invention, which will be described later. Part 133 may be included. For example, the attack packet generation unit 131, the normal packet generation unit 132, and the vulnerability determination unit 133 may be hardware configurations of the control unit 130 or may be software processes executed by the control unit 130, It is not limited to this.

이하, 본 발명의 일 실시예에 따른 테스트 방법에 대해 보다 상세하게 설명하도록 한다.Hereinafter, a test method according to an embodiment of the present invention will be described in more detail.

도 4는 본 발명의 일 실시예에 따른 테스트 방법의 순서도를 나타낸다.4 shows a flow chart of a test method according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 테스트 방법은 대상 장치(200)에 직렬 통신 방식으로 연결된 테스트 장치(100)에서 대상 장치(200)의 직렬 통신에 따른 취약성을 테스트하기 위한 방법으로서, 도 4에 도시된 바와 같이, S100 내지 S300을 포함할 수 있다.A test method according to an embodiment of the present invention is a method for testing vulnerabilities according to serial communication of a target device 200 in a test device 100 connected to the target device 200 in a serial communication method, as shown in FIG. As described above, it may include S100 to S300.

S100은 제어부(130)의 공격 패킷 생성부(131)가 공격 패킷을 생성하여 통신부(110)를 통해 대상 장치(200)의 통신부(210)로 전송하는 단계이다. 즉, 공격 패킷은 대상 장치(200)의 설정 값을 변경하거나 또는 대상 장치(200)가 특정 동작을 수행하도록 하는 패킷으로서, 정상 데이터 또는 비정상 데이터를 포함할 수 있다. S100 is a step in which the attack packet generation unit 131 of the control unit 130 generates an attack packet and transmits the attack packet to the communication unit 210 of the target device 200 through the communication unit 110 . That is, the attack packet is a packet that changes the setting value of the target device 200 or causes the target device 200 to perform a specific operation, and may include normal data or abnormal data.

이때, 정상 데이터는 패킷의 각 섹션이 해당 패킷의 종류에 따라 허용된 정상 범위 내의 값을 가지는 경우의 데이터를 지칭한다. 또한, 비정상 데이터는 패킷의 각 섹션이 해당 패킷의 종류에 따라 허용된 정상 범위 외의 값을 가지는 경우의 데이터를 지칭한다. 즉, 후술할 공격 종류에 따라 공격 패킷은 정상 데이터를 포함하거나 비정상 데이터를 포함할 수 있다.At this time, normal data refers to data in the case where each section of a packet has a value within a normal range allowed according to the type of the corresponding packet. Also, abnormal data refers to data in the case where each section of a packet has a value outside of the normal range allowed according to the type of the corresponding packet. That is, the attack packet may include normal data or abnormal data according to the type of attack to be described later.

예를 들어, 비정상 데이터는 데이터 길이(data length) 섹션이 허용된 길이 범위 외의 값을 가지나, 데이터 섹션이 데이터 길이 섹션과 다른 길이의 데이터를 가지거나, 데이터 섹션이 허용된 값 외의 값을 가지거나, 데이터 섹션이 허용된 종류 외의 데이터 종류를 가질 수 있으나, 이에 한정되는 것은 아니다.For example, abnormal data means that the data length section has a value outside the allowed length range, but the data section has data of a different length from the data length section, or the data section has a value outside the allowed value range, or , the data section may have a data type other than the allowed type, but is not limited thereto.

즉, 후술할 기존 취약점 공격을 수행할 경우, 공격 패킷 생성부(131)는 비정상 데이터를 포함하는 공격 패킷을 생성할 수 있다. 또한, 후술할 무작위 공격 또는 후술할 의미론적 공격을 수행할 경우, 공격 패킷 생성부(131)는 정상 데이터를 포함하는 공격 패킷 또는 비정상 데이터를 포함하는 공격 패킷을 생성할 수 있다.That is, when performing an attack on existing vulnerabilities to be described later, the attack packet generating unit 131 may generate an attack packet including abnormal data. Also, when a random attack described later or a semantic attack described later is performed, the attack packet generation unit 131 may generate an attack packet including normal data or an attack packet including abnormal data.

다만, S100에서, 공격 패킷 생성부(131)는 후술할 공격의 종류에 따라 하나의 공격 패킷을 생성하여 전송하거나, 복수의 공격 패킷을 생성하여 전송할 수 있다. 이에 대해서는 후술할 무작위 공격에서 보다 상세하게 설명하도록 한다.However, in S100, the attack packet generation unit 131 may generate and transmit one attack packet or generate and transmit a plurality of attack packets according to the type of attack to be described later. This will be explained in more detail in a random attack to be described later.

이후, S200은 제어부(130)의 정상 패킷 생성부(132)가 정상 패킷을 생성하여 통신부(110)를 통해 대상 장치(200)의 통신부(210)로 전송하는 단계이다. 즉, 정상 패킷은 대상 장치(200)의 설정 값을 변경하거나 또는 대상 장치(200)가 특정 동작을 수행하도록 하되 정상 데이터를 포함하는 패킷이다. 가령, S200에서 전송되는 정상 패킷은 그 이전의 S100에서 전송된 공격 패킷이 공격한 대상 장치(200)의 메모리(220)의 해당 메모리 주소에 관련된 설정 값 변경 또는 특정 동작 수행을 위한 패킷일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 대상 장치(200)의 메모리(220)에서 A의 메모리 주소에 관련된 공격 패킷이 S100에서 전송된 경우, S200에서는 대상 장치(200)의 메모리(220)에서 동일한 A의 메모리 주소에 관련된 정상 데이터를 포함하는 정상 패킷을 전송할 수 있다.Thereafter, S200 is a step in which the normal packet generation unit 132 of the control unit 130 generates a normal packet and transmits the normal packet to the communication unit 210 of the target device 200 through the communication unit 110 . That is, the normal packet is a packet that changes the setting value of the target device 200 or causes the target device 200 to perform a specific operation, but includes normal data. For example, the normal packet transmitted in S200 may be a packet for changing the setting value related to the memory address of the memory 220 of the target device 200 attacked by the previous attack packet transmitted in S100 or for performing a specific operation. , but is not limited thereto. For example, when an attack packet related to the memory address of A in the memory 220 of the target device 200 is transmitted in S100, in S200, the attack packet related to the memory address of A in the memory 220 of the target device 200 is transmitted. Normal packets containing normal data can be transmitted.

다만, 대상 장치(200)는 제어부(230)의 사양에 따라 테스트 장치(100)로부터 수신된 특정 종류의 패킷에 대해 응답이 가능할 수도 있다. 이 경우, 정상 패킷 생성부(132)는 대상 장치(200)로부터 응답되는 종류의 패킷을 정상 패킷으로 생성하여 전송할 수 있다.However, the target device 200 may respond to a specific type of packet received from the test device 100 according to the specifications of the control unit 230 . In this case, the normal packet generation unit 132 may generate and transmit a packet of a type that is responded to by the target device 200 as a normal packet.

이후, S300은 제어부(130)의 취약성 판단부(133)가 S200의 정상 패킷의 수신에 따른 테스트 장치(100)의 상태를 기반으로 대상 장치(200)에 대한 S100의 공격 패킷의 취약성 여부를 판단하는 단계이다. 즉, 대상 장치(200)가 비정상 상태인 경우, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)가 정상 상태인 경우, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다. Thereafter, in S300, the vulnerability determination unit 133 of the control unit 130 determines whether the attack packet of S100 is vulnerable to the target device 200 based on the state of the test device 100 according to the reception of the normal packet of S200. It is a step to That is, when the target device 200 is in an abnormal state, the vulnerability determination unit 133 may determine that the target device 200 is vulnerable to the attack packet of S100. On the other hand, when the target device 200 is in a normal state, the vulnerability determination unit 133 may determine that the target device 200 has no vulnerability to the attack packet of S100.

이때, 대상 장치(200)의 비정상 상태는 대상 장치(200)의 가동 중지 현상 또는 랙(lag) 현상이 발생하거나, 대상 장치(200)가 비정상 데이터(즉, 허용된 범위 외의 값)을 가지는 응답 패킷으로 응답하는 경우를 포함할 수 있다. 특히, 이러한 취약성 판단은 S200의 정상 패킷에 대한 응답 가능 여부에 따라 다양하게 수행될 수 있다.At this time, the abnormal state of the target device 200 is a response in which the target device 200 stops or lags, or the target device 200 has abnormal data (ie, a value outside the permitted range). It may include a case of responding with a packet. In particular, such vulnerability determination may be performed in various ways depending on whether a response to a normal packet in S200 is possible.

가령, 낮은 사양의 제어부(230) 구비 등으로 인해, 테스트 장치(200)가 S200의 정상 패킷에 대해 응답이 불가능한 경우가 있다. 이 경우, 대상 장치(200)에서 가동 중지 현상 또는 랙 현상의 비정상 상태가 발생하면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)에서 가동 중지 현상 또는 랙 현상의 비정상 상태가 발생하지 않고 대상 장치(200)가 정상 가동한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다.For example, there is a case in which the test device 200 cannot respond to the normal packet of S200 due to the low specification of the control unit 230 . In this case, when an abnormal state such as a shutdown phenomenon or a lag phenomenon occurs in the target device 200, the vulnerability determining unit 133 may determine that the target device 200 is vulnerable to the attack packet of S100. On the other hand, if the target device 200 does not have an abnormal state such as downtime or lag and the target device 200 operates normally, the vulnerability determination unit 133 determines that the target device 200 responds to the attack packet of S100. It can be judged that there is no vulnerability.

또한, 높은 사양의 제어부(230) 구비 등으로 인해, 테스트 장치(200)가 S200의 정상 패킷에 대해 응답이 가능한 경우가 있다. 이 경우, 대상 장치(200)가 비정상 데이터를 가지는 응답 패킷으로 응답하는 비정상 상태가 발생한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)가 정상 데이터를 가지는 응답 패킷으로 응답하는 정상 상태가 발생한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다.In addition, there is a case where the test device 200 can respond to the normal packet of S200 due to the provision of the control unit 230 with high specifications. In this case, if an abnormal state in which the target device 200 responds with a response packet having abnormal data occurs, the vulnerability determining unit 133 may determine that the target device 200 is vulnerable to the attack packet of S100. there is. On the other hand, if a normal state in which the target device 200 responds with a response packet having normal data occurs, the vulnerability determining unit 133 may determine that the target device 200 has no vulnerability to the attack packet of S100. .

도 5는 본 발명의 일 실시예에 따른 테스트 방법에서 수행되는 공격 종류를 나타낸다.5 shows types of attacks performed in a test method according to an embodiment of the present invention.

한편, S100에서, 공격 패킷 생성부(131)는 공격 종류에 따라 다양한 공격 패킷을 생성하여 대상 장치(200)로 전송할 수 있다. 이때, 공격 종류에 따라 공격 패킷의 종류도 나뉠 수 있다. 즉, 도 5를 참조하면, 공격 종류는 기존 취약점 공격, 무작위 공격, 또는 의미론적 공격을 포함할 수 있다. 이에 따라, 공격 패킷 생성부(131)는 기존 취약점 공격, 무작위 공격 및 의미론적 공격로 이루어진 공격 그룹에서 적어도 하나의 공격 종류를 선택하여 해당 공격 종류에 따른 공격 패킷을 생성할 수 있다.Meanwhile, in S100, the attack packet generation unit 131 may generate various attack packets according to the type of attack and transmit them to the target device 200. At this time, the types of attack packets may also be divided according to the types of attacks. That is, referring to FIG. 5 , the type of attack may include an existing vulnerability attack, a random attack, or a semantic attack. Accordingly, the attack packet generation unit 131 may select at least one attack type from an attack group consisting of existing vulnerability attacks, random attacks, and semantic attacks, and generate an attack packet according to the corresponding attack type.

<기존 취약점 공격><Existing Vulnerability Attack>

기존 취약점 공격은 공격 패킷 생성부(131)가 공개된 기존 취약점 정보(Common Vulnerabilities and Exposures, CVE)에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 공격이다. 즉, CVE는 대상 장치(200) 또는 모드버스 RTU의 직렬 통신 프로토콜에 대해 공개적으로 알려진 보안 결함 목록으로서, 이를 제공하는 서버로부터 다운로드 가능하며 메모리(120)에 기 저장되어 있다.The existing vulnerability attack is an attack in which the attack packet generation unit 131 generates and transmits an attack packet having a value related to existing vulnerability information (Common Vulnerabilities and Exposures, CVE) that has been disclosed. That is, the CVE is a publicly known security defect list for the serial communication protocol of the target device 200 or the Modbus RTU, and is downloadable from a server providing it and pre-stored in the memory 120.

이러한 CVE를 참조하여 생성된 공격 패킷은 대상 장치(200)의 메모리(220)에서 대상 장치(200)의 설정 값 변경 또는 작동에 관련된 정보를 저장한 메모리 주소이면서 특히 쓰기 가능한 메모리 주소(이하, “대상 메모리 주소”라 지칭함)에 관련된 패킷일 수 있다.The attack packet generated by referring to these CVEs is a memory address that stores information related to the change of setting values or operation of the target device 200 in the memory 220 of the target device 200, and particularly a writable memory address (hereinafter referred to as “ It may be a packet related to a target memory address”).

이러한 기존 취약점 공격에 따른 S100이 수행된 후, S200 및 S300이 차례로 수행될 수 있다. 이때, 기존 취약점 공격이 수행되는 경우, 대상 장치(200)에서 비정상 상태가 발생될 가능성이 비교적 높으므로, 제어부(130)는 기존 취약점 공격에 따른 취약성을 하나씩 확인하도록 제어 동작하는 것이 바람직할 수 있다. After S100 according to the existing vulnerability attack is performed, S200 and S300 may be sequentially performed. At this time, when an existing vulnerability attack is performed, since the possibility of an abnormal state occurring in the target device 200 is relatively high, it may be desirable for the control unit 130 to perform a control operation to check vulnerabilities according to the existing vulnerability attack one by one. .

즉, 기존 취약점 공격에 대한 하나의 공격 패킷을 전송하는 S100이 수행된 후 S200 및 S300이 수행되고, 이후 기존 취약점 공격에 대한 다른 하나의 공격 패킷을 전송하는 S100이 수행된 후 S200 및 S300이 수행될 수 있다. 이러한 과정은 모든 기존 취약점 공격에 대해 수행될 수 있다.That is, after S100, which transmits one attack packet for the existing vulnerability attack, is performed, S200 and S300 are performed, and then S100, which transmits another attack packet for the existing vulnerability attack, is performed, and then S200 and S300 are performed. It can be. This process can be performed for all existing vulnerability attacks.

<무작위 공격><Random attack>

무작위 공격은 공격 패킷 생성부(131)가 대상 장치(200)의 메모리(220)의 대상 메모리 주소들을 타겟으로 삼아 집중적으로 복수의 공격 패킷을 생성하여 전송하는 공격이다. 이때, 모든 대상 메모리 주소에 대해 각각 무작위 공격이 수행될 수 있다.A random attack is an attack in which the attack packet generation unit 131 targets target memory addresses of the memory 220 of the target device 200 and generates and transmits a plurality of attack packets intensively. At this time, a random attack may be performed on all target memory addresses.

즉, 어느 하나의 대상 메모리 주소에 대해 복수의 공격 패킷을 생성하여 연속으로 전송하며, 이러한 전송 과정이 각 대상 메모리 주소에 대해 차례로 수행된다. 이때, 하나의 대상 메모리 주소에 대해 전송되는 복수의 공격 패킷은 비정상 데이터를 포함할 수 있다. 이러한 무작위 공격에 따른 S100이 수행된 후, S200 및 S300이 차례로 수행될 수 있다. That is, a plurality of attack packets are generated for one target memory address and continuously transmitted, and this transmission process is performed in turn for each target memory address. At this time, a plurality of attack packets transmitted for one target memory address may include abnormal data. After S100 according to the random attack is performed, S200 and S300 may be sequentially performed.

다만, 대상 메모리 주소가 많을 뿐 아니라 각 대상 메모리 주소에 대한 공격 패킷도 많다. 이에 따라, S100 수행 시에 무작위 공격의 공격 패킷을 하나씩 전송하여 각각에 대해 S200 및 S300을 별도로 수행하는 경우에 상당한 시간이 소요될 수 있다. 이를 개선하기 위해, S100 수행 시에 무작위 공격의 공격 패킷들을 연속으로 대상 장치로 전송하는 것이 바람직할 수 있다.However, there are not only many target memory addresses, but also many attack packets for each target memory address. Accordingly, when performing S100, attack packets of the random attack are transmitted one by one, and S200 and S300 are separately performed for each, it may take a considerable amount of time. To improve this, it may be desirable to continuously transmit attack packets of random attacks to the target device when performing S100.

가령, 대상 메모리 주소에 대한 취약성을 하나씩 확인하기 위해, 하나의 대상 메모리 주소를 대상으로 하는 무작위 공격의 공격 패킷들을 연속으로 전송하는 S100이 수행된 후 S200 및 S300이 수행되고, 이후 다른 하나의 대상 메모리 주소를 대상으로 하는 무작위 공격의 공격 패킷들을 연속으로 전송하는 S100이 수행된 후 S200 및 S300이 수행될 수 있다. 이러한 과정은 모든 대상 메모리 주소에 대해 수행될 수 있다.For example, in order to check vulnerabilities on a target memory address one by one, S100 is performed to continuously transmit attack packets of a random attack targeting one target memory address, and then S200 and S300 are performed, and then another target S200 and S300 may be performed after S100 of sequentially transmitting attack packets of a random attack targeting a memory address. This process can be performed for all target memory addresses.

또는, 어느 복수의 대상 메모리 주소를 대상으로 하는 무작위 공격의 공격 패킷들을 전송하는 S100이 수행된 후 S200 및 S300이 수행되고, 이후 다른 복수의 대상 메모리 주소를 대상으로 하는 무작위 공격의 공격 패킷들을 전송하는 S100이 수행된 후 S200 및 S300이 수행될 수도 있다. 이러한 과정은 모든 대상 메모리 주소에 대해 수행될 수 있다.Alternatively, after S100 in which attack packets of a random attack targeting a plurality of target memory addresses are transmitted, S200 and S300 are performed, and then attack packets of a random attack targeting a plurality of other target memory addresses are transmitted. After S100 is performed, S200 and S300 may be performed. This process can be performed for all target memory addresses.

또는, 모든 대상 메모리 주소를 대상으로 하는 무작위 공격의 공격 패킷들을 전송하는 S100이 수행된 후 S200 및 S300이 수행될 수도 있다. Alternatively, S200 and S300 may be performed after S100 in which attack packets of a brute force attack targeting all target memory addresses are transmitted.

한편, S300에서 비정상 상태가 발생하는 경우, 취약성 판단부(133)는 대상 장치(200)가 S100의 무작위 공격에 따른 공격 패킷들에 대해 취약성이 있는 것으로 판단한다. 다만, 이 경우, S100의 무작위 공격에 따른 공격 패킷들 중에 어느 공격 패킷에 의해 취약성이 있는지를 구체적으로 확인할 필요가 있다.Meanwhile, when an abnormal state occurs in S300, the vulnerability determining unit 133 determines that the target device 200 is vulnerable to attack packets according to the random attack of S100. However, in this case, it is necessary to specifically check which attack packet has a vulnerability among attack packets according to the random attack of S100.

이를 위해, 공격 패킷 생성부(131)는 이전에 수행된 S100에서 전송된 공격 패킷들(즉, 취약성이 있는 무작위 공격에 따른 공격 패킷들)을 그룹으로 나눈다. 이후, 각 그룹에 속한 공격 패킷을 이용하여, 그룹 별로 공격 패킷을 전송하면서 다시 S100 내지 S300이 반복 수행된다. 그 결과, 제어부(130)는 취약성이 있는 무작위 공격에 따른 공격 패킷들 중에서 어느 공격 패킷에 취약성이 있는지를 구체적으로 찾아 확인할 수 있다.To this end, the attack packet generation unit 131 divides the attack packets (ie, attack packets according to random attacks with vulnerabilities) transmitted in the previous operation S100 into groups. Thereafter, steps S100 to S300 are repeatedly performed while transmitting attack packets for each group using attack packets belonging to each group. As a result, the control unit 130 can specifically find and confirm which attack packet has a vulnerability among attack packets according to a random attack having a vulnerability.

예를 들어, S100에서 전송되는 공격 패킷들은, 데이터 길이(data length) 섹션이 허용된 길이 범위 외에서 서로 다른 값을 가지거나, 데이터 섹션이 데이터 길이 섹션과 다른 길이의 데이터를 가지되 서로 다른 길이의 데이터를 가지거나, 데이터 섹션이 허용된 값 외에서 서로 다른 값을 가지거나, 데이터 섹션이 허용된 종류 외의 데이터 종류를 가지되 서로 다른 데이터 종류를 가질 수 있으나, 이에 한정되는 것은 아니다.For example, in the attack packets transmitted in S100, the data length section has a different value outside the allowed length range, or the data section has data of a different length than the data length section but has a different length It may have data, the data section may have a different value other than the permitted value, or the data section may have a data type other than the permitted data type but may have different data types, but is not limited thereto.

<의미론적 공격><Semantic Attack>

의미론적 공격은 복수의 대상 메모리 주소를 타겟으로 삼아 이들 대상 메모리 주소에 대한 공격 패킷들을 생성하여 다양한 순서로 전송함으로써 그 전송 순서에 따른 취약성을 확인하는 공격이다. 즉, 무작위 공격에서 취약성이 발생하지 않더라도, 대상 메모리 주소들에 대한 공격 순서를 변경하면 취약성이 발생하는 경우가 발생할 수 있으며, 의미론적 공격은 이러한 경우를 확인하기 위한 공격이다.A semantic attack is an attack that identifies vulnerabilities according to the transmission order by targeting a plurality of target memory addresses, generating attack packets for these target memory addresses, and transmitting them in various orders. That is, even if a vulnerability does not occur in a random attack, there may be a case where a vulnerability occurs when the order of attacks on target memory addresses is changed, and a semantic attack is an attack to check such a case.

이를 위해, 제어부(130)는 의미론적 공격의 타겟에 해당하는 복수의 대상 메모리 주소를 선택(설정)할 수 있다. 물론, 이러한 선택은 입력부(미도시)를 통한 사용자의 입력에 의해 수행될 수도 있다. To this end, the controller 130 may select (set) a plurality of target memory addresses corresponding to the target of the semantic attack. Of course, such selection may be performed by a user's input through an input unit (not shown).

즉, 의미론적 공격이 수행되는 경우, 의미론적 공격의 타겟이 선택된 후, 선택된 타겟의 대상 메모리 주소들에 대해 제1 순서로 공격 패킷이 전송(가령, 제1 대상 메모리 주소에 대한 공격 패킷 전송 후에 제2 대상 메모리 주소에 대한 공격 패킷 전송)됨으로써 S100이 수행되며, 이후 S200 및 S300이 차례로 수행된다. 다음으로, 선택된 타겟의 대상 메모리 주소들에 대해 제1 순서와 다른 제2 순서로 공격 패킷이 전송(가령, 제2 대상 메모리 주소에 대한 공격 패킷 전송 후에 제1 대상 메모리 주소에 대한 공격 패킷 전송)됨으로써 S100이 수행되며, 이후 S200 및 S300이 차례로 수행된다. 이와 같이, 선택된 타겟의 대상 메모리 주소들에 대해 다양한 순서로 공격 패킷이 전송되어, 타겟의 대상 메모리 주소들의 공격 순서에 따른 취약성을 확인할 수 있다.That is, when a semantic attack is performed, after a target of the semantic attack is selected, attack packets are transmitted in the first order to the target memory addresses of the selected target (eg, after transmitting the attack packet to the first target memory address) The attack packet is transmitted to the second target memory address) to perform S100, and then S200 and S300 are sequentially performed. Next, attack packets are transmitted to the target memory addresses of the selected target in a second order different from the first order (eg, attack packets to the first target memory address after transmission to the second target memory address). By doing so, S100 is performed, and then S200 and S300 are sequentially performed. In this way, attack packets are transmitted in various orders to the target memory addresses of the selected target, and vulnerabilities according to the attack order of the target memory addresses of the target can be identified.

다만, 이러한 의미론적 공격에서, S100에서 타겟의 각 대상 메모리 주소들에 대해 전송되는 각 공격 패킷은 비정상 데이터를 포함하거나 정상 데이터를 포함할 수 있다. However, in this semantic attack, each attack packet transmitted to each target memory address of the target in S100 may include abnormal data or normal data.

가령, 하나의 순서(제1 순서 또는 제2 순서)의 S100에서, 처음에 정상 데이터의 공격 패킷을 전송하고, 다음에 비정상 데이터의 공격 패킷을 전송할 수 있다. 또는, 하나의 순서(제1 순서 또는 제2 순서)의 S100에서, 처음에 비정상 데이터의 공격 패킷을 전송하고, 다음에 정상 데이터의 공격 패킷을 전송할 수 있다. 또는, 제1 순서의 S100에서 정상 데이터의 공격 패킷을 전송하고, 제2 순서의 S100에서 비정상 데이터의 공격 패킷을 전송할 수 있다. 또는, 제1 순서의 S100에서 비정상 데이터의 공격 패킷을 전송하고, 제2 순서의 S100에서 정상 데이터의 공격 패킷을 전송할 수 있다. 또는, 제1 순서 및 제2 순서의 모든 S100에서, 정상 데이터의 공격 패킷을 전송할 수 있다. 또는, 제1 순서 및 제2 순서의 모든 S100에서, 비정상 데이터의 공격 패킷을 전송할 수 있다.For example, in S100 of one sequence (first sequence or second sequence), an attack packet of normal data may be transmitted first, and then an attack packet of abnormal data may be transmitted. Alternatively, in S100 of one sequence (first sequence or second sequence), an attack packet of abnormal data may be transmitted first, and then an attack packet of normal data may be transmitted. Alternatively, an attack packet of normal data may be transmitted in the first sequence S100, and an attack packet of abnormal data may be transmitted in the second sequence S100. Alternatively, an attack packet of abnormal data may be transmitted in the first sequence S100, and an attack packet of normal data may be transmitted in the second sequence S100. Alternatively, attack packets of normal data may be transmitted in all S100 of the first order and the second order. Alternatively, an attack packet of abnormal data may be transmitted in all S100 of the first order and the second order.

물론, 모든 공격 패킷이 정상 데이터를 포함하는 경우, 대상 장치(200)가 정상 데이터의 공격 패킷들에 따라 복수의 정상 동작을 다양한 순서로 수행할 경우에 발생하는 취약성에 대해서도 확인 가능하다. Of course, when all attack packets include normal data, it is also possible to check vulnerabilities that occur when the target device 200 performs a plurality of normal operations in various orders according to attack packets of normal data.

도 6은 메모리 주소에 대한 예시를 나타낸다.6 shows an example of a memory address.

즉, 도 6을 참조하면, A 및 X의 대상 메모리 주소가 의미론적 공격의 타겟으로 선택될 수 있다. 이때, A에 대한 공격 패킷을 전송한 후에 X에 대한 공격 패킷을 전송하는 제1 순서의 S100을 수행한 후 S200 및 S300을 수행한 결과, 취약성이 발생하지 않는다. 하지만, 그 순서를 달리하여, X에 대한 공격 패킷을 전송한 후에 A에 대한 공격 패킷을 전송하는 제2 순서의 S100을 수행한 후 S200 및 S300을 수행한 결과, 취약성이 발생할 수 있다.That is, referring to FIG. 6 , target memory addresses of A and X may be selected as targets of a semantic attack. At this time, as a result of performing S200 and S300 after performing S100 of the first sequence of transmitting the attack packet for X after transmitting the attack packet for A, vulnerability does not occur. However, vulnerability may occur as a result of performing S200 and S300 after performing S100 of the second order in which the attack packet for X is transmitted and then the attack packet for A is transmitted in a different order.

예를 들어, 메뉴 버튼의 입력 후 Enter가 입력되는 경우(제1 순서)에 대상 장치(200)는 정상 상태로 동작하지만, Enter 입력 후에 메뉴 버튼가 입력되는 경우(제2 순서)에 대상 장치(200)는 비정상 상태로 동작할 수도 있다. For example, when Enter is input after entering the menu button (first sequence), the target device 200 operates in a normal state, but when the menu button is input after Enter is input (second sequence), the target device 200 ) may operate in an abnormal state.

이러한 비정상 상태를 확인하기 위해, 메뉴 버튼 입력 동작과 Enter 입력 동작을 타겟으로 설정하여 의미론적 공격이 수행될 수 있다. 즉, 제1 순서의 각 동작에 대한 정상 데이터의 공격 패킷들을 전송하는 S100을 수행한 후 S200 및 S300을 수행한 결과, 대상 장치(200)는 정상 상태로 동작하며 이에 따라 제1 순서에 따른 취약성은 없는 것으로 확인된다. 반면, 제2 순서의 각 동작에 대한 정상 데이터의 공격 패킷들을 전송하는 S100을 수행한 후 S200 및 S300을 수행한 결과, 대상 장치(200)는 비정상 상태로 동작하며 이에 따라 제2 순서에 따른 취약성이 있는 것으로 확인된다.To check this abnormal state, a semantic attack can be performed by setting a menu button input operation and an Enter input operation as targets. That is, as a result of performing S200 and S300 after performing S100 for transmitting attack packets of normal data for each operation of the first order, the target device 200 operates in a normal state, and thus the vulnerability according to the first order is confirmed to be absent. On the other hand, as a result of performing S200 and S300 after performing S100 for transmitting attack packets of normal data for each operation of the second order, the target device 200 operates in an abnormal state, and thus, the vulnerability according to the second order It is confirmed that there is

<복합 공격><Compound Attack>

한편, 본 발명의 일 실시예에 따른 테스트 방법은 기존 취약점 공격, 무작위 공격 단계 및 의미론적 공격으로 이루어진 공격 그룹에서 적어도 2개를 선택하여 공격하는 복합 공격을 수행할 수 있다. 이러한 복합 공격의 경우, 대상 장치(200)의 다양한 설정 값 또는 동작에 대한 취약성을 보다 면밀하게 확인할 수 있는 이점이 있다.Meanwhile, the test method according to an embodiment of the present invention may perform a complex attack in which at least two are selected and attacked from an attack group consisting of an existing vulnerability attack, a random attack step, and a semantic attack. In the case of such a complex attack, there is an advantage in being able to more closely check vulnerabilities for various setting values or operations of the target device 200 .

즉, 제어부(130)는 공격 그룹 중에서 제1 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 공격 그룹 중에서 다른 제2 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.That is, the control unit 130 performs S100 according to the first attack in the attack group, then performs S200 and S300 sequentially, and then performs S100 according to the second attack in the attack group, and then performs S200 and S300. can be done sequentially.

예를 들어, 제어부(130)는 기존 취약점 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다. 또는, 제어부(130)는 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 의미론적 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.For example, the controller 130 may perform S100 according to an existing vulnerability attack, then sequentially perform S200 and S300, and then perform S100 according to a random attack and then sequentially perform S200 and S300. Alternatively, the control unit 130 may perform S100 according to a random attack, then sequentially perform S200 and S300, and then perform S100 according to a semantic attack and then sequentially perform S200 and S300.

만일, 공격 그룹에서 모든 공격이 수행되는 경우, 제어부(130)는 공격 그룹 중에서 제1 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하고, 이후에 공격 그룹 중에서 다른 제2 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 공격 그룹 중에서 나머지 제3 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.If all attacks are performed in the attack group, the control unit 130 performs S100 according to the first attack in the attack group, then sequentially performs S200 and S300, and then performs another second attack in the attack group. After performing S100, S200 and S300 are sequentially performed, and after performing S100 according to the remaining third attack in the attack group, S200 and S300 may be sequentially performed.

예를 들어, 제어부(130)는 기존 취약점 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하고, 이후에 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 의미론적 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.For example, the controller 130 performs S100 according to the existing vulnerability attack, then sequentially performs S200 and S300, and then performs S100 according to the random attack, then sequentially performs S200 and S300, and then After performing S100 according to the semantic attack, S200 and S300 may be sequentially performed.

<실험><Experiment>

본 발명에 따른 실험을 수행하였다. 이를 위해, FreeRTOS를 사용하여 RTOS(Real Time Operating System)로 구현된 임베디스 시스템인 테스트 장치(100)를 준비하였다. RTOS의 스레드에서 애플리케이션은 테스트 시작을 실행할 때 자신의 작업을 할당 받는다. 다만, 메모리 크기가 작고 CPU 성능이 낮기 때문에 연결된 외부에 패킷 생성 모듈을 구현하였다. 생성된 패킷은 JIG(middle section)로 전송되고 대상 장치(200)의 JIG로 다시 전송된다.An experiment according to the present invention was carried out. To this end, a test device 100, which is an embedded system implemented as a Real Time Operating System (RTOS) using FreeRTOS, was prepared. In the thread of the RTOS, the application is assigned its task when executing the test startup. However, since the memory size is small and the CPU performance is low, a packet generation module was implemented externally. The generated packet is transmitted to a middle section (JIG) and transmitted to the JIG of the target device 200 again.

스마트 분배 전기 장치를 포함하는 보호 계전기 장치를 대상 장치(200)로 선택하였다. 다만, IED 카테고리 중 단순 전기기기(예: 기본 배전기기, 기본 릴레이 등)보다 메쉬 구조가 더 많은 전기기기를 대상 장치(200)로 선택하였다. 메쉬 구조는 하드웨어 기반의 구현뿐만 아니라 HMI를 통해 사용되는 명령어를 이용하는 RTOS 기반의 소프트웨어로 구현된 것을 의미한다.A protection relay device including a smart distribution electric device was selected as the target device 200 . However, among the IED categories, electric devices having more mesh structures than simple electrical devices (eg, basic distributors, basic relays, etc.) are selected as the target device 200 . The mesh structure means hardware-based implementation as well as RTOS-based software implementation using commands used through HMI.

Modbus RTU 프로토콜을 사용하는 대상 장치(200)를 테스트하기 위해, 대상 장치(200)를 USB 또는 직렬 포트를 사용하여 테스트 장치(100)에 연결한다. 연결 시 테스트 장치(100) 내부의 이더넷 스위치는 raw 패킷을 허용 가능한 패킷으로 전환한다.To test the target device 200 using the Modbus RTU protocol, the target device 200 is connected to the test device 100 using a USB or serial port. Upon connection, the Ethernet switch inside the test device 100 converts raw packets into acceptable packets.

대상 장치(200)의 쓰기 가능한 모든 메모리 주소에 대해 공격을 수행하면서 그 취약성을 확인하였다. 먼저, 기존 취약점 공격을 위해, exploit-DB 웹사이트에서 개시된 CVE 목록을 참조하여 공격 패킷의 구조를 구현하였다. 이러한 CVE 목록을 참조한 기존 취약점 공격을 수행한 다음에 취약점이 발견되지 않으면, 테스트 장치(100)는 무작위 공격을 수행한다. 무작위 공격 동안, 테스트 장치(100)는 각 섹션 값을 뒤집는 Modbus RTU 패킷을 생성한다. 무작위 공격이 실패하면, 테스트 장치(100)는 의미론적 공격을 수행한다.While performing an attack on all writable memory addresses of the target device 200, the vulnerability was confirmed. First, for attacking existing vulnerabilities, the attack packet structure was implemented by referring to the CVE list disclosed on the exploit-DB website. If a vulnerability is not found after performing an existing vulnerability attack referring to such a CVE list, the test device 100 performs a random attack. During a brute force attack, the test rig 100 generates Modbus RTU packets that invert each section value. If the brute force attack fails, the test device 100 performs a semantic attack.

이러한 의미론적 공격은 단위 테스트와 유사하게 수행된다. 먼저, 테스트 장치(100)는 쓰기 가능한 메모리 주소 중에서 타겟을 선택하고, 대상 장치(200)의 처음 타겟에 대해 정상 데이터의 공격 패킷을 전송한 후, 다음 주소의 타겟에 대해 비정상의 공격 패킷을 전송한다. 테스트 장치(100)는 공격 가능한 메모리 주소가 남아 있지 않을 때까지 타겟에 대한 모든 경우의 순서에 대한 의미론적 공격을 수행하였다.These semantic attacks are performed similarly to unit tests. First, the test device 100 selects a target among writable memory addresses, transmits an attack packet of normal data to the first target of the target device 200, and then transmits an abnormal attack packet to the target of the next address. do. The test device 100 performed a semantic attack on the target in all cases in sequence until there were no attackable memory addresses remaining.

도 7은 본 발명의 실험에서 발견된 4개의 취약점에 대한 내용을 나타낸다.7 shows the contents of the four vulnerabilities found in the experiment of the present invention.

그 결과, 도 7에 도시된 바와 같이, 총 4개의 취약점, 즉 1개의 치명적인 취약점과, 3개의 약한 취약점이 발견되었다. 1개의 치명적인 취약점은 PLC에서 발생한다. 이 취약점으로 인해 읽기 권한만 있는 주소가 덤핑(dumping) 되었다. 기본적으로, RS485 통신은 통신할 때 데이터 길이 섹션을 확인해야 한다. 이러한 이유로 RS485 기반 통신은 버퍼 오버플로 공격을 수행하기 어렵다. 나머지 약한 취약점은 빠른 패킷 전송(fast packet sending)에 관한 것이며, 자체 처리 용량을 초과하여 처리할 수 없다. 이러한 공격이 발생한 대상 장치(200)는 공격 패킷 이외의 명령을 수락할 수 없다.As a result, as shown in FIG. 7 , a total of four vulnerabilities, that is, one critical vulnerability and three weak vulnerabilities were found. One critical vulnerability occurs in PLCs. This vulnerability resulted in dumping of read-only addresses. Basically, RS485 communication needs to check the data length section when communicating. For this reason, RS485-based communication is difficult to perform buffer overflow attacks. The remaining weaker vulnerabilities are related to fast packet sending, and cannot be processed beyond their own processing capacity. The target device 200 where such an attack has occurred cannot accept commands other than attack packets.

상술한 바와 같이 구성되는 본 발명은 모드버스 RTU 등과 같은 프로토콜 방식의 직렬 통신로 연결되는 대상 장치에 대해 해당 프로토콜의 직렬 통신에 따른 취약성을 테스트할 수 있어, 종래의 TCP/IP 프로토콜 방식에 따른 취약성 테스트의 한계를 극복할 수 있는 이점이 있다. 또한, 본 발명은 기존 취약점 공격, 무작위 공격 단계 및 의미론적 공격으로 이루어진 공격 그룹에서 적어도 2개를 선택하여 공격하는 복합 공격을 수행함으로써, 대상 장치의 다양한 설정 값 또는 동작에 대한 취약성을 보다 면밀하게 확인할 수 있는 이점이 있다.The present invention configured as described above can test the vulnerability according to the serial communication of the corresponding protocol for the target device connected to the serial communication of the protocol method such as Modbus RTU, so that the vulnerability according to the conventional TCP/IP protocol method There are advantages to overcoming the limitations of testing. In addition, the present invention performs a complex attack in which at least two are selected and attacked from an attack group consisting of an existing vulnerability attack, a random attack step, and a semantic attack, thereby more closely examining the vulnerability of various setting values or operations of the target device. There are benefits to check.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.In the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention is not limited to the described embodiments, and should be defined by the following claims and equivalents thereof.

100: 테스트 장치 200: 대상 장치
110, 210: 통신부 120, 220: 메모리
130, 230: 제어부
100: test device 200: target device
110, 210: communication unit 120, 220: memory
130, 230: control unit

Claims (12)

대상 장치에 직렬 통신 방식으로 연결되어 상기 대상 장치의 직렬 통신에 따른 취약성을 테스트하는 테스트 장치에서 수행되는 방법으로서,
상기 대상 장치로 공격 패킷을 전송하는 단계;
상기 대상 장치로 허용된 정상 범위 내의 값을 포함하는 정상 패킷을 전송하는 단계; 및
상기 대상 장치의 비정상 상태가 발생하는 경우, 상기 대상 장치가 상기 공격 패킷에 대해 취약성이 있는 것으로 판단하는 단계;
를 포함하는 방법.
A method performed in a test device connected to a target device in a serial communication method to test vulnerabilities according to serial communication of the target device,
Transmitting an attack packet to the target device;
Transmitting a normal packet including a value within an allowed normal range to the target device; and
determining that the target device is vulnerable to the attack packet when an abnormal state of the target device occurs;
How to include.
제1항에 있어서,
상기 직렬 통신은 모드버스 RTU(Modbus Remote Terminal Unit) 프로토콜을 기반으로 하는 통신인 방법.
According to claim 1,
Wherein the serial communication is communication based on Modbus RTU (Modbus Remote Terminal Unit) protocol.
제1항에 있어서,
상기 공격 패킷을 전송하는 단계는 복수의 공격 패킷을 연속으로 대상 장치로 전송하는 단계를 포함하며,
상기 판단하는 단계는 상기 비정상 상태가 발생하는 경우에 상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단하는 단계를 포함하는 방법.
According to claim 1,
The transmitting of the attack packets includes sequentially transmitting a plurality of attack packets to the target device,
The determining step includes determining that the target device is vulnerable to the plurality of attack packets when the abnormal state occurs.
제3항에 있어서,
상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단되는 경우, 상기 복수이 공격 패킷을 그룹으로 나누고 그룹에 속한 공격 패킷을 이용하여, 그룹 별로 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 반복 수행함으로써, 상기 복수의 공격 패킷 중에서 취약성이 있는 공격 패킷을 찾는 단계를 더 포함하는 방법.
According to claim 3,
When it is determined that the target device is vulnerable to the plurality of attack packets, dividing the plurality of attack packets into groups and transmitting the attack packets for each group using attack packets belonging to the groups, The method further comprising finding an attack packet having a vulnerability among the plurality of attack packets by repeatedly performing the transmitting and determining steps.
제1항에 있어서,
상기 공격 패킷을 전송하는 단계는 공개된 기존 취약점 정보(Common Vulnerabilities and Exposures, CVE)에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 단계를 포함하는 방법.
According to claim 1,
The step of transmitting the attack packet includes generating and transmitting an attack packet having a value related to existing vulnerability information (Common Vulnerabilities and Exposures, CVE) that has been disclosed.
제1항에 있어서,
상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 단계를 포함하는 방법.
According to claim 1,
The transmitting of the attack packets stores setting values or operation-related information of the target device, but generates a plurality of attack packets each having a value that changes outside of the permitted range for all memory addresses of the target device that are writable. and continuously transmitting.
제6항에 있어서,
상기 공격 패킷은 데이터 길이(data length) 섹션이 허용된 길이 범위 외의 값을 가지는 비정상 데이터, 데이터 섹션이 데이터 길이 섹션과 다른 길이의 데이터를 가지는 비정상 데이터, 데이터 섹션이 허용된 값 외의 값을 가지는 비정상 데이터, 또는 데이터 섹션이 허용된 종류 외의 데이터 종류를 가지는 비정상 데이터를 포함하는 방법.
According to claim 6,
The attack packet includes abnormal data in which the data length section has a value outside the allowed length range, abnormal data in which the data section has data having a length different from that of the data length section, and abnormal data in which the data section has a value outside the allowed value. How data, or sections of data, contain abnormal data having a data type other than the allowed type.
제1항에 있어서,
상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 단계를 포함하는 방법.
According to claim 1,
The transmitting of the attack packets includes transmitting attack packets to a plurality of writable memory addresses of the target device in a different order while storing setting values or information related to operation of the target device.
제1항에 있어서,
공개된 기존 취약점 정보에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 기존 취약점 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 무작위 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 의미론적 공격을 각각 포함하는 공격 그룹 중에서 선택된 적어도 2개의 공격이 상기 공격 패킷을 전송하는 단계에서 각각 수행되는 방법.
According to claim 1,
An existing vulnerability attack that generates and transmits an attack packet having a value related to existing vulnerability information that has been disclosed, and changes outside the permitted range for all memory addresses of the target device that store information related to the operation of the target device. A random attack that generates and continuously transmits a plurality of attack packets having values, and a semantic attack that transmits attack packets to a plurality of memory addresses of the target device that store information related to the operation of the target device in different order. A method in which at least two attacks selected from attack groups each including an attack are respectively performed in the step of transmitting the attack packet.
제9항에 있어서,
상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행된 후,
상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되는 방법.
According to claim 9,
After the step of transmitting the attack packet according to any one attack from the attack group, the step of transmitting the normal packet, and the step of determining are performed,
The method of transmitting the attack packet according to another attack from the attack group, transmitting the normal packet, and determining the attack.
제9항에 있어서,
상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되고,
이후 상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되며,
이후 상기 공격 그룹 중에서 나머지 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되는 방법.
According to claim 9,
The step of transmitting the attack packet according to any one attack from the attack group, the step of transmitting the normal packet, and the step of determining are performed,
Thereafter, the step of transmitting the attack packet according to another attack from the attack group, the step of transmitting the normal packet, and the step of determining are performed,
Then, the step of transmitting the attack packet according to the other attack from the attack group, the step of transmitting the normal packet, and the step of determining are performed.
대상 장치와 직렬 통신을 수행하는 통신부; 및
상기 통신부의 동작을 제어하면서 상기 대상 장치의 직렬 통신에 따른 취약성 테스트를 제어하는 제어부;를 포함하며,
상기 제어부는,
상기 대상 장치로 공격 패킷을 전송한 후에 상기 대상 장치로 허용된 정상 범위 내의 값을 포함하는 정상 패킷을 전송하도록 제어하며, 이후 상기 대상 장치의 가동 중지 또는 랙(lag) 현상이 발생하거나 상기 대상 장치가 허용된 범위 외의 값을 가지는 응답 패킷으로 응답하는 경우에 상기 대상 장치가 상기 공격 패킷에 대해 취약성이 있는 것으로 판단하는 장치.
a communication unit that performs serial communication with a target device; and
A control unit controlling a vulnerability test according to serial communication of the target device while controlling an operation of the communication unit;
The control unit,
After transmitting the attack packet to the target device, control to transmit a normal packet including a value within the allowed normal range to the target device, and then, when the target device stops operating or a lag phenomenon occurs, or the target device A device that determines that the target device has a vulnerability to the attack packet when it responds with a response packet having a value outside the allowed range.
KR1020210134174A 2021-10-08 2021-10-08 Vulnerability testing method and apparatus for serial communication apparaus KR102581422B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210134174A KR102581422B1 (en) 2021-10-08 2021-10-08 Vulnerability testing method and apparatus for serial communication apparaus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210134174A KR102581422B1 (en) 2021-10-08 2021-10-08 Vulnerability testing method and apparatus for serial communication apparaus

Publications (2)

Publication Number Publication Date
KR20230050869A true KR20230050869A (en) 2023-04-17
KR102581422B1 KR102581422B1 (en) 2023-09-20

Family

ID=86128346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210134174A KR102581422B1 (en) 2021-10-08 2021-10-08 Vulnerability testing method and apparatus for serial communication apparaus

Country Status (1)

Country Link
KR (1) KR102581422B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047231A (en) * 2006-11-23 2008-05-28 한국전자통신연구원 System and method for detecting software attacks on linux
KR20160112750A (en) * 2015-03-20 2016-09-28 한국전자통신연구원 Packet monitoring device and packet monitoring method for communication packet
KR20170091989A (en) * 2016-02-02 2017-08-10 동신대학교산학협력단 System and method for managing and evaluating security in industry control network
KR20190017208A (en) * 2017-08-10 2019-02-20 한국전자통신연구원 Apparatus for serial port based cyber security vulnerability assessment and method for the same
KR20210089592A (en) * 2020-01-08 2021-07-16 건국대학교 산학협력단 METHOD FOR DETECTING DRDoS ATTACK, AND APPARATUSES PERFORMING THE SAME

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047231A (en) * 2006-11-23 2008-05-28 한국전자통신연구원 System and method for detecting software attacks on linux
KR20160112750A (en) * 2015-03-20 2016-09-28 한국전자통신연구원 Packet monitoring device and packet monitoring method for communication packet
KR20170091989A (en) * 2016-02-02 2017-08-10 동신대학교산학협력단 System and method for managing and evaluating security in industry control network
KR20190017208A (en) * 2017-08-10 2019-02-20 한국전자통신연구원 Apparatus for serial port based cyber security vulnerability assessment and method for the same
KR20210089592A (en) * 2020-01-08 2021-07-16 건국대학교 산학협력단 METHOD FOR DETECTING DRDoS ATTACK, AND APPARATUSES PERFORMING THE SAME

Also Published As

Publication number Publication date
KR102581422B1 (en) 2023-09-20

Similar Documents

Publication Publication Date Title
JP6871957B2 (en) Emulated endpoint configuration
US8555381B2 (en) Cloud computing as a security layer
US9934507B2 (en) Mapping user actions to historical paths to determine a predicted endpoint
US20180052999A1 (en) Domain-Specific Hardwired Web Browser Machine
US10445507B2 (en) Automated security testing for a mobile application or a backend server
KR102490490B1 (en) Method and device for magnetic disk encryption protection
CN103631664A (en) Inter-process communication method and device
JP2008158899A (en) Device controller
US20050179666A1 (en) Information processing unit, system, remote control method, and storage medium
US20200314130A1 (en) Attack detection device, attack detection method, and computer readable medium
CN104063673A (en) Method for inputting information in browser and browser device
US11868799B2 (en) Command information transmission method, system, and apparatus, and readable storage medium
US20220263850A1 (en) Distributed network-level probabilistic attack graph generation
CN112269706A (en) Interface parameter checking method and device, electronic equipment and computer readable medium
KR20230050869A (en) Vulnerability testing method and apparatus for serial communication apparaus
US20240163190A1 (en) Signal based node relationship identification
CN111614694A (en) Communication method, communication device, electronic equipment and computer-readable storage medium
US11880691B2 (en) Internet of things (IoT) device, IoT device management system, and method for managing IoT device
US9384074B1 (en) Redirecting service calls using endpoint overrides
CN101317143A (en) Plant control system
CN116074052A (en) Vulnerability simulation method and device
US11297086B2 (en) Correlation-based network security
CN103746860A (en) Network monitoring system and method thereof in virtual environment
KR20220075652A (en) Method and apparatus for managing program data of programmable logic controller, and the plc system using the same
KR20170042143A (en) KVM Security System of Semiconductor Manufacturing Equipment

Legal Events

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