KR101461051B1 - 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 - Google Patents

웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 Download PDF

Info

Publication number
KR101461051B1
KR101461051B1 KR20130066812A KR20130066812A KR101461051B1 KR 101461051 B1 KR101461051 B1 KR 101461051B1 KR 20130066812 A KR20130066812 A KR 20130066812A KR 20130066812 A KR20130066812 A KR 20130066812A KR 101461051 B1 KR101461051 B1 KR 101461051B1
Authority
KR
South Korea
Prior art keywords
function
malicious code
web
functions
score
Prior art date
Application number
KR20130066812A
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 KR20130066812A priority Critical patent/KR101461051B1/ko
Application granted granted Critical
Publication of KR101461051B1 publication Critical patent/KR101461051B1/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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Abstract

본 발명은 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체에 관한 것이다.
본 발명의 일측면에 따르면, 웹 프로그램의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 미리 부여하는 단계와, 탐지 대상 웹 프로그램의 소스 코드에 대하여 상기 악성 코드 위험도 배점을 토대로 그 기능에 대한 악성 코드 위험도 점수를 산출하는 단계와, 상기 산출된 악성 코드 위험도 점수가 기설정된 점수 이상인 경우에는 해당 프로그램이 악성 코드인 것으로 탐지하는 단계로 이루어지는 것을 특징으로 하는 웹 기능 분석을 통한 악성 코드 탐지방법이 개시된다.

Description

웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 {METHOD FOR DETECTING MALIGNANT CODE THROUGH WEB FUNCTION ANALYSIS, AND RECORDING MEDIUM THEREOF}
본 발명은 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체에 관한 것으로, 더욱 상세하게는 종래와 같은 문자열 기반의 패턴 탐지 기법이 아닌 웹 소스 내 악성코드에 포함될 수 있는 기능의 종류에 따라 각각의 배점 및 유형을 미리 정하여, 악성 코드 위험도 점수를 산출하는 계산 수학식을 거쳐 산출된 악성 코드 위험도 점수의 총합이 일정 기준 이상인 경우에 해당 프로그램이 악성 코드인 것으로 탐지할 수 있도록 구성된 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체에 관한 것이다.
정보통신 기술의 급속한 발전과 통신 인프라의 확대에 따라 인터넷을 통해 많은 사회적, 경제적 활동이 이루어지고 있으며 이에 따라 불법적인 의도를 가진 인터넷 이용자가 불특정 다수의 인터넷 이용자 단말기를 악성코드에 의해 감염시켜 개인 정보를 유출하거나 감염된 단말기를 악용하는 것은 매우 심각한 문제가 되고 있으며 특히 이용자 단말기를 통한 경제적 활동이 증가함에 따라 이러한 위험을 사전에 방지하는 기술은 매우 중요한 역할을 한다.
종래의 웹사이트 악성코드 탐지기술은 검색엔진 기반 악성코드 탐지기법이나, 웹페이지에 포함된 스크립트를 가상 실행함으로써 악성코드의 은닉 여부를 탐지하는 가상화 기법이 주로 적용되었다. 그러나 검색엔진 기반 악성코드 탐지기법은 웹 검색을 통해 확인된 코드를 대상으로 악성코드를 판단함으로써 신종 또는 변종의 악성코드 탐지 정확도가 낮은 문제점이 있으며, 가상화 기법을 이용하는 경우에는 웹사이트에 포함된 모든 스크립트에 대해 가상화 엔진을 구동함으로써 불필요하게 많은 부하가 발생하고 이에 따라 악성코드 탐지시간이 오래 걸리는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 종래의 또 다른 악성 코드 탐지 방법으로서는, 악성코드를 은닉하는 다양한 패턴들에 대해 사전에 학습한 후, 탐지대상 웹페이지의 소스코드를 학습된 패턴과 비교하여 악성코드 탐지를 신속히 수행함으로써 악성코드를 은닉하고 있는 웹사이트 접속으로 인한 악성코드 감염에 신속히 대응할 수 있도록 하는 패턴 분석기법을 이용한 웹사이트의 악성코드의 탐지 방법이 사용되고 있다.
그러나, 상기와 같은 패턴 분석 기법을 이용한 악성 코드의 탐지 방법의 경우에는 이미 알려지고 분석되어 패턴이 존재하는 웹 악성코드를 탐지하는 데는 매우 유용하나, 아직 알려지지 않아 패턴이 존재하지 않는 신규 및 변종 악성코드에 대한 탐지 문제를 해결하는 데는 한계가 있을 수밖에 없었다.
대한민국 등록특허 10-1027928 (2011.04.01. 등록)
본 발명은 상기와 같은 문제점을 감안하여 안출한 것으로, 본 발명의 목적은 웹 백도어 등의 악성코드 탐지 시 정규 표현식 기반의 패턴 일치 여부를 검사하는 종래의 패턴 분석기법의 방식이 아닌 웹 프로그램의 기능 요소를 분석하여 신규 및 변종 웹 악성코드를 용이하게 탐지할 수 있는 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체를 제공하는 것이다.
본 발명의 다른 목적은 문자열 기반의 패턴 탐지 기법이 아닌 웹 소스 내 악성코드에 포함될 수 있는 기능의 종류에 따라 각각의 배점 및 유형을 정하여 특정한 계산 수학식을 통해 웹 악성코드의 판별을 가능하게 하는 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체를 제공하는 것이다.
상기 목적들을 달성하기 위한 본 발명에 따른 웹 기능 분석을 통한 악성 코드 탐지방법은, 웹 프로그램의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 미리 부여하고 저장하는 단계와, 탐지 대상 웹 프로그램의 소스 코드에 대하여 상기 악성 코드 위험도 배점을 토대로 그 기능에 대한 악성 코드 위험도 점수를 산출하는 단계와, 상기 산출된 악성 코드 위험도 점수가 기설정된 점수 이상인 경우에는 해당 프로그램이 악성 코드인 것으로 탐지하는 단계로 이루어지는 것을 특징으로 한다.
여기서, 상기 배점은 일반 웹 프로그램에서의 사용빈도가 낮은 기능으로 분류되거나, 또는 보안상 위험한 기능으로 분류될수록 높은 배점이 되도록 구성됨이 바람직하다.
또한, 상기 기능들은 입력 파라메터처리 기능(제 1 배점), 상기 웹폼(Web Form) 기능(제 1 배점), 파일 시스템 조회 기능(제 2 배점), 파일 업로드 기능(제 1 배점), 파일 다운로드 기능(제 2 배점), 파일 편집 기능(제 3 배점), 시스템 명령어 실행 기능(제 3 배점), 데이터베이스 연결 기능(제 1 배점), 데이터베이스 조회 및 출력 기능(제 1 배점), 자기호출 기능(제 1 배점), 및 난독화 기능(제 3 배점)이며, 상기 제 2 배점은 상기 제 1 배점보다, 또 상기 제 3 배점은 상기 제 2 배점보다 점수가 높게 책정되는 것이 바람직하다.
또한, 상기 악성 코드 위험도 점수를 산출하는 단계에서, 상기 기능들이 적어도 두 개 동시에 존재하는 경우에, 해당 기능의 배점을 합산함이 바람직하다.
또한, 상기 기능들은 각각 고유의 유형이 존재하며, 제 1 유형은 사용자의 입력값을 처리하는 유형이고, 제 2 유형은 사용자의 입력값을 넣을 수 있는 양식을 나타내는 유형이며, 상기 입력 파라메터처리 기능은 상기 제 1 유형에, 상기 웹폼(Web Form) 기능은 상기 제 2 유형에 해당하며, 상기 파일 시스템 조회 기능, 상기 파일 다운로드 기능, 상기 파일 편집 기능, 상기 시스템 명령어 실행 기능, 상기 데이터베이스 연결 기능, 및 상기 데이터베이스 조회 및 출력 기능은 상기 제 1 및 제 2 유형에 함께 해당하는 것으로 분류되는 것을 특징으로 한다.
또한, 상기 악성 코드 위험도 점수를 산출하는 단계에서는, 상기 각 기능들이 다수개 발견되는 경우에는 각 기능들의 악성코드 배점을 합하여 계산하되, 유형이 같은 기능들에 대해서는 그 합산된 배점에 2배를 가중하여 계산하도록 함이 바람직하다.
또한, 탐지 대상인 상기 웹 프로그램의 소스 코드에 존재하는 기능의 내용과는 무관한 공백, 기호, 및 주석을 제거하여 정규화하는 단계를 더 수행함이 바람직하다.
한편, 본 발명의 또 다른 측면에 따르면, 상기 웹 기능 분석을 통한 악성 코드 탐지방법의 각 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 개시된다.
상술한 바와 같이, 본 발명에 의한 웹 기능 분석을 통한 악성 코드 탐지방법에 의하면, 종래와 같은 문자열 기반의 패턴 탐지 기법이 아닌 웹 소스 내 악성코드에 포함될 수 있는 기능의 종류에 따라 각각의 배점 및 유형을 미리 정하여 악성 코드 위험도 점수를 산출하는 계산 수학식을 거쳐 산출된 악성 코드 위험도 점수의 총합이 일정 기준 이상인 경우에 해당 프로그램이 악성 코드인 것으로 판단하여 즉각적으로 조치를 취할 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지방법의 순서도이다.
도 2는 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지 장치의 블록도이다.
도 3은 본 발명의 일실시예에 따른 웹 기능 중 웹폼(Web Form) 기능을 통한 디스플레이 형태를 나타내는 예시도이다.
도 4는 본 발명의 일실시예에 따른 웹 기능 중 웹폼(Web Form)의 악성코드를 나타내는 예시도이다.
도 5는 웹 기능 중 난독화에 의한 변조된 구문으로 표시된 예를 나타내는 예시도이다.
도 6a 및 도 6b는 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지방법에 의해 산출된 총점의 계산예를 나타내는 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지방법의 순서도이고, 도 2는 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지 장치의 블록도로서, 편의상 함께 설명하기로 한다.
먼저, 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지 장치(1)는 웹 프로그램(2)의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 미리 부여하고 저장하기 위한 악성 코드 위험도 배점 데이터 베이스(10)와, 네트워크를 통해 다운로드된 탐지 대상 웹 프로그램(2)의 소스 코드에 대하여 상기 악성 코드 위험도 배점을 토대로 그 기능에 대한 악성 코드 위험도 점수를 산출하기 위한 악성 코드 위험도 점수 산출부(20)와, 상기 산출된 악성 코드 위험도 점수가 기설정된 점수 이상인 경우에는 해당 프로그램이 악성 코드인 것으로 탐지하기 위한 악성 코드 탐지부(30)로 크게 이루어진다.
웹 기능 분석을 통한 악성 코드 탐지 장치(1)는 예를 들어, 해당 기능을 실행하는 별도의 서버 또는 시스템 형태로 구현될 수도 있고, 특정 기능의 서버 또는 시스템 내에 하나의 모듈형태로 설치 구성될 수도 있다.
상기한 웹 프로그램의 소스 코드에 포함되는 기능들의 종류와 배점 산출 방식 등에 대해서는 후술하는 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지방법에서 더욱 상세히 설명하기로 한다.
즉, 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지방법(S100)은, 웹 프로그램의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 상기 악성 코드 위험도 배점 데이터 베이스(10)에 미리 부여하고 저장하는 악성 코드 위험도 배점 부여 및 저장 단계(S10)와, 네트워크를 통해 다운로드된 탐지 대상 웹 프로그램(2)의 소스 코드에 대하여 상기 악성 코드 위험도 배점을 토대로 그 기능에 대한 악성 코드 위험도 점수를 상기 악성 코드 위험도 점수 산출부(20)를 통해 산출하는 악성 코드 위험도 점수 산출 단계(S20)와, 상기 산출된 악성 코드 위험도 점수가 기설정된 점수 이상인 경우에는 상기 악성 코드 탐지부(30)를 통해 해당 프로그램이 악성 코드인 것으로 탐지하고 이를 사용자에게 통보하는 악성 코드 탐지 단계(S30)로 이루어진다.
여기서, 상기한 웹 프로그램의 소스 코드에 포함되는 기능들의 종류와 배점 점수와 유형에 대한 내용은 하기의 표 1과 같다.
구분 기능 배점 유형
F1 입력 파라메터 처리 1 A
F2 웹폼(web form) 1 B
F3 파일시스템조회
(파일 및 디렉터리 목록)

