KR102370848B1 - 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법 - Google Patents

분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법 Download PDF

Info

Publication number
KR102370848B1
KR102370848B1 KR1020200153534A KR20200153534A KR102370848B1 KR 102370848 B1 KR102370848 B1 KR 102370848B1 KR 1020200153534 A KR1020200153534 A KR 1020200153534A KR 20200153534 A KR20200153534 A KR 20200153534A KR 102370848 B1 KR102370848 B1 KR 102370848B1
Authority
KR
South Korea
Prior art keywords
security module
kernel
computer device
security
update
Prior art date
Application number
KR1020200153534A
Other languages
English (en)
Inventor
홍기융
Original Assignee
주식회사 시큐브
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 시큐브 filed Critical 주식회사 시큐브
Priority to KR1020200153534A priority Critical patent/KR102370848B1/ko
Priority to JP2021505260A priority patent/JP2023507533A/ja
Priority to EP20845769.7A priority patent/EP4250155A4/en
Priority to PCT/KR2020/019418 priority patent/WO2022107991A1/ko
Priority to US17/269,922 priority patent/US20230315859A1/en
Application granted granted Critical
Publication of KR102370848B1 publication Critical patent/KR102370848B1/ko
Priority to JP2023221108A priority patent/JP2024029139A/ja

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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법을 제공한다. 컴퓨터 장치는 OS 커널 및 분할된 보안 모듈을 포함할 수 있다. 상기 OS 커널은 커널 레벨에 설치되어 동작하고, 보안 콜백 기능을 포함한다. 상기 분할된 보안 모듈은 상기 커널 레벨에 설치되어 동작하고, 업데이트 불가 파트와 업데이트 가능 파트로 구분된다. 또한, 상기 분할된 보안 모듈은, 상기 OS 커널과 직접 인터페이스하여 상기 보안 콜백 기능에 연결되는 상기 업데이트 불가 파트와, 상기 업데이트 불가 파트를 통해 간접적으로 상기 OS 커널과 인터페이스하는 상기 업데이트 가능 파트와, 상기 업데이트 가능 파트의 업데이트를 제어하는 업데이트 매니저를 포함한다.

Description

분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법{Computer device including divided security module and method for updating security module}
본 발명은 컴퓨터 장치의 보안 모듈 및 그 업데이트 방법에 관한 것이다.
멀웨어(malware)는 컴퓨터 장치에 악영향을 끼칠 수 있는 모든 악성 소프트웨어를 총칭한다. 멀웨어의 종류로는 컴퓨터 바이러스, 웜, 트로이 목마, 스파이웨어, 애드웨어, 루트키트, 랜섬웨어 등이 알려져 있다.
멀웨어 위협에 대응하도록 설계된 보안 모듈 중 일부는 컴퓨터 장치의 커널 레벨에 설치되어 운영체제(OS) 커널과 인터페이스함으로써 컴퓨터 장치의 하드웨어와 프로세스의 보안을 원천적으로 책임진다. 커널 레벨에 설치된 이러한 보안 모듈은 컴퓨터 장치의 활동을 모니터링하기 위해 OS 커널에 후킹(hooking)할 수 있도록 하는 코드로 작성된다.
그런데 이러한 보안 모듈이 일단 컴퓨터 장치에 설치되고 나면, 일부 OS 환경에서는 보안 모듈의 업데이트가 어려울 수 있다. 즉, 보안 모듈의 보안 기능을 업데이트하기 위해 다른 코드로 업그레이드하려면 OS 커널을 다시 컴파일하는 것과 같이 OS 커널 자체의 수정이 필요할 수 있다. 따라서 보안 모듈의 개발자나 공급업체는 신속하게 보안 모듈을 업데이트하지 못하고 OS 커널 자체에 대한 다음 업그레이드까지 기다려야 할 수도 있다.
이와 같이 일부 유형의 OS에서는 보안 모듈의 업데이트가 용이하지 않기 때문에 악의적인 공격으로부터 컴퓨터 장치가 쉽게 취약해질 수 있다. 이러한 비유연성은 오늘날 빠르게 변화하는 사이버 보안 환경에서 바람직하지 않다. 멀웨어 공격에 효과적으로 대처할 수 있는 요소 중 하나는 멀웨어 공격 전략의 변화 속도를 능가하는 속도로 보안 모듈의 기능을 신속하고 용이하게 업데이트하는 신속성 및 유연성이다.
본 발명의 목적 중 하나는 커널 레벨에 설치된 보안 모듈의 업데이트를 신속하고 용이하게 수행할 수 있도록 하는 것이다.
본 발명의 다른 목적은 커널 레벨에 설치된 보안 모듈을 구비하는 컴퓨터 장치의 보안 기능을 강화하기 위한 것이다.
본 발명은 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법을 제공한다.
본 발명의 실시예에 따른 컴퓨터 장치는 OS 커널 및 분할된 보안 모듈을 포함할 수 있다. 상기 OS 커널은 커널 레벨에 설치되어 동작하고, 보안 콜백 기능을 포함한다. 상기 분할된 보안 모듈은 상기 커널 레벨에 설치되어 동작하고, 업데이트 불가 파트와 업데이트 가능 파트로 구분된다. 또한, 상기 분할된 보안 모듈은, 상기 OS 커널과 직접 인터페이스하여 상기 보안 콜백 기능에 연결되는 상기 업데이트 불가 파트와, 상기 업데이트 불가 파트를 통해 간접적으로 상기 OS 커널과 인터페이스하는 상기 업데이트 가능 파트와, 상기 업데이트 가능 파트의 업데이트를 제어하는 업데이트 매니저를 포함한다.
본 발명의 실시예에 따르면, 상기 OS 커널의 상기 보안 콜백 기능은 상기 컴퓨터 장치의 특정 활동에 응답하여 호출되고, 상기 업데이트 불가 파트를 통해 상기 업데이트 가능 파트로 질의를 전송하며, 상기 업데이트 불가 파트를 통해 상기 업데이트 가능 파트로부터 상기 질의에 대한 응답을 수신할 수 있다.
본 발명의 실시예에 따르면, 상기 보안 모듈의 상기 업데이트 불가 파트는 상기 OS 커널의 상기 보안 콜백 기능이 상기 업데이트 불가 파트를 가리키는 코드를 갖도록 상기 보안 콜백 기능을 후킹하여 구성될 수 있다.
본 발명의 실시예에 따르면, 상기 컴퓨터 장치는 사용자 레벨에 설치되어 동작하는 보안 소프트웨어를 더 포함할 수 있고, 상기 업데이트 가능 파트는 상기 보안 소프트웨어와 인터페이스할 수 있다.
본 발명의 실시예에 따르면, 상기 OS 커널은 상기 커널 레벨에서의 접근 제어 보안 정책을 제공하는 보안 기능을 더 포함할 수 있고, 상기 업데이트 불가 파트와 상기 업데이트 가능 파트 중 적어도 하나는 상기 OS 커널의 상기 보안 기능과 상호 작용할 수 있다.
본 발명의 실시예에 따른 컴퓨터 장치의 보안 모듈 업데이트 방법은 커널 레벨에 설치되어 동작하는 OS 커널과 상기 커널 레벨에 설치되어 동작하는 분할된 보안 모듈을 구비하는 컴퓨터 장치의 보안 모듈 업데이트 방법이다. 상기 분할된 보안 모듈은, 상기 OS 커널과 직접 인터페이스하는 업데이트 불가 파트와, 상기 업데이트 불가 파트를 통해 간접적으로 상기 OS 커널과 인터페이스하는 업데이트 가능 파트와, 상기 업데이트 가능 파트의 업데이트를 제어하는 업데이트 매니저를 포함할 수 있고, 상기 방법은 상기 분할된 보안 모듈을 상기 커널 레벨에 설치하는 S1 단계; 상기 분할된 보안 모듈의 업데이트 요청을 수신하는 S2 단계; 상기 업데이트 요청을 보낸 업데이트 요청 개체를 검증하는 S3 단계; 상기 분할된 보안 모듈의 상기 업데이트 가능 파트에 대응하는 보안 모듈 업데이트 버전을 수신하는 S4 단계; 상기 수신된 보안 모듈 업데이트 버전을 검증하는 S5 단계; 및 상기 보안 모듈 업데이트 버전을 설치하는 S6 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 S2 단계는 (a) 상기 컴퓨터 장치에 직접 접속한 사용자로부터 상기 업데이트 요청을 수신하거나, (b) 상기 컴퓨터 장치와 내부 통신망을 통해 연결된 서버에 접속한 사용자로부터 상기 서버를 통해 상기 업데이트 요청을 수신하거나, (c) 상기 컴퓨터 장치와 네트워크를 통해 연결된 단말 또는 서버에 접속한 사용자로부터 상기 단말 또는 서버 및 상기 네트워크를 통해 상기 업데이트 요청을 수신하거나, 또는 (d) 상기 컴퓨터 장치와 네트워크를 통해 연결된 클라우드에 접속한 사용자로부터 사용자 단말 및 상기 클라우드를 통해 상기 업데이트 요청을 수신하는 것일 수 있다.
본 발명의 실시예에 따르면, 상기 S3 단계는 사용자 인증, 서버 인증, 네트워크 인증, 단말 인증 중의 적어도 하나를 수행할 수 있다.
본 발명에 따르면, 컴퓨터 장치의 커널 레벨에 설치되는 보안 모듈을 업데이트 불가 파트와 업데이트 가능 파트로 구분하여 분할된 보안 모듈로 구현하고, 업데이트 불가 파트는 OS 커널과 직접 인터페이스하되 업데이트 가능 파트는 업데이트 불가 파트를 통해 간접적으로 OS 커널과 인터페이스하도록 함으로써, OS 커널과 독립적으로 보안 모듈의 업데이트 가능 파트만을 업데이트하는 것이 가능하다. 따라서 본 발명은 커널 레벨에 설치된 보안 모듈의 업데이트를 신속하고 용이하게 수행할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, OS 커널과 직접 연결된 업데이트 불가 파트를 변경하지 않고 업데이트 가능 파트의 코드만을 변경 또는 수정함으로써 보안 모듈을 업데이트할 수 있으므로, OS 커널을 다시 컴파일하지 않고 보안 모듈을 업데이트하는 것이 가능하다. 따라서 본 발명은 컴퓨터 장치를 재부팅할 필요 없이 즉시 업데이트가 가능한 효과를 가진다.
또한, 본 발명에 따르면, 보안 모듈에 대한 업데이트 요청을 수신하면 업데이트 요청 개체를 검증하고, 보안 모듈 업데이트 버전을 수신하면 수신된 보안 모듈 업데이트 버전을 검증하므로, 업데이트 요청 개체 및 업데이트 버전에 대한 이중 검증을 통해 보안을 더욱 강화할 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨터 장치의 다양한 사용 환경을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 컴퓨터 장치의 OS 커널 및 보안 모듈 관련 구성을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 컴퓨터 장치의 보안 모듈 업데이트 방법을 나타내는 도면이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예들을 상세하게 설명한다.
본 발명은 다양한 형태로 실시될 수 있으며, 여기에 개시된 실시예들로 한정하여 해석되지 않아야 할 것이다. 개시된 실시예들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범위를 충분히 전달하기 위하여 제공되는 것이다. 본 발명의 원리 및 특징들은 본 발명의 범위를 벗어나지 않고 매우 다양한 실시예들에서 적용될 수 있을 것이다.
또한, 실시예들을 설명함에 있어서 본 발명이 속하는 기술 분야에 잘 알려져 있거나 본 발명과 직접 관련이 없는 사항에 대해서는 본 발명의 핵심을 흐리지 않고 명확히 전달하기 위하여 설명을 생략할 수 있다. 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 첨부 도면을 통틀어 동일하거나 대응하는 구성요소에는 동일한 참조번호를 부여한다.
기술 용어들 및 과학 용어들을 비롯하여 여기에 사용된 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의하여 이해되는 것과 동일한 의미를 가진다. 한편, 단수 형태로 기재되더라도, 문맥상 명백히 다르게 지시하지 않는 한, 복수 형태를 포함하는 것이다.
도 1은 본 발명의 실시예에 따른 컴퓨터 장치의 다양한 사용 환경을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 컴퓨터 장치(10)는 다양한 환경에서 사용될 수 있다. 예를 들어, 사용자 A는 컴퓨터 장치(10)에 직접 접속하여 컴퓨터 장치(10)를 사용할 수 있다. 다른 예로, 사용자 B는 컴퓨터 장치(10)와 내부 통신망을 통해 연결된 서버(20)에 접속하여 컴퓨터 장치(10)를 사용할 수 있다. 또 다른 예로, 사용자 C는 컴퓨터 장치(10)와 인터넷과 같은 네트워크(30)를 통해 연결된 단말(40, 또는 서버)에 접속하여 컴퓨터 장치(10)를 사용할 수 있다. 또 다른 예로, 사용자 D는 컴퓨터 장치(10)와 네트워크(30)를 통해 연결된 클라우드(50)에 사용자 단말(도시 생략)로 접속하여 컴퓨터 장치(10)를 사용할 수 있다.
컴퓨터 장치(10)는 이하 설명될 본 발명의 OS 커널 및 분할된 보안 모듈을 구비하는 컴퓨터 장치로서, 그 종류에 특별한 제한은 없다. 단말(40)은 휴대 가능한 사용자 전자기기를 포함하는 용어이다. 일부 실시예에서, 단말(40)은 서버일 수도 있다. 사용자가 컴퓨터 장치(10)를 사용한다는 것은 컴퓨터 장치(10)에 구비된 보안 모듈을 새로운 버전으로 업데이트하는 것을 포함한다.
도 2는 본 발명의 실시예에 따른 컴퓨터 장치의 OS 커널 및 보안 모듈 관련 구성을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 컴퓨터 장치(10)는 커널 레벨에 설치되어 동작하는 OS 커널(110)과 보안 모듈(120)을 포함한다. 도 2는 본 발명과 직접적으로 관련되는 OS 커널(110)과 보안 모듈(120)에 초점을 맞추어 컴퓨터 장치(10)를 도시하였지만, 그 밖의 다양한 공지 구성들(예컨대, 프로세서, 메모리, 입출력 장치, 통신 모듈 등)이 컴퓨터 장치(10)에 구비될 수 있다.
OS 커널(110)은 보안 콜백 기능(112)과 보안 기능(114)을 포함하며, 보안 모듈(120)은 업데이트 불가 파트(122), 업데이트 가능 파트(124), 업데이트 매니저(126)를 포함한다. OS 커널(110)은 임의의 OS 유형의 커널을 의미하며, OS는 Unix, Linux, Mac, Windows 등의 모든 상용 OS를 포함한다. 보안 모듈(120)이 업데이트 불가 파트(122)와 업데이트 가능 파트(124)로 구분된다는 점에서 본 발명의 보안 모듈(120)을 '분할된 보안 모듈'이라 지칭할 수 있다.
보안 모듈(120)의 업데이트 불가 파트(122)는 OS 커널(110)과 직접 인터페이스하여 OS 커널(110)의 보안 콜백 기능(112)에 연결할 수 있다. 이에 비하여, 보안 모듈(120)의 업데이트 가능 파트(124)는 업데이트 불가 파트(122)를 통해 간접적으로 OS 커널(110)과 인터페이스한다. 본 명세서에서 인터페이스한다는 의미는 물리적인 인터페이스를 가리키는 것이 아니라 데이터를 송수신하여 상호작용한다는 의미이다.
업데이트 불가 파트(122)는 OS 커널(110) 자체를 다시 컴파일하는 것을 비롯하여 코드를 수정하는 복잡한 절차 없이는 업데이트 불가 파트(122)의 코드가 쉽게 변경되거나 수정될 수 없다는 점에서 업데이트가 불가능하다.
업데이트 가능 파트(124)는 업데이트 불가 파트(122)에 비해 코드 변경 또는 수정이 용이하다는 점에서 업데이트가 가능하다. 즉, 업데이트 가능 파트(124)는 OS 커널(110)을 다시 컴파일하지 않고 쉽게 변경되거나 수정될 수 있다. 또한, 업데이트 가능 파트(124)는 컴퓨터 장치(10)를 재부팅할 필요 없이 즉시 업데이트가 가능하다.
컴퓨터 장치(10)에 보안 모듈(120)을 설치하면, 업데이트 불가 파트(122)는 OS 커널(110)과 직접 인터페이스하고, 업데이트 가능 파트(124)는 업데이트 불가 파트(122)를 통해 OS 커널(110)과 간접적으로 인터페이스하므로, 이러한 분할된 보안 모듈(120)은 업데이트 가능 파트(124)와 OS 커널(110) 사이의 적절한 분리를 제공한다. 이는 보안 모듈(120)의 개발자 또는 공급업체가 OS 커널(110)과 독립적으로 보안 모듈(120)을 업데이트할 수 있도록 한다. 즉, 보안 모듈(120)의 개발자 또는 공급업체는 OS 커널(110)과 직접 연결된 업데이트 불가 파트(122)를 변경하지 않고 업데이트 가능 파트(124)의 코드만을 변경 또는 수정함으로써 보안 모듈(120)을 업데이트할 수 있다.
OS 커널(110)의 보안 콜백 기능(112)은 파일 열기, 네트워크 연결 열기, 어플리케이션 실행과 같은 컴퓨터 장치(10)의 특정 활동에 응답하여 호출될 수 있다.
보안 모듈(120)이 없을 경우, OS 커널(110)의 보안 콜백 기능(112)은 OS 커널(110)의 특정 보안 기능(114)을 가리킨다. 보안 기능(114)은 커널 레벨에서의 접근 제어 보안 정책을 제공한다.
보안 모듈(120)이 없을 경우, 보안 콜백 기능(112)이 호출되면(예컨대, 파일 열기에 대응하여), 보안 콜백 기능(112)은 보안 기능(114)에 질의하여 파일을 열기 위한 권한을 요청하고, 보안 기능(114)은 질의에 대한 응답을 반환한다. 응답은 해당 프로세스(예를 들어, 파일 열기 및 실행)가 허용되는지 여부를 나타낸다. 보안 모듈(120)이 없는 경우, OS 커널(110)의 이러한 보안 메커니즘은 고정되어 있으므로, 악의적인 공격자가 OS 커널(110) 내에서 보안 기능이 어떻게 작동하는지 쉽게 판단할 수 있고 보안 메커니즘을 어떻게 무력화시킬지 쉽게 결정할 수 있다. 즉, 고정된 보안 메커니즘을 쉽게 변경할 수 없기 때문에 공격자는 OS 커널(110)의 보안 메커니즘을 회피하는 공격 전략을 개발할 수 있는 시간적 여유가 있다. 따라서 보안 모듈(120), 특히 보안 모듈(120)의 업데이트 가능 파트(124)를 동적으로 업데이트할 수 있다는 것은 공격자가 보안 메커니즘을 무력화하거나 회피하기 어렵게 만들 수 있다.
한편, 본 발명의 보안 모듈(120)을 구현하는 경우, 보안 모듈(120)의 업데이트 불가 파트(122)는 OS 커널(110)의 보안 콜백 기능(112)을 후킹하도록 구성될 수 있다. 이러한 후킹은 OS 커널(110)에서 보안 콜백 기능(112)이 보안 기능(114)을 가리키는 코드를 보안 콜백 기능(112)이 보안 기능(114) 대신에 보안 모듈(120)의 업데이트 불가 파트(122)를 가리키도록 하는 다른 코드로 대체하는 것을 의미한다. 따라서 보안 콜백 기능(112)은 호출될 때 업데이트 불가 파트(122)로 질의를 전송할 수 있고, 업데이트 불가 파트(122)는 업데이트 가능 파트(124)로 질의를 전달할 수 있다. 이는 보안 모듈(120)이 컴퓨터 장치(10)의 이벤트 및/또는 관련 데이터를 모니터할 수 있는 능력을 제공한다.
질의를 수신한 업데이트 가능 파트(124)는 프로세스의 실행 허용 여부를 나타내는 응답을 생성하고 반환하도록 구성될 수 있다. 즉, 업데이트 가능 파트(124)는 질의의 특성(예를 들어, 콜백의 유형)을 결정하고, 이 결정과 관련된 관련 파라미터를 검색하고, 질의와 관련된 이벤트 및/또는 데이터의 분석하고, 분석된 이벤트 및/또는 데이터가 악성 코드와 연관되어 있는지를 판단할 수 있다. 이러한 판단에 기초하여 업데이트 가능 파트(124)는 질의에 대한 응답을 생성하고 업데이트 불가 파트(122)를 통해 OS 커널(110)로 응답을 제공할 수 있다. 예를 들어, 질의가 특정 파일을 열기 위한 요청과 관련된 경우, 업데이트 가능 파트(124)는 특정 파일을 열기 위한 요청이 악성 코드와 연관되어 있다고 판단하고 특정 파일을 열기 위한 프로세스의 실행 중단을 지시하는 응답을 생성하여 OS 커널(110)로 반환할 수 있다.
한편, 일부 실시예에서, 업데이트 불가 파트(122)를 통해 OS 커널(110)로부터 질의를 수신한 업데이트 가능 파트(124)는 컴퓨터 장치(10)의 사용자 레벨에 설치되어 동작 중인 보안 소프트웨어(140)와 인터페이스하여 질의와 관련된 이벤트 및/또는 데이터의 분석, 악성 코드와의 연관 여부에 대한 판단 등을 요청할 수도 있다.
또한, 일부 실시예에서, 업데이트 불가 파트(122) 및/또는 업데이트 가능 파트(124)는 OS 커널(110)의 보안 기능(114)과 상호 작용하도록 추가로 구성될 수도 있다. 보안 기능(114)과의 이러한 상호 작용은 업데이트 불가 파트(122)가 보안 콜백 기능(112)으로부터 질의를 수신한 후 발생할 수 있다. 일례로, 업데이트 불가 파트(122)는 OS 커널(110)의 접근 제어 보안 정책에 대하여 보안 기능(114)에 직접 질의할 수 있다. 다른 예로, 업데이트 가능 파트(124)가 업데이트 불가 파트(122)를 통해 보안 기능(114)에 간접적으로 질의할 수 있다. 이러한 보안 정책은 업데이트 가능 파트(124)가 질의에 대한 응답을 생성할 때 고려될 수 있다.
업데이트 불가 파트(122)는 최소한의 메모리 용량을 차지하도록 설치되고 최소한의 리소스를 소비하도록 실행될 수 있다. 즉, 업데이트 불가 파트(122)는 업데이트 가능 파트(124)에 비해 훨씬 적은 코드로 이루어지며, 보안 모듈(120) 기능 대부분은 업데이트 가능 파트(124)의 코드에 의해 제공될 수 있다. 업데이트 불가 파트(122)는 주로 OS 커널(110)과 업데이트 가능 파트(124) 사이의 분리를 제공하면서 단지 OS 커널(110)과 업데이트 가능 파트(124) 사이에서 질의/응답을 전달하기 위한 통로로서의 역할을 담당한다.
한편, 보안 모듈(120)의 업데이트 매니저(126)는 보안 모듈(120)에 대한 업데이트 요청을 수신하면 업데이트 요청 개체를 검증하고, 보안 모듈 업데이트 버전(130)을 수신하면 수신된 보안 모듈 업데이트 버전(130)을 검증할 수 있다. 이와 같이, 업데이트 요청 개체 및 업데이트 버전에 대한 이중 검증을 통해 보안을 더욱 강화할 수 있다. 이에 대한 구체적 설명은 아래에서 도 3을 참조하여 후술한다.
도 3은 본 발명의 실시예에 따른 컴퓨터 장치의 보안 모듈 업데이트 방법을 나타내는 도면이다. 이하의 설명은 도 1 내지 도 3을 참조한다.
먼저 S1 단계에서, 컴퓨터 장치(10)는 도 2에 도시된 바와 같은 분할된 보안 모듈(120)을 커널 레벨에 설치한다. 컴퓨터 장치(10)는 커널 레벨에 설치되어 동작하는 OS 커널(110)을 포함하며, OS 커널(110)은 보안 콜백 기능(112)을 포함한다. S1 단계에서 설치되는 분할된 보안 모듈(120)은 커널 레벨에서 동작하며 업데이트 불가 파트(122), 업데이트 가능 파트(124), 업데이트 매니저(126)를 포함한다. 업데이트 불가 파트(122)는 OS 커널(110)과 직접 인터페이스하여 보안 콜백 기능(112)에 연결되고, 업데이트 가능 파트(124)는 업데이트 불가 파트(122)를 통해 간접적으로 OS 커널(110)과 인터페이스하며, 업데이트 매니저(126)는 업데이트 가능 파트(124)의 업데이트를 제어한다. 특히, 보안 모듈(120)의 업데이트 불가 파트(122)는 OS 커널(110)의 보안 콜백 기능(112)이 업데이트 불가 파트(122)를 가리키는 코드를 갖도록 보안 콜백 기능(112)을 후킹하여 구성된 것이다.
이어서, S2 단계에서, 컴퓨터 장치(10)는 사용자로부터 보안 모듈(120)의 업데이트 요청을 수신한다. 예를 들어, 도 1에 도시된 바와 같은 다양한 환경에서, 컴퓨터 장치(10)는 업데이트 요청을 수신할 수 있다. 구체적으로, 컴퓨터 장치(10)는 직접 접속한 사용자 A로부터 입력 장치를 통해 업데이트 요청을 수신할 수 있고, 컴퓨터 장치(10)와 내부 통신망을 통해 연결된 서버(20)에 접속한 사용자 B로부터 서버(20)를 통해 업데이트 요청을 수신할 수 있으며, 컴퓨터 장치(10)와 네트워크(30)를 통해 연결된 단말(40, 또는 서버)에 접속한 사용자 C로부터 단말(40, 또는 서버) 및 네트워크(30)를 통해 업데이트 요청을 수신할 수 있으며, 컴퓨터 장치(10)와 네트워크(30)를 통해 연결된 클라우드(50)에 접속한 사용자 D로부터 사용자 단말(도시 생략) 및 클라우드(50)를 통해 업데이트 요청을 수신할 수도 있다.
이어서, S3 단계에서, 컴퓨터 장치(10)는 업데이트 요청 개체를 검증한다. 본 명세서에서 업데이트 요청 개체란 컴퓨터 장치(10)에게 보안 모듈(120)의 업데이트 요청을 보내는 주체 또는 매개체, 즉 사용자, 서버, 네트워크, 단말을 일컫는다. 따라서 S3 단계는 전술한 S2 단계에서 업데이트 요청을 수신한 상황에 따라 업데이트 요청 개체를 결정하여 검증을 수행하는 것이고, 사용자 인증, 서버 인증, 네트워크 인증, 단말 인증을 포함할 수 있다.
사용자 인증은 컴퓨터 장치(10)가 사용자 A로부터 직접 업데이트 요청을 수신하는 경우에 사용자 A가 업데이트 요청 권한이 있는 정당한 사용자인지 인증하는 것이다. 이를 위해, 다양한 공지의 사용자 인증 방법이 적용될 수 있다.
서버 인증은 컴퓨터 장치(10)가 서버(20)를 통해 사용자 B로부터 업데이트 요청을 수신하는 경우에 서버(20)가 접속이 허가된 서버인지, 업데이트 요청 권한이 부여된 서버인지 등을 인증하는 것이다. 이를 위해, 다양한 공지의 서버 인증 방법이 적용될 수 있다. 또한, 서버 인증과 함께 사용자 인증을 병행할 수 있다.
네트워크 인증은 컴퓨터 장치(10)가 네트워크(30) 및 단말(40, 또는 서버)을 통해 사용자 C로부터 업데이트 요청을 수신하거나 네트워크(30) 및 클라우드(50)를 통해 사용자 D로부터 업데이트 요청을 수신하는 경우에 네트워크(30)가 신뢰할 수 있는 네트워크인지, 접속이 허가된 네트워크인지 등을 인증하는 것이다. 이를 위해, 다양한 공지의 네트워크 인증 방법이 적용될 수 있다. 또한, 네트워크 인증과 함께 사용자 인증을 병행할 수 있다.
단말 인증은 컴퓨터 장치(10)가 네트워크(30) 및 단말(40, 또는 서버)을 통해 사용자 C로부터 업데이트 요청을 수신하거나 클라우드(50) 및 사용자 단말(도시 생략)을 통해 사용자 D로부터 업데이트 요청을 수신하는 경우에 단말(40, 또는 서버) 또는 사용자 단말(도시 생략)이 접속이 허가된 단말인지, 업데이트 요청 권한이 부여된 단말인지 등을 인증하는 것이다. 이를 위해, 다양한 공지의 단말 인증 방법이 적용될 수 있다. 또한, 단말 인증과 함께 사용자 인증 및/또는 네트워크 인증을 병행할 수 있다.
이어서, 전술한 S3 단계의 업데이트 요청 개체 검증이 성공적인 경우, S4 단계에서, 컴퓨터 장치(10)는 보안 모듈 업데이트 버전(130)을 수신한다. 보안 모듈 업데이트 버전(130)은 컴퓨터 장치(10)에 설치된 보안 모듈(120) 중에서 업데이트 가능 파트(124)에 대응하는 것이다. 이때, 보안 모듈 업데이트 버전(130)은 저장매체에 저장된 상태로 제공되거나 업데이트 제공 서버로부터 다운로드될 수 있다.
이어서, S5 단계에서, 컴퓨터 장치(10)는 수신된 보안 모듈 업데이트 버전(130)을 검증한다. 보안 모듈 업데이트 버전(130)의 검증은 보안 모듈(120)의 업데이트 가능 파트(124)에 대응하는 보안 모듈 업데이트 버전(130)에서 악성 소프트웨어(멀웨어)를 진단하는 것이다. 이를 위해, 다양한 공지의 멀웨어 진단 방법이 적용될 수 있다.
이어서, S6 단계에서, 컴퓨터 장치(10)는 검증을 통과한 보안 모듈 업데이트 버전(130)을 설치한다. 즉, 컴퓨터 장치(100)는 커널 레벨에 설치된 보안 모듈(120)의 업데이트 가능 파트(124)를 보안 모듈 업데이트 버전(130)으로 대체하여 보안 모듈(120)의 업데이트를 완료한다.
한편, 전술한 S2 단계 내지 S6 단계 중 적어도 일부 단계는 보안 모듈(120)의 업데이트 매니저(126)에 의해 수행될 수 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위하여 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
10: 컴퓨터 장치 20: 서버
30: 네트워크 40: 단말
110: OS 커널 112: 보안 콜백 기능
114: 보안 기능 120: 보안 모듈
122: 업데이트 불가 파트 124: 업데이트 가능 파트
126: 업데이트 매니저 130: 보안 모듈 업데이트 버전
140: 보안 소프트웨어

