woonadz :)

[은닉 기법] 자가 삭제/코드 조각화/프로세스 할로윙 본문

IT/악성코드

[은닉 기법] 자가 삭제/코드 조각화/프로세스 할로윙

C_scorch 2024. 3. 13. 04:24
반응형

자가 삭제 (Self-Deletion)

[그림 1] 자가 삭제 구조도

 

자가 삭제는 악성 코드가 자체적으로 삭제되거나 비활성화되어 분석을 어렵게 만드는 기법입니다. 일반적으로 악성 코드는 침투된 시스템에서 실행되고 자가 삭제 기능을 수행합니다.

자가 삭제 기법은 다음과 같은 조건이 충족될 때 실행될 수 있습니다.

  • 특정 시간이 지났을 때
  • 특정 이벤트가 발생했을 때
  • 특정 조건이 충족되었을 때

 

코드 조각화 (Code Fragmentation)

[그림 2] 코드 조각화 구조도

 

코드 조각화는 악성 코드의 일부 또는 전체를 분할하고 조각조각 나누어 각 조각을 다른 위치에 저장한 후 실행 시 조합하여 실행하는 기법입니다. 이로써 악성 코드가 정적 분석에서 탐지되기 어려워집니다.

코드 조각화는 다음과 같은 방식으로 작동합니다.

  • 악성 코드의 명령문을 조각조각 분할하여 별도의 함수 또는 모듈로 나눕니다.
  • 이러한 조각을 다른 파일에 저장하거나 메모리에 숨깁니다.
  • 실행 시에는 이 조각들을 필요한 순서대로 결합하여 악성 코드를 실행합니다.

 

프로세스 할로윙(Process Hollowing)

[그림 3] 프로세스 할로윙 구조도

 

프로세스 Hollowing은 정상적인 프로세스를 이용하여 악성코드를 실행하고 숨기는 기술입니다. 이 기술은 악성 활동을 감추고 탐지를 회피하기 위해 사용될 수 있습니다.

프로세스 Hollowing 다음과 같은 방식으로 작동합니다:

  1. 목표 프로세스 선택: 먼저, 공격자는 시스템에서 숨기고자 하는 악성코드를 실행할 목표로 할 정상 프로세스를 선택합니다.
  2. 새로운 프로세스 생성: 공격자는 CreateProcess 또는 유사한 API를 사용하여 자신의 악성코드를 새로운 프로세스로 만듭니다.
  3. 목표 프로세스 내용 삭제: 새로운 프로세스의 주소 공간에 악성 코드를 적재하기 전에, 목표 프로세스의 내용을 삭제합니다. 이는 목표 프로세스의 메모리 공간을 “비워내는(hollow)" 단계입니다.
  4. 악성 코드 주소 공간 적재: 목표 프로세스의 메모리 공간을 악성 코드로 덮어씌웁니다.
  5. 새로운 프로세스 실행: 악성 코드가 적재되고 목표 프로세스의 내용을 덮어씌운 이후에 새로운 프로세스를 실행합니다. 즉, 악성 코드가 목표 프로세스의 컨텍스트 내에서 실행되고 시스템은 이것을 정상적인 프로세스로 간주됩니다.
  6. 악성 활동 수행: 악성 코드가 목표 프로세스의 컨텍스트에서 실행되므로 시스템에 대한 접근 권한과 권한을 그대로 유지할 수 있고 악성 코드는 자신을 숨기고 탐지를 우회하는 데 성공할 수 있습니다.
반응형