2

A, B
F4 파일 업로드 1 C
F5 파일 다운로드 2 A,B
F6 파일 편집
(읽기 및 저장)

3

A,B
F7 시스템 명령어 실행 3 A,B
F8 데이터베이스 연결 1 A,B
F9 데이터베이스 조회 및 출력 1 A,B
F10 자기 호출 1 D
F11 난독화 3 E
상기 배점은 일반 웹 프로그램에서의 사용빈도가 낮은 기능으로 분류되거나, 또는 보안상 위험한 기능으로 분류될수록 높은 배점이 되도록 구성된다.
상기한 입력 파라메터처리(F1) 기능은 일반적인 웹 프로그램에 많이 쓰이는 기능으로서, 사용자의 입력값을 받아 프로그램의 동작을 결정하거나 프로그램의 동작에 필요한 인자값으로 이용되는 기능이다.
예를 들어, 웹 게시판에 글을 작성할 때 사용자의 입력값(이름, 비밀번호, 글제목, 글내용 등)을 받아 저장하는 프로그램에 적용된다.
이때, 웹 악성코드의 경우에도 역시 사용자의 입력값을 받아 동작을 결정하는 기능을 가질 수 있다.
그러한 예는 다음과 같이 표시될 수 있다.
webbackdoor.asp?cmd=filelist&dir=c:\ --> c:\의 파일 목록을 보여줌
webbackdoor.asp?cmd=filelist&dir=d:\abc --> d:\abc의 파일 목록을 보여줌
여기서, 상기 입력 파라메터처리(F1) 기능은 악성코드 구성 요소 특징의 하나로 인정될 수는 있으나, 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없으므로 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 웹 파라메터 처리를 위한 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 입력 파라메터처리(F1) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- Request(), Request.Form(), $_GET[], $_POST[] 등
상기한 웹폼(Web Form)(F2) 기능은 사용자의 입력값을 전달하기 위한 양식으로 일반적인 웹 프로그램에 많이 쓰이는 기능이다.
웹폼(Web Form)(F2) 기능은, 예를 들어, 웹 검색 사이트에 검색어를 입력하는 HTML 모양 등으로 구현되며, 그 디스플레이 형태는 도 3에 나타나는 바와 같다.
한편, 웹 악성코드 역시 사용자의 입력을 받기 위한 웹폼(Web Form)이 존재하며 이를 이용해 다양한 입력값을 전달할 수 있도록 되어있다.
이러한 웹 악성코드의 웹폼(Web Form)은 도 4에 예시된 바와 같다.
상기한 웹폼(Web Form)(F2) 기능은 악성코드 구성 요소 특징의 하나로 인정되지만 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없으므로 배점을 상기한 입력 파라메터처리(F1) 기능과 동일하게 악성 코드 위험도 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 웹 폼 태그가 정규화된 태그 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 웹폼(Web Form)(F2) 기능에 대한 정규화된 태그목록은 예를 들어, 다음과 같다.
- <form>, <input> 등
상기한 파일 시스템 조회(F3) 기능은 파일 및 디렉터리 목록에서 파일 시스템을 조회하는 기능이다.
상기한 파일 시스템 조회(F3) 기능은 일반적인 웹 프로그램에서도 자주 사용되면서도, 악성코드 구성 요소 특징의 하나로 인정될 수 있으나 어느 정도의 위험성이 없으므로 악성 코드 위험도 배점을 '2'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 파일 시스템 조회에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 파일 시스템 조회(F3) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- 'GetFile', 'listFiles' 등
상기한 파일 업로드(F4) 기능은 파일을 업로드하는 기능이다.
상기한 파일 업로드(F4) 기능은 악성코드 구성 요소 특징의 하나로 인정되지만 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없으므로 배점을 상기한 입력 파라메터처리(F1) 기능과 동일하게 악성 코드 위험도 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 파일 업로드에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 파일 업로드(F4) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- strfilenameonserver, fileupload, is_uploaded_file 등
상기한 파일 다운로드(F5) 기능은 파일을 다운로드하는 기능이다.
상기한 파일 다운로드(F5) 기능은 일반적인 웹 프로그램에서도 자주 사용되면서도, 악성코드 구성 요소 특징의 하나로 인정될 수 있으나, 어느 정도의 위험성이 없으므로 악성 코드 위험도 배점을 '2'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 파일 다운로드에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 파일 다운로드(F5) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- filedownload 등
상기한 파일 편집(F6) 기능은 파일을 편집, 즉 읽기 및 저장하는 기능이다.
상기한 파일 편집(F6) 기능은 일반적인 웹 프로그램에서는 거의 이용되지 않고 악성코드에서 주로 이용되는 기능이므로 배점을 '3'으로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 파일 편집에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 파일 편집(F6) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- editfile, readfile 등
상기한 시스템 명령어 실행(F7) 기능은 시스템 명령어를 실행하는 기능이다.
상기한 시스템 명령어 실행(F7) 기능도 일반적인 웹 프로그램에서는 거의 이용되지 않고 악성코드에서 주로 이용되는 기능이므로 배점을 '3'으로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 시스템 명령어 실행에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 시스템 명령어 실행 (F7) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- exec, system, popen 등
상기한 데이터베이스 연결(F8) 기능은 데이터베이스에 연결하는 기능이다.
상기한 데이터베이스 연결(F8) 기능도 악성코드 구성 요소 특징의 하나로 인정되지만 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없으므로 배점을 상기한 입력 파라메터처리(F1) 기능과 동일하게 악성 코드 위험도 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 데이터베이스 연결에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 데이터베이스 연결 (F8) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- DataSource, getConnection 등
상기한 데이터베이스 조회 및 출력(F9) 기능은 데이터베이스를 조회하고 출력하는 기능이다.
상기한 데이터베이스 조회 및 출력(F9) 기능도 악성코드 구성 요소 특징의 하나로 인정되지만 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없으므로 배점을 상기한 입력 파라메터처리(F1) 기능과 동일하게 악성 코드 위험도 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 데이터베이스 조회 및 출력에 이용되는 함수가 정규화된 함수 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 데이터베이스 조회 및 출력(F9) 기능에 대한 정규화된 함수목록은 예를 들어, 다음과 같다.
- executeQuery, openschema 등
상기한 자기호출(F10) 기능은 글자 글대로 자기 호출 기능으로서, 일반적인 웹 프로그램에 쓰이는 기능이나 악성코드의 경우 배포를 용이하게 하기 위한 단일 파일 유지에 필수적인 기능이다.
예를 들어 게시물 작성 시 일반적인 웹 프로그램의 처리는 아래와 같다.
Write.asp(글작성)-->Write_save.asp(글저장)
악성프로그램의 경우 단일 파일로 처리하기 위해 아래와 같이 자기 자신의 파일을 다시 호출하는 경우가 일반적이다.
Evil.asp?action=write(글작성) Evil.asp?action=write_save(글저장)
상기한 자기호출(F10) 기능도 악성코드 구성 요소 특징의 하나로 인정되지만 일반적인 웹 프로그램에서도 자주 사용되며 해당 기능 자체만으로는 위험성이 없음으로 배점을 '1'로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 자기 호출 태그가 정규화된 태그 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 자기호출 (F10) 기능에 대한 정규화된 태그목록은 예를 들어, 다음과 같다.
- <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 등
상기한 난독화(F11) 기능은 일반적인 웹 프로그램 거의 쓰이지 않는 기능으로 악성코드의 내용을 숨기거나 악성코드 탐지를 우회하기 위해 사용되는 기능이다.
이러한 기능을 나타내는 예시구문은 일반적인 웹 프로그램 구문이 아닌 내용을 알 수 없는 변조된 구문으로 표시되며, 도 5에 나타나는 바와 같다.
상기한 난독화(F11) 기능은 일반적인 웹 프로그램에서는 거의 이용되지 않고 악성코드에서 주로 이용되는 기능이므로 배점을 '3'으로 한다.
한편, 후술하는 바와 같이, 웹 프로그램의 각 기능 파악에 앞서 탐지 대상 소스의 정규화단계에 따라 난독화 이용 태그(문구)가 정규화된 태그 목록에 있는 지 검사하여 해당 기능 목록을 파악할 수 있으며, 이 경우 난독화 (F11) 기능에 대한 정규화된 태그목록은 예를 들어, 다음과 같다.
- <%@ LANGUAGE = VBScript.Encode> 등
여기서, 상술한 F1 ~ F11의 기능에 대한 배점이 1점 내지 3점의 점수로 나타낸 예들을 나타내고 있으나, 이러한 점수의 배점은 하나의 일례를 설명하기 위한 것으로 그 고유 기능에 따라 그 배점의 책정 크기가 다양하게 달라질 수 있음을 이해하여야 할 것이다.
한편, 상기 표 1에 나타난 바와 같이, 악성 코드 위험도 배점이 낮은 기능이라 하여도 다른 기능들과 같이 함께 나타나면 그 악성 코드 위험도 배점을 합하여 산출함으로 악성코드의 위험성이 더욱 높아지게 된다.
예를 들면, 1개의 웹 프로그램(파일)내에 파일 업로드(F4)와 파일 다운로드(F5) 기능이 동시에 존재하게 되는 경우, 배점을 합산하게 되어 그 위험도가 더욱 가중되어진다.
일반적인 웹 프로그램은 다운로드와 업로드 기능을 한꺼번에 같은 프로그램(파일)에 넣지 않는다.
즉, fileup.asp와 filedown.asp 등으로 분리하는 것이 일반적이다.
또한, 예를 들어 3가지의 기능, 즉 1개의 웹 프로그램(파일) 내에 웹 Form(F2), 파라메터 처리(F1), 및 DB 연결(F8) 기능이 동시에 존재하는 경우에는, 사용자가 입력한 값에 따라 DB 연결 정보가 달라져, 임의의 DB에 연결할 수 있는 형태가 되나, 일반적인 웹 프로그램은 사용자의 입력값을 참조하여 DB 연결을 맺지 않는다.
이상의 예시에서 설명한 바와 같이 웹 악성코드는 상술한 F1 ~ F11의 기능이 2개 이상 나타날 수 있으며, 이러한 기능 중 일부 기능은 동시에 나타났을 때 좀 더 악성코드에 가까운 것으로 판별할 수 있다.
한편, 상술한 F1 ~ F11의 기능은 각각 고유의 유형이 존재하며, 상기 표 1에서 그 유형을 카테고리별로 A, B, C, D 및 E 로 구분하고 있다.
이때, 상기 유형'A'는 사용자의 입력값을 처리하는 유형(F1 기능 참조)이고, 상기 유형'B'는 사용자의 입력값을 넣을 수 있는 양식(F2 기능 참조)을 나타내는 유형이다.
여기서, 2가지 기능이 함께 존재하는 경우(또는 함께 해당하는 경우)에는 그 해당 기능은 사용자의 입력값에 따라 임의의 기능으로 다양하게 활용될 수 있는 전제가 된다.
예컨데, 파일시스템 조회의 경우 고정된 경로의 파일시스템을 조회하는 것은 위험도가 높지 않으나, 사용자의 입력값이 경로로 이용되어 사용자가 입력한 경로를 조회할 수 있는 것(임의의 경로를 조회할 수 있는 것과 동일)은 위험도가 높은 기능이라 볼 수 있다.
따라서, 상기 표 1에 나타난 기능들 중에 유형A 및 유형B가 동시에 나타날 때 위 예시와 같이 위험도가 커지는 기능은 F3, F5~F9 이며, 이는 기능 앞에 ‘임의의‘ 라는 말을 붙여서 의미가 커지는(위험도가 커지는) 기능들이다.
다만, F4의 경우는 업로드 기능 자체가 임의의 파일을 대상으로 이용되는 기능이므로 ‘임의의’ 라는 말을 붙여도 본래 의미와 동일한 것으로 볼 수 있다.
따라서, 이러한 특성을 서로 일치시키기 위해 F3, F5~F9 는 유형A 또는 유형B와 매치되는 것을 조사하기 위해 유형'A' 및 유형'B'로 정의한다.
상기 유형'A' 및 유형'B'이외의 표시로 표 1의 기능들에서 표시된 나머지 유형'C',유형'D',및 유형'E'는 개별적으로 각 기능 고유의 의미 있는 기능으로서 상기 유형 'A' 및 유형 'B'와 차별하기 위해 단순히 표기된 것으로 다른 유형과 동시에 나타난다 해도 위험도가 커지는 것은 아니다.
여기서, 상술한 F1~F11의 목록 기능들과 그 악성 코드 배점은 상술한 단계 S10에서 악성 코드 위험도 배점 데이터 베이스(10)에 모두 미리 저장되어 있음은 물론이다.
한편, 본 발명의 일실시예에 따른 악성 코드 위험도 점수를 산출하는 단계(S20)에서는, 각 기능들이 다수개 발견되는 경우에는 각 기능들의 악성코드 배점을 합하여 계산하되, 유형(유형 'A' 및 유형 'B')이 같이 존재하는 경우에는 그 합산된 배점에 2배를 가중하여 계산하도록 한다.
이때, 그 총합이 4점 이상인 경우 웹 악성코드로 판단하게 되며, 이러한 악성 코드 위험도 점수의 계산 수학식1은 다음과 같다.
[수학식1]
If ((∑(유형이 같은 기능의 배점) X 2 + ∑(유형이 다른 기능의 배점)) > 4) {웹 악성코드로 판단}
한편, 이러한 총점의 계산예는 도 6과 같이 나타내고 있다.
즉, 도 6에 도시된 바와 같이, 기능 F2, F4, 및 F10이 동시에 나타나는 경우에는 그 악성 코드 위험도 점수는 1 + 1 + 1 = 3 이므로 해당 웹 프로그램은 정상 파일로 탐지되어 진다.
반면에, 두 개의 기능 F1 및 F5가 동시에 나타나는 경우에는 그 악성 코드 위험도 점수는 (1 + 2) × 2 = 6 이므로 해당 웹 프로그램은 악성 코드 파일로 탐지되어 진다.
한편, 본 발명의 일실시예에 따른 웹 프로그램의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 상기 악성 코드 위험도 배점 데이터 베이스(10)에 미리 부여하고 저장하는 단계(S10)에서는, 웹 프로그램의 기능 파악에 앞서 기능 파악이 용이하도록 준비하는 단계로서 주석 제거를 주목적으로 탐지 대상 소스의 정규화 단계를 더 수행한다.
즉, 상기한 탐지 대상 소스의 정규화 단계는, 각종 웹 인코더(encode)의 코더(decode)화 (예컨데, VBA encode, js encode 등), 탐지 대상 소스 내 불필요한 주석의 제거화, 변수 목록화 (이용된 변수들 파악 - $var1, $var2 등), 및 함수 목록화(이용된 함수들 파악 - fucn1, func2), 및 HTML 태그 목록화 (이용된 HTML 태그 파악 - <from>, <a>, <input> 등)를 수행함으로써, 상술한 F1~F11의 기능들에 해당되는 특정 구문을 정규화하여 각 구문에 부합하는 요소를 정확하고 용이하게 검색할 수 있게 되는 것이다.
즉, 탐지 대상 웹 프로그램의 소스 코드에 존재하는 기능의 내용과는 무관한 공백, 기호, 및 주석을 제거하여 정규화함으로써 탐지 대상 웹 프로그램의 소스 코드의 내용이 상술한 F1~F11의 기능 중 어디에 해당되는지는 신속하게 파악할 수 있게 되는 것이다.
이러한 주석 등의 제거를 위한 웹 프로그램의 소스의 내용의 정규화는 당업자에게 널리 알려진 기술임으로 추가적인 부연설명은 생략하기로 한다.
상기한 단계 S30에서는, 상술한 바와 같이 악성 코드 위험도 점수를 산출하는 단계(S20)를 거쳐 산출된 악성 코드 위험도 점수의 총합이 4점 이상인 경우에는 해당 프로그램이 악성 코드인 것으로 판단하고, 이를 즉각적으로 해당 사용자에게 통보하여 조치를 취할 수 있도록 한다.
본 발명의 실시예 들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 본 발명의 일실시예에 따른 웹 기능 분석을 통한 악성 코드 탐지 장치
2: 웹 프로그램
10: 악성 코드 위험도 배점 데이터 베이스
20: 악성 코드 위험도 점수 산출부
30: 악성 코드 탐지부

