KR20220096146A - Rpc 연결 탐지 방법 및 장치 - Google Patents

Rpc 연결 탐지 방법 및 장치 Download PDF

Info

Publication number
KR20220096146A
KR20220096146A KR1020200188343A KR20200188343A KR20220096146A KR 20220096146 A KR20220096146 A KR 20220096146A KR 1020200188343 A KR1020200188343 A KR 1020200188343A KR 20200188343 A KR20200188343 A KR 20200188343A KR 20220096146 A KR20220096146 A KR 20220096146A
Authority
KR
South Korea
Prior art keywords
rpc
kernel
relationship
machine language
connection
Prior art date
Application number
KR1020200188343A
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 KR1020200188343A priority Critical patent/KR20220096146A/ko
Publication of KR20220096146A publication Critical patent/KR20220096146A/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

Landscapes

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

Abstract

일 실시예에 따른 RPC 연결 탐지 장치가 수행하는 RPC 연결 탐지 방법은, 유저 영역에서 RPC 연결을 담당하는 RPC DLL에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 단계와, 상기 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 단계와, 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 상기 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 단계를 포함한다.

Description

RPC 연결 탐지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING RPC CONNECTION}
본 발명은 RPC 연결을 탐지하는 방법과 이 방법을 수행하는 장치에 관한 것이다.
일반적으로 프로세스를 생성하면 생성한 프로세스는 부모 프로세스가 되고, 생성된 프로세스는 자식 프로세스가 되어 부모-자식의 직접 관계가 형성된다.
하지만 윈도우에서 제공하는 COM, Win32 서비스, WMI처럼 원격 프로시저 호출(Remote Procedure Call, RPC)를 이용해서 프로세스를 생성할 경우에 생성된 프로세스가 윈도우의 서브시스템(svchost.exe, services.exe 등)의 하위 프로세스로 생성된다.
이처럼, RPC를 이용해서 프로세스를 생성할 경우에는 해당 RPC를 요청한 프로세스를 추적할 수 없어 프로세스 간 관계를 추적할 수 없다. 그리고, 서브시스템에 의해 생성된 자식 프로세스가 의심 행위를 할 경우에 부모 프로세스가 운영체제의 프로세스이므로 악성 여부를 판단하기가 까다로워진다.
한국공개특허 제10-2000-0054538호 (2000.09.05. 공개)
실시예에 따르면, RPC를 이용해서 프로세스를 생성하더라도 프로세서의 생성을 요청한 프로세스와 이에 대응하여 생성된 프로세스 간의 RPC 연결 관계를 추적할 수 있는 RPC 연결 탐지 방법과 이 방법을 수행하는 장치를 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
제 1 관점에 따른 RPC 연결 탐지 장치가 수행하는 RPC 연결 탐지 방법은, 유저 영역에서 RPC 연결을 담당하는 RPC 동적 연결 라이브러리(Dynamic Link Library, DLL)에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 단계와, 상기 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 단계와, 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 상기 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 단계를 포함한다.
제 2 관점에 따른 RPC 연결 탐지 장치는, RPC 연결을 담당하는 RPC DLL에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 커널 로드부와, 상기 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 기계어 처리부와, 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 상기 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 관계 추적부를 포함한다.
제 3 관점에 따라 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체의 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 상기 RPC 연결 탐지 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
제 4 관점에 따라 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체의 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 상기 RPC 연결 탐지 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
일 실시예에 따르면, RPC를 이용해서 프로세스를 생성하더라도 프로세서의 생성을 요청한 프로세스와 이에 대응하여 생성된 프로세스 간의 RPC 연결 관계를 추적할 수 있다.
이로써, RPC를 이용해서 프로세스를 생성하더라도 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정할 수 있고, 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 부모-자식 관계에 따라 프로세스 생성을 요청한 프로세스와 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지할 수 있다.
도 1은 일 실시예에 따른 RPC 연결 탐지 장치의 구성도이다.
도 2는 일 실시예에 따른 RPC 연결 탐지 장치가 수행하는 RPC 연결 탐지 방법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 '부'라는 용어는 소프트웨어 또는 FPGA나 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
도 1은 일 실시예에 따른 RPC 연결 탐지 장치의 구성도이다.
도 1을 참조하면, 실시예에 따른 RPC 연결 탐지 장치(100)는 커널 로드부(110), 기계어 처리부(120) 및 관계 추적부(130)를 포함하며, 악성 탐지부(140)를 더 포함할 수 있다. 예를 들어, 실시예에 따른 RPC 연결 탐지 장치(100)를 구성하는 커널 로드부(110), 기계어 처리부(120), 관계 추적부(130) 또는 악성 탐지부(140)는 마이크로프로세서 등과 같은 컴퓨팅 연산수단을 포함하여 구현할 수 있다.
커널 로드부(110)는 유저 영역에서 RPC 연결을 담당하는 RPC DLL에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드한다.
기계어 처리부(120)는 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환한다. 이러한 기계어 처리부(120)는 로드된 RPC 이미지를 커널용 함수로 변환한 후, 커널 메모리의 유효하지 않은 메모리 영역을 기계어 수준의 처리를 통하여 유효한 커널 영역으로 변환할 수 있다. 아울러, 기계어 처리부(120)는 로드된 RPC 이미지를 바이너리 분석 기술을 이용하여 커널용 함수로 변환할 수 있다. 예를 들어, 기계어 처리부(120)는 로드된 RPC 이미지를 커널용 인터페이스 함수로 변환할 수 있다.
관계 추적부(130)는 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 커널용 함수를 이용해 RPC 연결 관계를 추적한다. 예를 들어, 관계 추적부(130)는 커널용 함수를 통해 RPC 연결 관계를 추적하여 RPC 정보가 없는 경우에 프로세서 영역에 접근 가능한 커널 권한을 이용하여 RPC 관계가 끊어진 간접 연결 관계를 추적할 수 있다.
악성 탐지부(140)는 관계 추적부(130)에 의해 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정하고, 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 부모-자식 관계에 따라 프로세스 생성을 요청한 프로세스와 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지한다.
도 2는 일 실시예에 따른 RPC 연결 탐지 장치(100)가 수행하는 RPC 연결 탐지 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 실시예에 따른 RPC 연결 탐지 방법은 유저 영역에서 RPC 연결을 담당하는 RPC DLL에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 단계(S210)를 포함한다.
그리고, 실시예에 따른 RPC 연결 탐지 방법은 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 단계(S220)를 더 포함한다.
여기서, 실시예에 따른 RPC 연결 탐지 방법은 단계 S220를 수행한 후 단계 S240을 수행하기 전에, 커널 메모리의 유효하지 않은 메모리 영역을 기계어 수준의 처리를 통하여 유효한 커널 영역으로 변환하는 단계(S230)를 더 포함할 수 있다.
그리고, 실시예에 따른 RPC 연결 탐지 방법은 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 단계 S220에서 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 단계(S240, S250)를 포함한다.
그리고, 실시예에 따른 RPC 연결 탐지 방법은 단계 S250에서 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정하는 단계(S260)를 더 포함할 수 있다.
그리고, 실시예에 따른 RPC 연결 탐지 방법은 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 부모-자식 관계에 따라 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지하는 단계(S270, S280)를 더 포함할 수 있다.
이하, 도 1 및 도 2를 참조하여 일 실시예에 따른 RPC 연결 탐지 장치(100)가 수행하는 RPC 연결 탐지 방법에 대하여 더 자세히 살펴보기로 한다.
먼저, RPC 연결 탐지 장치(100)의 커널 로드부(110)는 유저 영역에서 RPC 연결을 담당하는 RPC DLL에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드한다. 예를 들어, 커널 로드부(110)는 실행 속성으로 할당된 커널 메모리에 유저 DLL 모듈 파일을 이미지 형태로 맵핑할 수 있다(S210).
그리고, RPC 연결 탐지 장치(100)의 기계어 처리부(120)는 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환한다. 예를 들어, 기계어 처리부(120)는 커널 메모리에 로드된 RPC 이미지를 바이너리 분석 기술을 이용하여 커널용 인터페이스 함수로 변환할 수 있다(S220).
여기서, 유저 DLL 모듈에 구현된 유저 코드를 안전하게 커널 코드로 실행하기 위해서는 여러 기계어 수준의 처리가 필요할 수 있다. 임의의 코드를 에뮬레이션해서 가상 실행할 때의 제약과 유사하게 유저 코드를 커널 모드에서 실행 시에는 유저 코드에서 접근하는 메모리 영역이 커널 영역에서는 유효하지 않을 수 있기 때문이다. 이에, 기계어 처리부(120)는 커널 메모리에 로드된 RPC 이미지를 커널용 인터페이스 함수로 변환한 후, 커널 메모리의 유효하지 않은 메모리 영역을 기계어 수준의 처리를 통하여 유효한 커널 영역으로 변환할 수 있다. 예를 들어, 이러한 기계어 처리부(120)의 영역 변환은 메모리 영역 변환에만 제한하지 않을 수 있다. 예컨대, 기계어 처리부(120)는 유저 코드를 커널 모드에서 정상 실행하기 위해 필요한 모든 작업들을 수행함으로써 유저 코드를 안전하게 커널 모드에서 사용할 수 있게 할 수 있다(S230).
다음으로, RPC 연결 탐지 장치(100)의 관계 추적부(130)는 시스템의 이벤트 발생을 감시한다. 여기서, 관계 추적부(130)는 RPC 요청에 의해 서브시스템에서 프로세스를 대신 생성해 주는 것과 같이 프로세스 실행시 RPC 요청 정보가 있는지를 감시한다. 예를 들어, 관계 추적부(130)는 프로세스 외에도 스레드의 생성, 모듈의 로드, 파일 입출력, 레지스트리 입출력 등을 포함하여 시스템에서 발생하는 다양한 행위 발생을 이벤트로 식별하여 감시할 수 있다(S240).
그리고, 관계 추적부(130)는 임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 커널용 함수를 이용해 RPC 연결 관계를 추적한다. RPC 정보는 기본적으로 RPC 연결 관계가 있는 경우 존재하지만 RPC 서버 역할을 하는 서브시스템 프로세스 간에는 내부 메커니즘에 의해 연결 관계가 없을 수 있다. 이에, 관계 추적부(130)는 커널용 인터페이스 함수를 통해 직접적인 RPC 연결 관계를 추적하여 RPC 정보가 없는 경우에 프로세서 영역에 접근 가능한 커널 권한을 이용하여 RPC 관계가 끊어진 간접 연결 관계를 추적할 수 있다. 예컨대, 서버 프로세스 내부의 커널 오브젝트들의 연관 관계를 분석하여 연결시켜 줌으로써 간접 연결 관계를 추적할 수 있다. 이로써, 관계 추적부(130)는 RPC 요청에 의해 생성된 프로세스로부터 프로세스 생성을 처리한 RPC 서버 프로세스들, 프로세스 생성을 요청한 클라이언트 프로세스를 모두 식별할 수 있다(S250).
한편, RPC 연결 탐지 장치(100)의 악성 탐지부(140)는 관계 추적부(130)에 의해 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정하여 관리한다(S260).
그리고, 악성 탐지부(140)는 단계 S260에서 부모-자식 관계로 설정 및 관리 중인 새로 생성된 프로세스(즉, 자식 프로세서)에서 악의적인 행위가 발생(S270)할 경우 부모-자식 관계에 따라 프로세스 생성을 요청한 프로세스(즉, 부모 프로세스)와 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지한다. 예를 들어, 악성 탐지부(140)는 자식 프로세스에 의해 발생된 행위가 기 저장된 악성 행위에 포함되는 경우에 해당 자식 프로세스와 그 부모 프로세스를 모두 악성 프로세스로서 탐지할 수 있고, 악성 프로세스에 대한 탐지 정보를 출력할 수 있다. 예컨대, 탐지 정보를 출력한다는 것은 별도의 통신장치를 통하여 전송하는 것, 모니터나 프린터 등의 주변기기를 통하여 출력하는 것 등을 모두 포함할 수 있다(S280).
지금까지 설명한 바와 같이 일 실시예에 따른 RPC 연결 탐지 장치(100) 및 이에 의해 수행되는 RPC 연결 탐지 방법에 의하면, RPC를 이용해서 프로세스를 생성하더라도 프로세서의 생성을 요청한 프로세스와 이에 대응하여 생성된 프로세스 간의 RPC 연결 관계를 추적할 수 있다.
이로써, RPC를 이용해서 프로세스를 생성하더라도 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정할 수 있고, 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 부모-자식 관계에 따라 프로세스 생성을 요청한 프로세스와 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지할 수 있다.
한편, 전술한 일 실시예에 따른 RPC 연결 탐지 방법에 포함된 각각의 단계는, 이러한 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 기록하는 컴퓨터 판독가능한 기록매체에서 구현될 수 있다.
또한, 전술한 일 실시예에 따른 RPC 연결 탐지 방법에 포함된 각각의 단계는, 이러한 단계를 수행하도록 프로그램된, 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램의 형태로 구현될 수 있다.
본 발명에 첨부된 각 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: RPC 탐지 장치
110: 커널 로드부
120: 기계어 처리부
130: 관계 추적부
140: 악성 탐지부

