KR101865378B1 - 웹 쉘 탐지 시스템 - Google Patents

웹 쉘 탐지 시스템 Download PDF

Info

Publication number
KR101865378B1
KR101865378B1 KR1020180012441A KR20180012441A KR101865378B1 KR 101865378 B1 KR101865378 B1 KR 101865378B1 KR 1020180012441 A KR1020180012441 A KR 1020180012441A KR 20180012441 A KR20180012441 A KR 20180012441A KR 101865378 B1 KR101865378 B1 KR 101865378B1
Authority
KR
South Korea
Prior art keywords
hash value
web
module
web shell
shell
Prior art date
Application number
KR1020180012441A
Other languages
English (en)
Inventor
이대호
이동근
이형
진세민
최성수
Original Assignee
주식회사 에프원시큐리티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에프원시큐리티 filed Critical 주식회사 에프원시큐리티
Priority to KR1020180012441A priority Critical patent/KR101865378B1/ko
Application granted granted Critical
Publication of KR101865378B1 publication Critical patent/KR101865378B1/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

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

Abstract

해커의 다양한 방법을 통한 서버 해킹을 방지하기 위하여, 서버 해킹의 선행 도구인 웹 쉘 을 탐지하여 서버 해킹을 예방할 수 있는 웹 쉘 탐지 시스템이 개시된다.
본 발명은 해시, 퍼지 해시 및 패턴 중 적어도 하나를 이용하여 웹 쉘을 탐지함으로써, 보다 효율적이고, 웹 쉘 탐지 및 대응에 소요되는 시간을 단축시킬 수 있

Description

