KR102332467B1 - 로그 데이터의 무결성 보호 - Google Patents

로그 데이터의 무결성 보호 Download PDF

Info

Publication number
KR102332467B1
KR102332467B1 KR1020200004884A KR20200004884A KR102332467B1 KR 102332467 B1 KR102332467 B1 KR 102332467B1 KR 1020200004884 A KR1020200004884 A KR 1020200004884A KR 20200004884 A KR20200004884 A KR 20200004884A KR 102332467 B1 KR102332467 B1 KR 102332467B1
Authority
KR
South Korea
Prior art keywords
log data
logic circuit
data element
protection
data elements
Prior art date
Application number
KR1020200004884A
Other languages
English (en)
Other versions
KR20200089230A (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 지멘스 악티엔게젤샤프트
Publication of KR20200089230A publication Critical patent/KR20200089230A/ko
Application granted granted Critical
Publication of KR102332467B1 publication Critical patent/KR102332467B1/ko

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 로그 데이터의 무결성을 보호하기 위한 방법에 관한 것이다. 로그 데이터는 제1 논리 회로(21)의 동작과 연관된 로그 데이터 엘리먼트들의 시퀀스를 포함한다. 방법(100)은, 제1 논리 회로(21)로부터 원격의 제2 논리 회로(30)에서, 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트를 수신하는 단계(104)를 포함한다. 제2 논리 회로(30)에서, 로그 데이터 엘리먼트 및 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트(60)가 생성된다.

Description

로그 데이터의 무결성 보호{PROTECTING INTEGRITY OF LOG DATA}
본 발명의 다양한 예들은 일반적으로, 로그 데이터(log data)의 무결성을 보호하는 것에 관한 것이다. 특히, 본 출원은 로그 데이터의 무결성을 보호하기 위한 방법 및 이 방법을 구현하는 컴퓨터 시스템(computer system)에 관한 것이다.
로그 메시지(message)들 또는 로그 엔트리(entry)들로 또한 불리는 로그 데이터는 시스템 상에서 생성될 수 있고, 시스템의 거동을 기록할 수 있다. 시스템은 예컨대 컴퓨터 시스템 또는 네트워크(network), 예컨대 컴퓨터 네트워크를 포함할 수 있다. 시스템에 대한 악성 공격을 검출하기 위해, 시스템에는 침입 검출 시스템(IDS; Intrusion Detection System)이 제공될 수 있다. 예컨대, 컴퓨터 시스템에는 호스트-기반 침입 검출 시스템(HIDS; host-based intrusion detection system)이 제공될 수 있고, 네트워크에는 네트워크 침입 검출 시스템(NIDS; network intrusion detection system)이 제공될 수 있다. IDS는 악성 활동 또는 정책 위반들에 대해 네트워크 또는 시스템(들)을 모니터링(monitor)하는 디바이스(device) 또는 소프트웨어 애플리케이션(software application)이다. 임의의 악성 활동 또는 위반이 관리자에게 보고될 수 있거나 또는 로그 데이터에 기록될 수 있다. 특히, 시스템에 대한 공격 또는 침입의 경우, 로그 데이터는 공격 또는 침입이 어떻게 수행되었는지에 관한 정보를 제공할 수 있다. 컴퓨터 시스템 상에 설치된 HIDS는 이 정보의 도움으로 공격들을 검출하기 위하여 컴퓨터 시스템의 동작 상태에 관한 정보를 수집할 수 있다.
따라서, IDS는, 컴퓨터 시스템들 또는 컴퓨터 네트워크들을 능동적으로 모니터링하고 공격들을 검출하는 것을 목표로 하는 시스템이다. 일반적으로, IDS는 공격 검출을 위한 두 상이한 기법들인 서명-기반(signature-based) 공격 검출 및 이상-기반(anomaly-based) 공격 검출을 사용할 수 있다.
서명-기반 공격 검출은 활성 시스템을 모니터링하기 위해 데이터베이스(database)에 저장된 공격 패턴(pattern)들(예컨대, 가능한 공격을 표시하는 특수 로그 메시지들)을 사용한다. IDS에 의해, 이 IDS의 데이터베이스로부터의 공격 서명들을 활성 시스템 거동과 비교함으로써, 공격들이 검출된다. 저장된 서명이 현재 시스템 거동과 일치하면, IDS는 공격이 발생했다고 결론을 내릴 것이다.
이상-기반 공격 검출은 시스템 거동의 변화들에 기반하여 공격들을 검출하려고 시도한다. 이는, IDS가 제1 단계에서 시스템의 정상 거동을 학습/분석하고 제2 단계에서 시스템의 활성 거동을 이전에 학습된 정상 거동과 비교함을 의미한다. 현재 거동이 이전에 학습된 정상 거동으로부터 벗어나면, 이는 이상으로서 해석될 수 있으며, 시스템에 대한 공격의 표시일 수 있다. 시스템이 정상 거동으로부터 벗어났는지 여부에 관한 결정은, 통계적 방법들 또는 기계 학습 알고리즘(algorithm)들을 사용하여 이루어질 수 있다. 두 유형들의 IDS(HIDS, NIDS) 모두를 구현하기 위하여, 현재 시스템 거동의 로그 데이터가 먼저 생성되고 그런 다음 점검될 수 있다. 로그 데이터는 시스템 거동 특성들, 이를테면 시스템 호출들, 데이터 액세스(access)들, 사용자 로그인(login)들, 실패한 호출들, 활성 네트워크 연결들 등을 기록 및 문서화할 수 있다.
컴퓨터 시스템을 공격하고 시스템 또는 커널(kernel)에 대한 관리자 권한(privilege)들을 얻은 공격자들은 나중에 로그 데이터를 변화시킬 수 있다. 로그 데이터가 공격의 증거를 기록하고 공격자에 의해 삭제될 때, 시스템 상에서의 공격자의 과거 및 미래 활동들을 입증(prove)하는 것은 불가능하다. 예컨대, 리눅스(Linux) 운영체제가 프로세서(processor) 상에서 실행되고 있다. 부가하여, 이 운영체제 상에는 HIDS가 설치될 수 있고, 이 HIDS는 사용자-공간에서 실행되거나 또는 커널에 앵커링되고(anchored), 프로세스(process)들로부터의 시스템 호출들을 모니터링(monitor)/저장한다. HIDS는 대응하는 권한들로 사용자 공간으로부터 구성될 수 있다. 공격자가 시스템을 공격하기를 원하면, 공격자는 예컨대 합법적인 기능성의 취약성을 악용하고 그런 다음 시스템 상에 악성 소프트웨어(멀웨어(malware))를 설치 및 실행할 수 있다. 시스템 상에 멀웨어가 설치되면, 다음 단계는 (예컨대, 커널 루트킷(rootkit)에 의해) 커널에 대한 제어를 얻고 HIDS를 비활성화하는 것이다. 멀웨어는 또한, 사용자 공간 영역에서의 전체 권한들(즉, 루트 권리(root right)들)을 얻고 HIDS를 재구성할 수 있다. 또한, 공격자는, HIDS에 의해 생성된 로그 데이터를 조작하고 이에 따라 멀웨어의 존재 및 활동들이 로깅되는(logged) 것을 막을 수 있다. 마지막으로, 멀웨어는, 과거 로그 데이터를 변화시키고 이에 따라 로그 데이터로부터 자신만의 공격 흔적(trace)들을 삭제할 수 있다.
로그 조작의 문제는 몇몇 조치(measure)들에 의해 해결될 수 있다. 예컨대, 커널은 특별한 로그 보호를 제공할 수 있는데, 예컨대, 로그 데이터에 대한 액세스는 관리자에게만 승인될(granted) 수 있거나, 또는 시스템들에 대한 공격자들의 자유를 제한하기 위하여 소정의 임계 기능성들은 완전히 차단될 수 있다. 또한, 파일(file) 무결성 모니터링(monitoring) 접근법들이 있지만, 모든 이들 조치들은 공격자들이 관리자 권리들을 갖거나 또는 커널을 완전히 제어하면 실패한다.
또한, 신뢰할 수 있는 플랫폼 모듈(TPM; Trusted Platform Module)과 연결된 원격의 증명 서비스(RAS; Remote Attestation Service)가 알려져 있다. 원격의 증명 서비스는 "측정되는 부트(Measured Boot)" 기법을 지원하기 위해 사용될 수 있다. "측정되는 부트" 기법에 따르면, 펌웨어(firmware)부터 부트 시작 드라이버(boot start driver)들까지 각각의 부트 구성요소는 다음 부트 구성요소의 암호화 체크섬(cryptographic checksum)을 형성할 수 있다. 체크섬들은 신뢰할 수 있는 플랫폼 모듈(TPM; Trusted Platform Module)의 특별한 플랫폼 구성 레지스터(PCR; Platform Configuration Register)들에 저장된다. 따라서, PCR들은 각각의 부트 구성요소에 대한 디바이스의 상태(수정되지 않은 상태/수정된 상태)에 대한 참조들을 포함한다. 나중에, 로딩(loading) 동안 구성요소(들)가 변화되었는지/변화되지 않았는지 그리고 어느 구성요소(들)가 변화되었는지/변화되지 않았는지가 추적될 수 있다. 그런 다음, PCR 값들은 TPM에 저장된 개인 키(private key)를 이용하여 서명될(signed) 수 있다. 그런 다음, 서명 및 PCR 값들은 다른 인스턴스(instance)에 전달되고, 여기서, 이러한 서명 및 PCR 값들은 검증될(verified) 수 있다. 따라서, 이 인스턴스는, 시스템의 시작된 소프트웨어 구성요소들의 무결성에 관해 진술하고 그런 다음 예컨대 서비스에 대한 액세스를 활성화할 수 있다. 그러나, 이 메커니즘(mechanism)은, 로그 데이터의 무결성을 보장하거나 또는 그렇지 않으면 런타임(runtime) 시 디바이스 상에서의 악성 거동을 검출하는 데 적절하지 않다.
그에 따라서, 로그 데이터의 무결성을 보호하는 고급 기법들이 필요하다. 구체적으로, 위에서 식별된 단점들 및 제한들 중 적어도 일부를 극복하거나 또는 완화시키는 기법들이 필요하다.
이 필요는, 독립 청구항들의 특징들에 의해 충족된다. 종속 청구항들의 특징들은 실시예들을 정의한다.
예들에 따르면, 로그 데이터의 무결성을 보호하기 위한 방법이 제공된다. 로그 데이터는 제1 논리 회로의 동작과 연관된 로그 데이터 엘리먼트(element)들, 예컨대 로그 메시지들 또는 로그 엔트리들의 시퀀스(sequence)를 포함한다. 제1 논리 회로는, 예컨대 운영체제, 예컨대 리눅스 또는 유닉스(Unix), 그리고 애플리케이션들이 실행되는 프로세서를 포함할 수 있다. 방법에 따르면, 제1 논리 회로로부터 원격의 제2 논리 회로에서, 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트가 수신된다. 제2 논리 회로는, 제1 논리 회로에 커플링되며(coupled) 그리고 본원에서 설명된 방법 단계들을 수행하도록 구성된 전용 하드웨어(hardware), 예컨대 필드 프로그램가능 게이트 어레이(FPGA; field programmable gate array) 또는 주문형 집적 회로(ASIC; application specific integrated circuit)를 포함할 수 있다. 로그 데이터 엘리먼트 및 비밀 정보에 기반하여, 제2 논리 회로는 보호(protected) 로그 데이터 엘리먼트를 생성한다. 비밀 정보는 제1 논리 회로에 알려져 있지 않다. 또한, 제2 논리 회로는, 제1 논리 회로가 제2 논리 회로의 비밀 정보를 판독하거나 또는 그렇지 않으면 이 비밀 정보에 액세스(access)하는 것이 가능하지 않도록 구성될 수 있다. 본원에서 사용되는 "비밀 정보"란 용어는 예컨대 로그들의 보호에 사용되는 비밀 데이터에 관한 것일 수 있다. 비밀 정보는 예컨대 로그 데이터를 암호화하기 위한 키를 포함할 수 있다. 부가적으로 또는 대안으로서, 비밀 정보는 예컨대 키-해시 함수(HMAC; keyed-hash function)를 사용하여 대칭적으로, 또는 비대칭적으로 로그 데이터에 대한 서명을 생성하기 위해 사용될 수 있다.
또한, 실시예에 따르면, 보호 로그 데이터 엘리먼트는 제2 논리 회로로부터 제1 논리 회로로 송신된다.
다양한 예들에 따르면, 보호 로그 데이터 엘리먼트는 또한, 제1 논리 회로를 통해 송신되지 않고, 제2 논리 회로로부터 원격의 디바이스, 예컨대 네트워크 디바이스 또는 저장 디바이스로 직접적으로 송신될 수 있다.
예컨대, IDS는 제1 논리 회로 상에서 수행되는 각각의 활동에 대해 대응하는 로그 데이터 엘리먼트를 생성할 수 있다. 이들 로그 데이터 엘리먼트들은 예컨대 프로세스가 어느 시스템 호출을 수행했는지, 시스템 호출과 함께 어느 매개변수들이 전송되었는지, 또는 어느 파일이 열렸는지 또는 닫혔는지를 로깅(log)할 수 있다. 각각의 로그 데이터 엘리먼트는 제2 논리 회로에 송신되고, 제2 논리 회로는, 비밀 정보를 사용하여 각각의 로그 데이터 엘리먼트를 암호화함으로써 각각의 로그 데이터 엘리먼트의 무결성을 보호한다. 제1 논리 회로에서 비밀 정보가 이용가능하지 않기 때문에, 공격자는, 로그 데이터 엘리먼트를 디코딩(decode) 또는 복호화하여 수정할 수 없다. 그러므로, 로그 데이터 엘리먼트를 수정하려는 임의의 시도는, 비밀 정보에 기반하여 나중에 검출가능할 것이다.
다양한 예들에 따르면, 제2 논리 회로는 프로그램가능 암호화 프로세싱 유닛(programmable cryptographic processing unit)을 포함한다. 예컨대, 제2 논리 회로는 하드웨어-프로그램가능 프로세싱 유닛, 예컨대 FPGA를 포함할 수 있다. 예컨대, FPGA 상에 구현된 FPGA-마이크로제어기(Microcontroller)를 사용하여 해시(hash) 메커니즘이 구현될 수 있다. 이 마이크로제어기는 하드웨어 기술 언어를 사용하여 프로그램될(programmed) 수 있으며, 마이크로제어기의 논리(logic)(펌웨어)는 소프트웨어를 포함할 수 있다.
또한, 제1 논리 회로는 중앙 프로세싱 유닛을 포함할 수 있다.
제1 논리 회로 및 제2 논리 회로는 컴퓨터 시스템을 형성할 수 있다.
예컨대, 제1 논리 회로 및 제2 논리 회로는 임베디드(embedded) 시스템으로서 구현될 수 있다. 임베디드 시스템은 제1 논리 회로로서의 역할을 하는 중앙 프로세싱 유닛(CPU; central processing unit), 및 제2 논리 회로로서의 역할을 하는 통합된 프로그램가능 논리를 포함할 수 있다. 그러한 임베디드 시스템은 프로그램가능 논리로서 FPGA 시스템-온-어-칩(FPGA-SoC; FPGA System-on-a-Chip)을 사용하여 구현될 수 있다. 그러한 FPGA-SoC는, 프로그램가능 집적 회로(FPGA 영역) 및 하나 이상의 프로세서들(예컨대, CPU 코어(core)들) 뿐만 아니라, 다른 구성요소들, 이를테면 메모리(memory), 버스(bus)들 등으로 구성될 수 있다. FPGA-SoC들은, 프로세서 상에서 운영체제(예컨대, 유닉스 또는 리눅스) 또는 베어-메탈(bare-metal) 소프트웨어를 실행하며 그리고 이 프로세서가 집적 FPGA 논리와 통신하도록 하고 소정의 인터페이스(interface)들을 통해 커맨드(command)들/데이터를 교환하도록 할 가능성을 제공한다. 프로세서와 FPGA 부품은 동일한 칩(chip) 상에 통합될 수 있다. FPGA는 디지털(digital) 회로로 구성되고 이에 따라 직접적으로 하드웨어로 기능들을 구현할 수 있다. FPGA의 디지털 회로는, 하드웨어 기술 언어(예컨대, VHDL, 베릴로그(Verilog))를 사용하여 구현될 수 있으며, 사용자에 의해 프로그램되거나, 오픈 소스 프로젝트(open source project)로서 구매되거나 또는 완성된 하드웨어 구조(예컨대, IP 코어)의 형태로 구매될 수 있다. 요약하면, FPGA-SoC의 장점은, 최적화된 하드웨어 회로로서 소정의 기능성들을 아웃소싱(outsource)하고, 통신 인터페이스들을 물리적으로 노출시키지 않고 이들 기능성들을 운영체제와 효율적으로 연결하며, 그리고 아웃소싱된(outsourced) 기능성들을 운영체제와는 논리적으로 독립적인 하드웨어에서 동작시킬 가능성이다. 또한, CPU에 외부적으로 ―즉, CPU에 원격으로― 연결된 FPGA들, 또는 CPU에 외부적으로 연결된 특수하게 제조된 칩들(예컨대, ASIC들)이 또한, 제1 논리 회로 및 제2 논리 회로를 구현하기 위해 사용될 수 있다. CPU로부터 아웃소싱된 하드웨어 기능성들의 독립성은 FPGA 측의 신뢰할 수 있는 하드웨어를 동작시키는 것을 가능하게 하며, 이러한 FPGA 측의 신뢰할 수 있는 하드웨어는 암호화 키 자료를 안전하게 저장하고, 공격을 받는 운영체제에 대해서도, 의도되는 대로 암호화 동작들을 수행한다.
실시예에 따르면, 로그 데이터 엘리먼트는 로그 데이터 엘리먼트들의 시퀀스의 선행 로그 데이터 엘리먼트에 후속하는 현재 로그 데이터 엘리먼트이다. 보호 로그 데이터 엘리먼트를 생성하기 위해, 적어도, 현재 로그 데이터 엘리먼트의 로그 데이터 및 선행 로그 데이터 엘리먼트에 대해 생성된 이전 해시 값에 기반하여, 현재 해시 값이 생성된다. 현재 해시 값 및 이전 해시 값이 보호 로그 데이터 엘리먼트에 포함된다.
각각의 로그 데이터 엘리먼트가 선행 로그 데이터 엘리먼트의 해시 값에 관련된 정보를 포함하고, 각각의 로그 데이터 엘리먼트가 자신만의 해시에 관련된 정보를 포함할 수 있으며, 그리고 부가적으로 각각의 로그 데이터 엘리먼트가 암호화될 수 있거나 또는 서명을 포함할 수 있기 때문에, 로그 데이터 엘리먼트의 각각의 수정 또는 삭제가 검출가능하다. 그러므로, 공격자는 로그 데이터에 로깅되는 이전 흔적들을 가리거나 또는 숨길 수 없다.
또한, 방법은, 제2 논리 회로에서, 무작위로 생성된 세션(session) 식별자에 기반하여 초기 보호 로그 데이터 엘리먼트를 생성하는 단계를 포함할 수 있다. 초기 보호 로그 데이터 엘리먼트는 시스템 초기화 후에 로그 데이터 엘리먼트들의 시퀀스의 제1 로그 데이터 엘리먼트에 대한 선행 로그 데이터 엘리먼트로서의 역할을 할 수 있다.
초기 보호 로그 데이터 엘리먼트는 제2 논리 회로로부터 제1 논리 회로로 송신될 수 있다.
따라서, 시퀀스 로그 데이터 엘리먼트들에 대한 앵커(anchor)가 제공된다. 무작위 세션 식별자는 또한, 제1 논리 회로에 알려지지 않을 수 있기 때문에, 제1 논리 회로에 대해 행동하는 공격자는 해시 체인(chain)을 조작할 수 없다. 따라서, 보호 로그 데이터 엘리먼트들의 시퀀스는 보호된다.
다양한 예들에서, 보호 로그 데이터 엘리먼트는 시간 정보, 예컨대 글로벌(global) 또는 로컬(local) 시간에 동기화된 시간 정보 또는 동기화되지 않은 시간 정보(예컨대, 동기화되지 않은 논리 클록(clock))에 부가적으로 기반하여 제2 논리 회로에서 생성될 수 있다.
또한, 방법은, 현재 로그 데이터 엘리먼트를 수신하면 카운터(counter) 값을 증분시키는 단계를 포함할 수 있다. 보호 로그 데이터 엘리먼트를 생성할 때, 카운터 값에 기반하여 현재 해시 값이 생성된다.
카운터 값은 또한, 제1 논리 회로에 알려지지 않을 수 있다. 따라서, 카운터 값은 제1 논리 회로에 대해 행동하는 공격자에 의한 로그 엘리먼트의 임의의 조작이 검출가능할 수 있다는 장점에 기여할 수 있다.
또한, 실시예에 따르면, 로그 데이터 엘리먼트들은 제2 논리 회로에서 개별적으로 처리되는 것이 아니라, 로그 데이터 엘리먼트들의 블록(block)들, 그룹(group)들 또는 세트(set)들로 처리될 수 있다. 예컨대, 제2 논리 회로에서, 로그 데이터 엘리먼트들의 시퀀스의 복수의 로그 데이터 엘리먼트들이 수신된다. 복수의 로그 데이터 엘리먼트들은 위에서 언급된 단일 로그 데이터 엘리먼트를 포함할 수 있다. 이 예에서, 보호 로그 데이터 엘리먼트를 생성하기 위해, 복수의 로그 데이터 엘리먼트들 및 제1 논리 회로에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트가 생성된다. 단일 트랜잭션(transaction) 내에 복수의 로그 데이터 엘리먼트들을 처리함으로써, 제1 논리 회로와 제2 논리 회로 사이의 통신의 왕복(round-trip) 시간들이 감소될 수 있다.
다양한 예들에 따르면, 제2 논리 회로로부터 제1 논리 회로로 표시가 송신된다. 표시는 보호 로그 데이터 엘리먼트와 함께 송신될 수 있거나 또는 별도의 메시지에서 송신될 수 있다. 표시는, 보호 로그 데이터 엘리먼트를 제1 논리 회로로부터 원격에 위치되는 원격의 증명 서비스 노드(attestation service node)에 포워딩(forward)하도록 제1 논리 회로에게 명령한다.
표시는 원격의 디바이스, 예컨대 원격의 서버(server), 원격의 네트워크 디바이스, 또는 제1 논리 회로 및 제2 논리 회로와 동일한 하드웨어 보드(board) 상에 배열될 수 있는 주변 구성요소에 보호 로그 데이터 엘리먼트를 포워딩하도록 제1 논리 회로에게 명령할 수 있다.
추가적인 예들에서, 제2 논리 회로는, 제1 논리 회로에 의해 포워딩되지(forwarded) 않고 보호 로그 데이터 엘리먼트를 원격의 증명 서비스 또는 원격의 디바이스에 직접적으로 전송할 수 있다.
원격의 증명 서비스 노드는 수신된 보호 로그 데이터 엘리먼트들을 저장할 수 있고, 제1 논리 회로로부터의 커맨드들에 의해 이러한 수신된 보호 로그 데이터 엘리먼트들이 삭제되는 것을 방지할 수 있다. 따라서, 로그 데이터 엘리먼트들의 수정 또는 삭제가 검출가능할 수 있을 뿐만 아니라, 수정 또는 삭제도 완전히 금지될 수 있다.
추가적인 실시예들에 따르면, 방법은, 제2 논리 회로와 원격의 증명 서비스 노드 사이의 시간 기준을 동기화하는 단계를 포함한다. 제2 논리 회로에서, 보호 로그 데이터 엘리먼트는 시간 기준에서 정의된 시간 정보에 부가적으로 기반하여 생성된다. 시간 정보는 예컨대 미리 정의된 기준 시점에 대한 시간 단위들, 또는 시간 및 날짜를 포함하는 타임 스탬프(time stamp)를 포함할 수 있다.
원격의 증명 서비스 노드는 신뢰성 있는 시간 기준을 제공할 수 있다. 제2 논리 회로를 원격의 증명 서비스 노드의 시간 기준과 동기화함으로써, 보호 로그 데이터 엘리먼트들의 신뢰성 있는 타임 스탬핑(stamping)이 가능하게 될 수 있다. 보호 로그 데이터 엘리먼트들이 공격자에 의해 수정될 수 없기 때문에, 공격의 정확한 타이밍(timing)을 포함하는, 공격의 흔적이 제공된다.
본 방법의 다른 실시예에 따르면, 제2 논리 회로는 원격의 증명 서비스 노드에서의 보호 로그 데이터 엘리먼트의 수신을 표시하는, 원격의 증명 서비스 노드로부터의 응답이 미리 정의된 시간 윈도우(window) 내에 수신되는지 여부를 결정한다. 원격의 증명 서비스 노드로부터의 응답이 미리 정의된 시간 윈도우 내에 수신되지 않음을 결정하면, 제2 논리 회로는 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지할 수 있다.
추가적인 실시예들에 따르면, 제2 논리 회로는 원격의 증명 서비스 노드에서의 보호 로그 데이터 엘리먼트의 수신을 표시하는, 원격의 증명 서비스 노드로부터의 응답이 미리 정의된 수의 보호 로그 데이터 엘리먼트들 내에 수신되는지 여부를 결정한다. 원격의 증명 서비스 노드로부터의 응답이 미리 정의된 수의 보호 로그 데이터 엘리먼트들 내에 수신되지 않음을 결정하면, 제2 논리 회로는 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지할 수 있고, 추가적인 필요한 단계들, 이를테면 알람(alarm)을 생성하는 것을 수행할 수 있다. 이는, 동기화된 시간을 설정하는 것이 실현가능하지 않은 시나리오(scenario)들에서 특히 유용할 수 있다.
부가적으로 또는 대안으로서, 원격의 증명 서비스 노드로부터의 응답이 미리 정의된 시간 윈도우 내에 또는 미리 정의된 수의 보호 로그 데이터 엘리먼트들 내에 수신되지 않음을 결정하면, 제2 논리 회로는 공격 알람 표시를 송신할 수 있다. 따라서, 원격의 증명 서비스 노드로부터의 분실된 응답에 기반하여, 제2 논리 회로는 제1 논리 회로에 대한 공격 상태를 결정할 수 있고, 결과적으로, 알람 통지를 전송하거나 또는 조작될 수 있는 추가 로그 데이터 엘리먼트들을 프로세싱(process)하는 것을 정지하는 것과 같은 대응하는 조치들을 개시할 수 있다.
보호 로그 데이터 엘리먼트를 생성하기 위해, 제2 논리 회로는, 예컨대 대칭 암호화 방식 또는 비대칭 암호화 방식, 그리고 비밀 정보를 사용하여, 로그 데이터 엘리먼트의 로그 데이터를 암호화할 수 있다. 부가적으로 또는 대안으로서, 대칭 또는 비대칭의 서명이 비밀 정보에 기반하여 생성될 수 있고, 보호 로그 데이터 엘리먼트에 포함될 수 있다.
본 출원의 다른 양상에 따르면, 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 제1 논리 회로, 및 제1 논리 회로로부터 원격의 제2 논리 회로를 포함한다. 컴퓨터 시스템은, 제1 논리 회로로부터 제2 논리 회로로, 제1 논리 회로의 동작과 연관된 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트를 송신하도록 구성된다. 컴퓨터 시스템은 또한, 제2 논리 회로에서, 로그 데이터 엘리먼트 및 제1 논리 회로에 알려지지 않은 비밀 정보에 기반하여 보호 로그 데이터 엘리먼트를 생성하도록 그리고 제2 논리 회로로부터 제1 논리 회로로 보호 로그 데이터 엘리먼트를 송신하도록 구성된다.
컴퓨터 시스템은 위에서 설명된 방법, 또는 위에서 설명된 실시예들 또는 예들 중 임의의 하나를 수행하도록 구성될 수 있다. 그러므로, 컴퓨터 시스템은 또한, 위에서 설명된 장점들을 포함한다.
예컨대, 제1 논리 회로 및 제2 논리 회로는, 제1 논리 회로로서 프로세서 및 제2 논리 회로로서 프로세서 외부의 또는 프로세서에서 원격의 필드 프로그램가능 게이트 어레이(FPGA; field programmable gate array)를 포함하는 시스템 상에 구현될 수 있다. 시스템은 프로세서로서의 중앙 프로세싱 유닛(CPU; central processing unit) 및 FPGA 부품을 포함하는 시스템-온-어-칩으로서 구현될 수 있다. 다른 예들에서, 시스템은 동일한 보드, 예컨대 인쇄 회로 보드(PCB; printed circuit board) 상에 배열된 전용 CPU-칩 및 전용 FPPGA-칩을 포함할 수 있고, 이러한 보드는 이들 두 칩들을 연결한다.
추가로, 본 출원에 따르면, 프로그램 코드(program code)를 포함하는 컴퓨터 프로그램 제품이 제공된다. 프로그램 코드는 제1 논리 회로 및 제1 논리 회로로부터 원격의 제2 논리 회로를 포함하는 컴퓨터 시스템에 의해 실행될 수 있다. 프로그램 코드를 실행하는 것은 컴퓨터 시스템으로 하여금 로그 데이터의 무결성을 보호하기 위한 방법을 수행하게 한다. 로그 데이터는 제1 논리 회로의 동작과 연관된 로그 데이터 엘리먼트들의 시퀀스를 포함한다. 방법은, 제2 논리 회로에서, 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트를 수신하는 단계, 및 제2 논리 회로에서, 로그 데이터 엘리먼트 및 제1 논리 회로에 알려지지 않은 비밀 정보에 기반하여 보호 로그 데이터 엘리먼트를 생성하는 단계를 포함한다.
본 발명의 범위로부터 벗어나지 않고, 위에서 언급된 특징들 및 이제 아래에서 설명될 특징들이 표시된 개개의 결합들에서 사용될 뿐만 아니라 다른 결합들에서도 또는 별개로도 사용될 수 있다는 것이 이해되어야 한다.
도 1은 다양한 예들에 따른 컴퓨터 시스템의 구성요소들의 앙상블(ensemble)을 개략적으로 예시한다.
도 2는 다양한 예들에 따른 복수의 보호 로그 데이터 엘리먼트들을 개략적으로 예시한다.
도 3은 다양한 예들에 따른 컴퓨터 시스템의 구성요소들의 앙상블을 개략적으로 예시한다.
도 4는 다양한 예들에 따른, 로그 데이터의 무결성을 보호하기 위한 방법의 방법 단계들을 예시하는 프로세스 흐름도이다.
다음에서는, 본 발명의 실시예들이 첨부된 도면들을 참조하여 상세히 설명될 것이다. 실시예들의 다음의 설명이 제한적인 의미로 취해지지 않아야 한다는 것이 이해되어야 한다. 본 발명의 범위는 단지 예시적인 것으로 취해지는 도면들에 의해 또는 이하에 설명된 실시예들에 의해 제한되는 것으로 의도되지 않는다. 다양한 도면들에서 동일한 참조 부호들은 유사한 또는 동일한 구성요소들을 지칭한다.
도면들은 개략적인 표현들인 것으로서 간주되어야 하며, 도면들에서 예시된 엘리먼트들이 반드시 실척대로 도시되지는 않는다. 그보다는, 다양한 엘리먼트들은, 이 다양한 엘리먼트들의 기능 및 일반적인 목적이 당업자에게 자명해지도록 표현된다. 도면들에서 도시된 또는 본원에서 설명된 기능 블록들, 디바이스들, 구성요소들, 또는 다른 물리적인 또는 기능적인 유닛들 사이의 임의의 연결 또는 커플링(coupling)이 또한, 간접적인 연결 또는 커플링에 의해 구현될 수 있다. 구성요소들 사이의 커플링이 또한, 무선 연결을 통해 설정될 수 있다. 기능 블록들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 결합으로 구현될 수 있다.
다음에서 설명된 바와 같이, 다양한 예들에 따르면, 로그 메시지들은 신뢰할 수 있는 하드웨어 보안 앵커에 의한 조작에 대하여 암호화적으로 보호된다. 신뢰할 수 있는 하드웨어 보안 앵커는 전용 하드웨어, 예컨대 FPGA 또는 ASIC에서 구현될 수 있다.
도 1은 컴퓨터 시스템(20), 예컨대 FPGA-SoC(Field Programmable Gate Array - System-on-a-Chip) 상에 구현된 임베디드 시스템의 예를 도시한다.
컴퓨터 시스템(20)은 소프트웨어, 예컨대 운영체제(22)를 실행하는 예컨대 중앙 프로세싱 유닛(CPU; central processing unit)을 포함하는 제1 논리 회로(21)를 포함한다. 운영체제(22)는 예컨대 리눅스 또는 유닉스 시스템을 포함할 수 있다. 운영체제(22)는 애플리케이션들을 실행하기 위한 사용자 공간(24) 및 커널(23)을 포함할 수 있다. 또한, 중앙 프로세싱 유닛은 호스트-기반 침입 검출 시스템(HIDS; host-based intrusion detection system)(25)을 실행할 수 있다. 다음에서는, 제1 논리 회로(21)는 또한, 프로세서 영역(21)으로 불릴 것이다. 프로세서 영역(21)은 추가 구성요소들, 예컨대 메모리 및 입력/출력 인터페이스들을 포함할 수 있다.
컴퓨터 시스템(20)은 또한, 제2 논리 회로(30)를 포함한다. 제2 논리 회로(30)는 FPGA에 의해 실현될 수 있다. 그러므로, 다음에서는, 제2 논리 회로(30)는 또한, FPGA 영역(30)으로 불릴 것이다. FPGA 영역(30)은 입력 모듈(module)(31), 출력 모듈(32) 및 하드웨어 보안 모듈(HSM; hardware security module)(33)을 포함한다.
HIDS(25)는 사용자 공간(24) 및/또는 커널(23)에서의 프로세스들의 각각의 활동에 대해 대응하는 로그 메시지들을 생성할 수 있으며, 이러한 대응하는 로그 메시지들은 다음에서 로그 데이터 엘리먼트들로 불릴 것이다. 이들 로그 데이터 엘리먼트들은 예컨대 대응하는 매개변수들을 포함하는 시스템 호출을 하는 프로세스, 또는 파일을 여는 프로세스, 또는 데이터를 입력 및 출력하는 프로세스를 로깅할 수 있다.
HIDS(25)에 의해 생성된 각각의 로그 데이터 엘리먼트는 입력 모듈(31)을 통해 HSM(33)에 통신된다. HSM(33)은, 로그 데이터 엘리먼트 및 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트를 생성함으로써 로그 데이터 엘리먼트를 보호한다. 예컨대, HSM(33)은 키-해시 메시지 인증 코드(HMAC; Keyed-Hash Message Authentication Code) 기법을 사용하여 로그 데이터 엘리먼트의 데이터에 대한 HMAC 값을 결정할 수 있다. 보호 로그 데이터 엘리먼트는 출력 모듈(32)을 통해 제1 논리 회로(21)에 다시 전송되며, 제1 논리 회로(21)의 메모리에 저장될 수 있다. 공격자가 공격의 흔적을 가리는 것을 회피하기 위해, 보호 로그 데이터 엘리먼트는, 공격자가 보호 로그 데이터 엘리먼트가 취소되었다는 표시를 남기지 않고 보호 로그 데이터 엘리먼트를 취소하는 것이 가능하지 않도록 구성될 수 있다. 부가적으로 또는 대안으로서, 보호 로그 데이터 엘리먼트는 공격자가 액세스를 갖지 않은 메모리에 저장될 수 있다. 결과적으로, 보호 로그 데이터 엘리먼트들은 안전하며, 공격자로부터 보호된다.
보호 로그 데이터 엘리먼트는 컴퓨터 시스템(20) 상에, 특히 프로세서 영역(21)에 저장될 수 있다. 이 경우, 공격자는 보호 로그 데이터 엘리먼트들이 저장되는 메모리에 대한 액세스를 가질 수 있고, 공격자가 보호 로그 데이터 엘리먼트들 중 하나 이상을 취소하거나 또는 제거하는 것이 가능할 수 있다.
부가적으로 또는 대안으로서, 보호 로그 데이터 엘리먼트들은 또한, 제1 논리 회로(21)에 송신되지 않고, HSM(33)으로부터 원격의 디바이스, 예컨대 네트워크 디바이스 또는 저장 디바이스로 송신될 수 있다.
하나 이상의 보호 로그 데이터 엘리먼트들의 제거가 검출가능함을 보장하기 위해, 로그 데이터 엘리먼트들의 시퀀스의 무결성을 입증하는 데 해시 체인들이 사용될 수 있다. 예컨대, 해시 체인에서, 현재 로그 데이터 엘리먼트의 해시 값이 이전 로그 데이터 엘리먼트의 해시 값과 결합될 수 있다. 특히, 이전 로그 데이터 엘리먼트는 바로 선행하는 로그 데이터 엘리먼트일 수 있다. 예컨대, HMAC 기법들을 사용할 때, 현재 로그 데이터 엘리먼트에 대한 HMAC 값은, 현재 로그 데이터 엘리먼트의 데이터 및 이전 로그 데이터 엘리먼트, 특히 바로 선행하는 로그 데이터 엘리먼트의 HMAC 값을 포함하여 계산될 수 있다.
도 2는 이 원리를 도시한다. 제2 논리 회로(30)에서, 데이터 필드(41) 및 HMAC 값(42)을 포함하는 초기 보호 로그 데이터 엘리먼트(40)가 생성된다. 데이터 필드(41)는 예컨대 제2 논리 회로(30)에 의해 무작위로 생성되는 세션 식별자를 포함할 수 있다. HMAC 값(42)은 데이터 필드(41)에 기반하여 계산된다. 따라서, 초기 보호 로그 데이터 엘리먼트(40)는 후속 보호 로그 데이터 엘리먼트들(50, 60 및 70)에 대한 앵커를 표현한다. 초기 보호 로그 데이터 엘리먼트(40)는, 제1 논리 회로(21)의 로그 메모리에 저장되도록, 출력 모듈(32)을 통해 제1 논리 회로(21)에 송신될 수 있다.
제2 논리 회로(30)가 로그 데이터 엘리먼트를 수신할 때, HSM(33)은, 수신된 로그 데이터 엘리먼트의 로그 데이터(51)에 이전 HMAC 값(52)으로서 HMAC 값(42)을 첨부함으로써, 대응하는 보호 로그 데이터 엘리먼트(50)를 생성한다. 그런 다음, HSM(33)은 로그 데이터(51) 및 이전 HMAC 값(52)에 기반하여 HMAC 값(53)을 계산한다. 계산된 HMAC 값(53)은 부가적으로, 로그 데이터(51) 및 이전 HMAC 값(52)에 첨부된다. 부가적으로, 전체 보호 로그 데이터 엘리먼트(50) 또는 그 일부분들이 예컨대 대칭 암호화 방식 또는 비대칭 암호화 방식을 활용하여 암호화될 수 있다. 마지막으로, 생성된 보호 로그 데이터 엘리먼트(50)는 제1 논리 회로(21)에 송신될 수 있다.
제2 논리 회로(30)가 추가 로그 데이터 엘리먼트를 수신할 때, HSM(33)은, 수신된 추가 로그 데이터 엘리먼트의 로그 데이터(61)에 이전 HMAC 값(62)으로서 HMAC 값(53)을 첨부함으로써, 대응하는 추가 보호 로그 데이터 엘리먼트(60)를 생성한다. 그런 다음, HSM(33)은 로그 데이터(61) 및 이전 HMAC 값(62)에 기반하여 HMAC 값(63)을 계산한다. 계산된 HMAC 값(63)은 로그 데이터(61) 및 이전 HMAC 값(62)에 첨부된다. 부가적으로, 전체 보호 로그 데이터 엘리먼트(60) 또는 그 일부분들이 예컨대 대칭 암호화 방식 또는 비대칭 암호화 방식을 활용하여 암호화될 수 있다. 이에 따라 생성된 추가 보호 로그 데이터 엘리먼트(60)는 제1 논리 회로(21)에 송신될 수 있다.
각각의 수신된 추가 로그 데이터 엘리먼트에 대해, HSM(33)은 대응하는 보호 로그 데이터 엘리먼트, 예컨대 로그 데이터(71), 이전 HMAC 값(72) 및 현재 HMAC 값(73)을 포함하는 보호 로그 데이터 엘리먼트(70)를 생성한다.
보호 로그 데이터 엘리먼트들(50, 60, 70)의 시퀀스의 무결성은 해시 값들의 결합에 기반하여 검증될 수 있다. 공격자가 특정 보호 로그 데이터 엘리먼트를 수정하거나 또는 취소하기를 원하는 경우, 공격자는 후속 보호 로그 데이터 엘리먼트들의 모든 해시 값들을 수정해야 한다. 그러나, 이는 공격자에게 불가능한데, 그 이유는 필요한 암호화 키들이 HSM(33)에서만 이용가능하고 제1 논리 회로(21)에서는 이용가능하지 않기 때문이다.
입력 모듈(31) 및 출력 모듈(32) 각각은 선입선출(FIFO; First In First Out) 모듈들로서 실현될 수 있다.
예컨대, 입력 모듈(31) 및 출력 모듈(32)은 FPGA 영역에서 링 버퍼(ring buffer)들로서 실현될 수 있고, 특정 메모리 영역을 통해 커널(23) 및 HIDS(25)에 연결될 수 있다. 생성된 로그 데이터 엘리먼트는 HIDS(25)에 의해 링 버퍼에 저장되고, 이 로그 데이터 엘리먼트는 HSM(33)으로부터 보호 로그 데이터 엘리먼트로서 링 버퍼에 반환된다.
부가적으로, 초기 보호 로그 데이터 엘리먼트(40)를 생성할 때, 카운터 값이 초기화될 수 있다. 새로운 로그 데이터 엘리먼트를 수신하면, HSM(33)은 카운터 값을 증분시킬 수 있고, 해시 값(HMAC)을 계산할 때 카운터 값을 포함시킬 수 있다.
요약하면, 예컨대 FPGA-SoC(20)의 리셋(reset) 후의 제1 단계에서, 해시 체인은 초기화된다. 이 초기화는 해시 체인에 대한 앵커로서 제1 보호 로그 데이터 엘리먼트(40)를 송신하는 것을 포함한다. FPGA-SOC(20)의 동작에서, 프로세서 영역(21)과 FPGA 영역(30) 사이의 통신은 새로운 로그 데이터 엘리먼트를 송신하는 HIDS(25)에 의해 개시되는 요청-응답 절차를 포함한다. HSM(33)에서 요청을 수신한 후에, HSM(33)은 수신된 로그 데이터 엘리먼트의 로그 데이터, 선택적으로 세션 식별자 및 증분된 카운터 값, 그리고 이전 보호 로그 데이터 엘리먼트의 해시 값 뿐만 아니라, 앞서 언급된 데이터(로그 데이터, 선택적으로 세션 식별자, 선택적으로 카운터 값, 및 이전 해시 값)에 기반하여 계산된 해시 값을 포함하는 새로운 보호 로그 데이터 엘리먼트를 생성한다.
HIDS(25)는 보호 로그 데이터 엘리먼트(40, 50, 60, 70)를 수신하고, 수신된 보호 로그 데이터 엘리먼트를 해시 체인의 새로운 엔트리로서 저장한다. HSM(33)은 세션 식별자, 최신 보호 로그 데이터 엘리먼트의 해시 값 뿐만 아니라, 증분된 카운터 값을 저장할 수 있다. HSM(33)이 운영체제(22)와 물리적으로 분리되어 있기 때문에, 공격자는 해시 키를 결정하기 위해 사용된 비밀 정보, 예컨대 암호화 키들에 액세스할 수 없고, 공격자가 세션 식별자, 카운터 값 및 이전 해시 값과 같은 프로토콜(protocol) 매개변수들에 액세스할 수 없어서, 공격자는 보호 로그 데이터 엘리먼트를 수정할 수 없고, 해시 체인은 보호된다.
HIDS(25)와 HSM(33) 사이의 통신을 감소시키고 성능을 개선시키기 위해, 로그 데이터가 이미 HIDS(25)에 존재하기 때문에, 로그 데이터는 보호 로그 데이터 엘리먼트로부터 제외될 수 있다. 따라서, HSM(33)에서 로그 데이터 엘리먼트를 수신한 후에, HSM(33)은, 이전 보호 로그 데이터 엘리먼트의 해시 값 뿐만 아니라 로그 데이터, 선택적으로 세션 식별자, 선택적으로 증분된 카운터 값 및/또는 선택적으로 시간 그리고 이전 해시 값에 기반하여 계산된 해시 값을 포함하는 새로운 보호 로그 데이터 엘리먼트를 생성한다. 새로운 보호 로그 데이터 엘리먼트는 (로그 데이터를 포함하지 않고서) HIDS(25)에 송신될 수 있고, HIDS(25)는 수신된 보호 로그 데이터 엘리먼트를 대응하는 로그 데이터에 할당할 수 있다.
보호 로그 데이터 엘리먼트들이 관리자 또는 로그 데이터를 분석하기 위한 도구에 의해 분석될 때, 로그 데이터가 완전한 상태인지 여부를 입증하기 쉽고, 수정들이 쉽게 인식될 수 있다.
도 3은 FPGA-SoC 상에 구현되는 임베디드 시스템으로서 또한 실현될 수 있는 컴퓨터 시스템(20)의 추가적인 예를 도시한다. 도 3에서 도시된 컴퓨터 시스템(20)은 도 1에서 도시된 컴퓨터 시스템(20)과 동일한 구성요소들(21 내지 25, 그리고 30 내지 33)을 필수적으로 포함하며, 이에 따라 이들 구성요소들의 설명은 반복되지 않을 것이다.
도 3은 부가적으로, 데이터 통신 네트워크(80), 예컨대 인터넷(Internet), 및 원격의 증명 서비스 노드(81)를 도시한다. 데이터 통신 네트워크(80)는 원격의 증명 서비스 노드(81)와 HIDS(25) 사이의 데이터 통신을 가능하게 한다.
HIDS(25)에 의해 생성된 각각의 로그 데이터 엘리먼트는 입력 모듈(31)을 통해 HSM(33)에 통신된다. HSM(33)은, 수신된 로그 데이터 엘리먼트 및 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 대응하는 보호 로그 데이터 엘리먼트를 생성한다. HSM(33)은 수신된 로그 데이터에 대해 키-해시 메시지 인증 코드(HMAC; Keyed-Hash Message Authentication Code)를 사용하여 보호 로그 데이터 엘리먼트를 생성하기 위한 HMAC 값을 결정할 수 있다. 보호 로그 데이터 엘리먼트는 출력 모듈(32)을 통해 HIDS(25)에 전송된다. 또한, HSM(33)은 보호 로그 데이터 엘리먼트가 원격의 증명 서비스 노드(81)에 포워딩될 것임을 표시하는 표시를 HIDS(25)에 송신할 수 있다. 대안으로서, HIDS는, HSM(33)으로부터의 전용 명령 없이, 이 HIDS가 수신된 보호 로그 데이터 엘리먼트를 원격의 증명 서비스 노드(81)에 포워딩하도록 구성될 수 있다. HIDS(25)는 데이터 통신 네트워크(80)를 통해 이 보호 로그 데이터 엘리먼트를 원격의 증명 서비스 노드(81)에 포워딩한다.
HIDS(25)는 예컨대 미리 정의된 수의 로그 데이터 엘리먼트들, 예컨대 100 개의 로그 데이터 엘리먼트들을 포함하는, 로그 데이터 엘리먼트들의 블록들을 입력 모듈(31)을 통해 HSM(33)에 송신할 수 있다. HSM(33)은, 수신된 로그 데이터 엘리먼트들의 블록 및 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트들의 대응하는 블록들을 생성할 수 있다. 단일 로그 데이터 엘리먼트들 대신에 로그 데이터 엘리먼트들의 블록들을 송신하는 것은 감소된 왕복 시간들에 기인하여 통신을 가속시키는 데 기여할 수 있다. 그러나, 로그 데이터 엘리먼트들의 블록들 또는 단일 로그 데이터 엘리먼트들을 보호하는 것은 도 1 및 도 2와 관련하여 위에서 설명된 것과 동일한 방식으로 수행될 수 있다.
원격의 증명 서비스 노드(81)는 수신된 보호 로그 데이터 엘리먼트를 저장한다. 원격의 증명 서비스 노드(81)는 단지 HSM(33)이 데이터를 부가하거나, 삭제하거나 또는 수정하는 것만을 허용한다. 이를 달성하기 위해, HSM과 원격의 증명 서비스 노드(81) 상에 제공된 원격의 증명 서비스(RAS; remote attestation service)가 초기화, 소위 부트스트래핑(bootstrapping) 동안 비밀 정보 및 프로토콜 매개변수들을 협상할 수 있어서, HSM(33)과 RAS는 서로를 인증할 수 있다. 비밀 정보는 예컨대 대칭 또는 비대칭 암호화를 위한 암호화 키들을 포함할 수 있다. 또한, 초기화 동안, 제2 논리 회로(30)와 원격의 증명 서비스 노드(81) 사이의 시간 기준이 동기화될 수 있다. HIDS(25)를 통해 보호 로그 데이터 엘리먼트를 원격의 증명 서비스 노드(81)에 송신한 후에, HSM(33)은 RAS로부터의 확인을 기다릴 수 있다. 미리 정의된 시간 윈도우 내에 RAS로부터의 확인이 HSM(33)에서 수신되지 않을 때, HSM은 공격자가 HSM(33)과 RAS 사이의 통신을 조작한다고 가정할 수 있고, HSM(33)은 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지할 수 있다. 부가적으로, HSM(33)은 공격 알람 표시를 관리자에게 송신할 수 있다. 재전송 공격(replay attack)들로부터 HSM(33)과 RAS 사이의 통신을 보호하기 위해, 암호화 논스(nonce) 기법들이 활용될 수 있다.
위에서 언급된 부트스트래핑은 예컨대 대칭 암호화를 사용함으로써 비대칭 암호화의 특성들을 달성하기 위한 시간 효율적인 스트림 손실-내성 인증(TESLA; Time Efficient Stream Loss-tolerant Authentication) 방법을 포함할 수 있다. 예컨대, TESLA 방법들에 따르면, 제1 단계에서, 루트 키 및 암호화 매개변수들이 교환된다. 이들 매개변수들은, 암호화된 로그 데이터 엘리먼트들을 RAS에 송신하기 위해 그리고 암호화된 로그 데이터 엘리먼트들이 손상되지 않은 상태로 수신되었는지 여부 또는 이상이 검출되었는지 여부에 대한 응답을 수신하기 위해 사용된다. 대안으로서, 암호화 매개변수들은 인증서-기반 인증(certificate-based authentication)에 기반하여 협상될 수 있다.
로그 데이터가 원격의 증명 서비스 노드(81)에 저장되기 때문에, 제1 논리 회로(21)에 대해 행동하는 공격자는 공격의 흔적들을 가릴 수 없다. RAS는 예컨대 기계 학습 알고리즘들을 사용함으로써 공격을 인식하기 위해 로그 데이터를 사용할 수 있다.
위에서 언급된 바와 같이, 입력 모듈(31)은 미리 정의된 수의 로그 데이터 엘리먼트들, 예컨대 100 개의 로그 데이터 엘리먼트들의 블록을 저장할 수 있고, HSM(33)은 미리 정의된 수에 도달하면 이들 모든 로그 데이터 엘리먼트들에 서명할 수 있다. 미리 정의된 수는 100보다 더 크거나 또는 더 작을 수 있는데, 예컨대 50 또는 수백일 수 있으며, 특히 각각의 로그 데이터 엘리먼트는 별도로 처리될 수 있다. 로그 데이터의 무결성을 보호하는 고성능을 실현하기 위해 대칭 암호화가 사용될 수 있다.
보호 로그 데이터 엘리먼트들을 원격의 증명 서비스 노드(81)에 저장하는 대신에, 보호 로그 데이터 엘리먼트들은 외부 저장 매체, 예컨대 SD 카드(card) 또는 외부 쓰기 전용 하드 디스크(hard disk) 상에 저장될 수 있다.
도 4는 로그 데이터의 무결성을 보호하기 위한 방법(100)의 단계들을 요약한다. 방법(100)은 방법 단계들(101 내지 124)을 포함한다. 선택적인 방법 단계들은 파선 박스(dashed box)들에 의해 표시된다.
선택적인 단계들(101 내지 103)은 컴퓨터 시스템(20)의 초기화 단계에 관한 것이다. 이들 단계들은 선택적인데, 그 이유는 다른 방식들로, 예컨대 대응하는 디폴트(default) 매개변수들을 구현하고 글로벌 클록에 동기화함으로써 그러한 초기화가 실현될 수 있기 때문이다. 단계(101)에서, 제2 논리 회로(30)와 원격의 증명 서비스 노드(81) 사이의 시간 기준이 동기화된다. 단계(102)에서는, 제2 논리 회로(30)에서, 무작위로 생성된 세션 식별자에 기반하여 초기 보호 로그 데이터 엘리먼트(40)가 생성된다. 초기 보호 로그 데이터 엘리먼트(40)는 보호 로그 데이터 엘리먼트들(50, 60, 70)의 해시 체인에 대한 선행 로그 데이터 엘리먼트로서의 역할을 한다. 단계(103)에서, 초기 보호 로그 데이터 엘리먼트(40)는 제2 논리 회로(30)로부터 제1 논리 회로(21)로 송신될 수 있다. 부가적으로, HSM(33)에 수신된 로그 데이터 엘리먼트들을 카운팅(counting)하기 위한 카운터가 초기화될 수 있다.
단계(104)에서, 로그 데이터 엘리먼트가 제1 논리 회로(21)에서 생성되고, HIDS(25)에 의해 입력 모듈(31)을 통해 제2 논리 회로(30)의 HSM(33)에 송신된다. 위에서 언급된 바와 같이, HIDS(25)로부터 HSM(33)으로, 로그 데이터 엘리먼트들은 블록들로, 예컨대 100 개의 로그 데이터 엘리먼트들의 블록들로 송신될 수 있다. 로그 데이터 엘리먼트 또는 로그 데이터 엘리먼트들의 블록을 수신하면, HSM(33)은 카운터를 증분시킬 수 있다.
단계(105)에서, HSM(33)은, 수신된 로그 데이터 엘리먼트 및 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성한다. 키-기반 해싱(key-based hashing), 예컨대 키-해시 메시지 인증 코드(HMAC; Keyed-Hash Message Authentication Code)를 사용하여 또는 키가 없는 해싱을 사용하여, 해싱이 수행될 수 있다. 비밀 정보는 해싱 알고리즘의 키들, 매개변수들 및/또는 알고리즘 식별자들을 포함할 수 있다. 예컨대, 단계(120)에서, HSM(33)은 수신된 로그 데이터 엘리먼트의 로그 데이터에 기반하여 그리고 선행 로그 데이터 엘리먼트에 대해 생성된 이전 해시 값에 기반하여 현재 해시 값을 생성할 수 있다. 단계(121)에서, 현재 해시 값 뿐만 아니라 이전 해시 값은 보호 로그 데이터 엘리먼트(50, 60, 70)에 포함될 수 있다. 또한, 단계(122)에서, 현재 해시 값은 카운터 값에 부가적으로 기반하여 생성될 수 있다. 단계(123)에서, 보호 로그 데이터 엘리먼트는, 예컨대 보호 로그 데이터 엘리먼트(50, 60, 70)에 타임스탬프(timestamp)를 포함시킴으로써 시간 기준에서 정의된 타임스탬프에 부가적으로 기반하여 생성될 수 있다. 부가적으로, 단계(124)에서, 보호 로그 데이터 엘리먼트(50, 60, 70)에 포함된 로그 데이터는 대칭 암호화 방식을 사용하여 또는 비대칭 암호화 방식을 사용하여 암호화될 수 있다.
단계(106)에서, 이에 따라 생성된 보호 로그 데이터 엘리먼트(50, 60, 70)는 제2 논리 회로(30)로부터 제1 논리 회로(21)로 송신된다. 선택적으로, 표시가 제1 논리 회로(21)에 송신될 수 있고, 이 표시는 보호 로그 데이터 엘리먼트(50, 60, 70)를 원격의 증명 서비스 노드(81)에 포워딩하도록 제1 논리 회로(21)에게 명령한다. 이 표시를 수신하면, HIDS(25)는 보호 로그 데이터 엘리먼트(50, 60, 70)를 원격의 증명 서비스 노드(81)에 포워딩할 수 있다.
단계(107)에서, HSM(33)은 원격의 증명 서비스 노드(81)로부터의 응답이 미리 정의된 시간 윈도우 내에, 예컨대 수백 밀리초(millisecond) 내에 수신되는지 여부를 결정할 수 있다. 응답은 원격의 증명 서비스 노드(81)가 보호 로그 데이터 엘리먼트(50, 60, 70)를 수신했음을 표시할 수 있다. 단계(108)에서, 응답이 미리 결정된 시간 윈도우 내에 실제로 수신되었다고 결정하면, HSM(33)은 단계(104)에서 계속될 수 있다. 그러나, 미리 결정된 시간 윈도우 내에 응답이 수신되지 않았다면, HSM(33)은 단계(110)에서 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지할 수 있고, 단계(111)에서 공격 알람 표시를 송신할 수 있다.
FPGA 영역(30)에서의 HSM(33)의 사용은, 공격자가 로그 메시지들을 조작할 기회를 갖지 않고, 이러한 로그 메시지들이 암호화적으로 보호될 수 있게 한다. 이는 다음의 문제를 해결하는데, 즉, 시스템을 공격한 후에, 공격자들은 더 이상 과거 및 현재 활동들을 숨길 수 없고, 이에 따라 관리자, HIDS 또는 RAS 절차에서의 인스턴스에 의해 인식될 수 있다.
이는 공격들에 점점 더 많이 노출되는 IoT 디바이스들 또는 네트워크 산업 제어 시스템(ICS; Industrial Control System)들(일반적으로, 임베디드 시스템들)의 주요 문제를 해결할 수 있다. 이들 공격들은 너무 정교하여서 공격 후에 또는 공격 동안 흔적들이 보이지 않을 수 있다. 이에 대한 이유는, 공격자들이 자신들만의 흔적들을 숨기기 위하여 개개의 시스템 상의 보안 메커니즘들을 재구성하기 때문이다. 위에서 설명된 방법들 및 시스템들은 로그 메시지들의 무결성을 보호하고, 공격자들이 자신들의 존재 또는 공격 흔적을 숨기거나 또는 흐리게 하는 것을 실질적으로 더욱 어렵게 한다. 시스템 관리자들은, 공격이 발생했는지 여부, 그리고 어느 취약성이 악용되었는지를 항상 알 수 있다. 도 3과 관련하여 설명된 방법 및 시스템을 이용하여, 시스템 관리자는 공격이 발생했는지 여부 및 공격이 어떻게 발생했는지를 알도록 더 높은 수준의 확실성으로 보장받을 수 있는데, 그 이유는 보호 로그 데이터 엘리먼트들이 검출 없이 쉽게 삭제될 수 없기 때문이다. 도 1과 관련하여 설명된 방법 및 시스템은 공격이 이루어졌다는 증거(proof)를 제공할 수 있다. 그러나, 공격자가 소정의 상황들 하에서는 임계 로그 메시지들을 삭제할 수 있기 때문에, 공격이 추적될 수 없는 것이 가능하다.
이전에는, 로그 메시지들이 시스템 상에 생성 및 저장되었거나, 또는 분석 및 저장이 수행된 중앙 인스턴스에 간헐적으로 포워딩되었다. 공격자들이 시스템을 공격한 후에 자신들의 존재를 숨기기 위하여 과거 및 미래 로그 메시지들을 조작할 수 있다는 사실은 주요 문제이다. 위에서 설명된 방법들 및 시스템들을 활용함으로써, 로그 메시지들의 무결성이 보호될 수 있다. 따라서, 공격자가 운영체제를 완전히 제어하더라도, 공격자는 공격 흔적들을 쉽게 숨길 수 없다. 결과적으로, 예컨대 임베디드 시스템이 공격을 받았다면, 이것이 입증될 수 있을 확률은 상당히 증가되는데, 그 이유는 로그 메시지들의 진본성이 항상 신뢰될 수 있기 때문이다.
본 발명이 소정의 바람직한 실시예들에 대해 도시 및 설명되었지만, 본 명세서를 읽고 이해할 때 당업자들에게 등가물들 및 수정들이 발생할 것이다. 본 발명은 모든 그러한 등가물들 및 수정들을 포함하며, 첨부된 청구항들의 범위에 의해서만 제한된다.

Claims (15)

  1. 로그 데이터(log data)의 무결성을 보호하기 위한 방법으로서,
    상기 로그 데이터는 제1 논리 회로(21)의 동작과 연관된 로그 데이터 엘리먼트(element)들의 시퀀스(sequence)를 포함하며,
    상기 방법은,
    상기 제1 논리 회로(21)로부터 원격의 제2 논리 회로(30)에서, 상기 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트를 수신하는 단계(104),
    상기 제2 논리 회로(30)에서, 상기 로그 데이터 엘리먼트 및 상기 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계(105),
    상기 제1 논리 회로(21)로부터 원격의 증명 서비스 노드(attestation service node)(81)에 상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 포워딩(forward)하도록 상기 제1 논리 회로(21)에게 명령하는 표시를 상기 제1 논리 회로(21)에 송신하는 단계,
    상기 원격의 증명 서비스 노드(81)에서의 상기 보호 로그 데이터 엘리먼트(50, 60, 70)의 수신을 표시하는, 상기 원격의 증명 서비스 노드(81)로부터의 응답이 미리 정의된 시간 윈도우(window) 내에 수신되는지 여부를 결정하는 단계(107), 및
    상기 원격의 증명 서비스 노드(81)로부터의 상기 응답이 상기 미리 정의된 시간 윈도우 내에 수신되지 않았다고 결정(108)하면,
    - 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지(110)하는 것,
    - 공격 알람(alarm) 표시를 송신(111)하는 것
    중 적어도 하나를 수행하는 단계
    를 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  2. 제1항에 있어서,
    상기 제2 논리 회로(30)는 프로그램가능 암호화 프로세싱 유닛(programmable cryptographic processing unit)(33)을 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  3. 제1항에 있어서,
    상기 제1 논리 회로(21)는 중앙 프로세싱 유닛을 포함하고, 상기 제1 논리 회로(21) 및 상기 제2 논리 회로(30)는 컴퓨터 시스템(computer system)(20)을 형성하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  4. 제1항에 있어서,
    상기 로그 데이터 엘리먼트는 상기 로그 데이터 엘리먼트들의 시퀀스의 선행 로그 데이터 엘리먼트에 후속하는 현재 로그 데이터 엘리먼트이며,
    상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계는,
    - 적어도 상기 현재 로그 데이터 엘리먼트의 로그 데이터(51, 61, 71) 및 상기 선행 로그 데이터 엘리먼트에 대해 생성된 이전 해시(hash) 값(52, 62, 72)에 기반하여, 현재 해시 값(53, 63, 73)을 생성하는 단계(120), 및
    - 상기 보호 로그 데이터 엘리먼트(50, 60, 70)에 상기 현재 해시 값(53, 63, 73) 및 상기 이전 해시 값(52, 62, 72)을 포함시키는 단계(121)
    를 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  5. 제4항에 있어서,
    무작위로 생성된 세션(session) 식별자(41)에 기반하여 초기 보호 로그 데이터 엘리먼트(40)를 생성하는 단계(102)를 더 포함하고,
    상기 초기 보호 로그 데이터 엘리먼트(40)는 시스템 초기화 후에 상기 로그 데이터 엘리먼트들의 시퀀스의 제1 로그 데이터 엘리먼트에 대한 선행 로그 데이터 엘리먼트로서의 역할을 하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  6. 제4항에 있어서,
    상기 현재 로그 데이터 엘리먼트를 수신하면 카운터(counter) 값을 증분시키는 단계를 더 포함하고,
    상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계는, 상기 카운터 값에 추가로 기반하여 상기 현재 해시 값(53, 63, 73)을 생성하는 단계(122)를 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  7. 제1항에 있어서,
    상기 로그 데이터 엘리먼트들의 시퀀스의 복수의 로그 데이터 엘리먼트들을 수신하는 단계를 포함하고, 상기 복수의 로그 데이터 엘리먼트들은 상기 로그 데이터 엘리먼트를 더 포함하며,
    상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계는, 상기 복수의 로그 데이터 엘리먼트들 및 상기 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계를 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  8. 제1항에 있어서,
    상기 제2 논리 회로(30)와 상기 원격의 증명 서비스 노드(81) 사이의 시간 기준을 동기화하는 단계(101), 및
    상기 제2 논리 회로(30)에서, 상기 시간 기준에서 정의된 시간 정보에 부가적으로 기반하여 상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하는 단계(123)
    를 더 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  9. 제1항에 있어서,
    상기 보호 로그 데이터 엘리먼트를 생성하는 단계는,
    - 상기 비밀 정보에 기반하여 대칭 암호화 방식을 사용하는 단계(124), 및
    - 상기 비밀 정보에 기반하여 비대칭 암호화 방식을 사용하는 단계(124)
    중 적어도 하나를 포함하는,
    로그 데이터의 무결성을 보호하기 위한 방법.
  10. 컴퓨터 시스템으로서,
    제1 논리 회로(21), 및
    상기 제1 논리 회로(21)로부터 원격의 제2 논리 회로(30)
    를 포함하고,
    상기 컴퓨터 시스템(20)은,
    상기 제1 논리 회로(21)로부터 상기 제2 논리 회로(30)로, 상기 제1 논리 회로(21)의 동작과 연관된 로그 데이터 엘리먼트들의 시퀀스의 로그 데이터 엘리먼트를 송신하고;
    상기 제2 논리 회로(30)에서, 상기 로그 데이터 엘리먼트 및 상기 제1 논리 회로(21)에 알려지지 않은 비밀 정보에 기반하여, 보호 로그 데이터 엘리먼트(50, 60, 70)를 생성하고,
    상기 제1 논리 회로(21)로부터 원격의 증명 서비스 노드(81)에 상기 보호 로그 데이터 엘리먼트(50, 60, 70)를 포워딩하도록 상기 제1 논리 회로(21)에게 명령하는 표시를 상기 제2 논리 회로(30)로부터 상기 제1 논리 회로(21)에 송신하고,
    상기 원격의 증명 서비스 노드(81)에서의 상기 보호 로그 데이터 엘리먼트(50, 60, 70)의 수신을 표시하는, 상기 원격의 증명 서비스 노드(81)로부터의 응답이 미리 정의된 시간 윈도우 내에 수신되는지 여부를 결정(107)하고, 그리고
    상기 원격의 증명 서비스 노드(81)로부터의 상기 응답이 상기 미리 정의된 시간 윈도우 내에 수신되지 않았다고 결정(108)하면,
    - 추가 보호 로그 데이터 엘리먼트들을 생성하는 것을 정지(110)하는 것,
    - 공격 알람 표시를 송신(111)하는 것
    중 적어도 하나를 수행하도록 구성되는,
    컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 컴퓨터 시스템(20)은 제2항 내지 제9항 중 어느 한 항의 방법을 수행하도록 추가로 구성되는,
    컴퓨터 시스템.
  12. 제10항에 있어서,
    상기 제1 논리 회로(21) 및 상기 제2 논리 회로(30)는, 상기 제1 논리 회로(21)로서 프로세서(processor) 및 상기 제2 논리 회로(30)로서 상기 프로세서 외부의 필드 프로그램가능 게이트 어레이(field programmable gate array)를 포함하는 시스템 상에 구현되는,
    컴퓨터 시스템.
  13. 컴퓨터로 판독가능한 저장 매체로서,
    제1 논리 회로(21) 및 상기 제1 논리 회로(21)로부터 원격의 제2 논리 회로(30)를 포함하는 컴퓨터 시스템(20)에 의해 실행될 수 있는 프로그램 코드(code)가 상기 컴퓨터로 판독가능한 저장 매체에 저장되어 있고, 상기 프로그램 코드를 실행하는 것은 상기 컴퓨터 시스템(20)으로 하여금 제1항 내지 제9항 중 어느 한 항에 따른 로그 데이터의 무결성을 보호하기 위한 방법을 수행하게 하는,
    컴퓨터로 판독가능한 저장 매체.
  14. 삭제
  15. 삭제
KR1020200004884A 2019-01-16 2020-01-14 로그 데이터의 무결성 보호 KR102332467B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19152043.6 2019-01-16
EP19152043.6A EP3683712B1 (en) 2019-01-16 2019-01-16 Protecting integrity of log data

Publications (2)

Publication Number Publication Date
KR20200089230A KR20200089230A (ko) 2020-07-24
KR102332467B1 true KR102332467B1 (ko) 2021-11-30

Family

ID=65041568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200004884A KR102332467B1 (ko) 2019-01-16 2020-01-14 로그 데이터의 무결성 보호

Country Status (5)

Country Link
US (1) US11403428B2 (ko)
EP (1) EP3683712B1 (ko)
JP (1) JP2020126586A (ko)
KR (1) KR102332467B1 (ko)
CN (1) CN111444519B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520898B2 (en) * 2019-03-28 2022-12-06 EMC IP Holding Company LLC Intrusion detection
CN113485661B (zh) * 2021-07-01 2023-08-22 深圳市同泰怡信息技术有限公司 四路服务器及其输出日志信息的方法
US20230259616A1 (en) * 2022-02-16 2023-08-17 Kyndryl, Inc. Log tampering prevention for high availability environments
CN118103820A (zh) 2022-09-27 2024-05-28 松下汽车电子系统株式会社 信息处理装置、信息处理装置的控制方法以及程序
WO2024070001A1 (ja) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008206158A (ja) * 2007-02-21 2008-09-04 Ricoh Co Ltd 暗号ハッシュによってリンクされたログを用いた信頼すべきタイムスタンプ及び証明できるクロック
US20180144125A1 (en) * 2016-11-18 2018-05-24 Vmware, Inc. Immutable file storage

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0013349D0 (en) 2000-06-01 2000-07-26 Tao Group Ltd Pseudo-random number generator
JP2006093832A (ja) * 2004-09-21 2006-04-06 Mitsubishi Electric Corp 侵入検知システム及び侵入検知プログラム並びに侵入検知情報分析装置及び侵入検知情報分析プログラム
JP4838631B2 (ja) * 2006-05-17 2011-12-14 富士通株式会社 文書アクセス管理プログラム、文書アクセス管理装置および文書アクセス管理方法
GB2453287B (en) * 2006-07-14 2010-05-19 Kinamik Data Integrity S L Method and system of generating immutable audit logs
CN101039186B (zh) * 2007-05-08 2010-08-04 中国科学院软件研究所 系统日志的安全审计方法
JP5139028B2 (ja) * 2007-10-24 2013-02-06 エイチジーエスティーネザーランドビーブイ コンテンツデータ管理システム及び方法
JP2011130012A (ja) 2009-12-15 2011-06-30 Sony Corp アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システム
US9009125B2 (en) * 2010-10-13 2015-04-14 International Business Machiness Corporation Creating and maintaining order of a log stream
JP6063321B2 (ja) * 2013-03-27 2017-01-18 株式会社富士通エフサス サーバ装置およびハッシュ値処理方法
JP6088882B2 (ja) * 2013-03-27 2017-03-01 株式会社富士通エフサス 制御装置および制御方法
US9338013B2 (en) * 2013-12-30 2016-05-10 Palantir Technologies Inc. Verifiable redactable audit log
WO2015141628A1 (ja) * 2014-03-19 2015-09-24 日本電信電話株式会社 Url選定方法、url選定システム、url選定装置及びurl選定プログラム
CN103824069A (zh) * 2014-03-19 2014-05-28 北京邮电大学 一种基于多主机日志关联的入侵检测方法
CN104392185B (zh) * 2014-12-01 2017-11-10 公安部第三研究所 在云环境日志取证中实现数据完整性验证的方法
US9922069B2 (en) * 2015-03-16 2018-03-20 International Business Machines Corporation Establishing a chain of trust in a system log
KR101953444B1 (ko) * 2016-12-26 2019-05-17 포항공과대학교 산학협력단 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치
US11443033B2 (en) * 2017-01-24 2022-09-13 Microsoft Technology Licensing, Llc Abstract enclave identity
JP6629773B2 (ja) * 2017-02-10 2020-01-15 日本電信電話株式会社 機器リスト作成システム、及び機器リスト作成方法
US10460130B1 (en) * 2017-09-18 2019-10-29 Amazon Technologies, Inc. Mechanism to protect a distributed replicated state machine
CN108171078B (zh) * 2017-12-27 2021-08-31 中国信息安全测评中心 一种面向第三方的云平台测评系统的数据保全方法和装置
CN108322306B (zh) * 2018-03-17 2020-11-27 北京工业大学 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
CN108804523B (zh) * 2018-04-27 2021-07-16 腾讯科技(深圳)有限公司 数据同步方法、系统及计算机可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008206158A (ja) * 2007-02-21 2008-09-04 Ricoh Co Ltd 暗号ハッシュによってリンクされたログを用いた信頼すべきタイムスタンプ及び証明できるクロック
US20180144125A1 (en) * 2016-11-18 2018-05-24 Vmware, Inc. Immutable file storage

Also Published As

Publication number Publication date
CN111444519B (zh) 2023-08-22
US20200226292A1 (en) 2020-07-16
KR20200089230A (ko) 2020-07-24
CN111444519A (zh) 2020-07-24
US11403428B2 (en) 2022-08-02
EP3683712A1 (en) 2020-07-22
JP2020126586A (ja) 2020-08-20
EP3683712B1 (en) 2021-10-20

Similar Documents

Publication Publication Date Title
KR102332467B1 (ko) 로그 데이터의 무결성 보호
US10484365B2 (en) Space-time separated and jointly evolving relationship-based network access and data protection system
US10367834B2 (en) Systems and methods for implementing intrusion prevention
US10885197B2 (en) Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
US10409978B2 (en) Hypervisor and virtual machine protection
Dunn et al. Cloaking malware with the trusted platform module
US8281402B2 (en) Network vulnerability assessment of a host platform from an isolated partition in the host platform
US9836611B1 (en) Verifying the integrity of a computing platform
Xu et al. Data-provenance verification for secure hosts
Nguyen et al. Cloud-based secure logger for medical devices
Böck et al. Towards more trustable log files for digital forensics by means of “trusted computing”
CN110770729B (zh) 用于证明虚拟机完整性的方法和设备
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
Streit et al. Secure boot from non-volatile memory for programmable SoC architectures
Curmi et al. RV-TEE-based trustworthy secure shell deployment: an empirical evaluation
Fournaris et al. Trusted hardware sensors for anomaly detection in critical infrastructure systems
Khan et al. A novel trusted hardware-based scalable security framework for IoT edge devices
Jain et al. Security analysis of remote attestation
Murti et al. Security in embedded systems
García Aguilar et al. A Threat Model Analysis of a Mobile Agent-based system on Raspberry Pi
Belay Securing the boot process of embedded Linux systems
Køien Aspects of security update handling for IoT-devices
Shanmugam Securing inter-processor communication in automotive ECUs
Girolami Continuous Remote Attestation Process in the scenario of the ROOT time precision distribution network
Li et al. Example Hardware Features that Support Information Security

Legal Events

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