KR20200006452A - Method and apparatus for defending remote attacks of device - Google Patents

Method and apparatus for defending remote attacks of device Download PDF

Info

Publication number
KR20200006452A
KR20200006452A KR1020180080222A KR20180080222A KR20200006452A KR 20200006452 A KR20200006452 A KR 20200006452A KR 1020180080222 A KR1020180080222 A KR 1020180080222A KR 20180080222 A KR20180080222 A KR 20180080222A KR 20200006452 A KR20200006452 A KR 20200006452A
Authority
KR
South Korea
Prior art keywords
mpu
area
firmware
gateway
remote
Prior art date
Application number
KR1020180080222A
Other languages
Korean (ko)
Inventor
김영호
김정녀
문화신
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020180080222A priority Critical patent/KR20200006452A/en
Publication of KR20200006452A publication Critical patent/KR20200006452A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention provides a method for defending software attacks from a remote attacker by using a memory protection unit (MPU) of a lightweight Internet of things (IoT) device. According to the present invention, the method comprises: a step of setting an execution code including a boot code and a reference data region as a system MPU region in a system control region of a memory; a step of setting an access attribute to refuse modification with respect to the set MPU region after activation; a step of setting a system to restart a processing routine of an exception generated when illegal modification with respect to the system MPU region is tried by a remote attacker; and a step of activating the system MPU region. Accordingly, the method excludes inflow of an external attacker traffic into a lightweight IoT device, objectively diagnoses a situation and actively manages the situation in a network level through an external gateway with relatively higher security, removes stress for additional hardware modification for applying security technology to be economic, and can be promptly applied to a previously manufactured lightweight IoT device to provide high compatibility.

Description

경량 IoT 기기의 원격 공격 방어 방법 및 장치{METHOD AND APPARATUS FOR DEFENDING REMOTE ATTACKS OF DEVICE}METHOD AND APPARATUS FOR DEFENDING REMOTE ATTACKS OF DEVICE}

본 발명의 실시예는 경량 IoT 기기의 원격 공격에 대한 방어 방법 및 방어 장치에 관한 것으로, 경량 IoT 기기 내부의 실행 코드 및 참조 데이터를 보호하기 위한 방어 방법 및 장치에 관한 것이다. Embodiments of the present invention relate to a defense method and a defense device for remote attack of a lightweight IoT device, and a defense method and device for protecting the executable code and reference data inside the lightweight IoT device.

IoT(Internet of Things) 기술은 기기(사물)들이 서로 인터넷으로 연결되어, 물리적인 위치를 초월하여, 경량 IoT 기기 사이에 자유롭게 데이터가 교환되는 환경을 제공할 수 있다. Internet of Things (IoT) technology can provide an environment in which devices (objects) are connected to each other through the Internet, transcending physical locations and freely exchanging data between lightweight IoT devices.

다만, 상기한 개방성으로 인하여 인터넷을 통해 누구나 경량 IoT 기기에 접근할 수 있다. 특히, 경량 IoT 기기의 경우에 제한된 보안성이 낮은 컴퓨팅 자원으로 운영되기 때문에, 외부의 원격 공격자의 공격에 쉽게 노출될 수 있다는 단점이 있다.However, due to the openness, anyone can access the lightweight IoT device through the Internet. In particular, in the case of a light weight IoT device, since it operates with limited security resources and low security, it may be easily exposed to an external remote attacker.

일반적으로 원격 공격자에 의한 소프트웨어 공격의 형태로, 대상 경량 IoT 기기 내부의 소프트웨어 취약점을 이용하여 원격에서 공격 코드를 경량 IoT 기기에 삽입하고, 해당 경량 IoT 기기의 제어권을 탈취하는 형태 또는 경량 IoT 기기에 저장된 정보를 외부로 유출하는 형태가 있다.In general, it is a form of software attack by a remote attacker, using a software vulnerability inside a target lightweight IoT device to remotely inject the attack code into the lightweight IoT device, and to take over control of the lightweight IoT device or to a lightweight IoT device. There is a form of leaking stored information to the outside.

상기한 문제를 해결하기 위한 종래 보안 기술의 경우, 메모리 보호 유니트와 같은 하드웨어 또는 소프트웨어를 이용하여 공격 코드가 삽입되는 메모리 영역에 대한 접근을 거부하는 등 메모리 영역에 대한 접근을 통제하는 기술이 제안되고 있다. In the case of the conventional security technology for solving the above problems, a technique for controlling access to the memory area, such as denying access to the memory area into which the attack code is inserted using hardware or software such as a memory protection unit, is proposed. have.

다만, 상위 권한으로 실행되는 통제 프로그램 조차도 원격 공격의 대상이 될 수 있으며, 공격 코드가 상위 실행 권한을 획득한 후에 보호 메모리 영역에 대한 접근 거부를 해제하고 공격 코드를 삽입하는 우회 공격 양상이 나타나고 있다. However, even a control program executed with a higher privilege may be a target of a remote attack, and a bypass attack pattern is released in which an attack code releases access to a protected memory area and inserts an attack code after an attack code obtains a superior execution authority. .

즉, 공격 상황을 진단하고 대처하는 통제 프로그램 또한 외부의 공격으로부터 노출될 수 있으므로, 신뢰성이 보장된 보안 요소가 경량 IoT 기기 내부에 필요한 것이 실정이다.In other words, the control program for diagnosing and coping with the attack situation may also be exposed from external attacks, so there is a need for reliable security elements inside the lightweight IoT device.

본 발명의 실시예는 메모리 보호 유니트에 대한 자기 잠금 기술을 통해 경량 IoT 기기에 대한 원격 공격자의 접근을 차단하는 것을 목적으로 한다.An embodiment of the present invention aims to block a remote attacker's access to a lightweight IoT device through a self-locking technique for the memory protection unit.

본 발명의 실시예에 따른 경량 IoT 기기의 메모리 보호 유니트(MPU)를 이용하여 원격 공격자에 의한 소프트웨어 공격으로부터 방어하는 방법은 메모리의 시스템 제어 영역에서 부트 코드를 포함한 실행 코드 및 참조 데이터 영역에 대해 시스템 MPU 영역으로 지정하고, 활성화 이후부터 기 설정된 MPU 영역에 대한 변경을 거부하도록 접근 속성을 설정하는 단계; 상기 원격 공격자에 의한 상기 시스템 MPU 영역으로의 불법 변경 시도 시에 발생되는 예외상황의 처리루틴을 시스템이 재가동되도록 설정하는 단계; 및 상기 시스템 MPU 영역을 활성화시키는 단계를 포함할 수 있다.A method for defending against a software attack by a remote attacker using a memory protection unit (MPU) of a lightweight IoT device according to an embodiment of the present invention includes a system for executing code and a reference data area including boot code in a system control area of a memory. Setting an access property to designate an MPU area and to reject a change to a preset MPU area after activation; Setting a system to restart the processing routine of an exception occurring when an illegal change attempt is made to the system MPU area by the remote attacker; And activating the system MPU region.

상기 시스템 MPU 영역은 상기 시스템의 재가동을 통해서만 해제될 수 있다.The system MPU area can be released only by restarting the system.

상기 시스템 MPU 영역은 상기 시스템 MPU 영역이 활성화된 이후부터 변경 또는 재설정이 불가능한 잠김 상태를 유지할 수 있다.The system MPU region may maintain a locked state that cannot be changed or reset after the system MPU region is activated.

상기 시스템이 재가동되면, 부트 코드 실행 단계에서 재가동 사실을 게이트웨이로 전송하는 단계, 그리고 상기 게이트웨이로부터 수신하는 응답에 따라 다음 동작을 결정하는 단계를 더 포함할 수 있다.When the system is restarted, the method may further include transmitting a restart fact to a gateway in a boot code execution step, and determining a next operation according to a response received from the gateway.

상기 결정하는 단계는 상기 게이트웨이에 의해 상기 원격 공격자에 의한 공격 상황이 아닌 것으로 판단되면, 상기 부트 코드 실행 단계를 계속 수행하는 단계를 더 포함할 수 있다.The determining may further include continuing to execute the boot code if it is determined by the gateway that the attack is not attacked by the remote attacker.

상기 결정하는 단계는 상기 응답 값이 펌웨어 업데이트를 알리는 경우, 상기 게이트웨이를 통해 펌웨어를 수신하는 단계; 수신한 상기 펌웨어를 검증하는 단계; 및 상기 펌웨어를 업데이트하는 단계를 포함할 수 있다.The determining may include receiving firmware through the gateway when the response value indicates a firmware update; Verifying the received firmware; And updating the firmware.

상기 결정하는 단계는 상기 업데이트 이후 상기 시스템을 재가동시키는 단계를 더 포함할 수 있다.The determining may further comprise restarting the system after the update.

상기 결정하는 단계는 상기 응답 값이 펌웨어 업데이트가 필요하지 않음을 나타내는 경우, 실행될 운영체제 및 응용프로그램에 대한 무결성 검증을 수행하는 단계를 포함할 수 있다.The determining may include performing integrity verification for an operating system and an application to be executed when the response value indicates that no firmware update is required.

본 발명의 실시예에 따른 경량 IoT 기기들이 포함된 물리적 네트워크를 관할하는 게이트웨이에서 상기 원격 공격자에 의한 상기 경량 IoT 기기들로의 소프트웨어 공격으로부터 방어하는 방법은 상기 경량 IoT 기기들로부터 시스템 재가동 사실을 수신하는 단계; 상기 경량 IoT 기기들로부터 수신된 시스템 재가동 사실들을 분석하여 상기 원격 공격자에 의한 공격 여부 또는 펌웨어의 결함 여부를 판단하는 단계; 및 상기 원격 공격자에 의한 공격 상황으로 판단된 경우 공격 의심 트래픽의 내부 유입을 차단하는 단계를 포함할 수 있다.A method for defending against a software attack by the remote attacker from a software attack on a physical network including a light weight IoT device according to an embodiment of the present invention receives a system restart from the light weight IoT devices. Making; Analyzing system restart facts received from the lightweight IoT devices to determine whether the remote attacker is attacked or whether the firmware is defective; And blocking the inflow of suspicious traffic when determined as the attack situation by the remote attacker.

