본문 바로가기
포렌식

(KISA) 강의 1

by sonysame 2024. 4. 18.

+ 침해사고 조사 및 대응 절차 {
1. 침해사고 아티팩트/로그 수집 (Acquisition)
침해사고 조사분석에 필요한 각종 로그, 설정파일, 디지털 자료들을 피해 시스템에서 확보하는 단계
2. 정보추출 (Extraction)
확보한 디지털 증거들을 분석이 가능한 형태로 가공하고 필요한 내용을 추출하는 단계
3. 분석/해석 (Interpretation)
가공된 정보를 바탕으로 이상징후를 판별하고 분석하는 단계
}

+ 실습. 침해사고 아티팩스 수집 (Aquisition) {
E:\LAB\
process\
# 프로세스의 이상징후 분석에 필요
# E:\DFIR\Sysinternals Suite\procexp.exe(관리자모드) 도구의 "file->save as" 기능을 이용하여 확보
# E:\LAB\S0\process> tasklist /SVC > tasklist_svc.txt
# E:\LAB\S0\process> listdlls > listdlls.txt
# E:\LAB\S0\process> listdlls -u > listdlls_unsignedpe.txt
eventlogs\
# 피해 시스템의 로그인, 외장매체 연결, 서비스 등록/실행, SMB 서비스 구동 등의 이상징후 분석에 필요
# forecopy_handy.exe -e .\
mft\
# 피해 시스템의 파일 은닉, 타임라인 분석에 필요
# E:\LAB\S0\forecopy_handy.exe -m .\
prefetch\
# 피해 시스템의 프로그램 실행 흔적 및 최초 실행시간을 분석하는데 필요
# E:\LAB\S0\forecopy_handy.exe -p .\
suspiciousfile\
# 아직은 의심스러운 파일을 알 수 없으므로 비워둠
memorydump\
# 비워둠
browser\
# 사용자의 브라우저 사용 흔적을 분석하는데 필요 (Drive-by compromise 교차 분석 등)
# E:\LAB\S0\forecopy_handy.exe -x .\
# E:\LAB\S0\forecopy_handy.exe -c .\
persistence\
# 공격자에 의해 등록된 악성 스크립트, 악성 실행파일, LoL Binary 분석에 필요함
# E:\DFIR\Sysinternals Suite\autoruns.exe(관리자모드) 도구의 "file->save" 기능을 이용하여 확보
registry\
# E:\LAB\S0\forecopy_handy.exe -g .\
}


+ 실습. 침해사고 아티팩트 내에서 정보추출하기 - 메모리덤프 정보 추출 {
Step1. E:\Lab\DFIR\volatility25.exe 파일을 복사하여 E:\Lab\SCENARIO\Scenario#1\~~\Memory 폴더로 복사 합니다.
Step2. E:\Lab\SCENARIO\Scenario#1\~~\Memory 폴더에서 다음과 같은 스크립트를 만듭니다.
------- extract.bat ---------------------------------------------------------------------
volatility25.exe -f memory.raw --profile=Win7SP1x86 pslist > pslist.txt
volatility25.exe -f memory.raw --profile=Win7SP1x86 netscan > netscan.txt
volatility25.exe -f memory.raw --profile=Win7SP1x86 dlllist > dlllist.txt
volatility25.exe -f memory.raw --profile=Win7SP1x86 pstree > pstree.txt
-----------------------------------------------------------------------------------------
# 해당폴더에는 volatility25.exe, memory.raw, extract.bat 파일 3개가 존재하게 됩니다.
Step3. extract.bat 스크립트를 실행 합니다.
Step4. 시나리오#2~#4 까지 해당 작업을 수행해 주세요.
}


+ 침해사고 조사 - 프로세스 이상징후 식별 방법 (Interpretation) {
1. 경로정보 및 파라미터 분석
일반적으로 실행되는 경로가 아닌 경우를 찾는가. 이하 경로가 아닌 곳에서 실행되는 파일 찾으세요.
C:\Windows, C:\Windows\System32, C:\Program Files, C:\Program Files(x86)

명령어-> E:\~> type listdlls.txt | findstr /I "command line" | findstr /I /V "windows" | findstr /I /V "program"

 

* 이하는 이상징후를 가진 EXE 확인

E:\Artifacts\process> type listdlls.txt | findstr /I "command line"
E.G. C:\Users\user\AppData\Local\Temp\svchost.exe

* 이하는 이상징후를 가진 DLL 확인
E:\Artifacts\process> type listdlls.txt | findstr /I /V "program file" | findstr /I /V "windows"

서비스를 책임지는 호스트 프로세스는 파라미터를 가진다.
E:\Artifacts\process> type listdlls.txt | findstr /I "command line" | findstr "svchost"
파워쉘 스크립트의 파라미터를 확인한다. 스크립트의 경로가 일반적인가?
C:\Windows\temp\WindowsDefender.ps1 (X)
C:\Users\user\AppData\Local\Temp\Policy.ps1 (X)

 

Q. 서비스를 책임지는 호스트 프로세스의 경로가 이상하거나 파라미터가 일반적이지 않은가?
E.G) C:\Users\user\AppData\Local\Temp\svchost.exe (X) // 경로문제
E.G) C:\Windows\System32\svchost.exe (X) // 파라미터 문제

명령어-> E:\~> type dlllist.txt | findstr /I "command line" | findstr "svchost"

 


2. 리니지 분석
부모자식 관계가 일반적이지 않은 경우를 찾으세요.
services - svchost.exe (O)
explorer.exe - cmd.exe (O)
cmd.exe - powershell.exe (O)

explorer.exe - powershell.exe (O)

word.exe - cmd.exe - powershell.exe (X)
explorer.exe - svchost.exe (X)

