0Pricing
Cyber Security Academy · 강의

앱, 아티팩트 및 보고

앱 데이터를 분석하고 결과를 제시합니다.

앱, 아티팩트 및 보고은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

앱 아티팩트: 전체 개요

대부분의 사건에서 타사 앱이 가장 풍부한 증거를 생성합니다. 앱마다 데이터를 저장하는 방식은 다르지만 반복되는 패턴이 있습니다.

  • 메시지, 기록, 메타데이터를 저장하는 SQLite 데이터베이스입니다.
  • 설정과 상태를 저장하는 iOS의 속성 목록(plist) 및 Android의 XML shared_prefs입니다.
  • DB 열 내부에 포함된 Protobuf / JSON BLOB입니다.
  • 미리 보기 이미지와 첨부 파일을 저장하는 캐시 및 미디어 폴더입니다.

이러한 데이터를 일관되게 파싱하고, 사용자와 시점에 귀속시킨 뒤, 근거를 바탕으로 제시하는 것이 여러분의 역할입니다.

메시징 앱 아티팩트

메시징 앱은 자주 발견되는 증거 출처입니다. 각 앱은 기본 메시지 저장소와 연락처 및 그룹 테이블을 함께 유지합니다.

  • WhatsApp(Android): msgstore.db(메시지), wa.db(연락처)입니다.
  • Signal: 암호화된 SQLCipher DB이며, 키는 키 저장소 또는 키체인에 있습니다.
  • Telegram: protobuf로 인코딩된 콘텐츠가 포함된 cache4.db를 사용합니다.

메시지 저장소에서 WhatsApp 대화를 재구성하십시오:

sqlite3 -readonly msgstore.db
sqlite> SELECT datetime(timestamp/1000,'unixepoch') ts,
   ...>        key_remote_jid, key_from_me, data
   ...> FROM messages
   ...> WHERE key_remote_jid LIKE '%@s.whatsapp.net'
   ...> ORDER BY timestamp;

암호화된 앱 데이터베이스

일부 앱은 자체 데이터베이스를 SQLCipher(예: Signal 및 일부 금융 앱)로 암호화합니다. 이러한 DB는 일반 sqlite3로 열 수 없습니다.

  • 키는 일반적으로 플랫폼의 키 저장소 또는 키체인에 저장되며, 충분히 깊은 수준의 추출에서만 복구할 수 있습니다.
  • 키를 확보한 후 SQLCipher PRAGMA를 사용하여 DB를 연 다음 조회하십시오.

키를 복구한 후 SQLCipher 데이터베이스를 여는 방법은 다음과 같습니다:

sqlcipher signal.db
sqlite> PRAGMA key = "x'6f3b...c91a'";   -- recovered raw key
sqlite> PRAGMA cipher_compatibility = 4;
sqlite> SELECT * FROM sms LIMIT 5;

내장 BLOB 디코딩

앱 데이터베이스는 종종 BLOB 열 안에 protobuf, plist 또는 JSON 형식으로 구조화된 데이터를 숨깁니다. 눈에 보이는 열은 전체 내용의 일부에 불과합니다.

  • BPLIST BLOB(Apple 바이너리 plist)은 plistlib 또는 plutil로 디코드합니다.
  • Protobuf BLOB은 protoc 또는 blackboxprotobuf로 디코드합니다.

열에서 추출한 바이너리 plist BLOB을 변환하십시오:

# Apple binary plist -> readable XML
plutil -convert xml1 -o decoded.plist attachment_blob.bin

# Unknown protobuf -> field tree
python3 -m blackboxprotobuf decode message_blob.bin

위치 및 지리적 위치 아티팩트

위치 증거는 사람을 특정 장소와 시점에 연결하므로 더욱 엄격하게 다루어야 합니다.

  • 사진 EXIF GPS 태그, 지도 앱 검색 기록, 캐시된 지도 타일입니다.
  • iOS의 주요 위치(routined 캐시), Android의 위치 기록 및 Wi-Fi/셀룰러 로그입니다.

기기가 있었던 장소와 사용자가 단지 검색만 한 장소를 구분하십시오. 사진에서 EXIF GPS를 추출하십시오:

exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal \
  IMG_0421.HEIC

클라우드, 동기화 및 다중 기기 상태

최신 앱은 여러 기기에서 동기화되므로 기기 내 데이터가 불완전하거나 중복될 수 있습니다.

  • 휴대전화에서 삭제된 메시지가 연결된 태블릿 또는 웹 세션에 남아 있을 수 있습니다.
  • 동기화 메타데이터를 통해 어떤 기기에서 메시지를 작성했는지 확인할 수 있습니다.

분석에서 기기 귀속 정보를 기록하고, 별도의 적절한 법적 권한이 있을 때만 클라우드 또는 동반 기기 데이터를 확보하십시오. 압수한 휴대전화에 전체 기록이 있다고 절대 가정하지 마십시오.

아티팩트 검증

아티팩트가 보고서에 포함되기 전에 세 가지 방법으로 검증해야 합니다.

  • 출처: 해당 아티팩트가 나온 정확한 파일/테이블/열을 확인합니다.
  • 디코딩: 타임스탬프의 에포크 기준과 필드의 의미를 확인합니다. 가능하면 신뢰할 수 있는 기준 메시지와 대조합니다.
  • 상호 검증: 두 번째 아티팩트와 대조 확인합니다(예: 연락처와 일치하는 통화 기록 항목).

독립적으로 상호 검증하거나 정확한 출처를 확인할 수 없는 아티팩트는 사실로 단정하지 말고 낮은 신뢰도로 표시해야 합니다.

슈퍼 타임라인 만들기

슈퍼 타임라인은 여러 아티팩트의 이벤트를 하나의 시간순 보기로 합치고, 이를 UTC 기준으로 정규화합니다.

  • 메시지, 통화, 앱 사용 기록, 위치 정보, 시스템 이벤트를 결합합니다.
  • 추적할 수 있도록 각 행에 출처 아티팩트를 표시합니다.

log2timeline/plaso 같은 도구나 분석가가 작성한 스크립트가 이를 구성합니다. 개념적으로 각 행에는 시간, 이벤트, 출처 이력이 담깁니다:

timestamp_utc        | source            | event
2026-06-01 09:14:02  | sms.db            | iMessage sent to +1555...
2026-06-01 09:15:40  | knowledgeC.db     | App in foreground: Maps
2026-06-01 09:16:05  | Photos.sqlite     | Photo captured (GPS present)

보고서 구성

포렌식 보고서는 독립적인 검토자가 작업을 재현하고 검토할 수 있도록 작성해야 합니다. 표준 섹션은 다음과 같습니다.

  • 요약 — 범위, 승인, 주요 발견 사항
  • 취급한 증거 — 기기, 식별자, 증거 보관 이력
  • 방법론 — 도구, 버전, 정확한 명령어, 해시값
  • 발견 사항 — 출처가 인용된 아티팩트
  • 결론 — 가공되지 않은 사실과 명확히 구분한 해석

모든 주장은 해시값이 기록된 출처와 문서화된 단계로 추적할 수 있어야 합니다.

사실과 의견 구분

보고서의 신뢰성은 관찰과 해석을 구분하는 데 달려 있습니다.

  • 사실: sms.db의 482번 행에 UTC 기준 날짜 Y와 텍스트 X가 포함되어 있습니다.
  • 해석: 이는 사용자가 위치 Z에서 만나기로 계획했음을 시사합니다.

사실은 중립적으로 서술하고, 추론은 추론이라고 표시하며 대안적 설명도 함께 제시해야 합니다. 확신을 과장하면(예: 단일 메시지만으로 의도를 단정하는 경우) 보고서 전체의 신뢰성이 떨어지고 법정에서 이의를 제기받을 수 있습니다.

윤리, 범위 및 개인정보 보호

모바일 기기에는 매우 사적인 데이터가 저장되어 있습니다. 실무자는 법적·윤리적 범위 안에서 작업해야 합니다.

  • 승인된 범위(영장/동의 조건) 안에서만 작업합니다.
  • 관련 없는 개인정보에 대한 노출을 최소화합니다.
  • 객관성을 유지합니다 — 혐의를 뒷받침하는 증거뿐 아니라 무죄를 뒷받침하는 증거도 보고합니다.
  • 추출한 데이터도 원래 기기와 동일한 수준으로 보호합니다.

건전한 윤리는 선택 사항이 아닙니다. 윤리가 있어야 디지털 증거를 신뢰할 수 있고 증거로 인정받을 수 있습니다.

간단한 확인

보고서에 다음과 같이 적혀 있습니다. '메시지 482에서 알 수 있듯이 사용자는 해당 행위를 저지를 의도가 있었습니다.' 검토자가 이의를 제기했습니다. 핵심 문제는 무엇인가요?

복습: 앱, 아티팩트 및 보고

이제 원시 추출 데이터를 근거를 갖춘 보고서로 정리할 수 있습니다.

  • 앱 데이터는 SQLite + plist/XML + protobuf/JSON 데이터 덩어리로 구성되며, 데이터 덩어리는 명시적으로 디코딩해야 합니다.
  • 암호화된 저장소(SQLCipher)에는 심층 추출에서 얻은 키가 필요합니다.
  • 위치 증거를 신중하게 다루고, 실제 존재와 단순 검색을 구분해야 합니다.
  • 여러 기기 간 동기화를 고려하고, 적절한 권한이 있을 때만 클라우드 데이터를 요청해야 합니다.
  • 보고하기 전에 출처, 디코딩, 상호 검증을 검증해야 합니다.
  • UTC 기준 슈퍼 타임라인을 만들고, 재현할 수 있도록 보고서를 구성하며, 사실과 의견을 구분해야 합니다.
  • 정해진 범위 안에서 윤리적으로 행동해야 합니다. 그래야 증거가 증거로 인정될 수 있습니다.

자주 묻는 질문

“앱, 아티팩트 및 보고” 강의는 무료인가요?

네 — “앱, 아티팩트 및 보고” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“앱, 아티팩트 및 보고”에서 뭘 배우나요?

앱 데이터를 분석하고 결과를 제시합니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“앱, 아티팩트 및 보고” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 모바일 포렌식 기초
  2. Android 데이터 획득 및 분석
  3. iOS 데이터 획득 및 분석
  4. 앱, 아티팩트 및 보고
← Cyber Security Academy(으)로 돌아가기