상기 펌웨어의 결함으로 판단된 경우, 펌웨어 업데이트를 상기 경량 IoT 기기들로 전송하는 단계, 그리고 상기 경량 IoT 기기들이 펌웨어를 업데이트하도록 서버로부터 수신된 펌웨어를 상기 경량 IoT 기기들로 전송하는 단계를 더 포함할 수 있다.If it is determined that the firmware is defective, transmitting a firmware update to the lightweight IoT devices, and transmitting the firmware received from the server to the lightweight IoT devices so that the lightweight IoT devices update the firmware. can do.

상기 서버로부터 수신된 펌웨어를 검증하는 단계를 더 포함할 수 있다.The method may further include verifying firmware received from the server.

본 발명의 실시예에 따른 원격 공격자에 의한 소프트웨어 공격으로부터 방어하기 위한 경량 IoT 기기의 원격 공격 방어 장치는 적어도 하나의 MPU 영역 중 접근 속성이 접근 거부로 설정된 시스템 MPU 영역으로의 접근 시도 시에 발생되는 예외상황의 처리루틴을 시스템이 재가동되도록 설정하는 메모리 보호 유니트 제어부를 포함할 수 있다.The remote attack defense device of a lightweight IoT device for defending against a software attack by a remote attacker according to an embodiment of the present invention is generated when an attempt is made to access a system MPU area in which at least one MPU area has an access property set to access denied. It may include a memory protection unit control unit for setting the processing routine of the exception to restart the system.

상기 메모리 보호 유니트 제어부는 부트 코드를 포함한 실행 코드 및 참조 데이터 영역에 대해 상기 시스템 MPU 영역으로 지정하고, 상기 시스템 MPU 영역에 대한 상기 접근 속성을 접근 거부로 설정할 수 있다.The memory protection unit controller may designate an execution code including a boot code and a reference data area as the system MPU area, and set the access attribute of the system MPU area to access denied.

상기 메모리 보호 유니트 제어부는 상기 시스템 제어 영역 외의 나머지 영역 중 일부 영역을 일반 MPU 영역으로 지정하고, 상기 일반 MPU 영역의 접근 속성을 읽기쓰기, 읽기전용 및 접근거부 중에서 하나로 설정할 수 있다.The memory protection unit controller may designate a portion of the remaining regions other than the system control region as a general MPU region, and set an access attribute of the general MPU region to one of read write, read only, and deny access.

상기 시스템 MPU 영역은 상기 시스템의 재가동을 통해서만 해제될 수 있다.The system MPU area can be released only by restarting the system.

상기 시스템 MPU 영역이 활성화된 이후부터 상기 시스템 MPU 영역은 변경 또는 재설정이 불가능한 잠김 상태를 유지할 수 있다.After the system MPU area is activated, the system MPU area may remain locked, which cannot be changed or reset.

상기 시스템이 재가동되면, 부트 코드 실행 단계에서 재가동 사실을 게이트웨이로 전송하고 상기 게이트웨이로부터 수신하는 응답에 따라 동작을 결정하는 CPU를 더 포함할 수 있다.When the system is restarted, the boot code execution step may further include a CPU for transmitting the fact of restarting to the gateway and determine the operation according to the response received from the gateway.

상기 CPU는 상기 게이트웨이에 의해 상기 원격 공격자에 의한 공격 상황이 아닌 것으로 판단되면, 상기 부트 코드 실행 단계를 계속 수행하고, 상기 응답 값이 펌웨어 업데이트를 알리는 경우, 상기 게이트웨이를 통해 서버로부터 수신한 펌웨어를 업데이트할 수 있다.If the CPU determines that the gateway is not attacked by the remote attacker, the CPU continues executing the boot code, and when the response value informs the firmware update, the CPU receives the firmware received from the server through the gateway. You can update it.

본 발명의 실시예에 따르면, 부트 코드 실행 단계에서는 인터넷이 연결되지 않은 상태이기 때문에, 경량 IoT 기기 내부로의 외부 공격자 트래픽 유입을 배제할 수 있다. According to the embodiment of the present invention, since the Internet is not connected in the boot code execution step, it is possible to exclude the external attacker traffic inflow into the lightweight IoT device.

또한, 본 발명의 실시예에 따르면, 보호 메모리 영역이 활성화 된 이후에 실제 공격의심 상황이 발생하는 경우, 상대적으로 보안 자원이 제약적인 경량 IoT 기기 대신, 상대적으로 보안성이 더 높은 외부 게이트웨이를 통해 상황을 보다 객관적으로 진단하고 네트워크 차원에서 적극적으로 대응할 수 있다.In addition, according to an embodiment of the present invention, if a real attack suspicion occurs after the protected memory area is activated, instead of a lightweight IoT device with relatively limited security resources, a relatively secure external gateway is provided. The situation can be diagnosed more objectively and actively responded at the network level.

또한, 본 발명의 실시예에 따르면, 이미 경량 IoT 기기용 칩의 일부 요소로서 탑재되어 있는 메모리 보호 유니트를 그대로 이용함에 따라 보안 기술의 적용을 위한 추가적인 하드웨어 변경 부담이 없어 경제적이고, 이미 생산된 경량 IoT 기기들에 바로 적용이 가능한 기술로서 호환성이 높다는 장점이 있다.In addition, according to the embodiment of the present invention, by using the memory protection unit that is already mounted as a part of the chip for the light weight IoT device as it is, there is no additional hardware change burden for applying the security technology, economical, lightweight already produced As a technology that can be directly applied to IoT devices, it has the advantage of high compatibility.

도 1은 본 발명의 실시예에 따른 프로세서를 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 메모리를 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 MPU 영역을 지정하고 접근 속성을 정의하는 과정을 도시한다.
도 4는 본 발명의 실시예에 따른 부트 코드의 일부로서 실행되는 MPU 영역 설정 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른 인터넷을 통해 응용 프로그램 원격 배포 시 적용되는 코드 서명 검증의 일 예를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 경량 IoT 기기의 원격 공격 방어 과정을 도시한다.
도 7은 본 발명의 실시예에 따른 게이트웨이에서 악의적인 공격 여부의 판단 및 대응 방법을 나타낸 흐름도이다.
도 8은 본 발명의 실시예에 따른 경량 IoT 기기에서의 원격 공격 방어 방법을 나타낸 흐름도이다.
도 9는 본 발명의 실시예에 따른 경량 IoT 기기에서의 MPU 영역의 일 예를 도시한 블록도이다.
1 is a block diagram illustrating a processor according to an embodiment of the present invention.
2 is a block diagram illustrating a memory according to an embodiment of the present invention.
3 illustrates a process of specifying an MPU region and defining an access attribute according to an embodiment of the present invention.
4 is a flowchart illustrating a method of setting an MPU region executed as part of a boot code according to an embodiment of the present invention.
5 is a diagram illustrating an example of code signature verification applied when remotely distributing an application through the Internet according to an embodiment of the present invention.
6 illustrates a remote attack defense process of a lightweight IoT device according to an embodiment of the present invention.
7 is a flowchart illustrating a method of determining and responding to a malicious attack in a gateway according to an embodiment of the present invention.
8 is a flowchart illustrating a remote attack defense method in a lightweight IoT device according to an embodiment of the present invention.
9 is a block diagram illustrating an example of an MPU region in a lightweight IoT device according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification and claims, when a portion is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise.

이제 본 발명의 실시예에 따른 경량 IoT 기기의 원격 공격 방어 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다. Now, a remote attack defense method and apparatus for a lightweight IoT device according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 프로세서를 도시한 블록도이다. 1 is a block diagram illustrating a processor according to an embodiment of the present invention.

도 1을 참고하면, 프로세서(100)는 중앙 처리 유니트(Central Processing Unit, CPU)(101), 메모리 보호 유니트(Memory Protection Unit, MPU)(102), 메모리 버스(103), 시스템 제어기(104), I/O(input/output) 제어기(105) 및 메모리 제어기(106)를 포함한다. Referring to FIG. 1, the processor 100 includes a central processing unit (CPU) 101, a memory protection unit (MPU) 102, a memory bus 103, and a system controller 104. , Input / output (I / O) controller 105 and memory controller 106.

CPU(101)는 MPU(102), 메모리 버스(103) 및 메모리 제어기(106)를 통해 메모리와 통신한다. 즉 CPU(101)에서 참조(reference)하는 모든 메모리 주소는 메모리 버스(103)를 관할하는 MPU(102)를 경유하도록 설계된다. CPU(101)는 MPU(102)의 제어에 기반하여 메모리를 참조하여 소프트웨어를 실행한다. The CPU 101 communicates with the memory through the MPU 102, the memory bus 103, and the memory controller 106. That is, all the memory addresses referenced by the CPU 101 are designed to pass through the MPU 102, which governs the memory bus 103. The CPU 101 executes software with reference to the memory based on the control of the MPU 102.

MPU(102)는 메모리의 보호를 위해 구현된 프로세서(100)의 내부 컴포넌트이다. MPU(102)는 메모리에 저장된 소프트웨어가 CPU(101)에 의해 실행되는 동안 메모리의 영역 중 특정 영역에 대한 접근을 개별 동작에 기반하여 제한하거나, 악성 소프트웨어의 메모리 불법 접근으로부터 해당 메모리 영역을 보호하는 접근 제어(access control)를 수행할 수 있다. MPU 102 is an internal component of processor 100 implemented for protection of memory. The MPU 102 restricts access to a specific area of the memory based on individual operations while the software stored in the memory is executed by the CPU 101, or protects the memory area from illegal access of the malicious software. Access control can be performed.