Claims (8)

  1. 웹 프로그램의 소스 코드에 포함되는 기능들의 분석에 따라 악성 코드 위험도 배점을 미리 부여하는 단계- 상기 기능들은 입력 파라메터처리 기능(제 1 배점), 웹폼(Web Form) 기능(제 1 배점), 파일 시스템 조회 기능(제 2 배점), 파일 업로드 기능(제 1 배점), 파일 다운로드 기능(제 2 배점), 파일 편집 기능(제 3 배점), 시스템 명령어 실행 기능(제 3 배점), 데이터베이스 연결 기능(제 1 배점), 데이터베이스 조회 및 출력 기능(제 1 배점), 자기호출 기능(제 1 배점), 및 난독화 기능(제 3 배점)이며, 상기 제 2 배점은 상기 제 1 배점보다, 또 상기 제 3 배점은 상기 제 2 배점보다 점수가 높게 책정됨-와,
    탐지 대상 웹 프로그램의 소스 코드에 대하여 상기 악성 코드 위험도 배점을 토대로 그 기능에 대한 악성 코드 위험도 점수를 산출하되, 상기 기능들이 적어도 두 개 동시에 존재하는 경우에, 해당 기능의 배점을 합산하는 단계와,
    상기 산출된 악성 코드 위험도 점수가 기설정된 점수 이상인 경우에는 해당 프로그램이 악성 코드인 것으로 탐지하는 단계로 이루어지되,
    상기한 기능들은 각각 고유의 유형이 존재하며, 제 1 유형은 사용자의 입력값을 처리하는 유형이고, 제 2 유형은 사용자의 입력값을 넣을 수 있는 양식을 나타내는 유형이며, 상기 입력 파라메터처리 기능은 상기 제 1 유형에, 상기 웹폼(Web Form) 기능은 상기 제 2 유형에 해당하며, 상기 파일 시스템 조회 기능, 상기 파일 다운로드 기능, 상기 파일 편집 기능, 상기 시스템 명령어 실행 기능, 상기 데이터베이스 연결 기능, 및 상기 데이터베이스 조회 및 출력 기능은 상기 제 1 및 제 2 유형에 함께 해당하는 것으로 분류되며,
    상기 악성 코드 위험도 점수를 산출하는 단계에서는, 상기 각 기능들이 다수개 발견되는 경우에 유형이 같은 기능들에 대해서는 그 합산된 배점에 2배를 가중하여 계산하도록 하는 것을 특징으로 하는 웹 기능 분석을 통한 악성 코드 탐지방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    탐지 대상인 상기 웹 프로그램의 소스 코드에 존재하는 기능의 내용과는 무관한 공백, 기호, 및 주석을 제거하여 정규화하는 단계를 더 수행하는 것을 특징으로 하는 웹 기능 분석을 통한 악성 코드 탐지방법.
  8. 제 1 항에 따른 웹 기능 분석을 통한 악성 코드 탐지방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체.
