sqlite-records

SQLite 데이터베이스 파일을 파싱하여 지정한 테이블의 레코드를 조회합니다. 포렌식 분석 시 SQLite 기반 아티팩트(예: 크롬 브라우저 히스토리, 파이어폭스 데이터베이스)의 데이터를 직접 조회할 때 사용합니다.

명령어 속성

항목설명
명령어 유형드라이버 쿼리
필요 권한클러스터 관리자
라이선스 사용량집계함
병렬 실행미지원
분산 실행수집 노드에서 실행 (mapper)

문법

sqlite-records table=STR FILE_PATH

옵션

table=STR
조회할 테이블 이름

대상

FILE_PATH
조회할 SQLite 데이터베이스 파일의 경로

출력 필드

출력 필드는 지정한 테이블의 스키마에 따라 동적으로 결정됩니다. 테이블에 정의된 각 컬럼이 출력 필드로 할당되며, 필드 순서는 id 컬럼을 가장 앞에 배치한 후 나머지 컬럼을 스키마 정의 순서대로 배치합니다.

각 컬럼의 값은 SQLite 시리얼 타입에 따라 다음과 같이 변환됩니다:

SQLite 시리얼 타입변환 타입
NULL (0)null
정수 (1-6, 8, 9)64비트 정수
BLOB (짝수 >= 12)바이너리
TEXT (홀수 >= 13)문자열

오류 코드

파싱 오류

해당 사항 없음

런타임 오류
오류 코드메시지설명후처리 동작
-IOExceptionSQLite 데이터베이스 파일을 읽을 수 없는 경우쿼리 실행을 중단함

설명

sqlite-records 명령어는 지정한 SQLite 데이터베이스 파일을 바이너리 수준에서 직접 파싱하여 테이블 레코드를 조회합니다. SQLite 라이브러리에 의존하지 않으므로 잠금 상태의 데이터베이스 파일도 조회할 수 있습니다.

테이블 이름은 table 옵션으로 지정합니다. 테이블에 포함된 컬럼 이름과 타입을 미리 확인하려면 sqlite-tables 명령어를 사용합니다.

이 명령어는 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요하며, 접근 가능한 파일 경로가 제한됩니다. 자세한 내용은 파일 접근 제한을 참고하세요.

사용 예

각 사용 예의 파일 경로는 ALLOWED_FILE_SCAN_PATHS 설정에 포함되어 있다고 가정합니다.

  1. SQLite 데이터베이스에서 테이블 레코드 조회

    sqlite-records table=urls /opt/logpresso/evidence/History
    

    크롬 브라우저의 History 파일에서 urls 테이블의 모든 레코드를 조회합니다.

  2. 특정 조건으로 레코드 필터링

    sqlite-records table=visits /opt/logpresso/evidence/History
    | search visit_duration > 0
    

    visits 테이블에서 방문 시간이 0보다 큰 레코드만 필터링합니다.

  3. 레코드 수 제한

    sqlite-records table=moz_places /opt/logpresso/evidence/places.sqlite
    | limit 100
    

    파이어폭스의 places.sqlite 파일에서 moz_places 테이블의 레코드를 최대 100건 조회합니다.

호환성

sqlite-records 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.