3. 서명정보 분석
4. 프로세스의 네트워크 연결정보 분석 
로컬 및 원격 포트가 Ephemeral Port(임시포트) 인가?
}




+ 침해사고 조사 - 퍼시스턴스(Persistence) 조사 {
1. 경로정보가 일반적이지 않은가?
C:\Windows, C:\Windows\System32, C:\Program Files, C:\Program Files(x86)
2. LOL Binary가 보이는가?
powershell.exe, wscript.exe, rundll32.exe, certutil.exe, mshta.exe, bitsadmin.exe, cmd.exe,
regsvr32.exe, mshtc.exe, .... ("LOL Binary" 검색 -> "LOL Bas")

"https://lolbas-project.github.io" 사이트 참조

 

+ 이론. LOL(Living off the Land) {
사전적 정의: "자급자족", "현지에서 조달 가능한 자원을 이용한 생존"
보안에서의 정의: "공격대상 운영체제에 기본적으로 설치되어 있는 파일을 이용한 공격 전개"
배경: "공격자가 만든 악성 실행파일(EXE, DLL)을 업로드 혹은 실행하면 보안체계에 탐지됨"
해결방안: "기본 설치된 도구들을 이용해서 업로드, 다운로드, 정보수집, 실행, 은닉, 설치 등을 하면 어떨까?"

+ LOL(Living off The Land) {
- 자급자족
- 현지에서 조달가능한 자원을 이용한 생활
- 배경: 
공격대상 네트워크 혹은 단말에 설치된 AV로 인한 파일(실행파일)업로드 및 실행이 어려워짐.
기본 설치된 유틸리티를 이용하여 공격하면 되지 않을까?
그리고 파일을 생성하지 않고 메모리에만 로딩하여 실행하면 되지 않을까?

- LOL Binaries(Bins) + Memory Only Attack 
}


LOL Binary : 운영체제 기본 설치된 바이너리(실행파일)을 말함.
}

3. 실행파일의 경우 버전정보, 서명 정보에 문제가 있는가?

개발자에 의해 빌드될 때 PE파일 내에 일반적으로 담기게 되는 버전/서명 데이터의 누락, 이상유무를 식별하는 접근방법
}



+ 침해사고 조사 - 프로그램의 실행흔적 분석 (Prefetch) {
- 피해가 발생한 시스템의 Prefetch 파일 생성시간 - 10초
- 가급적 시간정보 조작에서 자유롭기 위해 $MFT의 $FILE_NAME 속성에 있는 생성 시간을 확인
}



+ NTFS의 메타파일 {
- NTFS는 마지막 수정, 생성, 접근, 엔트리 수정 시간을 관리한다.
- NTFS의 ADS는 인터넷에서 다운로드 받은 파일을 추적할 때 사용할 수 있다.
}

+ 침해사고 조사 - 타임라인 조사 {
Q. 메타 파일을 직접 파싱해서 분석해야 하는 이유?
A. 시간의 조작으로 인한 분석방해 요인 최소화, 시간정보 조작 흔적 추적, 은닉 흔적 추적

Q. 왜 "$FILE_NAME" 속성의 생성 시간을 보아야 하는가?
A. API를 이용하여 직접 수정하는 것이 어려움
}



+ MITRE ATT&CK 모델 {
NIST
MITRE
CVE
ATT&CK : 공격자 그룹이 사용하는 전술, 기술 등을 인덱싱하고 관리하기 위한 지식베이스
TTP(Tactic, Technique, Procedure)
[Tactic] [Technique]
Initial Access T0000. Spear Phishing Attachment
T0000. Supply-Chain Attack
T0000. Drive-By Compromise
...
Privilege Escalation T0000. Process Injection
T0000. Exploitation
...
Persistence(제어지속) T0000. Auto Startup Entrypoint
"Run", "RunOnce" KEY

Credential Access T0000. Memory Access

}




+ 윈도우의 레지스트리와 하이브 {
KEY : "폴더" 정도로 이해하면 됨
VALUE : "파일" 정도로 이해하면 됨
VALUE DATA : "파일 내에 있는 데이터" 정도로 이해하면 됨

5개의 ROOT KEY (Master key-HIVE파일있음, Derived key-HIVE파일없음)
M HKEY_LOCAL_MACHINE : 시스템 전체에 대한 환경설정 정보가 담겨 있음
C:\Windows\System32\config\
SAM, SECURITY, SYSTEM, HARDWARE ...   <-- HIVE 파일
M HKEY_USERS : 시스템에 있는 모든 사용자와 관련된 정보가 담겨 있음
C:\Users\사용자계정명#1\NTUSER.DAT 
C:\Users\사용자계정명#2\NTUSER.DAT 
C:\Users\사용자계정명#N\NTUSER.DAT
D HKEY_CURRENT_USER : 현재 로그인한 사용자와 관련된 정보가 담겨 있음
D HKEY_CLASS_ROOT : 운영체제에서 확장자를 실행할 프로그램을 지정함
D HKEY_CURRENT_CONFIG
}


+ 윈도우의 레지스트리와 하이브 {
KEY : "폴더" 정도로 이해하면 됩니다.
VALUE : "파일" 정도로 이해하면 됩니다.
VALUE DATA : "파일 내에 있는 데이터" 정도로 이해하면 됩니다.

5개의 루트 키가가 핵심 (Master key, Derived key 개념을 이해해야 함)
M HKEY_LOCAL_MACHINE : 시스템 전체에 대한 환경설정 정보가 담겨 있음
M HKEY_USERS : 시스템에 있는 모든 사용자와 관련된 정보가 담겨 있음

}

'포렌식' 카테고리의 다른 글

(KISA) 필기  (0) 2024.04.18
(KISA) 실습 1  (0) 2024.04.18