DB 포렌식으로 데이터베이스 증거를 수집하고 분석하는 방법
DB 포렌식의 증거 수집·보존·분석 절차와 DBMS별 로그, 데이터 파일, 현장 대응 기법을 정리한다.
2026-08-14 · 최초 발행 2025-05-23
데이터베이스는 사건의 흔적이 남는 곳이다
DB 포렌식은 데이터베이스 시스템에서 증거를 식별하고, 수집·보존·분석하는 디지털 포렌식 영역이다. 사이버 범죄, 내부자 위협, 데이터 유출 수사에서 활용되며, 데이터베이스의 구조와 DBMS별 특성을 알아야 조사 결과를 제대로 해석할 수 있다.
기업 정보의 80% 이상이 데이터베이스에 저장된다. 금융 사기, 개인정보 유출, 기업 비밀 도용의 흔적도 DB에 남을 수 있다. 디지털 증거는 법정에서 물리적 증거와 동일한 가치를 가지며, GDPR, HIPAA, SOX 등의 규제 준수와 법적 분쟁 해결에도 연결된다.
이 과정에서 가장 먼저 지켜야 할 것은 증거의 무결성이다. 수집 방식과 보관 이력이 흔들리면 분석 결과의 법적 효력도 함께 약해질 수 있다.
증거가 보고서가 되기까지의 흐름
조사는 범위와 대상 DB 시스템을 정하고, 영장 등의 법적 승인을 확보하는 준비 단계에서 시작한다. 포렌식 도구도 이 시점에 준비한다.
증거 수집 시에는 메모리와 캐시 같은 휘발성 데이터를 먼저 확보한다. 이어 데이터베이스 파일, 로그 파일, 메타데이터, 시스템 설정 정보를 수집한다. 수집한 자료는 해시값 계산으로 무결성을 보장하고 사본을 생성하며, 증거 보관 연속성(Chain of Custody)을 문서화해 안전한 환경에 보관한다.
분석에서는 데이터를 복구·재구성하고, 타임라인과 이상 트랜잭션, 반복 패턴을 확인한다. 삭제된 데이터를 복구하는 작업도 여기에 포함된다. 마지막으로 발견 사항과 증거 제시 방식을 문서화하고 법정 증언을 준비한다.
로그와 계정에서 이상 행위 찾기
감사 로그는 실행된 쿼리를 추적하는 출발점이다. 시간대와 사용자별 패턴을 비교하면 대량 데이터 추출이나 구조 변경처럼 평소와 다른 쿼리를 식별할 수 있다.
-- 예시: 감사 로그에서 비정상적인 데이터 접근 패턴 찾기
SELECT username, operation, timestamp, table_name
FROM audit_log
WHERE operation = 'SELECT'
AND table_name = 'customer_credit_cards'
AND timestamp BETWEEN '2023-01-01' AND '2023-01-31'
ORDER BY timestamp;
트리거와 저장 프로시저도 별도로 점검한다. 악의적으로 삽입된 트리거, 데이터 유출 목적의 저장 프로시저, 권한 상승 코드는 데이터 변경이나 반출의 경로가 될 수 있다.
사용자 계정과 권한 정보에서는 비정상적인 권한 부여, 계정 생성·수정 이력, 권한 남용 사례를 추적한다.
DBMS마다 달라지는 분석 지점
Oracle에서는 Redo 로그와 Undo 세그먼트로 데이터 복구를 시도하고, System Change Number(SCN)를 바탕으로 타임라인을 구성한다. Alert 로그, Listener 로그, AWR(Automatic Workload Repository) 보고서도 분석 대상이다.
MS SQL Server는 트랜잭션 로그인 .ldf 파일과 tempdb 임시 파일을 확인한다. SQL Server Profiler 결과와 sys.objects, sys.dm_exec_sessions 등의 시스템 테이블도 조사에 활용할 수 있다.
MySQL/MariaDB에서는 Binary 로그, InnoDB 트랜잭션 로그, General 쿼리 로그, Error 로그를 함께 살핀다. PostgreSQL은 WAL(Write-Ahead Logging) 파일과 pg_stat_activity 뷰의 세션 정보, pg_log 디렉토리의 로그 파일이 주요 단서가 된다.
파일 자체에서 복구 단서를 찾는 방법
데이터 파일을 직접 다룰 때는 파일 헤더, 페이지·블록 구조, 할당 맵, 메타데이터를 먼저 파악한다. 파일 카빙(File Carving)은 데이터베이스 파일 안에서 삭제된 레코드를 복구하거나 파일 시스템 수준의 복구 기법을 적용하는 방식이다. 데이터 패턴을 인식해 복원하는 작업도 포함된다.
페이지 분석에서는 데이터 페이지의 레코드 구조, 페이지 내 미사용 공간인 Slack space, 페이지 헤더 정보를 확인한다.
실행 중인 시스템에서 놓치기 쉬운 기록
라이브 시스템에서는 시스템을 중단하지 않고 증거를 수집해야 할 수 있다. RAM 덤프와 메모리 분석, 실행 중인 쿼리 캡처, 네트워크 트래픽 분석이 여기에 해당한다.
활성 연결을 확인하면 데이터베이스 접속 세션과 비정상적인 접속 패턴, 권한 없는 또는 의심스러운 접근 시도를 파악할 수 있다. 임시 파일과 스왑 파일, 캐시된 쿼리 결과, 공유 메모리 영역 덤프도 우선 수집 대상이 된다.
현장에서는 다음 기록을 확보한다.
- 시스템 시간 기록 및 동기화
- 실행 중인 프로세스 목록 확보
- 네트워크 연결 상태 기록
- 사용자 세션 정보 수집
- 데이터베이스 상태 정보 기록
- 디스크 및 메모리 스냅샷 생성
분석에 활용할 수 있는 도구
오픈소스 도구로는 다양한 DBMS를 지원하는 DB Forensics Framework, 로그 파일 분석 도구인 Log Parser, 삭제된 데이터 복구 솔루션인 Recovery Manager, DB 파일을 지원하는 디지털 포렌식 플랫폼 Autopsy가 있다.
상용 솔루션에는 종합 디지털 포렌식 도구 EnCase Forensic, 데이터 복구와 분석을 위한 FTK (Forensic Toolkit), 데이터베이스 분석 기능을 제공하는 Oxygen Forensic Detective, 모바일 기기 DB 분석에 쓰이는 Cellebrite UFED가 포함된다.
파일과 로그를 직접 살필 때는 DB Browser for SQLite, 바이너리 수준 파일 분석용 Hex Editor Neo, 헥스·디스크 에디터인 WinHex, Oracle 로그 분석 도구인 Oracle LogMiner를 사용할 수 있다.
조사에서 확인되는 사건의 흔적
금융 데이터 조작 사건에서는 은행 내부자의 계좌 잔액 조작을 조사하면서 트랜잭션 로그에서 비정상 패턴을 찾고, 삭제된 감사 로그를 복구해 증거를 확보할 수 있다. 수정된 저장 프로시저에서는 악의적 코드가 발견될 수 있다.
의료정보 유출 조사에서는 데이터베이스 접근 로그를 분석해 비인가 계정 생성 패턴과 주기적인 데이터 추출 쿼리를 식별한다.
기업 비밀 유출 포렌식에서는 퇴사 예정 직원과 관련해 특정 시간대의 대량 쿼리, 임시 테이블 생성·삭제 흔적, 데이터베이스 백업 파일 생성 증거를 확인할 수 있다.
분석 결과가 법적 효력을 가지려면
증거 수집에는 영장이나 동의 같은 적절한 법적 근거가 필요하다. 수집 과정을 문서화하고 디지털 증거의 무결성을 유지해야 한다.
조사 중에는 불필요한 개인정보 접근을 최소화하고, 관련 없는 데이터는 익명화 처리하며 데이터 보호 규정을 준수한다. 법정에서는 분석 과정과 방법론을 설명할 자료를 준비하고, 기술 내용을 명확히 전달할 방법과 반대 심문 대응 전략을 갖춰야 한다.
DB 포렌식은 로그 분석, 데이터 파일 검사, 현장 대응을 분리된 작업으로 보지 않는다. 데이터베이스 구조와 DBMS별 특성을 바탕으로 이 단서를 함께 해석하고, 적법한 절차와 증거 무결성을 끝까지 유지하는 일이 핵심이다.