KR20110061503A - 실시간 시스템 로그 무결성 보호를 위한 방법 및 시스템 - Google Patents

실시간 시스템 로그 무결성 보호를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20110061503A
KR20110061503A KR1020100121293A KR20100121293A KR20110061503A KR 20110061503 A KR20110061503 A KR 20110061503A KR 1020100121293 A KR1020100121293 A KR 1020100121293A KR 20100121293 A KR20100121293 A KR 20100121293A KR 20110061503 A KR20110061503 A KR 20110061503A
Authority
KR
South Korea
Prior art keywords
log file
log
context
file
additional information
Prior art date
Application number
KR1020100121293A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110061503A publication Critical patent/KR20110061503A/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

시스템 로그 파일 데이터의 무결성을 관리하는 방법 및 시스템이 개시된다. 시스템은, 운영 체제의 커널에서의 훅을 사용하여 적어도 로그 파일에 파일 시스템에 의한 기록 동작의 인터셉션을 허용하는 제1 컴포넌트를 포함하며, 제1 컴포넌트는 로그 파일에 레코드가 기록되어 있는 보안 컨텍스트, 예를 들어 레코드를 기록하는 일을 담당하는 사용자 또는 프로세스와 인터셉션의 시간의 변경을 검출한다. 각각의 변경이 검출되면, 제1 컴포넌트는 컨텍스트 정보를 포함하는 정보를 로그 파일에 추가한다. 시스템은 또한, 로그 파일을 판독하며, 제1 컴포넌트에 의해 추가된 정보를 사용하여, 컨텍스트의 변경이 예를 들어 권한이 부여되지 않은 사용자 또는 프로세스에 의해 행해진 로그 파일의 악성 기록 동작으로 인한 것인지 검출하는 제2 컴포넌트를 포함한다.

Description

