사용자 정의 Artifact 수집

에이전트 시스템에서 관리자가 원하는 Artifact 정보를 수집합니다. Artifact 정보 수집을 위해 YAML 구문을 입력하여 원하는 정보를 수집할 수 있습니다.

참고 참고

입력된 YAML 구문에 오류가 있는 경우, Artifact 수집을 실패하거나 수집 정보가 누락될 수 있습니다.

 

AhnLab EAC(Endpoint Artifacts Collector) 파일 예제

사용자가 원하는 Artifact 파일 수집을 위해서는 YAML 1.1 문법을 따라 구문을 작성해야 합니다. 다음은 YAML 구문을 이용한 간단한 예시와 실제 수집된 Artifact 정보입니다.

YAML 구문 입력 시 사용되는 YAML 1.1 문법에서는 AhnLab EAC definition 문법에 따라 작성되어야 합니다. 아래 예시에서 수집하는 정보는 다음과 같습니다.

classes:

  - class: Summary

    subclasses:

      - class: Files

        attributes:

          path: '%Profile%\Downloads'

          flags: [include_subdirectory]

        condition: os_version >= 6

      - class: Tasks

        subclasses:

          - class: Tasks.Processes

          - class: Tasks.Modules

          - class: Tasks.Services

      - class: Hardware

        subclasses:

          - class: Hardware.Devices

          - class: Hardware.Processors

          - class: Hardware.Mainboard

files:

  # SystemEventLog

  - paths: ['%System%\winevt\Logs\System.evtx']

    condition: os_version >= 6

  - paths: ['%System%\winevt\Logs\SysEvent.evt']

    condition: os_version < 6

  

위 구문으로 수집된 Artifact 정보는 아래와 같습니다. 수집된 아래 정보는 대응 > AhnReport/Artifact 수집에서 확인할 수 있습니다.


 

1. AhnLab EAC(Endpoint Artifacts Collector) 정의 파일

AhnLab EAC definition file AhnLab EAC가 수집할 항목들을 정의한 파일이며 YAML 1.1 문법을 따릅니다. YAML 문법에 대한 자세한 내용은 YAML 공식 웹 사이트 또는 위키백과를 참조하십시오. 다음은  YAML 구문을 이용한 간단한 예시입니다.

AhnLab EAC definition 문법

AhnLab EAC 파일 수집을 위해 기본적으로 YAML 1.1 문법을 따릅니다.

참고 참고

 YAML 1.1 문법에 대한 내용은 아래 사이트를 참고하십시오.
- official web site, wikipedia

1.1. Classes

수집할 artifacts 목록으로 트리 구조로 수집되는데, 하나의 class가 하나의 트리 항목으로 생성됩니다. 수집된 내용은 압축된 결과 파일(AhnRpt.arpj) JSON 형식으로 저장됩니다.

1.2. Files

추가로 수집할 파일 목록입니다.

 

2. Class names

AhnReport EAC에서 지원하는 Class들입니다.

2.1. Summary

Class name

Description

Summary

시스템 요약

 

2.2. Tasks

Class name

Description

Tasks.Processes

실행된 프로세스

Tasks.Modules

로드된 모듈

Tasks.Startup

시작프로그램

Tasks.Services

서비스

Tasks.Schedule_tasks

예약 작업

 

2.3. System

Class name

Description

System.Shares

공유

System.Certificates

인증서

System.Problem_reports

문제 보고서

System.Event_log.Application

Windows 이벤트 로그 - 응용 프로그램

System.Event_log.Security

Windows 이벤트 로그 보안

System.Event_log.System

Windows 이벤트 로그 시스템

System.Event_log.Windows_Defender_Operational

System.Event_log.Windows_Defender_WHC

Windows 이벤트 로그 - Windows Defender

 

2.4. Network

Class name

Description

Network.Firewall 방화벽

방화벽

Network.Firewall.Firewall_rules

방화벽 규칙

Network.Network_connections

네트워크 연결

Network.IP_configuration

IP Configuration

Network.DNS_resolver_cache

DNS resolover cache

Network.Routing_table

Routing table

Network.ARP_cache

ARP cache

Network.Hosts

Hosts

 

2.5. Hardware

Class name

Description

Hardware.Devices

장치

Hardware.Processors

프로세서

Hardware.Mainboard

메인보드

Hardware.Drives

드라이브

Hardware.Disks

디스크

Hardware.Display

디스플레이

Hardware.Display_adapters

디스플레이 어댑터

Hardware.Printers

프린터

 

2.6. Programs

Class name

Description

Programs

설치된 프로그램

Programs.Updates

업데이트

Programs.Update_history

업데이트 기록

Programs.Program_Files

Program files

 

2.7. Timeline

Class name

Description

Timeline

행위 시간이 있는 artifacts를 시간 순으로 정리한 class

 

Timeline에서 수집하는 artifacts 정보

Artifact

Short name

Date

BAM

bam

마지막으로 실행된 시간

Chrome

CrmH

CrmC

CrmD

Chrome으로 접속한 시간

Chrome에서 마지막으로 cache를 사용한 시간

Chrome에서 다운로드를 시작한 시간

Firefox

FfxH

FfxD

Firefox로 접속한 시간

Firefox에서 다운로드를 시작한 시간

Internet Explorer 10+

 

IEH

IEC

IED

IE 10 이상으로 접속한 시간

IE 10 이상에서 마지막으로 cache를 사용한 시간

IE 10 이상에서 다운로드를 시작한 시간

Internet Explorer 5~9

 

IEH

IEC

IE 5~9로 접속한 시간

IE 5~9에서 마지막으로 cache를 사용한 시간

Jump lists

 JL

파일을 열어본 시간

Java cache

JavaC

접속 시간

Microsoft Edge

 

EdgeH

EdgeC

EdgeD

Microsoft Edge로 접속한 시간

Microsoft Edge에서 마지막으로 cache를 사용한 시간

Microsoft Edge에서 다운로드를 시작한 시간

Naver Whale

 

WhaleH

WhaleC

WhaleD

Naver whale로 접속한 시간

Naver whale에서 마지막으로 cache를 사용한 시간

Naver whale에서 다운로드를 시작한 시간

Opera

 

OprH

OprC

OprD

Opera로 접속한 시간

Opera에서 마지막으로 cache를 사용한 시간

Opera에서 다운로드를 시작한 시간

Prefetch

Pf

마지막으로 실행된 시간

Recent files

RF

마지막으로 파일을 사용한 시간

Recycle bin

RB

휴지통으로 보낸 시간

Swing

SwingH

SwingC

SwingD

Swing browser로 접속한 시간

Swing browser에서 마지막으로 cache를 사용한 시간

Swing browser에서 다운로드를 시작한 시간

UserAssist

UA

마지막으로 실행된 시간

WebCache

H

C

D

WebCache를 사용하는 App으로 Web page에 접속한 시간

WebCache를 사용하는 App에서 마지막으로 cache를 사용한 시간

WebCache를 사용하는 App에서 다운로드를 시작한 시간

Windows Timeline

WT

활동을 시작한 시간

 

2.8. 지정한 정보 수집

원하는 정보를 지정하여 수집할 수 있습니다. 이 class들은 별도로 class attributes를 지정해야 합니다.

Class name

Description

Files

지정한 폴더에 있는 파일 정보

Registry

지정한 registry

Registry.Key

지정한 registry

System.Event_log

지정한 Windows 이벤트 로그

WMI

WMI query

 

3. Class attributes

3.1. Files

 

class: Files

attributes:

   path: '%Profile%\Downloads'

   flags: [include_subdirectory]


참고 참고

변수에 관한 상세 설명은 Variables 참조하십시오.

 

3.2. Registry

 

class: Registry

