Add Synchronoss / Verizon Cloud legal return parser (9 artifacts)#284
Add Synchronoss / Verizon Cloud legal return parser (9 artifacts)#284OneSixForensics wants to merge 1 commit into
Conversation
26532a0 to
7a2820d
Compare
|
Rebased onto current |
|
a couple general notes for your future contributions (hopefully) :)
i am way less familiar with the R setup and usage, so i will defer to @stark4n6 or @abrignoni to evaluate the module. as for the context patch, i merged all the others in. that part of this PR is good with me to merge. |
New scripts/artifacts/synchronoss.py parsing Synchronoss/Verizon Cloud legal
returns for ICAC investigations, plus a SYNCHRONOSS icon block in
scripts/report_icons.py.
Artifacts (all v2 @artifact_processor; HTML + TSV + timeline + LAVA):
- Messages (SMS and MMS)
- Calls
- MMS Media Received / Sent (inline media, message-linked by file-existence
resolution with a Link Status column)
- MMS Folder Media (Unlinked) (extensionless "0" files referenced only via
SMIL placeholders; surfaced, dated by folder, not attributed)
- Contacts (surfaces deleted contacts)
- DV Access Log Uploads / Sync Events (user-IP vs CDN split; upload checksums
for CyberTip correlation)
- VZMOBILE Device Backup (inline media; extensionless files typed by magic
bytes)
Media is registered with the framework check_in_media. Validated against a real
~32 GB ICAC return (17,214 VZMOBILE files) and a known-ground-truth synthetic
dataset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BdD6DdQA21KqDRSUjQHaTK
7a2820d to
d6b7346
Compare
|
Thanks @JamesHabben — good calls. Per your point #2, I've split the |
Synchronoss / Verizon Cloud legal return parser
Adds
scripts/artifacts/synchronoss.py(new) and aSYNCHRONOSSicon block inscripts/report_icons.py. Parses Synchronoss / Verizon Cloud legal returns, which are commonly received in ICAC investigations.Follows the same patterns as my merged
kik.pyparser, now on the modern@artifact_processor/ LAVA pipeline.Artifacts (9)
All v2
@artifact_processor, emitting HTML + TSV + timeline + LAVA:messages/YYYYMMDD.csvType = call(Sender/Recipients kept verbatim — meaning flips with direction, so no "account number" mislabel)mms/in|outfolders but referenced only via SMIL placeholders (chiefly extensionless0files). Surfaced so no media is lost, dated by folder, not attributed to a message (avoids fabricated attribution)contacts_YYYYMMDD.txt(JSON); surfaces deleted contactsNotes for review
seeker.file_infoslookup (_register_media) rather thancheck_in_media.check_in_mediaresolves files withPath.match(glob), which fails on real-world Synchronoss filenames containing glob metacharacters (e.g.IMG_0347[1].jpg,[clips4sale.com]...) and is O(n²) per artifact. The helper otherwise mirrorscheck_in_mediaexactly (media-id/ref scheme, hardlink-or-copy,guess_mimemagic-byte mimetype). Happy to switch back ifcheck_in_mediais fixed upstream — see the related issue.0files) are typed and rendered inline via magic-byte mimetype.Message IDprefix.Validation
Media-heavy artifacts like VZMOBILE benefit substantially from the companion LAVA WAL perf change (separate PR).