웹 쉘 탐지 시스템{WEB SHELL DETECTION SYSTEM}
본 발명은 웹 쉘 탐지 시스템에 관한 것으로서, 보다 상세하게는 해커의 다양한 방법을 통한 서버 해킹을 방지 하기 위하여, 서버 해킹의 선행 도구인 웹 쉘 을 탐지하여 서버 해킹을 예방할 수 있고, 이러한 웹 쉘을 관리자가 편리하게 관리할 수 있는 웹 쉘 탐지 시스템에 관한 것이다.
웹 쉘(Web shell)은 해커가 원격에서 웹서버를 대상으로 명령을 실행할 수 있도록 작성한 asp, jsp, php 파일 등의 웹 스크립트(Web Script) 파일을 말한다. 해커는 웹서버의 취약점을 이용하여 웹서버에 웹 쉘을 업로드한 후, 해당 웹 쉘을 실행함으로써 대상 서버의 정보를 열람하거나, 웹 페이지 소스 코드를 열람 및 변조할 수 있다.
종래의 웹 쉘 탐지 방법에는 서버 기반 웹 쉘 탐지 방법과 네트워크 기반 웹 쉘 탐지 방법이 존재한다. 서버 기반 웹 쉘 탐지 방법은 웹 쉘 에이전트를 웹 서버에 설치하고, 웹 루트/업로드 디렉토리를 탐지 디렉토리로 설정한 후, 웹루트/업로드 디렉토리에 신규 파일이 업로드되거나 변경되면 웹 쉘 에이전트에서 웹 쉘 패턴을 검출하는 방법이다. 네트워크 기반 웹 쉘 탐지 방법은 DPI(Deep Packet Inspection) 기능을 이용하여 IPS(Intrusion Prevention System)/ IDS(Intrusion Detection System)/WAF(Web Application Firewall)와 같은 네트워크 단의 방어 수단에서 네트워크 상에 전달되는 패킷을 분석함으로써 웹 쉘 패턴을 탐지하는 방법이다.
하지만, 웹 쉘 패턴이 일반적인 소스 코드와 명확하게 구분되어 있지 않기 때문에, 종래의 서버 기반 웹 쉘 탐지 방법은 오탐율이 상당히 높은 문제점이 있었다. 예를 들면, 일반적인 개발에 사용되는 디렉토리 정보를 읽는 소스 코드 readdir이 웹 쉘 탐지의 패턴으로도 탐지될 수 있었다.
따라서, 종래의 서버 기반 웹 쉘 탐지 방법은 웹 쉘 패턴으로 인한 이벤트가 발생하면, 관리자가 소스 코드를 직접 확인하여 웹 쉘 여부를 분석할 필요가 있고, 이에 따라 웹 쉘 탐지 및 대응에 많은 시간이 소요되는 문제점이 있었다.
이러한 문제를 극복하기 위하여, 대한민국 공개특허공보 제10-2009-0031393호(2009.03.25 공개)에서는 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법을 개시하고 있다.
그러나 종래 기술은 결론적으로 탐지 결과를 관리자에게 알려주고, 관리자가 원격으로 확인, 수정 또는 검역해야하는 별도의 절차가 필요하기 때문에 상술한 문제점을 극복할 수 없다.
대한민국 공개특허공보 제10-2009-0031393호(2009.03.25 공개)
따라서, 이러한 문제점을 해결하기 위한 본 발명의 첫 번째 목적은 해시, 퍼지 해시 및 패턴 중 적어도 하나를 이용하여 웹 쉘을 탐지함으로써, 보다 효율적이고, 웹 쉘 탐지 및 대응에 소요되는 시간을 단축시킬 수 있는 웹 쉘 탐지 시스템을 제공하는 것이다.
또한, 두 번째 목적은 스크립트의 난독화 여부를 판단함으로써, 웹 쉘 탐지 과정에서 발생할 수 있는 웹 쉘 오탐 문제를 사전에 차단할 수 있는 웹 쉘 탐지 시스템을 제공하는 것이다.
그리고 세 번째 목적은 악성코드 URL을 판단함으로써, 악성코드가 배포되기 전에 미리 탐지, 시스템관리자 또는 관제시스템에 알릴 수 있는 웹 쉘 탐지 시스템을 제공하는 것이다.
상기 첫 번째 목적 내지 세 번째 목적을 달성하기 위하여 본 발명은 에이전트 및 관리 서버를 포함하는 웹 쉘 탐지 시스템에 있어서, 상기 에이전트는 웹 쉘을 탐지하여 웹 쉘 정보를 생성하는 탐지부 및 상기 탐지부가 생성한 웹 쉘 정보를 상기 관리 서버로 송신하는 통신부를 포함하며, 상기 관리 서버는 상기 통신부로부터 수신한 웹 쉘 정보를 저장하는 저장부를 포함하는 웹 쉘 탐지 시스템을 제공한다.
상기 탐지부는 특정 시스템에 접근 가능한 오브젝트 또는 메소드 및 인코딩된 파일에 삽입된 헤더 문자열 중 어느 하나를 웹 쉘 시그니처로 지정하여 이를 통해 웹 쉘을 탐지할 수 있다.
상기 탐지부는 웹 로그 정보를 이용하여 웹 쉘 시그니처를 추출하고, 추출한 웹 쉘 시그니처를 이용하여, 웹 쉘을 탐지할 수 있다.
상기 탐지부는 임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해시 값을 출력하는 해시 함수를 이용하여, 웹 스크립트로부터 해시 값을 추출하는 해시 값 추출 모듈 및 상기 해시 값 추출 모듈이 추출한 해시 값이 기 저장된 해시 값 DB에 포함되는지 여부를 판단하고, 상기 해시 값이 기 저장된 해시 값 DB에 포함되는 경우, 상기 웹 스크립트를 웹 쉘로 판단하는 웹 쉘 판단 모듈을 포함하고, 상기 통신부는 상기 웹 쉘 판단 모듈의 판단 결과를 상기 저장부로 송신하며, 상기 저장부는 상기 통신부로부터 수신한 상기 웹 쉘 판단 모듈의 판단 결과를 저장할 수 있다.
상기 탐지부는 웹 스크립트를 특정 크기 단위로 구분하고, 특정 크기 단위 별로 해시 값을 추출한 후, 이를 이용하여 퍼지 해시 값을 생성하는 해시 값 추출 모듈 및 상기 퍼지 해시 값을 이용하여, 기 저장된 웹 쉘의 퍼지 해시 값과 비교하고, 비교한 결과를 백분율로 산출함으로써, 웹 쉘과의 유사도를 판단하는 유사도 판단 모듈을 포함하고, 상기 통신부는 상기 유사도 판단 모듈의 판단 결과를 상기 저장부로 송신하며, 상기 저장부는 상기 통신부로부터 수신한 상기 유사도 판단 모듈의 판단 결과를 저장할 수 있다.
상기 탐지부는 웹 스크립트의 인코딩, 압축 및 난독화를 포함하는 비 정상코드 및 정상코드를 탐지하는 난독화 탐지 모듈을 포함하고, 상기 통신부는 상기 난독화 탐지 모듈이 탐지한 비 정상코드 및 정상코드를 상기 저장부로 송신하며, 상기 저장부는 상기 통신부로부터 수신한 상기 난독화 탐지 모듈이 탐지한 비 정상코드 및 정상코드를 저장할 수 있다.
상기 탐지부는 웹 스크립트의 바이트 스트림(Byte streams)을 웹 쉘의 시그니처와 비교하고, 비교 결과, 웹 쉘의 시그니처와 동일한 경우, 상기 바이트 스트림(Byte streams)의 패턴을 분석하고, 해시 값을 추출하는 패턴 분석 모듈을 포함하고, 상기 통신부는 상기 패턴 분석 모듈이 분석한 상기 바이트 스트림(Byte streams)의 패턴 및 상기 해시 값을 상기 저장부로 송신하며, 상기 저장부는 상기 통신부로부터 수신한 상기 패턴 분석 모듈이 분석한 상기 바이트 스트림(Byte streams)의 패턴 및 상기 해시 값을 저장할 수 있다.
상기 탐지부는 사용자가 접속한 URL의 기 설정된 깊이까지 링크페이지의 복사본을 생성하여, 생성된 복사본을 크롤링하는 웹 크롤링 모듈 및 상기 웹 크롤링 모듈의 상기 크롤링 결과를 이용하여 악성코드 URL을 판단하는 악성코드 URL 판단 모듈을 포함하고, 상기 통신부는 상기 악성코드 URL 판단 모듈이 판단한 악성코드 URL을 상기 저장부로 송신하며, 상기 저장부는 상기 통신부로부터 수신한 상기 악성코드 URL 판단 모듈이 판단한 악성코드 URL을 저장할 수 있다.
상기에서 설명한 본 발명의 웹 쉘 탐지 시스템에 의하면, 해시, 퍼지 해시 및 패턴 중 적어도 하나를 이용하여 웹 쉘을 탐지함으로써, 보다 효율적이고, 웹 쉘 탐지 및 대응에 소요되는 시간을 단축시킬 수 있다.
또한, 스크립트의 난독화 여부를 판단함으로써, 웹 쉘 탐지 과정에서 발생할 수 있는 웹 쉘 오탐 문제를 사전에 차단할 수 있다.
그리고 악성코드 URL을 판단함으로써, 악성코드가 배포되기 전에 미리 탐지, 시스템관리자 또는 관제시스템에 알릴 수 있다.
도 1은 본 발명의 일 실시예인 웹 쉘 탐지 시스템의 개략적인 구성을 나타낸 도면이다.
도 2는 본 발명의 일 구성인 탐지부의 개략적인 구성을 나타낸 도면이다.
도 3은 본 발명에 있어서, 퍼지 해시를 설명하기 위한 도면이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정 해석되지 아니하며, 발명자는 그 사용자의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “…부”, “…기”, “…단”, “모듈”, “장치” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 및/또는 소프트웨어의 결합으로 구현될 수 있다.
본 발명의 실시 예에서 사용되는 용어에 대해 간략히 설명하고, 본 실시 예들에 대해 구체적으로 설명하기로 한다.
본 발명의 실시 예에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예들의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 발명의 실시 예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 발명의 실시 예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본 발명의 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의‘모듈’ 혹은 복수의‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
이하, 본 발명의 실시 예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예인 웹 쉘 탐지 시스템의 개략적인 구성을 나타낸 도면이다.
도 1을 참고하면, 웹 쉘 탐지 시스템은 에이전트(100) 및 관리 서버(200)를 포함한다.
그리고 에이전트(100)는 탐지부(110) 및 통신부(120)를 포함할 수 있고, 관리 서버(200)는 저장부(210)를 포함할 수 있다.
보다 구체적으로, 탐지부(110)는 웹 쉘을 탐지하여 웹 쉘 정보를 생성할 수 있다.
또한, 탐지부(110)는 특정 시스템에 접근 가능한 오브젝트 또는 메소드 및 인코딩된 파일에 삽입된 헤더 문자열 중 어느 하나를 웹 쉘 시그니처로 지정할 수 있다.
여기서 특정 시스템에 접근 가능한 오브젝트 또는 메소드는 Wscript.Shell, Shell.Application 를 포함할 수 있다.
그리고 인코딩된 파일에 삽입된 헤더 문자열은 VBScript.Encode을 포함할 수 있다.
하기 표 1의 경우, 탐지부(110)가 웹 쉘 시그니처로 지정할 수 있는 내용을 개시한 것이며, 해당 내용만을 웹 쉘 시그니처로 지정할 수 있는 것은 아니다.
즉, 하기 표 1의 내용으로 웹 쉘 시그니처를 지정하는 것이 한정되지 않는다.
[표 1]
Figure 112018011261688-pat00001
그리고 탐지부(110)는 지정한 웹 쉘 시그니처를 이용하여 웹 쉘을 탐지할 수 있다.
또한, 탐지부(110)는 웹 로그 정보를 이용하여 웹 쉘 시그니처를 추출할 수 있다.
보다 구체적으로, 웹 쉘은 POST 방식으로 관련 데이터를 전송하기 때문에 웹 로그 정보를 이용하여 웹 쉘 실행 여부를 판단하기는 어려움이 있다.
하지만, 웹 쉘의 경우, 실행할 메뉴들을 GET 방식으로 전달하는바, GET 방식의 전달 과정을 타겟으로 하여, 웹 로그 정보에서 웹 쉘 시그니처를 추출할 수 있다.
그리고 탐지부(110)는 추출한 웹 쉘 시그니처를 이용하여 웹 쉘을 탐지할 수 있다.
그리고 통신부(120)는 탐지부(110)가 생성한 웹 쉘 정보를 관리 서버(200)로 송신할 수 있다.
여기서, 통신부(120)와 관리 서버(200)간의 데이터 송수신은 유선 또는 무선 통신이 이용될 수 있다.
그리고 무선 통신의 경우, 와이파이 칩, 블루투스 칩, NFC칩, 무선 통신 칩 등과 같은 다양한 통신 칩이 이용될 수 있다. 이때, 와이파이 칩, 블루투스 칩, NFC 칩은 각각 WiFi 방식, 블루투스 방식, NFC 방식으로 통신을 수행한다. 이 중 NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
또한, 저장부(210)는 통신부(120)로부터 수신한 웹 쉘 정보를 저장할 수 있다.
그리고 관리 서버(200)는 통신 모듈(미도시)을 포함할 수 있고, 통신 모듈(미도시)을 이용하여 기 설정된 관리자 단말(미도시)로 웹 쉘 정보를 송신할 수 있다.
여기서 관리자 단말(미도시)은 스마트폰, 태블릿 PC, 노트북 및 데스크탑 PC 등으로 구현될 수 있다.
도 2는 본 발명의 일 구성인 탐지부의 개략적인 구성을 나타낸 도면이고, 도 3은 본 발명에 있어서, 퍼지 해시를 설명하기 위한 도면이다.
도 2 를 참고하면, 탐지부(110)는 해시 값 추출 모듈(111), 웹 쉘 판단 모듈(112), 유사도 판단 모듈(113), 난독화 탐지 모듈(114), 패턴 분석 모듈(115), 웹 크롤링 모듈(116) 및 악성코드 URL 판단 모듈(117)을 포함할 수 있다.
해시 값 추출 모듈(111)은 임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해시 값을 출력하는 해시 함수를 이용하여, 웹 스크립트로부터 해시 값을 추출할 수 있다.
또한, 해시 값 추출 모듈(111)은 웹 스크립트를 특정 크기 단위로 구분하고, 특정 크기 단위 별로 해시 값을 추출할 수 있다.
그리고 해시 값 추출 모듈(111)은 특정 크기 단위 별로 추출한 해시 값을 이용하여 퍼지 해시 값을 생성할 수 있다.
이는 도 3을 통해 확인할 수 있다.
보다 구체적으로, 도 3을 참고하면, 웹 스크립트에서 특정 크기 단위로 구분하는 것은 1 내지8 에서 1 내지 3, 4 내지 6 및 7 내지 8로 구분된 것을 의미할 수 있다.
즉, 도 3의 (a)가 특정 크기 단위임을 알 수 있다.
그리고 특정 크기 단위 별로 해시 값을 추출하는 것은 928c(b)를 의미할 수 있다.
또한, 특정 크기 단위 별로 추출한 해시 값을 이용하여 퍼지 해시 값을 생성하는 것은 도 3의 a823, 928c 및 817d가 특정 크기 단위 별로 추출한 해시 값을 의미하는 것이며, 이를 이용하여 생성하는 퍼지 해시 값은 238c7d를 의미할 수 있다.
이러한 퍼지 해시 값을 이용함으로써, 해시 값의 무결점 확보에 도움을 줄 수 있는 효과가 있다.
또한, 해시 값 추출 모듈(111)은 하기 수학식 1 내지 수학식 3을 이용하여, 롤링 해시 값을 생성할 수 있다.
여기서 롤링 해시는 전체 데이터를 환형구조(Circular Data Structure)로 구성하여 한 바이트씩 이동하면서 해시 값을 도출하는 방식을 의미한다.
n개 만큼의 문자를 가진 파일이 있다고 가정할 때, i번째 바이트는 bi로 표현할 수 있다.
즉, 수학식 1 내지 수학식 3에서 bi는 i번째 바이트 값을 의미할 수 있다.
또한, 입력 파일에서 임의의 p위치를 기준으로 롤링 해시 값은 마지막 바이트인 s에 의해 결정될 수 있다.
따라서, 임의의 p위치에서 롤링 해시 값 r은 하기 수학식 1처럼 표현될 수 있다.
[수학식 1]
Figure 112018011261688-pat00002
그리고 수학식 1에 의해 도출된 롤링 해시 값 rp로부터 b(p-s)의 영향을 제거하기 위해 X(bp-s)와 bp+1의 요인을 더한 Y(bp+1)을 적용함으로써, 수학식 2 및 3과 같이 rp+1의 계산이 가능할 수 있다.
[수학식 2]
Figure 112018011261688-pat00003
[수학식 3]
Figure 112018011261688-pat00004
즉, 상기 수학식 1 내지 3에서 p는 position 위치 값을 의미하는 것으로, 임의의 위치를 의미할 수 있다.
또한, 상기 수학식 1 내지 3에서 r은 롤링 해시 값을 의미할 수 있고, s는 last byte of the file로서, 포인트 이동에 따른 잔여 바이트 수를 의미할 수 있고, F()는 rolling hash function로서, 롤링 해시 함수를 의미하며, X(b(p-s))는 influence of b(p-s)로서, p-s 번째 바이트 값의 영향력을 의미하고, Y(b(p+1))는 influence of b(p+1)로서, p+1번째 바이트 값의 영향력을 의미할 수 있다.
이러한 롤링 해시 값을 이용함으로써, 퍼지 해시 값과 마찬가지로 해시 값의 무결점 확보에 도움을 줄 수 있는 효과가 있다.
그리고 웹 쉘 판단 모듈(112)은 해시 값 추출 모듈(111)이 추출한 해시 값이 기 저장된 해시 값 DB에 포함되는지 여부를 판단할 수 있다.
또한, 웹 쉘 판단 모듈(112)은 해시 값 추출 모듈(111)이 추출한 해시 값이 기 저장된 해시 값 DB에 포함되는 경우, 웹 스크립트를 웹 쉘로 판단할 수 있다.
그리고 이 경우, 상술한 통신부(120)는 웹 쉘 판단 모듈(112)의 판단 결과를 저장부(210)로 송신할 수 있다.
또한, 저장부(210)는 통신부(120)로부터 수신한 웹 쉘 판단 모듈(112)의 판단 결과를 저장할 수 있다.
그리고 상술한 통신 모듈(미도시)은 기 설정된 관리자 단말(미도시)로 웹 쉘 판단 모듈(112)의 판단 결과를 송신할 수 있다.
또한, 유사도 판단 모듈(113)은 퍼지 해시 값을 이용하여, 기 저장된 웹 쉘의 퍼지 해시 값과 비교할 수 있고, 비교한 결과를 백분율로 산출할 수 있다.
그리고 유사도 판단 모듈(113)은 롤링 해시 값을 이용하여, 기 저장된 웹 쉘의 롤링 해시 값과 비교할 수 있고, 비교한 결과를 백분율로 산출할 수 있다.
이를 통해 유사도 판단 모듈(113)은 웹 쉘과 웹 스크립의 유사도를 판단할 수 있다.
그리고 상술한 통신부(120)는 유사도 판단 모듈(113)의 판단 결과를 저장부(210)로 송신할 수 있다.
또한, 저장부(210)는 통신부(120)로부터 수신한 유사도 판단 모듈(113)의 판단 결과를 저장할 수 있다.
그리고 상술한 통신 모듈(미도시)은 기 설정된 관리자 단말(미도시)로 유사도 판단 모듈(113)의 판단 결과를 송신할 수 있다.
또한, 난독화 탐지 모듈(114)은 웹 스크립트의 인코딩, 압축 및 난독화를 포함하는 비 정상코드 및 정상코드를 탐지할 수 있다.
그리고 통신부(120)는 난독화 탐지 모듈(114)이 탐지한 비 정상코드 및 정상코드를 저장부(210)로 송신할 수 있다.
또한, 저장부(210)는 통신부(120)로부터 수신한 난독화 탐지 모듈(114)이 탐지한 비 정상코드 및 정상코드를 저장할 수 있다.
그리고 패턴 분석 모듈(115)은 웹 스크립트의 바이트 스트림(Byte streams)을 웹 쉘의 시그니처와 비교할 수 있다.
또한, 패턴 분석 모듈(115)은 웹 스크립트의 바이트 스트림(Byte streams)과 웹 쉘의 시그니처를 비교한 결과, 웹 쉘의 시그니처와 웹 스크립트의 바이트 스트림(Byte streams)이 동일한 경우, 바이트 스트림(Byte streams)의 패턴을 분석할 수 있고, 해당 바이트 스트림(Byte streams)의 해시 값을 추출할 수 있다.
그리고 통신부(120)는 패턴 분석 모듈(115)이 분석한 바이트 스트림(Byte streams)의 패턴 및 해시 값을 저장부(210)로 송신할 수 있다.
또한, 저장부(210)는 통신부(120)로부터 수신한 패턴 분석 모듈(115)이 분석한 바이트 스트림(Byte streams)의 패턴 및 해시 값을 저장할 수 있다.
그리고 상술한 통신 모듈(미도시)은 기 설정된 관리자 단말(미도시)로 패턴 분석 모듈(115)이 분석한 바이트 스트림(Byte streams)의 패턴 및 해시 값을 송신할 수 있다.
웹 크롤링 모듈(116)은 사용자가 접속한 URL의 기 설정된 깊이까지 링크페이지의 복사본을 생성하여, 생성된 복사본을 크롤링할 수 있다.
그리고 악성코드 URL 판단 모듈(117)은 웹 크롤링 모듈(116)의 크롤링 결과를 이용하여 악성코드 URL을 판단할 수 있다.
보다 구체적으로, 악성코드 URL 판단 모듈(117)은 크롤링 결과를 이용하여, 기 저장된 악성코드 유포 패턴을 이용하여, 해당 URL이 악성코드 유포지인지 판단할 수 있다.
또한, 악성코드 URL 판단 모듈(117)은 악성코드의 시그니처를 이용하여 악성코드의 종류를 식별하고 분류할 수 있다.
이러한 악성코드의 시그니처는 파일 또는 프로세스에 포함되는 텍스트 문자열 또는 바이너리 패턴일 수 있다.
또한, 악성코드 URL 판단 모듈(117)은 파일 또는 프로세스의 오프셋, 가상 메모리 주소 활용 여부 및 정규표현식을 이용하여 다양한 기준을 생성할 수 있으며, 해당 기준을 통해 패턴 매칭을 실행할 수 있다.
즉, 악성코드 URL 판단 모듈(117)은 생성한 기준을 통해 패턴 매칭을 실행하여, 악성코드 여부를 판단할 수 있고, 이를 통해 해당 URL이 악성코드 유포지인지 판단할 수 있다.
악성코드 URL 판단 모듈(117)이 해당 URL이 악성코드 유포지라고 판단한 경우, 통신부(120)는 악성코드 URL 판단 모듈(117)이 판단한 악성코드 URL을 저장부(210)로 송신할 수 있다.
그리고 저장부(210)는 통신부(120)로부터 수신한 악성코드 URL 판단 모듈(117)이 판단한 악성코드 URL을 저장할 수 있다.
또한, 상술한 통신 모듈(미도시)은 기 설정된 관리자 단말(미도시)로 악성코드 URL 판단 모듈(117)이 판단한 악성코드 URL을 송신할 수 있다.
상기와 같이 본 발명의 실시 예에 따른 웹 쉘 탐지 시스템의 구성 및 동작이 이루어질 수 있으며, 한편 상기 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나 여러 가지 변형이 본 발명의 범위를 벗어나지 않고 실시될 수 있다.
이상에서 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 수정 및 변형이 가능함은 물론이다.
본 실시 예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 에이전트 110: 탐지부
111: 해시 값 추출 모듈 112: 웹 쉘 판단 모듈
113: 유사도 판단 모듈 114: 난독화 탐지 모듈
115: 패턴 분석 모듈 116: 웹 크롤링 모듈
117: 악성코드 URL 판단 모듈 120: 통신부
200: 관리 서버 210: 저장부

Claims (8)

  1. 에이전트 및 관리 서버를 포함하는 웹 쉘 탐지 시스템에 있어서,
    상기 에이전트는
    웹 쉘을 탐지하여 웹 쉘 정보를 생성하는 탐지부;및
    상기 탐지부가 생성한 웹 쉘 정보를 상기 관리 서버로 송신하는 통신부;
    를 포함하며,
    상기 관리 서버는
    상기 통신부로부터 수신한 웹 쉘 정보를 저장하는 저장부;
    를 포함하고,
    상기 탐지부는
    임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해시 값을 출력하는 해시 함수를 이용하여, 웹 스크립트로부터 해시 값을 추출하며, 웹 스크립트를 특정 크기 단위로 구분하고, 특정 크기 단위 별로 해시 값을 추출한 후, 이를 이용하여 퍼지 해시 값을 생성하며, 전체 데이터를 환형구조(Circular Data Structure)로 구성하여 한 바이트씩 이동하면서 롤링 해시 값을 생성하는 해시 값 추출 모듈;
    상기 해시 값 추출 모듈이 추출한 해시 값이 기 저장된 해시 값 DB에 포함되는지 여부를 판단하고, 상기 해시 값이 기 저장된 해시 값 DB에 포함되는 경우, 상기 웹 스크립트를 웹 쉘로 판단하는 웹 쉘 판단 모듈;
    상기 퍼지 해시 값 및 상기 롤링 해시 값을 이용하여, 기 저장된 웹 쉘의 퍼지 해시 값 및 롤링 해시 값과 비교하고, 비교한 결과를 백분율로 산출함으로써, 웹 쉘과의 유사도를 판단하는 유사도 판단 모듈;
    사용자가 접속한 URL의 기 설정된 깊이까지 링크페이지의 복사본을 생성하여, 생성된 복사본을 크롤링하는 웹 크롤링 모듈;및
    상기 웹 크롤링 모듈의 상기 크롤링 결과 및 기 저장된 악성코드 유포 패턴을 이용하여, 해당 URL이 악성코드 유포지인지 판단함으로써, 악성코드 URL을 판단하는 악성코드 URL 판단 모듈;
    을 포함하고,
    상기 통신부는
    상기 웹 쉘 판단 모듈의 판단 결과를 상기 저장부로 송신하며, 상기 유사도 판단 모듈의 판단 결과를 상기 저장부로 송신하고, 상기 악성코드 URL 판단 모듈이 판단한 악성코드 URL을 상기 저장부로 송신하며,
    상기 저장부는
    상기 통신부로부터 수신한 상기 웹 쉘 판단 모듈의 판단 결과를 저장하며, 상기 통신부로부터 수신한 상기 유사도 판단 모듈의 판단 결과를 저장하고, 상기 통신부로부터 수신한 상기 악성코드 URL 판단 모듈이 판단한 악성코드 URL을 저장하며,
    상기 해시 값 추출 모듈은
    [수학식 1]
    Figure 112018032904887-pat00008

    [수학식 2]
    Figure 112018032904887-pat00009

    [수학식 3]
    Figure 112018032904887-pat00010

    상기 수학식 1 내지 수학식 3을 이용하여, 롤링 해시 값을 생성하며, 상기 수학식 1 내지 수학식 3에서 bi는 i번째 바이트 값을 의미하며, r은 롤링 해시 값을 의미하고, s는 last byte of the file로서, 포인트 이동에 따른 잔여 바이트 수를 의미하며, F()는 rolling hash function로서, 롤링 해시 함수를 의미하고, X(b(p-s))는 influence of b(p-s)로서, p-s 번째 바이트 값의 영향력을 의미하며, Y(b(p+1))는 influence of b(p+1)로서, p+1번째 바이트 값의 영향력을 의미하는 것을 특징으로 하는 웹 쉘 탐지 시스템.
  2. 제1항에 있어서,
    상기 탐지부는
    특정 시스템에 접근 가능한 오브젝트 또는 메소드 및 인코딩된 파일에 삽입된 헤더 문자열 중 어느 하나를 웹 쉘 시그니처로 지정하여 이를 통해 웹 쉘을 탐지하는 것을 특징으로 하는 웹 쉘 탐지 시스템.
  3. 제1항에 있어서,
    상기 탐지부는
    웹 로그 정보를 이용하여 웹 쉘 시그니처를 추출하고, 추출한 웹 쉘 시그니처를 이용하여, 웹 쉘을 탐지하는 것을 특징으로 하는 웹 쉘 탐지 시스템.
  4. 제1항에 있어서,
    상기 탐지부는
    웹 스크립트의 인코딩, 압축 및 난독화를 포함하는 비 정상코드 및 정상코드를 탐지하는 난독화 탐지 모듈;
    을 포함하고,
    상기 통신부는
    상기 난독화 탐지 모듈이 탐지한 비 정상코드 및 정상코드를 상기 저장부로 송신하며,
    상기 저장부는
    상기 통신부로부터 수신한 상기 난독화 탐지 모듈이 탐지한 비 정상코드 및 정상코드를 저장하는 것을 특징으로 하는 웹 쉘 탐지 시스템.
  5. 제1항에 있어서,
    상기 탐지부는
    웹 스크립트의 바이트 스트림(Byte streams)을 웹 쉘의 시그니처와 비교하고, 비교 결과, 웹 쉘의 시그니처와 동일한 경우, 상기 바이트 스트림(Byte streams)의 패턴을 분석하고, 해시 값을 추출하는 패턴 분석 모듈;
    을 포함하고,
    상기 통신부는
    상기 패턴 분석 모듈이 분석한 상기 바이트 스트림(Byte streams)의 패턴 및 상기 해시 값을 상기 저장부로 송신하며,
    상기 저장부는
    상기 통신부로부터 수신한 상기 패턴 분석 모듈이 분석한 상기 바이트 스트림(Byte streams)의 패턴 및 상기 해시 값을 저장하는 것을 특징으로 하는 웹 쉘 탐지 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