KR20130066812A 2013-06-11 2013-06-11 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 KR101461051B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130066812A KR101461051B1 (ko) 2013-06-11 2013-06-11 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130066812A KR101461051B1 (ko) 2013-06-11 2013-06-11 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체

Publications (1)

Publication Number Publication Date
KR101461051B1 true KR101461051B1 (ko) 2014-11-13

Family

ID=52290251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130066812A KR101461051B1 (ko) 2013-06-11 2013-06-11 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체

Country Status (1)

Country Link
KR (1) KR101461051B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101648349B1 (ko) * 2015-11-12 2016-09-01 한국인터넷진흥원 웹사이트 위험도 산출 장치 및 그 방법
CN106295333A (zh) * 2015-05-27 2017-01-04 安恒通(北京)科技有限公司 用于检测恶意代码的方法和系统
KR20170086926A (ko) * 2016-01-19 2017-07-27 삼성전자주식회사 애플리케이션의 보안 취약성 평가기기 및 그 평가방법
KR20200125286A (ko) * 2019-04-26 2020-11-04 서울여자대학교 산학협력단 지능형 악성앱 탐지를 위한 게임이론 기반의 동적 분석 입력 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087355A (ja) 2007-10-02 2009-04-23 Fujitsu Ltd ウェブアプリケーションを検証するシンボリック実行エンジンを提供するシステム及び方法
US20090165131A1 (en) 2007-12-20 2009-06-25 Treadwell William S Detection and prevention of malicious code execution using risk scoring
KR20090088687A (ko) * 2008-02-15 2009-08-20 한국정보보호진흥원 웹쉘 탐지 시스템 및 웹쉘 탐지 방법
JP2012501028A (ja) * 2008-08-28 2012-01-12 エーブイジー テクノロジーズ シーゼット、エス.アール.オー. コード解析の発見的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087355A (ja) 2007-10-02 2009-04-23 Fujitsu Ltd ウェブアプリケーションを検証するシンボリック実行エンジンを提供するシステム及び方法
US20090165131A1 (en) 2007-12-20 2009-06-25 Treadwell William S Detection and prevention of malicious code execution using risk scoring
KR20090088687A (ko) * 2008-02-15 2009-08-20 한국정보보호진흥원 웹쉘 탐지 시스템 및 웹쉘 탐지 방법
JP2012501028A (ja) * 2008-08-28 2012-01-12 エーブイジー テクノロジーズ シーゼット、エス.アール.オー. コード解析の発見的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295333A (zh) * 2015-05-27 2017-01-04 安恒通(北京)科技有限公司 用于检测恶意代码的方法和系统
KR101648349B1 (ko) * 2015-11-12 2016-09-01 한국인터넷진흥원 웹사이트 위험도 산출 장치 및 그 방법
WO2017082470A1 (en) * 2015-11-12 2017-05-18 Korea Internet & Security Agency Apparatus and method for calculating risk of web site
KR20170086926A (ko) * 2016-01-19 2017-07-27 삼성전자주식회사 애플리케이션의 보안 취약성 평가기기 및 그 평가방법
KR102443766B1 (ko) * 2016-01-19 2022-09-19 삼성전자 주식회사 애플리케이션의 보안 취약성 평가기기 및 그 평가방법
KR20200125286A (ko) * 2019-04-26 2020-11-04 서울여자대학교 산학협력단 지능형 악성앱 탐지를 위한 게임이론 기반의 동적 분석 입력 시스템 및 방법
KR102210659B1 (ko) 2019-04-26 2021-02-01 서울여자대학교 산학협력단 지능형 악성앱 탐지를 위한 게임이론 기반의 동적 분석 입력 시스템 및 방법