Claims (14)

  1. 원격 프로시저 호출(RPC) 연결 탐지 장치가 수행하는 RPC 연결 탐지 방법으로서,
    유저 영역에서 RPC 연결을 담당하는 RPC 동적 연결 라이브러리(DLL)에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 단계와,
    상기 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 단계와,
    임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 상기 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 단계를 포함하는
    RPC 연결 탐지 방법.
  2. 제 1 항에 있어서,
    상기 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정하는 단계와,
    상기 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 상기 부모-자식 관계에 따라 상기 프로세스 생성을 요청한 프로세스와 상기 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지하는 단계를 더 포함하는
    RPC 연결 탐지 방법.
  3. 제 1 항에 있어서,
    상기 커널용 함수로 변환하는 단계 이후 및 상기 RPC 연결 관계를 추적하는 단계 이전에, 상기 커널 메모리의 유효하지 않은 메모리 영역을 기계어 수준의 처리를 통하여 유효한 커널 영역으로 변환하는 단계를 더 포함하는
    RPC 연결 탐지 방법.
  4. 제 1 항에 있어서,
    상기 커널용 함수로 변환하는 단계는, 바이너리 분석 기술을 이용하는
    RPC 연결 탐지 방법.
  5. 제 1 항에 있어서,
    상기 커널용 함수로 변환하는 단계는, 인터페이스 함수로 변환하는
    RPC 연결 탐지 방법.
  6. 제 1 항에 있어서,
    상기 RPC 연결 관계를 추적하는 단계는, 상기 커널용 함수를 통해 상기 RPC 연결 관계를 추적하여 RPC 정보가 없는 경우에 상기 프로세서 영역에 접근 가능한 커널 권한을 이용하여 RPC 관계가 끊어진 간접 연결 관계를 추적하는
    RPC 연결 탐지 방법.
  7. 유저 영역에서 원격 프로시저 호출(RPC) 연결을 담당하는 RPC 동적 연결 라이브러리(DLL)에 대하여 커널 로딩을 이용해 커널 메모리에 이미지 형태로 로드하는 커널 로드부와,
    상기 커널 메모리에 로드된 RPC 이미지에 대한 기계어 수준의 처리를 통하여 커널용 함수로 변환하는 기계어 처리부와,
    임의의 행위를 발생하는 이벤트에 대하여 프로세서 영역에 접근 가능한 커널 권한과 상기 변환된 커널용 함수를 이용해 RPC 연결 관계를 추적하는 관계 추적부를 포함하는
    RPC 연결 탐지 장치.
  8. 제 7 항에 있어서,
    상기 추적된 RPC 연결 관계에 기초하여, 프로세스 생성을 요청한 프로세스와 이에 대응하여 새로 생성된 프로세스를 부모-자식 관계로 설정하고, 상기 새로 생성된 프로세스에서 악의적인 행위가 발생할 경우 상기 부모-자식 관계에 따라 상기 프로세스 생성을 요청한 프로세스와 상기 새로 생성된 프로세스를 모두 악성 프로세스로서 탐지하는 악성 탐지부를 더 포함하는
    RPC 연결 탐지 장치.
  9. 제 7 항에 있어서,
    상기 기계어 처리부는, 상기 로드된 RPC 이미지를 상기 커널용 함수로 변환한 후, 상기 커널 메모리의 유효하지 않은 메모리 영역을 기계어 수준의 처리를 통하여 유효한 커널 영역으로 변환하는
    RPC 연결 탐지 장치.
  10. 제 7 항에 있어서,
    상기 기계어 처리부는, 상기 로드된 RPC 이미지를 바이너리 분석 기술을 이용하여 상기 커널용 함수로 변환하는
    RPC 연결 탐지 장치.
  11. 제 7 항에 있어서,
    상기 기계어 처리부는, 상기 로드된 RPC 이미지를 커널용 인터페이스 함수로 변환하는
    RPC 연결 탐지 장치.
  12. 제 7 항에 있어서,
    상기 관계 추적부는, 상기 커널용 함수를 통해 상기 RPC 연결 관계를 추적하여 RPC 정보가 없는 경우에 상기 프로세서 영역에 접근 가능한 커널 권한을 이용하여 RPC 관계가 끊어진 간접 연결 관계를 추적하는
    RPC 연결 탐지 장치.
  13. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제 1 항 내지 제 6 항 중 어느 한 항에 따른 상기 RPC 연결 탐지 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는, 컴퓨터 판독 가능한 기록매체.
  14. 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제 1 항 내지 제 6 항 중 어느 한 항에 따른 상기 RPC 연결 탐지 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는, 컴퓨터 프로그램.

