The brief
You are a junior digital forensics investigator on a corporate espionage case, designated Case M57-Patents. An employee of the company M57 is suspected of exfiltrating new patent filings. The IT department has imaged the suspect’s work USB drive in EnCase format and has made the image available to you, together with the SHA-256 hash it recorded at the moment of imaging.
Your first task is not to analyse the drive. It is to build the foundation everything else will rest on: acquire the image, prove it has not changed since IT made it, create a verified working copy, and record every one of those actions in a chain of custody log with a name, a time and a reason. Chapter 3 calls this the second admissibility gate, authenticity. A mistake here is not a small mistake — it is the one a defence lawyer looks for first, because it takes every later finding down with it.
The image is charlie-work-usb-2009-12-11.E01 from the M57-Patents scenario of the Digital Corpora project, a public dataset built for forensic teaching. It is a genuine EnCase image of a real 1 GB USB stick, redacted by the corpus authors. Digital Corpora publishes the image but no hash beside it, so the hash file you download from this portal stands in for the IT department’s record: it was computed when the course acquired the image, and it is the value your copy must match.
0 — Tools and evidence
Nothing to install on Linux or WSL: wget, sha256sum, cp and date are all standard. On macOS use shasum -a 256 wherever this page says sha256sum, and curl -O wherever it says wget. The custody log is a plain text file; a spreadsheet works too.
wget --version | head -1
sha256sum --version | head -1
# if either is missing (Debian / Ubuntu)
sudo apt-get update && sudo apt-get install -y wget coreutilsGive the case a folder of its own, then download the image from Digital Corpora and the hash file from this portal into it. Keep the filenames exactly as they are: the hash file names the image it belongs to, and sha256sum -c will look for that name.
mkdir M57-Patents-Case
cd M57-Patents-Case
# the disk image, about 9 MB, from the corpus
wget https://digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/charlie-work-usb-2009-12-11.E01
# the official hash, issued by the course
wget https://courses.karbab.net/mscs630/charlie-work-usb-2009-12-11.E01.sha256M57-Patents-Case. Some browsers rename a .sha256 download; check the name before you go on.Confirm both files are there and note the image’s size. Size is not integrity — two different files can have the same size — but a size that is off already tells you the download is broken before you spend a hash on it.
ls -lCheckpoint 0
Both must be right to complete this step.
-
How many bytes is
charlie-work-usb-2009-12-11.E01on your disk?9,265,553 bytes. The corpus copy and the portal record agree on that, so at least the download completed. Whether the bytes are the right bytes is what Step 3 establishes.
-
The files are downloaded and
sha256sumtakes a second to run. Why does this page tell you not to run it yet?The order is the point. A hash you computed before the log existed is a hash you cannot show the court a timestamped entry for. Create the log, then act, and write each action down as you take it.
1 — Create the custody log
The chain of custody log is the document that lets the court see across every handoff. Chapter 3 lists what each entry needs: a case and item number, a description, the name of the person acting, the date and time, and the reason. Make the log now, before the evidence is touched.
nano chain_of_custody_M57.txtPaste the header below as the first two lines. Fields are separated with a pipe. A spreadsheet with the same six columns is equally good.
Case | Item | Description | Custodian | Time (UTC) | Action
-----|------|-------------|-----------|------------|-------Every entry carries the time the action happened, in UTC so that nobody has to guess your time zone later. Take it from the clock at the moment you act, not afterwards when you tidy the log. Chapter 4’s standard for notes is reproducibility, and a log reconstructed from memory does not meet it.
date -uWhat to look for: a line ending in UTC. If it ends in your local zone abbreviation instead, you forgot -u.
Checkpoint 1
Both must be right to complete this step.
-
Which of these log entries would satisfy the chain of custody requirements from Chapter 3?
Case, item, description, custodian, time and reason. The first two options are missing the person and the time, which are exactly the two things a court asks about: who had it, and when.
-
You finish all five steps in one sitting and then fill the timestamps in from memory. What is wrong with that?
A hash proves that a file was unchanged; it says nothing about when you did what. The log is the only record of the sequence, and a sequence written from memory is a story, not a record.
2 — Log the acquisition
The evidence is on your disk. The first entry in the log records how it got there: from where, when, and into whose hands.
Every evidence item gets an identifier that you will reuse on every later action taken on it. Use M57-USB-Orig for the original image. The working copy you make in Step 4 will be a different item with its own number.
Take the time, then write the entry. Everything in it comes from what you actually did.
date -u
ls -l charlie-work-usb-2009-12-11.E01M57-Patents | M57-USB-Orig | Original evidence image, Charlie's work USB drive (charlie-work-usb-2009-12-11.E01, 9265553 bytes) | [Your Name] | [date -u output] | Acquired from Digital Corpora via wget; official hash file acquired from the course portalCheckpoint 2
Both must be right to complete this step.
-
In Step 3 you will hash this same file. What item number goes on that entry?
The item number is what lets a reader follow one object through the log. A new number per action would turn a single item into a crowd of unrelated ones.
-
Why does the description carry the size in bytes?
Size is not integrity, but it is part of the description that identifies the item, like a serial number on a laptop. The hash comes in the next entry.
3 — Verify the original
Now prove that the bytes on your disk are the bytes IT imaged. The proof is a cryptographic hash: change one bit anywhere in nine megabytes and the 64-character value changes completely.
sha256sum charlie-work-usb-2009-12-11.E01What to look for: 64 hexadecimal characters, two spaces, the filename. The value is what goes in the log and in your report.
You could open the .sha256 file and compare by eye. Let the tool do it instead: -c reads the expected value and filename from the hash file, recomputes, and prints one word per file.
sha256sum -c charlie-work-usb-2009-12-11.E01.sha256
# to see both values side by side
cat charlie-work-usb-2009-12-11.E01.sha256Expected output:
charlie-work-usb-2009-12-11.E01: OKFAILED, stop. The file on your disk is not the evidence, and nothing derived from it can be tied back to what IT imaged. Do not note the discrepancy and continue. Delete the file, download it again, log the re-acquisition, and verify again. A partial download is the usual cause.M57-Patents | M57-USB-Orig | (same item) | [Your Name] | [date -u output] | Calculated SHA-256: [your 64-character value]. Verified against charlie-work-usb-2009-12-11.E01.sha256 with sha256sum -c, result OKCheckpoint 3
All three must be right to complete this step.
-
What is the SHA-256 hash of your copy of
charlie-work-usb-2009-12-11.E01?That is the value the course recorded when it acquired the image, so your copy is the evidence, byte for byte.
-
What did
sha256sum -cprint after the filename? -
Suppose the check had printed
FAILED. What is the correct next action?A mismatch means the object on your disk is not the object in the record. Analysing it anyway produces findings about the wrong thing; editing the record is fabrication. Re-acquire.
4 — Create the working copy
Analysis is never done on the original. Tools open files, mount images and sometimes write to them; a mounted image can change under you without anyone intending it. The original stays as it was verified, and everything from here on happens to a copy.
cp charlie-work-usb-2009-12-11.E01 charlie-work-usb-2009-12-11-WORK.E01
ls -lWhat to look for: two .E01 files of exactly the same size, plus the hash file and your log.
The working copy is a distinct piece of evidence, derived from the original. It gets its own item number, and the entry says which item it came from.
M57-Patents | M57-USB-Work | Working copy of the USB image (charlie-work-usb-2009-12-11-WORK.E01) | [Your Name] | [date -u output] | Created working copy from original evidence item M57-USB-Orig with cpCheckpoint 4
Both must be right to complete this step.
-
Not counting your log, how many evidence-related files are in the case folder now?
The original image, its hash file, and the working copy. The log is your record, not evidence.
-
Why does the working copy get a new item number instead of another entry under
M57-USB-Orig?Two files, two histories. Everything you do in analysis happens to the working copy and is logged against its number; the original’s history ends at “verified and stored”.
5 — Verify the working copy
A copy is only a forensically sound duplicate once you have shown it is one. Hash the copy and compare it with the original’s hash from Step 3.
sha256sum charlie-work-usb-2009-12-11.E01 charlie-work-usb-2009-12-11-WORK.E01What to look for: two lines with the same 64 characters. That match is the finding. If the values differ, the copy failed; delete it, copy again, and log both events.
Optional, and worth thirty seconds. Make a throwaway copy, append one byte, and hash it. Do this on a fourth file, never on the original or the working copy, and do not log it as evidence.
cp charlie-work-usb-2009-12-11-WORK.E01 scratch.E01
printf 'x' >> scratch.E01
sha256sum scratch.E01
rm scratch.E01What to look for: a value with nothing in common with the original’s. One byte in nine million, and every character of the fingerprint moved. That is the property the whole procedure rests on.
M57-Patents | M57-USB-Work | (same item) | [Your Name] | [date -u output] | Calculated SHA-256: [the working copy's value]. Verified identical to original evidence item M57-USB-Orig. Ready for analysisCheckpoint 5
All three must be right to complete this step.
-
What is the SHA-256 hash of
charlie-work-usb-2009-12-11-WORK.E01?Identical to the original’s. The working copy is a true duplicate and every finding you draw from it can be tied back to the verified original.
-
The two hashes match. What, precisely, has that established?
Hashing proves the relationship between two files on your disk. It says nothing about what happened to the USB stick before imaging, or about who wrote what inside it. Those are questions for the analysis, and for other evidence.
-
Reading your finished log, what should a second examiner be able to do with it and the two files?
That is the reproducibility standard from Chapter 4. A log that another examiner can follow to the same result is evidence of process; one that only you can explain is testimony.
Write the report
The checkpoints establish the facts. The graded deliverable is the preliminary report you write from them, using the template in the PDF handout. It has four parts:
- Evidence details — filename, size in bytes, the SHA-256 of the original, and the source and UTC time of acquisition, all copied from your log.
- Executive summary — two or three sentences for a manager who will read nothing else: what was acquired, how its integrity was established, that a verified working copy exists, and that a custody log covers every action.
- Key findings — the original’s integrity (did the hash match the issued value, and what that establishes); the creation of the working copy and why the original is now left alone; the working copy’s integrity and what a mismatch would have meant.
- Importance of procedural integrity — which admissibility gate from Chapter 3 a mismatched hash would fail, which one an undocumented action would fail, and how a defence lawyer would use either gap in cross-examination.