KR102560431B1 - 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치 - Google Patents

자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102560431B1
KR102560431B1 KR1020227032766A KR20227032766A KR102560431B1 KR 102560431 B1 KR102560431 B1 KR 102560431B1 KR 1020227032766 A KR1020227032766 A KR 1020227032766A KR 20227032766 A KR20227032766 A KR 20227032766A KR 102560431 B1 KR102560431 B1 KR 102560431B1
Authority
KR
South Korea
Prior art keywords
engine
sub
registry
debugging
child process
Prior art date
Application number
KR1020227032766A
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 시큐레터 주식회사
Application granted granted Critical
Publication of KR102560431B1 publication Critical patent/KR102560431B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 명세서는 서버가 자식(child) 프로세스의 악성 행위를 검사하는 방법에 있어서, 비실행 파일을 검사하기 위한 메인 엔진(engine)을 실행하고, 상기 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리(registry)에 등록하며, 상기 비실행 파일과 관련된 타겟(target) 프로세스를 실행하고, 상기 메인 엔진을 통해, 상기 타겟 프로세스의 검사를 위한 제1 디버깅(debugging)을 시작하며, 상기 서브 엔진은 상기 자식 프로세스의 악성 행위를 검사하기 위한 엔진일 수 있다.

Description

자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치 { METHODS AND APPARATUS FOR EXAMINING MALICIOUS BEHAVIOR OF CHILD PROCESS }
본 명세서는 리버싱 엔진 기반으로, 비실행 파일을 디버깅 하여 타겟(target) 프로세스가 생성한 자식(child) 프로세스의 악성 행위를 판단하기 위한 방법 및 장치에 관한 것이다.
자식 프로세스란, 다른 프로세스(예를 들어, 부모 프로세스)에 의해 생성된 프로세스이다. 이는 멀티테스킹(multitasking) 운영체제(operating system)와 관련된 기술이며, 하위프로세스(subprocess) 또는 하위작업(subtask)로 지칭될 수 있다.
예를 들어, 자식 프로세스가 생성되는 절차는 포크(fork) 시스템이 콜(call) 하는 경우, 그리고 스폰(spawn) 프로세스를 이용하는 두가지 경우가 있을 수 있다.
일반적인 디버깅 엔진은 대상 프로세스가 생성한 자식 프로세스를 바로 디버깅 할 수 없으므로, 자식 프로세스가 어떤 동작을 하는 지 정확히 파악할 수 없고, 단지 대상 프로세스가 자식 프로세스를 생성한다는 정보만 관리자에게 출력할 수 있다.
본 명세서의 목적은, 대상 프로세스가 자식 프로세스를 통해 악성 행위를 할 경우 정확히 어떤 악성 행위를 하는지 진단하기 위한 방법 및 장치를 제안한다.
또한, 본 명세서의 목적은 악성 행위를 하지 않는 경우, 자식 프로세스의 생성 여부를 사용자에게 출력하기 위한 작업을 수행하지 않는 악성 행위 검사 방법 및 장치를 제안한다.
본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 양상은, 서버가 자식(child) 프로세스의 악성 행위를 검사하는 방법에 있어서, 비실행 파일을 검사하기 위한 메인 엔진(engine)을 실행하는 단계; 상기 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리(registry)에 등록하는 단계; 상기 비실행 파일과 관련된 타겟(target) 프로세스를 실행하는 단계; 및 상기 메인 엔진을 통해, 상기 타겟 프로세스의 검사를 위한 제1 디버깅(debugging)을 시작하는 단계; 를 포함하며, 상기 서브 엔진은 상기 자식 프로세스의 악성 행위를 검사하기 위한 엔진일 수 있다.
또한, 상기 타겟 프로세스가 상기 자식 프로세스를 생성하는 경우, 상기 레지스트리에 근거하여, 상기 서브 엔진을 실행하는 단계; 및 상기 서브 엔진을 통해, 상기 자식 프로세스의 검사를 위한 제2 디버깅을 시작하는 단계; 를 포함할 수 있다.
또한, 상기 레지스트리는 Image File Execution Options 레지스트리를 포함할 수 있다.
또한, 상기 레지스트리에 등록하는 단계는 상기 Image File Execution Options 레지스트리의 상기 자식 프로세스와 관련된 실행 파일들의 항목에 상기 서브 엔진의 정보를 등록하는 단계; 를 더 포함할 수 있다.
또한, 상기 제1 디버깅의 종료에 근거하여, 상기 레지스트리에서 상기 서브 엔진의 정보를 삭제하는 단계; 를 더 포함할 수 있다.
또한, 상기 제2 디버깅이 종료되지 않은 경우, 상기 제2 디버깅의 종료에 근거하여, 상기 레지스트리에서 상기 서브 엔진의 정보를 삭제하는 단계; 를 더 포함할 수 있다.
본 명세서의 또 다른 일 양상은, 자식(child) 프로세스의 악성 행위를 검사하는 서버에 있어서, 통신부; 메인 엔진(engine) 및 서브 엔진이 포함된 메모리; 및 상기 통신부 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고, 상기 프로세서는 비실행 파일을 검사하기 위한 메인 엔진(engine)을 실행하고, 상기 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리(registry)에 등록하며, 상기 비실행 파일과 관련된 타겟(target) 프로세스를 실행하고, 상기 메인 엔진을 통해, 상기 타겟 프로세스의 검사를 위한 제1 디버깅(debugging)을 시작하며, 상기 서브 엔진은 상기 자식 프로세스의 악성 행위를 검사하기 위한 엔진일 수 있다.
본 명세서의 실시예에 따르면, 대상 프로세스가 자식 프로세스를 통해 악성 행위를 할 경우 정확히 어떤 악성 행위를 하는지 진단할 수 있다.
또한, 본 명세서의 목적은 악성 행위를 하지 않는 경우, 자식 프로세스의 생성 여부를 사용자에게 출력하기 위한 불필요한 작업을 수행하지 않을 수 있다.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
도 2는 본 명세서와 관련된 서버 또는 클라이언트를 나타내는 도면이다.
도 3은 본 명세서에 적용될 수 있는 비정상 입력의 예시이다.
도 4는 본 명세서에 적용될 수 있는 자식 프로세스의 예시이다.
도 5는 본 명세서가 적용될 수 있는 자식 프로세스의 디버깅 방법의 예시이다.
도 6은 본 명세서가 적용될 수 있는 서버의 일 실시예이다.
도 7은 본 명세서가 적용될 수 있는 IFEO(Image File Execution Options) 레지스트리를 예시한다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
또한, 본 명세서의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서"는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서"는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서"는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.
용어 "메모리"는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.
본 명세서에서 사용되는 "비실행 파일"이란 실행 파일 또는 실행 가능한 파일과 반대되는 개념으로서 자체적으로 실행되지 않는 파일을 의미한다. 예를 들어, 비실행 파일은 PDF 파일, 한글 파일, 워드 파일과 같은 문서 파일, JPG 파일과 같은 이미지 파일, 동영상 파일, 자바 스크립트 파일, HTML 파일 등이 될 수 있으나, 이에 한정되지 않는다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 명세서가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분들은 생략될 수 있다.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
상기 전자 기기(100)는 무선 통신부(110), 입력부(120), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 전자 기기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 기기는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 전자 기기(100)와 무선 통신 시스템 사이, 전자 기기(100)와 다른 전자 기기(100) 사이, 또는 전자 기기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 전자 기기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.
센싱부(140)는 전자 기기 내 정보, 전자 기기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 토양습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 기기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 기기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 기기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
인터페이스부(160)는 전자 기기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 기기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
또한, 메모리(170)는 전자 기기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 전자 기기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 전자 기기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 전자 기기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 전자 기기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 전자 기기(100) 상에 설치되어, 제어부(180)에 의하여 상기 전자 기기의 동작(또는 기능)을 수행하도록 구동될 수 있다.
제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 기기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 전자 기기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.
전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 기기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.
상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 전자 기기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 전자 기기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 전자 기기 상에서 구현될 수 있다.
본 명세서에서 서버(또는 클라우드 서버) 또는 클라이언트는 전자기기(100)를 포함할 수 있으며, 전자기기(100)는 단말로 통칭될 수 있다.
단말은 외부 서버(또는 클라우드 서버) 또는 클라이언트와 네트워크로 연결되어 통신할 수 있다.
도 2는 본 명세서와 관련된 서버 또는 클라이언트를 나타내는 도면이다.
본 명세서에서 서버(또는 클라우드 서버) 또는 클라이언트는 제어부(200) 및 통신부(230)를 포함할 수 있다. 제어부(200)는 프로세서(210) 및 메모리(220)를 포함할 수 있다. 프로세서(210)는 메모리(220)에 저장된 명령어들을 수행할 수 있다. 프로세서(210)는 통신부(230)를 제어할 수 있다. 메모리(220)는 캐시(cache) 메모리를 포함할 수 있다. 캐시 메모리는 후술되는 원본 문서를 일정 시간 동안 임시로 저장할 수 있다.
프로세서(210)는 메모리(220)에 저장된 명령어에 기초하여 서버 또는 클라이언트의 동작을 제어할 수 있다. 서버 또는 클라이언트는 하나의 프로세서를 포함할 수 있고, 복수의 프로세서를 포함할 수 있다. 서버 또는 클라이언트가 복수의 프로세서를 포함하는 경우, 복수의 프로세서 중 적어도 일부는 물리적으로 이격된 거리에 위치할 수 있다. 또한, 서버 또는 클라이언트는 이에 한정되지 않고 알려진 다양한 방식으로 구현될 수 있다.
통신부(230)는, 서버 또는 클라이언트와 무선 통신 시스템 사이, 서버 또는 클라이언트와 다른 서버 또는 클라이언트 사이, 또는 서버 또는 클라이언트와 외부서버(단말) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 통신부(210)는, 서버 또는 클라이언트를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
제어부(200)는 메모리(220)에 저장된 응용 프로그램을 구동하기 위하여, 서버 또는 클라이언트의 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(200)는 상기 응용 프로그램의 구동을 위하여, 서버 또는 클라이언트에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.
본 명세서에서 서버는 리버싱 엔진 또는/및 CDR 서비스를 제공하는 CDR 엔진을 포함할 수 있다.
리버싱(Reversing) 엔진
리버싱 엔진이란, 비실행 파일에 대한 리버스 엔지니어링(리버싱) 과정을 자동화 한 분석/진단 엔진이다. 이는 역공학이라고 불리며, 이를 통해 서버는 소스코드가 없는 소프트웨어를 컴퓨터가 실행할 수 있는 언어인 어셈블리단까지 들어가 소프트웨어의 원리 및 구조에 대해 알 수 있다. 이를 이용하여 서버는 일반적인 소프트웨어(예를 들어, msoffice, pdf) 구조, 악성코드 행위, 취약점 악용 방법 등을 알 수 있다.
예를 들어, 리버싱 엔진은 다음의 단계를 수행할 수 있다.
1.파일 분석: 비실행 파일 자체의 외관(예를 들어, 속성, 작성자, 작성 날짜, 파일 타입)을 분석하는 단계로서, 일반 백신 프로그램과 유사하게 비실행 파일 자체의 정보만으로 악성여부를 진단할 수 있다.
2.정적 분석: 비실행 파일 내의 데이터를 추출, 분석해서 정상, 악성 여부를 판별하는 단계로서, 비실행 파일은 실행하지 않고 파일 구조에 맞게 내부 데이터를 추출하여 비교 분석하여 악성여부를 진단할 수 있다. 이는 매크로, URL 추출 분석 등에 적합할 수 있다.
3.동적 분석: 비실행 파일을 실행하고 모니터링하면서 행위를 분석하여 악성 여부를 판별하는 단계로서, 매크로, 하이퍼링크, DDE 등 정상기능을 이용한 악성 행위를 탐지하기에 용이하다.
4.디버깅 분석: 비실행 파일을 실행하고 디버깅하여 취약점, 익스플로잇 등을 분석하는 단계로서, 매크로, 하이퍼링크, DDE를 포함하여 문서 내 본문, 표, 폰트, 그림 등을 이용한 응용프로그램의 취약점을 탐지하기에 적합하다.
리버싱 엔진은 디버깅 분석에 사용될 수 있는 디버깅 엔진을 포함할 수 있다. 디버깅 엔진은 비실행 파일의 열람 과정을 디버깅 모드를 이용하여 문서 입력, 처리, 출력단계에서 발생하는 취약점을 진단할 수 있다. 여기서 취약점이란, 응용프로그램이 응용프로그램의 개발자가 개발한 코드(로직)에서 예상하지 못한 값을 입력 받았을 때, 발생하는 오류, 버그 등을 이용하는 것으로서, 공격자는 취약점을 통해 비정상 종료로 인한 서비스 거부, 원격 코드 실행 등의 악성 문서 행위를 실행할 수 있다.
디버깅 엔진은 디버거를 포함할 수 있다. 디버거는 리버스 엔지니어링을 하기 위한 도구로 다른 대상 프로그램을 어셈블리 레벨에서 Break Point를 할 수 있는 프로그램, 프로세스를 의미할 수 있다.
도 3은 본 명세서에 적용될 수 있는 비정상 입력의 예시이다.
도 3을 참조하면, 응용프로그램은 비실행 파일을 통해, 비정상적인 값(예를 들어, 입력값이 정상범위인 2를 초과하는 경우)을 입력 받는 경우, 개발자가 의도하지 않은 실행흐름으로 변경되어 취약점이 동작될 수 있다. 디버깅 엔진은 문서 열람 과정을 자동 디버깅하여 취약점과 관련된 특정 지점에 브레이크 포인트를 설정하고 입력값과 관련된 특정값을 확인하여 입력값이 취약점을 일으키는 값인지 아닌지 판별하여 악성 여부를 진단할 수 있다.
보다 자세하게, 디버깅 엔진은 비실행 파일을 확인하고 이를 열람하기 위한 응용프로그램을 실행하여 디버깅을 시작할 수 있다. 비실행 파일을 열람하는 과정에서 문서 행위와 관련된 모듈이 로드 되면, 디버깅 엔진은 해당 모듈이 분석 대상 모듈인지 확인하고, 분석 대상이라면 지정된 주소에 브레이크 포인트를 설정할 수 있다.
예를 들어, 악성 비실행 파일은 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건이 만족하지 않으면 응용프로그램을 종료하거나 아무런 악성 행위가 발생하지 않는 흐름으로 분기하는 분기 지점들을 가질 수 있다. 서버는 사전에 분석가에 의해 분석되어 이러한 가능성을 가지는 분기 지점에 브레이크 포인트를 설정할 수 있다.
또한, 서버는 해당 분기 지점과 연관되어, 응용프로그램을 종료하지 않고 계속 실행하거나 악성 행위가 발생할 수 있는 흐름으로 유도할 수 있는 조건들을 설정할 수 있다.
응용프로그램의 프로세스 실행 중 해당 브레이크 포인트 지점에서 프로세스가 멈춘 경우, 서버는 탐지 로직에 따라 취약점 여부를 탐지한 후, 결과를 분석 리포트에 저장하는 단계를 수행할 수 있다.
서버에 포함된 자동화 리버싱 엔진은 전술한 단계들을 자동으로 수행하면서 분석하여 분석가가 연구, 개발한 진단 알고리즘을 통해, 악성 비실행 파일을 진단하고 차단할 수 있다.
CDR(Contents Disarm and Reconstruction)
CDR 서비스는 비실행 파일을 분해해 악성파일 혹은 불필요한 파일을 제거하고 콘텐츠는 원본과 최대한 동일하게 하여, 새로운 파일을 만드는 솔루션이다.
즉, Contents Disarm and Reconstruction(CDR)은 문서 내의 컨텐츠를 무해화(Disarm)하고 재조합(Reconstruction)하여 안전한 문서를 만들어 고객에게 제공하는 서비스를 의미하며, 무해화 대상 파일은 비실행 파일 일체(예를 들어, 워드, 엑셀, 파워포인트, 한글, PDF)를 대상으로 할 수 있으며, 무해화 대상 컨텐츠는 액티브 컨텐츠(예를 들어, 매크로, 하이퍼링크, OLE 객체 등)일 수 있다.
도 4는 본 명세서에 적용될 수 있는 자식 프로세스의 예시이다.
도 4를 참조하면, 엔진은 리버싱 엔진을 포함한다. 예를 들어, 서버는 가상화 머신 기술을 이용하여, 엔진을 실행시키고 타겟 프로세스의 악성 행위를 검사할 수 있다. 여기서 엔진과 타겟 프로세스는 부모와 자식 관계의 프로세스 일 수 있다. 예를 들어, 엔진과 타겟 프로세스는 Debuger와 Debugee의 관계일 수 있다.
서버는 엔진을 이용하여, 리버스 엔지니어링 기술을 통해 타겟 프로세스의 악성 행위를 분석할 수 있다. 그러나, 타겟 프로세스가 생성한 자식 프로세스가 악성 행위를 하는 경우, 엔진은 자식 프로세스의 악성 행위는 분석할 수 없다.
예를 들어, 타겟 프로세스가 MS-Word 실행인 경우, MS-Word에 수학 기호를 삽입하기 위해 생성되는 자식 프로세스는 타겟 프로세스와 독립적으로 수행될 수 없다. 이 경우, 엔진은 종속적인 자식 프로세스의 악성 행위를 분석할 수 없다.
도 5는 본 명세서가 적용될 수 있는 자식 프로세스의 디버깅 방법의 예시이다.
도 5를 참조하면, 서버는 자식 프로세스의 악성 행위를 분석하기 위해, 가상화 머신의 운영체제인 윈도우(Windows)를 이용하여, 서브 엔진을 실행하고, 서브 엔진을 통해 자식 프로세스의 악성 행위를 분석할 수 있다.
예를 들어, 서버의 엔진은 레지스트리의 IFEO(Image File Execution Options)를 이용하여, 서브 엔진을 통해, 자식 프로세스를 자동으로 디버깅할 수 있다.
레지스트리의 Image File Execution Options은 "Tracing Flags" 옵션에 적절한 레지스트리 값을 설정하여 프로세스가 시작할 때 디버깅을 자동으로 켜는 데 사용될 수 있다.
서버는 Image File Execution Option 레지스트리의 항목에 비실행 파일의 실행을 통해, 생성될 수 있는 자식 프로세스와 관련된 실행 파일들의 목록을 등록할 수 있다. 이를 통해, 서버의 윈도우는 자식 프로세스가 생성되면, 서브 엔진을 자동으로 실행하여, 자식 프로세스를 디버깅 할 수 있다.
도 6은 본 명세서가 적용될 수 있는 서버의 일 실시예이다.
도 6을 참조하면, 서버는 가상화 머신을 포함할 수 있다. 예를 들어, 가상화 머신은 윈도우(Windows)를 운영체제로 탑재할 수 있고, 비실행 파일을 검사하기 위한 엔진을 포함할 수 있다. 엔진은 서버의 메모리에 포함될 수 있다. 엔진은 타겟 프로세스를 검사하기 위한 메인(main) 엔진, 및 타겟 프로세스의 자식 프로세스를 검사하기 위한 서브(sub) 엔진을 포함할 수 있다. 가상화 머신은 비실행 파일 및 비실행 파일을 실행시키기 위한 응용프로그램(예를 들어, MSOFFICE, 한컴오피스 등)을 포함할 수 있다.
서버는 비실행 파일을 검사하기 위한 메인 엔진을 실행한다(S610). 예를 들어, 메인 엔진은 리버싱 엔진을 포함할 수 있다.
서버는 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리에 등록한다(S620). 서버는 비실행 파일의 검사를 위한 가상화 머신의 초기 상태를 유지하기 위해 메인 엔진이 실행될 때, 서브 엔진의 정보를 레지스트리에 등록할 수 있다.
예를 들어, 메인 엔진이 실행되면 서브 엔진의 정보는 가상화 머신의 윈도우에 포함된 Image File Execution Options 레지스트리에 등록될 수 있다. 보다 자세하게, 서브 엔진의 정보는 Image File Execution Options 레지스트리에서, 비실행 파일의 실행을 통해 생성될 수 있는 자식 프로세스와 관련된 실행 파일들의 항목에 등록될 수 있다.
표 1은 비실행 파일의 실행을 통해 생성될 수 있는 자식 프로세스와 관련된 실행 파일들을 예시한다.
EQNEDT32.EXE
WINWORD.EXE
EXCEL.EXE
GBB.EXE
GSWIN32.EXE
표 1을 참조하면, 자식 프로세스와 관련된 실행 파일들은 메인 엔진에 기설정될 수 있고, 엔진의 목적에 따라 변경될 수 있다.표 2는 Image File Execution Options 레지스트리의 경로를 예시한다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
표 1, 및 표 2를 참조하면, 서버는 표 2의 경로에 있는 Image File Execution Options 레지스트리에서 표 1의 실행 파일들의 항목에 서브 엔진 정보를 등록할 수 있다.표 3은 서브 엔진의 정보를 Image File Execution Options 레지스트리에 등록하기 위한 메소드(method)를 예시한다.
std::tstring strRegPath = TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\");
WriteRegistry(HKEY_LOCAL_MACHINE, strRegPath + TEXT("EQNEDT32.EXE"), mapValues);
WriteRegistry(HKEY_LOCAL_MACHINE, strRegPath + TEXT("WINWORD.EXE"), mapValues);
WriteRegistry(HKEY_LOCAL_MACHINE, strRegPath + TEXT("EXCEL.EXE"), mapValues);
WriteRegistry(HKEY_LOCAL_MACHINE, strRegPath + TEXT("GBB.EXE"), mapValues);
WriteRegistry(HKEY_LOCAL_MACHINE, strRegPath + TEXT("GSWIN32.EXE"), mapValues);
표 3을 참조하면, 서버는 WriteRegistry 메소드를 이용하여, 서브 엔진의 정보를 레지스트리에 등록할 수 있다.
도 7은 본 명세서가 적용될 수 있는 IFEO 레지스트리를 예시한다.
도 7을 참조하면, 서브 엔진의 정보가 등록된 IFEO 레지스트리를 예시한다. 보다 자세하게, Image File Execution Options 레지스트리의 EQNEDT32.EXE 항목은 Debugger를 Name으로 하여, 서브 엔진의 경로(예를 들어, Z:\ImageFileExecuter.eng)가 Data로 등록될 수 있다. 서버는 다른 실행 파일들의 항목에도 동일하게 서브 엔진의 정보를 등록할 수 있다.
다시 도 6을 참조하면, 서버는 비실행 파일과 관련된 타겟 프로세스를 실행한다(S630). 예를 들어, 서버는 가상화 머신을 이용하여, 검사 대상이 되는 비실행 파일을 열기 위한 타겟 프로세스를 실행할 수 있다.
서버는 메인 엔진을 통해, 타겟 프로세스의 검사를 위한 제1 디버깅을 시작한다(S640).
타겟 프로세스가 자식 프로세스를 생성하는 경우, 서버는 레지스트리에 근거하여, 서브 엔진을 실행한다(S650). 예를 들어, Image File Execution Options 레지스트리에서 서브 엔진의 정보가 등록된 실행 파일이 생성된 자식 프로세스와 연관된 경우, 서버는 자동으로 서브 엔진을 실행할 수 있다.
서버는 서브 엔진을 통해, 자식 프로세서의 검사를 위한 제2 디버깅을 시작한다(S660).
일반적으로 타겟 프로세스의 검사를 위한 제1 디버깅이 먼저 종료되므로, 운영의 효율화를 위해서, 서버는 제1 디버깅이 종료되면, Image File Execution Options 레지스트리에 등록된 서브 엔진의 정보를 삭제할 수 있다.
다만, Image File Execution Options 레지스트리에 등록된 서브 엔진의 정보가 삭제된 경우, 서버는 더 이상 자식 프로세스를 자동으로 디버깅 할 수 없다. 따라서, 타겟 프로세서의 디버깅이 종료되었어도, 다른 자식 프로세스의 디버깅이 수행 중이라면, 모든 자식 프로세스의 디버깅이 종료된 후에, Image File Execution Options 레지스트리에 등록된 서브 엔진의 정보가 삭제되도록 서버는 설정될 수 있다.
전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.
또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (7)

  1. 서버가 자식(child) 프로세스의 악성 행위를 검사하는 방법에 있어서,
    비실행 파일을 검사하기 위한 메인 엔진(engine)을 실행하는 단계;
    상기 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리(registry)에 등록하는 단계;
    상기 비실행 파일과 관련된 타겟(target) 프로세스를 실행하는 단계;
    상기 메인 엔진을 통해, 상기 타겟 프로세스의 검사를 위한 제1 디버깅(debugging)을 시작하는 단계;
    상기 타겟 프로세스가 상기 자식 프로세스를 생성하는 경우, 상기 레지스트리에 근거하여, 상기 서브 엔진이 자동으로 실행되고, 상기 서브 엔진을 통해, 상기 자식 프로세스의 검사를 위한 제2 디버깅을 시작하는 단계; 및
    상기 제1 디버깅의 종료에 근거하여, 다른 자식 프로세스의 디버깅이 종료된 경우, 상기 레지스트리에서 상기 서브 엔진의 정보를 삭제하는 단계;
    를 포함하며,
    상기 서브 엔진은 상기 자식 프로세스의 악성 행위를 검사하기 위한 엔진인, 악성 행위 검사 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 레지스트리는
    Image File Execution Options 레지스트리를 포함하는, 악성 행위 검사 방법.
  4. 제3항에 있어서,
    상기 레지스트리에 등록하는 단계는
    상기 Image File Execution Options 레지스트리의 상기 자식 프로세스와 관련된 실행 파일들의 항목에 상기 서브 엔진의 정보를 등록하는 단계;
    를 더 포함하는, 악성 행위 검사 방법.
  5. 삭제
  6. 제4항에 있어서,
    상기 제2 디버깅이 종료되지 않은 경우, 상기 제2 디버깅의 종료에 근거하여, 상기 레지스트리에서 상기 서브 엔진의 정보를 삭제하는 단계;
    를 더 포함하는, 악성 행위 검사 방법.
  7. 자식(child) 프로세스의 악성 행위를 검사하는 서버에 있어서,
    통신부;
    메인 엔진(engine) 및 서브 엔진이 포함된 메모리; 및
    상기 통신부 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고,
    상기 프로세서는
    비실행 파일을 검사하기 위한 메인 엔진(engine)을 실행하고, 상기 메인 엔진이 실행된 것에 근거하여, 서브 엔진의 정보를 레지스트리(registry)에 등록하며, 상기 비실행 파일과 관련된 타겟(target) 프로세스를 실행하고, 상기 메인 엔진을 통해, 상기 타겟 프로세스의 검사를 위한 제1 디버깅(debugging)을 시작하며, 상기 타겟 프로세스가 상기 자식 프로세스를 생성하는 경우, 상기 레지스트리에 근거하여, 상기 서브 엔진이 자동으로 실행되고, 상기 서브 엔진을 통해, 상기 자식 프로세스의 검사를 위한 제2 디버깅을 시작하며, 상기 제1 디버깅의 종료에 근거하여, 다른 자식 프로세스의 디버깅이 종료된 경우, 상기 레지스트리에서 상기 서브 엔진의 정보를 삭제하고,
    상기 서브 엔진은 상기 자식 프로세스의 악성 행위를 검사하기 위한 엔진인, 서버.