실시간 시스템 로그 무결성 보호를 위한 방법 및 시스템{METHOD AND SYSTEM A REAL TIME SYSTEM LOG INTEGRITY PROTECTION}
본 발명은 일반적으로 시스템 로그(Log) 파일에 관한 것이다. 보다 상세하게는, 본 발명은 임의의 악성 변경(malicious modification)이 행해졌는지 더 검출하도록 실시간으로 로그 파일 보안을 주시하는 것을 목적으로 한다.
전통적으로, 로그 보안(log security)은 로그들 세트에 대해 기록(write) 모드로 액세스할 권한이 주어져 있는 엄격한 자원 리스트에 기초하며, 적절한 권한을 갖는 사용자가 로깅된 메시지의 일부를 삭제, 추가 또는 변경할 수 있는 가능성을 열어둔다. 로그 관리 해결책은 수집 후에 로그가 변경되지 않음을 보장하는 보안 메커니즘을 사용하여 로그가 원격으로 저장됨을 보장할 수 있지만, 실제로 수집이 일어나기 전에 로깅된 데이터가 변경되지 않았다는 보장은 없다.
RFC 5424 드래프트에 의해 정의된 Syslog(시스템 로그용) 프로토콜은 이벤트 메시지를 전송할 방식에 대해 기술하고 있으며 IP 네트워크를 통해 알린다. 메시지는 프로세스의 시작 또는 종료시 또는 프로세스의 현 상태를 보고하도록 운영 체제 또는 애플리케이션에 의해 보내진다. Syslog 프로토콜과 함께 사용되면, IETF 드래프트로서 정의되는 Syslog-sign 기술은 전송된 Syslog 메시지에 출처 인증, 메시지 무결성(integrity), 재전송 저항(replay resistance), 메시지 시퀀싱 및 누락 메시지의 검출을 추가한 메커니즘이다. 본질적으로, 이는 특별한 Syslog 메시지를 보냄으로써 달성된다. 이 Syslog 메시지의 컨텐츠는 서명 블록(Signature Block)으로 부른다. 각각의 서명 블록은 사실상 일부 수의 미리 보내진 메시지에 대해 분리되어 있는 서명을 포함한다. 이는 암호로 서명되고, 미리 보내진 Syslog 메시지의 해시를 포함한다. Syslog-sign의 발신자는 또한 단순히 "서명자(signer)"로 칭한다. 서명자는 메시지에 서명한 발신자와 동일한 발신자일 수 있거나, 또는 별도의 발신자일 수 있다. 송신 디바이스는 "릴레이(relay)"에 수정된 Syslog 메시지를 전송할 수 있으며, 릴레이는 그것을 저장하는 "수집자(collector)"에게 그 메시지를 전송한다. Syslog-sign 기술을 사용하는 것은 Syslog 메시지의 보안을 보장하지만, 여러 문제점들을 갖고 있다:
- 로그 포맷의 급격한 변경이 있는데, 이러한 것과 같은 해결책을 이용하면 각각의 로깅 라인에 대한 보안 해시의 포함으로 로그 포맷이 수정될 것이며 보안되지 않은 로그에 사용되는 것과 동일한 해결책을 사용하여 로그를 파싱 및 분석하는 것을 불가능하게 할 것이다.
- 두 번째 단점은, 유효 해시를 수신하여 진위로서 간주될 로그에 잘못된/무관한 메시지를 쓰도록 Syslog-sign API에 요청함으로써 애플리케이션 또는 프로세스가 로깅 애플리케이션을 바이패스할 수 있다는 점이다. 이는 시스템 단독으로 또는 이벤트를 전달할 때 일어날 수 있다. Syslog-sign의 취약점은 (Syslog-sign 문서에 서술되어 있는 바와 같이) 프로세스가 공지된 프로세스를 흉내내며 유효한 서명으로 승인될 수 있다는 사실에 있다.
마지막으로, Syslog-sign 보안은 파일의 이동이 일어날 때 효율적이지 못하다는 것에 유의해야 한다. 서명 블록 메시지를 발생시키는 발신자는 전체적으로 각각의 메시지에 서명하므로, 메시지는 전송 중에 변경되어서는 안 된다. 같은 이유에서, Syslog-sign 메시지가 전송 중에 변경되어서는 안 된다. 그러나, 시스템 로그 메시지의 전달에 대하여 RFC 5424에 기재되어 있는 바와 같은 릴레이 거동을 적용할 때, Syslog 메시지가 변경된다. 이러한 거동이 Syslog-sign과 함께 일어난다면, 이는 어떠한 서명도 무효로 할 것이며, 그에 따라 메커니즘을 소용없게 만들 것이다. 마찬가지로, 송신과 수신 사이에 일어나는 메시지의 임의의 절단이 메커니즘을 무용지물로 만든다. 이는 로그 서명 해결책을 사용하더라도 로그가 변경 공격에 취약한 동안인 시스템 로그 메시지의 전달에 대응하는 기간이 있다는 것을 의미한다.
결과적으로, Syslog-sign 프로토콜이 가져다주는 보안은 이동 중인 파일에 적용 가능하지 않으며, 단일 시스템 상에서 사용될 때 단점을 갖는다. 따라서, 단일 시스템 상에서 파일들의 보안을 구현할 때 Syslog-sign 해결책의 단점을 극복할 필요성이 여전히 존재한다.
그러므로 본 발명의 목적은 시스템 레벨에서 생성된 로그 메시지가 수정되었는지 체크할 수 있는 신뢰성있는 방식을 사용자에게 제공하는 것이다.
시스템 로그 파일 데이터의 무결성을 관리하는 방법인 청구항 1에 따라, 본 발명의 목적에 이를 수 있으며, 상기 방법은,
시스템 부트(system boot) 시에, 운영 체제의 커널에서의 훅(hook)이 적어도 하나의 로그 파일에 대해 파일 시스템에 의한 기록(write) 동작의 인터셉션(interception)을 허용하는 하나 이상의 로그 파일을 정의하고;
상기 로그 파일의 각각의 로그 파일에 대한 기록 이벤트의 각 인터셉션시,
기록될 로그 파일 레코드로부터 상기 로그 파일 레코드를 생성한 프로세스 또는 사용자 식별자를 포함하는 기록 동작의 컨텍스트(context)를 추출하고;
이전의 인터셉션에서 추출된 컨텍스트와 비교하고, 컨텍스트가 변경되었다면, 기록될 로그 파일 레코드의 기록 동작을 허용하기 전에 상기 로그 파일에 추가 정보 - 상기 추가 정보는 현재 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알려줌 - 를 기록하는 것을 포함한다.
상기 추출하는 단계 후에, 다음 인터셉션에서 상기 비교하는 단계의 실행을 위해, 추출된 컨텍스트를 저장하는 것을 더 포함하는, 청구항 1의 방법과 함께 청구항 2에 따라 본 발명의 목적에 또한 이를 수 있다.
로그 파일의 끝 또는 시스템 셧다운(shutdown)의 검출시, 현재 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알리는 추가 정보를 로그 파일에 기록하는 것을 더 포함하는, 청구항 1 또는 2의 방법과 함께 청구항 3에 따라 본 발명의 목적에 또한 이를 수 있다.
상기 추가 정보를 기록하는 단계는 이전의 인터셉션의 컨텍스트를 기록하는 것을 포함하는 것인, 청구항 1 내지 3 중 어느 한 항의 방법과 함께 청구항 4에 따라 본 발명의 목적에 또한 이를 수 있다.
상기 추가 정보를 기록하는 단계는 로그 파일에 기록하는 일을 담당하는 사용자 또는 프로세스와 인터셉션의 시간을 포함하는 추가 정보를 기록하는 것을 포함하는 것인, 청구항 1 내지 4 중 어느 한 항의 방법과 함께 청구항 5에 따라 본 발명의 목적에 또한 이를 수 있다.
상기 각각의 로그 파일에서 기록 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알리는 추가 정보를 판독하고, 악성 기록(malicious writing)이었는지 결정하도록 상기 추가 정보 앞의 적어도 하나의 로그 파일 레코드를 판독하고;
로그 파일의 악성 기록 동작을 지적하는 출력을 생성하는 것을 더 포함하는, 청구항 1 내지 5 중 어느 한 항의 방법과 함께 청구항 6에 따라 본 발명의 목적에 또한 이를 수 있다.
상기 악성 기록은 사용자 또는 프로세스에 로그 레코드를 기록할 권한이 부여되지 않은 경우인 것인, 청구항 6의 방법과 함께 청구항 7에 따라 본 발명의 목적에 또한 이를 수 있다.
프로그램이 컴퓨터 상에서 실행될 때 청구항 1 내지 청구항 7 중 어느 한 항에 따른 방법의 단계들을 실행하기 위한 프로그래밍 코드 명령어들을 포함하는 컴퓨터 프로그램 제품인 청구항 8에 따라 본 발명의 목적에 또한 이를 수 있다.
시스템 로그 파일 데이터의 무결성을 관리하는 시스템인 청구항 9에 따라, 본 발명의 목적에 이를 수 있으며, 상기 시스템은,
운영 체제의 커널에서의 훅을 사용하여 적어도 하나의 로그 파일에 대한 파일 시스템의 기록 동작을 인터셉트하는 제1 컴포넌트를 포함하고, 상기 제1 컴포넌트는, 기록 동작의 각 인터셉션시, 기록될 로그 파일 레코드의 컨텍스트가 변경되었는지 분석하고 이 변경을 알리는 추가 정보를 파일에 기록하도록 적응된다.
로그 파일을 판독하고 로그 파일 레코드 및 상기 제1 컴포넌트에 의해 기록된 컨텍스트의 변경을 알리는 추가 정보를 분석하여 컨텍스트의 변경 후에 기록된 로그 파일 레코드가 악성인지 여부를 인지하여 알리는 제2 컴포넌트를 더 포함하는, 청구항 9의 시스템과 함께 청구항 10에 따라 본 발명의 목적에 또한 이를 수 있다.
본 발명의 해결책은, 악성 사용자에 의한 활동이 이루어졌다 하더라도, 보안 컨텍스트를 갖는 모든 Syslog 메시지를 마킹(marking)하는 것에 있다. 모든 메시지가 신뢰된다는 보험을 제공하는 Syslog-sign에 따른 아이디어와는 달리, 본 발명의 해결책은 다른 접근법을 갖는데, 보안을 강행하는 것이 아니라, 로그가 조작되지 않은 것을 사용자가 확인(verify)할 수 있게 해준다. 이 해결책은, 로그에 대한 어떠한 조작도 허용하지 않으며 로그 기록 프로세스에 대해 어떠한 변경도 요구하지 않는 방법과 로그 파일 자체를 사용하여, 로그 파일을 보안하고 보안 관련 정보 세트를 저장하는 획기적인 메커니즘에 기초한다.
본 발명의 시스템은 임의의 변경을 조사하며 변경을 행한 사용자 및 프로세스를 식별한다. 메시지 블록이 해시된다는 사실은 해시 컨텐츠를 변경하지 않고서 변경하는 것을 불가능하게 한다. 악성 프로세스가 로그를 추가하거나 변경하면, 누가 그것을 기록했는지 그리고 어느 프로세스를 사용하였는지 명확하게 정의하는 상이한 서명 블록을 얻을 것이다.
이 해결책은 가능한 당사자가 로그 메시지 수집 전에 Syslog 메시지를 수정할 수 있는 Syslog-sign 종래 기술에 따른 신뢰성 부족의 문제를 확실하게 피하게 된다. 본 발명의 해결책을 이용하면 부트(boot) 시에 파일 시스템이 후킹되고(hooked) 모든 메시지에 대해 행한 프로세스/사용자가 추적되므로, 그것을 수정할 수 없다. 부트 시에 파일 시스템이 후킹됨에 따라, 자율적인 프로세스에 의해 보안되는 외부 툴에 의존할 필요가 없다.
Syslog-sign 기술에 비교하여, 본 발명의 해결책은 기타 이점들을 가져다준다:
- 로그 포맷은 그의 원래 컨텐츠가 손상되지도 변경되지도 않는다. Syslog 포맷을 포함한 임의의 로그 파일 레코드 포맷이 이 포맷과 호환가능하며, 로그 레코드는 변경되지 않고 추가 정보만 로그 파일 관리를 위해 포스트프로세서에 의해 스킵되는 단일 행의 형태로 추가된다. 이는 임의의 기존의 로그 관리 해결책에 의해 로그가 투과적으로(transparently) 후처리될 수 있게 해준다.
- 본 해결책은 제안한 특징의 역할을 하고자 하는 로깅 애플리케이션이 임의의 새로운 라이브러리를 구축하거나 링크해야 함을 의미하지 않는다. 애플리케이션은 Syslog 기술/프로토콜에 명시적으로 영향을 미치지 않는다 해도 그것들의 로그 파일을 자동으로 그리고 투과적으로 보안할 수 있을 것이다.
- Syslog sign 종래 기술에 언급되어 있는 패킷 수로 인해 성능에 미치는 영향으로 인한 제한(RFC 5424 챕터 6.1, "메시지 길이" 참조)은 제안한 해결책에 의해 극복된다. "수송 수신기가 지원하는 것보다 더 큰 길이를 갖는 메시지를 수신하면, 수송 수신기는 페이로드를 절단하여야 한다. 대안으로서, 메시지를 폐기할 수 있다." Syslog가 여전히 시스템 상에서 사용되며 절단을 강행할 수 있지만, 본 발명의 해결책을 구현하는 시스템 상에서 Syslog에 관계없이 로깅이 수행되면, 스트링 길이에 관련하여 메시지 제한이 없다. 본 발명의 해결책에 따른 하나의 단일 처리는 성능에 미치는 영향이 적다.
- 제안한 해결책은 단지 해싱 메커니즘을 사용하므로, 암호 키 쌍 관리에 관련하여 어떠한 제약도 부여하지 않는다(따라서, 소비자에게 어떠한 보안 인증서를 발행하거나 구매하도록 요구되지 않음).
도 1은 본 발명의 바람직한 실시예의 시스템 환경을 도시한다.
도 2는 바람직한 실시예에 따라 강화된(enriched) 로그 파일을 생성하는 본 발명의 전반적인 흐름도의 첫 번째 부분이다.
도 3은 바람직한 실시예에 따라 강화된 로그 파일 레코드를 검증(validate)하는 본 발명의 전반적인 흐름도의 두 번째 부분이다.
도 4는 바람직한 실시예의 방법에 따라 강화된 로그 파일 엔트리의 예이다.
도 5는 바람직한 실시예에 따라 본 발명의 전반적인 흐름도의 토큰 기록 상태도 머신의 세 번째 부분이다.
도 1은 본 발명의 바람직한 실시예의 시스템 환경을 도시한다. 컴퓨터(100)의 운영 체제(105)는 시스템 파일인 로그 파일(110)에 시스템 이벤트를 로깅한다. 시스템 이벤트를 로깅하도록 운영 체제에 의해 트리거된 파일 시스템(125)은 다른 파일의 경우와 같이 판독/기록 동작을 수행한다. 로그 파일은 Syslog 프로토콜(RFC 5424) 시스템 로깅 포맷을 구현할 수 있다.
이 환경에서, 바람직한 실시예의 구현은, 분리되어 있는 컴포넌트, 즉 기록 오디터 컴포넌트(Write auditor component)(115)를 포함하는데, 이는 운영 체제가 기록 오디터 컴포넌트에 의해 모니터된 로그 파일에 기록 동작(155)을 위해 파일 시스템을 트리거할 때(150), 이 동작이 기록 오디터 컴포넌트에 의해 인터셉트되도록, 운영 시스템의 커널에 후킹하는(120) 서브시스템이다. 이 역할을 할 수 있는 기술은 파일시스템 후킹을 사용할 수 있는 UNIX 시스템과 미니필터(Minifilter) 아키텍처를 사용할 수 있는 윈도우 시스템 상에서 다소 상이하다. 기록 오디터 컴포넌트는 로그 파일에 대한 기록 동작을 수행하는 프로세스를 추적하는 파일 액세스 오디트(audit) 메커니즘을 포함한다. 이 정보는, 정의된 이벤트(PID, 프로세스, 프로세스 파일, 버퍼 크기, EOF 등...의 변경)에 따라 좌우되는 정보를 가지며, 기록 오디터 컴포넌트 자체에 의해 보호된 로그 파일에 포함된다.
기록 오디터 컴포넌트는 바람직하게 하드웨어 로직보다는 시스템 특권을 갖는 소프트웨어 프로그램으로서 구현되며, 이 특권 때문에, 기록 오디터 컴포넌트는 로그가 생성되는 시스템 상에 위치된다.
기록 오디터 컴포넌트는 시스템 부트 시에 시작되고 시스템 로그 기록 동작 동안 활성 상태로 유지되며, 셧다운(shutdown) 시에 또는 시스템 로그 파일들 사이의 변경이 있을 때마다 실행이 중지된다. 시스템의 관리자는 어느 시스템 로그 파일이 기록 오디터 컴포넌트에 의해 보호될 것인지 선택한다.
두 번째 컴포넌트, 즉 보안 검증 컴포넌트(Security Validation component)(130)는 바람직하게는, 강화된 로그 파일을 파싱(parse)하고, 모니터된 로그 파일에 기록 오디터 컴포넌트에 의해 포함된 모든 보안 메타 정보를 검증하는데 사용될 수 있는 소프트웨어 프로그램으로서 구현된다. 보안 검증 컴포넌트는 로그 파일이 채워져 있는 동일한 컴퓨터 상에서 구현될 수 있다. 로그 파일이 생성되어 기록 오디터 컴포넌트에 의해 인터셉트된 컴퓨터가 아닌 다른 컴퓨터 상에서 보안 검증 컴포넌트가 실행되는 경우, 이는 검증될 로그 파일의 카피가 행해졌음을 의미한다. 이는 로그 파일의 복사가 안전한 보안 방식으로 행해졌음을 사용자가 보장해야 하기 때문에 바람직한 실시예가 아니다. 바람직한 실시예의 기록 오디터 및 보안 검증 컴포넌트는 로그 파일의 내부 구조를 알고 있는 누군가가 로그 파일의 복사본에 어떤 잘못된 레코드를 추가하지 않았다는 것을 보장할 수 없다. 당해 기술 분야에서의 숙련자라면 오늘날 존재하는 추가적인 파일 복사 체크 시스템을 보안 검증 컴포넌트에 추가할 수 있지만, 이는 본 발명의 주요 목적 외의 것이다.
로그 파일은 Syslog(RFC 5424) 프로토콜을 사용하여 포맷될 수 있으며 독립적인 로그 파일에 포함된 보안 메타 정보는 그에 따라 로그 레코드 포맷과 호환 가능하다는 것을 유의해야 한다. RFC 5424의 Syslog 릴레이 프로토콜을 구현하는 동안 기록 오디터 컴포넌트에 의해 생성되고 강화된 로그 파일(130)이 IP 네트워크를 통해 보내지는 경우에, 초기 로그 파일의 메시지가 수정된다. 이러한 수정이 이동 중인 로그 파일을 검증하는 보안 검증 컴포넌트에는 보이지 않는데, 이는 기록 오디터 컴포넌트에 의해 보안 컨텍스트를 갖는 로그 파일에 추가된 정보만 식별하고 범위를 정하기(delimit) 때문이다(도 4의 설명에 관련하여 보다 상세하게 기재되어 있음).
도 2는 바람직한 실시예에 따라 강화된 로그 파일을 생성하는 본 발명의 전반적인 흐름도의 첫 번째 부분이다. 바람직한 실시예에서, 시스템 관리자는 기록 오디터 컴포넌트에 의해 모니터될 로그 파일 시스템의 리스트를 정의한다. 프로세스는 시스템 부트 시에 시작되며, 기록 오디터 컴포넌트는 모니터될 로그 파일들의 리스트를 로딩한다(200). 기록 오디터 컴포넌트는 기록이 수행되기 전에 로그 파일들에 대해 파일 시스템에 의해 수행되는 모든 기록 동작이 기록 오디터 컴포넌트에 의해 인터셉트되는 것을 허용하도록 커널에서 파일 시스템을 후킹한다(210). UNIX 상에서 파일 시스템을 후킹하는데 사용되는 기술은 "파일시스템 훅(filesystem hook)"이며, 윈도우 상에서 사용되는 기술은 "파일시스템 미니필터 훅(filesystem minifilter hook)"이다. 기록 오디터 컴포넌트는 제1 보안 토큰을 갖는 로그 파일을 초기화하고 제2 보안 토큰을 기록함으로써 로그 파일에 제1 섹션의 범위를 정한다. 제2 보안 토큰은, 다른 필드 중에서도, RFC 1321에 기재된 바와 같이 예를 들어 MD5와 같이 유효 해싱 방법을 사용하여 생성되는 체크섬(checksum)을 보안하는 해시를 포함할 수 있다. 기록 오디터 컴포넌트는 제1 기록 동작을 인터셉트하고(220), 현재 보안 컨텍스트를 추출하여 저장한다(보안 컨텍스트는 로그 파일에 기록하는 사용자 이름 또는 프로세스 Id 또는 프로세스 이름에 의해 "보안 사용자"를 고유하게 식별하는 완전한 정보 세트임). 로그 파일에 대한 모든 부가의 기록 동작마다, 로그 레코드는 기록 오디터 컴포넌트에 의해 모니터되고 현재 보안 컨텍스트와 비교되며(230), 보안 컨텍스트가 변경되지 않은 경우(테스트 230에서의 답 No), 다음 기록 동작이 인터셉트된다(220). 보안 컨텍스트가 변경되었다면(테스트 230에서의 답 Yes), 클로징(closing) 보안 토큰이 기록되고 새로운 오프닝(opening) 보안 토큰이 임의의 동작이 일어나기 전에 로그 파일에 기록된다(240). 이는 보안 토큰에 표시된 것에서 보안 컨텍스트가 변경되지 않은 모든 로그 섹션의 범위를 명확하게 정하는 오프닝 및 클로징 보안 토큰에 의해 각각의 섹션이 마킹됨을 보장한다. 프로세스는 또 다른 보안 컨텍스트 변경으로서 마킹될 최종적인 셧다운 또는 로그 순환 이벤트까지 계속되며, 로그 파일에 대한 마지막 기록 동작은 모든 관련 보안 정보를 가지고 셧다운 이벤트가 일어나고 있다는 것을(250) 표시하는 로그를 클로징하는 보안 토큰이다.
이러한 흐름은 모니터된 로그 파일이 변경될 때마다 활성화된다.
기록 오디터 컴포넌트를 이용해, 시스템의 관리자에 의해 지정된 시스템 로그 파일은 중요한 정보가 로깅됨에 따라 항상 보호 하에 있다. 컴포넌트는 시스템 로그 파일에의 악성 기록을 막지 못하지만, 권한이 없는 사용자 또는 프로세스에 의해 수행된 악성 기록 동작을 지나간 프로세싱 단계에서 검색하는 것을 도울 중요한 정보(보안 컨텍스트 정보)를 수집하고 지적한다.
도 3은 바람직한 실시예에 따라 강화된 로그 파일 레코드를 검증하는 본 발명의 전반적인 흐름도의 두 번째 부분이다. 보안 검증 컴포넌트는 기록 오디터 컴포넌트에 의해 강화된 로그 파일의 컨텐츠를 분석하는 서브시스템이다. 보안 검증 컴포넌트는 로그 파일을 파싱하고 기록 오디터 컴포넌트에 의해 포함된 모든 보안 메타 정보를 확인한다. 보안 검증 서브시스템은 도 5의 설명에 관련하여 보다 상세하게 설명되는 바와 같이 어떠한 방식으로든 보호된 로그 파일이 조작되었다거나 변경되지 않았음을 확인하는데 사용된다.
도 3의 흐름도는 검증되어야 할 모든 파일에 대하여 실행된다. 보안 검증 서브시스템은 검증을 요하는 파일을 로딩하고(300), 오프닝 및 클로징 토큰에 의해 범위가 정해진 보안된 섹션(310)을 식별하고, 보안 토큰을 추출하고, 보안된 섹션을 보안 토큰에 저장된 정보와 비교한다. 다음 단계는, 분석되고 있는 토큰에서 불일치가 발견되는지 체크하는 것이다. 시간을 체크함으로써 불일치가 발견될 경우(테스트 320에서의 답 Yes), 로그 파일이 생성된 후에 조작되었다는 것을 유의해야 하며, 하나의 다른 불일치로는 일부 로그 파일 레코드를 생성한 사용자 또는 프로세스가 권한이 없는 경우이다. 로그 보안 노출 정보가 보안 검증 컴포넌트에 의해 추출되고, 보안 노출 이벤트가 발생된다(330). 불일치가 발견되지 않는다면(테스트 320에서의 답 No), 보안 컨텍스트가 추출되고, 관련 라인 번호를 나타내는 판독가능한 포맷으로 섹션 상의 정보(프로세스 활동, PID, 파일 및 사용자에 대한 정보)가 로깅된다(350). 프로세스는 EOF(테스트 360에서의 답 Yes)까지 모든 보안된 섹션에 대하여 계속되고(테스트 360에서의 답 No), 파일 글로벌 보안 리포트가 완료된다(370).
도 4는 바람직한 실시예의 방법에 따라 강화된 로그 파일 엔트리의 예이다. 모니터될 새로운 로그 파일에 대해 첫 번째 기록 동작이 검출될 때 제1 토큰(410)이 입력되었다. 또한 부가의 비교를 위해 첫 번째 기록 동작의 제1 컨텍스트가 저장될 때 제1 섹션이 오프닝 토큰으로 개방된다(420). 바람직한 실시예에서, 모든 보안 토큰에서(오프닝, 클로징, 스타트업 및 셧다운), 필드는 열거된 순서대로 제공된다. 각각의 필드는 한 번 그리고 정의된 방식으로 범위가 정해진 토큰에서 한번만 발생한다. 토큰은 다음의 머리글자로 축약되는 다음의 필드들을 포함할 수 있다:
Figure pat00001
스타트업 토큰(Startup Token)은 다음을 포함한다:
Figure pat00002
STARTUP TOKEN은 기록 포맷의 변경을 수용할 수 있는 기록 오디터 서브시스템의 버전 - 이는 토큰이 하나의 버전에서 다른 버전으로 변하는 경우 유용함 -, 파일 생성 시간을 마킹한 시간, 그리고 오디터 프로세스를 현재 실행하고 있는 프로세스 Id 및 사용자 Id인 기록 오디터 보안 정보를 포함한다.
오프닝 토큰(Opening Token)은 다음을 포함한다:
Figure pat00003
OPEN TOKEN은 기록 오디터에 의해 생성된 고유의 ID 및 토큰이 기록됐을 때의 타임스탬프를 포함한다.
클로징 토큰(Closing Token)은 다음을 포함한다:
Figure pat00004
CLOSE TOKEN은 기록 오디터에 의해 생성되어진 대응하는 OPEN TOKEN에 사용된 동일한 고유의 ID, 토큰이 기록됐을 때의 타임스탬프, 보안 컨텍스트를 소유한 사용자의 사용자 ID, 보안 컨텍스트를 소유한 프로세스의 프로세스 ID, 그 위의 로그의 라인 수, 및 OPEN TOKEN 및 CLOSE TOKEN에 포함된 모든 메시지의 해시를 포함한다.
셧다운 토큰(Shutdown Token)은 다음을 포함한다:
Figure pat00005
SHUTDOWN TOKEN은 기록 오디터에 의해 생성된 고유의 ID, 및 셧다운 프로세스가 수행되었을 때의 타임스탬프를 포함하며, 이는 또한 셧다운을 개시한 사용자 ID 및 프로세스 ID를 포함한다.
사용자가 무관한 메시지를 로그에 첨부한 경우(130), 클로징 토큰 2는 상이한 보안 정보, 상이한 PID, UID 등을 나타낸다.
도 5는 바람직한 실시예에 따른 본 발명의 전반적인 흐름도의 토큰 기록 상태도 머신의 세 번째 부분이다. 이 도면은 기록 이벤트가 인터셉트될 때 사용되는 로직과 토큰이 어떻게 기록되는지 도시한다. 프로세스는 로그 파일 보호가 시스템에 의해 식별될 때 시스템 부트 전에 상술한 바와 같이 시작된다. 기록 오디터 컴포넌트는 로그 파일 모니터링을 개시하기 위해 STARTUP TOKEN(500)을 기록하고, 제1 섹션을 시작할 제1 OPEN TOKEN(510)을 포함한다. 기록 이벤트가 인터셉트될 때, 기록 오디터 컴포넌트는 로그 레코드 기록을 허용하거나, 보안 컨텍스트가 변했을 경우, 금방 클로징된 섹션의 보안 컨텍스트를 주목하는 CLOSE TOKEN(550)을 기록함으로써 현재 섹션을 클로징하고, 새로운 OPEN TOKEN(510)을 기록하며 새로운 로그 파일 기록 인터셉션을 기다림으로써(520) 로그 파일에 새로운 섹션을 오프닝한다. 셧다운 이벤트가 수신될 때, 기록 오디터 컴포넌트는 로그 파일이 시스템에 의해 클로징되기 전에 CLOSE TOKEN(530)을 기록하며 SHUTDOWN 토큰을 기록함으로써(540) 현재 섹션을 클로징하고 프로세스는 종료된다. 로그가 새로운 것으로 순환하면 프로세스는 정확하게 똑같으며, CLOSE TOKEN(530)은 마지막 파일 기록 동작을 마킹하고 OPEN TOKEN(510)은 새로운 로그 파일의 시작을 마킹한다.
기재된 바와 같이 보안 TOKEN으로 식별되며 발생할 수 있는 다양한 유형의 시스템 로그 파일 변경이 있다: 첫 번째 경우는 사용자 또는 프로세스가 파일 시스템 상에서 모니터되는 동안 로그 파일의 끝에 컨텐츠를 추가하며 파일을 변경할 때이며, 이 경우에 보안 컨텍스트 변경은 기록하고 있는 사용자 또는 프로세스가 상이함을 보여주는 OPEN TOKEN(510) 및 CLOSE TOKEN(550)으로 마킹될 것이다. 두 번 째 경우는 로그 파일에 기존의 로그 라인을 삽입하거나 변경하도록 로그 파일을 편집하는 사용자이며, 이 경우에 파일이 편집을 위해 오프닝되어 있을 때 기록 오디터는 파일시스템 동작을 인터셉트하고, 사용자가 변경된 로그 파일을 보관할 때, 보관될 것은 이전의(old) 로그 파일이다. 이러한 보관은 편집된 전체 부분에 대한 보안 컨텍스트의 변경으로서 마킹된 보관된 로그 파일의 범위를 완전하게 정하는 새로운 OPEN TOKEN(510) 및 CLOSE TOKEN(550)을 이용한 편집이 시작되기 전에 행해질 것이며, 이러한 마킹된 변경은 그 위의 OPEN(510) 및 CLOSE(550) 섹션에서의 로그 엔트리들과의 비교에 의해 변경된 모든 섹션의 식별을 가능하게 하고, 또한 어느 프로세스/사용자가 로그 파일에 기록했거나 그것을 편집하였는지 확인하는 것을 가능하게 한다. 발생할 수 있는 마지막 변경으로는, 로그 파일이 보안된 파일시스템 외에서 변경되는 것이며, 이 경우에 보안 검증 컴포넌트는 CLOSE TOKEN(550)에서의 해시의 불일치로 인해 변경된 섹션을 식별할 것이다.
110: 로그 파일
115: 기록 오디터 컴포넌트
125: 파일 시스템
130: 보안 검증 컴포넌트

