
휘발성 메모리 덤프에서 법의학적 타임라인을 자동으로 추출
자동으로 휘발성 메모리 덤프에서 포렌식 타임라인을 추출합니다.
AutoTimeliner는 Windows, Linux 및 macOS 메모리 이미지에 대해 여러 Volatility3 플러그인을 실행한 후, 그 출력을 하나의 정렬된 CSV 타임라인으로 병합합니다:
| 플러그인 | 캡처 내용 |
|---|---|
timeliner | 크로스 플러그인 타임스탬프 이벤트 (지원되는 모든 OS 계열) |
| 플러그인 | 캡처 내용 |
|---|---|
timeliner | 프로세스, 레지스트리, 핸들 등의 타임스탬프 |
mftscan | 메모리에서 발견된 MFT 파일 항목 |
shellbags | 레지스트리 하이브에서 사용자 폴더 접근 기록 |
| 플러그인 | 캡처 내용 |
|---|---|
linux.pslist | 프로세스 시작/종료 타임라인 컨텍스트 |
linux.bash | 셸 명령어 히스토리 증거 |
linux.lsof | 프로세스의 열린 파일 증거 |
| 플러그인 | 캡처 내용 |
|---|---|
mac.pslist | 프로세스 시작/종료 타임라인 컨텍스트 |
mac.bash | 셸 명령어 히스토리 증거 |
mac.lsof | 프로세스의 열린 파일 증거 |
| 플러그인 | 캡처 내용 |
|---|---|
psscan | 활성, 종료 및 숨겨진 프로세스 (타임스탬프 포함) |
cmdline | 각 프로세스의 명령줄 인자 |
userassist | Windows 레지스트리에서 프로그램 실행 증거 |
| 플러그인 | 캡처 내용 |
|---|---|
netscan | 생성 타임스탬프가 포함된 네트워크 연결 |
| 플러그인 | 캡처 내용 |
|---|---|
malfind | 코드 인젝션 및 의심스러운 메모리 영역 |
svcscan | Windows 서비스 (지속성 탐지에 유용) |
| 플러그인 | 캡처 내용 |
|---|---|
dlllist | 각 프로세스가 로드한 DLL |
filescan | 수집 시 메모리에 열려 있는 파일 |
handles | 열린 핸들 (파일, 레지스트리 키, 뮤텍스) |
AutoTimeliner는 메모리 이미지 계열을 자동으로 식별하며 Windows, Linux 또는 macOS에 적합한 플러그인 세트를 활성화합니다. 더 빠른 시작을 위해
--os-hint를 전달하여 자동 감지를 건너뛸 수 있습니다.
git clone https://github.com/andreafortuna/autotimeliner.git
cd autotimeliner
poetry install
pip install .
autotimeliner -f IMAGEFILE [-t TIMEFRAME] [-o OUTPUT] [options]
단일 이미지에서 전체 타임라인 추출:
autotimeliner -f TargetServer.raw
특정 시간 창으로 필터링:
autotimeliner -f TargetServer.raw -t 2023-10-17..2023-10-21
디렉토리 내 모든 .raw 파일 처리, 출력 경로 지정:
autotimeliner -f './*.raw' -o /evidence/timeline.csv
덤프 OS를 이미 알고 있을 때 시작 속도 향상:
autotimeliner -f TargetServer.raw --os-hint windows
편의를 위해 macOS 별칭 값 사용:
autotimeliner -f MacbookCapture.mem --os-hint darwin
timeliner와 shellbags만 실행 (MFT 검사 건너뛰기):
autotimeliner -f TargetServer.raw --skip-mftscan
전체 포렌식 검사 (Windows 플러그인 세트 + 선택적 확장 플러그인):
autotimeliner -f TargetServer.raw --with-dlllist --with-filescan --with-handles --with-envars
빠른 악성코드 중심 검사:
autotimeliner -f TargetServer.raw --skip-timeliner --skip-mftscan --skip-shellbags
Linux 중심 타임라인 수집 (자동으로 linux 플러그인 활성화):
autotimeliner -f UbuntuWorkstation.mem
macOS 중심 타임라인 수집 (자동으로 macOS 플러그인 활성화):
autotimeliner -f MacbookCapture.mem
출력 CSV에는 다음 열이 있습니다:
AutoTimeliner는 식별 시간을 줄이기 위해 여러 최적화를 포함합니다:
--os-hint는 자동 OS 프로빙을 완전히 우회합니다.linux, ubuntu, macos)를 사용하여 최적화됩니다.path + size + mtime)별로 캐시됩니다.캐시 파일:
~/.cache/autotimeliner/volatility3/.autotimeliner_profile_cache.json
탐지 중 로그에는 다음과 같은 프로브 진행 상황 및 결과 메시지가 포함됩니다:
OS probe attempt: family=windows plugin=windows.info.Info
OS probe returned no rows: windows.info.Info
Memory image identification succeeded: os=linux profile=linux:... probe=linux.banners.Banners
전체 비교는 docs/migration.md에서 확인하세요.
주요 변경 사항:
-p / --customprofile는 더 이상 사용되지 않음 — 자동으로 무시됩니다.mftparser → mftscan — 동일한 데이터, 새로운 플러그인 이름.mactime은 이제 선택 사항 — 예전 바디 파일 워크플로우에는 --use-mactime을 사용하세요.poetry install
poetry run pytest
MIT — LICENSE 참조.
Andrea Fortuna — [email protected] — andreafortuna.org
envars | 프로세스의 환경 변수 |
| 의존성 | 버전 | 비고 |
|---|
| Python | ≥ 3.9 | |
| Volatility3 | ≥ 2.5 | Poetry/pip를 통해 자동 설치됨 |
| jsonschema | ≥ 4.0 | Volatility3 스키마 검증을 활성화하고 Dependency for validation unavailable: jsonschema 경고를 방지합니다 |
| mactime | any | 선택 사항 — --use-mactime 레거시 모드에만 필요 |
| 플래그 | 설명 |
|---|
-f, --imagefile | 메모리 덤프 파일 또는 글로브 (예: '*.raw') |
-t, --timeframe | YYYY-MM-DD..YYYY-MM-DD 범위로 필터링 |
-o, --output | 출력 CSV 경로 (기본값: <imagefile>-timeline.csv) |
--os-hint | 이미지 OS 계열 강제 지정 (windows, linux, mac; 별칭: win, macos, darwin) 및 자동 식별 건너뛰기 |
--skip-timeliner | timeliner 플러그인 건너뛰기 |
--skip-mftscan | mftscan 플러그인 건너뛰기 |
--skip-shellbags | shellbags 플러그인 건너뛰기 |
--skip-psscan | 프로세스 검사 건너뛰기 |
--skip-cmdline | 명령줄 추출 건너뛰기 |
--skip-netscan | 네트워크 연결 검사 건너뛰기 |
--skip-userassist | 프로그램 실행 증거 건너뛰기 |
--skip-svcscan | Windows 서비스 검사 건너뛰기 |
--skip-malfind | 악성코드/인젝션 탐지 건너뛰기 |
--with-dlllist | DLL 분석 활성화 (느림) |
--with-filescan | 열린 파일 검사 활성화 (레코드 많음) |
--with-handles | 핸들 검사 활성화 (레코드 많음) |
--with-envars | 환경 변수 추출 활성화 |
--use-mactime | 레거시 모드: 외부 mactime 바이너리 사용 |
-v, --verbose | 디버그 로깅 활성화 |
--version | 버전 출력 후 종료 |
| 열 | 설명 |
|---|
| 타임스탬프 (UTC) | ISO 8601 UTC 타임스탬프 |
| 출처 | 레코드를 생성한 플러그인 |
| 설명 | 파일 이름, 경로, 프로세스 또는 레지스트리 키 |
| 세부 정보 | 타임스탬프 유형, 사용자 또는 추가 컨텍스트 |
| Inode | MFT inode 번호 (해당하는 경우) |
| UID / GID | 사용자/그룹 식별자 |
| 크기 | 파일 크기 (바이트) |
| 모드 | 파일 모드 문자열 |