KR1020227032766A 2022-09-21 2022-09-21 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치 KR102560431B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/014076 WO2024063171A1 (ko) 2022-09-21 2022-09-21 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR102560431B1 true KR102560431B1 (ko) 2023-07-27

Family

ID=87473028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227032766A KR102560431B1 (ko) 2022-09-21 2022-09-21 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치

Country Status (2)

Country Link
KR (1) KR102560431B1 (ko)
WO (1) WO2024063171A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130078960A (ko) * 2012-01-02 2013-07-10 주식회사 하우리 오피스 프로그램의 취약점을 이용한 악성코드의 행위기반 진단 및 차단방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897849B1 (ko) * 2007-09-07 2009-05-15 한국전자통신연구원 비정상 프로세스 탐지 방법 및 장치
KR101244731B1 (ko) * 2012-09-11 2013-03-18 주식회사 안랩 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
US9117077B2 (en) * 2013-09-27 2015-08-25 Bitdefender IPR Management Ltd. Systems and methods for using a reputation indicator to facilitate malware scanning
KR101678561B1 (ko) * 2013-10-18 2016-11-22 주식회사 아신아이 변경정보 유지 및 선택 기능을 구비한 정보통신장치 복원방법
KR101899149B1 (ko) * 2018-04-30 2018-09-14 에스엠테크놀러지(주) 비정상 프로세스 감시 및 통제 시스템 및 방법, 상기 방법을 수행하기 위한 기록 매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130078960A (ko) * 2012-01-02 2013-07-10 주식회사 하우리 오피스 프로그램의 취약점을 이용한 악성코드의 행위기반 진단 및 차단방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sebdraven, "Malicious document targets Vietnamese officials"(2022.07.)* *

Also Published As

Publication number Publication date
WO2024063171A1 (ko) 2024-03-28

Similar Documents

Publication Publication Date Title
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
WO2021101762A1 (en) Software diagnosis using transparent decompilation
US7631357B1 (en) Detecting and removing rootkits from within an infected computing system
US20170286693A1 (en) Security analysis using relational abstraction of data structures
US11983094B2 (en) Software diagnostic context selection and use
CN109086606B (zh) 一种程序漏洞挖掘方法、装置、终端及存储介质
CN103150506A (zh) 一种恶意程序检测的方法和装置
US10645099B1 (en) Malware detection facilitated by copying a memory range from an emulator for analysis and signature generation
JP5303795B2 (ja) アプリケーションの解析方法、解析システム及び解析プログラム
US20150143342A1 (en) Functional validation of software
KR102460078B1 (ko) 무해화(disarming) 동작에서 차이점(delta) 추출 방식을 이용한 원본 파일 백업 공간을 효율화하는 방법 및 이를 위한 장치
CN114969760A (zh) 漏洞检测方法及装置、计算机可读介质和电子设备
KR102472523B1 (ko) 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치
KR102470010B1 (ko) 리버싱 엔진과 cdr 엔진을 활용한 악성 비실행 파일 차단 방법 및 장치
KR102560431B1 (ko) 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치
US20230141948A1 (en) Analysis and Testing of Embedded Code
KR102468431B1 (ko) Ms-ooxml에서 ole object 무해화를 위한 방법 및 장치
CN106462704B (zh) 动态读入代码分析装置和动态读入代码分析方法
US11934534B2 (en) Vulnerability analysis of a computer driver
KR102549124B1 (ko) 난독화 된 vbscript를 탐지하고 복호화하기 위한 방법 및 이를 위한 장치
KR102494837B1 (ko) 난독화 된 자바스크립트를 탐지하고 복호화하기 위한 방법 및 이를 위한 장치
KR102494827B1 (ko) Ocr 기술을 이용하여 비실행 파일의 악성 매크로를 탐지하기 위한 방법 및 이를 위한 장치
KR102581932B1 (ko) 리버싱 엔진을 이용하여 SEH overwrite Mitigation 우회를 탐지하기 위한 방법 및 장치
KR102549007B1 (ko) 디버깅 엔진을 이용한 매크로 탐지 방법 및 이를 위한 장치
KR102548984B1 (ko) 인공지능 모델을 이용하여 악성 문서 파일을 탐지하기 위한 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant