KR20130002365A - 메타 패턴을 이용한 웹쉘 탐지 장치 - Google Patents

메타 패턴을 이용한 웹쉘 탐지 장치 Download PDF

Info

Publication number
KR20130002365A
KR20130002365A KR1020110061014A KR20110061014A KR20130002365A KR 20130002365 A KR20130002365 A KR 20130002365A KR 1020110061014 A KR1020110061014 A KR 1020110061014A KR 20110061014 A KR20110061014 A KR 20110061014A KR 20130002365 A KR20130002365 A KR 20130002365A
Authority
KR
South Korea
Prior art keywords
web
pattern
meta
state
accept
Prior art date
Application number
KR1020110061014A
Other languages
English (en)
Other versions
KR101244945B1 (ko
Inventor
전용관
Original Assignee
주식회사 티벨로
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 티벨로 filed Critical 주식회사 티벨로
Priority to KR1020110061014A priority Critical patent/KR101244945B1/ko
Publication of KR20130002365A publication Critical patent/KR20130002365A/ko
Application granted granted Critical
Publication of KR101244945B1 publication Critical patent/KR101244945B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 정규 표현 규칙으로 정의한 웹쉘 패턴을 해석하여 비결정유한오토마타를 생성하는 비결정유한오토마타 생성부, 비결정유한오토마타로 최적화된 결정유한오토마타를 생성하는 결정유한오토마타 생성부 및 최적화된 결정유한오토마타로부터 메타 패턴을 생성하는 메타 패턴 생성부를 포함하는 것을 특징으로 한다.

Description

메타 패턴을 이용한 웹쉘 탐지 장치{WEBSHELL DETECTING APPARATUS USING META PATTERN}
본 발명은 웹쉘 탐지 장치에 관한 것으로서, 더욱 상세하게는 메타 패턴을 이용하여 웹 파일에서 웹쉘 패턴을 탐지하는 메타 패턴을 이용한 웹쉘 탐지 장치에 관한 것이다.
일반적으로 웹 서비스에는 게시판이나 자료실에 파일을 첨부할 수 있는 기능이 포함된다. 이때 txt, jpg, doc와 같은 데이터 파일 종류 이외에 웹쉘(Webshell)을 업로드하여 웹 서버(WebServer)를 해킹하는 사고가 빈번히 발생하고 있다.
웹쉘(Webshell)이란 공격자(Hacker)가 원격에서 대상 웹 서버(WebServer)에 명령을 수행할 수 있도록 작성한 웹 스크립트 파일이다. 공격자는 웹쉘을 대상 서버에 업로드 또는 수정한 후 웹을 통해 명령어를 수행하므로 네트워크 방화벽의 영향을 받지 않고 서버를 제어할 수 있다.
웹쉘 프로그램은 인터넷을 통해 쉽게 구할 수 있고, 홈페이지의 업로드 취약점 확인 방법도 간단하기 때문에 해커들에 의해 쉽게 사용된다.
최근 국내에서 발생하고 있는 웹 서버 피해 시스템들 중 대부분에 웹쉘이 탐지되고 있다.
상기한 기술구성은 본 발명의 이해를 돕기 위한 배경기술로서, 본 발명이 속하는 기술분야에서 널리 알려진 종래기술을 의미하는 것은 아니다.
종래에는 웹쉘을 탐지하기 위해, 웹쉘 문자열을 검사하고, 파일 확장자를 수시로 변경하며 탐지하여야 하는 데, 이 경우, 많은 비용과 시간, 노력이 필요하다.
뿐만 아니라, 최근에 발견되는 웹쉘은 패스워드 기능이 설정되어 해당 웹쉘을 업로드한 공격자만이 접근할 수 있어 웹쉘을 탐지하는 사용자에게 큰 부담이 되고 있다.
게다가, 웹쉘 자체에는 악성 코드가 포함되지 않고, 자체적으로 동작하지 않으며, 공격자가 원격지에서 통신망을 통해 웹쉘을 이용하여 웹 서버를 제어하기 때문에 기존의 바이러스 유무를 판단하는 바이러스 탐지 시스템으로는 탐지가 어려웠다.
본 발명은 전술한 문제점을 개선하기 위해 창안된 것으로서, 웹쉘 패턴을 메타 패턴으로 변환한 후, 웹쉘 검색 서버에 제공하여 웹쉘 검색 서버에서 메타 패턴을 통해 웹 파일에 포함된 웹쉘을 탐지할 수 있도록 한 메타 패턴을 이용한 웹쉘 탐지 장치를 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 메타 패턴을 이용한 웹쉘 탐지 장치는 정규 표현 규칙으로 정의한 웹쉘 패턴을 해석하여 비결정유한오토마타를 생성하는 비결정유한오토마타 생성부; 상기 비결정유한오토마타로 최적화된 결정유한오토마타를 생성하는 결정유한오토마타 생성부; 및 상기 최적화된 결정유한오토마타로부터 메타 패턴을 생성하는 메타 패턴 생성부를 포함하는 것을 특징으로 한다.
본 발명의 상기 정규 표현 규칙에서, x 는 문자 x를, "x"는 x에 오퍼레이터(operator)가 와도 단순히 x임을, ₩x는 x에 오퍼레이터(operator)가 와도 단순히 x임을, [xy]는 문자열 xy를, [x-z]는 x에서 z까지(x,y,z)를, [^x]는 x 이외의 아무 문자를, .는 뉴 라인(New line)이 아닌 아무 문자, ^x는 줄의 제일 처음에 오는 x, <y>x는 시작 조건이 y인 x를, x$는 줄의 제일 끝에 오는 x를, x?는 선택적으로 오는 x를, x*는 널(Null)을 포함하는 x의 인스턴스(instance)를, x+는 널(Null)이 아닌 x의 인스턴스(instance)를 x|y는 x 또는 y를, (x)는 x를, x/y는 뒤에 y를 수반하는 x를, {xx}는 정의 부분에 기초하여 xx가 번역을, x{m,n}는 m에서 n 사이의 수 만큼 x가 발생하는 것을 의미하는 것을 특징으로 한다.
본 발명의 상기 메타 패턴은 심볼 테이블, 상태 테이블 및 억셉트 테이블을 포함하는 것을 특징으로 한다.
본 발명의 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 입력 문자의 값을 그룹핑한 것을 특징으로 한다.
본 발명의 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 상기 입력 문자의 값을 '1'에서부터 순차적으로 정의하고 나머지 값들은 '0'으로 정의하여 그룹핑되는 것을 특징으로 한다.
본 발명의 상기 상태 테이블은 현재 상태에서 심볼 인덱스값에 따라 천이되는 다음 상태를 나타내어져, 상기 심볼 테이블의 심볼 인덱스값의 수와 상기 최적화된 결정유한오토마타의 상태의 수에 따라 표현되는 것을 특징으로 한다.
본 발명의 상기 억셉트 테이블은 상기 최적화된 정규 표현 규칙을 만족하는 상태에 해당하는 열의 값에 억셉트 정보를 표현하여 상기 문자가 웹쉘 패턴에 매칭되는 지를 나타내는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 메타 패턴을 이용한 웹쉘 탐지 장치는 정규 표현 규칙으로 정의한 웹쉘 패턴을 해석하여 생성된 메타 패턴을 저장하는 메타 패턴 저장부; 및 상기 메타 패턴 저장부에 저장된 상기 메타 패턴을 이용하여 웹 파일에서 상기 웹쉘 패턴을 검색하는 웹쉘 검색부를 포함하는 것을 특징으로 한다.
본 발명의 상기 웹쉘 검색부는 상기 웹 파일에서 입력 문자를 읽어들여 상기 입력 문자를 통해 심볼 테이블에서 심볼 인덱스값을 구하고, 상기 심볼 인덱스값을 이용하여 상태 테이블에서 다음 상태의 값을 구하여 상기 다음 상태의 값이 널 상태가 아니면, 상기 다음 상태의 값을 이용하여 억셉트 테이블에서 억셉트 값을 구한 후, 상기 억셉트 값이 상기 웹쉘 패턴과 일치하는 지를 검사하는 것을 특징으로 한다.
본 발명에서, 웹 서버 또는 상기 웹 서버를 관리하는 관리 서버에서 상기 웹 파일을 검색하여 상기 웹쉘 검색부로 입력하는 웹 파일 검색부를 더 포함하는 것을 특징으로 한다.
본 발명의 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 입력 문자의 값을 그룹핑한 것을 특징으로 한다.
본 발명의 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 상기 입력 문자의 값을 '1'에서부터 순차적으로 정의하고 나머지 값들은 '0'으로 정의하여 그룹핑되는 것을 특징으로 한다.
본 발명의 상기 상태 테이블은 현재 상태에서 심볼 인덱스값에 따라 천이되는 다음 상태를 나타내어져, 상기 심볼 테이블의 심볼 인덱스값의 수와 상기 최적화된 결정유한오토마타의 상태의 수에 따라 표현되는 것을 특징으로 한다.
본 발명의 상기 억셉트 테이블은 상기 최적화된 정규 표현 규칙을 만족하는 상태에 해당하는 열의 값에 억셉트 정보를 표현하여 상기 문자가 웹쉘 패턴에 매칭되는 지를 나타내는 것을 특징으로 한다.
본 발명은 웹 서버에서 미리 가공된 메타 패턴을 이용하여 웹쉘을 탐지하므로, 웹쉘 패턴을 가공하는데 소모되는 시간과 비용 및 노력을 절감할 수 있다.
또한, 본 발명은 메타 패턴으로 웹쉘을 탐지하므로, 웹쉘 탐지 회피를 위한 웹쉘 변형 등에도 대처할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치의 블럭 구성도이다.
도 2 는 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치의 동작 과정을 도시한 순서도이다.
도 3 은 본 발명의 일 실시예에 따른 정규표현식으로부터 변환된 비결정유한오토마타의 그래프이다.
도 4 는 도 3 의 비결정유한오토마타로부터 변환된 결정유한오토마타의 그래프이다.
도 5 는 도 4 의 결정유한오토마타로부터 변환된 최적화된 결정유한오토마타의 그래프이다.
도 6 은 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 패턴을 탐지 방법의 순서도이다.
이하에서는 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치를 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야할 것이다.
도 1 은 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치의 블럭 구성도이다.
본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치는 메타 패턴 생성서버(10)와 웹쉘 검색 서버(20)를 포함한다.
메타 패턴 생성서버(10)는 정규 표현식(Regular Expression)으로 정의되어 있는 웹쉘 패턴을 이용하여 메타 패턴을 생성한다.
메타 패턴 생성서버(10)는 정규 표현식 저장부(11), 비결정유한오토마타 생성부(12)와, 결정유한오토마타 생성부(13), 메타 패턴 생성부(14) 및 메타 패턴 관리부(15)를 포함한다.
정규 표현식 저장부(11)는 정규 표현 규칙에 따라 정의되는 다양한 정규 표현식을 저장한다. 이러한, 웹쉘 패턴은 정규 표현식으로 정의되는 바, 웰쉘은 cmd₩.exe 와 같이 정의될 수 있다.
아울러, 이러한 웹쉘은 웹 파일에 정의되는 바, 이를 하기와 같이 웹 파일에 포함될 수 있다.
<%
Function CmdShell()
If Request("SP")<>"" Then Session("ShellPath") = Request("SP")
ShellPath=Session("ShellPath")
if ShellPath="" Then ShellPath = " cmd . exe "
if Request("wscript")="yes" then
checked=" checked"
else
checked=""
end if
여기서, "cmd.exe" 가 웹쉘이다.
비결정유한오토마타 생성부(12)는 정규 표현식으로 정의되어 있는 웹쉘 패턴을 이용하여 비결정유한오토마타(Non-deterministric Finite state Automata;NFA)를 생성한다.
정규 표현 규칙은 아래의 표 1 과 같다.
정규 표현 규칙
문자 의미
x 문자 x
"x" x에 오퍼레이터(operator)가 와도 단순히 x
₩x x에 오퍼레이터(operator)가 와도 단순히 x
[xy] 문자열 xy
[x-z] x에서 z까지(x,y,z)
[^x] x 이외의 아무 문자
. New line이 아닌 아무 문자
^x 줄의 제일 처음에 오는 x
<y>x 시작 조건이 y인 x
x$ 줄의 제일 끝에 오는 x
x? 선택적으로 오는 x
x* 널(Null)을 포함하는 x의 인스턴스(instance)
x+ 널(Null)이 아닌 x의 인스턴스(instance)
x|y x 또는 y
(x) x
x/y 뒤에 y를 수반하는 x
{xx} 정의 부분에 기초하여 xx가 번역
x{m,n} m에서 n 사이의 수 만큼 x가 발생
비결정유한오토마타 생성부(12)는 상기한 바와 같이, 정규 표현식으로 정의되어 있는 웹쉘 패턴을 다수 개의 상태를 가진 상태도로 표현하게 된다.
결정유한오토마타 생성부(13)는 비결정유한오토마타 생성부(12)에 의해 생성된 비결정유한오토마타를 이용하여 결정유한오토마타(Deterministric Finite state Automata;DFA)를 생성한다.
이후, 생성된 결정유한오토마타를 최적화된 결정유한오토마타(Optimized-DFA)로 변환한다.
메타 패턴 생성부(14)는 최적화된 결정유한오토마타를 이용하여 메타 패턴을 생성한다.
메타 패턴은 심볼 테이블(Symbol Table)과 상태 테이블(State Table) 및 억셉트 테이블(Accept Table)을 포함한다.
여기서, 심볼 테이블은 입력 문자를 심볼 인덱스(Symbol index)로 그룹핑(Grouping) 및 변환하여 메타 패턴의 크기를 감소시키기 위한 테이블이다.
이러한 심볼 테이블에서, 열의 크기는 전체 입력 문자의 개수와 동일하고, 열의 인덱스값은 입력 문자의 문자값(아스키 코드값)이다. 이러한 심볼 테이블은 행의 크기는 1이고, 행의 값은 입력 문자의 심볼 인덱스값이 된다.
상태 테이블은 현재 상태(Current state)에서 심볼 인덱스값에 따라 다음 상태(Next state)로 천이하기 위한 테이블이다. 이러한 상태 테이블은 열의 크기는 심볼 인덱스의 개수만큼 가지며, 행의 크기는 상태의 개수만큼 가진다. 이러한 상태 테이블에서 현재 상태는 현재 진행중인 상태이며, 다음 상태는 현재 상태 행에서 심볼 인덱스열에 해당하는 값을 의미한다. 아울러, 상태 테이블의 셀(Cell)값은 다음 상태의 값을 의미하는데, 심볼 인덱스의 값에 해당하는 다음상태의 값이 없는 경우 널 상태 값(Null State)을 가진다.
억셉트 테이블은 상태가 웹쉘 패턴에 매칭되었는 지를 나타내는 테이블이다. 이러한 억셉트 테이블에서 행의 크기는 상태의 개수와 동일하고, 값은 웹쉘 패턴이 매칭되었을 경우 억셉트(Accept) 값을 가지고, 매칭되지 않을 경우 낫 억셉트(Not Accept) 값을 가진다. 억셉트 테이블의 억셉트 값은 웹쉘 패턴임을 나타내는 패턴 식별자 또는 패턴 정보의 식별 정보로 표시된다.
메타 패턴 관리부(15)는 메타 패턴 생성부(14)에서 생성된 메타 패턴을 저장하고, 웹서버 또는 웹서버를 관리하는 관리 서버(30)에 구비된 웹쉘 검색 서버(20)로 전송한다.
이에 따라, 웹쉘 검색 서버(20)는 상기한 바와 같이, 웹 서버 또는 웹 서버를 관리하는 관리 서버(30)에 마련되어 웹 서버 또는 웹 서버를 관리하는 관리 서버(30)에 저장되어 있는 웹 파일에서 웹쉘을 검색한다.
웹 파일 검색부(22)는 웹 서버 또는 웹 서버 관리 서버(30)의 웹 파일 저장부(31)에서 웹 파일을 검색한다.
메타 패턴 저장부(23)는 메타 패턴 생성서버(10)에서 생성된 메타 패턴을 저장한다.
웹쉘 검색부(21)는 메타 패턴 저장부(23)에 저장되어 있는 메타 패턴을 이용하여 웹 파일 검색부(22)에 의해 검색된 웹 파일에서 웹쉘을 검색한다.
검색 결과 저장부(24)는 웹쉘 검색부(21)에서 검색된 검색 결과를 저장한다. 이러한 검색 결과에는 검색된 웹쉘 패턴과 웹쉘이 검색된 웹 파일명, 웹 파일내 검색 위치, 검색 시간 등이 포함될 수 있을 것이다.
이하, 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치의 동작 과정을 도 2 내지 도 6 을 참조하여 상세하게 설명한다.
도 2 는 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 탐지 장치의 동작 과정을 도시한 순서도이고, 도 3 은 본 발명의 일 실시예에 따른 정규표현식으로부터 변환된 비결정유한오토마타의 그래프이며, 도 4 는 도 3 의 비결정유한오토마타로부터 변환된 결정유한오토마타의 그래프이며, 도 5 는 도 4 의 결정유한오토마타로부터 변환된 최적화된 결정유한오토마타의 그래프이며, 도 6 은 본 발명의 일 실시예에 따른 메타 패턴을 이용한 웹쉘 패턴 탐지 방법의 순서도이다.
참고로, 본 실시예에서는 임의의 정규 표현식을 예시로 하여 설명한다.
이하, 정규 표현식 ₩.run₩ *₩( 을 예시로 하여 설명한다.
먼저 메타 패턴 생성서버(10)는 정규 표현식 ₩.run₩ *₩( 을 해석(S10)하여 다양한 문자열을 얻을 수 있다.
이러한 ₩.run₩ *₩( 에서, 입력 문자는 ".", "r", "u", "n", ""(공백), "("로 이루어지고, ".run(", ".run (", "run (" 등으로 나타내어진다. 여기서, "run"과 "(" 사이에 공백(space)가 없거나 하나 이상 나타내어질 수 있다.
다음으로, 정규 표현식 ₩.run₩ *₩( 으로부터 비결정유한오토마타를 생성한다(S10,S20).
여기서, 상기한 정규 표현식 ₩.run₩ *₩( 은 도 3 에 도시된 바와 같이, 총 11개의 상태를 가진 상태도(state diagram)으로 표현된다.
최종 '10' 상태에까지 진행되어야 정규 표현식 ₩.run₩ *₩( 을 만족하게 된다. 만약, 상태도에 표시된 문자 이외의 다른 문자가 입력되면, 해당 문자열은 정규 표현식 ₩.run₩ *₩( 을 만족하지 않는 문자열에 해당한다.
도 3 을 참조하면, 일 예로 현재 상태 '0'에서, ε 에 따라, 다음 상태 '1'이 되는데, 이러한 과정은 나머지 각 상태 마다 입력되는 문자에 따라 다음 상태로 변환되게 된다.
이러한 도 3 의 비결정유한오토마타의 테이블은 하기의 표 2 와 같다.
비결정유한오토마타의 테이블
상태 ε . r u n space ( Accept
0 1 -- -- -- -- -- -- Not Accept
1 -- 2 -- -- -- -- -- Not Accept
2 -- -- 3 -- -- -- -- Not Accept
3 -- -- -- 4 -- -- -- Not Accept
4 -- -- -- -- 7 -- -- Not Accept
5 -- -- -- -- -- 6 -- Not Accept
6 5,8 -- -- -- -- -- -- Not Accept
7 5,8 -- -- -- -- -- -- Not Accept
8 -- -- -- -- -- 9 Not Accept
9 10 -- -- -- -- -- -- Not Accept
10 -- -- -- -- -- -- -- Accept
이러한 비결정유한오토마타가 생성되면, 다음으로 비결정유한오토마타를 이용하여 결정유한오토마타를 생성한다(S30).
결정유한오토마타는 도 4 에 도시된 바와 같다.
여기서, 비결정유한오토마타는 총 11 개의 상태를 가지는 바, 이를 결정유한오토마타로 생성할 경우 7개의 상태를 가진 상태도로 표현된다.
이러한 비결정유한오토마타의 테이블은 하기의 표 3 과 같다.
결정유한오토마타의 테이블
상태 . r u n space ( Accept
0 1 -- -- -- -- -- Not Accept
1 -- 2 -- -- -- -- Not Accept
2 -- -- 3 -- -- -- Not Accept
3 -- -- -- 4 -- -- Not Accept
4 -- -- -- -- 5 6 Not Accept
5 -- -- -- -- 5 6 Not Accept
6 -- -- -- -- -- -- Accept
이와 같이, 비결정유한오토마타를 생성한 다음에는, 이를 이용하여 최적화된 비결정유한오토마타를 생성한다(S40)
여기서, 결정유한오토마타는 총 7 개의 상태를 가지는 바, 이를 최적화된 결정유한오토마타로 생성할 경우, 도 5 에 도시된 바와 같이, 6개의 상태를 가진 상태도로 표현된다.
이러한 최적화된 비결정유한오토마타의 테이블은 하기의 표 4 와 같다.
최적화된 비결정유한오토마타의 테이블
상태 . r u n space ( Acecept
0 1 -- -- -- -- -- Not Accept
1 -- 2 -- -- -- -- Not Accept
2 -- -- 3 -- -- -- Not Accept
3 -- -- -- 4 -- -- Not Accept
4 -- -- -- -- 4 5 Not Accept
5 -- -- -- -- -- -- Accept
이와 같이, 최적화된 비결정유한오토마타가 생성되면, 다음으로 이를 이용하여 메타 패턴을 생성한다(S50).
메타 패턴은 심볼 테이블과 상태 테이블 및 억셉트 테이블을 포함한다.
여기서, 심볼 테이블은 최적화된 결정유한오토마타에서 입력 문자의 값을 '1'에서부터 순차적으로 정의하고 나머지 값들은 '0'으로 정의한다.
즉, 입력 문자 "."는 '1'을 가지며, 입력 문자 "r"은 '2'를 가지며, 입력 문자 "u"는 '3'을 가지며, 입력 문자 "n"은 '4'를 가지며, 입력 문자 " "(공백)은 '5'를 가지며, 입력 문자 "("는 '6'을 가지며, 나머지 입력 문자는 '0'을 가진다.
이 경우, 총 256개의 문자값을 가지는 입력값을 그룹핑하여 7가지로 축소할 수 있다.
이러한 표현된 심볼 테이블은 표 5 와 같다.
심볼 테이블
입력문자 a b c d e f g h i j
0 0 0 0 0 0 0 0 0 0
입력문자 k l m n o p q r s t
0 0 0 4 0 0 0 2 0 0
입력문자 u v w x y z space . ! (
3 0 0 0 0 0 5 1 0 6
이러한 심볼 테이블을 이용하여 상태 테이블을 생성한다.
상태 테이블의 열의 크기는 심볼 테이블의 입력값의 수와 동일하므로, 상태 테이블의 열은 '0'에서부터 '6'까지의 값을 가지게 된다.
또한, 상태 테이블의 행의 크기는 최적화된 결정유한오토마타 그래프의 상태의 수와 동일하므로, 상태 테이블의 행은 7개의 값을 가진다.
따라서, 상태 테이블은 6X7의 행렬의 형태로 정의된다.
이러한 상태 테이블은 하기의 표 6 과 같다.
상태 테이블
상태 0 1 2 3 4 5 6
0 NS 1 NS NS NS NS NS
1 NS NS 2 NS NS NS NS
2 NS NS NS 3 NS NS NS
3 NS NS NS NS 4 NS NS
4 NS NS NS NS NS 4 5
5 NS NS NS NS NS NS NS
즉, '0' 상태는 입력값 '.'이 나오는 경우 '1' 상태로 천이되기 때문에 입력 값 '.'에 해당하는 심볼 테이블의 값인 '1'을 '0'행의 '1'열 위치에 '1'상태로 이동하는 정보를 저장하고 나머지는 NS를 저장한다.
'1' 상태는 입력값 'r'이 나오는 경우 '2' 상태로 천이되기 때문에 입력 값 'r'에 해당하는 심볼 테이블의 값인 '2'를 '1'행의 '2'열 위치에 '2'상태로 이동하는 정보를 저장하고 나머지는 NS를 저장한다.
'2' 상태는 입력값 'u'가 나오는 경우 '3' 상태로 천이되기 때문에 입력 값 'u'에 해당하는 심볼 테이블의 값인 '3'을 '2'행의 '3'열 위치에 '3'상태로 이동하는 정보를 저장하고 나머지는 NS를 저장한다.
'3' 상태는 입력값 'n'이 나오는 경우 '4' 상태로 천이되기 때문에 입력 값 'n'에 해당하는 심볼 테이블의 값인 '4'를 '3'행의 '4'열 위치에 '4'상태로 이동하는 정보를 저장하고 나머지는 NS를 저장한다.
'4' 상태는 입력값 ''(공백)이 나오는 경우 '4'상태로로 천이되기 때문에 입력 값 ''(공백)에 해당하는 심볼 테이블의 값인 '5'를 '4'행의 '5'열 위치에 '4'상태로 이동하는 정보를 저장하고, 입력값이 '('이 나오는 경우 '5'상태로 천이되기 때문에 입력 값 '('에 해당하는 심볼 테이블의 값인 '6'을 '4'행의 '6'열 위치에 '5'상태로 이동하는 정보를 저장하고 나머지는 NS를 저장한다.
'5' 상태는 입력값에 의해서 천이되는 상태가 없으므로 모두 NS를 저장한다.
여기서, NS(Null State)는 입력 값에 따라 진행할 다음 상태가 없음을 의미한다.
억셉트 테이블은 최적화된 결정유한오토마타에서 정규 표현식을 만족하는 상태가 '5'상태이므로 해당 상태에 해당하는 열의 값에 억셉트정보를 저장한다.
이러한 억셉트 테이블은 하기의 표 7 과 같다.
억셉트 테이블
상태 Accept
0 Not Accept
1 Not Accept
2 Not Accept
3 Not Accept
4 Not Accept
5 Accept
이와 같이, 메타 패턴 생성서버(10)는 상기한 과정을 거쳐 메타 패턴을 생성한 후에는, 웹쉘 검색 서버(20)에 메타 패턴을 전송한다(S60).
여기서, 웹쉘 검색 서버(20)는 웹 파일을 저장하거나 관리하는 웹 서버 또는 웹 서버 관리 서버(30) 등에 마련된다.
또한, 메타 패턴의 전송 방식은 유무선 통신망을 통해 전송하거나, 별도의 외부 메모리 등을 통해 오프라인으로 배포하는 것을 모두 포함한다.
웹쉘 검색 서버(20)는 메타 패턴 생성서버(10)로부터 메타 패턴이 전송되면, 웹 서버 또는 웹 서버를 관리하는 관리 서버(30)에 저장되어 있는 웹 파일을 검색한다(S70).
이후, 검색된 웹 파일에서 메타 패턴을 이용하여 웹쉘을 검색하고, 검색 결과를 생성(S80)한다.
이하, 웹쉘 검색 서버(20)가 웹 파일에서 웹쉘을 검색하고, 검색 결과를 생성하는 과정을 도 6 을 참조하여 상세하게 설명한다.
먼저, 상태를 초기화(S802)한 후, 웹쉘을 검색하고자 하는 웹 파일로부터 1개의 문자를 읽어들인다(S804).
웹 파일에 읽어들인 입력 문자가 해당 웹 파일의 끝을 나타내는 지를 검사(S806)하고, 확인 결과, 입력 문자가 웹 파일의 끝을 나타내면 종료하고, 아니면, 읽어 들인 입력 문자를 이용하여 심볼 테이블에서 심볼 인덱스값을 구한다(S808).
입력 문자를 이용하여 심볼 테이블에서 심볼 인덱스값을 구하면, 이 심볼 인덱스값을 이용하여 상태 테이블에서 다음 상태의 값을 구한다(S810).
이때, 다음 상태의 값이 널 상태(Null State)인지를 검사(S812)하고, 검사 결과 다음 상태의 값이 널 상태이면, 초기화한 후 상기한 과정을 다시 수행한다.
반면에, 다음 상태의 값이 널 상태가 아니면, 다음 상태의 값을 이용하여 억셉트 테이블에서 억셉트 값을 구한다(S814).
이 경우 억셉트 값을 이용하여 웹쉘 패턴과 일치하는 지를 검사(S816)하고, 패턴과 일치하지 않으면, 현재 상태를 다음 상태로 변환(S820)한 후, 웹 파일에서 다음 문자 1개를 읽어들여 상기한 과정을 반복한다.
반면에, 웹쉘 패턴과 일치하면, 검색된 웹쉘 패턴 정보를 저장(S818)하고, 최종적으로 검색 결과를 생성하여 출력한다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.
10: 메타 패턴 생성서버 11: 정규 표현 규칙 저장부
12: 비결정유한오토마타 생성부 13: 결정유한오토마타 생성부
14: 메타 패턴 생성부 15: 메타 패턴 관리부
20: 웹쉘 검색 서버 21: 웹쉘 검색부
22: 웹 파일 검색부 23: 메타 패턴 저장부
24: 검색 결과 저장부 30: 웹 서버/웹 서버 관리 서버
31: 웹 파일 저장부

Claims (14)

  1. 정규 표현 규칙으로 정의한 웹쉘 패턴을 해석하여 비결정유한오토마타를 생성하는 비결정유한오토마타 생성부;
    상기 비결정유한오토마타로 최적화된 결정유한오토마타를 생성하는 결정유한오토마타 생성부; 및
    상기 최적화된 결정유한오토마타로부터 메타 패턴을 생성하는 메타 패턴 생성부를 포함하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  2. 제 1 항에 있어서, 상기 정규 표현 규칙에서,
    x 는 문자 x를, "x"는 x에 오퍼레이터(operator)가 와도 단순히 x임을, ₩x는 x에 오퍼레이터(operator)가 와도 단순히 x임을, [xy]는 문자열 xy를, [x-z]는 x에서 z까지(x,y,z)를, [^x]는 x 이외의 아무 문자를, .는 뉴 라인(New line)이 아닌 아무 문자, ^x는 줄의 제일 처음에 오는 x, <y>x는 시작 조건이 y인 x를, x$는 줄의 제일 끝에 오는 x를, x?는 선택적으로 오는 x를, x*는 널(Null)을 포함하는 x의 인스턴스(instance)를, x+는 널(Null)이 아닌 x의 인스턴스(instance)를 x|y는 x 또는 y를, (x)는 x를, x/y는 뒤에 y를 수반하는 x를, {xx}는 정의 부분에 기초하여 xx가 번역을, x{m,n}는 m에서 n 사이의 수 만큼 x가 발생하는 것을 의미하는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  3. 제 1 항에 있어서, 상기 메타 패턴은 심볼 테이블, 상태 테이블 및 억셉트 테이블을 포함하는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  4. 제 3 항에 있어서, 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 입력 문자의 값을 그룹핑한 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  5. 제 4 항에 있어서, 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 상기 입력 문자의 값을 '1'에서부터 순차적으로 정의하고 나머지 값들은 '0'으로 정의하여 그룹핑되는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  6. 제 3 항에 있어서, 상기 상태 테이블은 현재 상태에서 심볼 인덱스값에 따라 천이되는 다음 상태를 나타내어져, 상기 심볼 테이블의 심볼 인덱스값의 수와 상기 최적화된 결정유한오토마타의 상태의 수에 따라 표현되는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  7. 제 3 항에 있어서, 상기 억셉트 테이블은 상기 최적화된 정규 표현 규칙을 만족하는 상태에 해당하는 열의 값에 억셉트 정보를 표현하여 상기 문자가 웹쉘 패턴에 매칭되는 지를 나타내는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  8. 정규 표현 규칙으로 정의한 웹쉘 패턴을 해석하여 생성된 메타 패턴을 저장하는 메타 패턴 저장부; 및
    상기 메타 패턴 저장부에 저장된 상기 메타 패턴을 이용하여 웹 파일에서 상기 웹쉘 패턴을 검색하는 웹쉘 검색부를 포함하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  9. 제 8 항에 있어서, 상기 웹쉘 검색부는
    상기 웹 파일에서 입력 문자를 읽어들여 상기 입력 문자를 통해 심볼 테이블에서 심볼 인덱스값을 구하고, 상기 심볼 인덱스값을 이용하여 상태 테이블에서 다음 상태의 값을 구하여 상기 다음 상태의 값이 널 상태가 아니면, 상기 다음 상태의 값을 이용하여 억셉트 테이블에서 억셉트 값을 구한 후, 상기 억셉트 값이 상기 웹쉘 패턴과 일치하는 지를 검사하는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  10. 제 8 항에 있어서, 웹 서버 또는 상기 웹 서버를 관리하는 관리 서버에서 상기 웹 파일을 검색하여 상기 웹쉘 검색부로 입력하는 웹 파일 검색부를 더 포함하는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  11. 제 8 항에 있어서, 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 입력 문자의 값을 그룹핑한 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  12. 제 11 항에 있어서, 상기 심볼 테이블은 상기 최적화된 결정유한오토마타에서 상기 입력 문자의 값을 '1'에서부터 순차적으로 정의하고 나머지 값들은 '0'으로 정의하여 그룹핑되는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  13. 제 8 항에 있어서, 상기 상태 테이블은 현재 상태에서 심볼 인덱스값에 따라 천이되는 다음 상태를 나타내어져, 상기 심볼 테이블의 심볼 인덱스값의 수와 상기 최적화된 결정유한오토마타의 상태의 수에 따라 표현되는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
  14. 제 8 항에 있어서, 상기 억셉트 테이블은 상기 최적화된 정규 표현 규칙을 만족하는 상태에 해당하는 열의 값에 억셉트 정보를 표현하여 상기 문자가 웹쉘 패턴에 매칭되는 지를 나타내는 것을 특징으로 하는 메타 패턴을 이용한 웹쉘 탐지 장치.
KR1020110061014A 2011-06-23 2011-06-23 메타 패턴을 이용한 웹쉘 탐지 장치 KR101244945B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110061014A KR101244945B1 (ko) 2011-06-23 2011-06-23 메타 패턴을 이용한 웹쉘 탐지 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110061014A KR101244945B1 (ko) 2011-06-23 2011-06-23 메타 패턴을 이용한 웹쉘 탐지 장치

Publications (2)

Publication Number Publication Date
KR20130002365A true KR20130002365A (ko) 2013-01-08
KR101244945B1 KR101244945B1 (ko) 2013-04-05

Family

ID=47834999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110061014A KR101244945B1 (ko) 2011-06-23 2011-06-23 메타 패턴을 이용한 웹쉘 탐지 장치

Country Status (1)

Country Link
KR (1) KR101244945B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405652B2 (en) 2013-10-31 2016-08-02 Red Hat, Inc. Regular expression support in instrumentation languages using kernel-mode executable code
CN112506885A (zh) * 2020-12-10 2021-03-16 浙江工业大学 一种基于系统审计日志与打分机制的webshell实时检测方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100065B (zh) * 2015-06-26 2018-03-16 北京奇安信科技有限公司 基于云的webshell攻击检测方法、装置及网关
CN105069355B (zh) * 2015-08-26 2018-09-11 厦门市美亚柏科信息股份有限公司 webshell变形的静态检测方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101068931B1 (ko) * 2009-03-05 2011-09-29 김동규 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405652B2 (en) 2013-10-31 2016-08-02 Red Hat, Inc. Regular expression support in instrumentation languages using kernel-mode executable code
CN112506885A (zh) * 2020-12-10 2021-03-16 浙江工业大学 一种基于系统审计日志与打分机制的webshell实时检测方法

Also Published As

Publication number Publication date
KR101244945B1 (ko) 2013-04-05

Similar Documents

Publication Publication Date Title
US10956572B2 (en) Domain-specific hardwired web browser machine
US9990583B2 (en) Match engine for detection of multi-pattern rules
US9405910B2 (en) Automatic library detection
US9529662B1 (en) Dynamic rule-based automatic crash dump analyzer
CN108089974A (zh) 利用定义的输入格式来测试应用
CN105160252A (zh) 一种结构化查询语言注入攻击的检测方法及装置
US11140153B2 (en) Techniques for identification of location of relevant fields in a credential-seeking web page
US9823922B1 (en) Source code mapping through context specific key word indexes and fingerprinting
KR101244945B1 (ko) 메타 패턴을 이용한 웹쉘 탐지 장치
CN105164691A (zh) 利用计算机网络为测试计算机软件应用优化测试数据有效载荷的选择
US20220004621A1 (en) Data recovery through reversal of hash values using probabilistic data structures
RU2652451C2 (ru) Способы обнаружения аномальных элементов веб-страниц
US9298694B2 (en) Generating a regular expression for entity extraction
US9984065B2 (en) Optimizing generation of a regular expression
CN107977344A (zh) 数据存储方法、获取方法及服务器
CN104375935A (zh) Sql注入攻击的测试方法和装置
US10754748B2 (en) System and method for constructing extensible event log with javascript object notation (JSON) encoded payload data
US9398041B2 (en) Identifying stored vulnerabilities in a web service
KR102583399B1 (ko) PDF에서 Link의 무해화를 위한 방법 및 장치
US10515219B2 (en) Determining terms for security test
CN111488287B (zh) 注入漏洞测试用例的生成方法、装置、介质及电子设备
US20200356343A1 (en) Multipattern regular expression search systems and methods therefor
KR102134711B1 (ko) 스마트 컨트랙트의 룰 관리 방법 및 장치
CN117056934A (zh) Sql注入漏洞定位检测方法、装置、电子设备及存储介质
CN116561059A (zh) 网络靶场的数据文件操作方法、系统、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170216

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180309

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 8