KR101621959B1 - 로그패턴추출장치, 로그패턴분석장치 및 그 방법 - Google Patents
로그패턴추출장치, 로그패턴분석장치 및 그 방법 Download PDFInfo
- Publication number
- KR101621959B1 KR101621959B1 KR1020150185108A KR20150185108A KR101621959B1 KR 101621959 B1 KR101621959 B1 KR 101621959B1 KR 1020150185108 A KR1020150185108 A KR 1020150185108A KR 20150185108 A KR20150185108 A KR 20150185108A KR 101621959 B1 KR101621959 B1 KR 101621959B1
- Authority
- KR
- South Korea
- Prior art keywords
- character string
- pattern
- character
- representative
- strings
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G06F17/271—
-
- G06F17/277—
-
- G06F17/30144—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 일 실시 예는 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로 상기 정보가 처리된 시간대별로 대응되는 문자열을 생성하는 문자열생성부; 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 대표문자열로 치환하는 대표문자열치환부; 및 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출하는 문자열패턴추출부;를 포함하는 로그패턴추출장치를 개시한다.
Description
본 발명은 로그패턴추출장치, 로그패턴분석장치 및 그 방법에 관한 것으로서, 보다 상세하게는, 시스템에서 발생하는 대량의 로그로부터 자동으로 분석하기 용이한 패턴을 추출하고, 그 패턴을 분석하는 로그패턴추출장치, 로그패턴분석장치 및 그 방법에 관한 것이다.
사회가 복잡다단해짐에 따라 매일 대량의 정보가 디지털화되어 쏟아져 나오고 있고, 그 수많은 정보들 중에서 쓸모있는 정보를 구분하기 위한 노력의 일환으로서, 정보기술 시스템(이하, IT 시스템)의 복잡도 또한 기하급수적으로 증가하고 있다.
IT 시스템의 관리자는 IT 시스템이 정상적으로 동작하는 것을 파악하기 위해 다양한 방법을 사용하며, 그 다양한 방법 중 가장 통상적인 방법은 IT 시스템의 로그(log)를 수집하고 분석하는 것이다. 로그는 IT 시스템을 통해 발생하는 모든 데이터의 처리를 시계열적으로 간략하게 기록한 문서로서, IT 시스템의 관리자는 로그를 보고 IT 시스템이 정상적으로 동작하고 있는지 파악할 수 있다.
다만, IT 시스템 자체의 규모가 커짐에 따라, IT 시스템의 로그에 포함되는정보량도 엄청나게 증가하게 되어, 관리자가 일일이 로그를 읽어가면서 IT 시스템의 이상동작을 발견하기가 어려워졌다. 대규모 IT 시스템에서 사람이 통상적으로 인지하는 기능에 따라 동작할 때, 복수의 정보가 여러 개의 모듈을 통과해나가면서 복합적으로 그 기능을 구현하게 되며, 로그에 IT 시스템에 속한 하위 시스템들이 각각 병렬적으로 분산 처리하는 과정이 모두 기록되는 특성상, 로그에 기록된 내용을 관리자가 효율적으로 파악하는 것이 사실상 불가능해지고 있다.
위와 같은 문제를 해결하기 위해, 관리자가 로그의 내용을 파악하는 것이 용이하도록, 패턴을 정의하고, 로그에 기록된 내용을 다수의 패턴에 대응시켜 간단한 정보로 변경하는 방식이 있다.
통상적으로 알려진 패턴 정의 및 적용 방식으로는, 미리 정해진 키워드 자체를 패턴으로 지정하여, 로그에 기록된 내용에 패턴이 있는지 여부를 파악하거나, 정규표현식(Regular Expression)을 이용하여 패턴을 지정하는 방식이 있다.
다만, 종래의 방식은 로그에 기록된 내용 중 기존에 잘 알려진 패턴에 대해서만 잘 동작하고, 복잡한 IT 시스템에 의해 계속 새로 발생하는 유형의 애플리케이션에 따라 로그에 기록되는 내용에 대해서는 종래 방식에 따른 패턴화가 잘 적용되지 않아서 IT 시스템에 발생한 이상동작이나 주목해야 할 동작을 놓치는 일이 많아지는 한계점이 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 정보처리시스템의 로그에 포함되어 있는 정보를 일일이 사람이 분석할 필요없이, 로그에 기록되어 있는 정보를 대표할 수 있는 패턴을 추출하고, 그 추출한 패턴으로부터 정보처리시스템의 이상동작을 파악할 수 있는 로그패턴추출장치, 로그패턴분석장치 및 그 방법을 제공하는 데에 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 로그패턴추출장치는, 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로 상기 정보가 처리된 시간대별로 대응되는 문자열을 생성하는 문자열생성부;상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 대표문자열로 치환하는 대표문자열치환부; 및 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출하는 문자열패턴추출부;를 포함한다.
상기 로그패턴추출장치에 있어서, 상기 문자열생성부는, 상기 정보처리시스템이 시간대별로 처리한 정보를 기설정된 치환기준을 통해 문자치환을 하여 문자간에 공백이 없는 문자열을 생성하는 것을 특징으로 할 수 있다.
상기 로그패턴추출장치에 있어서, 상기 정보처리시스템이 시간대별로 처리한 정보는, 언어의 음을 표기하는 데에 사용되는 철자(alphabet), 시간이나 순서를 표기하는 데에 사용되는 숫자, 상기 철자와 숫자를 제외한 특수문자로 표현되고, 상기 기설정된 치환기준은, 상기 철자가 연속되는 철자열은 상기 철자열의 첫 철자로 치환하고, 상기 숫자가 연속되는 숫자열은 미리 설정된 대표숫자로 치환하고, 상기 특수문자는 미리 설정된 대표특수문자로 치환하는 것을 특징으로 할 수 있다.
상기 로그패턴추출장치에 있어서, 상기 기설정된 유사기준은, 문자열을 구성하는 문자와 상기 문자열에서 상기 문자가 위치한 순서인 것을 특징으로 할 수 있다.
상기 로그패턴추출장치에 있어서, 상기 기설정된 유사기준은, 서로 다른 두 문자열을 비교하는 데에 있어서, 상기 두 문자열의 길이, 상기 두 문자열을 구성하는 문자, 및 상기 두 문자열을 구성하는 문자의 순서가 다른 정도에 비례하여 달라지는 거리값인 것을 특징으로 할 수 있다.
상기 로그패턴추출장치에 있어서, 상기 거리값은, 편집 거리(Edit Distance) 및 레벤스타인 거리(Levenstein Distance) 산출방식 중 어느 하나의 산출방식을 통해서 산출된 값인 것을 특징으로 할 수 있다.
상기의 기술적 과제를 하기 위한 본 발명의 다른 일 실시 예에 따른 로그패턴분석장치는, 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 상기 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성하는 문자열생성부; 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환하는 대표문자열치환부; 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 산출하는 문자열패턴추출부; 및 상기 산출된 문자열패턴을 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 이상동작파악부;를 포함한다.
상기 로그패턴분석장치에 있어서, 상기 이상동작파악부는, 상기 산출된 문자열패턴이 상기 시스템로그에서 기설정된 시간동안 출현한 비교패턴출현빈도를 산출하고, 상기 기설정된 시간동안 정상문자열패턴이 출현한 정상패턴출현빈도를 산출한 후, 상기 산출된 비교패턴출현빈도와 상기 산출된 정상패턴출현빈도를 비교한 결과를 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 것을 특징으로 할 수 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 또 다른 일 실시 예에 따른 로그패턴추출방법은, 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로 상기 정보가 처리된 시간대별로 대응되는 문자열을 생성하는 문자열생성단계; 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 대표문자열로 치환하는 대표문자열치환단계; 및 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출하는 문자열패턴추출단계;를 포함한다.
상기 로그패턴추출방법에 있어서, 상기 문자열생성단계는, 상기 정보처리시스템이 시간대별로 처리한 정보를 기설정된 치환기준을 통해 문자치환을 하여 문자간에 공백이 없는 문자열을 생성하는 것을 특징으로 할 수 있다.
상기 로그패턴추출방법에 있어서, 상기 정보처리시스템이 시간대별로 처리한 정보는, 언어의 음을 표기하는 데에 사용되는 철자(alphabet), 시간이나 순서를 표기하는 데에 사용되는 숫자, 상기 철자와 숫자를 제외한 특수문자로 표현되고, 상기 기설정된 치환기준은, 상기 철자가 연속되는 철자열은 상기 철자열의 첫 철자로 치환하고, 상기 숫자가 연속되는 숫자열은 미리 설정된 대표숫자로 치환하고, 상기 특수문자는 미리 설정된 대표특수문자로 치환하는 것을 특징으로 할 수 있다.
상기 로그패턴추출방법에 있어서, 상기 기설정된 유사기준은, 문자열을 구성하는 문자와 상기 문자열에서 상기 문자가 위치한 순서인 것을 특징으로 할 수 있다.
상기 로그패턴추출방법에 있어서, 상기 기설정된 유사기준은, 서로 다른 두 문자열을 비교하는 데에 있어서, 상기 두 문자열의 길이, 상기 두 문자열을 구성하는 문자, 및 상기 두 문자열을 문자의 순서가 다른 정도에 비례하여 달라지는 거리값인 것을 특징으로 할 수 있다.
상기 로그패턴추출방법에 있어서, 상기 거리값은, 편집 거리(Edit Distance) 및 레벤스타인 거리(Levenstein Distance) 산출방식 중 어느 하나의 산출방식을 통해서 산출된 값인 것을 특징으로 할 수 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 또 다른 선택적 실시 예에 따른 로그패턴분석방법은, 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 상기 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성하는 문자열생성단계; 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환하는 대표문자열치환단계; 및 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 산출하는 문자열패턴추출단계; 상기 산출된 문자열패턴을 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 이상동작파악단계;를 포함한다.
상기 로그패턴분석방법에 있어서, 상기 이상동작파악단계는, 상기 산출된 문자열패턴이 상기 시스템로그에서 기설정된 시간동안 출현한 비교패턴출현빈도를 산출하고, 상기 기설정된 시간동안 정상문자열패턴이 출현한 정상패턴출현빈도를 산출한 후, 상기 산출된 비교패턴출현빈도와 상기 산출된 정상패턴출현빈도를 비교한 결과를 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 것을 특징으로 할 수 있다.
본 발명은 상기의 기술적 과제를 해결하기 위해 로그패턴추출방법 및 로그패턴분석방법을 실행시키기 위한 프로그램을 저장하고 있는 컴퓨터 판독가능한 기록매체를 제공할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.
본 발명은 정보처리시스템의 시스템로그에 기록된 정보를 관리자의 분석을 거치지 않고, 자동으로 패턴처리한 후, 그 패턴이 정상적으로 동작하고 있던 때에 생성된 패턴과 얼마나 차이가 있는지를 기초로 하여 정보처리시스템의 이상동작을 판단할 수 있게 되므로, 관리자가 시스템로그를 분석하는 시간을 절약할 수 있다.
또한, 정보처리시스템에 신규 애플리케이션이 설치된 이후에도 새로운 방식으로 기록되는 시스템로그를 분석하는 방법을 관리자가 별도로 숙지할 필요없이 정보처리시스템이 정상적으로 동작했던 시기의 시스템로그를 기초로 한 패턴을 현재의 시스템로그를 기초로 한 패턴과 비교하는 것만으로 간단히 정보처리시스템의 이상동작을 하고 있는지 여부를 파악할 수 있게 되어, 정보처리시스템의 유지 및 보수에 있어서 높은 효율성 증대를 기대할 수 있다.
도 1은 본 발명에 따른 정보처리시스템의 로그패턴을 분석하기 위한 전체 시스템을 개략적인 구성을 도시한 도면이다.
도 2는 본 발명에 따른 로그패턴분석장치의 일 예의 블록도를 도시한 도면이다.
도 3은 이상동작파악부의 일 예의 블록도를 도시한 도면이다.
도 4는 시스템로그에 시간대별로 기록된 정보가 문자열패턴으로 추출되는 과정을 도식적으로 나타낸 도면이다.
도 5는 본 발명에 따른 로그패턴추출방법의 일 예의 흐름도를 도시한 도면이다.
도 6은 본 발명에 따른 로그패턴분석방법의 일 예의 흐름도를 도시한 도면이다.
도 7은 이상동작파악부가 문자열패턴추출부가 산출한 문자열패턴이 이상패턴인지 여부를 판단하는 과정에 대한 흐름도를 도시한 도면이다.
도 8은 대표문자열치환부가 유사허용도를 기초로 서로 유사하다고 파악된 문자열들을 대표문자열을 치환하는 과정을 도식적으로 나타낸 도면이다.
도 2는 본 발명에 따른 로그패턴분석장치의 일 예의 블록도를 도시한 도면이다.
도 3은 이상동작파악부의 일 예의 블록도를 도시한 도면이다.
도 4는 시스템로그에 시간대별로 기록된 정보가 문자열패턴으로 추출되는 과정을 도식적으로 나타낸 도면이다.
도 5는 본 발명에 따른 로그패턴추출방법의 일 예의 흐름도를 도시한 도면이다.
도 6은 본 발명에 따른 로그패턴분석방법의 일 예의 흐름도를 도시한 도면이다.
도 7은 이상동작파악부가 문자열패턴추출부가 산출한 문자열패턴이 이상패턴인지 여부를 판단하는 과정에 대한 흐름도를 도시한 도면이다.
도 8은 대표문자열치환부가 유사허용도를 기초로 서로 유사하다고 파악된 문자열들을 대표문자열을 치환하는 과정을 도식적으로 나타낸 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시 예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시 예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 실시 예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
어떤 실시 예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
도 1은 본 발명에 따른 정보처리시스템의 로그패턴을 추출 및 분석하기 위한 전체 시스템을 개략적인 구성을 도시한 도면이다.
도 1을 참조하면, 로그패턴분석장치(140)는 정보처리시스템(110)과 유무선 통신망(120)을 통해서 연결되고, 휴대용저장장치(130)와 전기적으로 연결될 수 있다는 것을 알 수 있다.
정보처리시스템(110)은 유무선 통신망을 통해 그 정보처리시스템(110)으로 흘러들어오는 각종 정보를, 각 정보의 특성에 맞춰서 처리하고 저장하는 시스템을 의미하며, 예를 들어, 기업이나 개인이 운영하는 서버(Server) 등이 있다. 정보처리시스템(110)은 정보처리시스템(110)이 처리하는 모든 정보처리내용을 로그에 기록하며, 로그에는 정보처리시스템(110)이 처리한 정보가 시간대별로 나뉘어 기록된다.
로그에 기록되는 정보처리시스템(110)이 처리한 시간대별 정보의 예로서, 그 정보처리시스템(110)에 접속할 수 있는 권한이 있는 A가 정보처리시스템(110)에 로그인하고, 그 정보처리시스템(110)에 저장된 특정 파일을 열람한 후, 로그아웃을 했다면, 정보처리시스템(110)의 로그에는 A가 로그인하고, 특정 파일을 열람한 뒤에 로그아웃하였다는 정보가 저장될 수 있다.
전술한 예에서, 로그에 기록되는 'A가 로그인을 했다는 정보'는 A가 로그인을 하는 경우에 정보처리시스템(110)이 처리해야 하는 다수의 데이터의 흐름에 대해서 상세히 기록한 내용일 수도 있으며, 이는 로그에 정보를 얼마나 세세하게 기록할지 정보처리시스템(110)의 관리자가 미리 설정해놓은 옵션에 따라 달라질 수 있다.
정보처리시스템(110)과 로그패턴분석장치(140) 사이의 통신망(120)은 일반 전화망, 데이터망, 이동통신망 등 각종 유무선 통신망을 포함하며, 정보처리시스템(110)의 로그는 정보처리시스템(110)과 로그패턴분석장치(140) 사이의 통신망(120)을 통해 로그패턴분석장치(140)에 전송될 수 있다.
휴대용저장장치(130)는 정보처리시스템(110)의 로그를 저장하고 있는 저장장치로서, 정보처리시스템(110)에 접속하여 정보처리시스템(110)의 로그를 내려받을 수 있는 컴팩트디스크(CD), 범용직렬버스(USB), 하드디스크드라이브(HDD) 등을 모두 포함한다.
정보처리시스템(110)으로부터 로그를 내려받을 수 있는 권한이 있는 자가 로그를 휴대용저장장치(130)에 저장하고, 그 휴대용저장장치(130)를 로그패턴분석장치(140)에 전기적으로 연결하면, 로그패턴분석장치(140)는 정보처리시스템(110)의 로그를 휴대용저장장치(130)로부터 전송받아 그 로그의 패턴을 분석할 수 있다.
휴대용저장장치(130)는 극도로 높은 수준의 보안을 위해서 정보처리시스템(110)과 외부와의 통신이 제한된 경우에, 그 정보처리시스템(110)의 로그를 로그패턴분석장치(140)에 전달하는 매개체의 역할을 수행한다.
로그패턴분석장치(140)는 정보처리시스템(110)로부터 통신망(120)을 통해 로그를 수신하거나, 휴대용저장장치(130)로부터 정보처리시스템(110)의 로그를 수신하여, 그 로그의 패턴을 분석하고, 정보처리시스템(110)의 이상동작을 판별할 수 있다.
여기서, 정보처리시스템(110)의 이상동작이라 함은, 정보처리시스템(110) 자체의 성능저하, 외부로부터 정보처리시스템(110)에 대한 침입, 정보처리시스템(110)을 구성하는 부품의 고장발생 등과 같은 정보처리시스템(110)의 부자연스러운 동작을 의미한다.
실시 예에 따라, 로그패턴분석장치(140)에 연결되는 정보처리시스템(110)은 복수일 수도 있다. 또한, 실시 예에 따라, 로그패턴분석장치(140)는 로그의 패턴만을 정의하고, 로그의 패턴에 대한 분석은 정보처리시스템(110)의 관리자에 수행될 수도 있다. 이 경우, 로그패턴분석장치(140)는 로그패턴추출장치로서 동작한다.
도 2는 본 발명에 따른 로그패턴분석장치의 일 예의 블록도를 도시한 도면이다.
도 2를 참조하면, 본 발명에 따른 로그패턴분석장치(200)는 문자열생성부(210), 대표문자열치환부(230), 문자열패턴추출부(250) 및 이상동작파악부(270)를 포함한다. 본 발명에 따른 로그패턴분석장치(200)는, 적어도 하나 이상의 프로세서(processor)에 해당하거나, 적어도 하나 이상의 프로세서를 포함할 수 있다. 이에 따라, 로그패턴분석장치(200)는 마이크로 프로세서나 범용 컴퓨터 시스템과 같은 다른 하드웨어 장치에 포함된 형태로 구동될 수 있다.
문자열생성부(210)는 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성한다.
먼저, 문자열생성부(210)는 정보처리시스템으로부터 시스템로그를 수신한다. 문자열생성부(210)는 도 1에서 설명한 것과 같이 정보처리시스템으로부터 유무선 통신망을 통해 시스템로그를 수신하거나, 로그패턴분석장치(200)에 전기적으로 연결된 휴대용저장장치를 통해 시스템로그를 수신할 수 있다.
시스템로그에는 정보처리시스템이 처리하는 정보가 시간별대로 기록되어 있다. 예를 들면, 시스템로그에는 오후 5시에 정보처리시스템에 접속할 권한이 있는 A가 로그인하였다가 오후 5시 20분에 A가 정보처리시스템에서 로그아웃한 사실이 기록되어 있다.
선택적 실시 예로서, 시스템로그에 기록되는 내용은 통상적으로 사람이 인지하는 하나의 기능을 정보처리시스템이 수행하기 위해서, 정보처리시스템내에서 처리되는 상세한 데이터흐름일 수도 있다.
전술한 예를 다시 설명하면, 오후 5시에 정보처리시스템에 A의 로그인정보가 수신되고, 오후 5시 1분에 정보처리시스템이 A의 로그인정보를 데이터베이스에 저장된 인증용정보들과 비교하고, 오후 5시 2분에 정보처리시스템이 A의 로그인정보에 상응하는 인증용정보의 탐색에 성공하고, 오후 5시 3분에 정보처리시스템에 대한 A의 로그인을 승인하는 메시지를 정보처리시스템이 출력하였다는 것이 로그에 시간대별로 순차적으로 기록되어 있을 수 있다.
문자열생성부(210)는 시스템로그를 수신한 후, 시스템로그에 기록된 내용을 기초로 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성한다. 문자열생성부(210)에 의해 생성되는 문자열은 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되므로, 결국, 정보처리시스템이 정보를 처리한 시간대별로 문자열이 하나씩 생성된다.
이하에서는 '정보처리시스템이 시간대별로 처리한 정보'는 '시간대별처리정보'로 호칭하기로 한다.
전술한 예에 따르면, 문자열생성부(210)는 오후 5시에 A가 정보처리시스템에 로그인했다는 정보에 대응되는 문자열과, 오후 5시 20분에 A가 정보처리시스템에서 로그아웃했다는 정보에 대응되는 문자열을 생성하게 된다.
선택적 실시 예로서, 문자열생성부(210)는 시간대별처리정보를 기설정된 치환기준을 통해 문자치환을 하여, 문자간에 공백이 없는 문자열을 생성할 수도 있다. 여기서, 기설정된 치환기준은 문자 및 공백으로 표현되는 시간대별처리정보를 구성하는 문자나 문자열의 일부를 다른 문자로 치환하는 기준을 의미하며, 미리 다양한 방식으로 설정될 수 있다.
통상적으로 시스템로그에는 정보처리시스템 내부의 타이머에 의해 현재의 시간이 찍히고 난 뒤, 그 시간에 처리된 정보에 대한 내용이 기록된다. 이런 로그기록방식은 그동안 정보처리시스템의 관리자가 시스템로그를 읽고 정보처리시스템에 대한 정비계획을 수립하기에는 용이했으나(인간친화적), 시간대별로 처리된 정보를 간결하게 나타낼 수 없는 한계가 있었다.
특히, 정보처리시스템이 복잡해질수록 시스템로그의 분량은 기하급수적으로 증가하는데, 이 많은 양의 시스템로그를 관리자가 직접 읽으면서 정보처리시스템의 이상을 파악하는 것은 불가능에 가까우며, 위와 같은 방식에 따라 기록된 시스템로그만으로는 로그에 기록된 정보를 압축시키기 어렵다.
본 선택적 실시 예에서, 문자열생성부(210)는 시간대별처리정보를 문자간에 공백이 없는 문자열로 변환한다. 즉, 본 선택적 실시 예에 따르면, 문자열생성부(210)는 시간대별로 정보처리시스템이 어떤 동작을 수행했는지에 대한 정보를 시간대마다 대응되는 하나의 데이터(문자열)로 변환함으로써, 로그에 기록된 내용을 압축적으로 표현할 수 있게 하고, 후술하는 것과 같이 문자열에 대한 패턴추출이 가능하도록 한다.
대표문자열치환부(230)는 문자열생성부(210)가 생성한 복수의 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 그 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환한다.
먼저, 문자열생성부(210)가 생성한 문자열은 시스템로그에 기록된 시간대별로 생성되므로, 시스템로그에 기록된 시간대가 두 개 이상일 경우는 복수가 된다.
또한, 기설정된 유사기준이란, 문자열생성부(210)가 생성한 복수의 문자열들 중에서 서로 유사한 문자열들이 있는지를 파악하기 위한 기준이며, 다양한 방식이 될 수 있다.
선택적 실시 예로서, 기설정된 유사기준은 각각의 문자열을 구성하는 문자와 그 문자열에서 각 문자가 위치한 순서일 수 있다. 기설정된 유사기준이 각각의 문자열을 구성하는 문자와 그 문자열에서 각 문자가 위치한 순서일 경우, 대표문자열치환부(230)는 서로 다른 시간대에 기록된 정보에 대한 두 문자열이 있을 때, 두 문자열을 구성하는 문자 중 서로 같은 문자가 많을수록, 두 문자열이 서로 더 유사하다고 파악한다.
이와 유사한 논리로, 대표문자열치환부(230)는 서로 다른 시간대에 기록된 정보에 대한 두 문자열이 있고, 두 문자열을 구성하는 문자가 같을 때, 두 문자열을 구성하는 문자들이 위치한 순서가 같을수록, 두 문자열이 서로 더 유사하다고 파악하게 된다.
다른 선택적 실시 예로서, 기설정된 유사기준은 서로 다른 두 문자열을 비교하는 데에 있어서, 두 문자열의 길이, 두 문자열을 구성하는 문자, 두 문자열을 구성하는 문자의 순서가 다른 정도에 비례하여 달라지는 거리값일 수도 있다.
본 선택적 실시 예에 따르면, 대표문자열치환부(230)는 서로 다른 문자열이 유사한지를 파악하기 위해서 두 문자열을 기초로 산출한 거리값을 이용한다. 거리값은 비교대상이 되는 두 문자열이 서로 유사할수록 커지거나, 반대로 작아지는 특성을 갖는 값이다.
대표문자열치환부(230)는 두 문자열 간의 거리값을 산출하기 위해서 편집거리 알고리즘(Edit Distance Algorithm) 또는 레벤스타인 알고리즘(Levenstein Algorithm)을 이용할 수 있다.
먼저, 편집 알고리즘은 두 문자열을 바꾸는 데에 사용되는 연산의 수를 기초로 거리값을 산출하는 방식이다. 예를 들어, abcdef와 abdcek라는 두 문자열이 있다고 가정하면, abcdef는 c가 삭제되고, 다시 c가 d 뒤에 삽입된 후, f를 k로 교환함으로써 abdcek가 될 수 있으므로, 두 문자열의 거리값은 3이 된다.
레벤스타인 알고리즘은 두 문자열을 구성하는 문자 및 위치를 동시에 고려한 결과를 기초로 거리값을 산출하는 방식이다. 전술한 abcdef, abdcek의 경우, abcdef에서 c, d, f가 위치한 곳에 d, c, k가 옮겨감으로써, abdcek가 되므로, 두 문자열의 거리값은 3이 된다.
본 발명에서 대표문자열치환부(230)는 전술한 편집 알고리즘 또는 레벤스타인 알고리즘 외의 방식으로 거리값을 산출할 수 있으며, 본 발명의 다른 구성을 그대로 포함한다면, 전술한 두 가지 방식과 다른 방식으로 거리값을 산출하더라도 본 발명의 범주를 벗어나지 않는다.
또 다른 선택적 실시 예로서, 대표문자열치환부(230)는 문자열생성부(210)가 생성한 문자열들을 두 개씩 묶어서 비교하여, 미리 설정된 유사허용도를 초과하지 않는 문자열들을 하나의 대표문자열로 치환할 수도 있다. 여기서, 유사허용도는 미리 설정된 값으로서, 두 문자열이 서로 동일하거나, 동일하지 않더라도 서로 유사하여, 하나의 대표문자열로 치환하기 위해 두 문자열의 거리값과 비교되는 기준값으로 정의된다.
먼저, 대표문자열치환부(230)는 문자열생성부(210)가 생성한 문자열들을 수신하고, 그 문자열에서 루트(root)를 결정한다. 여기서, 루트는 그 루트를 제외한 나머지 문자열들과 비교하기 위해 결정한 문자열로서, 미리 설정된 기준이 없다면 시스템로그에 가장 먼저 기록된 정보에 대한 문자열이 루트가 된다.
이어서, 대표문자열치환부(230)는 루트와 그 루트를 제외한 나머지 문자열 중 하나를 비교하여 거리값을 산출한다. 여기서, 거리값은 다양한 방식으로 산출될 수 있으며, 이하에서는 대표문자열치환부(230)가 레벤스타인 알고리즘으로 거리값을 산출했다고 가정하고 설명하기로 한다.
대표문자열치환부(230)는 루트와 그 루트를 제외한 나머지 문자열 중 하나를 비교하여 산출된 거리값을 유사허용도와 비교하고, 그 거리값이 유사허용도보다 작거나, 그 거리값이 유사허용도와 같으면, 그 거리값에 대한 문자열을 루트에 대한 문자열로 맵핑한다.
반면, 대표문자열치환부(230)는 그 거리값이 유사허용도보다 크면, 루트와 비교된 그 문자열을 제2루트로 결정하고, 그 문자열을 루트에 대한 문자열로 맵핑하지 않는다. 이 다음부터, 대표문자열치환부(230)는 최초 루트뿐만 아니라 제2루트에 대해서도 루트와 제2루트를 제외한 나머지 문자열과 비교를 하게 되며, 유사허용도의 크기에 따라 제2루트 외에도 제3루트, 제4루트 등이 추가로 대표문자열치환부(230)에 의해 결정될 수 있다.
대표문자열치환부(230)는 문자열생성부(210)가 생성한 모든 문자열들에 대해서 위와 같은 비교를 수행한 후, 루트 및 그 루트에 맵핑된 문자열을 서로 유사한 문자열들로 보고, 대표문자열로 치환한다. 이때 치환되는 대표문자열은 미리 설정된 치환기준에 따라 달라질 수 있으며, 통상적으로 문자열들의 집합에 속한 루트가 된다.
도 8은 대표문자열치환부가 유사허용도를 기초로 서로 유사하다고 파악된 문자열들을 대표문자열을 치환하는 과정을 도식적으로 나타낸 도면이다.
도 8을 참조하면, 대표문자열치환부는 문자열생성부가 생성한 문자열의 집합을 유사문자열 트리(tree)를 거쳐서, 대표문자열의 집합으로 치환하는 것을 알 수 있다. 도 8에서 유사허용도 k는 2로 설정되었다고 가정한다.
수학식 1은 도 8에서의 거리값을 구하는 데에 이용되는 수학식을 나타낸다. 전술한대로, 문자열간의 거리값을 산출하는 방식은 여러 가지가 있으며, 대표문자열치환부는 대상문자열과 기준문자열을 입력값으로 받아서 기대값을 산출한다. 도 8을 참조하여 예를 들면, d(aaab, abbb)는 2이고, d(aaab, abba)는 3이라는 것을 알 수 있다.
대표문자열치환부는 문자열집합에서 aaab(820)를 루트로 결정하고, 루트와 aabb(830)와의 거리값을 계산하여 1을 산출한다. 이 거리값은 유사허용도인 2보다 작은 값이므로, aabb(830)은 루트인 aaab(820)에 맵핑된다. 다른 예로서, 루트와 문자열 abab(840)의 거리값도 1이 되며, 루트인 aaab(820)에 aabb(830)가 이미 맵핑되어있으므로, 대표문자열치환부는 abab(840)을 aabb(830)에 걸치게 하는 방식으로 루트에 간접적으로 맵핑한다. 이 과정에서 d(aabb, abab)도 산출된다.
대표문자열치환부는 나머지 문자열(850, 860, 870, 880, 890)에 대해서도 위와 같은 과정을 수행하여 유사문자열트리를 결정한다. 다만, 문자열 abba(880)은 루트와의 거리값이 유사허용도 2를 초과하는 3이 되므로 제2루트가 되며, 문자열 baba(890)도 루트와의 거리값이 3이 되어, 제2루트인 문자열 abba(880)에 맵핑된다.
대표문자열치환부는 문자열집합에 속한 모든 문자열이 포함되도록 유사문자열트리를 결정한 후, 서로 유사하다고 판단된 문자열들을 대표문자열로 치환한다. 이때, 미리 설정된 값이 없으면 루트 및 제2루트가 대표문자열이 될 수 있다.
도 8의 대표문자열집합을 참조하면, 전술한 내용에 따라 루트 및 제2루트였던 aaab(820), abba(880)가 대표문자열이 되어 나머지 문자열들이 각각의 대표문자열로 치환된 것을 알 수 있다.
본 발명에 따르면, 문자열생성부(210)에 의해 문자열로 가공된 시스템로그를, 대표문자열치환부(230)가 다시 한번 대표문자열 치환 방식을 통해 시스템로그의 정보량을 줄임으로써, 후술하는 문자열패턴추출부(250)가 정보처리시스템의 동작을 표현하기 용이한 패턴을 추출할 수 있도록 한다.
다시 도 2로 돌아가서 설명하기로 한다.
문자열패턴추출부(250)는 대표문자열치환부(230)가 치환한 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출한다. 예를 들면, 대표문자열이 aaab, abbb, aaaa, aaaa 로 표현된다면, {aaab, abbb}, {abbb, aaaa}, {aaaa, aaaa}, {aaab, abbb, aaaa, aaaa}은 문자열패턴이 될 수 있으나, {abbb, abbb}은 대표문자열들의 빈도를 기초로 하지 않았고, {aaaa, aaab}은 대표문자열들의 순서를 기초로 하지 않은 결과로서 문자열패턴이 될 수 없다.
먼저, 문자열패턴추출부(250)는 대표문자열들의 순서를 하나씩 파악한다. 이어서, 문자열패턴추출부(250)는 이미 파악한 대표문자열들의 순서를 기초로 자주 출현하는 대표문자열들의 배열방식을 문자열패턴으로 정의한다. 예를 들면, ABBABBABBBBB 라는 대표문자열의 집합이 있고, A, B 각각이 대표문자열이라면, 문자열패턴추출부(250)는 대표문자열의 집합에서 3번 출현한 대표문자열의 소집합 'ABB'를 문자열패턴으로서 추출할 수 있다.
선택적 실시 예로서, 문자열패턴추출부(250)는 대표문자열치환부(230)에 의해 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거한 후, 남은 대표문자열을 미리 설정된 개수씩 묶어서 문자열패턴을 산출할 수 있다.
본 선택적 실시 예는 데이터 시퀀스에 자주 출현하는 데이터를, 그 데이터의 빈도나 확률에 따라서 패턴화하는 엔그램(n-gram)이라는 종래의 기술을 개량한 방법으로서, 데이터 시퀀스내에서 특정 패턴을 구성하는 두 데이터의 집단이 반드시 연달아 인접하여 출현하지 않더라도 중간에 있는 데이터를 건너뛰거나 없는 것으로 보아 연달아 인접하여 출현하여 특정 패턴을 구성한 것으로 간주하는 방법이다.
먼저, 문자열패턴추출부(250)는 대표문자열치환부(230)에 의해 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거한다. 이 때, 제거되는 대표문자열들은 대표문자열들의 순서에 기초하여 일정한 간격을 두고 선택되는 것이 바람직하다. 이어서, 문자열패턴추출부(250)는 제거되고 남은 대표문자열을 미리 설정된 개수씩 묶어서 문자열패턴을 추출한다.
예를 들어,[{ab},{ac},{ab},{dc},{aa},{ab},{ac},{ab},{dc},{ac},{ab},{aa}]와 같은 대표문자열들이 문자열패턴추출부(250)의 패턴추출대상이 되었다고 가정하면, 문자열패턴추출부(250)는 12개의 대표문자열들의 순서를 파악한 후, 3, 6, 9, 12번째 대표문자열을 제거하고 남은 대표문자열들을 2개씩 묶어서 문자열패턴을 추출할 수 있다.
위와 같은 예에서 최종적으로 추출되는 문자열패턴은 [{ab},{ac}],[{dc},{aa}],[{ac},{ab}],[{ac},{ab}]가 되며, 이 패턴을 구성하는 4가지 요소를 알파벳 대문자로 표현하면, ABCC 형태로서, 패턴의 끝부분에 특정 문자열이 반복되는 형태로 이해할 수 있다. 문자열패턴의 추출에 대한 추가적인 설명은 도 4에 대한 설명과 같이 하기로 한다.
이 방법에 따르면, 시스템로그를 구성하는 수많은 정보를 일정한 간격에 따라 제거하고, 남은 정보들도 소정의 개수만큼씩 묶어서 패턴화할 수 있게 되어 정보처리시스템의 관리자 또는 시스템로그패턴분석장치가 시스템로그를 분석하는 데에 있어서, 분석처리량이 현저하게 감소하는 것을 기대할 수 있다. 또한, 위와 같은 방법을 과거에 정보처리시스템이 정상동작할 당시의 시스템로그에 대해서도 미리 적용해서 추출해놓은 정상문자열패턴을 저장해뒀다가 그 정상문자열패턴을 현재의 정보처리시스템에 대한 문자열패턴과 비교하여 이상동작여부를 파악할 수 있다.
이상동작파악부(270)는 문자열패턴추출부(250)가 산출한 문자열패턴을 기초로 정보처리시스템이 이상동작을 하는지 여부를 파악한다. 실시 예에 따라 이상동작파악부(270)는 생략될 수 있다. 즉, 본 발명에 따른 장치는 이상동작파악부(270)가 생략되면 로그패턴추출장치로서 동작하고, 이상동작파악부(270)를 포함하는 경우, 로그패턴분석장치로서 동작하게 된다.
도 3은 이상동작파악부의 일 예의 블록도를 도시한 도면이다.
도 3을 참조하면, 이상동작파악부(300)는 정상패턴저장부(310), 패턴집계부(330) 및 이상동작탐지부(350)를 포함할 수 있다.
정상패턴저장부(310)는 정보처리시스템이 정상적으로 동작하고 있을 때의 시스템로그로부터 추출된 정상문자열패턴을 저장하고 있다. 정상패턴저장부(310)에 저장되어 있는 정상문자열패턴은 전술한 것과 동일한 과정을 거쳐서 추출된다.
패턴집계부(330)는 시스템로그에 정보가 기록된 시간대를 기초로 정상문자열패턴과 문자열패턴추출부가 추출한 문자열패턴을 비교할 시간간격을 결정하고, 그 결정된 시간간격동안 정상문자열패턴 및 문자열패턴추출부가 추출한 문자열패턴의 발생 빈도를 집계한다. 이하에서는, 정상문자열패턴과 비교되는 문자열패턴추출부가 추출한 문자열패턴을 미판별문자열패턴으로 호칭하기로 한다.
먼저, 패턴집계부(330)는 시스템로그에 기록된 정보를 기초로 두 문자열패턴을 비교할 시간간격을 특정 시간간격으로 결정하고, 주기적인 시간 단위마다 시스템로그내에서의 정상문자열패턴의 출현 빈도를 집계하여 출현빈도통계치를 산출한다. 여기서 주기적인 시간단위는 1분, 2분 등이 될 수 있고, 출현빈도통계치에는 패턴이 출현한 횟수의 평균값, 표준편차값이 포함된다.
일 예로서, 패턴집계부(330)는 시스템로그에 기록된 정보를 기초로 두 문자열패턴을 비교할 시간간격을 오전 9시부터 10시로 결정하고, 1분마다 정상문자열패턴이 몇 번 출현했는지 집계하여 정상문자열패턴의 평균값을 산출할 수 있다.
즉, 패턴집계부(330)는 60가지의 정상문자열패턴의 출현빈도값의 합을 60으로 나누어 정상문자열패턴의 출현빈도의 평균값을 구하고, 그 평균값을 기초로 문자열패턴의 출현빈도에 대한 표준편차값을 추가로 산출한다. 이어서, 패턴집계부(330)는 미판별문자열패턴에 대해서도 출현빈도통계치를 전술한 방식을 통해 산출한다.
이상동작탐지부(350)는 패턴집계부(330)로부터 정상문자열패턴과 미판별문자열패턴의 출현빈도통계치를 수신하고, 미판별문자열패턴의 출현빈도통계치가 정상문자열패턴의 출현빈도통계치로부터 기설정된 범위를 초과하는지 파악하여, 그 파악한 결과를 기초로 정보처리시스템이 이상동작을 하는지 여부를 탐지한다.
즉, 미판별문자열패턴의 출현빈도통계치가 정상문자열패턴의 출현빈도통계치로부터 기설정된 범위를 초과하면, 이상동작탐지부(350)는 정보처리시스템이 이상동작을 하고 있다고 판단하고, 그렇지 않으면, 이상동작탐지부(350)는 정보처리시스템이 정상동작을 하고 있다고 판단한다.
여기서, 기설정된 범위는 이상동작탐지부(350)에 미리 설정된 값을 기초로 결정되는 범위로서, 고정된 상수값이거나, 출현빈도통계치의 값에 비례하여 달라지는 변수값일 수 있다. 즉, 이상동작탐지부(350)는 기설정된 범위를 결정하기 위한 정보를 저장하고 있다가 패턴집계부(330)로부터 정상문자열패턴과 미판별문자열패턴의 출현빈도통계치를 수신하고, 그 수신한 값을 기초로 기설정된 범위를 확정한다.
예를 들어, 이상동작탐지부(350)가 패턴집계부(330)로부터 정상문자열패턴의 평균출현빈도인 10과 미판별문자열패턴의 평균출현빈도인 15를 수신했다고 가정한다. 이 가정에서, 이상동작탐지부(350)는 정상문자열패턴의 평균출현빈도인 10에 기설정된 범위인 4를 적용하여, 최종적으로 미판별문자열패턴의 평균출현빈도 15가 정상문자열패턴의 평균출현빈도로부터 기설정된 범위 14(10+4)를 초과하였으므로, 정보처리시스템이 이상동작을 하고 있다고 판단할 수 있다.
다른 예를 들면, 이상동작탐지부(350)가 패턴집계부(330)로부터 정상문자열패턴의 출현빈도통계치(평균값 10, 표준편차값 3)와 미판별문자열패턴의 출현빈도통계치(평균값 20)를 수신했다고 가정한다. 이 가정에서, 이상동작탐지부(350)는 정상문자열패턴의 평균출현빈도인 10에 표준편차값인 3과 상수 3을 곱한 값을 더해서 상한 임계치를 산출할 수 있다. 여기서, 상한 임계치는 19가 되며, 기설정된 범위는 9가 된다. 최종적으로 이상동작탐지부(350)는 미판별문자열패턴의 평균출현빈도 20가 정상문자열패턴의 평균출현빈도로부터 기설정된 범위의 한계인 상한 임계치 19를 초과하였으므로, 정보처리시스템이 이상동작을 하고 있다고 판단할 수 있다.
전술한 과정과 달리, 이상동작탐지부(350)는 평균과 표준편차를 사용한 상한 임계치 외에 같은 시간대의 최대 패턴 출현 수를 상한 임계치로 결정할 수도 있고, 이 경우 이상동작탐지부(350)는 기설정된 범위로서 0을 사용하게 된다.
본 발명은 전술한 것과 같이 정보처리시스템의 시스템로그에 기록된 정보를 관리자의 분석을 거치지 않고, 자동으로 패턴처리한 후, 그 패턴이 정상적으로 동작하고 있던 때에 생성된 패턴과 얼마나 차이가 있는지를 기초로 하여 정보처리시스템의 이상동작을 판단할 수 있게 되므로, 관리자가 시스템로그를 분석하는 시간을 절약할 수 있다.
또한, 정보처리시스템에 신규 애플리케이션이 설치된 이후에도 새로운 방식으로 기록되는 시스템로그를 분석하는 방법을 관리자가 별도로 숙지할 필요없이 정보처리시스템이 정상적으로 동작했던 시기의 시스템로그를 기초로 한 패턴을 현재의 시스템로그를 기초로 한 패턴과 비교하는 것만으로 간단히 정보처리시스템의 이상동작을 하고 있는지 여부를 파악할 수 있게 되어, 정보처리시스템의 유지 및 보수에 있어서 높은 효율성 증대를 기대할 수 있다.
도 4는 시스템로그에 시간대별로 기록된 정보가 문자열패턴으로 추출되는 과정을 도식적으로 나타낸 도면이다.
먼저, 웹 메일시스템의 로그에는 웹 메일 시스템이 시간대별로 처리한 정보가 순차적으로 기록되어 있다. 보다 자세히는, 웹 메일 시스템이 시간대별로 처리한 정보는 언어의 음을 표기하는 데에 사용되는 철자(alphabet), 시간이나 순서를 표기하는 데에 사용되는 숫자, 철자와 숫자를 제외한 특수문자로 표현되며, 이런 표현은 웹 메일 시스템의 관리자가 로그의 내용을 이해하기 쉽게 만드는 점은 장점이지만, 컴퓨터와 같은 자동화장치가 처리하기 힘든 형태의 정보라는 한계가 있다.
본 발명에 따른 로그패턴추출장치에 포함된 문자열생성부는 웹 메일 시스템이 시간대별로 처리한 정보를 기설정된 치환기준을 통해 문자치환을 하여, 문자간에 공백이 없는 문자열을 생성한다. 철자가 연속되는 철자열은 철자열의 첫 철자로 치환하고, 숫자가 연속되는 숫자열은 미리 설정된 대표숫자로 치환하고, 철자와 숫자를 제외한 특수문자는 미리 설정된 대표특수문자로 치환하는 것이 기설정된 치환기준의 일 예가 될 수 있다.
선택적 실시 예로서, 도 4에서 웹 메일시스템 로그에는 로그인, 로그아웃과 같은 사람이 인지할 수 있는 기능에 대한 정보가 아니라, 로그인이나 로그아웃이 진행되기 위해 필요한 수많은 데이터의 흐름(송수신내역)이 기록될 수 있다는 것은 도 2의 시스템로그에 대한 설명에서 전술한 바 있다.
이어서, 문자열생성부의 기설정된 치환기준에 따라 웹 메일시스템 로그는 문자열화된 로그로 변환된다. 도 4에서 미리 설정된 대표숫자는 "0"이고, 미리 설정된 대표특수문자는 "_"이다. 이 과정에서 공백문자는 제거된다.
대표문자열치환부는 문자열화된 로그를 분석하여 대표문자열로 치환한다. 하나의 대표문자열로 치환되는 문자열은 서로 유사하다고 판별된 문자열들이고, 문자열들의 유사판단에 대해서는 이미 도 8을 통해 설명한 바 있다. 이 과정에서 문자열 "0_0_0MW"과 "0_0_0MS"는 대표문자열인 "0_0_0MC"로 치환된다.
문자열패턴추출부는 대표문자열집합에서 미리 설정된 개수씩 대표문자열을 묶어서 문자열패턴을 추출하기 위한 기본 단위를 생성한다. 여기서 기본 단위란 서로 다른 시간대별로 기록된 대표문자열을 2개 또는 3개씩 묶은 것으로서, 문자열패턴의 기본 단위의 연속으로 표현될 수 있다. 문자열패턴을 추출하기 위한 기본 단위도 문자열패턴에 포함된다.
최종적으로 문자열패턴추출부는 문자열패턴의 기본 단위를 기초로 문자열패턴을 추출한다. 전술한 것과 같이, 문자열패턴을 추출하기 위한 기본 단위 그 자체도 문자열패턴이 될 수 있으며, 문자열패턴추출부에 미리 설정된 패턴추출기준에 따라서 문자열패턴추출부는 문자열패턴을 추출하기 위한 기본 단위를 2단위이상 묶은 것을 문자열패턴으로 추출할 수도 있다.
도 4를 참조하여 예를 들면, 로그인순간(0분 0초)부터 3분 30초동안 기록된 웹 메일시스템 로그에 대한 문자열패턴으로서, 문자열패턴추출부는 [0_0_0L, 0_0_0MC] 1개, [0_0_0MC, 0_0_0MC] 2개, [0_0_0L, 0_0_0L] 1개가 연속적으로 이루어져 있는 하나의 패턴을 추출할 수도 있고, 각각의 문자열패턴을 추출하기 위한 기본 단위를 문자열패턴으로 간주하여 4개의 문자열패턴을 추출할 수도 있다.
도 4를 통해 설명한 것과 같이, 문자열패턴추출부는 특정한 시간동안 기록된 정보에서 문자열패턴을 추출하게 되며, 문자열패턴추출부는 그 특정한 시간동안에 추출된 문자열패턴들의 추출순서(선후관계)를 구분하기 위한 간단한 일련번호를 각각의 문자열패턴마다 부여하게 된다.
도 5는 본 발명에 따른 로그패턴추출방법의 일 예의 흐름도를 도시한 도면이다.
도 5에 따른 로그패턴추출방법은 도 2에서 설명한 로그패턴추출장치에 의해 실현될 수 있으며, 도 2에서 설명한 것과 중복된 설명은 생략하기로 한다.
먼저, 문자열생성부는 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성한다(S510).
단계 S510의 선택적 실시 예로서, 시스템로그에 기록되는 내용은 통상적으로 사람이 인지하는 하나의 기능을 정보처리시스템이 수행하기 위해서, 정보처리시스템내에서 처리되는 상세한 데이터흐름일 수도 있다.
단계 S510의 다른 선택적 실시 예로서, 문자열생성부는 시간대별처리정보를 기설정된 치환기준을 통해 문자치환을 하여, 문자간에 공백이 없는 문자열을 생성할 수도 있다. 여기서, 기설정된 치환기준은 문자 및 공백으로 표현되는 시간대별처리정보를 구성하는 문자나 문자열의 일부를 다른 문자로 치환하는 기준을 의미하며, 미리 다양한 방식으로 설정될 수 있다.
대표문자열치환부는 문자열생성부가 생성한 복수의 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 그 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환한다(S530).
단계 S530에서 기설정된 유사기준이란, 문자열생성부(210)가 생성한 복수의 문자열들 중에서 서로 유사한 문자열들이 있는지를 파악하기 위한 기준이며, 다양한 방식이 될 수 있다. 단계 S530의 선택적 실시 예로서, 기설정된 유사기준은 각각의 문자열을 구성하는 문자와 그 문자열에서 각 문자가 위치한 순서일 수 있다.
단계 S530의 다른 선택적 실시 예로서, 기설정된 유사기준은 서로 다른 두 문자열을 비교하는 데에 있어서, 두 문자열의 길이, 두 문자열을 구성하는 문자, 두 문자열을 구성하는 문자의 순서가 다른 정도에 비례하여 달라지는 거리값일 수도 있다. 대표문자열치환부는 두 문자열 간의 거리값을 산출하기 위해서 편집거리 알고리즘(Edit Distance Algorithm) 또는 레벤스타인 알고리즘(Levenstein Algorithm)을 이용할 수 있다.
단계 S530의 또 다른 선택적 실시 예로서, 대표문자열치환부는 문자열생성부가 생성한 문자열들을 두 개씩 묶어서 비교하여, 미리 설정된 유사허용도를 초과하지 않는 문자열들을 하나의 대표문자열로 치환할 수도 있다.
문자열패턴추출부는 대표문자열치환부가 치환한 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출한다(S550).
단계 S550의 선택적 실시 예로서, 문자열패턴추출부는 대표문자열치환부에 의해 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거한 후, 남은 대표문자열을 미리 설정된 개수씩 묶어서 문자열패턴을 산출할 수 있다.
도 6은 본 발명에 따른 로그패턴분석방법의 일 예의 흐름도를 도시한 도면이다.
도 6에 따른 로그패턴분석방법은 도 2에 따른 로그패턴분석장치에 의해 구현될 수 있으므로, 도 2에서 설명한 것과 중복된 설명은 생략하기로 한다. 또한, 단계 S610 내지 S630은, 도 5에서의 S510 내지 S550와 대응되는 단계이므로, 이하에서는 단계 S610 내지 S630에 대한 설명도 생략하기로 한다.
이상동작파악부는 문자열패턴추출부가 산출한 문자열패턴이 이상패턴인지 여부를 판단한다(S640). 이상동작파악부는 문자열패턴추출부가 산출한 문자열패턴이 이상패턴이라고 판단한 경우, 정보처리시스템이 이상동작을 하는 것으로 파악한다(S650). 반면, 이상동작파악부는 문자열패턴추출부가 산출한 문자열패턴이 이상패턴이 아니라고 판단한 경우, 정보처리시스템이 정상동작을 하는 것으로 파악한다(S660).
도 7은 이상동작파악부가 문자열패턴추출부가 산출한 문자열패턴이 이상패턴인지 여부를 판단하는 과정에 대한 흐름도를 도시한 도면이다.
먼저, 이상동작파악부는 과거 시스템로그를 기반으로 추출된 정상문자열패턴과 현재 시스템로그를 기반으로 추출된 문자열패턴을 비교한다(S710).
이상동작파악부는 정보처리시스템이 정상적으로 동작하고 있을 때의 시스템로그로부터 추출된 정상문자열패턴을 저장하고 있다.
단계 S710에서, 이상동작파악부는 시스템로그에 정보가 기록된 시간대를 기초로 정상문자열패턴과 문자열패턴추출부가 추출한 문자열패턴(미판별문자열패턴)을 비교할 시간간격을 결정하고, 그 결정된 시간간격동안 정상문자열패턴 및 미판별문자열패턴의 발생 빈도를 집계하여 정상문자열패턴 및 미판별문자열패턴에 대한 출현빈도통계치를 산출하여, 양 값을 비교한다.
이상동작파악부는 미판별문자열패턴의 출현빈도통계치가 정상문자열패턴의 출현빈도통계치로부터 기설정된 범위를 초과하는지 판단한다(S730). 이상동작파악부는 미판별문자열패턴의 출현빈도통계치가 정상문자열패턴의 출현빈도통계치로부터 기설정된 범위를 초과하면, 이상동작탐지부는 정보처리시스템이 이상동작을 하고 있다고 판단하고(S750), 그렇지 않으면, 이상동작탐지부는 정보처리시스템이 정상동작을 하고 있다고 판단한다(S770).
본 발명은 전술한 것과 같이 정보처리시스템의 시스템로그에 기록된 정보를 관리자의 분석을 거치지 않고, 자동으로 패턴처리한 후, 그 패턴이 정상적으로 동작하고 있던 때에 생성된 패턴과 얼마나 차이가 있는지를 기초로 하여 정보처리시스템의 이상동작을 판단할 수 있게 되므로, 관리자가 시스템로그를 분석하는 시간을 절약할 수 있다.
또한, 정보처리시스템에 신규 애플리케이션이 설치된 이후에도 새로운 방식으로 기록되는 시스템로그를 분석하는 방법을 관리자가 별도로 숙지할 필요없이 정보처리시스템이 정상적으로 동작했던 시기의 시스템로그를 기초로 한 패턴을 현재의 시스템로그를 기초로 한 패턴과 비교하는 것만으로 간단히 정보처리시스템의 이상동작을 하고 있는지 여부를 파악할 수 있게 되어, 정보처리시스템의 유지 및 보수에 있어서 높은 효율성 증대를 기대할 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 나아가, 매체는 네트워크 상에서 전송 가능한 형태로 구현되는 무형의 매체를 포함할 수 있으며, 예를 들어 소프트웨어 또는 애플리케이션 형태로 구현되어 네트워크를 통해 전송 및 유통이 가능한 형태의 매체일 수도 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
Claims (17)
- 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로 상기 정보가 처리된 시간대별로 대응되는 문자열을 생성하는 문자열생성부;
상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 대표문자열로 치환하는 대표문자열치환부; 및
상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출하는 문자열패턴추출부;를 포함하고,
상기 대표문자열치환부는,
상기 생성된 문자열에서 제1루트문자열을 설정하고, 상기 설정된 제1루트문자열을 제외한 나머지 문자열 중 하나를 상기 설정된 제1루트문자열과 비교하여 산출된 거리값을 기설정된 유사허용도와 비교한 후,
상기 산출된 거리값이 상기 유사허용도보다 작거나 상기 산출된 거리값이 상기 유사허용도와 같으면, 상기 설정된 제1루트문자열과 비교된 문자열을 상기 설정된 제1루트문자열과 유사하다고 파악하고,
상기 산출된 거리값이 상기 유사허용도보다 크면, 상기 설정된 제1루트문자열과 비교된 문자열을 제2루트문자열로 설정하여 상기 제1루트문자열과 유사하지 않은 문자열들에서 상기 설정된 제2루트문자열과 유사한 문자열을 파악하고,
상기 문자열패턴추출부는 상기 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거하고 남은 대표문자열들을, 미리 설정된 개수씩 묶어서 문자열패턴을 추출하는 것을 특징으로 하는 로그패턴추출장치. - 제1항에 있어서,
상기 문자열생성부는,
상기 정보처리시스템이 시간대별로 처리한 정보를 기설정된 치환기준을 통해 문자치환을 하여 문자간에 공백이 없는 문자열을 생성하는 것을 특징으로 하는 로그패턴추출장치. - 제2항에 있어서,
상기 정보처리시스템이 시간대별로 처리한 정보는,
언어의 음을 표기하는 데에 사용되는 철자(alphabet), 시간이나 순서를 표기하는 데에 사용되는 숫자, 상기 철자와 숫자를 제외한 특수문자로 표현되고,
상기 기설정된 치환기준은,
상기 철자가 연속되는 철자열은 상기 철자열의 첫 철자로 치환하고,
상기 숫자가 연속되는 숫자열은 미리 설정된 대표숫자로 치환하고,
상기 특수문자는 미리 설정된 대표특수문자로 치환하는 것을 특징으로 하는 로그패턴추출장치. - 삭제
- 삭제
- 제1항에 있어서,
상기 거리값은,
편집 거리(Edit Distance) 및 레벤스타인 거리(Levenstein Distance) 산출방식 중 어느 하나의 산출방식을 통해서 산출된 값인 것을 특징으로 하는 로그패턴추출장치. - 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 상기 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성하는 문자열생성부;
상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환하는 대표문자열치환부;
상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 산출하는 문자열패턴추출부; 및
상기 산출된 문자열패턴을 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 이상동작파악부;를 포함하고,
상기 대표문자열치환부는,
상기 생성된 문자열에서 제1루트문자열을 설정하고, 상기 설정된 제1루트문자열을 제외한 나머지 문자열 중 하나를 상기 설정된 제1루트문자열과 비교하여 산출된 거리값을 기설정된 유사허용도와 비교한 후,
상기 산출된 거리값이 상기 유사허용도보다 작거나 상기 산출된 거리값이 상기 유사허용도와 같으면, 상기 설정된 제1루트문자열과 비교된 문자열을 상기 설정된 제1루트문자열과 유사하다고 파악하고,
상기 산출된 거리값이 상기 유사허용도보다 크면, 상기 설정된 제1루트문자열과 비교된 문자열을 제2루트문자열로 설정하여 상기 제1루트문자열과 유사하지 않은 문자열들에서 상기 설정된 제2루트문자열과 유사한 문자열을 파악하고,
상기 문자열패턴추출부는 상기 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거하고 남은 대표문자열들을, 미리 설정된 개수씩 묶어서 문자열패턴을 추출하는 것을 특징으로 하는 로그패턴분석장치. - 제7항에 있어서,
상기 이상동작파악부는,
정보처리시스템이 정상적으로 동작하고 있을 때의 정보를 기록한 정상시스템로그로부터 추출된 정상문자열패턴을 저장하는 정상패턴저장부;
상기 시스템로그에 정보가 기록된 시간대를 기초로 정상문자열패턴과 문자열패턴추출부가 추출한 미판별문자열패턴을 비교할 시간간격을 결정하고, 상기 결정된 시간간격동안 주기적인 시간마다 상기 정상문자열패턴 및 상기 미판별문자열패턴의 발생빈도를 집계하고, 상기 집계된 정상문자열패턴 및 미판별문자열패턴을 기초로 출현빈도통계치를 산출하는 패턴집계부; 및
상기 산출된 미판별문자열패턴의 출현빈도통계치가 상기 산출된 정상문자열패턴의 출현빈도통계치를 기설정된 범위를 초과하면, 상기 정보처리시스템이 이상동작을 하고 있다고 탐지하는 이상동작탐지부;를 포함하는 것을 특징으로 하는 로그패턴분석장치. - 문자열생성부가 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로 상기 정보가 처리된 시간대별로 대응되는 문자열을 생성하는 문자열생성단계;
대표문자열치환부가 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 대표문자열로 치환하는 대표문자열치환단계; 및
문자열패턴추출부가 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 추출하는 문자열패턴추출단계;를 포함하고,
상기 대표문자열치환단계는,
상기 대표문자열치환부가 상기 생성된 문자열에서 제1루트문자열을 설정하고, 상기 설정된 제1루트문자열을 제외한 나머지 문자열 중 하나를 상기 설정된 제1루트문자열과 비교하여 산출된 거리값을 기설정된 유사허용도와 비교한 후,
상기 산출된 거리값이 상기 유사허용도보다 작거나 상기 산출된 거리값이 상기 유사허용도와 같으면, 상기 설정된 제1루트문자열과 비교된 문자열을 상기 설정된 제1루트문자열과 유사하다고 파악하고,
상기 산출된 거리값이 상기 유사허용도보다 크면, 상기 설정된 제1루트문자열과 비교된 문자열을 제2루트문자열로 설정하여 상기 제1루트문자열과 유사하지 않은 문자열들에서 상기 설정된 제2루트문자열과 유사한 문자열을 파악하고,
상기 문자열패턴추출단계는,
상기 문자열패턴추출부가 상기 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거하고 남은 대표문자열들을, 미리 설정된 개수씩 묶어서 문자열패턴을 추출하는 것을 특징으로 하는 로그패턴추출방법. - 제9항에 있어서,
상기 문자열생성단계는,
상기 정보처리시스템이 시간대별로 처리한 정보를 기설정된 치환기준을 통해 문자치환을 하여 문자간에 공백이 없는 문자열을 생성하는 것을 특징으로 하는 로그패턴추출방법. - 제10항에 있어서,
상기 정보처리시스템이 시간대별로 처리한 정보는,
언어의 음을 표기하는 데에 사용되는 철자(alphabet), 시간이나 순서를 표기하는 데에 사용되는 숫자, 상기 철자와 숫자를 제외한 특수문자로 표현되고,
상기 기설정된 치환기준은,
상기 철자가 연속되는 철자열은 상기 철자열의 첫 철자로 치환하고,
상기 숫자가 연속되는 숫자열은 미리 설정된 대표숫자로 치환하고,
상기 특수문자는 미리 설정된 대표특수문자로 치환하는 것을 특징으로 하는 로그패턴추출방법. - 삭제
- 삭제
- 제9항에 있어서,
상기 거리값은,
편집 거리(Edit Distance) 및 레벤스타인 거리(Levenstein Distance) 산출방식 중 어느 하나의 산출방식을 통해서 산출된 값인 것을 특징으로 하는 로그패턴추출방법. - 문자열생성부가 정보처리시스템이 처리하는 정보를 시간대별로 기록한 시스템로그를 기초로, 상기 정보처리시스템이 시간대별로 처리한 정보에 각각 대응되는 문자열을 생성하는 문자열생성단계;
대표문자열치환부가 상기 생성된 문자열에서 기설정된 유사기준에 따라 서로 유사한 문자열들을 파악하고, 상기 기설정된 유사기준에 따라 서로 유사하다고 파악된 문자열들을 하나의 대표문자열로 치환하는 대표문자열치환단계;
문자열패턴추출부가 상기 치환된 대표문자열의 순서 및 빈도를 기초로 적어도 하나 이상의 문자열패턴을 산출하는 문자열패턴추출단계; 및
이상동작파악부가 상기 산출된 문자열패턴을 기초로 상기 정보처리시스템이 이상동작을 하는지 여부를 파악하는 이상동작파악단계;를 포함하고,
상기 대표문자열치환단계는,
상기 대표문자열치환부가 상기 생성된 문자열에서 제1루트문자열을 설정하고, 상기 설정된 제1루트문자열을 제외한 나머지 문자열 중 하나를 상기 설정된 제1루트문자열과 비교하여 산출된 거리값을 기설정된 유사허용도와 비교한 후,
상기 산출된 거리값이 상기 유사허용도보다 작거나 상기 산출된 거리값이 상기 유사허용도와 같으면, 상기 설정된 제1루트문자열과 비교된 문자열을 상기 설정된 제1루트문자열과 유사하다고 파악하고,
상기 산출된 거리값이 상기 유사허용도보다 크면, 상기 설정된 제1루트문자열과 비교된 문자열을 제2루트문자열로 설정하여 상기 제1루트문자열과 유사하지 않은 문자열들에서 상기 설정된 제2루트문자열과 유사한 문자열을 파악하고,
상기 문자열패턴추출단계는,
상기 문자열패턴추출부가 상기 치환된 대표문자열에서 일부의 대표문자열을 대표문자열들의 순서에 기초하여 제거하고 남은 대표문자열들을, 미리 설정된 개수씩 묶어서 문자열패턴을 추출하는 것을 특징으로 하는 로그패턴분석방법. - 제15항에 있어서,
상기 이상동작파악단계는,
정상패턴저장부가 정보처리시스템이 정상적으로 동작하고 있을 때의 정보를 기록한 정상시스템로그로부터 추출된 정상문자열패턴을 저장하는 정상패턴저장단계;
패턴집계부가 상기 시스템로그에 정보가 기록된 시간대를 기초로 정상문자열패턴과 문자열패턴추출부가 추출한 미판별문자열패턴을 비교할 시간간격을 결정하고, 상기 결정된 시간간격동안 주기적인 시간마다 상기 정상문자열패턴 및 상기 미판별문자열패턴의 발생빈도를 집계하고, 상기 집계된 정상문자열패턴 및 미판별문자열패턴을 기초로 출현빈도통계치를 산출하는 패턴집계단계; 및
이상동작탐지부가 상기 산출된 미판별문자열패턴의 출현빈도통계치가 상기 산출된 정상문자열패턴의 출현빈도통계치를 기설정된 범위를 초과하면, 상기 정보처리시스템이 이상동작을 하고 있다고 탐지하는 이상동작탐지단계;를 포함하는 것을 특징으로 하는 로그패턴분석방법. - 제9항 내지 제11항, 및 제14항 내지 제16항 중 어느 한 항에 따른 방법을 실행시키기 위한 프로그램을 저장하고 있는 컴퓨터 판독가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150185108A KR101621959B1 (ko) | 2015-12-23 | 2015-12-23 | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150185108A KR101621959B1 (ko) | 2015-12-23 | 2015-12-23 | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101621959B1 true KR101621959B1 (ko) | 2016-05-17 |
Family
ID=56109756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150185108A KR101621959B1 (ko) | 2015-12-23 | 2015-12-23 | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101621959B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101964412B1 (ko) | 2018-12-12 | 2019-04-01 | 주식회사 모비젠 | 이동통신데이터 처리시스템의 이상로그 발생을 진단하는 방법 및 그 시스템 |
KR20230109437A (ko) * | 2022-01-13 | 2023-07-20 | 성균관대학교산학협력단 | 차량용 인포테인먼트 시스템 네트워크 침입 탐지 방법 및 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155064A (ja) * | 2004-11-26 | 2006-06-15 | Ricoh Co Ltd | 情報処理装置及び同装置に用いるプログラム |
JP2008027431A (ja) | 2006-06-22 | 2008-02-07 | Nec Corp | 情報解析装置、情報解析方法、及び情報解析プログラム |
JP2012094046A (ja) * | 2010-10-28 | 2012-05-17 | Hitachi Medical Corp | 機器障害分析装置、機器障害分析方法、および機器障害分析プログラム |
-
2015
- 2015-12-23 KR KR1020150185108A patent/KR101621959B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155064A (ja) * | 2004-11-26 | 2006-06-15 | Ricoh Co Ltd | 情報処理装置及び同装置に用いるプログラム |
JP2008027431A (ja) | 2006-06-22 | 2008-02-07 | Nec Corp | 情報解析装置、情報解析方法、及び情報解析プログラム |
JP2012094046A (ja) * | 2010-10-28 | 2012-05-17 | Hitachi Medical Corp | 機器障害分析装置、機器障害分析方法、および機器障害分析プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101964412B1 (ko) | 2018-12-12 | 2019-04-01 | 주식회사 모비젠 | 이동통신데이터 처리시스템의 이상로그 발생을 진단하는 방법 및 그 시스템 |
KR20230109437A (ko) * | 2022-01-13 | 2023-07-20 | 성균관대학교산학협력단 | 차량용 인포테인먼트 시스템 네트워크 침입 탐지 방법 및 장치 |
KR102618020B1 (ko) * | 2022-01-13 | 2023-12-27 | 성균관대학교산학협력단 | 차량용 인포테인먼트 시스템 네트워크 침입 탐지 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107154950B (zh) | 一种日志流异常检测的方法及系统 | |
CN113676464B (zh) | 一种基于大数据分析技术的网络安全日志告警处理方法 | |
US11616798B2 (en) | Malicious traffic detection with anomaly detection modeling | |
EP3136249B1 (en) | Log analysis device, attack detection device, attack detection method and program | |
CN110826648B (zh) | 一种利用时序聚类算法实现故障检测的方法 | |
US9781139B2 (en) | Identifying malware communications with DGA generated domains by discriminative learning | |
US11496495B2 (en) | System and a method for detecting anomalous patterns in a network | |
CN114039758B (zh) | 一种基于事件检测模式的网络安全威胁识别方法 | |
KR100628329B1 (ko) | 네트워크 세션 특성 정보에 대한 공격 행위 탐지규칙 생성장치 및 그 방법 | |
Kobayashi et al. | Towards an NLP-based log template generation algorithm for system log analysis | |
CN113452672B (zh) | 基于协议逆向分析的电力物联网终端流量异常分析方法 | |
CN112738088A (zh) | 一种基于无监督算法的行为序列异常检测方法及系统 | |
CN111191720A (zh) | 一种业务场景的识别方法、装置及电子设备 | |
CN115277113A (zh) | 一种基于集成学习的电网网络入侵事件检测识别方法 | |
KR101621959B1 (ko) | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 | |
US9600572B2 (en) | Method, computer program and apparatus for analyzing symbols in a computer system | |
US11539730B2 (en) | Method, device, and computer program product for abnormality detection | |
CN117827508A (zh) | 一种基于系统日志数据的异常检测方法 | |
CN112039907A (zh) | 一种基于物联网终端评测平台的自动测试方法及系统 | |
CN111209158B (zh) | 服务器集群的挖矿监控方法及集群监控系统 | |
CN112073396A (zh) | 一种内网横向移动攻击行为的检测方法及装置 | |
CN115062144A (zh) | 一种基于知识库和集成学习的日志异常检测方法与系统 | |
CN111814436A (zh) | 一种基于互信息和熵的用户行为序列检测方法及系统 | |
CN112583859A (zh) | 一种网络攻击的识别方法 | |
de la Torre-Abaitua et al. | A parameter-free method for the detection of web attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |