KR20150134679A - 패치파일 분석시스템과 분석방법 - Google Patents

패치파일 분석시스템과 분석방법 Download PDF

Info

Publication number
KR20150134679A
KR20150134679A KR1020140061759A KR20140061759A KR20150134679A KR 20150134679 A KR20150134679 A KR 20150134679A KR 1020140061759 A KR1020140061759 A KR 1020140061759A KR 20140061759 A KR20140061759 A KR 20140061759A KR 20150134679 A KR20150134679 A KR 20150134679A
Authority
KR
South Korea
Prior art keywords
information
patch
file
reference information
application program
Prior art date
Application number
KR1020140061759A
Other languages
English (en)
Other versions
KR101647487B1 (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 KR1020140061759A priority Critical patent/KR101647487B1/ko
Priority to PCT/KR2015/002797 priority patent/WO2015178578A1/ko
Priority to US15/312,028 priority patent/US10235520B2/en
Priority to CN201580026121.6A priority patent/CN106462703B/zh
Priority to JP2016567731A priority patent/JP6455738B2/ja
Publication of KR20150134679A publication Critical patent/KR20150134679A/ko
Application granted granted Critical
Publication of KR101647487B1 publication Critical patent/KR101647487B1/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
    • 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/564Static detection by virus signature recognition
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 응용프로그램의 패치파일에 대하여 동작패턴 및 형태 등에서 기존파일과의 유사성 여부와 함께, 패치파일에 의해 위험성이 높은 행위가 이루어지는지를 판단하여, 패치파일로 위장한 파일을 검출하는 패치파일 분석시스템과 분석방법에 관한 것으로, 응용프로그램의 설치정보를 수집해서 기준정보로 설정하는 프로그램 분석모듈; 상기 기준정보를 저장하는 기준정보DB; 상기 응용프로그램의 패치파일을 분석해서 해당 분석정보를 패치정보로 설정하는 패치파일 분석모듈; 및 상기 패치정보에 대응하는 기준정보를 상기 기준정보DB에서 검색하고, 상기 패치정보와 기준정보를 비교하는 비교모듈;을 포함한다.

Description

패치파일 분석시스템과 분석방법{Analysis system and method for patch file}
본 발명은 응용프로그램의 패치파일에 대하여 동작패턴 및 형태 등에서 기존파일과의 유사성 여부와 함께, 패치파일에 의해 위험성이 높은 행위가 이루어지는지를 판단하여, 패치파일에 포함되어 오는 악성코드, 바이러스, 백도어, 기능저하 코드 등을 검출하는 패치파일 분석시스템과 분석방법에 관한 것이다.
컴퓨터 기술분야에서 패치(Patch)는 컴퓨터 등에 설치된 각종 응용프로그램 또는 데이터 등의 장애를 수정하거나, 응용프로그램 또는 데이터 등의 기존 정보를 최신 정보로 바꾸는 동작을 지칭한다. 따라서 컴퓨터에 설치된 각종 응용프로그램은 주기적으로 제공되는 패치파일 설치를 통해서 패치가 이루어지고, 사용자는 상기 패치를 통해서 해당 응용프로그램의 안정적인 이용을 할 수 있다.
그런데 사회공학적인 공격의 발달과 함께 악성코드를 마치 정상적인 패치파일인 것처럼 배포하거나, 패치파일이 악성코드에 감염되거나 백도어를 포함시킴으로써, 해당 패치파일을 설치한 시스템에 심각한 장애를 일으키는 사례가 다수 발생하고 있다.
이러한 심각함에도 불구하고 종래에는 응용프로그램에 대한 업데이트 파일(패치파일)이 상기 응용프로그램의 해당 제조사에서 제공한 패치파일인지를 판단할 방법이 전혀 없었고, 이로 인해서 패치파일에 의한 컴퓨터의 악성코드 감염이 빈번했다.
전술한 문제를 해소하기 위해서 종래 백신프로그램은 악성코드 등의 동작패턴을 확인해서 해당 동작패턴이 확인되면 악성코드에 의한 감염으로 간주하고 이를 치유하도록 했다.
그러나, 종래 백신프로그램은 패치파일이 악성코드인지의 여부만을 판단할 뿐, 해당 패치파일이 상기 제조사에서 만들어진 정상적인 패치파일인지를 판단할 수 없었다. 또한, 동작패턴에 대한 정보가 없는 경우에는 악성코드의 감염 여부를 판단할 수 없었고, 감염 여부 판단이 동작패턴의 분석에만 치중하므로 논리폭탄, 숨겨진 코드 등에 의한 새로운 형식의 악성코드는 종래 백신프로그램에서 전혀 검출해내지 못하는 문제가 있었다.
이에 본 발명은 상기와 같은 문제를 해소하기 위해 발명된 것으로서, 응용프로그램의 패치파일에 대하여, 동작패턴, 파일 형태 측면에서 기존 정상적인 응용프로그램 파일과의 유사성을 판단하고, 추가적으로 패치파일의 위험 행위를 파악하여, 해당 패치파일이 정상적인 패치파일인지를 사용자가 판별할 수 있는 패치파일 분석 시스템과 분석방법 제공을 해결과제로 하고자 한다.
상기의 기술적 과제를 달성하기 위하여 본 발명은,
응용프로그램에 구성된 설정정보를 수집해서 기준정보로 생성하는 프로그램 분석모듈;
상기 기준정보를 저장하는 기준정보DB;
상기 응용프로그램의 패치파일을 분석해서 상기 패치파일에 구성된 설정정보를 패치정보로 생성하는 패치파일 분석모듈; 및
상기 패치정보에 대응하는 기준정보를 상기 기준정보DB에서 검색하고, 상기 패치정보와 기준정보를 비교하는 비교모듈;
을 포함하는 패치파일 분석시스템이다.
상기의 본 발명은, 응용프로그램의 설치파일 및 기존 패치파일에서 수집한 기준정보를 새로운 패치파일의 패치정보와 비교해서, 파일형태 변화, 새로운 API 호출 등의 새로운 위험한 행위가 포함되어 있는지를 판단할 수 있으므로, 패치 과정에서 위험한 패치파일의 설치를 방지할 수 있는 효과가 있다.
도 1은 본 발명에 따른 분석시스템의 구성을 도시한 블록도이고,
도 2는 본 발명에 따른 분석시스템을 이용한 분석방법을 순차 도시한 플로차트이고,
도 3은 본 발명에 따른 분석시스템의 다른 실시 예를 도시한 블록도이고,
도 4는 본 발명에 따른 패치 진행 과정을 개략적으로 보인 플로차트이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
이하, 본 발명을 실시하기 위한 구체적인 내용이 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명에 따른 분석시스템의 구성을 도시한 블록도인 바, 이를 참조해 설명한다.
일반적으로 패치파일은 기존 프로그램의 기능을 크게 수정하거나, 시스템의 민감한 영역에 동의없이 접근하는 코드를 포함하지 않는다.
본 발명에 따른 분석시스템(100)은 패치파일의 전술한 특성을 활용해서, 새로운 패치파일이 기존 프로그램의 동작을 크게 벗어나거나 시스템의 민감한 영역을 새로이 접근하는 코드가 존재함이 확인되면, 이를 검사해서 분석결과를 사용자에게 알려주는 것이 기본 동작 개념이다.
본 발명에 따른 분석 시스템(100)은 기존 프로그램을 분석하여 시스템 호출 정보를 저장하고, 시스템의 민감한 영역으로 접근하는 관련 데이터가 저장된 위험지식베이스를 관리하며, 새로운 패치파일을 분석하여 기존 프로그램과의 차이점과 시스템 민간영역의 새로운 접근을 분석할 수 있도록 구성된다.
이를 위한 본 발명에 따른 분석시스템(100)은 임의 단말기에 대한 응용프로그램의 설정정보(응용프로그램에 속한 파일 형태 정보 및 동작 패턴 정보 등)를 수집해서 기준정보로 설정하는 프로그램 분석모듈(120)과, 상기 기준정보를 저장하는 기준정보DB(110)와, 상기 응용프로그램의 패치파일을 분석해서 파일 형태 정보 및 동작 패턴 정보 등의 분석정보를 수집하고 상기 분석정보를 패치정보로 설정하는 패치파일 분석모듈(130)과, 상기 응용프로그램의 기준정보와 패치정보를 비교하는 비교모듈(140)를 포함한다.
기준정보DB(110)는 앞서 설명한 바와 같이 상기 응용프로그램의 설정정보는 물론, 정상적인 패치파일로 구성된 설정정보(각 파일의 형태 정보 및 동작패턴 정보 등)를 기준정보로 저장한다.
프로그램 분석모듈(120)은 상기 기준정보를 생성한다. 본 발명에 따른 실시 예에서, 기준정보는 전술한 바와 같이 상기 응용프로그램의 설정정보(파일 형태 정보 및 동작패턴 정보 등)를 분석해서 생성되는데, 이를 아래에서 좀 더 구체적으로 설명한다.
우선, 형태정보는 해당 응용프로그램의 상기 설치파일을 포함하는 구성파일의 PE(Processing element) 구조 변화를 분석한 기준정보로서, 설치파일의 PE 헤더 분석을 통해서 악성코드 여부 또는 기존 설정정보 등과의 차이 판별이 가능하다.
다음으로, 동작패턴정보는 정적분석과 동적분석(디버깅)을 통해 이루어진다.
상기 정적분석은 응용프로그램의 설치파일 등이 실행하지 않는 상태에서 OS에 대한 API 또는 서비스 함수의 호출 이력을 확인하고 이를 기록한다. 좀 더 설명하면, 정적 분석 기술은 소프트웨어의 정적 표현(representation)에 근거해 소프트웨어의 동작에 대한 정보를 추론한다. 이것은 소프트웨어가 동작할 때 이를 관찰하여 정보를 수집하는 동적 분석 기술과 대비된다. 코드가 실행되지 않은 상태에서 분석하므로 테스트 케이스가 필요 없다. 정적 분석은 두 단계 과정을 거친다. 첫 번째 단계에서는 소프트웨어의 바이너리 파일로부터 의미 정보(semantic information)를 추출한다. 두 번째 단계에서는 이 정보를 이용해 결함이나 원하는 다른 특성을 찾는다.
상기 동적분석은 상기 설치파일을 실행한 상태에서 동적으로 OS에 대한 API 또는 서비스 함수의 호출 이력을 확인하고 이를 기록한다. 정적분석 또는 동적분석 등을 통하여 해당 응용프로그램에서 호출 및 로드되는 API 및 서비스 함수 목록을 확인할 수 있고, 패치파일에 의해서 신규로 추가되는 API 및 서비스 함수 목록을 확인할 수 있다.
참고로, 함수별로 사용하는 리소스 내역(파일 및 레지스트리 등) 확인은 상기 정적분석과 동적분석을 통해서 이루어질 수 있고, 이를 통해서 기준정보를 생성한다. 예를 들어, Createfile 함수는 파일 및 I/O 디바이스를 생성하거나 오픈하는 함수인데, 패치파일이 임의 파일 및 I/O 디바이스로 접근하기 위해서 주로 활용한다. 프로그램 분석모듈(120)은 Createfile 함수의 parameter를 '접근 대상 파일’로 지정하고, 설치파일의 설치 과정 중 Createfile 함수가 접근하는 파일 목록을 기준정보에 포함한다. 이후, 해당 응용프로그램의 패치파일이 정상적인 패치파일인 것으로 판명되면, 패치 과정에서 Createfile 함수가 접근하는 파일 목록을 기준정보DB(110)에 지속적으로 업데이트할 수 있다.
이상 설명한 바와 같이, 프로그램 분석모듈(120)은 상기 응용프로그램 파일에 대한 파일 형태정보와 동작패턴정보 등을 파악해서 기준정보로 생성하고, 이렇게 생성한 기준정보를 기준정보DB(110)에 저장한다.
패치파일 분석모듈(130)은 해당 응용프로그램의 패치파일에 대한 파일 형태정보와 동작패턴정보 등을 수집해서 패치정보로 생성한다. 패치정보는 기준정보인 파일의 형태정보와 동작패턴정보에 대응한 정보가 수집될 수 있다. 일 예로 패치정보는 기준정보의 파일 형태정보와 함께 동작패턴정보에 예시된 API 리스트 또는 서비스 함수 리스트 등에 상응해서 패치 시 OS로부터 호출되는 호출리스트를 포함할 수 있다.
비교모듈(140)은 해당 응용프로그램의 기준정보를 기준정보DB(110)에서 검색하고, 패치파일 분석모듈(130)이 생성한 패치정보를 상기 기준정보와 비교한다.
비교 결과, 기준정보와 패치정보에 차이가 있으면 해당 결과 내용을 다양한 형태(doc, pdf, html 등)의 결과보고서로 출력할 수 있으며, 이후 패치정보에 대한 위험도를 추가로 판단하여 결과보고서에 포함할 수 있다. 이후 관리자는 결과 보고서를 기반으로 해당 응용프로그램의 제조사(200)에 문의하여, 패치파일이 제조사(200)에서 배포된 정상적인 파일인지를 질의한다. 제조(200)로부터 해당 패치파일이 정상이라면 상기 패치파일의 패치정보를 기준정보에 업데이트하고, 해당 파일을 패치한다. 패치 방식은 기존의 공지,공용의 패치 기술이 적용되므로, 이에 대한 구체적인 설명은 생략한다.
이상의 내용을 참고해서 본 발명에 따른 패치 분석방법을 설명한다.
도 2는 본 발명에 따른 분석시스템을 이용한 분석방법을 순차 도시한 플로차트인 바, 이를 참조해 설명한다.
S10; 기준정보 생성단계
관리자는 임의의 응용프로그램 설치파일(예, setup 파일)의 구성 정보를 프로그램 분석모듈(120)에 입력데이터로 입력해서 기준정보로 설정한다. 또한 정상적인 패치파일이 있다면 상기 패치파일 구성 정보 또한 프로그램 분석모듈(120)에 입력데이터로 입력해서 상기 기준정보에 보강한다.
프로그램 분석모듈(120)은 입력된 응용프로그램의 설치파일 및 정상적인 패치파일에 대한 정보를 파악해서 해당 응용프로그램의 기준정보로 생성하는데, 전술한 바와 같이 상기 기준정보는 설치파일 및 정상적인 패치파일의 형태정보와 동작패턴정보를 포함한다. 프로그램 분석모듈(120)이 형태정보와 동작패턴정보를 수집하는 기술은 앞서 설명한 바 있으므로, 여기서는 추가 설명은 생략한다.
S20; 패치정보 확인단계
패치파일 분석모듈(130)은 해당 응용프로그램의 새로운 패치를 위한 패치파일의 파일 형태정보와 동작패턴정보 등을 수집해서 패치정보로 생성한다. 패치정보는 기준정보인 파일의 형태정보와 동작패턴정보에 대응해서 수집될 수 있다. 기준정보의 파일 형태정보와 함께 동작패턴정보에 예시된 API 리스트 또는 서비스 함수 리스트 등에 상응해서 패치 시 OS로부터 호출되는 호출리스트를 포함할 수 있다.
S30; 비교단계
일반적으로 응용프로그램이 동작하기 위해서는 OS에서 제공하는 API를 호출해야 하는데, 일반적으로 OS에 대한 응용프로그램의 API 호출 내역은 패치 전후에 큰 차이가 없다. 따라서 패치파일이 기존 응용프로그램의 API 호출 내역에는 확인할 수 없는 새로운 API 호출을 수행한다면, 상기 패치파일을 제조사(200)에서 제공한 정상적인 패치인지 확인해야 하는 대상으로 분류한다. 예를 들어, 바이러스와 같은 악성코드가 다른 프로세스의 리소스를 점유하기 위해 사용하는 대표적인 API로 CreateRemoteThread()을 들 수 있다. CreateRemoteThread()는 다른 프로세스에서 실행되는 thread를 생성하는 API 함수인데, 타 프로세스 권한으로 실행하고자 할 때 사용된다. 또한 CreateRemoteThread API를 통해 타 DLL에 대한 인젝션도 가능하다. 따라서, CreateRemoteThread()를 이용해서, 다른 DLL에 대한 동작을 우회하거나 무력화시킬 수 있다. 이를 기초로 기준정보에는 CreateRemoteThread() API가 사용되지 않다가, 패치정보에서 해당 API가 추가되었다면 이는 위험으로 분류될 수 있다. 또한, MBR(master boot record)을 접근하기 위해서는 하드디스크를 파일단위로 접근하지 않고 물리적으로 디스크에 접근해야 하며, 이 경우 CreateFile("\\\\.\\PhysicalDrive0",…) 형태로 CreateFile API 호출의 파라메터가 달라진다. 이러한 시스템을 파괴, 감염할 수 있는 중요 API, API 호출시의 파라메터, 드라이버, 서비스, 네트워크 등을 모두 상기 기준정보에 포함하고, 패치파일에 의한 패치정보를 상기 기준정보와 비교한다. 예를 들면, 어떤 응용프로그램의 패치 비교를 위해서 해당 응용프로그램의 역대 패치정보까지 누적해서 분석한 결과, 기준정보(기존 패치파일 포함)에서는 확인할 수 없었던 CreateRemoteThread()의 호출이 패치정보에 확인되면, 해당 패치파일은 제조사(200)에서 제공한 정상적인 패치파일이 아닌 것으로 의심할 수 있다.
전술한 바와 같이, 비교모듈(140)은 패치파일 분석모듈(130)이 생성한 패치정보를 해당 응용프로그램의 기준정보와 비교해서 그 차이 여부를 판단한다. 이를 위해서 비교모듈(140)은 해당 패치파일 관련 응용프로그램의 기준정보를 기준정보DB(110)에서 검색하고, 검색한 기준정보를 상기 패치정보와 비교한다.
추가적으로, API 및 서비스 항목 호출에 대해서는 디셈블러를 통하여 파라메터를 추적하고, 응용프로그램의 기준정보와 비교할 수 있다. 예를 들면, 패치파일의 패치 중 호출되는 API 또는 서비스 항목이 해당 응용프로그램의 실행에 필요한 리소스가 아니고, 기준정보에서는 확인할 수 없었던 다른 응용프로그램의 리소스 또는 시스템 리소스(System Resource)에 접근하는 경우에는 기준정보와 비교할 수 있으며, 뒤의 위험성 판단단계(S40)에서 리소스의 중요성에 따라 '위험'으로 간주할 수 있다. 참고로, 시스템 중요 리소스(System Critical Resource)는 MBR 등의 디스크에 대한 물리적 R/W(READ/WRITE)과, 디바이스 드라이버 로드, 시스템 서비스 로드, API Message HOOK, HOST 파일 변조, 네트워크 통신 등이 예시될 수 있다.
이상 설명한 바와 같이, 비교모듈(140)은 패치정보가 기존정보와 상이한 경우, 이 정보를 결과보고서에 기록한다.
도 3은 본 발명에 따른 분석시스템의 다른 실시 예를 도시한 블록도이고, 도 4는 본 발명에 따른 패치 진행 과정을 개략적으로 보인 플로차트인 바, 도 2와 함께 참조해서 본 발명에 따른 분석시스템 및 분석방법을 설명한다.
S40; 위험성 판단단계
비교모듈(140)에서 패치파일 분석모듈(130)이 생성한 패치정보가 해당 응용프로그램의 기준정보와 비교해서 동작패턴정보가 다르거나 또는 파일 형태가 다르다고 판단된 경우, 위험판단모듈(170)은 해당 피치정보의 위험도 등급을 위험지식베이스(160)에서 검색해서 패치파일의 위험도를 출력한다. 참고로, 위험지식베이스(160)는 OS에 대한 동작행위 또는 OS의 동작행위를 위험도에 따라 등급화해서 저장하며, 위험판단모듈(170)은 비교모듈(140)이 상기 기준정보와 패치정보를 비교해서 확인한 비교내용을 상기 위험지식베이스(160)의 동작행위와 비교해서 해당하는 위험도를 검색 및 출력한다.
예를 들어 설명하면, 위험도 등급에 대한 정보는 접근되는 파라미터를 파악하여 구체적인 위험성을 판단할 수 있는데, 시스템 전반의 리소스(System Critical Resource)는 MBR 등의 디스크(PhysicalDrive0)에 대한 물리적 R/W(READ/WRITE)과, 디바이스 드라이버 로드, 시스템 서비스 로드, API Message HOOK, HOST 파일 변조, 네트워크 통신 등의 접근이 예시될 수 있다. 즉, 해당 패치정보에 기준정보에서는 확인할 수 없는 다른 IP로의 네트워크 통신이 추가되었다면, 해당 패치는 '위험'으로 간주하는 것이다. 또한, 파일로 접근해서 읽기/쓰기를 할 때 활용되는 함수인 CreateFile 함수의 파라미터가 PhysicalDrive0인 경우에는, 시스템 부팅에 필요한 MBR 영역으로의 접근을 의미하므로, 이 또한 해당 패치는 '위험'으로 간주한다. 또한, 해당 해킹에서 윈도우즈 등의 OS 운영에 사용되는 공용파일(ex, EXE.dll, ntdll.dll, kernel32.dll 등)과 동일한 이름의 파일을 생성하거나 이름을 변경하는 해킹정보가 확인되면, 이 또한 기준정보와 비교해서 해당 패치는 '위험'으로 간주한다. 참고로, ntdll.dll 등과 같이 OS(ex, Windows)의 공용파일은 모든 응용프로그램이 동작할 때 사용되는 구성요소인데, 이 파일이 손상되면 OS 자체는 물론 상기 컴퓨터에 기 설치되어 있는 응용프로그램은 정상적인 동작을 할 수 없게 된다.
S60: 보고 및 질의 단계
위 단계에서 도출된 결과보고서를 기반으로, 관리자는 상기 패치파일이 해당 응용프로그램 제조사(200)에 제공한 정상적인 패치파일인지를 제조사(200)에 질의한다. 해당 패치파일이 제조사(200)에서 제공된 정상적인 패치파일로 확인되면, 기존 방식대로 패치를 수행하고, 해당 패치정보를 기준정보에 업데이트한다. 만약 해당 패치파일이 제조사(200)에서 제공하지 않은 위장된 패치파일인 경우에는 패치를 수행하지 않도록 조치한다.
앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예들을 참조해 설명했지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (5)

  1. 응용프로그램에 구성된 설정정보를 수집해서 기준정보로 생성하는 프로그램 분석모듈;
    상기 기준정보를 저장하는 기준정보DB;
    상기 응용프로그램의 패치파일을 분석해서 상기 패치파일에 구성된 설정정보를 패치정보로 생성하는 패치파일 분석모듈; 및
    상기 패치정보에 대응하는 기준정보를 상기 기준정보DB에서 검색하고, 상기 패치정보와 기준정보를 비교하는 비교모듈;
    을 포함하는 것을 특징으로 하는 패치파일 분석시스템.
  2. 제 1 항에 있어서,
    동작행위를 위험도에 따라 등급화해서 저장하는 위험지식베이스; 및
    상기 비교모듈이 상기 기준정보와 패치정보를 비교해서 확인한 비교내용을 상기 위험지식베이스의 동작행위와 비교해서 해당하는 위험도를 검색하는 위험판단모듈;
    을 더 포함하는 것을 특징으로 하는 패치파일 분석시스템.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 기준정보는
    상기 응용프로그램이 구성한 파일의 PE(Processing element) 구조 변화정보 리스트를 수집해 갖춘 파일 형태정보와;
    상기 응용프로그램의 설치 전,후의 API 호출 리스트와 서비스 함수 호출 리스트 중 선택된 하나 이상을 수집해 갖춘 동작패턴정보;
    를 포함하는 것을 특징으로 하는 패치파일 분석시스템.
  4. 제 3 항에 있어서, 상기 패치정보는
    상기 패치파일의 설치 전,후의 API 호출 리스트와 서비스 함수 호출 리스트 중 선택된 하나 이상을 수집해 갖춘 것을 특징으로 하는 패치파일 분석시스템.
  5. 제 4 항에 있어서,
    상기 기준정보는 애플리케이션의 바이너리 파일로부터 의미정보를 추출해 확인한 정적분석 정보를 포함하고, 상기 패치정보는 패치파일의 바이너리 파일로부터 의미정보를 추출해 확인한 정적분석 정보를 포함하는 것을 특징으로 하는 패치파일 분석시스템.
KR1020140061759A 2014-05-22 2014-05-22 패치파일 분석시스템과 분석방법 KR101647487B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020140061759A KR101647487B1 (ko) 2014-05-22 2014-05-22 패치파일 분석시스템과 분석방법
PCT/KR2015/002797 WO2015178578A1 (ko) 2014-05-22 2015-03-23 패치파일 분석시스템과 분석방법
US15/312,028 US10235520B2 (en) 2014-05-22 2015-03-23 System and method for analyzing patch file
CN201580026121.6A CN106462703B (zh) 2014-05-22 2015-03-23 补丁文件分析***与分析方法
JP2016567731A JP6455738B2 (ja) 2014-05-22 2015-03-23 パッチファイル分析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140061759A KR101647487B1 (ko) 2014-05-22 2014-05-22 패치파일 분석시스템과 분석방법

Publications (2)

Publication Number Publication Date
KR20150134679A true KR20150134679A (ko) 2015-12-02
KR101647487B1 KR101647487B1 (ko) 2016-08-10

Family

ID=54554213

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140061759A KR101647487B1 (ko) 2014-05-22 2014-05-22 패치파일 분석시스템과 분석방법

Country Status (5)

Country Link
US (1) US10235520B2 (ko)
JP (1) JP6455738B2 (ko)
KR (1) KR101647487B1 (ko)
CN (1) CN106462703B (ko)
WO (1) WO2015178578A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024122904A1 (ko) * 2022-12-08 2024-06-13 레드펜소프트 주식회사 수요자 관점의 sbom 기반 설치파일 비교 분석을 통한 위협 요인 검출시스템과 검출방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11019101B2 (en) * 2016-03-11 2021-05-25 Netskope, Inc. Middle ware security layer for cloud computing services
US11425169B2 (en) 2016-03-11 2022-08-23 Netskope, Inc. Small-footprint endpoint data loss prevention (DLP)
US11405423B2 (en) 2016-03-11 2022-08-02 Netskope, Inc. Metadata-based data loss prevention (DLP) for cloud resources
KR101893518B1 (ko) * 2016-10-28 2018-10-04 한국전자통신연구원 제어 시스템의 업데이트 관리 장치, 업데이트 검증 장치 및 그 방법
US10834113B2 (en) 2017-07-25 2020-11-10 Netskope, Inc. Compact logging of network traffic events
US20190163463A1 (en) * 2017-11-30 2019-05-30 International Business Machines Corporation Relational patch orchestration
US10972366B2 (en) 2017-12-14 2021-04-06 International Business Machines Corporation Orchestration engine blueprint aspects for hybrid cloud composition
US10833962B2 (en) 2017-12-14 2020-11-10 International Business Machines Corporation Orchestration engine blueprint aspects for hybrid cloud composition
US11025511B2 (en) 2017-12-14 2021-06-01 International Business Machines Corporation Orchestration engine blueprint aspects for hybrid cloud composition
CN108268777B (zh) * 2018-01-18 2020-06-30 中国人民大学 一种利用补丁信息进行未知漏洞发现的相似性检测方法
CN108388442B (zh) * 2018-01-22 2021-06-08 深圳市亿道数码技术有限公司 一种安卓***中固件的补丁管理方法及***
CN108989094B (zh) * 2018-06-27 2021-08-27 新华三技术有限公司合肥分公司 补丁包的安装方法及装置
US11416641B2 (en) 2019-01-24 2022-08-16 Netskope, Inc. Incident-driven introspection for data loss prevention
CN111241307A (zh) * 2020-01-23 2020-06-05 复旦大学 面向软件***的软件项目及第三方库知识图谱构造方法
US11271953B1 (en) 2021-01-29 2022-03-08 Netskope, Inc. Dynamic power user identification and isolation for managing SLA guarantees
US11463362B2 (en) 2021-01-29 2022-10-04 Netskope, Inc. Dynamic token bucket method adaptive to opaque server limits
US11777993B2 (en) 2021-01-30 2023-10-03 Netskope, Inc. Unified system for detecting policy enforcement issues in a cloud-based environment
US12015619B2 (en) 2021-01-30 2024-06-18 Netskope, Inc. Dynamic routing of access request streams in a unified policy enforcement system
US11848949B2 (en) 2021-01-30 2023-12-19 Netskope, Inc. Dynamic distribution of unified policies in a cloud-based policy enforcement system
US11947682B2 (en) 2022-07-07 2024-04-02 Netskope, Inc. ML-based encrypted file classification for identifying encrypted data movement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020031500A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 정품 프로그램에 대해 갱신하는 방법
KR100666562B1 (ko) * 2005-08-11 2007-01-09 주식회사 웨어플러스 커널 드라이버 및 프로세스 보호 방법
KR20090097522A (ko) * 2008-03-12 2009-09-16 윤영세 파일 고유값을 이용한 서비스 방법 및 그 기록매체
KR20130021892A (ko) * 2011-08-24 2013-03-06 주식회사 팬택 단말기 및 이를 이용하는 어플리케이션의 위험도 제공 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171460A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd 計算機の診断システム
JP2004258777A (ja) * 2003-02-24 2004-09-16 Fujitsu Ltd セキュリティ管理装置、セキュリティ管理システム、セキュリティ管理方法、セキュリティ管理プログラム
US20050005152A1 (en) * 2003-07-01 2005-01-06 Navjot Singh Security vulnerability monitor
JP2009171460A (ja) * 2008-01-18 2009-07-30 Sony Corp 通信装置、発振器、並びに周波数シンセサイザ
US8595836B2 (en) * 2008-12-25 2013-11-26 Trusteer Ltd. Functional patching/hooking detection and prevention
US8239940B2 (en) * 2008-12-25 2012-08-07 Trusteer Ltd. Functional patching/hooking detection and prevention
CN101819525B (zh) * 2009-02-27 2013-11-27 国际商业机器公司 用于查找***中应用的配置文件的方法和设备
JP2010262609A (ja) * 2009-04-28 2010-11-18 Fourteenforty Research Institute Inc 効率的なマルウェアの動的解析手法
CN102012990A (zh) * 2010-12-16 2011-04-13 北京安天电子设备有限公司 第三方软件漏洞的修补方法和装置
JP5932837B2 (ja) * 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
JP5665188B2 (ja) * 2011-03-31 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア更新を適用した情報処理装置を検査するシステム
KR101324691B1 (ko) * 2011-12-08 2013-11-04 한국인터넷진흥원 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법
CN103218241B (zh) * 2013-04-19 2016-08-31 华为技术有限公司 补丁加载方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020031500A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 정품 프로그램에 대해 갱신하는 방법
KR100666562B1 (ko) * 2005-08-11 2007-01-09 주식회사 웨어플러스 커널 드라이버 및 프로세스 보호 방법
KR20090097522A (ko) * 2008-03-12 2009-09-16 윤영세 파일 고유값을 이용한 서비스 방법 및 그 기록매체
KR20130021892A (ko) * 2011-08-24 2013-03-06 주식회사 팬택 단말기 및 이를 이용하는 어플리케이션의 위험도 제공 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024122904A1 (ko) * 2022-12-08 2024-06-13 레드펜소프트 주식회사 수요자 관점의 sbom 기반 설치파일 비교 분석을 통한 위협 요인 검출시스템과 검출방법

Also Published As

Publication number Publication date
CN106462703B (zh) 2019-08-02
JP2017527864A (ja) 2017-09-21
KR101647487B1 (ko) 2016-08-10
WO2015178578A1 (ko) 2015-11-26
JP6455738B2 (ja) 2019-01-23
CN106462703A (zh) 2017-02-22
US10235520B2 (en) 2019-03-19
US20170076094A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR101647487B1 (ko) 패치파일 분석시스템과 분석방법
US10691792B2 (en) System and method for process hollowing detection
US10055585B2 (en) Hardware and software execution profiling
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
KR100786725B1 (ko) 악성코드 분석 시스템 및 방법
RU2451326C2 (ru) Системный анализ и управление
RU2645268C2 (ru) Сложное классифицирование для выявления вредоносных программ
US8898775B2 (en) Method and apparatus for detecting the malicious behavior of computer program
JP2014038596A (ja) 悪意ある実行ファイルの識別方法
JP2018524756A (ja) 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法
US8201253B1 (en) Performing security functions when a process is created
Xuan et al. Toward revealing kernel malware behavior in virtual execution environments
Leguesse et al. Androneo: Hardening android malware sandboxes by predicting evasion heuristics
US20220035920A1 (en) Systems and methods for automatically generating malware countermeasures
Flatley Rootkit Detection Using a Cross-View Clean Boot Method
US20240241953A1 (en) System and method for detecting malicious code by an interpreter in a computing device
US20220092171A1 (en) Malicious code protection for computer systems based on system call table modification and runtime application patching

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant