ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로세스 이상징후] 이론 정리
    보안/멀웨어식별 2024. 8. 30. 18:08

    1. 개요

    침해사고가 발생한 시스템은 정상 시스템 대비 여러가지 이상 징후를 가지고 있다. 이러한 이상 징후 식별 방법은 아래와 같다.

     

    1. 프로세스의 이상 징후 식별

    - 경로 및 이름 분석

    - 리니지 분석

    - 명령라인 파라미터 분석

    - 이미지 버전 정보 분석

     

    2. 제어 지속 지점의 이상징후 식별

    - 시작 프로그램

    - 테스크 스케줄

    - 레지스트리 자동실행 포인트

    - LoL 바이너리 실행 여부 분석

     

    3. 메모리 분석을 통한 Process Injection 징후 식별

    - 커널 메모리 영역의 VAD 자료구조 분석

    - Process Injection 기법 확인

     

    4. 파워시스템 분석을 통한 이상 징후 식별

    - 타임라인 기반 분석

    - 시간 조작 여부 확인

    - NTFS ADS 사용 여부 확인

    - 악성코드 은닉 여부 확인

     

    이러한 이상 징후 식별 방법 중 프로세스 이상 징후 식별 방법에 대해 설명한다.

     

    2. 프로세스 이상 징후 식별

    2.1 프로세스 정보 추출

    침해사고 발생한 시스템은 악성 코드, 쓰레드가 삽입된 프로세스가 존재할 가능성이 있다. 이러한 가능성을 확인하기 위해 정상적인 프로세스와 대조가 필요하다. 그렇기에 침해사고 PC에서 의심스러운 징후를 수집 해야 하며 필수적으로 수집해야 항목은 아래와 같다.

     

    항목 :

    - 이름

    - PID

    - PPID

    - 경로

    - 명령라인

    - 메모리 사용

    - 생성/종료 시간 등

     

    이러한 항목들은 침해사고가 발생한 라이브 시스템 혹은 해당 단말에서 덤프한 메모리에서 수집 가능하다.

     

    그림  1   라이브 시스템 수집 도구 예시(Brimor Labs)

     

    2.2 의심스러운 프로세스 이상 징후 분석

    2.2.1 경로 및 이름 분석

    일반적이지 않은 경로와 이름을 사용하여 실행되는 프로세스를 확인한다.

     

    그림 2 정상/비정상 프로세스 경로 예시

     

    2.2.2 프로세스 혈통 분석

    실행중인 서비스가 동작 중인 경로와 해당 프로세스의 부모 프로세스가 일반적이지 않다면 비정상 프로세스로 의심 가능하다.

     

    표 1 리니지 분석 참고 표
    서비스 서비스 설명 부모 프로세스 경로
    explorer.exe Windows 탐색기, 사용자가 파일, 폴더 및 기타 리소스를 탐색하고 관리하는 데 사용되는 GUI . userinit.exe C:\Windows\explorer.exe
    lsass.exe 로컬 보안 권한 서브시스템, 시스템 보안 정책을 적용하고 사용자 로그인 및 권한을 관리. wininit.exe    C:\Windows\System32\lsass.exe
    svchost.exe 여러 Windows 서비스를 호스팅하는 데 사용되는 프로세스. 여러 인스턴스가 동시에 실행될 수 있음.  services.exe C:\Windows\System32\svchost.exe
    winlogon.exe 사용자의 로그온/로그오프를 관리하며, 시스템 시작 시 중요한 작업을 수행. smss.exe C:\Windows\System32\winlogon.exe
    csrss.exe 클라이언트/서버 런타임 프로세스, 콘솔 창을 관리하고 스레드 생성 작업을 수행. smss.exe C:\Windows\System32\csrss.exe
    services.exe 시스템 서비스의 시작, 중지 및 관리 작업을 수행하는 서비스 제어 관리자. wininit.exe    C:\Windows\System32\services.exe
    smss.exe 세션 관리자 서브시스템, 시스템 시작 시 가장 먼저 실행되는 프로세스로 다른 핵심 프로세스들을 시작. System C:\Windows\System32\smss.exe
    cmd.exe 명령 줄 인터페이스로 명령어를 입력하여 다양한 작업을 수행하는 명령 프롬프트. 보통 explorer.exe 또는 cmd.exe C:\Windows\System32\cmd.exe
    conhost.exe 콘솔 윈도우 호스트, cmd.exe와 같은 콘솔 기반 응용 프로그램의 GUI 연결을 지원. cmd.exe C:\Windows\System32\conhost.exe
    taskhost.exe 태스크 호스트, DLL 기반의 Windows 서비스가 실행되는 호스트 프로세스. svchost.exe 또는 explorer.exe C:\Windows\System32\taskhost.exe
    dllhost.exe    COM+ 애플리케이션을 실행하는 호스트 프로세스, COM 객체의 실행을 관리. svchost.exe 또는 explorer.exe C:\Windows\System32\dllhost.exe
    rundll32.exe DLL 파일을 실행하는 데 사용되는 프로세스, 특정 기능을 수행하는 데 필요할 때 사용됨. 보통 explorer.exe 또는 svchost.exe C:\Windows\System32\rundll32.exe
    wininit.exe 시스템 초기화를 담당하는 프로세스로, 시스템 부팅 시 초기화 작업을 수행하고 핵심 프로세스를 시작. smss.exe C:\Windows\System32\wininit.exe
    notepad.exe Windows 메모장, 텍스트 편집기. 간단한 텍스트 파일을 열고 편집하는 데 사용됨. 보통 explorer.exe C:\Windows\System32\notepad.exe
    mstsc.exe 원격 데스크톱 연결, 원격 컴퓨터에 연결하여 제어할 수 있게 해주는 클라이언트 프로그램. 보통 explorer.exe C:\Windows\System32\mstsc.exe

     

    2.2.3 프로세스의 명령 라인 파라미터 분석

    프로세스의 커맨드 라인 분석 시 적절한 파라미터가 지정되어 있어야 하지만 만일 파라미터의 길이가 비정상적으로 길거나 없다면 비정상 프로세스로 의심 가능하다.

     

    특히 svchost.exe의 경우 호스팅 프로그램이기에 명령 라인 파라미터가 없이 실행되고 있다면 비정상 프로세스일 가능성이 높다.

     

    그림 3 정상적인 파라미터 예시

     

    2.2.4 프로세스 이미지의 버전 정보 분석

    MS PE 파일은 신뢰성 증명을 위해 서명 정보를 가지고 있다. 이때 해당 파일은 헤더를 제외하고 여러 개의 섹션을 가지고 있는데 그 중 .rsrc라는 섹션이 존재한다.

     

    .rsrc 섹션은 리소스를 담는 섹션으로서 실행 파일의 아이콘, 인증서 등이 들어있고 이때 해당 섹션에 존재하는 여러 개의 리소스 중에 Version Info가 존재한다.

     

    Version Info 리소스 안에는 여러 컨텐츠가 존재하며 이러한 컨텐츠 중에는 우리가 흔히 속성>자세히 메뉴에서 볼 수 있는 Description, Product, Product Version, File Version 등의 정보가 존재한다.

     

    그림 4 .rsrc 섹션 설명

     

    여기서 확인 할 수 있는 정보들이 악성코드의 경우 누락되어 있거나 불필요한 파일이 포함되어 있는 경우가 있기에 해당 현상 식별 시 악성 프로세스로 의심 가능하다.

     

    3. 메모리에서 아티팩트 추출

    Volatility 툴을 이용하여 덤프된 메모리에서 분석을 위한 아티팩트를 추출하는 법을 기술한다.

     

    3.1 메모리 덤프 파일 프로필 정보 확인

    Volatility 툴을 이용해서 아티팩트를 추출하기 위해선 해당 메모리 덤프가 어떤 버전에서 추출되었는지 확인하여 프로파일로 지정해야 한다.

     

    그림 5 imageinfo 명령

     

    3.2 프로세스 목록 추출

    프로세스 목록을 추출하여 프로세스 이름, PID, PPID 등을 확인 할 수 있다.

     

    그림 6 pslist 명령

     

    그림 7 pslist.txt

     

    3.3 프로세스 트리 정보 추출

    프로세스의 부모 자식 관계를 텍스트 형식으로 출력하여 확인한다.

     

    그림 8 pstree 명령

     

    그림 9 pstree.txt

     

    여기서 점(.)으로 부모 자식 간의 관계를 표현한다.

     

    3.4 로드된 dll 목록 및 경로 출력

    _EPROCESS 자료구조 안의 dlllist를 이용하여 추적해 추출한다.

     

    그림 10 dlllist 명령

     

    그림 11 dlllist.txt

     

    3.5 실행 프로세스 덤프

    - D 옵션을 이용하여 덤프할 디렉터리 지정 후 명령을 실행하며 이때 지정한 디렉터리가 생성되어 있어야 한다.

     

    그림 12 procdump 명령

     

    3.6 프로세스 이미지 덤프 및 버전 정보 추출

    SysinternalsSuite Sigcheck 툴을 이용하여 [그림 12]에서 덤프한 실행 프로세스들에 대한 버전 정보 추출을 진행한다.

     

    그림 13 sigcheck 툴 명령

     

    그림 14 sigcheck 결과

     

    추출된 sigcheck 결과에서 Publisher, Company, Description 등 서명 관련 항목을 중점으로 N/A로 표시된 내용을 위주로 확인한다.

    '보안 > 멀웨어식별' 카테고리의 다른 글

    [프로세스 이상징후] 실습1  (0) 2024.08.30
Designed by Tistory.