KR1020180012441A 2018-01-31 2018-01-31 웹 쉘 탐지 시스템 KR101865378B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180012441A KR101865378B1 (ko) 2018-01-31 2018-01-31 웹 쉘 탐지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180012441A KR101865378B1 (ko) 2018-01-31 2018-01-31 웹 쉘 탐지 시스템

Publications (1)

Publication Number Publication Date
KR101865378B1 true KR101865378B1 (ko) 2018-06-07

Family

ID=62621140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180012441A KR101865378B1 (ko) 2018-01-31 2018-01-31 웹 쉘 탐지 시스템

Country Status (1)

Country Link
KR (1) KR101865378B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
CN113746784A (zh) * 2020-05-29 2021-12-03 深信服科技股份有限公司 一种数据检测方法、系统及相关设备
CN116127457A (zh) * 2023-02-16 2023-05-16 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统
WO2024106860A1 (ko) * 2022-11-18 2024-05-23 주식회사 포테이토넷 링크 특성 분석 기반의 비정상 웹 컨텐츠 탐지 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090031393A (ko) 2009-03-05 2009-03-25 김동규 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법
KR101080953B1 (ko) * 2011-05-13 2011-11-08 (주)유엠브이기술 실시간 웹쉘 탐지 및 방어 시스템 및 방법
KR101291782B1 (ko) * 2013-01-28 2013-07-31 인포섹(주) 웹쉘 탐지/대응 시스템
KR20140042478A (ko) * 2012-09-28 2014-04-07 주식회사 이지시큐어 스크립트 난독화 처리 기능을 이용한 웹쉘 탐지 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090031393A (ko) 2009-03-05 2009-03-25 김동규 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법
KR101080953B1 (ko) * 2011-05-13 2011-11-08 (주)유엠브이기술 실시간 웹쉘 탐지 및 방어 시스템 및 방법
KR20140042478A (ko) * 2012-09-28 2014-04-07 주식회사 이지시큐어 스크립트 난독화 처리 기능을 이용한 웹쉘 탐지 장치 및 그 방법
KR101291782B1 (ko) * 2013-01-28 2013-07-31 인포섹(주) 웹쉘 탐지/대응 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
CN113746784A (zh) * 2020-05-29 2021-12-03 深信服科技股份有限公司 一种数据检测方法、系统及相关设备
CN113746784B (zh) * 2020-05-29 2023-04-07 深信服科技股份有限公司 一种数据检测方法、系统及相关设备
WO2024106860A1 (ko) * 2022-11-18 2024-05-23 주식회사 포테이토넷 링크 특성 분석 기반의 비정상 웹 컨텐츠 탐지 방법 및 시스템
CN116127457A (zh) * 2023-02-16 2023-05-16 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统
CN116127457B (zh) * 2023-02-16 2024-05-14 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统