Claims (8)

  1. 커널 레벨에 설치되어 동작하고, 보안 콜백 기능을 포함하는 OS 커널; 및
    상기 커널 레벨에 설치되어 동작하고, 업데이트 불가 파트와 업데이트 가능 파트로 구분되는 분할된 보안 모듈;
    을 포함하며,
    상기 분할된 보안 모듈은
    상기 OS 커널과 직접 인터페이스하여 상기 보안 콜백 기능에 연결되는 상기 업데이트 불가 파트와,
    상기 업데이트 불가 파트를 통해 간접적으로 상기 OS 커널과 인터페이스하는 상기 업데이트 가능 파트와,
    상기 업데이트 가능 파트의 업데이트를 제어하는 업데이트 매니저를 포함하는 것을 특징으로 하는
    컴퓨터 장치.
  2. 제1항에 있어서,
    상기 OS 커널의 상기 보안 콜백 기능은 상기 컴퓨터 장치의 기 설정된 동작에 응답하여 호출되고, 상기 업데이트 불가 파트를 통해 상기 업데이트 가능 파트로 질의를 전송하며, 상기 업데이트 불가 파트를 통해 상기 업데이트 가능 파트로부터 상기 질의에 대한 응답을 수신하는 것을 특징으로 하는
    컴퓨터 장치.
  3. 제1항에 있어서,
    상기 보안 모듈의 상기 업데이트 불가 파트는 상기 OS 커널의 상기 보안 콜백 기능이 상기 업데이트 불가 파트를 가리키는 코드를 갖도록 상기 보안 콜백 기능을 후킹하여 구성되는 것을 특징으로 하는
    컴퓨터 장치.
  4. 제1항에 있어서,
    사용자 레벨에 설치되어 동작하는 보안 소프트웨어;
    를 더 포함하며,
    상기 업데이트 가능 파트는 상기 보안 소프트웨어와 인터페이스하는 것을 특징으로 하는
    컴퓨터 장치.
  5. 제1항에 있어서,
    상기 OS 커널은 상기 커널 레벨에서의 접근 제어 보안 정책을 제공하는 보안 기능을 더 포함하며,
    상기 업데이트 불가 파트와 상기 업데이트 가능 파트 중 적어도 하나는 상기 OS 커널의 상기 보안 기능과 상호 작용하는 것을 특징으로 하는
    컴퓨터 장치.
  6. 커널 레벨에 설치되어 동작하는 OS 커널과 상기 커널 레벨에 설치되어 동작하는 분할된 보안 모듈을 구비하는 컴퓨터 장치의 보안 모듈 업데이트 방법에 있어서,
    상기 분할된 보안 모듈은, 상기 OS 커널과 직접 인터페이스하는 업데이트 불가 파트와, 상기 업데이트 불가 파트를 통해 간접적으로 상기 OS 커널과 인터페이스하는 업데이트 가능 파트와, 상기 업데이트 가능 파트의 업데이트를 제어하는 업데이트 매니저를 포함하며,
    상기 방법은
    상기 분할된 보안 모듈을 상기 커널 레벨에 설치하는 S1 단계;
    상기 분할된 보안 모듈의 업데이트 요청을 수신하는 S2 단계;
    상기 업데이트 요청을 보낸 업데이트 요청 개체를 검증하는 S3 단계;
    상기 분할된 보안 모듈의 상기 업데이트 가능 파트에 대응하는 보안 모듈 업데이트 버전을 수신하는 S4 단계;
    상기 수신된 보안 모듈 업데이트 버전을 검증하는 S5 단계; 및
    상기 보안 모듈 업데이트 버전을 설치하는 S6 단계;
    를 포함하는 것을 특징으로 하는
    컴퓨터 장치의 보안 모듈 업데이트 방법.
  7. 제6항에 있어서,
    상기 S2 단계는
    (a) 상기 컴퓨터 장치에 직접 접속한 사용자로부터 상기 업데이트 요청을 수신하거나,
    (b) 상기 컴퓨터 장치와 내부 통신망을 통해 연결된 서버에 접속한 사용자로부터 상기 서버를 통해 상기 업데이트 요청을 수신하거나,
    (c) 상기 컴퓨터 장치와 네트워크를 통해 연결된 단말 또는 서버에 접속한 사용자로부터 상기 단말 또는 서버 및 상기 네트워크를 통해 상기 업데이트 요청을 수신하거나, 또는
    (d) 상기 컴퓨터 장치와 네트워크를 통해 연결된 클라우드에 접속한 사용자로부터 사용자 단말 및 상기 클라우드를 통해 상기 업데이트 요청을 수신하는 것을 특징으로 하는
    컴퓨터 장치의 보안 모듈 업데이트 방법.
  8. 제7항에 있어서,
    상기 S3 단계는 사용자 인증, 서버 인증, 네트워크 인증, 단말 인증 중의 적어도 하나를 수행하는 것을 특징으로 하는
    컴퓨터 장치의 보안 모듈 업데이트 방법.