도 2는 본 발명의 실시예에 따른 메모리를 도시한 블록도이다.2 is a block diagram illustrating a memory according to an embodiment of the present invention.

도 2에 도시한 바와 같이, 메모리(200)는 플래시 메모리 영역(205), SRAM(Static Random Access Memory) 영역, 주변 장치를 제어하는 명령어들을 기억하는 주변 장치(peripherals) 영역(204) 및 프로세서를 제어하는 명령어들을 기억하는 시스템 제어(System Control) 영역(206)을 포함한다. As shown in FIG. 2, the memory 200 includes a flash memory area 205, a static random access memory (SRAM) area, a peripheral area 204 storing instructions for controlling peripheral devices, and a processor. It includes a System Control area 206 for storing instructions to control.

플래시 메모리 영역 중 MPU에 의해 보호될 영역으로 지정된 MPU 영역 2(202), 주변 장치 영역 중 MPU에 보호될 영역으로 지정된 MPU 영역 1(201) 및 시스템 제어 영역 중 MPU에 보호될 영역으로 지정된 MPU 영역 3(203)은 메모리 영역 중 MPU 영역 3(203)에 매핑된 MPU 설정 관련 레지스터를 통해 설정될 수 있다. 즉, 시스템 제어 영역은 프로세서의 동작을 설정하는 레지스터들을 포함하며, 프로세서 동작 설정 제어 동작 중에서도 MPU의 설정에 관여하는 레지스터들을 포함한다.MPU area 2 (202) designated as the area to be protected by the MPU among the flash memory areas, MPU area 1 201 designated as the area to be protected by the MPU among the peripheral device areas, and MPU area designated as the area to be protected by the MPU among the system control areas. 3 203 may be set through an MPU setting related register mapped to MPU area 3 203 of the memory area. That is, the system control area includes registers for setting the operation of the processor and among the processor operation setting control operations, the registers are involved in setting of the MPU.

도 3은 본 발명의 실시예에 따른 MPU 영역을 지정하고 접근 속성을 정의하는 과정을 도시한다. 3 illustrates a process of specifying an MPU region and defining an access attribute according to an embodiment of the present invention.

MPU 제어부(300)는 메모리의 영역 중 MPU 영역 3(도 2의 203)에 매핑되며, MPU의 동작을 제어하기 위한 레지스터 값들이 설정된(혹은 정의된) 소프트웨어 모듈이 될 수 있다. MPU(102)는 MPU 제어부(300)에서 정의되는 레지스터 설정값에 기반하여 메모리의 각 영역들(205, 204, 206)에 대한 보호를 수행할 수 있으며, 이하 MPU 제어부 및 MPU 제어부에 의해 정의되는 MPU의 동작에 대해 설명한다.The MPU controller 300 may be a software module mapped to MPU region 3 (203 of FIG. 2) among regions of the memory, and having register values set (or defined) for controlling the operation of the MPU. The MPU 102 may perform protection for each of the regions 205, 204, and 206 of the memory based on the register setting value defined by the MPU controller 300, which is defined by the MPU controller and the MPU controller. The operation of the MPU will be described.

도 3에 도시한 바와 같이, MPU 제어부(300)는 MPU 설정 관련 레지스터들(301, 302, 303)를 포함할 수 있으며, 각 MPU 영역을 지정하고, 각 MPU 영역에 대한 접근 속성을 정의할 수 있다. As shown in FIG. 3, the MPU controller 300 may include MPU setting related registers 301, 302, and 303, may designate each MPU region, and define an access attribute for each MPU region. have.

접근 속성은 읽기/쓰기(Read/Write), 읽기전용(Read Only), 접근거부(No Access) 중 하나의 형태로 선언될 수 있으며, 선언된 속성 이외의 권한으로 해당 MPU 영역에 접근을 시도하는 경우 시스템 오류(fault) 같은 예외상황(exception)을 발생시키도록 설정할 수 있다.An access property may be declared in one of read / write, read only, and no access types, and attempts to access the MPU area with privileges other than the declared property. In this case, it can be set to generate an exception, such as a system fault.

MPU(102) 내에서 동시에 지정 가능한 MPU 영역의 최대 개수는 MPU 제어부(300)에 포함된 레지스터들의 수에 의해 결정된다. 이에 따라, 다양한 속성을 갖는 메모리 영역을 확보할 수 있도록, 상위 실행 권한(high execution privilege)을 갖는 시스템 소프트웨어는 시스템 동작 도중에 시스템 운영 정책에 기반하여 MPU 제어부(300)의 MPU 설정 관련 레지스터들(301, 302, 303)의 값을 재설정할 수 있다.The maximum number of MPU areas that can be designated simultaneously in the MPU 102 is determined by the number of registers included in the MPU control unit 300. Accordingly, in order to secure a memory area having various attributes, system software having a high execution privilege may register MPU setting-related registers 301 of the MPU controller 300 based on a system operating policy during system operation. , 302, 303 may be reset.

