728x90
반응형
SSD TRIM 지연처리
Property: Inprogress
SSD Trim 분석보고서
❑ 개요
- SSD TRIM기능의 지연처리에 관련된 가설에 대한 실험 내용임.
TRIM기능도 운영체제에서 처리해야할 작업의 일부이므로, 랜섬웨어의 경우 대량의 파일을 읽고, 수정(쓰기)해야하므로, 해당 작업도중 TRIM 작업이 추가될 경우, 작업이 지연처리되므로 해당 시간차동안 원본 데이터가 남아 있을 수 있다는 가설에 대한 실험 내용임.
❑ 실험 사양
- OS : Windows 10 Edu x64 build 19042
- CPU : AMD Ryzen 7 3700x
- SSD : Samsung SSD 860 Evo 250GB
- Controller : Samsung MJX Controller
❑ 실험 내용
- SSD가 풀로 사용중이다가 모든 파일이 지워졌을 경우, 시스템의 경우에는 100%비어있다고 판단하지만, SSD Controller의 경우 LBA를 알지 못하므로 여전히 사용중이라고 판단
- 따라서 GC가 작동하여 삭제된 파일과 연관된 블록을 지우는데, 이때 우선순위를 두지 않기에 지연처리가 발생
- 를 해결하기 위한 기술이 Trim인데, 해당 LBA 공간이 필요치 않다는 명령을 SSD Controller에 전송하여 추후 GC가 해당 블록을 지울 때 빠르게 삭제할 수 있도록 도와준다.
그러므로, 랜섬웨어의 경우에는 다량의 파일이 수정, 생성, 삭제되는 경우가 많으므로, 실제로 해당 시간동안 GC가 작동하지 못할 상황이 크다고 판단되며, 삭제가 진행되더라도 실제 컨트롤러에서는 파일을 삭제하지못해 원본파일이 존재할 수 있다고 판단함
- SSD Trim 지원여부 확인
- File Create.py
import os
import random
import time
def gen_rnd_file(filename, linecount):
nouns = ("puppy", "car", "rabbit", "girl", "monkey")
verbs = ("runs", "hits", "jumps", "drives", "barfs")
adv = ("crazily.", "dutifully.", "foolishly.", "merrily.", "occasionally.")
adj = ("adorable", "clueless", "dirty", "odd", "stupid")
all = [nouns, verbs, adj, adv]
with open(filename,'w') as f:
for i in range(linecount):
f.writelines([' '.join([random.choice(i) for i in all]),'\n'])
pass
if __name__ == '__main__':
cnt = 0
while(True):
gen_rnd_file("test_" + str(cnt) + ".txt",random.randrange(3000, 10000))
time.sleep(0.3)
cnt += 1
세부내용 확인
https://www.notion.so/SSD-TRIM-0c55a39a4de64cfdbf4f28452915af9f
728x90
반응형
'공부 > Forensic' 카테고리의 다른 글
MS-SQL 대상 공격 방식 중 하나인 CLR Assembly(Shell) 공격 : MS-SQL Attacks via the CLR as an alternative to xp_cmdshell (0) | 2023.04.11 |
---|---|
디지털 포렌식의 일반원칙(디지털 포렌식 5원칙) (0) | 2021.02.19 |
Digital Forensic / Incident Response (0) | 2021.01.21 |
OSINT(오신트) - Open Source INTelligence란? (0) | 2021.01.17 |
What is digital forensics? (0) | 2020.07.11 |