배경(Problem)
아티팩트란?
디지털 환경에서 발견된 정보의 단편적인 조각이나 흔적을 가리키는 용어
(ex. 파일 생성 및 수정 내역, 인터넷 브라우징 기록, 시스템, 애플리케이션, 보안 로그 등)
개발 배경
사이버 침해 사고 발생 시, 빠른 초동 대응을 통해 정확한 증거를 수집하고 피해를 최소화하고자 함
사건의 증거가 되는 아티팩트에 대한 신속하고 정확한 수집 능력 요구
늘어나는 사이버 침해 사고 신고 건수에 비해 부족한 보안 전문가의 수
침해 사고 대응 과정에 대한 자동화 필요
서비스 소개(Solution)
포렌식 아티팩트 자동 수집 시스템
자동 수집 및 다양한 운영체제 버전 제공
무결성을 위해 원본 파일의 내용과 메타 데이터 등이 변경되지 않도록 함
사용 방법
프로그램 실행 화면
분석을 진행할 분석 대상 환경에 맞는 프로그램 사용(Windows 7, 8, 10, 11 버전 지원)
프로그램 실행 후 분석관, 분석 대상, 옵션 등을 입력하여 원하는 아티팩트 수집 가능
데모 영상
프로그램 실행 시, 생성되는 폴더 구조
프로그램 실행 시, 생성되는 폴더 구조
더 자세한 설치 및 사용 방법은 아래 Github 링크를 참고해주세요!
Github 링크
프로그램 실행 시, 생성되는 폴더 구조
프로그램 실행 시, 생성되는 폴더 구조
프로그램 실행 시, 생성되는 폴더 구조
아키텍처 및 핵심 기능
전체 아키텍처 및 실행 흐름
수집 결과물 구조
‘summary.txt’이름의 타겟 시스템의 정보 요약 파일
수집 아티팩트별 폴더
아티팩트별 폴더 내 ‘summary.txt’이름의 수집된 아티팩트들의 정보 요약 파일
핵심 기능
Windows 기반의 6가지 아티팩트 수집
시스템 정보 수집
레지스트리 수집
이벤트 로그 수집
브라우저 기록(Chrome, Firefox, Edge, IE, Whale) 수집
삭제된 파일 정보(휴지통) 수집
확장자 기반의 파일 탐색 및 수집
수집 예시 (시스템 정보 수집)
수집 예시 (레지스트리)
수집된 항목과 이에 대한 summary 파일
수집된 레지스트리 파일에 대한 summary.txt
수집 예시 (확장자 기반 파일 수집)
수집된 txt 파일
수집된 txt 파일에 대한 summary.txt
다양한 Windows OS에 대한 무설치 실행 파일 지원
Windows 7
Windows 8
Windows 10
Windows 11
활용 라이브러리 및 개발 환경
개발 및 지원 환경
Windows 7 / Windows 8 / Windows 10 / Windows 11
Windows 운영체제에 대한 여러 버전을 지원하여, 환경에 구애받지 않고 사용 가능하도록 함.
사용 언어 및 라이브러리
Python 2 / Python 3
짧은 프로젝트 기간 내에 빠르게 프로그램을 개발하기 위해 선택한 언어.
Python 3 버전을 지원하지 않는 운영체제를 지원하고자 Python 2 버전을 함께 사용.
PyInstaller
별도의 설치 없이 실행 파일 형태만으로 프로그램을 구동할 수 있도록 배포하기 위해 사용.
RawCopy
시스템에서 사용 중인 파일을 수집하기 위해 저수준 파일 복사 프로그램을 함께 사용.
DevOps
Github
각 아티팩트에 대한 수집 기능을 모듈화하여 개발 진행.
개발된 각 모듈 및 메인 프로그램에 대한 소스 코드를 놓치지 않고 관리할 수 있도록 하기 위해 코드 관리 및 이슈 체크 시 활용.
트러블 슈팅
1. 배포
문제 상황
무결성 유지를 위해 별도의 설치 없이 실행 가능한 형태로 배포 필요
여러 Windows OS 버전을 지원할 수 있어야 함
•
지원 대상 OS: Windows 7 / Windows 8 / Windows 10 / Windows 11
해결 방안
Windows 마다 지원하는 Python - Library 버전이 모두 상이하여 사용하고자 하는 언어와 라이브러리의 경우의 수를 모두 정리하고, 각 OS별 알맞은 Python 및 배포 라이브러리 버전을 사용하여 배포함
테스트 표 [파이썬]
테스트 표 [배포 라이브러리]
최종 배포 버전 결정
2. 시스템 파일 수집
문제 상황 1
수집 대상 아티팩트 중 대부분의 파일은 시스템에서 사용 중인 파일로, 일반적인 접근이 불가능함
•
대상 아티팩트: 레지스트리 hive 파일, 이벤트 로그 파일, 휴지통 내 삭제된 파일
해결 방안 1
저수준 파일 복사 프로그램인 RawCopy를 사용하여 시스템 파일에 대한 수집도 가능하게 함
•
RawCopy: https://github.com/jschicht/RawCopy
문제 상황 2
수집된 파일의 MAC time 중 Create time은 시스템 수준에서 관리하는 항목으로,
수집된 결과물이 생성된 시각으로 설정되어 원본과 동일한 값으로 유지하기 어려움
해결 방안 2
수집된 파일 자체의 MAC time이 보존되지 않는 것을 보완하기 위한 방안으로,
수집 전 별도의 summary 파일에 원본 파일에 대한 MAC time을 기록함
분석관은 수집된 아티팩트에 대한 summary 파일을 통해 원본 파일의 MAC time 확인 가능
더 많은 트러블슈팅 과정과 프로젝트 상세 진행 내용은 아래 보고서 링크를 참고해주세요!
보고서 링크
팀 소개
팀 소개 : 말하는 감자에서 잘 익은 감자로 No Sibal Keep Going 중인 감자들입니다.
•
최유라 | 팀장 | 아티팩트 수집 메커니즘 분석 및 개발 (System Information, Registry, Event Log, Browser History)
dbfk1207@gmail.com
◦
어쩌다 보니 팀장이 되어 잘 익은 왕감자가 되기 위해 열심히 구르고 있는 감자입니다.
주로 분석 파트를 도맡아 했고, 분석 결과를 토대로 필요 기능들을 개발했습니다.
◦
구름톤을 통해 다양한 주제의 프로젝트와 협업 경험을 얻어갈 수 있어서 힘들면서도 재밌는 시간이었습니다!
•
김은주 | 팀원 | Artifact 수집 시스템 개발 및 배포 방식 연구
silver_liq9118@naver.com
◦
감자들 중 제일 낡고 작은 감자를 담당하고 있어요.. 🫠
주로 개발 파트를 맡았으며, 메인 프로그램 개발, 모듈 통합 및 개발, ELK 환경 구축을 진행했습니다.
◦
구름톤을 통해 보안 개발자로서의 역량을 구체화하고 나만의 무기를 만들어갑니다.
3명 뿐이지만 3명이라서 다행이었습니다
•
유은선 | 팀원 | 아티팩트 수집 메커니즘 분석 및 개발 (Recycle Bin, Extension File)
54ryues@gmail.com
◦
멋진 팀원들 사이에서 배우며 잘 익은 감자가 되기 위해 노력한 감자 팀원입니다.
분석과 이를 토대로 기능을 개발하는 역할을 맡았습니다.
◦
혼자라면 해볼 수 없었던 다양한 경험을 할 수 있었고 멋진 팀원들 덕분에 더 많은 것을 배워갈 수 있었습니다!
힘들기도 했지만 뜻 깊고 재미있는 시간이었습니다