본 발명의 실시예에 따르면, MPU 제어부(300)는 MPU 설정 관련 레지스터 1(301)를 통해 MPU 영역 1(201) 및 MPU 영역 1에 대한 접근 속성, MPU 설정 관련 레지스터 2(302)를 통해 MPU 영역 2(202) 및 MPU 영역 2에 대한 접근 속성, MPU 설정 관련 레지스터 3(303)를 통해 MPU 영역 3(203) 및 MPU 영역 3에 대한 접근 속성을 정의할 수 있다. 즉, MPU 제어부(300)는 MPU 설정 관련 레지스터들(301, 302, 303)을 통해 MPU 영역 1(201)에 대한 접근 속성, MPU 영역 2(202)에 대한 접근 속성뿐만 아니라, 시스템 제어 영역(206) 중에서 MPU 영역 3(203)인 MPU 제어부(300) 자신의 접근 속성도 함께 설정할 수 있다. 즉, 보호할 MPU 영역들을 지정하고, 지정된 MPU 영역들에 대한 외부의 접근 속성을 관리하는 MPU 제어부(300)가 MPU 제어부 자신의 내부에 자신의 동작이 정의된 MPU 설정 관련 레지스터 값들을 포함하는 MPU 영역 3(203)에 대한 접근 속성을 MPU 설정 관련 레지스터(303)의 설정값들을 이용하여 지정할 수 있다. 예를 들면, MPU 제어부(300)는 MPU(102)에 대한 일회성 설정(one-time set-up) 효과를 하드웨어적으로 구현할 수 있다. According to the exemplary embodiment of the present invention, the MPU control unit 300 may access the MPU area 1 201 and the MPU area 1 through the MPU setting related register 1 301 and the MPU setting related register 2 302 through the MPU setting related register 1 301. Access attributes for region 2 202 and MPU region 2 and MPU configuration related register 3 303 may define access attributes for MPU region 3 203 and MPU region 3. That is, the MPU controller 300 may not only access the MPU region 1 201 and the MPU region 2 202 through the MPU setting related registers 301, 302, and 303, but may also access the system control region ( In 206, the access attribute of the MPU control unit 300, which is the MPU region 3 203, may also be set. That is, the MPU control unit 300, which specifies MPU areas to be protected and manages external access attributes for the specified MPU areas, includes an MPU setting related register value in which its operation is defined inside the MPU control unit itself. An access attribute for the area 3 203 may be specified using the setting values of the register 303 related to the MPU setting. For example, the MPU controller 300 may implement a one-time set-up effect on the MPU 102 in hardware.

이와 같이 자기 잠금으로 한번 설정된 MPU 영역 3(203)은 오직 시스템의 재가동(reset)을 통해서만 해제될 수 있도록 하드웨어적으로 보장된다. 따라서 시스템 재가동에 의해 MPU 영역이 활성화(activation)된 이후에는 경량 IoT 기기 내부에서 실행되는 어떤 소프트웨어도 이미 설정된 MPU 영역 3(203)의 접근 속성을 변경할 수 없게 되며, 악의적인 의도로 변경하려는 모든 접근 시도는 시스템 오류인 예외상황을 발생시킨다.MPU region 3 (203), once set as a self-lock, is hardware guaranteed to be released only through a system reset. Therefore, after the MPU zone is activated by system restart, no software running inside the lightweight IoT device can change the access property of the MPU zone 3 (203) that has already been set, and any access attempting to change it with malicious intentions. Attempts result in exceptions, which are system errors.

즉, MPU 제어부(300)는 향후 자기 영역에 대한 변경을 거부하도록 MPU 영역 3(203)을 설정할 수 있으며, MPU 영역 3(203)이 활성화된 이후에는 MPU 영역 3(203)을 통해 MPU 제어부의 기존 설정을 변경하는 것이 불가능하게 된다. That is, the MPU control unit 300 may set the MPU area 3 203 to reject a change to the magnetic area in the future. After the MPU area 3 203 is activated, the MPU control unit 300 may control the MPU control area through the MPU area 3 203. It is not possible to change existing settings.

본 발명의 실시예에서는 이와 같은 MPU 제어부(300)에 의한 MPU 제어부(300)에 대한 자기 잠금 기재를 칩(chip) 초기화 과정에 적용하여 메모리 보호 영역에 대한 일회성 설정(one-time set-up) 효과를 제공한다. 이는 종래 소프트웨어 기술이 보장하지 못하는 최상위 신뢰성(root of trust)을 MPU 기반으로 제공할 수 있다. 여기에서 최상위 신뢰성은 소프트웨어에 대한 안전한 실행을 보장하는 척도로서 시스템 전체 신뢰성의 근거가 된다. 이때 안전한 실행은 프로그램 코드가 정해진 실행순서를 건너뛰거나 바꾸지 않고 최초 설치된 순서대로 모든 과정을 수행하는 것을 의미하며 코드 자체에 대한 무결성(integrity)도 함께 내포하고 있다.In the embodiment of the present invention, the one-time set-up of the memory protection area is applied by applying the self-locking substrate for the MPU control unit 300 by the MPU control unit 300 to the chip initialization process. Provide effect. This may provide the root of trust on a MPU basis that conventional software technology does not guarantee. The highest level of reliability here is the basis for system-wide reliability as a measure of ensuring safe execution of software. Safe execution means that the program code performs all the processes in the order in which they were first installed without skipping or changing the order of execution. It also implies the integrity of the code itself.

도 4는 본 발명의 실시예에 따른 부트 코드의 일부로서 실행되는 MPU 영역 설정 방법을 나타낸 흐름도이다. 4 is a flowchart illustrating a method of setting an MPU region executed as part of a boot code according to an embodiment of the present invention.

도 4를 참고하면, 파워 온(power on)이 되면(S401), 부트 코드의 실행이 시작된다(S402). Referring to FIG. 4, when power is on (S401), execution of the boot code is started (S402).

MPU 제어부(300)는 먼저 인터럽트 및 예외상황을 해제(disable)시킨 후(S403), 인터럽트 및 예외상황 처리루틴(handler routine)을 설정(set up)한다(S404). 여기에는 메모리 영역 중 MPU(102)를 통해 보호되는 MPU 영역들에 대한 접근 거부 시 발생되는 예외상황에 대한 처리 루틴(exception handler routine)도 함께 설정된다. 본 발명의 실시예에 따른 MPU 제어부(300)는 접근 거부 예외상황이 발생하는 경우 시스템이 바로 재가동(reset) 되도록 MPU 설정 관련 레지스터들(301, 302, 303)를 설정한다. The MPU control unit 300 first disables the interrupt and the exception (S403), and then sets up the interrupt and the exception handling routine (S404). It also sets up an exception handler routine for exceptions that occur when denying access to MPU areas protected by the MPU 102 in the memory area. The MPU control unit 300 according to the embodiment of the present invention sets MPU setting related registers 301, 302, and 303 so that the system is immediately restarted when an access denial exception occurs.

다음, MPU 제어부(300)는 전체 메모리 영역 중 MPU 제어부의 MPU 설정 관련 레지스터에 매핑된 MPU 영역 3(203)을 제외한 나머지 메모리 영역 중에서 MPU 영역으로 보호가 필요한 MPU 영역 1, MPU 영역 2을 지정하고, 지정된 MPU 영역에 대한 접근 속성을 설정한다(S405). Next, the MPU control unit 300 designates the MPU area 1 and the MPU area 2 that need to be protected as the MPU area among the remaining memory areas except the MPU area 3 203 mapped to the MPU setting related register of the MPU control area among all the memory areas. In step S405, access attributes for the specified MPU region are set.

MPU 영역 1, MPU 영역 2에 대한 MPU 영역 설정이 모두 끝나면, MPU 제어부(300)는 추후 MPU 영역 3(203)에 대한 설정 변경이 요청될 때 해당 접근이 거부되도록 MPU 영역 3(203)에 대한 접근 속성을 설정한다(S406). When the MPU area settings for MPU area 1 and MPU area 2 are both completed, the MPU control unit 300 may deny the corresponding access to the MPU area 3 203 when a change of the setting for the MPU area 3 203 is requested later. The access attribute is set (S406).

최종적으로, MPU 제어부(300)는 설정된 모든 MPU 영역을 활성화(enable)시키고(S407), 예외상황 처리가 가능하도록 인터럽트를 활성화시킨다(S408). Finally, the MPU control unit 300 enables all set MPU areas (S407), and activates an interrupt to enable exception processing (S408).

이렇게 MPU 영역이 활성화 되는 순간부터 MPU 영역은 재부팅을 제외한 기기 내부의 경량 IoT 기기 내부의 어떤 소프트웨어에 의해서도 변경 또는 재설정이 불가능한 잠김 상태가 유지된다. From this moment, when the MPU area is activated, the MPU area remains locked, which cannot be changed or reset by any software inside the lightweight IoT device except the reboot.

이와 같이, 본 발명의 실시예에서는 MPU 제어부(300) 자신의 MPU 영역 3(203)을 메모리 보호 영역으로 지정하는, 이른바 자기 잠금(self-locking)을 통해 메모리 보호 영역에 대한 일회성 설정 효과를 하드웨어적으로 확보할 수 있다. 특히, 접근 거부 또는 읽기 전용 형태의 메모리 영역에 대한 일회성 설정 효과는 상위 권한으로 실행되는 제어 소프트웨어의 코드 및 데이터를 하드웨어 차원에서 보호할 수 있기 때문에 보안 관점에서 시스템의 최상위 신뢰성(root of trust)을 제공할 수 있다. As described above, according to the exemplary embodiment of the present invention, the MPU control unit 300 designates the MPU region 3 (203) as the memory protection region. Thus, the one-time setting effect on the memory protection region may be performed through the so-called self-locking. Can be secured as an enemy. In particular, the effect of a one-time setting on a denial of access or read-only type of memory can protect the system's root of trust from a security standpoint because it allows hardware-level protection of code and data from control software running with higher privileges. Can provide.

다음으로, 본 발명의 실시예에 따른 자기 잠금 설정을 통해 제공된 최상위 신뢰성을 바탕으로 MPU(102)를 암호학적 검증 시 읽기 전용 참조 데이터 보호에 적용하는 실시예에 대하여 설명한다. 여기에서 암호학적 검증은 인증 또는 서명 검증 시 수행되는 암호 연산을 포괄적으로 의미하며, 참조 데이터는 이때 사용되는 암호 키 정보로서 합법적인 수단 외에는 변경이 불가능하고 데이터 자체에 비밀성이 요구되지 않는 특징을 갖는다. 예컨대, 인증서 기반 상호 인증 과정에서 서버의 인증서나 코드 서명 검증에 필요한 공개키 값 또는 이에 대한 해시 값 등이 참조 데이터의 대표적인 예이다. Next, an embodiment in which the MPU 102 is applied to read-only reference data protection during cryptographic verification based on the highest reliability provided through the self-lock setting according to the embodiment of the present invention will be described. Cryptographic verification here refers to cryptographic operations that are performed at the time of authentication or signature verification, and reference data is the cryptographic key information used at this time, which cannot be changed except by legal means and does not require confidentiality of the data itself. Have For example, a representative example of the reference data is a public key value or a hash value for the certificate or code signature verification of a server in a certificate-based mutual authentication process.

도 5는 본 발명의 실시예에 따른 인터넷을 통해 응용 프로그램 원격 배포 시 적용되는 코드 서명 검증의 일 예를 나타낸 도면이다. 5 is a diagram illustrating an example of code signature verification applied when remotely distributing an application through the Internet according to an embodiment of the present invention.

도 5를 참고하면, 일반적으로 프로그램과 코드 서명 정보는 응용 프로그램 패키지 내에 함께 배포되고, 응용 프로그램을 설치하는 원격 기기에서는 서명 검증을 수행함으로써 최초 배포자에 대한 인증뿐만 아니라 프로그램 코드에 대한 무결성 훼손 여부를 판단한다. 이때, 서명 정보는 타원곡선암호(Elliptical Curve Cryptography, ECC) 기반의 디지털서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)을 이용한 서명 검증 메커니즘에 의해 생성된다. Referring to FIG. 5, in general, the program and code signing information are distributed together in an application package, and the remote device that installs the application performs signature verification to determine whether the integrity of the program code as well as the authentication of the original distributor is compromised. To judge. At this time, the signature information is generated by a signature verification mechanism using an Elliptic Curve Digital Signature Algorithm (ECDSA) based on an Elliptical Curve Cryptography (ECC).

예를 들면, 서명 도구(Sign Tool)는 공개키(Kpublic)와 개인키(Kprivate)로 이루어진 타원곡선암호 키 쌍(ECDSA key Pair)을 생성하고, 이 중에서 개인키를 ECDSA Signature Algorithm을 사용하여 프로그램(Application)에 대한 서명(Signature)을 생성한다. 이렇게 생성된 서명은 공개키 및 응용 프로그램 코드(Application Code)와 더불어 배포된다. For example, the Sign Tool generates an elliptic curve cryptographic key pair consisting of a public key (Kpublic) and a private key (Kprivate), and uses the ECDSA Signature Algorithm to program the private key. Create a signature for the application. The signature thus generated is distributed along with the public key and the application code.

예를 들면, 응용 프로그램을 설치 및 실행하는 기기(Device)에서는 응용 프로그램 코드와 함께 배포된 서명과 공개키를 이용하여 프로그램 코드에 대한 무결성을 검증할 수 있다. 이때 원격 기기에서는 프로그램 코드에 대한 서명 검증뿐만 아니라 서명 검증에 이용된 공개키 자체의 소유권을 검증하는 수단이 필요하다. 따라서 배포자가 소유한 공개키 정보를 사전에 해당 기기에 안전하게 저장하고 검증 시에만 참조될 수 있도록 읽기 전용 데이터 보호 기술이 요구된다. 이에 본 발명의 실시예에서 제안하는 MPU 제어부(300)의 자기 잠금 설정을 해당 기기에 적용함으로써, MPU 영역에 저장된 참조 데이터를 읽기 전용으로 보호한다. 특히, 부트 코드의 일부로서 실행되는 최초 MPU 설정 코드 이외의 다른 소프트웨어에서는 해당 참조 데이터에 대한 변경이 불가능하도록 하드웨어 차원의 보호 조치를 취한다. 이때, 읽기 전용의 공개키 참조 데이터는 기기가 최초 출시 될 때 저장 공간을 최소화하기 위해서 인증서 또는 공개키 대신, 이들의 해시 결과 값으로 플래시 메모리에 미리 저장되고, 해시 결과 값이 저장되는 플래시 메모리의 특정 영역은 MPU 영역으로 설정되어 읽기 전용으로 접근 속성이 설정되고, 서명 검증 시에만 하기와 같이 읽기 전용으로 참조된다. For example, a device that installs and executes an application can verify the integrity of the program code by using a signature and a public key distributed with the application code. In this case, the remote device needs a means for verifying ownership of the public key itself used for signature verification as well as signature verification for program code. Therefore, a read-only data protection technology is required so that the public key information owned by the distributor can be safely stored in the device in advance and referenced only during verification. Therefore, by applying the self-locking setting of the MPU control unit 300 proposed in the embodiment of the present invention to the corresponding device, the reference data stored in the MPU area is protected as read-only. In particular, software other than the original MPU configuration code that is executed as part of the boot code takes hardware-level protection to prevent changes to the reference data. At this time, read-only public key reference data is pre-stored in flash memory as their hash result value instead of the certificate or public key to minimize the storage space when the device is first released, and the hash result value is stored in the flash memory. The specific area is set as the MPU area so that the access property is set to read-only and is referred to as read-only as follows when verifying signature.

