집에 있는 액자에 비해 너무 큰 포스터를 구입했다고 상상해 보세요. 포스터를 제대로 표시하려면 사용 가능한 프레임에 맞도록 섹션으로 잘라내야 할 것입니다. 대용량 레코드를 처리할 때 SQLite 데이터베이스에도 동일한 원리가 적용되어 여러 부분으로 나누어 여러 페이지에 걸쳐 저장합니다. 여기에는 오버플로 페이지 들어오세요.
오버플로 페이지는 단일 SQLite 데이터베이스 페이지에 맞지 않는 데이터를 저장합니다(일반적으로 4,096바이트). 이 페이지는 다음과 같습니다. 서로 연결를 통해 포렌식 분석가가 완전한 데이터를 복구하기 위해 재구성해야 하는 체인을 형성합니다. 분석가가 오버플로우 구조를 따르지 않으면 다음과 같은 위험을 감수해야 합니다. 불완전하거나 손상된 증거.
이 문서에서는 오버플로 페이지가 어떻게 작동하는지, 포렌식 조사에서 왜 중요한지, 조각난 데이터를 추출하는 방법을 단계별로 살펴봅니다.
SQLite 데이터베이스는 고정된 페이지 크기를 할당합니다(예 4,096바이트). 그러나 이미지와 같은 레코드가 BLOB(이진 대형 객체)-이 크기를 초과합니다, 초과 데이터가 오버플로 페이지로 넘어갑니다..
✅ 오버플로 페이지 대용량 기록 방지 한 페이지를 독점하는 것을 방지합니다.
✅ 그들은 체인으로 연결된을 클릭하고 메인 페이지에서 시작합니다.
✅ 포렌식 분석가 는 완전한 데이터를 검색하기 위해 이러한 체인을 재구성해야 합니다.
오버플로 페이지의 작동 방식을 이해하는 것은 포렌식 조사에 필수적입니다.
오버플로 페이지의 개념을 설명하기 위해 다음 예시를 살펴보겠습니다:
1. 조각난 이미지 표현
이 시각화는 이미지와 같은 대용량 BLOB이 SQLite에 저장되는 방식을 나타냅니다. 오버플로 페이지가 조각난 데이터를 저장하는 것처럼 이미지가 여러 섹션으로 나뉘어져 있습니다.
2. 단일 페이지에 저장된 데이터
여기에서는 이미지가 하나의 데이터베이스 페이지에 완전히 들어맞기 때문에 오버플로 페이지가 필요하지 않습니다.
3. 여러 페이지에 걸쳐 분할된 데이터
이 예는 데이터가 비연속적인 방식으로 저장되어 포렌식 분석을 통해 올바르게 재구성해야 하는 방법을 보여줍니다.
4. 오버플로 페이지에서 데이터 재구성하기
오버플로 페이지 포인터를 따라 포렌식 분석가는 파편화된 데이터를 재조합할 수 있습니다.
많은 메시징 앱, 모바일 애플리케이션 및 데이터베이스 사용자 프로필 사진, 채팅 로그, 첨부파일을 SQLite에 저장합니다. 이미지와 문서가 여러 페이지에 걸쳐 있는 경우, 포렌식 조사관은 오버플로 구조를 이해해야 데이터를 제대로 추출할 수 있습니다.
이제 SQLite 데이터베이스에 저장된 이미지의 단계별 포렌식 복구 과정을 살펴보겠습니다.
사용 SQLite용 DB 브라우저포렌식 분석가는 프로필 사진이 포함된 레코드를 식별합니다. 연락처
테이블.
사용 HxD를 사용하여 16진수 편집기를 사용하면 레코드 헤더를 찾습니다. VARINT 를 사용하여 BLOB 길이를 결정합니다.
레코드 헤더의 두 번째 VARINT는 이미지의 크기를 지정합니다. 이 경우 총 크기는 6,325바이트페이지 제한을 초과합니다.
메인 페이지 하단에는 4바이트 포인터 로 연결됩니다. 4페이지를 클릭하고 이미지의 다음 부분을 클릭합니다.
4페이지의 처음 4바이트는 다른 오버플로 페이지가 이어지는지 여부를 나타냅니다. 값은 0x00000000
이 바로 마지막 오버플로 페이지.
포렌식 분석가는 6,292바이트 를 사용하여 두 페이지에서 이미지를 수동으로 재구성합니다.
📌4바이트 포인터는 조각된 이미지에 포함될 데이터의 일부가 아닙니다.
이제 추출된 이미지가 완전히 복원되어 볼 수 있습니다.
포렌식 조사에서 오버플로 페이지를 간과하면 다음과 같은 결과를 초래할 수 있습니다. 중요한 증거 손실. SQLite의 저장 메커니즘을 이해하는 것은 다음을 위해 매우 중요합니다. 정확한 데이터 추출 및 재구성.
✔️ 항상 오버플로 페이지 확인대용량 레코드를 분석할 때
✔️ SQLite의 오버플로 포인터신중하게.
✔️ 간단 파일 조각 기술 는 연속되지 않은 저장소로 인해 작동하지 않을 수 있습니다.
분석 여부 채팅 데이터베이스, 연락처 목록 또는 애플리케이션 로그포렌식 전문가는 파편화된 데이터를 복구하는 데 능숙해야 합니다.
💡 SQLite 포렌식에서 파편화된 데이터를 경험한 적이 있나요? 오버플로 페이지 분석에 어떻게 접근하시나요? 아래에 여러분의 인사이트를 공유해 주세요!