일반적으로 윈도우기반에서 API 후킹은 폐쇄적인 윈도우 운영체제의 특성상 가상메모리에 호출 프로시저가 로드되는 메커니즘을 이용하게 된다. 응용계층에서 동작하는 일반 악성코드는 시그니처 기반에 중심을 준 기존의 안티바이러스를 이용하여 해당 악성코드의 탐지 및 제거가 이루어지고 있는 반면, ...
일반적으로 윈도우기반에서 API 후킹은 폐쇄적인 윈도우 운영체제의 특성상 가상메모리에 호출 프로시저가 로드되는 메커니즘을 이용하게 된다. 응용계층에서 동작하는 일반 악성코드는 시그니처 기반에 중심을 준 기존의 안티바이러스를 이용하여 해당 악성코드의 탐지 및 제거가 이루어지고 있는 반면, 커널 단에서 동작하는 악성 코드는 기존의 안티바이러스로 해당 악성 코드를 탐지하거나 제거하기가 매우 힘들다. 이는 커널 단에서 동작하는 악성 코드의 시스템 정보가 은닉되고 커널 공격 기법에 대한 패턴이 존재하지 않기 때문이다. 후킹을 차단하는 몇 가지 방법에는 해당 시스템의 코드 영역 즉 메모리 영역으로 접근을 메모리 관련, 프로세스 관련 함수를 역으로 후킹하여 메모리에 대한 접근을 막는 것이다. 두 번째 방법은 응용계층에서 활동 중인 프로세스들을 감시하여 후킹 이후 생성된 프로세서인지를 확인하고 이를 그 전으로 복구하는 방법이 있으며, 자신만의 dll 파일을 만들어서 사용하는 방법이 있을 수 있다. 그러나 위와 같은 방법은 신뢰성과 정확성면에서 그다지 좋은 효과를 보이지 못하며, 일부는 고급 프로그래밍 기술을 습득해야 가능하다. 특히 스텔스 기능을 가진 후킹 기술이나 새로이 우회하는 기술에 대해서는 속수무책일 수도 있다. 그러나 어떤 악성 코드든 시스템에서 동작하기 위해서는 반드시 메모리에 흔적을 남기게 된다. 따라서 이를 이용하여 커널 모드에서 동작하는 악성 코드에 대한 탐지를 수행 할 수 있다. 위와 같은 메커니즘을 이용하여 커널 모드에서 동작하는 악성 코드에 대한 탐지를 수행 할 수 있다. 따라서 본 논문에서는 커널 모드에서 동작하는 악성 코드에 대해 API에 대한 후킹 탐지 도구를 설계 및 개발한다. 본 논문에서 제안하는 윈도우 API 후킹 탐지 도구는 kernel32.dll, advapi32.dll, psapi.dll, iphlpapi.dll, snmpapi.dll, netapi32.dll, ntdll.dll을 대상으로 순차적으로 dll 파일을 호출하여 연결된 exe( ) 즉, 실행파일이 메모리에 적재 되어 있다면 해당 dll 파일의 엔트리 값을 호출하고, 그에 대한 import와 export를 탐지한다. 제안 도구의 테스트는 악성 코드나 루트킷이 설치되지 않은 클린 PC 환경과 테스트용 해킹 도구가 설치되어 있는 PC환경에서 이루어졌다. 테스트 결과 해킹 도구가 설치되어 있는 PC 환경에서 악성 API가 존재함을 확인 할 수 있었다. 제안한 도구는 커널단에서 동작하는 루트킷과 같은 악성 코드를 방어하기 위한 기반이 될 수 있을 것으로 사료된다.
일반적으로 윈도우기반에서 API 후킹은 폐쇄적인 윈도우 운영체제의 특성상 가상메모리에 호출 프로시저가 로드되는 메커니즘을 이용하게 된다. 응용계층에서 동작하는 일반 악성코드는 시그니처 기반에 중심을 준 기존의 안티바이러스를 이용하여 해당 악성코드의 탐지 및 제거가 이루어지고 있는 반면, 커널 단에서 동작하는 악성 코드는 기존의 안티바이러스로 해당 악성 코드를 탐지하거나 제거하기가 매우 힘들다. 이는 커널 단에서 동작하는 악성 코드의 시스템 정보가 은닉되고 커널 공격 기법에 대한 패턴이 존재하지 않기 때문이다. 후킹을 차단하는 몇 가지 방법에는 해당 시스템의 코드 영역 즉 메모리 영역으로 접근을 메모리 관련, 프로세스 관련 함수를 역으로 후킹하여 메모리에 대한 접근을 막는 것이다. 두 번째 방법은 응용계층에서 활동 중인 프로세스들을 감시하여 후킹 이후 생성된 프로세서인지를 확인하고 이를 그 전으로 복구하는 방법이 있으며, 자신만의 dll 파일을 만들어서 사용하는 방법이 있을 수 있다. 그러나 위와 같은 방법은 신뢰성과 정확성면에서 그다지 좋은 효과를 보이지 못하며, 일부는 고급 프로그래밍 기술을 습득해야 가능하다. 특히 스텔스 기능을 가진 후킹 기술이나 새로이 우회하는 기술에 대해서는 속수무책일 수도 있다. 그러나 어떤 악성 코드든 시스템에서 동작하기 위해서는 반드시 메모리에 흔적을 남기게 된다. 따라서 이를 이용하여 커널 모드에서 동작하는 악성 코드에 대한 탐지를 수행 할 수 있다. 위와 같은 메커니즘을 이용하여 커널 모드에서 동작하는 악성 코드에 대한 탐지를 수행 할 수 있다. 따라서 본 논문에서는 커널 모드에서 동작하는 악성 코드에 대해 API에 대한 후킹 탐지 도구를 설계 및 개발한다. 본 논문에서 제안하는 윈도우 API 후킹 탐지 도구는 kernel32.dll, advapi32.dll, psapi.dll, iphlpapi.dll, snmpapi.dll, netapi32.dll, ntdll.dll을 대상으로 순차적으로 dll 파일을 호출하여 연결된 exe( ) 즉, 실행파일이 메모리에 적재 되어 있다면 해당 dll 파일의 엔트리 값을 호출하고, 그에 대한 import와 export를 탐지한다. 제안 도구의 테스트는 악성 코드나 루트킷이 설치되지 않은 클린 PC 환경과 테스트용 해킹 도구가 설치되어 있는 PC환경에서 이루어졌다. 테스트 결과 해킹 도구가 설치되어 있는 PC 환경에서 악성 API가 존재함을 확인 할 수 있었다. 제안한 도구는 커널단에서 동작하는 루트킷과 같은 악성 코드를 방어하기 위한 기반이 될 수 있을 것으로 사료된다.
In general, API hooking is operated using a mechanism that calls procedure to load into the virtual memory which is based on Windows. General malicious code, which is operated in the application level is detected and deleted with existing anti-virus, but some malicious codes which are operated in ke...
In general, API hooking is operated using a mechanism that calls procedure to load into the virtual memory which is based on Windows. General malicious code, which is operated in the application level is detected and deleted with existing anti-virus, but some malicious codes which are operated in kernel level remains that are not detected and not deleted. The reason is that they don't present specific pattern and some of them have stealth ability. There are several methods to block from hooking, one of those method is blocking malicious code that tries to approach the memory area which serve as reverse hooking. Second method is the restoration to previous state, if a process is operated after hooking procedure another method is by using a private dll files which are programmed by users. But those methods could be developed using a high programming technique. However, these strategies doesn't show good effect in aspect of trust and correctness. Specially it doesn't work with stealth and detour techniques. Hence, these techniques will leave a trace that operates in system memory. For these reason, these malicious codes could be detected. Therefore, this paper is designed and developed using Windows API hooking detection tool against a malicious code in kernel level. Initially, the proposed detection tool calls dll files such as kernel32.dll, advapi32.dll, psapi.dll, iphlpapi.dll, snmpapi.dll, netapi32.dll and ntdll.dll. Then, if an execution file is loaded into the memory, it will detect import procedure from and export dll files after a call of dll's entry. In this paper, the proposed tool has been tested with a clean PC environment without malicious code installed and a PC with malicious code installed. Based on the result of the test, proposed tool detected some malicious API which are existing in the PC with malicious code installed. In addition, the proposed tool contributed prevention procedure that will protect the system against malicious codes which are operated in a kernel level such as rootkit.
In general, API hooking is operated using a mechanism that calls procedure to load into the virtual memory which is based on Windows. General malicious code, which is operated in the application level is detected and deleted with existing anti-virus, but some malicious codes which are operated in kernel level remains that are not detected and not deleted. The reason is that they don't present specific pattern and some of them have stealth ability. There are several methods to block from hooking, one of those method is blocking malicious code that tries to approach the memory area which serve as reverse hooking. Second method is the restoration to previous state, if a process is operated after hooking procedure another method is by using a private dll files which are programmed by users. But those methods could be developed using a high programming technique. However, these strategies doesn't show good effect in aspect of trust and correctness. Specially it doesn't work with stealth and detour techniques. Hence, these techniques will leave a trace that operates in system memory. For these reason, these malicious codes could be detected. Therefore, this paper is designed and developed using Windows API hooking detection tool against a malicious code in kernel level. Initially, the proposed detection tool calls dll files such as kernel32.dll, advapi32.dll, psapi.dll, iphlpapi.dll, snmpapi.dll, netapi32.dll and ntdll.dll. Then, if an execution file is loaded into the memory, it will detect import procedure from and export dll files after a call of dll's entry. In this paper, the proposed tool has been tested with a clean PC environment without malicious code installed and a PC with malicious code installed. Based on the result of the test, proposed tool detected some malicious API which are existing in the PC with malicious code installed. In addition, the proposed tool contributed prevention procedure that will protect the system against malicious codes which are operated in a kernel level such as rootkit.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.