"reference data <- installed Digest of Kpublic "reference data <-installed Digest of K public

if (reference data = SHA256 (downloaded Kpublic))if (reference data = SHA256 (downloaded K public ))

authentic   authentic

elseelse

fake"   fake "

이와 같이 도 5에 도시된 실시예에서는 MPU 영역의 일회성 설정 효과를 통해 읽기 전용 참조 데이터를 하드웨어 차원에서 안전하게 보호하는 일 예이지만 이러한 보호 범위는 실행 코드 영역으로 확장하여 소프트웨어 공격으로부터 실행 코드를 안전하게 보호하는 데에도 동일하게 적용될 수 있다. As illustrated in FIG. 5, in the embodiment shown in FIG. 5, the read-only reference data is secured at the hardware level through the one-time setting effect of the MPU area, but the protection scope is extended to the executable code area to protect the executable code from software attacks. The same applies to

일반적으로 소프트웨어에 의한 원격 공격은 네트워크를 통해 대상 기기로 유입되며 유입 후 기기 내부의 방어 기재를 뚫고 공격 코드를 삽입한다. 따라서 공격 대상이 되는 기기의 내부 방어 기재 강도에 따라 원격 공격의 성공률도 높게 좌우된다. 본 발명의 실시예는 MPU 제어부(300)의 자기 잠금 설정을 통해 기기 내부의 중요 실행 코드와 참조 데이터를 하드웨어 차원에서 보호하여 기기 자체 방어 기재를 제공한다. In general, the remote attack by software is introduced to the target device through the network, and after the intrusion, the attack code is inserted through the defense equipment inside the device. Therefore, the success rate of the remote attack also depends on the strength of the internal defense base of the device to be attacked. The embodiment of the present invention provides a device self-defense description by protecting the important execution code and the reference data inside the device in the hardware level through the self-lock setting of the MPU control unit 300.

본 발명의 실시예에서 제안된 방어 기재에 따르면, MPU 영역에 대한 공격 시도가 실제로 발생하는 경우 예외상황 처리 루틴에 의해 시스템은 재가동된다. 하지만 재가동만으로는 공격 상황을 정확히 판단하거나 기술적으로 대처하는 데 한계가 있다. 더구나 기기 차원의 방어 기재만으로는 네트워크 외부에서 시도되는 원격 공격의 경로 자체를 근본적으로 차단하지 못하기 때문에, 보다 적극적인 탐지 및 대응이 요구된다. 특히, 최근의 봇넷(botnet) 공격은 네트워크에 연결된 다수의 기기를 대상으로 빠르게 진행되기 때문에 개별 기기만으로 대응하기 어렵다.According to the defense description proposed in the embodiment of the present invention, the system is restarted by the exception handling routine when an attack attempt on the MPU region actually occurs. However, restarting alone has limitations in accurately determining or technically addressing an attack. Moreover, device-level defenses alone do not fundamentally block the path of remote attack attempts from outside the network, requiring more aggressive detection and response. In particular, the recent botnet attack is fast to target a large number of devices connected to the network, so it is difficult to respond only to individual devices.

따라서 본 발명의 실시예에서는 자기 잠금의 형태로 MPU를 활성화시킨 이후에 기기 내부의 방어 기재를 갖춘 상태에서 기기가 네트워크에 연결된다. 이때 원격 공격이 유입되고 방어 기재를 무력화시키려는 시도가 발생하는 순간, MPU 영역에서 접근 거부에 따른 예외상황이 발생한다. 일반적으로 MPU를 운영하는 시스템에서는 예외상황 처리 루틴에서 오류 상황의 원인을 파악하고 이에 대한 대응을 바로 수행한 이후에 예외상황을 유발한 지점 이후부터 실행을 계속한다. Therefore, in the embodiment of the present invention, after activating the MPU in the form of self-locking, the device is connected to the network with the protective substrate inside the device. At this time, when a remote attack is introduced and an attempt is made to neutralize the defense, an exception occurs due to the denial of access in the MPU area. In general, the system running the MPU identifies the cause of the error condition in the exception handling routine and immediately executes the response, and then continues execution after the point where the exception occurred.

이를 해결하기 위해, 본 발명의 실시예에서는 공격 여부의 최종 판단 및 대응을 현재 실행 중인 예외상황 처리 문맥 상태(context)에서 수행하지 않고 시스템을 바로 재가동하여 MPU 활성화 이전의 부트 코드 초기 상태로 되돌릴 수 있다. 이때 시스템이 재가동 되면 네트워크 외부 트래픽 유입이 차단되고 게이트웨이와의 일대일 통신만 가능한 부트 코드 상태에서 시스템 재가동 사실을 게이트웨이에게 전달한다. 따라서 본 발명의 실시예에서는 MPU를 사용하지만 MPU 영역의 침해 상황 시 공격 여부에 대한 구체적인 판단 및 처리를 기기 내부의 시스템 소프트웨어에서 수행하는 대신 제3자인 외부의 게이트웨이를 통해 수행한다 게이트웨이는 공격 시도에 따라 재가동된 사실을 해당 기기뿐만 아니라 기기가 포함된 물리적 네트워크 차원에서 여러 기기로부터 수집하고 이를 기반으로 최종 공격 여부를 판단하고 대응한다. 이에 대해서 도 6을 참고로 하여 자세하게 설명한다. In order to solve this problem, the embodiment of the present invention can restart the system immediately without executing the final determination and response of the attack in the currently executing exception handling context and return to the initial state of the boot code before the MPU activation. have. At this time, when the system is restarted, traffic from outside the network is blocked and the system is restarted in the boot code state that enables only one-to-one communication with the gateway. Therefore, the embodiment of the present invention uses the MPU, but in the case of an infringement situation of the MPU area, a specific judgment and processing of the attack is performed through an external gateway that is a third party instead of being performed by the system software inside the device. Therefore, the restarted fact is collected from various devices not only in the device but also in the physical network including the device, and based on this, the final attack is determined and responded to. This will be described in detail with reference to FIG. 6.

도 6은 본 발명의 실시예에 따른 IoT 기기의 원격 공격 방어 과정을 도시하고, 도 7은 본 발명의 실시예에 따른 게이트웨이에서 악의적인 공격 여부의 판단 및 대응 방법을 나타낸 흐름도이다. 6 is a flowchart illustrating a remote attack defense process of an IoT device according to an embodiment of the present invention, and FIG. 7 is a flowchart illustrating a method of determining and responding to a malicious attack in a gateway according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 서버(603)는 IoT 기기(601)에 대한 원격 관리 및 서비스를 제공한다. 서버(603)는 VPN, TLS 등의 보안 채널(605)을 통해 게이트웨이(602)와 통신한다. 게이트웨이(602)는 IoT 기기(601)가 포함된 물리적 네트워크(600)를 관할한다. 기기들(601)은 게이트웨이(602)를 안전한 개체로 인식할 수 있다.As shown in FIG. 6, server 603 provides remote management and services for IoT device 601. The server 603 communicates with the gateway 602 via a secure channel 605 such as VPN, TLS, or the like. The gateway 602 manages the physical network 600 that contains the IoT device 601. The devices 601 may recognize the gateway 602 as a secure entity.

도 7에 도시된 바와 같이, 본 발명의 실시예에서는 공격자(604)에 의한 원격 공격이 시작(launch)되고(S701) 공격자(604)가 게이트웨이(602)를 경유하여 IoT 기기(601)에 대한 공격을 시도하면, IoT 기기(601)는 앞에서 설명한 MPU 방어 기재에 따라 예외상황이 발생하고 시스템이 재가동된다(S702, S703). As shown in FIG. 7, in the embodiment of the present invention, a remote attack by the attacker 604 is launched (S701), and the attacker 604 is connected to the IoT device 601 via the gateway 602. If an attack is attempted, the IoT device 601 generates an exception according to the MPU defense description described above, and the system is restarted (S702 and S703).

IoT 기기(601)는 재가동 직후 부트 코드를 실행하고(S704), 부트 코드 실행 단계에서 재가동 사실(reset event)을 게이트웨이(602)에게 알린다(S705). The IoT device 601 executes the boot code immediately after restarting (S704), and informs the gateway 602 of the reset event in the boot code execution step (S705).

게이트웨이(602)는 해당 IoT 기기(601) 및 동일 네트워크의 다른 IoT 기기로부터 현재까지 수신된 재가동 패턴을 분석하여 공격자(604)에 의한 공격 여부 또는 펌웨어의 자체 결함 여부를 판단한다(S706).The gateway 602 analyzes restart patterns received so far from the corresponding IoT device 601 and other IoT devices in the same network to determine whether an attack is made by the attacker 604 or whether the firmware has its own defect (S706).

