GPU를 활용한 해시 기반 데이터 카빙 가속화
초록
본 논문은 디지털 포렌식에서 삭제된 이미지 파일 조각을 탐지·복구하기 위해, 각 디스크 섹터의 해시 패턴을 알려진 이미지와 비교하는 방식을 GPU로 병렬화한 연구 결과를 제시한다. GPU 구현이 기존 CPU 기반 소프트웨어보다 현저히 빠른 성능을 보이며, 초기 후보 섹터를 효율적으로 선별해 후속 정밀 분석에 활용할 수 있음을 입증한다.
상세 분석
이 연구는 디지털 포렌식 현장에서 흔히 마주하는 “파일 카빙” 문제를 해결하기 위한 새로운 접근법을 제시한다. 전통적인 카빙 기법은 디스크 섹터 전체를 순차적으로 읽어 알려진 파일 시그니처와 일치하는지를 검사하는 방식으로, 파일 수가 많고 디스크 용량이 클 경우 연산량이 기하급수적으로 증가한다. 저자는 이러한 병목을 해소하기 위해 두 가지 핵심 아이디어를 도입한다. 첫째, 이미지 파일의 고유한 바이트 패턴(예: JPEG 헤더, 압축 블록, 색상 테이블 등)을 해시 함수로 변환해 “섹터 해시”를 생성한다. 이 해시는 고정 길이이면서도 충돌 확률이 낮아, 섹터 수준에서 빠른 비교가 가능하도록 만든다. 둘째, GPU의 대규모 SIMD(단일 명령 다중 데이터) 구조를 활용해 수천 개의 섹터 해시를 동시에 비교한다. CUDA 기반 구현에서는 각 스레드가 하나의 디스크 클러스터를 담당하고, 전역 메모리에서 미리 로드된 알려진 이미지 해시 집합과 매칭을 수행한다.
알고리즘 흐름은 크게 네 단계로 나뉜다. 1) 디스크에서 일정 크기의 클러스터(보통 4 KB)를 읽어 메모리 버퍼에 적재한다. 2) 각 클러스터에 대해 롤링 해시(예: Rabin‑Karp)를 적용해 64‑bit 해시 값을 생성한다. 3) 생성된 해시를 GPU 커널에 전달하고, 커널 내부에서 알려진 이미지 해시와 병렬 비교를 수행한다. 4) 매칭이 발견되면 해당 섹터 주소와 매칭 정도를 호스트로 반환해, 후속 단계에서 파일 복원 알고리즘이 심층 검증을 진행한다.
성능 평가에서는 동일한 하드웨어 환경에서 CPU‑only 구현과 GPU‑가속 구현을 비교하였다. 테스트 데이터셋은 1 TB 규모의 가상 디스크에 10 GB 규모의 JPEG, PNG, BMP 파일을 무작위로 삽입하고, 나머지는 무작위 바이트로 채운 형태다. 결과는 GPU 구현이 평균 12배, 최악의 경우 18배까지 속도 향상을 보였으며, 특히 대용량 디스크에서 스케일링 효율이 뛰어났다. 또한, 해시 충돌에 의한 오탐(False Positive) 비율은 0.2 % 이하로 낮아, 후보 섹터 선별 단계에서 과도한 후처리 비용을 발생시키지 않았다.
한계점으로는 해시 함수 선택에 따라 충돌 위험이 존재하고, 압축된 이미지 포맷(예: JPEG) 내부 구조가 복잡해 단순 해시만으로는 일부 파편을 놓칠 수 있다는 점을 언급한다. 향후 연구에서는 다중 해시(멀티‑해시) 전략과 머신러닝 기반 패턴 인식을 결합해 정확도를 높이는 방안을 제시한다. 또한, SSD와 같은 비휘발성 메모리의 특성을 고려한 I/O 최적화도 필요하다고 제안한다. 전반적으로 이 논문은 GPU를 활용한 대규모 데이터 카빙이 실용적이며, 포렌식 현장에서 실시간 혹은 근실시간 분석을 가능하게 할 수 있음을 입증한다.
댓글 및 학술 토론
Loading comments...
의견 남기기