Network Archaeology is the study and practice of unearthing and understanding hidden data in network traffic and obfuscated files. This class will introduce the concepts, skills, and thought processes that provide the foundation for this work.
Computer science, information theory, and mathematics provide a foundation. However, this class is designed as a practical onramp to network archaeology for those who may not count such topics in their leading passions. While the Network Archaeology 2 and 3 classes will have students developing custom protocol decoders, this class focuses on building a foundation for students in concepts such as:
- Data representation (bytes, ascii, encodings),
- Common network protocols,
- Packet structure,
- Data analysis and manipulation using the Linux command line, and
- Common analytic tools;
And culminates with introducing more advanced concepts like:
- Encryption and compression,
- Cryptanalysis, and
- Back/reverse engineering
Light on slide presentations and heavy on hands-on challenges, Network Archaeology is organized as a self-paced lab class, with intermittent instructor lectures. We introduce students to a concept and teach them to apply it by having them develop and test their own solutions to problems of incrementally increasing difficulty. Between lectures, instructors traverse the room helping people with labs. Our friendly teaching assistants are available throughout and will happily sit with you and help you think through your approach.
Encouraging “living off the land”, this class makes heavy use of the Linux command line, as the most likely “least common denominator” toolset found in the wild. We encourage students, however, to focus more on techniques than on tools, being ready to adapt to different tools they encounter in the real world. Beyond the command line, some demonstrations will include the use of Wireshark and of web-based tools such as Cyber Chef. While some challenges may defy such tools, participants can make notable progress using them.
While a coding background is far from necessary, those who have one are welcome to apply it, and some challenges may even demonstrate light use of scripting (with starter code provided). Each lab exercise either introduces new or builds on previously presented concepts. There is no expectation that everyone will finish all lab exercises during the three days of class.