공격 상황으로 판단한 경우, 게이트웨이(602)는 공격 의심 트래픽의 내부 유입을 차단한다(S710).If it is determined that the attack situation, the gateway 602 blocks the inflow of suspicious traffic (S710).

게이트웨이(602)는 공격 상황 및 트래픽 정보를 서버(603)에게 전달한다(S711).The gateway 602 transmits the attack situation and the traffic information to the server 603 (S711).

본 발명의 실시예에서는 서버(603)에서 배포한 정식 펌웨어를 게이트웨이(602)를 중심으로 IoT 기기(601)에 안전하게 설치하는, 펌웨어 업데이트 과정도 함께 제안한다. 앞서 서술된 본 발명의 실시예에 따른 공격 탐지(S706) 및 대응 단계(S710)에서, 재가동된 IoT 기기(601)는 부트 코드 내에서 게이트웨이(602)에게 재가동 상황을 전달한다. 따라서 부트 코드 실행 단계에서는 게이트웨이(602)와 IoT 기기(601)가 두 기기 사이에 일대일 통신을 위한 네트워크 모듈을 각각 포함하며, 해당 네트워크 모듈은 두 기기 간 매체(media) 상에서 동작하는 링크 수준의 통신을 수행하는 모듈이 될 수 있다. 이때, IoT 기기(601)는 게이트웨이(602)와 링크 수준에서 일대일 통신이 가능하지만 외부 네트워크 개체와의 통신은 불가능한 상태이기 때문에 외부 공격 트래픽 유입이 원천적으로 차단된 상태에서 코드를 안전하게 실행시키게 된다. 따라서 본 발명의 실시예에 따른 IoT 기기(601)는 부트 코드 내에서 신뢰성이 확보된 게이트웨이(602)와의 일대일 통신을 통해서만 원본 펌웨어를 제공받고 업데이트한다. 이때 IoT 기기(601)와 게이트웨이(602)간의 상호 인증 및 채널 암호용 키 교환은 도 5를 참고로 하여 설명한 읽기 전용 참조 데이터의 실시예를 따른다. The embodiment of the present invention also proposes a firmware update process for securely installing the official firmware distributed by the server 603 in the IoT device 601 around the gateway 602. In the attack detection (S706) and the corresponding step (S710) according to the embodiment of the present invention described above, the restarted IoT device 601 transmits the restart situation to the gateway 602 in the boot code. Therefore, in the boot code execution step, the gateway 602 and the IoT device 601 each include a network module for one-to-one communication between the two devices, and the network module is a link-level communication that operates on media between the two devices. It can be a module that performs In this case, since the IoT device 601 can perform one-to-one communication with the gateway 602 at the link level, but the communication with the external network entity is impossible, the IoT device 601 executes the code safely in a state where external attack traffic is blocked inherently. Therefore, the IoT device 601 according to the embodiment of the present invention receives and updates the original firmware only through one-to-one communication with the gateway 602 which is secured in the boot code. In this case, the mutual authentication between the IoT device 601 and the gateway 602 and the key exchange for channel encryption follow the embodiment of the read-only reference data described with reference to FIG. 5.

IoT 기기(601)는 부트 코드 실행 단계에서 시스템 재가동 사실(event)을 매번 게이트웨이(602)에게 알리고(S705), 게이트웨이(602)로부터 수신된 응답(response) 값에 따라 다음 동작을 결정한다. The IoT device 601 notifies the gateway 602 of the system restart event every time in the boot code execution step (S705), and determines the next operation according to the response value received from the gateway 602.

게이트웨이(602)는 공격 상황이 아닌 것으로 판단한 경우, OK 응답 값을 IoT 기기(601)로 전송한다(S707). If it is determined that the gateway 602 is not an attack situation, the gateway 602 transmits an OK response value to the IoT device 601 (S707).

IoT 기기(601)는 게이트웨이(602)로부터 OK 응답 값을 수신하면, 나머지 부트 코드 실행 과정을 계속 수행한다(S708). When the IoT device 601 receives the OK response value from the gateway 602, the IoT device 601 continues to execute the remaining boot code (S708).

한편, 서버(603)는 게이트웨이(602)로부터 공격 상황 및 트래픽 정보를 수신하면, 업데이트된 펌웨어가 존재하는지 확인하고(S712), 업데이트된 펌웨어의 최신 버전을 게이트웨이(602)로 전송한다(S713).On the other hand, upon receiving the attack situation and traffic information from the gateway 602, the server 603 checks whether the updated firmware exists (S712), and transmits the latest version of the updated firmware to the gateway 602 (S713). .

게이트웨이(602)는 업데이트된 펌웨어를 검증한다(S714). The gateway 602 verifies the updated firmware (S714).

IoT 기기(601) 관점에서 시스템이 재가동 되는 상황은 부트 코드 단계에서 운영체제 및 응용프로그램 이미지에 대한 무결성 검사 결과 부당변경(tampering)이 발견되거나 응용 프로그램 실행 도중 원격 공격자에 의해 불법적인 메모리 접근 시도가 발생하는 경우이다. 그러므로 게이트웨이(602)는 IoT 기기(601)로부터 재가동 사실을 수신하고, 공격 또는 펌웨어의 자체 결함 여부를 감지해야 한다.The situation in which the system is restarted from the point of view of the IoT device 601 may indicate tampering as a result of the integrity check of the operating system and the application image at the boot code stage, or an illegal memory access attempt is made by a remote attacker during application execution. This is the case. Therefore, the gateway 602 should receive the restart from the IoT device 601 and detect whether the attack or the firmware itself is defective.

게이트웨이(602)에서 업데이트된 펌웨어의 검증이 완료되면, IoT 기기(601)로 펌웨어 업데이트를 알린다(S715). When the verification of the updated firmware is completed in the gateway 602, the IoT device 601 is notified of the firmware update (S715).

IoT 기기(601)는 펌웨어 업데이트를 수신하면, 자발적으로 시스템을 재가동하고(S716), 부트 코드 실행을 시작한다(S717). When the IoT device 601 receives the firmware update, the IoT device 601 voluntarily restarts the system (S716) and starts executing the boot code (S717).

IoT 기기(601)는 부트 코드 내에서 재가동 사실을 게이트웨이(602)에 전달하고(S718), 게이트웨이(602)는 응답 값으로 펌웨어 업데이트를 IoT 기기(601)로 전송함으로써(S719), 정식 펌웨어를 IoT 기기(601)로 전달하여, IoT 기기(601) 스스로 업데이트를 수행하도록 한다.The IoT device 601 transmits the fact of restarting in the boot code to the gateway 602 (S718), and the gateway 602 transmits the firmware update to the IoT device 601 as a response value (S719), thereby providing the official firmware. The IoT device 601 transmits the information to the IoT device 601 so as to update itself.

IoT 기기(601)는 펌웨어 업데이트를 수행하고(S720), 시스템을 재가동한 후(S720), 부트 코드 실행을 시작한다(S721). The IoT device 601 performs a firmware update (S720), restarts the system (S720), and starts boot code execution (S721).

이와 같이, 게이트웨이(602)는 IoT 기기(601)로부터 재가동 사실을 수신하면, 공격 또는 펌웨어의 자체 결함 여부를 감지하고, 그에 따른 구체적인 대응 방법으로 공격 트래픽의 유입을 차단하거나, 정식 펌웨어를 IoT 기기(601)에 전달하여 IoT 기기(601) 스스로 업데이트를 수행하도록 유도한다. 이외 시스템이 재가동되는 상황은 서버(603)에서 펌웨어를 배포하는 과정에서 서버(603)를 대신하여 게이트웨이(602)는 펌웨어 업데이트를 IoT 기기(601)에 전달하고 IoT 기기(601)는 자발적으로 시스템을 재가동시키게 된다. 간혹 펌웨어 자체 소프트웨어 결함에 의해서 MPU 메모리 보호 영역을 침범하고 공격으로 의심되어 시스템이 재가동 될 수 있지만, 게이트웨이(602)는 펌웨어 자체 결함에 따른 오류 상황을 신속하게 판단하고 서버(604)로 하여금 해당 결함이 해소된 펌웨어를 재배포하도록 유도한다. As such, when the gateway 602 receives the restart from the IoT device 601, the gateway 602 detects whether the attack or the firmware has its own defect, blocks the inflow of attack traffic in a specific countermeasure method, or sets the official firmware on the IoT device. Forward to 601 to induce the IoT device 601 to perform the update itself. In a situation where the system is restarted, the gateway 602 transfers the firmware update to the IoT device 601 on behalf of the server 603 in the process of distributing the firmware in the server 603, and the IoT device 601 voluntarily Will be restarted. Occasionally, the firmware itself may invade the MPU memory protection area by a software defect and may be suspected to attack, causing the system to restart. However, the gateway 602 quickly determines an error condition due to the firmware itself defect and causes the server 604 to determine the failure. Induce redistribution of this resolved firmware.

도 8은 본 발명의 실시예에 따른 IoT 기기에서의 원격 공격 방어 방법을 나타낸 흐름도이다.8 is a flowchart illustrating a remote attack defense method in an IoT device according to an embodiment of the present invention.

도 8을 참고하면, IoT 기기(601)에 최초 파워가 인가되는 순간 부트 코드가 가장 먼저 실행되고 시스템에 관한 기본적인 초기화가 실행된다(S802, S803).Referring to FIG. 8, when the initial power is applied to the IoT device 601, the boot code is executed first and basic initialization of the system is executed (S802 and S803).

IoT 기기(601)는 현재 네트워크를 관할하는 게이트웨이(602)와의 일대일 통신이 링크 수준으로 가능하도록 해당 네트워크 모듈을 설정한다. 네트워크 모듈에 대한 초기화 작업이 끝나면, IoT 기기(601)는 현재 시스템이 재가동된 사실을 게이트웨이(602)에게 전송하고 게이트웨이(602)로부터 응답 값을 수신한다(S804).The IoT device 601 sets up a corresponding network module so that one-to-one communication with the gateway 602 that currently manages the network is possible at the link level. After the initialization operation for the network module, the IoT device 601 transmits the fact that the current system is restarted to the gateway 602 and receives a response value from the gateway 602 (S804).