Similar Documents

Publication Publication Date Title
EP2472425A2 (en) System and method for detecting unknown malware
US11057424B2 (en) Database query injection detection and prevention
US11481494B2 (en) System and method for identifying and comparing code by semantic abstractions
US9953162B2 (en) Rapid malware inspection of mobile applications
US9245125B2 (en) Duleak: a scalable app engine for high-impact privacy leaks
Lin et al. Automated forensic analysis of mobile applications on Android devices
US8191147B1 (en) Method for malware removal based on network signatures and file system artifacts
KR101461051B1 (ko) 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체
CN103631904A (zh) 反病毒分析期间选择同或异步文件访问方法的系统和方法
CN115562992A (zh) 一种文件检测方法、装置、电子设备及存储介质
US11580220B2 (en) Methods and apparatus for unknown sample classification using agglomerative clustering
CN112688966A (zh) webshell检测方法、装置、介质和设备
CN110858247A (zh) 安卓恶意应用检测方法、系统、设备及存储介质
KR20080096518A (ko) 해석가능한 코드를 실행시키는 것과 연관된 위험의 사정을용이하게 하는 컴퓨터 구현 방법, 컴퓨터 프로그램 제품,및 컴퓨팅 시스템
CN109145589B (zh) 应用程序获取方法及装置
CN111460448B (zh) 一种恶意软件家族检测方法及装置
KR20180097824A (ko) 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체
US10789067B2 (en) System and method for identifying open source usage
CN114417347A (zh) 应用程序的漏洞检测方法、装置、设备、存储介质和程序
KR20110124918A (ko) 패턴 분석기법을 이용한 웹사이트의 악성코드 은닉 여부에 대한 탐지 시스템 및 방법
CN112580038A (zh) 反病毒数据的处理方法、装置及设备
Ohm et al. SoK: Practical Detection of Software Supply Chain Attacks
KR102286451B1 (ko) 자연어 처리 기반 난독화된 식별자 인식 방법, 이를 수행하기 위한 기록 매체 및 장치
Xu et al. MFF-AMD: multivariate feature fusion for Android malware detection
CN116992442A (zh) 一种信息检测方法、装置、设备和存储介质

Legal Events

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

Payment date: 20170818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191115

Year of fee payment: 6