프로세스 은닉

덤프버전 :

1. 개요
2. 종류
3. 탐지 방법



1. 개요[편집]


프로세스작업 관리자 등에서 나오지 않도록 자기 자신을 숨기는 것을 의미한다.

악성 프로그램들은 프로세스로 실행되므로 컴퓨터를 많이 다루는 사용자가 이를 발견하면 작업 관리자 등에서 이를 강제로 종료시킬 수 있다. 그러므로 사용자가 악성 프로그램의 실행 사실을 알 수 없게 조작하는 것을 말한다. 이런 경우 백그라운드 프로세스를 통해 종료해야 하지만, 그것도 현재 악성 프로그램이 실행 중이라는 사실을 알아야 가능하다.


2. 종류[편집]


은닉 코드가 어느 영역에서 작동됨에 따라 사용자 모드와 커널 모드로 나뉜다.

사용자 모드 - 프로세스의 프로세스 목록 가져오는 API를 후킹하여 본래의 함수를 호출하고 나오게된 프로세스 목록에서 자신을 빼버리는 것이다. 이렇게 하면 프로그램 화면에서 나오지 않는다. 이를 하는 DLL 파일을 만들고 실행중인 모든 프로세스에 삽입하는 것인데 문제는 이후 실행되는 프로세스는 이 방법이 먹히지 않는다는 것이다. 그러면 이후 실행되는 프로세스에도 DLL 파일을 삽입하도록 프로세스 생성 API도 후킹해야 한다.

커널 모드 - 시스템 콜 테이블 호출[1]을 후킹하면 된다. 커널 모드에서 동작해야 하는 단점이 있지만 실행중인 프로세스는 물론 이후 실행되는 프로세스에도 별도의 후킹 없이 자동 적용되는 장점이 있다. 하지만 루트킷이 아닌 이상 대부분은 사용자 모드를 이용하게 된다.

DKOM(Direct Kernel Object Manipulation) - 커널 모드에서 시스템 서비스 테이블 호출을 후킹하는게 아닌 직접 프로세스 정보를 조작해서 숨기는 기법이다. 64비트 윈도우에서 커널 패치를 막는 PatchGuard 기능이 있기에 시스템 서비스 테이블 후킹은 사용할 수 없다. 참고로 프로세스 뿐만 아니라 드라이버도 숨길 수 있다.


3. 탐지 방법[편집]


어떤 방법이든 메모리 단위로 검사하면 다 알 수 있다. 메모리를 파일로 덤프하고 프로그램을 이용해서 그 파일을 검사하면 모든 프로세스를 확인할 수 있다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-24 12:05:51에 나무위키 프로세스 은닉 문서에서 가져왔습니다.

[1] 윈도우는 SSDT