IoT 기기(601)는 수신한 응답 값을 토대로 이후에 수행할 동작을 결정한다.The IoT device 601 determines an operation to be performed later based on the received response value.

IoT 기기(601)는 수신한 응답 값을 토대로 펌웨어 업데이트가 필요한 것으로 판단되면(S805), 게이트웨이(602)로부터 펌웨어를 수신하여 해당 펌웨어가 서버(603)에서 배포한 정식 펌웨어인지 검증한다. 펌웨어 검증은 앞서 기술된 코드 서명 검증의 실시예에 따른다.If it is determined that the firmware update is necessary based on the received response value (S805), the IoT device 601 receives the firmware from the gateway 602 and verifies whether the corresponding firmware is the official firmware distributed by the server 603. Firmware verification is in accordance with the embodiment of code signature verification described above.

IoT 기기(601)는 펌웨어 검증이 성공적으로 끝나면 해당 펌웨어를 IoT 기기(601)의 실행코드 영역인 비활성 메모리에 작성하여 펌웨어를 업데이트하고(S806) 시스템을 재가동시킨다(S807). When the firmware verification is successfully completed, the IoT device 601 updates the firmware by writing the firmware in an inactive memory that is an execution code area of the IoT device 601 (S806) and restarts the system (S807).

만약 IoT 기기(601)는 게이트웨이(602)로부터 펌웨어 업데이트 과정이 필요하지 않다는 응답 값을 수신하는 경우, 이후에 실행될 운영체제(OS) 및 응용프로그램(APP)에 대한 무결성 검증을 수행한다(S808). 무결성 검증의 구체적인 방법은 앞서 서술된 코드 서명 검증과 동일한 실시예를 따른다. 이때 해당 이미지에 대한 부당변경(tampering)이 발견된 경우, 게이트웨이(602)를 통해서 펌웨어 업데이트 절차를 수행한다(S806). 반대로, IoT 기기(601)는 운영체제(OS) 및 응용프로그램(APP) 이미지에 대한 무결성 검사가 성공적으로 완료된 경우 다음 단계인 MPU 제어부(300)에 대한 MPU 영역 설정을 수행한다(S809). MPU 제어부(300)는 부트 코드를 포함한 중요 실행 코드 및 참조 데이터 영역에 대해 MPU 영역(710)으로 설정하고 MPU 제어부(300)에 매핑된 자신의 MPU 영역의 변경을 원천적으로 차단하도록 도 4에서 설명한 방법에 따라서 접근 속성을 설정한다. If the IoT device 601 receives a response value indicating that the firmware update process is not required from the gateway 602, the IoT device 601 performs integrity verification on an OS and an application to be executed later (S808). The specific method of integrity verification follows the same embodiment as the code signature verification described above. At this time, if tampering with respect to the image is found, the firmware update procedure is performed through the gateway 602 (S806). On the contrary, if the integrity check for the OS and APP images is successfully completed, the IoT device 601 performs MPU region setting for the MPU control unit 300 (S809). The MPU control unit 300 is set as the MPU area 710 for the critical execution code and the reference data area including the boot code, and the change in its MPU area mapped to the MPU control unit 300 is blocked at the source described with reference to FIG. 4. Set access properties according to the method.

마지막 단계에서는 IoT 기기(601) 본래의 서비스가 시작되도록 운영체제(706)와 응용프로그램(708)을 실행(run)시킨다(S810, S811). 이때부터 외부와의 통신이 가능하고 IoT 기기(601)의 서비스가 본격적으로 동작하기 때문에 원격 공격자에게도 동시에 노출된다. 하지만 본 발명의 실시예에서 제안한 MPU 기반의 방어 기재도 이미 동작되고 있기 때문에 원격 공격자에 의한 불법 메모리 접근이 시도되면, 해당 보호 영역의 접근 거부 설정에 따라 처리될 수 있다. 즉, 원격 공격자에 의한 불법 메모리 접근이 시도되면, 예외상황이 발생된다. 예외상황이 발생되면(S812) 앞에서 설명한 바와 같이 시스템이 재가동되면서 부트 코드 실행 단계부터 다시 시작된다(S807, S802).In the last step, the operating system 706 and the application 708 are run to start the original service of the IoT device 601 (S810 and S811). At this time, since communication with the outside is possible and the services of the IoT device 601 operate in earnest, they are simultaneously exposed to a remote attacker. However, since the MPU-based defense substrate proposed in the embodiment of the present invention is already in operation, when an illegal memory access is attempted by a remote attacker, it may be processed according to the access denial setting of the corresponding protection region. In other words, if an illegal memory access is attempted by a remote attacker, an exception occurs. If an exception occurs (S812), as described above, the system is restarted and restarted from the boot code execution step (S807, S802).

이와 같이, 본 발명의 실시예에서는 원격 공격이나 또는 기기 내부 소프트웨어의 자체 결함에 의해서 실행 도중 갑자기 시스템이 재가동되도록 설계되지만 간혹 게이트웨이(602)로부터 펌웨어 업데이트 요청을 수신하거나 부트 과정에서 운영체제 및 응용프로그램 이미지 무결성 검사 결과에 따라 단계적으로 시스템을 재가동시킬 수 있다. 따라서 게이트웨이(602)는 IoT 기기(601)로부터 재가동 사실을 수신한 후 IoT 기기(601)가 재가동 된 원인을 정확하게 판단하고 필요 시에는 정식 펌웨어를 IoT 기기(601)에게 제공하는 역할을 수행한다. As such, in the embodiment of the present invention, the system is designed to suddenly restart during execution due to a remote attack or a defect in the internal software of the device, but sometimes the operating system and the application image are received from the gateway 602 or receive a firmware update request from the boot process. Depending on the results of the integrity check, the system can be restarted in stages. Therefore, after receiving the fact that the IoT device 601 is restarted, the gateway 602 accurately determines the cause of the restart of the IoT device 601 and provides a formal firmware to the IoT device 601 when necessary.

도 9는 본 발명의 실시예에 따른 IoT 기기에서의 MPU 영역의 일 예를 도시한 블록도이다. 9 is a block diagram illustrating an example of an MPU region in an IoT device according to an embodiment of the present invention.

도 9를 참고하면, IoT 기기(601)는 MPU 제어부(300)를 통해 보호 받는 실행 코드 영역으로 게이트웨이(602)와 링크 수준의 일대일 지역 통신을 위한 네트워크 모듈(903), 펌웨어 업데이트 모듈 및 운영체제 및 응용프로그램 검증 모듈을 포함하는 부트 코드(902), MPU 예외상황 처리 루틴(901), 그리고 게이트웨이(602)로부터 펌웨어 업데이트 요청을 수신하고 시스템을 재가동하는 모듈(907)을 보호하도록, 해당 모듈이 설치된 영역을 MPU 영역으로 설정하고 있다.Referring to FIG. 9, the IoT device 601 is an executable code area protected by the MPU control unit 300, a network module 903, a firmware update module and an operating system for one-to-one regional communication at the link level with the gateway 602. The module is installed to protect the boot code 902 including the application verification module, the MPU exception handling routine 901, and the module 907 that receives firmware update requests from the gateway 602 and restarts the system. The area is set as the MPU area.

그 밖에 운영체제(905)와 응용프로그램(906) 코드 영역은 추후 펌웨어 업데이트를 통해 유동적으로 변경될 수 있기 때문에 본 발명의 실시예에서는 보호 영역의 대상에서 제외하였지만, 업데이트 등의 변경이 예상되지 않는 경우에는 MPU의 보호 대상으로 포함시킬 수 있다.In addition, since the code area of the operating system 905 and the application program 906 may be flexibly changed through a firmware update later, the embodiment of the present invention excludes the protection area, but the update is not expected. Can be included as the protection target of the MPU.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다. Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

Claims (18)