KR1020200153534A 2020-11-17 2020-11-17 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법 KR102370848B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200153534A KR102370848B1 (ko) 2020-11-17 2020-11-17 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법
JP2021505260A JP2023507533A (ja) 2020-11-17 2020-12-30 分割されたセキュリティモジュールを具備するコンピュータ装置およびセキュリティモジュールアップデート方法
EP20845769.7A EP4250155A4 (en) 2020-11-17 2020-12-30 COMPUTER DEVICE WITH SEPARATE SECURITY MODULE AND METHOD FOR UPDATING A SECURITY MODULE
PCT/KR2020/019418 WO2022107991A1 (ko) 2020-11-17 2020-12-30 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법
US17/269,922 US20230315859A1 (en) 2020-11-17 2020-12-30 Computer device including divided security module and method for updating security module
JP2023221108A JP2024029139A (ja) 2020-11-17 2023-12-27 分割されたセキュリティモジュールを具備するコンピュータ装置およびセキュリティモジュールアップデート方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200153534A KR102370848B1 (ko) 2020-11-17 2020-11-17 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법

Publications (1)

Publication Number Publication Date
KR102370848B1 true KR102370848B1 (ko) 2022-03-07

Family

ID=80817335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200153534A KR102370848B1 (ko) 2020-11-17 2020-11-17 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법

Country Status (5)

Country Link
US (1) US20230315859A1 (ko)
EP (1) EP4250155A4 (ko)
JP (2) JP2023507533A (ko)
KR (1) KR102370848B1 (ko)
WO (1) WO2022107991A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101429877B1 (ko) * 2013-10-23 2014-08-13 주식회사 다산네트웍스 보안 모듈 업데이트 기능을 구비한 l2/l3 스위치 시스템
US20150169865A1 (en) * 2013-12-13 2015-06-18 Indian Institute Of Technology Madras Filtering mechanism for securing linux kernel
KR101710328B1 (ko) * 2016-08-18 2017-02-27 주식회사 시큐브 동적 재구성 및 교체를 지원하는 os 보안 커널 시스템 및 그 방법
US20190332373A1 (en) * 2018-04-27 2019-10-31 Ati Technologies Ulc Live update of a kernel device module

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006053788A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US8875295B2 (en) * 2013-02-22 2014-10-28 Bitdefender IPR Management Ltd. Memory introspection engine for integrity protection of virtual machines
KR101805310B1 (ko) * 2016-07-14 2017-12-06 경희대학교 산학협력단 Tpm 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법
US11163880B2 (en) * 2017-09-29 2021-11-02 Crowdstrike, Inc. Using indirection to facilitate software upgrades

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101429877B1 (ko) * 2013-10-23 2014-08-13 주식회사 다산네트웍스 보안 모듈 업데이트 기능을 구비한 l2/l3 스위치 시스템
US20150169865A1 (en) * 2013-12-13 2015-06-18 Indian Institute Of Technology Madras Filtering mechanism for securing linux kernel
KR101710328B1 (ko) * 2016-08-18 2017-02-27 주식회사 시큐브 동적 재구성 및 교체를 지원하는 os 보안 커널 시스템 및 그 방법
US20190332373A1 (en) * 2018-04-27 2019-10-31 Ati Technologies Ulc Live update of a kernel device module

Also Published As

Publication number Publication date
EP4250155A4 (en) 2024-10-23
US20230315859A1 (en) 2023-10-05
JP2023507533A (ja) 2023-02-24
WO2022107991A1 (ko) 2022-05-27
EP4250155A1 (en) 2023-09-27
JP2024029139A (ja) 2024-03-05

Similar Documents

Publication Publication Date Title
US10361998B2 (en) Secure gateway communication systems and methods
KR102301721B1 (ko) 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션
US11438349B2 (en) Systems and methods for protecting devices from malware
US7865952B1 (en) Pre-emptive application blocking for updates
EP1842317B1 (en) Methods and apparatus providing security for multiple operational states of a computerized device
US11797704B2 (en) Managing privilege delegation on a computer device
GB2566347A (en) Computer device and method for controlling process components
US20220391506A1 (en) Automated Interpreted Application Control For Workloads
Breitenbacher et al. HADES-IoT: A practical and effective host-based anomaly detection system for IoT devices (extended version)
KR100706176B1 (ko) 커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템
Grizzard Towards self-healing systems: re-establishing trust in compromised systems
US11301228B2 (en) Managing removal and modification of installed programs on a computer device
KR102370848B1 (ko) 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법
EP3113066B1 (en) Computer security architecture and related computing method
KR20240107991A (ko) 모바일 기기의 usb 장치 인증 시스템 및 방법
CN118246021A (zh) 针对容器逃逸攻击的防御方法、装置、设备及存储介质

Legal Events

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