Similar Documents

Publication Publication Date Title
KR101865378B1 (ko) 웹 쉘 탐지 시스템
US10902117B1 (en) Framework for classifying an object as malicious with machine learning for deploying updated predictive models
CN109711171B (zh) 软件漏洞的定位方法及装置、系统、存储介质、电子装置
US10430586B1 (en) Methods of identifying heap spray attacks using memory anomaly detection
US9973531B1 (en) Shellcode detection
US9438623B1 (en) Computer exploit detection using heap spray pattern matching
US20230092522A1 (en) Data packet processing method, apparatus, and electronic device, computer-readable storage medium, and computer program product
KR101574652B1 (ko) 모바일 침해사고 분석시스템 및 방법
Bursztein et al. Picasso: Lightweight device class fingerprinting for web clients
US9954820B2 (en) Detecting and preventing session hijacking
CN107645478B (zh) 网络攻击防御系统、方法及装置
EP2924943B1 (en) Virus detection method and device
US11133962B2 (en) Device synchronization with noise symbols and pattern recognition
CA3159619C (en) Packet processing method and apparatus, device, and computer-readable storage medium
CN108259514B (zh) 漏洞检测方法、装置、计算机设备和存储介质
CN110417717B (zh) 登录行为的识别方法及装置
US10412069B2 (en) Packet transmitting apparatus, packet receiving apparatus, and computer readable medium
CN106982188B (zh) 恶意传播源的检测方法及装置
CN106919811A (zh) 文件检测方法和装置
KR101615289B1 (ko) 캐리리스 곱셈을 이용하여 컴퓨팅된 유니버셜 해시 함수를 이용한 메시지 인증
US9787711B2 (en) Enabling custom countermeasures from a security device
US9027096B2 (en) Method and device for enhancing security of user security model
CN106487771B (zh) 网络行为的获取方法及装置
CN110392083A (zh) 文件秒传的控制方法、装置及终端设备
KR101602885B1 (ko) 네트워크 트래픽의 페이로드 암호화 탐지시스템 및 방법

Legal Events

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