경량 IoT 기기의 메모리 보호 유니트(MPU)를 이용하여 원격 공격자에 의한 소프트웨어 공격으로부터 방어하는 방법으로서,
메모리의 시스템 제어 영역에서 부트 코드를 포함한 실행 코드 및 참조 데이터 영역에 대해 시스템 MPU 영역으로 지정하고, 활성화 이후부터 기 설정된 MPU 영역에 대한 변경을 거부하도록 접근 속성을 설정하는 단계;
상기 원격 공격자에 의한 상기 시스템 MPU 영역으로의 불법 변경 시도 시에 발생되는 예외상황의 처리루틴을 시스템이 재가동되도록 설정하는 단계; 및
상기 시스템 MPU 영역을 활성화시키는 단계를 포함하는
방법.
As a method of defending against software attacks by remote attackers using a memory protection unit (MPU) of a lightweight IoT device,
Designating an execution code including a boot code and a reference data area as a system MPU area in a system control area of a memory, and setting an access attribute to reject a change to a preset MPU area after activation;
Setting a system to restart the processing routine of an exception generated when an illegal change attempt is made to the system MPU area by the remote attacker; And
Activating the system MPU region;
Way.
제1항에서,
상기 시스템 MPU 영역은 상기 시스템의 재가동을 통해서만 해제되는
방법.
In claim 1,
The system MPU area is released only by restarting the system.
Way.
제1항에서,
상기 시스템 MPU 영역은 상기 시스템 MPU 영역이 활성화된 이후부터 변경 또는 재설정이 불가능한 잠김 상태를 유지하는
방법.
In claim 1,
The system MPU region maintains a locked state that cannot be changed or reset after the system MPU region is activated.
Way.
제1항에서,
상기 시스템이 재가동되면, 부트 코드 실행 단계에서 재가동 사실을 게이트웨이로 전송하는 단계, 그리고
상기 게이트웨이로부터 수신하는 응답에 따라 다음 동작을 결정하는 단계를 더 포함하는
방법.
In claim 1,
When the system is restarted, in the boot code execution step, transmitting the restart fact to the gateway, and
Determining a next operation according to a response received from the gateway.
Way.
제4항에서,
상기 결정하는 단계는 상기 게이트웨이에 의해 상기 원격 공격자에 의한 공격 상황이 아닌 것으로 판단되면, 상기 부트 코드 실행 단계를 계속 수행하는 단계를 더 포함하는
방법.
In claim 4,
The determining may further include continuing to execute the boot code if it is determined by the gateway that the attacker is not attacked by the remote attacker.
Way.
제4항에서,
상기 결정하는 단계는
상기 응답 값이 펌웨어 업데이트를 알리는 경우, 상기 게이트웨이를 통해 펌웨어를 수신하는 단계;
수신한 상기 펌웨어를 검증하는 단계; 및
상기 펌웨어를 업데이트하는 단계를 포함하는
방법.
In claim 4,
The determining step
Receiving firmware through the gateway when the response value informs of a firmware update;
Verifying the received firmware; And
Updating the firmware
Way.
제6항에서,
상기 결정하는 단계는 상기 업데이트 이후 상기 시스템을 재가동시키는 단계를 더 포함하는
방법.
In claim 6,
The determining step may further comprise restarting the system after the update.
Way.
제4항에서,
상기 결정하는 단계는 상기 응답 값이 펌웨어 업데이트가 필요하지 않음을 나타내는 경우, 실행될 운영체제 및 응용프로그램에 대한 무결성 검증을 수행하는 단계를 포함하는
방법.
In claim 4,
The determining step includes performing integrity verification of the operating system and application to be executed when the response value indicates that no firmware update is required.
Way.
경량 IoT 기기들이 포함된 물리적 네트워크를 관할하는 게이트웨이에서 상기 원격 공격자에 의한 상기 경량 IoT 기기들로의 소프트웨어 공격으로부터 방어하는 방법으로서,
상기 경량 IoT 기기들로부터 시스템 재가동 사실을 수신하는 단계;
상기 경량 IoT 기기들로부터 수신된 시스템 재가동 사실들을 분석하여 상기 원격 공격자에 의한 공격 여부 또는 펌웨어의 결함 여부를 판단하는 단계; 및
상기 원격 공격자에 의한 공격 상황으로 판단된 경우 공격 의심 트래픽의 내부 유입을 차단하는 단계를 포함하는
방법.
A method for defending against software attacks by a remote attacker on a lightweight IoT device at a gateway that governs a physical network containing lightweight IoT devices,
Receiving system restart from the lightweight IoT devices;
Analyzing system restart facts received from the lightweight IoT devices to determine whether the remote attacker is attacked or whether the firmware is defective; And
Blocking the inflow of suspicious traffic when determined to be attacked by the remote attacker;
Way.
제9항에서,
상기 펌웨어의 결함으로 판단된 경우, 펌웨어 업데이트를 상기 경량 IoT 기기들로 전송하는 단계, 그리고
상기 경량 IoT 기기들이 펌웨어를 업데이트하도록 서버로부터 수신된 펌웨어를 상기 경량 IoT 기기들로 전송하는 단계를 더 포함하는
방법.
In claim 9,
If it is determined that the firmware is defective, transmitting a firmware update to the lightweight IoT devices, and
Sending firmware received from a server to the lightweight IoT devices so that the lightweight IoT devices update firmware.
Way.
제10항에서,
상기 서버로부터 수신된 펌웨어를 검증하는 단계를 더 포함하는
방법.
In claim 10,
Verifying firmware received from the server;
Way.
원격 공격자에 의한 소프트웨어 공격으로부터 방어하기 위한 경량 IoT 기기의 원격 공격 방어 장치로서,
적어도 하나의 MPU 영역 중 접근 속성이 접근 거부로 설정된 시스템 MPU 영역으로의 접근 시도 시에 발생되는 예외상황의 처리루틴을 시스템이 재가동되도록 설정하는 메모리 보호 유니트 제어부를 포함하는
원격 공격 방어 장치.
As a remote attack defense device of a lightweight IoT device to defend against software attack by a remote attacker,
And a memory protection unit controller configured to set the system to restart the processing routine of an exception occurring when attempting to access a system MPU area in which at least one MPU area has an access property set to access denied.
Remote attack defense.
제12항에서,
상기 메모리 보호 유니트 제어부는 부트 코드를 포함한 실행 코드 및 참조 데이터 영역에 대해 상기 시스템 MPU 영역으로 지정하고, 상기 시스템 MPU 영역에 대한 상기 접근 속성을 접근 거부로 설정하는
원격 공격 방어 장치.
In claim 12,
The memory protection unit control unit designates an execution code including a boot code and a reference data area as the system MPU area, and sets the access property for the system MPU area to access denied.
Remote attack defense.
제12항에서,
상기 메모리 보호 유니트 제어부는 상기 시스템 제어 영역 외의 나머지 영역 중 일부 영역을 일반 MPU 영역으로 지정하고, 상기 일반 MPU 영역의 접근 속성을 읽기쓰기, 읽기전용 및 접근거부 중에서 하나로 설정하는
원격 공격 방어 장치.
In claim 12,
The memory protection unit control unit designates some of the remaining areas other than the system control area as a general MPU area, and sets an access attribute of the general MPU area to one of read write, read only, and access denied.
Remote attack defense.
제12항에서,
상기 시스템 MPU 영역은 상기 시스템의 재가동을 통해서만 해제되는 원격 공격 방어 장치.
In claim 12,
And the system MPU zone is released only by restarting the system.
제12항에서,
상기 시스템 MPU 영역이 활성화된 이후부터 상기 시스템 MPU 영역은 변경 또는 재설정이 불가능한 잠김 상태를 유지하는 원격 공격 방어 장치.
In claim 12,
And after the system MPU region is activated, the system MPU region maintains a locked state that cannot be changed or reset.
제12항에서,
상기 시스템이 재가동되면, 부트 코드 실행 단계에서 재가동 사실을 게이트웨이로 전송하고 상기 게이트웨이로부터 수신하는 응답에 따라 동작을 결정하는 CPU를 더 포함하는
원격 공격 방어 장치.
In claim 12,
If the system is restarted, the boot code execution step further includes a CPU for transmitting the fact that the restart to the gateway and determines the operation according to the response received from the gateway
Remote attack defense.
제12항에서,
상기 CPU는 상기 게이트웨이에 의해 상기 원격 공격자에 의한 공격 상황이 아닌 것으로 판단되면, 상기 부트 코드 실행 단계를 계속 수행하고, 상기 응답 값이 펌웨어 업데이트를 알리는 경우, 상기 게이트웨이를 통해 서버로부터 수신한 펌웨어를 업데이트하는
원격 공격 방어 장치.
In claim 12,
If the CPU determines that the gateway is not attacked by the remote attacker, the CPU continues executing the boot code, and when the response value informs the firmware update, the CPU receives the firmware received from the server through the gateway. Updated
Remote attack defense.
KR1020180080222A 2018-07-10 2018-07-10 Method and apparatus for defending remote attacks of device KR20200006452A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180080222A KR20200006452A (en) 2018-07-10 2018-07-10 Method and apparatus for defending remote attacks of device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080222A KR20200006452A (en) 2018-07-10 2018-07-10 Method and apparatus for defending remote attacks of device

Publications (1)

Publication Number Publication Date
KR20200006452A true KR20200006452A (en) 2020-01-20

Family

ID=69367740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080222A KR20200006452A (en) 2018-07-10 2018-07-10 Method and apparatus for defending remote attacks of device

Country Status (1)

Country Link
KR (1) KR20200006452A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024001808A1 (en) * 2022-06-27 2024-01-04 华为技术有限公司 Information processing method, chip, electronic device and computer-readable storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024001808A1 (en) * 2022-06-27 2024-01-04 华为技术有限公司 Information processing method, chip, electronic device and computer-readable storage medium

Similar Documents

Publication Publication Date Title
US10120999B2 (en) Method and system for preventing and detecting security threats
KR102434444B1 (en) Method and Apparatus for Device Security Verification Utilizing a Virtual Trusted Computing Base
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
EP1761837B1 (en) System and method for secure inter-platform and intra-platform communications
US8935530B2 (en) Control device and computer readable medium
CN109937419B (en) Initialization method for security function enhanced device and firmware update method for device
US7739724B2 (en) Techniques for authenticated posture reporting and associated enforcement of network access
US8281402B2 (en) Network vulnerability assessment of a host platform from an isolated partition in the host platform
KR20180103013A (en) Secured execution context data
US10013579B2 (en) Secure routing of trusted software transactions in unsecure fabric
US9836611B1 (en) Verifying the integrity of a computing platform
US20180012025A1 (en) Dynamic security module terminal device and method of operating same
CN112948086B (en) Trusted PLC control system
Francillon et al. Systematic treatment of remote attestation
WO2021084221A1 (en) Attestation for constrained devices
US20060005015A1 (en) System and method for secure inter-platform and intra-platform communications
CN116418538A (en) Single-packet authorization state detection method, terminal equipment and storage medium
WO2017135942A1 (en) Heartbeat signal verification
US10713392B2 (en) Network interface device and method
GB2588648A (en) Iterative key generation for constrained devices
CN115879099A (en) DCS controller, operation processing method and protection subsystem
JP7138043B2 (en) Information processing equipment
US11520595B2 (en) Industrial internet of things gateway boot methods
KR20200006452A (en) Method and apparatus for defending remote attacks of device
KR102034934B1 (en) Securing the network access of local devices by using TPM