KR20230050869A - Vulnerability testing method and apparatus for serial communication apparaus - Google Patents
Vulnerability testing method and apparatus for serial communication apparaus Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 68
- 238000012360 testing method Methods 0.000 title claims abstract description 62
- 230000002159 abnormal effect Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 68
- 230000004044 response Effects 0.000 claims description 10
- 238000010998 test method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 230000008685 targeting Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
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
Description
본 발명은 직렬 통신 장치에 대한 취약성 테스트 기술에 관한 것으로서, 더욱 상세하게는 모드버스 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
2 shows a block diagram of a test device and a
3 shows a block configuration diagram of the
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
도 1을 참조하면, 본 발명의 일 실시예에 따른 테스트 장치(100)는 대상 장치(200)에 직렬 통신 방식으로 연결되어 대상 장치(200)에 적용된 직렬 통신의 프로토콜(protocol)에 따른 취약성을 테스트하는 장치이다. Referring to FIG. 1 , a
한편, 종래 기술이 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
특히, 모드버스 RTU의 직렬 통신 프로토콜이 적용된 경우, 대상 장치(200)로 비정상 데이터를 전송하더라도, 대상 장치(200)는 해당 비정상 데이터에 대해 거부 또는 삭제 등을 수행하지만, 해당 비정상 데이터의 수신에 따른 오류 메시지 등을 송신 측으로 대부분 응답하지 않으므로, 종래 기술에 따른 취약성 테스트 방식이 적용되기 어렵다. In particular, when the serial communication protocol of Modbus RTU is applied, even if abnormal data is transmitted to the
이를 해결하기 위해, 본 테스트 장치(100)는 대상 장치(200)에 적용된 모드버스 RTU의 직렬 통신 프로토콜 등에 대한 취약성을 테스트하기 위한 장치로서, 컴퓨팅(computing)이 가능한 전자 장치 또는 컴퓨팅 네트워크일 수 있다.In order to solve this problem, the
예를 들어, 전자 장치는 데스크탑 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
이러한 테스트 장치 및 대상 장치(100, 200)는, 도 2에 도시된 바와 같이, 통신부(110), 메모리(120) 및 제어부(130)를 포함할 수 있다.As shown in FIG. 2 , the test device and the
통신부(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
즉, 테스트 장치(100)의 통신부(110)는 후술할 본 발명에 따른 테스트 방법의 수행 시에 직렬 통신 방식으로 공격 패킷, 정상 패킷 등을 대상 장치(200)의 통신부(210)로 전송할 수 있으며, 이후에 대상 장치(200)의 통신부(210)로부터 직렬 통신 방식으로 응답 패킷 등을 수신할 수도 있다.That is, the communication unit 110 of the
메모리(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
예를 들어, 메모리(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
예를 들어, 제어부(130, 230)는 하드웨어인 프로세서(processor) 또는 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.For example, the
한편, 테스트 장치(100) 및 대상 장치(200)는 입력부(미도시) 또는 표시부(미도시) 등을 추가적으로 포함할 수 있다.Meanwhile, the
이때, 입력부는 사용자의 입력에 대응하여, 입력데이터를 발생시키며, 다양한 입력수단을 포함할 수 있다. 예를 들어, 입력부는 키보드(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
도 3을 참조하면, 테스트 장치(100)의 제어부(130)는 후술할 본 발명에 따른 테스트 방법의 수행을 제어하기 위해, 공격 패킷 생성부(131), 정상 패킷 생성부(132) 및 취약성 판단부(133)를 포함할 수 있다. 예를 들어, 공격 패킷 생성부(131), 정상 패킷 생성부(132) 및 취약성 판단부(133)는 제어부(130)의 하드웨어 구성이거나, 제어부(130)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다.Referring to FIG. 3 , the
이하, 본 발명의 일 실시예에 따른 테스트 방법에 대해 보다 상세하게 설명하도록 한다.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
S100은 제어부(130)의 공격 패킷 생성부(131)가 공격 패킷을 생성하여 통신부(110)를 통해 대상 장치(200)의 통신부(210)로 전송하는 단계이다. 즉, 공격 패킷은 대상 장치(200)의 설정 값을 변경하거나 또는 대상 장치(200)가 특정 동작을 수행하도록 하는 패킷으로서, 정상 데이터 또는 비정상 데이터를 포함할 수 있다. S100 is a step in which the attack
이때, 정상 데이터는 패킷의 각 섹션이 해당 패킷의 종류에 따라 허용된 정상 범위 내의 값을 가지는 경우의 데이터를 지칭한다. 또한, 비정상 데이터는 패킷의 각 섹션이 해당 패킷의 종류에 따라 허용된 정상 범위 외의 값을 가지는 경우의 데이터를 지칭한다. 즉, 후술할 공격 종류에 따라 공격 패킷은 정상 데이터를 포함하거나 비정상 데이터를 포함할 수 있다.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
다만, S100에서, 공격 패킷 생성부(131)는 후술할 공격의 종류에 따라 하나의 공격 패킷을 생성하여 전송하거나, 복수의 공격 패킷을 생성하여 전송할 수 있다. 이에 대해서는 후술할 무작위 공격에서 보다 상세하게 설명하도록 한다.However, in S100, the attack
이후, 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
다만, 대상 장치(200)는 제어부(230)의 사양에 따라 테스트 장치(100)로부터 수신된 특정 종류의 패킷에 대해 응답이 가능할 수도 있다. 이 경우, 정상 패킷 생성부(132)는 대상 장치(200)로부터 응답되는 종류의 패킷을 정상 패킷으로 생성하여 전송할 수 있다.However, the
이후, S300은 제어부(130)의 취약성 판단부(133)가 S200의 정상 패킷의 수신에 따른 테스트 장치(100)의 상태를 기반으로 대상 장치(200)에 대한 S100의 공격 패킷의 취약성 여부를 판단하는 단계이다. 즉, 대상 장치(200)가 비정상 상태인 경우, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)가 정상 상태인 경우, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다. Thereafter, in S300, the
이때, 대상 장치(200)의 비정상 상태는 대상 장치(200)의 가동 중지 현상 또는 랙(lag) 현상이 발생하거나, 대상 장치(200)가 비정상 데이터(즉, 허용된 범위 외의 값)을 가지는 응답 패킷으로 응답하는 경우를 포함할 수 있다. 특히, 이러한 취약성 판단은 S200의 정상 패킷에 대한 응답 가능 여부에 따라 다양하게 수행될 수 있다.At this time, the abnormal state of the
가령, 낮은 사양의 제어부(230) 구비 등으로 인해, 테스트 장치(200)가 S200의 정상 패킷에 대해 응답이 불가능한 경우가 있다. 이 경우, 대상 장치(200)에서 가동 중지 현상 또는 랙 현상의 비정상 상태가 발생하면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)에서 가동 중지 현상 또는 랙 현상의 비정상 상태가 발생하지 않고 대상 장치(200)가 정상 가동한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다.For example, there is a case in which the
또한, 높은 사양의 제어부(230) 구비 등으로 인해, 테스트 장치(200)가 S200의 정상 패킷에 대해 응답이 가능한 경우가 있다. 이 경우, 대상 장치(200)가 비정상 데이터를 가지는 응답 패킷으로 응답하는 비정상 상태가 발생한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 있는 것으로 판단할 수 있다. 반면, 대상 장치(200)가 정상 데이터를 가지는 응답 패킷으로 응답하는 정상 상태가 발생한다면, 취약성 판단부(133)는 대상 장치(200)가 S100의 공격 패킷에 대해 취약성이 없는 것으로 판단할 수 있다.In addition, there is a case where the
도 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
<기존 취약점 공격><Existing Vulnerability Attack>
기존 취약점 공격은 공격 패킷 생성부(131)가 공개된 기존 취약점 정보(Common Vulnerabilities and Exposures, CVE)에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 공격이다. 즉, CVE는 대상 장치(200) 또는 모드버스 RTU의 직렬 통신 프로토콜에 대해 공개적으로 알려진 보안 결함 목록으로서, 이를 제공하는 서버로부터 다운로드 가능하며 메모리(120)에 기 저장되어 있다.The existing vulnerability attack is an attack in which the attack
이러한 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
이러한 기존 취약점 공격에 따른 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
즉, 기존 취약점 공격에 대한 하나의 공격 패킷을 전송하는 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
즉, 어느 하나의 대상 메모리 주소에 대해 복수의 공격 패킷을 생성하여 연속으로 전송하며, 이러한 전송 과정이 각 대상 메모리 주소에 대해 차례로 수행된다. 이때, 하나의 대상 메모리 주소에 대해 전송되는 복수의 공격 패킷은 비정상 데이터를 포함할 수 있다. 이러한 무작위 공격에 따른 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
이를 위해, 공격 패킷 생성부(131)는 이전에 수행된 S100에서 전송된 공격 패킷들(즉, 취약성이 있는 무작위 공격에 따른 공격 패킷들)을 그룹으로 나눈다. 이후, 각 그룹에 속한 공격 패킷을 이용하여, 그룹 별로 공격 패킷을 전송하면서 다시 S100 내지 S300이 반복 수행된다. 그 결과, 제어부(130)는 취약성이 있는 무작위 공격에 따른 공격 패킷들 중에서 어느 공격 패킷에 취약성이 있는지를 구체적으로 찾아 확인할 수 있다.To this end, the attack
예를 들어, 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
즉, 의미론적 공격이 수행되는 경우, 의미론적 공격의 타겟이 선택된 후, 선택된 타겟의 대상 메모리 주소들에 대해 제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
도 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
이러한 비정상 상태를 확인하기 위해, 메뉴 버튼 입력 동작과 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
<복합 공격><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
즉, 제어부(130)는 공격 그룹 중에서 제1 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 공격 그룹 중에서 다른 제2 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.That is, the
예를 들어, 제어부(130)는 기존 취약점 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다. 또는, 제어부(130)는 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 의미론적 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.For example, the
만일, 공격 그룹에서 모든 공격이 수행되는 경우, 제어부(130)는 공격 그룹 중에서 제1 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하고, 이후에 공격 그룹 중에서 다른 제2 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 공격 그룹 중에서 나머지 제3 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.If all attacks are performed in the attack group, the
예를 들어, 제어부(130)는 기존 취약점 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하고, 이후에 무작위 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행하며, 이후에 의미론적 공격에 따른 S100을 수행한 후, S200 및 S300을 차례로 수행할 수 있다.For example, the
<실험><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
스마트 분배 전기 장치를 포함하는 보호 계전기 장치를 대상 장치(200)로 선택하였다. 다만, IED 카테고리 중 단순 전기기기(예: 기본 배전기기, 기본 릴레이 등)보다 메쉬 구조가 더 많은 전기기기를 대상 장치(200)로 선택하였다. 메쉬 구조는 하드웨어 기반의 구현뿐만 아니라 HMI를 통해 사용되는 명령어를 이용하는 RTOS 기반의 소프트웨어로 구현된 것을 의미한다.A protection relay device including a smart distribution electric device was selected as the
Modbus RTU 프로토콜을 사용하는 대상 장치(200)를 테스트하기 위해, 대상 장치(200)를 USB 또는 직렬 포트를 사용하여 테스트 장치(100)에 연결한다. 연결 시 테스트 장치(100) 내부의 이더넷 스위치는 raw 패킷을 허용 가능한 패킷으로 전환한다.To test the
대상 장치(200)의 쓰기 가능한 모든 메모리 주소에 대해 공격을 수행하면서 그 취약성을 확인하였다. 먼저, 기존 취약점 공격을 위해, exploit-DB 웹사이트에서 개시된 CVE 목록을 참조하여 공격 패킷의 구조를 구현하였다. 이러한 CVE 목록을 참조한 기존 취약점 공격을 수행한 다음에 취약점이 발견되지 않으면, 테스트 장치(100)는 무작위 공격을 수행한다. 무작위 공격 동안, 테스트 장치(100)는 각 섹션 값을 뒤집는 Modbus RTU 패킷을 생성한다. 무작위 공격이 실패하면, 테스트 장치(100)는 의미론적 공격을 수행한다.While performing an attack on all writable memory addresses of the
이러한 의미론적 공격은 단위 테스트와 유사하게 수행된다. 먼저, 테스트 장치(100)는 쓰기 가능한 메모리 주소 중에서 타겟을 선택하고, 대상 장치(200)의 처음 타겟에 대해 정상 데이터의 공격 패킷을 전송한 후, 다음 주소의 타겟에 대해 비정상의 공격 패킷을 전송한다. 테스트 장치(100)는 공격 가능한 메모리 주소가 남아 있지 않을 때까지 타겟에 대한 모든 경우의 순서에 대한 의미론적 공격을 수행하였다.These semantic attacks are performed similarly to unit tests. First, the
도 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
상술한 바와 같이 구성되는 본 발명은 모드버스 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.
상기 직렬 통신은 모드버스 RTU(Modbus Remote Terminal Unit) 프로토콜을 기반으로 하는 통신인 방법.
According to claim 1,
Wherein the serial communication is communication based on Modbus RTU (Modbus Remote Terminal Unit) protocol.
상기 공격 패킷을 전송하는 단계는 복수의 공격 패킷을 연속으로 대상 장치로 전송하는 단계를 포함하며,
상기 판단하는 단계는 상기 비정상 상태가 발생하는 경우에 상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단하는 단계를 포함하는 방법.
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.
상기 대상 장치가 상기 복수의 공격 패킷에 대해 취약성이 있는 것으로 판단되는 경우, 상기 복수이 공격 패킷을 그룹으로 나누고 그룹에 속한 공격 패킷을 이용하여, 그룹 별로 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계를 반복 수행함으로써, 상기 복수의 공격 패킷 중에서 취약성이 있는 공격 패킷을 찾는 단계를 더 포함하는 방법.
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.
상기 공격 패킷을 전송하는 단계는 공개된 기존 취약점 정보(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.
상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 단계를 포함하는 방법.
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.
상기 공격 패킷은 데이터 길이(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.
상기 공격 패킷을 전송하는 단계는 상기 대상 장치의 설정 값 또는 작동에 관련된 정보를 저장하되 쓰기 가능한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 단계를 포함하는 방법.
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.
공개된 기존 취약점 정보에 관련된 값을 가지는 공격 패킷을 생성하여 전송하는 기존 취약점 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 모든 메모리 주소를 대상으로 각각 허용된 범위 외에서 변경되는 값을 가지는 복수의 공격 패킷을 생성하여 연속으로 전송하는 무작위 공격과, 상기 대상 장치의 작동에 관련된 정보를 저장한 상기 대상 장치의 복수의 메모리 주소에 대한 공격 패킷들을 서로 다른 순서로 전송하는 의미론적 공격을 각각 포함하는 공격 그룹 중에서 선택된 적어도 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.
상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행된 후,
상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되는 방법.
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.
상기 공격 그룹 중에서 어느 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되고,
이후 상기 공격 그룹 중에서 다른 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되며,
이후 상기 공격 그룹 중에서 나머지 하나의 공격에 따른 상기 공격 패킷을 전송하는 단계, 상기 정상 패킷을 전송하는 단계 및 상기 판단하는 단계가 수행되는 방법.
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.
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)
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 |
-
2021
- 2021-10-08 KR KR1020210134174A patent/KR102581422B1/en active IP Right Grant
Patent Citations (5)
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 |