attributes:

  values:

    - {key: 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon', value: ' Shell'}

    - {key: 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows', value: 'Run'}

   
3.3. Registry.Key

수집할 레지스트리 키를 설정합니다.

class: Registry.Key

attributes:

  key: 'HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'

  flags: [include_subkey]

 

레지스트리 키는 아래 약어를 사용할 수 있습니다.

Key

Description

HKLM

HKEY_LOCAL_MACHINE

HKCU

HKEY_CURRENT_USER

HKCR

HKEY_CLASSES_ROOT

HKU

HKEY_USERS

 
3.4. System.Event_log

시스템 이벤트 로그를 수집합니다.

class: System.Event_log

attributes:

  name: ApplicationEventLog

  channel: Application

  days: 7

 

아래는 Channel이름을 의미하며, 대표적인 Channel 이름은 다음과 같습니다.

Channel

Description

Application

응용 프로그램

Security

보안

System

시스템

 

 

3.5. WMI

WMI 관련 정보를 수집합니다.

class: WMI

attributes:

  name: WMIComputerSystemProduct

  query: 'SELECT * FROM Win32_ComputerSystemProduct'

   

4. Condition

조건 비교 시 사용하는 구문입니다.

 
조건에 사용하는 값

조건에 사용하는 값은 다음과 같이 사용할 수 있습니다.

Name

Type

Description

Example

os_version

Version string

OS 버전 (<major>.<minor>)

(*minor version은 생략 가능)

os_version == 6.1

os_version >= 6

os_build_number

Number

OS build number

 os_build_number >= 10.0.17134

64bit

Boolean

64-bit OS이면 true

64bit and os_version >= 6

system_type

String

x86, x64, arm64 중 하나

system_type == x64

server

Boolean

Server이면 true

server and os_version >= 6

*Version string: 숫자와 구분 문자로 구성된 문자열로 숫자 부분끼리 비교합니다.

 
관계 연산자 사용

관계 연산자는 다음과 같이 사용할 수 있고, String을 비교할 때는 대소문자를 구분하지 않습니다.

Operator

Description

equals

is

==

둘이 같으면, 참

notequals

isnot

!=

둘이 같지 않으면, 참

contains

앞이 뒤 값을 포함하고 있으면, 참

notcontains

앞이 뒤 값을 포함하고 있지 않으면, 참

>

앞이 뒤보다 크면,

>=

앞이 뒤보다 크거나 같으면,

<

앞이 뒤보다 작으면,

<=

앞이 뒤보다 작거나 같으면,

 

관계 연산자가 없는 경우

관계 연산자가 없으면, 아래와 동일하게 동작합니다.

Type

Description

String

value != ""

Version string

value > 0.0.0.0

Number

value != 0

Boolean

value != false

 
논리 연산자 사용

논리 연산자는 아래와 같이 사용할 수 있다.

Operator

Description

Example

and

&&

하나라도 거짓이면 거짓

64bit and os_version >= 6

or

||

하나라도 참이면

64bit or server

not

뒤가 거짓이면 참(! YAML 문법 상 맨 앞에 오면 충돌이 있어 지원하지 않음.)

not 64bit and os_version >= 6

 

5. Variables

변수를 사용할 때는 다음과 같이 ‘%VariableName%’ 형식으로 사용할 수 있으며, Windows 환경 변수 사용 할 수 있습니다.예) %windir%\explorer.exe

Variable name

Description

ProgramData

 

Windows Vista 이상: %ProgramData% (%SystemDrive%\ProgramData)

Windows XP, 2003: %ALLUSERSPROFILE%\Application Data

ProgramFiles

%ProgramFiles% (%SystemDrive%\Program Files)

ProgramFilesX86

 

64bit Windows: %ProgramFiles(x86)% (%SystemDrive%\Program Files (x86))

32bit Windows: %ProgramFiles% (%SystemDrive%\Program Files)

ProgramFilesCommon

 %ProgramFiles%\Common Files

ProgramFilesCommonX86

 

64bit Windows: %ProgramFiles(x86)%\Common Files

32bit Windows: %ProgramFiles%\Common Files

Public

Windows Vista+: %PUBLIC% (%SystemDrive%\Users\Public)

Windows XP, 2003: %ALLUSERSPROFILE%

System

%windir%\System32

SystemX86

 

64bit Windows: %windir%\SysWOW64

32bit Windows: %windir%\System32

SystemDrive

 

%SystemDrive%

Ex) C:

Windows

 

%SystemRoot%, %windir%

Ex) C:\Windows

 
사용자별 변수 처리

아래는 사용자 별로 다른 값을 사용하는 변수입니다.

Variable name

Description

LocalAppData

 

Windows Vista 이상: %LOCALAPPDATA% (%USERPROFILE%\AppData\Local)

Windows XP, 2003: %USERPROFILE%\Local Settings\Application Data

LocalAppDataLow

Windows Vista 이상: %USERPROFILE%\AppData\LocalLow

Profile

 

Windows Vista 이상: %USERPROFILE% (%SystemDrive%\Users\%USERNAME%)

Windows XP, 2003: %USERPROFILE% (%SystemDrive%\Documents and

Settings\%USERNAME%)

RoamingAppData

 

Windows Vista 이상: %APPDATA% (%USERPROFILE%\AppData\Roaming)

Windows XP, 2003: %APPDATA% (%USERPROFILE%\Application Data)

SID

String-format SID (security identifier)

Temp

%Temp%

Ex) C:\Users\Username\AppData\Local\Temp