KR1020200188343A 2020-12-30 2020-12-30 Rpc 연결 탐지 방법 및 장치 KR20220096146A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200188343A KR20220096146A (ko) 2020-12-30 2020-12-30 Rpc 연결 탐지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200188343A KR20220096146A (ko) 2020-12-30 2020-12-30 Rpc 연결 탐지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220096146A true KR20220096146A (ko) 2022-07-07

Family

ID=82397923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200188343A KR20220096146A (ko) 2020-12-30 2020-12-30 Rpc 연결 탐지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20220096146A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000054538A (ko) 2000-06-10 2000-09-05 김주영 네트워크 침입탐지 시스템 및 방법 그리고 그 방법을기록한 컴퓨터로 읽을 수 있는 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000054538A (ko) 2000-06-10 2000-09-05 김주영 네트워크 침입탐지 시스템 및 방법 그리고 그 방법을기록한 컴퓨터로 읽을 수 있는 기록매체

Similar Documents

Publication Publication Date Title
US11042647B1 (en) Software assurance system for runtime environments
US9589132B2 (en) Method and apparatus for hypervisor based monitoring of system interactions
US8826269B2 (en) Annotating virtual application processes
US11983094B2 (en) Software diagnostic context selection and use
KR20160132856A (ko) 사용자 모드 크래시 리포트를 위한 프레임워크
JP2001051742A (ja) 実行可能モジュールおよび関連する保護サービス・プロバイダ・モジュールの完全性検査方法および装置
US8572579B2 (en) Break on next called function or method in java debugger agent
US8667298B2 (en) Module signing for unprivileged users to create and load trustworthy kernel modules
US9733976B2 (en) Method and apparatus for SYSRET monitoring of system interactions
US20100306766A1 (en) Adding aspects to virtual machine monitors
Ozaki et al. Detecting system failures with gpus and llvm
US20200019392A1 (en) Application Binary Rewriting to Reduce Binary Attack Surface Area
US9122791B2 (en) Identifying a storage location for a storage address requested during debugging
CN112231198B (zh) 一种恶意进程调试方法、装置、电子设备及介质
US10198280B2 (en) Method and apparatus for hypervisor based monitoring of system interactions
US11361077B2 (en) Kernel-based proactive engine for malware detection
CN111868695A (zh) 通过在用户模式下执行计算机代码来测试内核模式计算机代码
KR20220096146A (ko) Rpc 연결 탐지 방법 및 장치
KR102098905B1 (ko) 호스트의 테스트 시나리오로 제어장치의 복수의 파티션간 영향도를 측정하기 위한 방법, 동일 방법을 구현하기 위한 호스트 및 시스템, 그리고 동일 방법을 기록하기 위한 매체
CN111367505A (zh) 一种JavaScript源代码保密方法、装置、设备及存储介质
US11805125B2 (en) Task based access rights control
US11809881B2 (en) Target process injection prior to execution of marker libraries
KR20240000951A (ko) Rpc 연결 탐지 방법
US20170060571A1 (en) System and method for masking complexity in a heterogeneous development environment
US20230229582A1 (en) Information processing apparatus, processing method for information processing apparatus, and storage medium

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E601 Decision to refuse application