331 - Network and Web Security - 2026
Table of Contents
A.k.a 60015 or 70082, but just "331" for short.
Announcements
- Next in-person session: Monday, January 19 at 9am in HXLY 219 (look out for course TAs close to 219 A/B/C)
Schedule
Week 2 - 19/01/26
- Overview. This week we cover more background material and general topics relevant to the rest of the course, and end with a quick look at the security of local area networks. Authentication and passwords are pervasive in cybersecurity. We introduce key concepts and best practices here, and will come back to the topic later in the course. Pentesting is a useful conceptual framework to assess the security of a network, and we will practice it in the labs from now on. The networks background module is mostly to the benefit of those students who do not have a computing background, but can serve as a quick refresher to the others. Finally we briefly discuss local area networks and some of their security weaknesses. You will practice some of what you learn on authentication, networks and LANs already in this week's tutorial, which is practical and based on virtual machines. You will need to have installed Kali on VirtualBox, either on your laptop or on a machine in the labs, folowing last week's guide.
- Topics
- 4 Authentication
- 5 Pentesting
- Read Chapters 3 and 4 of Professional Penetration Testing
- Optional reading
- Read Chapters 6 and 7 of Professional Penetration Testing
- 6 Networks background
- Optional reading (highly recommended if you are new to computer networks)
- Sections 4.1, 4.2, 4.3, 6.4 (up to and including 6.4.3) of Computer Networking - A Top-Down Approach - 7th Edition
- Optional reading (highly recommended if you are new to computer networks)
- 7 LAN security
- Activities
- Lab on Monday
- Tutorial 2: Virtual security lab and passwords
- In class session on Thursday
- Q&A, demos
- Lab on Monday
Week 1 - 12/01/26
- Overview. This week we cover some general security topics which are relevant to the rest of the course. In order to secure a system, we want to be able to discover, fix and, even better, prevent security vulnerabilities. Attackers attempt to install malware on their victims, and use malware itself to implement further attacks. Although malware is not the focus of this course, we need to have some familiarity with it, in order to understand the objectives and techniques used to attack networks and web applications. Threat modelling is a conceptual tool that we will use in the rest of the course to assess the security of applications and systems. Note that this week is a gentle introduction to the course, the pace and difficulty will increase as we get into technical topics.
- Topics
- 1 Vulnerabilities
- Read Chapter 2 of Professional Penetration Testing
- 2 Malware
- Optional reading
- 3 Threat Modelling
- Read Chapters 1-4 of Threat modelling – Designing for security
- 1 Vulnerabilities
- Activities
- Independent lab assignment (in your own time, before the 19th)
- Guide: Install VirtualBox and Kali
- In class session on Thursday
- Overview, Q&A, demos
- Tutorial 1: Threat Modelling
- Independent lab assignment (in your own time, before the 19th)
Organization
- Timetable:
- Fri 1pm: updates for the following week
- weekly course schedule and suggested reading posted on this website
- recorded lectures and slides released on Scientia
- Mon 9am-11am
- lab session with GTAs in HXLY 219
- office hours with lecturer in HXLY 219 A (from 9:30am)
- Fri 11am-1pm: in-class activities in Hux 311, including a variety of
- Q&A, demos, extras on weekly material
- Tutorials (not computer-based)
- Invited lectures
- Fri 1pm: updates for the following week
- edStem will be used for course announcements and course related questions.
- Questions via email will be ignored.
- Slides, recordings and tutorial sheets will be posted on Scientia: UG ~ MSc.
- External students: registration instructions.
Assessment
- Assessed coursework
- The assessed (individual) coursework will be released on Frebruary 13 at 2pm.
- The deadline for the coursework is February 26 at 7pm.
- Exam
- Answer 2 questions out of 2 in 2 hours.
- The format is "open book": you can take one A4 sheet (2 sides) of notes into the exam.
- Selected cheatsheets and reference guides will be provided to help with the practical part.
- Roughly half of the exam will consists of practical security tasks.
Resources
- Reference books (electronic edition available via central library):
- Threat modelling – Designing for security (Shostack)
- Professional Penetration Testing (Wilhelm)
- The tangled web (Zalewski)
- The Web Application Hacker's Handbook (Stuttard, Pinto)
- Recommended books
- Computer Networking - A Top-Down Approach (Kurose, Ross)
- SSL and TLS: Theory and Practice (Oppliger)
- Vulnerabilities
- CWE/SANS Top 25 Most Dangerous Software Errors.
- OWASP Top 10 list of the most critical web application security flaws.
- Search the CVE Vulnerability Database.
- Search the exploit-db database.
- Hacker One reward program for internet vulnerability disclosures.
- Full Disclosure mailing list.
- Black Hat and DEF CON hacking conferences.
- General
- A short dictionary of cybersecurity terms: Sophos' Threatsaurus.
- The Elevation of Privilege card game.
- w3schools tutorials
- Tails: live os with state-of-the-art privacy protection (including Tor browser).
- MITRE ATT&CK: a knowledge base of adversary tacticts and techniques.
- Practice hacking
- Kali Linux distribution for pentesting.
- OWASP Broken Web Applications Project
- Exploit exercises
- PentesterLab Bootcamp
- VMs recommended by students
- Sources for web-related standards:
- Blogs and news:
People
Lecturer
Sergio Maffeis. Sergio is an associate professor in Computer Security at Imperial, where he leads the Security and Machine Learning Lab. He received his PhD from Imperial and his MSc from University of Pisa, Italy. Maffeis' research interests include security, machine learning, formal methods, and programming languages. You can find out more from his home page.
Guest Lecturers
Charlie Hothersall-Thomas. Charlie is a Director of Engineering at Netcraft, where he leads the
DevOps division. Prior to this he worked as a developer on a variety of
Netcraft's anti-cybercrime products. His technical expertise includes
web security, TLS and PKI, networking, Linux system administration and
Tor. He graduated in 2014 with a BEng in Computing from Imperial College
London, where he started BrowserAudit as his final year project.
Ibrahim ElSayed.
Ibrahim is an experienced security engineer specializing in leveraging program analysis to detect and prevent security vulnerabilities at scale. With over a decade of expertise in building advanced static analysis tools, he has contributed to securing massive codebases written in languages like PHP, Python, and Java. Ibrahim is also passionate about researching vulnerabilities in end-to-end encrypted messaging applications like WhatsApp, Telegram, and Signal, aiming to enhance their security. He leads efforts to empower developers and scale security teams to identify and mitigate critical vulnerabilities effectively.
Joseph Katsioloudes. Joseph works for the GitHub Security Lab, and was previously a Security Consultant at IBM. He obtained an MSc in Cyber Security Engineering from the University of Warwick and an MEng in Computing from Imperial College London. His experience in security stems from summer internships and own initiatives to problem-solve. Highlights include the disclosure of a zero-day vulnerability for a top ten cryptocurrency during his final year at Imperial College, the GCHQ security accreditation, software contributions to open-source tools and advanced attack simulations.
Teaching Assistants
Adbdullah Adlaihan.
Abdullah is a PhD student at Imperial under the supervision of Dr. Maffeis. He received his MSc in computer science from Georgia Institute of Technology, and his BSc in computer science from King Saud University. Abdullah's focus is on utilizing Large Language Models (LLMs) for systems security.
Adam Jones.
Adam is a PhD student at Imperial under the supervision of Dr. Maffeis and Dr. Zizzo. He received his MEng from Imperial in Computer Science. Adam's research is focused on the security of foundation models that generate code, in particular researching attacks and defenses in the domains of model poisoning and prompt injection.
Archie Licudi.
Archie is a PhD student at Imperial under the supervision of Dr. Maffeis.
They received their Joint Mathematics and Computing MEng from Imperial and have worked at Oxford as a research assistant in federated learning for healthcare. Archie’s research is now focused on applications of concepts from algebra, pattern theory, and formal methods to the design of reliable machine learning systems for cybersecurity.
Fahad Alotaibi.
Fahad is a Honorary Research Associate at Imperial and a Lecturer ad Najran University. He got his PhD from Imperial under the supervision of Dr. Maffeis. He received his MSc from The University of York (UK) in Cyber Security, and his BCs from Shaqra University (KSA) in Computer Science. Fahad’ research is focused on robusting deep learning-based security applications againsts evasion attacks and concept drift. Fahad is also interested in other areas such as digital forensics and ransomware prevention.
Kevin Peng.
Kevin is a PhD student at Imperial under the supervision of Dr. Maffeis. He received his MEng in Electronic and Information Engineering from Imperial. Yunan’s research is focused on cyberattack prediction, specifically combining contextual-awareness techniques and generative models.
Xin Fan Guo.
Xin Fan is a PhD student in the Safe and Trusted AI CDT, a joint program between King’s College London and Imperial, supervised by Dr. Pierazzi and Dr. Maffeis. She holds a BSc in Computer Science from King’s College London. Her research focuses on applying symbolic AI to enhance network security.
Hall of Fame
- 331 Bug Bounties
- Pwn2Own Bounty 2025
- Dima Askarov, Georgios Constantinides, and Constantin Kronbichler exploited the
dvwavm to getrootaccess.
- Dima Askarov, Georgios Constantinides, and Constantin Kronbichler exploited the
- 331 Bug Bounty 2023
- James Nock reported an XSS vulnerability in https://github.com/sparc/phpWhois.org.
- Bug Bounty 2022
- Albert Schleidt demonstrated the Dirtycow privilege escalation exploit on the listener vm.
- Fabian Hauf, Anne-Sophie Hannes, Jonathan Powell, Vincent Bardenheier, Albert Schleidt reported a DOM-based XSS vulnerability in NaturalReaders.com.
- Bug Bounty 2020
- Kelvin Zhang reported an authentication vlunerability in https://play.mtn.co.za/ to HackerOne.
- Ofuscation Bounty 2020
- Winners: James Williams, Marco Selvatici.
- Runner ups: Tristan Nemoz, Robert Jin, James Dalboth and Anonymous.
- Pwn2Own Bounty 2025
- Belmont Lansdown 331 Prizes
- Netcraft was sold to a US private equity fund in 2022-3. Since 2024 Belmont Lansdown, the new company of Mike Prettejohn, the founder and former owner of Netcraft, has provided a £500 prize to each of the top 10 MEng students in the course.
- 2025 winners: Zhanming Chen, Arun Hussain, Mohamed Sharif, James Stadler, Aditya Shrivastava, Dima Askarov, Constantin Kronbichler, Alexander Reade, Nishant Jalan, Kishan Sambhi.
- 2024 winners: Lucy Steele, Huzaifah Farooq, Lucas Graeff-Buhl-Nielsen, Robin Gupta, Boyuan Jiang, Rushil Ambati, Rickie Ma, Anonymous, Robert Wakefield, Thom Hughes.
- Netcraft 331 Prizes
- Between 2019 and 2023 Netcraft sponsored a £250 prize for each of the top 10 performers in the exam.
- 2023 winners: Ghazal Farzamfar, Panayiotis Gavriil, Michal Glinski, Derek Lai, Maximilian Lau, Suhaib Mohammed, James Nock, Matthew Setiawan, Mike Sorokin, Ye Lun Yang.
- 2022 winners: Luqman Liaquat, Albert Schleidt, Thomas Alner, Andy Wang, Vincent Bardenheier, Madi Baiguzhayev, Daniel Ababei, Rodi Degirmenci, Anonymous, Arman Fidanoglu, Thomas Loureiro Van Issum.
- 2021 winners: Michael Kuc, Andreas Casapu, Maksymilian Graczyk, Anonymous, Matteo Bilardi, Anonymous, Ali Abidi, Thomas Roberts, Tilman Roeder, Alexander Reichenbach
- 2020 winners: Zak Cutner, Daniel Hails, Hadrian Lim Wei Heng, Fraser May, Alexander Nielsen, Giovanni Passerello, Matthew Pull, Ethan Sarif-Kattan, Marco Selvatici, Sebastian Reuter
- 2019 winners: Jordan Spooner, Teodor Begu, Thomas Pointon, William Seddon, Niklas Vangerow, Lorenzo Silvestri, Pablo Gorostiaga-Belio, Giorgos Gavriil, Olivier Roques, Aurel Bily