Claims (10)

  1. 시스템 로그(Log) 파일 데이터의 무결성(integrity)을 관리하는 방법에 있어서,
    시스템 부트(system boot) 시에, 운영 체제의 커널에서의 훅(hook)이 적어도 하나의 로그 파일에 대해 파일 시스템에 의한 기록(write) 동작의 인터셉션(interception)을 허용하는 하나 이상의 로그 파일을 정의하고;
    상기 로그 파일의 각각의 로그 파일에 대한 기록 이벤트의 각 인터셉션시,
    기록될 로그 파일 레코드로부터 상기 로그 파일 레코드를 생성한 프로세스 또는 사용자 식별자를 포함하는 기록 동작의 컨텍스트(context)를 추출하고;
    이전의 인터셉션에서 추출된 컨텍스트와 비교하고, 컨텍스트가 변경되었다면, 기록될 로그 파일 레코드의 기록 동작을 허용하기 전에 상기 로그 파일에 추가 정보 - 상기 추가 정보는 현재 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알려줌 - 를 기록하는 것을 포함하는 시스템 로그 파일 데이터의 무결성 관리 방법.
  2. 청구항 1에 있어서, 상기 추출하는 단계 후에, 다음 인터셉션에서 상기 비교하는 단계의 실행을 위해, 추출된 컨텍스트를 저장하는 것을 더 포함하는 시스템 로그 파일 데이터의 무결성 관리 방법.
  3. 청구항 1 또는 청구항 2에 있어서, 로그 파일의 끝 또는 시스템 셧다운(shutdown)의 검출시, 현재 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알리는 추가 정보를 로그 파일에 기록하는 것을 더 포함하는 시스템 로그 파일 데이터의 무결성 관리 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 상기 추가 정보를 기록하는 단계는 이전의 인터셉션의 컨텍스트를 기록하는 것을 포함하는 것인 시스템 로그 파일 데이터의 무결성 관리 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 상기 추가 정보를 기록하는 단계는 로그 파일에 기록하는 일을 담당하는 사용자 또는 프로세스와 인터셉션의 시간을 포함하는 추가 정보를 기록하는 것을 포함하는 것인 시스템 로그 파일 데이터의 무결성 관리 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 각각의 로그 파일에서 기록 인터셉션의 로그 파일의 컨텍스트에서의 변경을 알리는 추가 정보를 판독하고, 악성 기록(malicious writing)이었는지 결정하도록 상기 추가 정보 앞의 적어도 하나의 로그 파일 레코드를 판독하고;
    로그 파일의 악성 기록 동작을 지적하는 출력을 생성하는 것을 더 포함하는 시스템 로그 파일 데이터의 무결성 관리 방법.
  7. 청구항 6에 있어서, 상기 악성 기록은 사용자 또는 프로세스에 로그 레코드를 기록할 권한이 부여되지 않은 경우인 것인 시스템 로그 파일 데이터의 무결성 관리 방법.
  8. 컴퓨터 프로그램 제품에 있어서,
    프로그램이 컴퓨터 상에서 실행될 때 청구항 1 내지 청구항 7 중 어느 한 항에 따른 방법의 단계들을 실행하기 위한 프로그래밍 코드 명령어들을 포함하는 컴퓨터 프로그램 제품.
  9. 시스템 로그 파일 데이터의 무결성을 관리하는 시스템에 있어서,
    운영 체제의 커널에서의 훅을 사용하여 적어도 하나의 로그 파일에 대한 파일 시스템의 기록 동작을 인터셉트하는 제1 컴포넌트를 포함하고,
    상기 제1 컴포넌트는, 기록 동작의 각 인터셉션시, 기록될 로그 파일 레코드의 컨텍스트가 변경되었는지 분석하고 이 변경을 알리는 추가 정보를 파일에 기록하도록 적응된 것인 시스템.
  10. 청구항 9에 있어서,
    로그 파일을 판독하고 로그 파일 레코드 및 상기 제1 컴포넌트에 의해 기록된 컨텍스트의 변경을 알리는 추가 정보를 분석하여 컨텍스트의 변경 후에 기록된 로그 파일 레코드가 악성인지 여부를 인지하여 알리는 제2 컴포넌트를 더 포함하는 시스템.
KR1020100121293A 2009-12-01 2010-12-01 실시간 시스템 로그 무결성 보호를 위한 방법 및 시스템 KR20110061503A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09177570.0 2009-12-01
EP09177570 2009-12-01

Publications (1)

Publication Number Publication Date
KR20110061503A true KR20110061503A (ko) 2011-06-09

Family

ID=44069601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100121293A KR20110061503A (ko) 2009-12-01 2010-12-01 실시간 시스템 로그 무결성 보호를 위한 방법 및 시스템

Country Status (2)

Country Link
US (1) US8572050B2 (ko)
KR (1) KR20110061503A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170110796A (ko) * 2016-03-24 2017-10-12 동국대학교 산학협력단 병렬 처리 기법을 이용한 사물인터넷 데이터 기반 프로세스 이상 현상 진단 방법 및 그 장치
KR20210143459A (ko) * 2020-05-20 2021-11-29 주식회사 소테리아 로그 무결성 검사 및 이를 통한 로그 위변조 행위 증빙 시스템 및 그 방법
WO2024097232A1 (en) * 2022-10-31 2024-05-10 Bitdrift, Inc. Systems and methods for providing a timeline view of log information for a client application

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856086B2 (en) 2012-08-24 2014-10-07 International Business Machines Corporation Ensuring integrity of security event log upon download and delete
US9589146B2 (en) * 2014-04-22 2017-03-07 International Business Machines Corporation Method and system for hiding sensitive data in log files
US9922069B2 (en) 2015-03-16 2018-03-20 International Business Machines Corporation Establishing a chain of trust in a system log
US9825763B2 (en) * 2015-11-16 2017-11-21 Bank Of America Corporation Systems for automated forensic data capture
CN105956467A (zh) * 2016-04-21 2016-09-21 北京金山安全软件有限公司 一种系统时间的设置方法、装置及电子设备
CN107493299A (zh) * 2017-09-20 2017-12-19 杭州安恒信息技术有限公司 一种基于三层架构的用户行为溯源方法
CN109840190A (zh) * 2018-12-28 2019-06-04 深圳竹云科技有限公司 一种基于sessionid进行用户操作流程完整性风险分析的方法
CN111182066A (zh) * 2019-12-31 2020-05-19 青梧桐有限责任公司 基于token认证的日志级别动态调整方法
CN112231176B (zh) * 2020-10-14 2023-03-03 天津津航计算技术研究所 一种简便的VxWorks操作系统系统日志记录方法
CN112783743B (zh) * 2021-01-26 2023-04-28 深圳融安网络科技有限公司 日志生成方法、终端设备及存储介质
CN114567503A (zh) * 2022-03-04 2022-05-31 南京联成科技发展股份有限公司 一种集中管控的可信的数据采集的加密方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236992A1 (en) * 2002-06-19 2003-12-25 Sameer Yami Method and system for providing secure logging for intrusion detection
US7437763B2 (en) * 2003-06-05 2008-10-14 Microsoft Corporation In-context security advisor in a computing environment
US20050015767A1 (en) * 2003-07-01 2005-01-20 Brian Nash Operating system configuration tool
US8321667B2 (en) * 2007-02-28 2012-11-27 Microsoft Corporation Security model for common multiplexed transactional logs
US8595834B2 (en) * 2008-02-04 2013-11-26 Samsung Electronics Co., Ltd Detecting unauthorized use of computing devices based on behavioral patterns

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170110796A (ko) * 2016-03-24 2017-10-12 동국대학교 산학협력단 병렬 처리 기법을 이용한 사물인터넷 데이터 기반 프로세스 이상 현상 진단 방법 및 그 장치
KR20210143459A (ko) * 2020-05-20 2021-11-29 주식회사 소테리아 로그 무결성 검사 및 이를 통한 로그 위변조 행위 증빙 시스템 및 그 방법
WO2024097232A1 (en) * 2022-10-31 2024-05-10 Bitdrift, Inc. Systems and methods for providing a timeline view of log information for a client application

