KR20240037569A - 악성 코드 탐지 장치 및 방법 - Google Patents
악성 코드 탐지 장치 및 방법 Download PDFInfo
- Publication number
- KR20240037569A KR20240037569A KR1020220116239A KR20220116239A KR20240037569A KR 20240037569 A KR20240037569 A KR 20240037569A KR 1020220116239 A KR1020220116239 A KR 1020220116239A KR 20220116239 A KR20220116239 A KR 20220116239A KR 20240037569 A KR20240037569 A KR 20240037569A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- executed
- log
- buffer
- malicious code
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004458 analytical method Methods 0.000 claims abstract description 58
- 238000005259 measurement Methods 0.000 claims abstract description 38
- 238000003780 insertion Methods 0.000 claims abstract description 9
- 230000037431 insertion Effects 0.000 claims abstract description 9
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 14
- 230000002265 prevention Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000002155 anti-virotic effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 244000035744 Hura crepitans Species 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000000700 radioactive tracer Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer 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)
- Debugging And Monitoring (AREA)
Abstract
악성 코드를 탐지하도록 구성된 악성 코드 탐지 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치 및 방법은, 적어도 하나의 프로세서; 및 메모리;를 포함하고, 상기 적어도 하나의 프로세서는, 미확인 악성 코드를 계측 코드로 변환하도록 설정된 코드 변환부; 상기 계측 코드에 분석 코드를 삽입하고, 버퍼를 식별하도록 설정된 분석 코드 삽입부; 상기 식별된 버퍼를 추적하도록 설정된 버퍼 추적부; 상기 버퍼와 관련된 비교 명령어 중에서 조건부 분기 명령어를 식별하도록 설정된 분기 명령어 식별부; 상기 식별된 조건부 분기 명령어를 실행하도록 설정된 명령어 실행부; 상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하도록 설정된 로그 생성부; 및 상기 추출된 로그를 분석하도록 설정된 로그 분석부;를 포함할 수 있다.
Description
본 발명은 악성 코드 탐지 장치 및 방법에 관한 것으로, 보다 상세하게는 안티 분석 기법이 적용된 악성 코드를 탐지하는 장치 및 방법에 관한 것이다.
일반적으로 프로그램의 분석 방지 기법(또는, 안티 분석 방법)은, 프로그램의 공급자가 의도하지 않은 상황에서 프로그램이 동작하는 것을 방지하기 위한 기법으로 널리 활용되고 있다.
그러나, 이러한 프로그램의 분석 방지 기법이 악성 코드(또는, 악성 프로그램)에 남용됨으로써, 악성 코드는 안티 바이러스 프로그램의 동작시 악성 코드가 동작하지 않도록 설계될 수 있다.
이에 따라, 안티 바이러스 프로그램을 통해 악성 코드를 검출하는 동안, 분석 방지 기법이 적용된 악성 코드는 안티 바이러스 프로그램의 실행 환경에서 강제로 실행을 종료하거나 또는 악의적인 동작을 수행하지 않음으로써, 안티 바이러스 프로그램에 의해 탐지되지 않고, 다른 악성 코드들보다 오랜 기간 검출되지 않을 수 있다.
최근 들어, 이러한 분석 방지 기법이 적용된 악성 코드를 검출하기 위한 다양한 방법론이 제시되고 있다.
최근 유행하는 악성 코드들은, 기존의 분석 환경에서 널리 쓰이는 가상 머신 환경 또는 샌드 박스 환경의 안티 바이러스 프로그램의 동작시 동작하지 않도록 분석 방지 기법이 적용된 악성 코드들이 증가되는 추세에 있다.
악성 코드의 행위를 분석하기 위해 악성 코드에 적용된 분석 방지 기법 분석 및 우회하는 능력이 악성 코드 분석가들에게 요구된다. 기존의 정적 분석 방법은 분석 방지 기법에 사용되는 시그니처, 콜 그래프 등을 통해 분석방지 기법이 사용될 가능성이 있는지를 분석했다. 동적 분석 방법에서도 악성코드의 실행 중간에 분석 방지 기법에 사용되는 API 호출 여부와 파라미터 값 검사를 통해 가능성을 분석한다. 이러한 분석 방법들은 악성코드가 분석 방지 기법을 사용하고 있는지 가능성에 대한 분석이 가능하지만 확실한 탐지 방법이라고 할 수 없다. 최근에는 실행 환경을 탐지하는 분석 방지 기법을 포함한 다양한 기법을 사용하는 악성코드들이 지속적으로 제보되고 있다. 악성코드 분석가들이 악성코드를 분석하기 위해서는 효율적인 탐지 방안의 필요성이 요구되고 있다.
본 발명의 일 실시예에 따르면, 악성 코드의 탐지 능력이 향상된 악성 코드 탐지 장치 및 방법이 제공될 수 있다.
본 발명의 일 실시예에 따르면, 악성 코드를 분석하는 범위와 시간을 줄일 수 있는 악성 코드 탐지 장치 및 방법이 제공될 수 있다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 의하면, 악성 코드를 탐지하도록 구성된 악성 코드 탐지 장치는, 적어도 하나의 프로세서; 및 메모리;를 포함하고, 상기 적어도 하나의 프로세서는, 미확인 악성 코드를 계측 코드로 변환하도록 설정된 코드 변환부; 상기 계측 코드에 분석 코드를 삽입하고, 버퍼를 식별하도록 설정된 분석 코드 삽입부; 상기 식별된 버퍼를 추적하도록 설정된 버퍼 추적부; 상기 버퍼와 관련된 비교 명령어 중에서 조건부 분기 명령어를 식별하도록 설정된 분기 명령어 식별부; 상기 식별된 조건부 분기 명령어를 실행하도록 설정된 명령어 실행부; 상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하도록 설정된 로그 생성부; 및 상기 추출된 로그를 분석하도록 설정된 로그 분석부;를 포함할 수 있다.
상기 명령어 실행부는, 상기 조건부 명령어를 실행할 때 실행되지 않는 코드를 식별하여 상기 계측 코드를 수정하도록 설정될 수 있다.
상기 로그 생성부는, 상기 조건부 명령어를 실행할 때 실행되는 코드와, 상기 실행되지 않아 상기 계측 코드가 수정된 코드를 모두 실행하여 실행 결과의 로그를 추출하도록 설정될 수 있다.
상기 로그 분석부는, 상기 실행되는 코드의 실행 결과의 로그와 상기 실행되지 않아 상기 계측 코드가 수정된 코드의 실행 결과의 로그를 비교하여 차이가 있을 때, 상기 미확인 악성 코드를 확정된 악성 코드로 판단하도록 설정될 수 있다.
상기 분석 코드는, 상기 계측 코드의 API의 파라미터를 검사하는 코드, 및 상기 API의 실행 결과가 메모리에 저장되는 위치인 상기 버퍼를 검사하는 코드를 포함할 수 있다.
상기 버퍼 추적부는, 상기 버퍼가 상기 메모리 상에서 이동되는지 여부 또는 상기 메모리 상에서 복사되는지 여부를 추적하도록 설정될 수 있다.
본 개시의 또 다른 측면에 의하면, 악성 코드를 탐지하도록 구성된 악성 코드 탐지 장치를 이용한 악성 코드 탐지 방법은, 미확인 악성 코드를 계측 코드로 변환하는 단계(S10); 상기 계측 코드에 분석 코드를 삽입하고, 버퍼를 식별하는 단계(S20); 상기 식별된 버퍼를 추적하는 단계(S30); 상기 버퍼와 관련된 비교 명령어 중에서 조건부 분기 명령어를 식별하는 단계(S40); 상기 식별된 조건부 분기 명령어를 실행하는 단계(S50); 상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하는 단계(S60); 및 상기 추출된 로그를 분석하는 단계(S70);를 포함할 수 있다.
일 실시예에 따르면, 상기 식별된 조건부 분기 명령어를 실행하는 단계(S50)는, 상기 조건부 명령어를 실행할 때 실행되지 않는 코드를 식별하여 상기 계측 코드를 수정하는 단계를 포함할 수 있다.
상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하는 단계(S60)는, 상기 조건부 명령어를 실행할 때 실행되는 코드와, 상기 실행되지 않아 상기 계측 코드가 수정된 코드를 모두 실행하여 실행 결과의 로그를 추출하는 단계를 포함할 수 있다.
상기 추출된 로그를 분석하는 단계(S70)는, 상기 실행되는 코드의 실행 결과의 로그와 상기 실행되지 않아 상기 계측 코드가 수정된 코드의 실행 결과의 로그를 비교하여 차이가 있을 때, 상기 미확인 악성 코드를 확정된 악성 코드로 판단하는 단계를 포함할 수 있다.
상기 분석 코드는, 상기 계측 코드의 API의 파라미터를 검사하는 코드, 및 상기 API의 실행 결과가 메모리에 저장되는 위치인 상기 버퍼를 검사하는 코드를 포함할 수 있다.
상기 식별된 버퍼를 추적하는 단계(S30)는, 상기 버퍼가 상기 메모리 상에서 이동되는지 여부 또는 상기 메모리 상에서 복사되는지 여부를 추적하도록 설정될 수 있다.
본 발명의 일 실시예에 따른 악성 코드 탐지 장치 및 방법은, 악성 코드 탐지에 대한 정확성 및 신뢰성이 확보될 수 있다.
본 발명의 일 실시예에 따른 악성 코드 탐지 장치 및 방법은, 악성 코드를 분석하는 범위와 시간을 줄일 수 있다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치의 프로세서를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법의 흐름도이다.
도 5a 내지 도 5b는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치의 프로세서를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법의 흐름도이다.
도 5a 내지 도 5b는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법을 설명하기 위한 도면이다.
이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다.
명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분에 따라서 물리적 연결을 의미할 수도 있고, 또는 전기적으로 연결된 것을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다. 한편, 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치를 설명하기 위한 블록도이다. 도 2는 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치의 프로세서를 설명하기 위한 도면이다. 도 3은 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치를 설명하기 위한 도면이다.
도 1 내지 도 3을 참조하면, 악성 코드 탐지 장치(10)는, 프로세서(100) 및 메모리(200)를 포함하는 정보 처리 장치일 수 있다. 예를 들어, 상기 악성 코드 탐지 장치(10)를 포함하는 전자 장치는, 각종 연산 및/또는 제어 등을 수행하기 위한 전자 장치 등을 포함할 수 있다. 일 예로서, 상기 정보 처리 장치는, 데스크톱 컴퓨터, 랩탑 컴퓨터, 서버용 컴퓨터, 스마트폰, 태블릿 PC, 스마트 워치, 휴대용 게임기, 또는 PDA와 같이 정보 처리가 가능한 장치 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 프로세서(100)는, 악성 코드 탐지 장치(10)의 전반적인 동작 또는 일부의 동작을 실행하기 위한 연산, 처리, 제어 및/또는 프로그램(또는 바이너리)의 해석 등을 수행할 수 있다.
일 실시예에 따르면, 본 발명의 악성 코드 탐지 장치(10)는, 분석 방지 기법이 적용된 악성 코드를 탐지할 수 있는 의미할 수 있다. 일 실시예에 따르면, 본 발명의 악성 코드 탐지 장치(10)는, 샌드박스 환경 기반의 안티 바이러스 프로그램에 대한 분석 방지 기법이 적용된 악성 코드를 탐지 또는 검출하기 위한 장치일 수 있으나, 이에 한정하지 않고 다양한 환경 기반의 안티 바이러스 프로그램에 대한 분석 방지 기법이 적용된 악성 코드를 탐지 또는 검출하기 위한 장치일 수 있다.
일 실시예에 따르면, 프로세서(100)는, 미리 임베디드된 프로그램을 구동시키거나 및/또는 메모리(200)에 저장된 프로그램을 구동시켜 소정의 동작을 수행할 수 있다. 여기서, 메모리(200)에 저장된 프로그램은 설계자로부터 직접 저장된 것일 수도 있고, 또는 유무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망을 통하여 획득된 것일 수도 있다. 예시적인 실시예에 따르면, 프로세서(100)는 중앙 처리 장치(CPU, Central Processing Unit), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 마이컴(Micom, Micro Processor), 애플리케이션 프로세서(AP, Application Processor), 전자 제어 유닛(ECU, Electronic Controlling Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 다른 전자 장치 등을 이용하여 구현 가능할 수 있다. 어떤 실시예에 따르면, 프로세서(100)는 하나의 물리적 장치를 이용하여 구현될 수도 있고, 또는 둘 이상의 물리적 장치를 이용하여 구현될 수도 있다.
일 실시예에 따르면, 메모리(200)는, 프로세서(100)의 동작에 필요한 각종 데이터를 일시적 또는 비일시적으로 저장하는 저장 매체일 수 있다. 예를 들어, 메모리(200)는, 악성 코드 탐지를 위한 프로그램 또는 악성 코드(예: 악성 코드를 포함하는 프로그램)을 저장할 수 있다.
일 실시예에 따르면, 메모리(200)는, 주 기억 장치 또는 보조 기억 장치 중 적어도 하나를 포함할 수 있다. 주 기억 장치는 롬(ROM) 및/또는 램(RAM)과 같은 반도체 저장 매체를 이용하여 구현된 것일 수 있다. 보조 기억 장치는 솔리드 스테이트 드라이브(SSD, Solid State Drive), 플래시 메모리 장치, 하드 디스크(HDD, Hard Disc), SD(Secure Digital) 카드, 자기 드럼, 자기 테이프, 컴팩트 디스크(CD), 디브이디(DVD), 레이저 디스크, 광자기 디스크 및/또는 플로피 디스크 등과 같이 데이터를 영구적 또는 반영구적으로 저장 가능한 적어도 하나의 저장 매체를 이용하여 구현될 수 있다.
일 실시예에 따르면, 프로세서(100)는, 코드 변환부(110), 분석 코드 삽입부(120), 버퍼 추적부(130), 분기 명령어 식별부(140), 코드 수정부(150), 로그 생성부(160), 또는 로그 분석부(170)를 포함할 수 있다. 일 실시예에 따르면, 전술한 구성 요소들(110~170)은, 소프트웨어적으로 구현된 것일 수도 있고, 또는 하드웨어적으로 구현된 것일 수도 있다.
도 4는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법의 흐름도이다. 도 5a 내지 도 5b는 본 발명의 일 실시예에 따른, 악성 코드 탐지 방법을 설명하기 위한 도면이다.
이하, 도 1 내지 도 5b를 참조하여, 본 발명의 일 실시예에 따른, 악성 코드 탐지 장치(10)를 통한 악성 코드 탐지 방법에 대해 살펴본다.
일 실시예에 따르면, 코드 변환부(110)(또는 Code Instrumentator(110))는, 알려지지 않은 악성 코드(unknown malware)(1)(또는, 미확인 악성 코드)가 악성 코드 탐지 장치(10)에 입력으로 들어오면, 동적 바이너리 계측 도구(또는 동적 바이너리 계측 프레임워크)가 실행할 수 있는 계측 코드(또는, Windows API의 계측 코드), 또는 계측 코드를 포함하는 바이너리로 변환할 수 있다(S10). 예를 들어, 상기 변환된 계측 코드는, 악성 코드 탐지 장치(10)가 사용하는 동적 바이너리 계측 프레임 워크에 기반한 아키텍처에 맞는 어셈블리 코드일 수 있고, 이에 한정하지 않고 VEX IR 또는 LLVM IR과 같은 중간 언어 코드일 수도 있다. 일 실시예에 따르면, 코드 변환부(110)는, Intel Pin을 이용하여, 악성 코드를 계측할 수 있다.
일 실시예에 따르면, 분석 코드 삽입부(120)(또는, Analysis Code Inserter(120))는, 상기 계측 코드에 분석 코드를 삽입할 수 있다(S20). 상기 분석 코드는, API의 파라미터를 검사하는 코드, 또는 API의 실행 결과가 메모리(200)에 저장되는 위치를 검사하는 코드일 수 있다. 예를 들어, 분석 코드 삽입부(120)는, 코드 변환부(110)를 통해 획득된 계측 코드 중 분석 방지 기법에 사용되는 것으로 알려진 API의 파라미터를 검사 또는 확인할 수 있다. 또한, 상기 계측 코드를 실행 중에 상기 계측 코드에 분석을 위한 코드(이하, '분석 코드'라 함)를 삽입할 수 있다(S20). 분석 코드 삽입부(120)는, 악성 코드 또는 계측 코드를 실행할 때 DLL로 전달되는 파라미터의 값을 검사하고, 상기 파라미터가 분석 방지 기법에 사용될 수 있으면, API의 실행 결과가 메모리에 저장되는 위치(또는, 버퍼)를 식별하도록 설정될 수 있다(S20). API의 실행 결과가 메모리에 저장되는 위치 또는 메모리 주소는, 버퍼(Buffer)로 정의될 수 있다. 일 실시예에 따르면, 코드 삽입부(120)를 통해 삽입된 분석 코드는, 동적으로 계측 코드(또는 계측 코드를 포함하는 바이너리)를 실행 및 분석하는 과정에서 실행되어 API가 분석 방지 기법에 많이 사용되는 형태인지 검사할 수 있다. 또한, 상기 API의 실행 결과가 메모리(200)에 저장되는 위치를 식별할 수 있다.
일 실시예에 따르면, 버퍼 추적부(130)(또는, Buffer tracer(130))는, 코드 삽입부(120)에서 식별한 버퍼(API의 실행 결과가 메모리에 저장된 메모리 주소)의 사용을 추적하도록 설정될 수 있다(S30). 예를 들어, 버퍼 추적부(130)는, 악성 코드의 동적 분석 과정에서 계측 코드 중 값의 이동이나 복사와 관련된 명령어의 오퍼랜드 값이 버퍼의 주소와 관련되어 있는지 식별하도록 설정될 수 있다. 예를 들어, 버퍼 추적부(130)는, 악성 코드의 동적 분석 과정에서, 버퍼가 메모리(200)의 다른 위치로 이동하는지 여부, 또는 메모리(200)의 다른 위치로 복사되는지 여부를 악성 코드 또는 계측 코드의 명령어 단위로 검사하여 추적할 수 있다. 악성 코드 탐지 장치(100)는, 버퍼 추적부(130)를 이용하여 복사된 새로운 버퍼를 추적 및 관리할 수 있다.
일 실시예에 따르면, 분기 명령어 식별부(140)(또는, Conditional Branch Identifier(140))는, 악성 코드 또는 계측 코드가 버퍼 추적부(130)에서 관리하는 버퍼와 연관된 오퍼랜드 명령어를 사용하는지 검사할 수 있다. 또한, 분기 명령어 식별부(140)는, 버퍼와 관련된 비교 명령어를 식별할 수 있다(S40). 분기 명령어 식별부(140)는, 버퍼와 관련된 비교 명령어가 실행될 때, 프로그램의 실행 결과에 영향이 있는지 식별하도록 설정될 수 있다. 분기 명령어(140)는, 버퍼와 관련된 비교 명령어가 실행될 때, 프로그램의 실행 결과에 영향이 있는 경우 상기 비교 명령어를 조건부 분기 명령어로 판단할 수 있다(S40). 분기 명령어(140)는, 조건부 분기 명령어의 위치를 파악하도록 설정될 수 있다.
일 실시예에 따르면, 명령어 실행부(150)(또는, Conditional Branch Executor(150))는, 분기 명령어 실행부(140)에서 파악된 조건부 분기 명령어를 실행하도록 설정될 수 있다(S40). 한편, 명령어 실행부(150)는, 조건부 분기 명령어에 의해 실행되지 않는 실행 흐름도 분석하기 위해, 계측 코드를 수정하도록 설정될 수도 있다. 예를 들어, 계측 코드는, 조건부 분기 명령어를 기점으로 분석 환경(샌드박스 환경 등)에서 실행되는 코드와 실행되지 않는 코드로 나뉠 수 있다. 이때, 실행되지 않는 코드도 분석하기 위해 계측 코드는 명령어 실행부(150)에 의해 수정될 수 있다. 명령어 실행부(150)는, 조건부 분기 명령어에 의해 실행되는 코드와, 실행되지 않아 수정된 코드를 모두 실행되도록 설정될 수 있다.
일 실시예에 따르면, 로그 생성부(160)(또는, Execution Log Extractor(160))는, 명령어 실행부(150)에 의해 조건부 분기 명령어가 실행시켜 실행되는 코드의 로그를 추출할 수 있다(S60). 일 실시예에 따르면, 로그 생성부(160)는, 실행되는 코드의 실행 결과의 로그(2) 또는 실행되지 않아 수정된 코드의 실행 결과의 로그(3)를 추출할 수 있다.
일 실시예에 따르면, 로그 분석부(170)(또는, Log comparison analyzer(170))는, 추출된 로그를 비교하여 실행 결과에 영향이 있는지 판단할 수 있다(S70). 예를 들어, 실행되는 코드 또는 실행되지 않아 수정된 코드의 실행 결과의 로그들을 비교하여, 실행되는 코드와 실행되지 않아 수정된 코드의 실행 결과가 차이가 나는지 분석할 수 있다. 이 때, 로그 분석부(170)는, 실행되는 코드와 실행되지 않아 수정된 코드의 실행 결과가 차이가 있는 경우, 계측 코드를 형성한 미확인 악성 코드를 확정된 악성 코드로 확인하고, 이를 악성 코드 데이터 베이스(5)로 전달할 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상과 같이, 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
10: 악성 코드 탐지 장치
100: 프로세서
110: 코드 변환부
120: 분석 코드 삽입부
130: 버퍼 추적부
140: 분기 명령어 식별부
150: 명령어 실행부
160: 로그 생성부
170: 로그 분석부
100: 프로세서
110: 코드 변환부
120: 분석 코드 삽입부
130: 버퍼 추적부
140: 분기 명령어 식별부
150: 명령어 실행부
160: 로그 생성부
170: 로그 분석부
Claims (12)
- 악성 코드를 탐지하도록 구성된 악성 코드 탐지 장치에 있어서,
적어도 하나의 프로세서; 및 메모리;를 포함하고,
상기 적어도 하나의 프로세서는,
미확인 악성 코드를 계측 코드로 변환하도록 설정된 코드 변환부;
상기 계측 코드에 분석 코드를 삽입하고, 버퍼를 식별하도록 설정된 분석 코드 삽입부;
상기 식별된 버퍼를 추적하도록 설정된 버퍼 추적부;
상기 버퍼와 관련된 비교 명령어 중에서 조건부 분기 명령어를 식별하도록 설정된 분기 명령어 식별부;
상기 식별된 조건부 분기 명령어를 실행하도록 설정된 명령어 실행부;
상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하도록 설정된 로그 생성부; 및
상기 추출된 로그를 분석하도록 설정된 로그 분석부;를 포함하는 악성 코드 탐지 장치.
- 제1 항에 있어서,
상기 명령어 실행부는,
상기 조건부 명령어를 실행할 때 실행되지 않는 코드를 식별하여 상기 계측 코드를 수정하도록 설정된 악성 코드 탐지 장치.
- 제2 항에 있어서,
상기 로그 생성부는,
상기 조건부 명령어를 실행할 때 실행되는 코드와, 상기 실행되지 않아 상기 계측 코드가 수정된 코드를 모두 실행하여 실행 결과의 로그를 추출하도록 설정된 악성 코드 탐지 장치.
- 제3 항에 있어서,
상기 로그 분석부는,
상기 실행되는 코드의 실행 결과의 로그와 상기 실행되지 않아 상기 계측 코드가 수정된 코드의 실행 결과의 로그를 비교하여 차이가 있을 때, 상기 미확인 악성 코드를 확정된 악성 코드로 판단하도록 설정된 악성 코드 탐지 장치.
- 제1 항에 있어서,
상기 분석 코드는,
상기 계측 코드의 API의 파라미터를 검사하는 코드, 및 상기 API의 실행 결과가 메모리에 저장되는 위치인 상기 버퍼를 검사하는 코드를 포함하는 악성 코드 탐지 장치.
- 제1 항에 있어서,
상기 버퍼 추적부는,
상기 버퍼가 상기 메모리 상에서 이동되는지 여부 또는 상기 메모리 상에서 복사되는지 여부를 추적하도록 설정된 악성 코드 탐지 장치.
- 악성 코드를 탐지하도록 구성된 악성 코드 탐지 장치를 이용한 악성 코드 탐지 방법에 있어서,
미확인 악성 코드를 계측 코드로 변환하는 단계(S10);
상기 계측 코드에 분석 코드를 삽입하고, 버퍼를 식별하는 단계(S20);
상기 식별된 버퍼를 추적하는 단계(S30);
상기 버퍼와 관련된 비교 명령어 중에서 조건부 분기 명령어를 식별하는 단계(S40);
상기 식별된 조건부 분기 명령어를 실행하는 단계(S50);
상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하는 단계(S60); 및
상기 추출된 로그를 분석하는 단계(S70);를 포함하는 악성 코드 탐지 방법.
- 제7 항에 있어서,
상기 식별된 조건부 분기 명령어를 실행하는 단계(S50)는,
상기 조건부 명령어를 실행할 때 실행되지 않는 코드를 식별하여 상기 계측 코드를 수정하는 단계를 포함하는 악성 코드 탐지 방법.
- 제8 항에 있어서,
상기 실행된 조건부 분기 명령어에 의해 실행되는 코드의 로그를 추출하는 단계(S60)는,
상기 조건부 명령어를 실행할 때 실행되는 코드와, 상기 실행되지 않아 상기 계측 코드가 수정된 코드를 모두 실행하여 실행 결과의 로그를 추출하는 단계를 포함하는 악성 코드 탐지 방법.
- 제9 항에 있어서,
상기 추출된 로그를 분석하는 단계(S70)는,
상기 실행되는 코드의 실행 결과의 로그와 상기 실행되지 않아 상기 계측 코드가 수정된 코드의 실행 결과의 로그를 비교하여 차이가 있을 때, 상기 미확인 악성 코드를 확정된 악성 코드로 판단하는 단계를 포함하는 악성 코드 탐지 방법.
- 제7 항에 있어서,
상기 분석 코드는,
상기 계측 코드의 API의 파라미터를 검사하는 코드, 및 상기 API의 실행 결과가 메모리에 저장되는 위치인 상기 버퍼를 검사하는 코드를 포함하는 악성 코드 탐지 방법.
- 제7 항에 있어서,
상기 식별된 버퍼를 추적하는 단계(S30)는,
상기 버퍼가 상기 메모리 상에서 이동되는지 여부 또는 상기 메모리 상에서 복사되는지 여부를 추적하도록 설정된 악성 코드 탐지 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220116239A KR20240037569A (ko) | 2022-09-15 | 2022-09-15 | 악성 코드 탐지 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220116239A KR20240037569A (ko) | 2022-09-15 | 2022-09-15 | 악성 코드 탐지 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240037569A true KR20240037569A (ko) | 2024-03-22 |
Family
ID=90481036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220116239A KR20240037569A (ko) | 2022-09-15 | 2022-09-15 | 악성 코드 탐지 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240037569A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101920591B1 (ko) | 2018-03-29 | 2018-11-20 | 김태윤 | 미술용 롤 팔레트 |
-
2022
- 2022-09-15 KR KR1020220116239A patent/KR20240037569A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101920591B1 (ko) | 2018-03-29 | 2018-11-20 | 김태윤 | 미술용 롤 팔레트 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102054149B (zh) | 一种恶意代码行为特征提取方法 | |
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
CN101515320B (zh) | 一种攻击时漏洞检测方法及其系统 | |
CN109471697B (zh) | 一种监控虚拟机中系统调用的方法、装置及存储介质 | |
US11030074B2 (en) | Code update based on detection of change in runtime code during debugging | |
WO2022180702A1 (ja) | 解析機能付与装置、解析機能付与プログラム及び解析機能付与方法 | |
KR101796369B1 (ko) | 소프트웨어 분석을 위한 리버스 엔지니어링 협업 장치, 방법 및 시스템 | |
TWI656453B (zh) | 檢測系統及檢測方法 | |
CA2811617A1 (en) | Commit sensitive tests | |
US8997048B1 (en) | Method and apparatus for profiling a virtual machine | |
KR20240037569A (ko) | 악성 코드 탐지 장치 및 방법 | |
JP2009129204A (ja) | コード検査システム及びコード検査方法及びプログラム | |
De Goër et al. | Now you see me: Real-time dynamic function call detection | |
KR101621170B1 (ko) | 온라인 게임에서의 메모리 감시를 이용한 해킹 방지 방법 | |
WO2023067665A1 (ja) | 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム | |
KR101071119B1 (ko) | 핵 툴 사용 흔적을 이용한 게임 보안방법 | |
Höller et al. | Evaluation of diverse compiling for software-fault detection | |
CN116340081A (zh) | 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置 | |
KR20230125653A (ko) | 버그 리포트 전후 처리 방법 결정 장치 및 방법 | |
KR102016226B1 (ko) | 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 | |
KR102421394B1 (ko) | 하드웨어와 소프트웨어 기반 트레이싱을 이용한 악성코드 탐지 장치 및 방법 | |
Yao et al. | Research on IoT device vulnerability mining technology based on static preprocessing and coloring analysis | |
KR102416292B1 (ko) | 안드로이드 앱 동적 분석 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
US8307429B2 (en) | System and method of generically detecting the presence of emulated environments | |
CN103914650A (zh) | 病毒检测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |