본문 바로가기
보안/보안공부

23년 실전형사이버훈련장 - 위협이벤트 식별훈련(4일차)

by 보안매크로 2023. 6. 22.
728x90

시그마 룰 개요

- YAML 문법을 이용하여 보안과 관련된 이벤트를 표현하기 위한 규칙의 집합

- 다양한 형식을 가진 로그에 적용하여 보안 관련 이벤트를 식별하는데 사용됨

- SIEM 벤더나 플랫폼마다 보안 이벤트 탐지에 사용되는 규칙이 호환되지 않는 문제는 해결하기 위해 등장

- 스노트 룰(네트워크 패킷) VS Yara 룰(파일) va 시그마 룰(SIEM,로그) 

스노트룰은 패킷대상, 야라룰은 파일대상, 시그마 룰은 심, 로그대상으로 위험을 식별할 수 있는 기능 제공

- 2017년 오픈 소스 프로젝트로 공개되어 현재는 산업 표준으로 자리매김하고 있음

 

시그마 룰 사용의 이점

- 벤더에 락인(lock-in)되는 것을 피할 수 있음 (제품을 한번사면 계속 사용하게 되는것을 피할 수 있음)

모든 장비들이 지원하는 룰이 될 것이다.

- 집단 지성의 활용 : 탐지 룰 공유

- 다양한 보안 솔루션/플랫폼이 혼재되어 있는 상황에서 단일화된 규칙을 활용할 수 있음

룰 자체도 오픈소스라서 서로 공유가 가능.

 

교재 받음 -

 

공백 표시할때 탭말고 스페이스바 2번이나 4번 해서 들여쓰기 하자.

 

key: value줄때는 category: process_creation 이런식으로 깔끔하게 써주자

 

vs code 사용해서 룰만들자.

YAML문법 사용하며, 파일 확장자는 .yml이다.

 

title: My First Sigma Rule #룰 제목
id: 4ed1390e-562e-40f3-8bda-6e9e8f789beb #id는 룰에 부여하는 id로, 각 룰이 중복되지 않도록 상호참조할 경우 유니크한 id를 부여, UUID 사용, uuid generator인터넷에서 검색해서 사용가능
author: Brian Kim (brian.kim@coresec.co.kr) #룰을 만든 사람
date: 2023/06/22 #룰만든 날짜 YYYY/MM/DD
description: any description about this rule comes here   #묘사, 안써도 된다. 순서대로 안써도 작성은 문제없음
status: experimental  #룰의 상태 ex) test, experimental(충분히 검증되지 않은, 오탐이 있을 수 있다.)
tag: attack-defense-evasion-T1197 #프로그램들이 지원한다면, 태그를 통해 구분 등 가능, 보통은 mitre attack에서 ID값(T1197)을 적어줌

logsource: #중요, 어떤 로그를 대상으로 조사를 할까요?
  product: windows #로그를 가져오는 제품군, OS지정
  service: sysmon # 해당 제품(Product)에서 구체적으로 어떤 것의 로그? 관련 툴이 개발되어 있어야 사용 가능
  #category: process_creation #카테고리에 입력한 곳에서 추가적인 로그들을 참조가능
  definition: comment #로그에 대한 설명, 로그 format에 대한 설명, 잘안씀, 코멘트 다는 용도로 보통 사용
   

detection:   #중요, 탐지 룰이다. 아래 3개를 기본 블록으로 작성한다. condition을 제외하고는 이름을 바꿔도 된다. selection, fliter 대신 다른 이름 사용가능
  selection:   #참이되어야 하는 조건, 규칙이 들어감
    EventID: 1 #Process Create (in Sysmon) 1번 ID불러옴.(1번 이벤트 ID 작성된 코드보면 어떤걸 탐지하고 그런 Event data 같은것들이 다 써있다.)
  filter:   #걸러내는 것, 부합되지 않아야하는 조건들을 필터에 넣어줌
    Image|endswith: '\notepad.exe' #이미지 필드가 \notepad.exe 값으로 끝나는 것은 거른다.
  condition: selection and not filter  #논리, 셀렉션과 필터를 조합해서 규칙을 완성하는 것. selection은 충족, filter은 not

#추가적인 정보
falsepositives: #어떤 경우에 오탐이 발생한다, 오탐이 발생하는 상황을 기술
  - unknown
level: medium  #심각한 수준의 기술 - low, medium, critical 등 쓰임

 

UUID

 

윈도우 터미널 깔아서 HAYABUSA 해보자.

cd 경로 - 내가 설치한 경로 접속, .\hayabusa.exe 하야부사 실행 .\이 실행하는 것

dir 하면 디렉토리에 있는 파일들 볼 수 있다.

hayabusa

하야부사 사용법, 커맨드 쓰게 되어있는데 <> 되어있는건 필수항목 []는 옵션명령어이다.

csv-timeline, json-timeline 을 주로 쓸것, csv형식, json형식이냐만 다르다.

.\hayabusa.exe help csv-timeline 해서 명령어 확인해보자. -f는 로그파일 불러오기, -r은 룰 읽기, -o는 파일 출력(만들기)

.\hayabusa.exe csv-timeline -f C:\Users\COMTREE\Downloads\Windows-Operational-Sysmon-PC3.evtx -r C:\Users\COMTREE\Downloads\new\TodayTest.yml -o C:\Users\COMTREE\Downloads\result\saved_att.csv 

입력해서 자동 저장됨. 그것을 타임스탬프 소프트웨어나 엑셀로나 텍스트파일로 해서 분석하면 된다.

 

 

gsb90A8.tmp가 고스트 스크립트 파일이다

 

문서나 파일을 더블클릭 했을때 연관 프로그램이 실행되면 파일의 경로를 커맨드라인 파라미터로 전달함.

문서를 바로 띄우면, MAU가 첨부파일을 임시폴더에 저장하고, 파일 편집기/뷰어를 실행해 파일을 오픈

발견되면 이제 적당한 도구들을 이용해서 정밀분석 실시.

 

공격자가 관리자권한으로 접근해 공유폴더에 악성폴더에 파일(tbjEA.exe) 올려두고 wmic를 이용해 실행시킴.

 

 

프로세스 생성 이벤트 또는 동작 중인 프로세스를 조사할 때 주안(중요한)점

1. 부모프로세스가 누구입니까? (리니지 분석)

 -일반적으로 윈도우 시스템 프로세스들은 부모프로세스가 정해져 있습니다.

 - 일반적인 사용자가 사용하는 대부분의 프로그램들은 부모프로세스가 explorer.exe가 부모프로세스   

 

2. 자식 프로세스는 무엇입니까? (리니지 분석 = 혈통분석)

 - LoLBins가 자식 프로세스인 경우 비정상일 가능성이 매우 높음

 - 논리적으로 이해되지 않는 부모 자식 관계

svchost.exe가 emd.exe를 생성 (정상? 비정상?) - 비정상

service.exe -> svchost.exe (비정상)

services.exe -> svchost.exe (정상)

hwp.exe -> certutil.exe (비정상)

mshta.exe -> powershell.exe (비정상) 파워쉘은 익스플로어 커맨드 터미널.exe 등에 의해 생성됨

 

 

   (정상)             (비정상)           (비정상)          (비정상)

svchost.exe svchosts.exe, scvhost.exe, scvh0st.exe,

services.exe(정상), service.exe(비정상), c:\windows\system32\explorer.exe(비정상, explorer은 windows밑에가 경로임)

lssas.exe(위장 한 것), d11host.exe, dllhosts.exe, dllhost.exe(정상),

csrss.exe(정상), crss.exe

이름을 교묘하게 위장해서 들어온다 조심하자.

 

3. 커맨드라인 파라미터

 - 커맨드라인 파라미터가 있어야 하는데 없는 경우

 - 커맨드라인 파라미터를 통해 알 수 있는 기능이나 의도가 악의적인 경우

예) svchost.exe가 실행되었음. 커맨드라인 파라미터가 없음 (비정상) - 파라미터 -k옵션이 무조건 있어야함.

svchost.exe는 윈도우 서비스 호스트이다. 서비스를 해주는 녀석이다. 윈도우는 두가지 형태의 서비스가 있다. exe, dll형식두가지로 구현되어 있음. exe는 services.exe가 관리함, svchost.exe는 dll형식의 바이너리들은 지정하고 불러옴. services.exe가 로드한 dll형식은 레지스트리에 등록되어 있고, -k옵션으로 그룹을 지정해둠, svchost.exe가 레지스트리에서 각 그룹에 속하는 dll를 로드함. svchost.exe는 그래서 반드시 -k옵션으로 실행되어 파라미터가 있어야함.

예) rundll32.exe가 실행되었음. 커맨드라인 파라미터가 없음 (dll호출하기 떄문에 반드시 뒤에 dll이름, 호출할 dll 함수이름 파라미터값이 있어야함)

예) rundll32.exe가 실행되었음. 커맨드라인 파라미터에 comsvcs.dll, #24가 포함되어 있음. comsvcs.dll , #24함수는 미니덤프이다.

 

4. 인스턴스의 수

 - 몇 개가 동시에 실행 중인가?

현재 시스템에서 실행 중인 프로세스 목록을 조사하다가 userinit.exe를 발견하였다. 정상인가? 비정상 0개여야함.

svchost.exe의 인스턴스가 7개입니다. (동시에 7개의 svchost.exe가 실행 중) 정상인가? 시스템 환경마다 다다름

svchost.exe의 인스턴스가 20개입니다. 정상인가요? 정상

userinit.exe는 사용자 로그인 하고나서 초기화하는 놈임, 로그인하고 바로 꺼짐

 

5. 요약정보가 없는 바이너리들은 일단 의심

큰회사에서 만든 프로그램들은 요약정보가 다 있다. 

 

6. 코드서명이 없거나 검증이 안되는 바이너리들

 

7. 인터널내임과 파일이름이 상이한 경우

원본파일이름(속성에서 확인가능)과 실제 표시되는 이름이 같아야함. 다르다면 의도적으로 이름을 바꾼 것.

 

 

후킹 - 테이블에 접근해 함수 또는 코드들이 적혀있는 테이블의 값들을 조작하는 것

기존 메모리값 저장해서 후킹의심됫을때 비교해보며 검사.

 

SST(코드, 함수를 담는 table)

EAT

 

 

 

# 스피어피싱 관련 파일 종류
# 실행파일: exe, scr, msi(ms 설치파일), cpl(제어판 실행파일), jar(자바 실행파일)

 

# - 그대로 이메일에 첨부하기 어렵다. 이메일 서버들이 보안적으로 첨부하지 못하게 함

 

# 확장자 탐지 피하기 위해 압축파일 형태로 보냄
# - zip - zip 헤더에 파일 목록이 저장되어 있음, 보안 솔루션들이 zip 파일의 헤더를 조사하여 압축파일에 포함되어 있는 파일의 이름을 확인 -> 실행 가능한 확장자를 가진 파일이 존재하면 전송 차단
#   zip을 쓰고싶다면 실행 파일의 확장자를 변경/위장하고 사용자로 하여금 확장자를 변경하도록 유도(예: exe를 _xe로 변경)
 실행 파일의 확장자를 위조,
예) space after file name - ppp.jpg                                                                                                                              .scr
scr파일인데 우리 화면에는 공백이 너무 많아 다 표시하지 못해서, .jpg파일로 위장함
예) RtLO/RLO (Right to Left Override)
    resume.rcs.pdf
RLO라는 특수 유니코드가 포함되어 있으면 컴퓨터는 거기서부터 거꾸로 (오른쪽에서 왼쪽방향으로 글자순서를 지정) 디스플레이 해줌, 실제 파일이름 : resume.%u202ffdp.scr 이다. pdf로 위장, 실행파일이니 아이콘도 pdf로 바꿔 위장가능

 

# - rar, 7zip

문서파일

  HWP - 익스플로잇 형태, 매크로를 포함, 고스트 스크립트(확장자가 eps, ps면 여기에 고스트 스크립트 들어있음)를 포함, 객체 임베딩

한글이 임시디렉토리로 고스트스크립트를 덤프해주면 그경로를 알려주면 고스트스크립트 실행.

  MS-Office - 익스플로잇, 매크로, DDE 커맨드, 객체 임베딩

  PDF - OpenAction, AA, Launch 와 같은 명령어, 자바스크립트, SWF 파일 등을 임베딩

  LNK(윈도우 바로가기)

 

Zone.Identifier 붙으면 ADS가 있다. 외부에서 파일 다운 받은것 (크롬 등)

파일뒤에 $$$붙으면 한글이 문서를 열 때 확장자 hwp대신 임시파일 생성, 닫으면 지워짐. 만약 $$$가 남아있으면 파일을 열다가 한글이 비정상 종료된것임. 실패한 익스플로잇, 공격 가능성이 없지않아 있다.

실행파일이 실행파일을 만들면 공격일 가능성이 있다. 덤프하거나 파일을 다운받은것

certutil.exe이 파일을 다운받는 기능임. LOL 의심

 

 

 

 

Windows-Operational-Sysmon-PC3.evtx
10.07MB

실제 해킹당한 로그파일

728x90