Also Published As

Publication number Publication date
US8572050B2 (en) 2013-10-29
US20110131188A1 (en) 2011-06-02

Similar Documents

Publication Publication Date Title
US8572050B2 (en) Method and system for real time system log integrity protection
Kolodenker et al. Paybreak: Defense against cryptographic ransomware
EP2897051B1 (en) Verifiable audit log
Holt et al. Logcrypt: forward security and public verification for secure audit logs
Bellare et al. Forward integrity for secure audit logs
US8122256B2 (en) Secure bytecode instrumentation facility
WO2016186975A1 (en) Detection of sql injection attacks
US20030236992A1 (en) Method and system for providing secure logging for intrusion detection
Zhang et al. Blockchain-based secure data provenance for cloud storage
CN101482887A (zh) 数据库关键数据的防篡改检验方法
US20070294205A1 (en) Method and apparatus for detecting data tampering within a database
Axelsson et al. An approach to UNIX security logging
CN112217835A (zh) 报文数据的处理方法、装置、服务器和终端设备
CN113569266B (zh) 一种基于芯片层级隐私计算的主机远程监控方法
KR102013415B1 (ko) 개인정보 접속기록 무결성 검증시스템 및 검증방법
CN116415300A (zh) 基于eBPF的文件保护方法、装置、设备和介质
Rajba et al. Data hiding using code obfuscation
US20080155690A1 (en) System and Method for Authenticating and Validating the Linkage Between Input Files and Output Files in a Computational Process
JP4765262B2 (ja) 電子データ保管装置、プログラム
Bajramovic et al. LAVA: Log authentication and verification algorithm
FEIN LAVA: Log Authentication and Verification Algorithm
JP3450849B1 (ja) パトロール装置及びパトロール方法
CN109245895B (zh) 用于检测受损数据的系统和方法
Smorti Analysis and improvement of ransomware detection techniques
Bajramovic et al. Department Informatik

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid