Lion Cipher Lab

Triage a Plaso super-timeline in pandas and find the ten minutes that matter (Part 2)

Why it matters

Part 1 ended with a CSV timeline and the advice to read it for a sequence. On a real case that CSV has tens of thousands to millions of rows, and nobody reads that top to bottom. What separates a responder who finds the intrusion in an afternoon from one who is still scrolling on Friday is a handful of data moves: load it with the right types, count before you read, look for bursts, pivot on what you find, and collapse the duplicates the format creates. This lab teaches those moves in pandas, the free Python data library, on a practice timeline with a known answer, so you can measure what you…

What you'll learn

Steps in this lab

  1. Recap Part 1, and the problem it leaves you with
  2. Install Python and pandas in a private environment
  3. Generate the practice timeline (and do not peek at the answer key)
  4. Load it the naive way and see what it costs
  5. Load it properly: categories, strings and UTC datetimes, then measure the scroll
  6. Get your bearings: what kinds of rows are these?
  7. Bin events per minute and find the bursts, then refuse the obvious answer
  8. The time zone trap: what the user said vs what the timeline says
  9. Pivot on the executable name, across all time, then around its first run
  10. Collapse the MACB duplicates so one file action is one line
  11. Separate filesystem noise from execution and persistence evidence
  12. Test for timestomping, and see why the obvious test is wrong
  13. Write the triage table: time, artifact, what it proves, confidence
  14. Score yourself against the answer key and count what you read
  15. When the timeline is 5 GB: chunks, fewer columns, and the limits of this method
  16. The judgment that makes this work

Open the full interactive lab →