Final Project
Weight: 30% of the course grade Proposal due: Friday of Week 5 — 30 October 2026, 23:59:59 Deliverables due: Friday of finals week — 11 December 2026, 23:59:59
- Final Project
- Introduction
- Choosing early matters
- Proposal (required, all projects)
- Project A — Full device assessment (undergraduate track)
- Project B — Build and break a defensible device (either track)
- Project C — Fault injection and glitching (graduate track)
- Presentation requirements
- Grading
- Academic integrity
- References
Introduction
The five assignments walk you through a complete assessment pipeline one stage at a time, on targets chosen so that each stage works. The final project asks you to do the whole thing yourself, on a target nobody has pre-verified, and to say something defensible about what you found.
Three options are offered. They are genuinely different kinds of work rather than three difficulty levels of the same work, and they are aimed at different audiences:
| Project | Shape of the work | Best fit |
|---|---|---|
| A — Device assessment | Breadth. Apply the whole pipeline to one real device. | CS 410. The default undergraduate choice. |
| B — Build and break | Engineering. Build defences, then attack a peer’s. | Either track. Pairs. |
| C — Fault injection | Depth and novelty. Research methodology and evaluation. | CS 510. The default graduate choice. |
CS 410 students may attempt Project C, and CS 510 students may choose Project A, but in both cases the deliverable is held to the standard of the track you are enrolled in, not the track the project is aimed at. A CS 510 student doing Project A is expected to produce an assessment of professional depth; a CS 410 student doing Project C is expected to produce real results, not just an attempt. Talk to me before choosing across tracks.
Choosing early matters
Project C in particular benefits from being chosen by Week 4, because the glitching hardware is limited, bench time has to be scheduled, and a literature review is not something to start in Week 9. Projects A and B are safe to commit to at the Week 5 proposal deadline.
Proposal (required, all projects)
Due end of Week 5. One to two pages in final/proposal.md, covering:
- Which project you are doing, and for Project B, who your partner is.
- Your target — the specific device, or for Project B the specific platform and defence goals.
- What you expect to find, stated as something that could turn out wrong.
- Your fallback if the primary approach fails. This is not optional and it is graded. Hardware projects fail for reasons outside your control — a locked debug port, a potted module, a dead board — and the plan for that is part of the work.
- What you need from the course: hardware to sign out, bench time, a target device from the course stock.
I will return comments within a week. An approved proposal is a commitment; if you need to change targets after approval, tell me rather than discovering it in the final report.
Project A — Full device assessment (undergraduate track)
Aimed at CS 410. This is the project that most closely resembles what a junior consultant actually does.
Take one real consumer IoT device — not the course platform — and assess it end to end using the OWASP IoT Security Testing Guide device model as your structure. Course stock includes a selection of routers, cameras, smart plugs, and sensors; you may also propose a device you own.
What you do
Work every stage the course covered, and report what you found at each, including the stages that yielded nothing:
- Reconnaissance. Teardown, chip identification, FCC filing review, vendor documentation, existing published research on the device or its SoC.
- Interfaces. UART, I2C, SPI, JTAG/SWD. What is exposed, what is locked.
- Firmware. Extraction by whatever path works — download, console, flash read. Filesystem analysis, credential hunting, version inventory.
- Network and radio. Traffic capture, service enumeration, update mechanism analysis, and whatever the device’s radios do.
- Reverse engineering. At least one binary analyzed to the depth of HW #5 Task 3.
- Evaluation against a baseline. Assess the device against ETSI EN 303 645 or NIST IR 8259A. Which provisions does it meet, which does it fail, and which do not apply?
A stage that produced nothing is a result. “Debug port present but locked; I confirmed lockout by X and did not pursue fault injection” is a finding about the device’s security posture, and it is worth reporting.
Deliverables
- Assessment report, 15–25 pages, structured as a professional deliverable: executive summary, methodology, findings with severity ratings, evidence, and remediation recommendations. Findings must include enough detail to reproduce.
- A coordinated disclosure section. For your most significant finding: who
would you notify, through what channel, on what timeline, and what would you
do if they did not respond? If the vendor has a published disclosure policy or
a
security.txt, cite it. You are not required to actually disclose — but if you find something serious and want to, come talk to me and we will do it properly. - Recorded presentation, 15±2 minutes, per the presentation requirements.
- Lab notebook, committed throughout, showing the work as it happened.
What distinguishes a strong submission
Depth on something. A report that lists twelve superficial findings is weaker than one that lists four and takes one of them all the way down to the instruction that causes it. Severity ratings that are justified rather than asserted. And honesty about limits — what you could not test, and why.
Project B — Build and break a defensible device (either track)
Suitable for either track. Done in pairs, and the pairing is structural: you build a defended device, your partner attacks it, and you attack theirs.
The pedagogical claim being tested here is that you do not really understand a defence until someone competent has tried to get past it.
Phase 1 — Build (Weeks 5–8)
Using the course Feather platform, design and implement a device with a defensible security posture. Required properties:
- Authenticated, replay-resistant radio protocol. Build on your HW #4 Task 4 defence, hardened. Must survive receiver reboot, message loss, and reordering.
- Confidentiality where it is warranted. Justify what you encrypt and what you do not — encrypting everything is a design decision with costs, not an automatic win.
- Authenticated firmware update. Any update path must verify authenticity before accepting. You may implement signature verification or a MAC-based scheme; justify the choice.
- A documented key management story. Where do keys live, how are they provisioned, what happens when one is compromised, and what does an attacker with physical access to one device learn about the others?
- A written threat model stating what you defend against and — equally important — what you explicitly do not. See Threat Modeling.
Phase 2 — Break (Weeks 9–10)
Exchange devices with your partner. You get the hardware and the threat model, but not the source code — this is grey-box, matching the position of a real attacker who can buy the product and read the marketing.
Attack it. Everything in the course is fair: RF capture and replay, bus sniffing, flash extraction, glitching if you have the hardware and approval. Document every attempt, successful or not.
Deliverables
- The implementation, committed with build instructions that work on a clean checkout.
- Design document covering the threat model, the design decisions, and the justifications.
- Attack report on your partner’s device: what you tried, what worked, what did not, and — for anything that worked — the specific design decision that made it possible.
- Response document: having read your partner’s attack report on your device, what would you change? A defence you would not change after being attacked is a defence you have not thought about hard enough.
- Joint recorded presentation, 20±2 minutes, covering both builds and both attacks.
A note on grading pairs
You are graded individually. Your build, your attack report, and your response document are yours. A partner whose device proves weak does not lower your grade — a thorough attack report on a weak device is a better deliverable than a thin one on a strong device. Conversely, “I could not break it” earns full credit if the attempts are documented and competent, and no credit if they are not.
Project C — Fault injection and glitching (graduate track)
Aimed at CS 510. This is the research-shaped option, and the one with real methodological demands.
Fault injection deliberately induces hardware faults — voltage glitches, clock glitches, electromagnetic pulses — to make a processor skip or corrupt an instruction at a chosen moment. It defeats software checks that are otherwise sound, which is what makes it the standard answer to a locked debug port or a signature verification you cannot reverse.
The course kit includes a ChipWhisperer Lite and a Faultier.
Scope options
Choose one, or propose your own:
- Debug lockout bypass. Take a part with debug protection enabled and attempt to glitch past the boot-time protection check. Characterize the parameter space — glitch width, offset, voltage — and report a success rate.
- Signature verification bypass. Against a secure-boot implementation (course-provided or your own from Project B), glitch the verification branch. Report where in the execution the vulnerable window sits and how wide it is.
- Side-channel key recovery. Use power analysis rather than fault injection to recover a key from a software AES implementation. Differential or correlation power analysis, with a proper evaluation of traces required versus success rate.
- Instructor-approved alternative. A different original investigation of comparable depth — RF fingerprinting of LoRa transmitters, a systematic study of update security across a device class, an emulation-based fuzzing harness for embedded firmware. Propose it by Week 4.
Research requirements
This option is graded as research, which means:
- Literature review. Minimum eight peer-reviewed or equivalent-quality sources. Situate your work: what has been done, what has not, where yours sits. Venues to draw from include USENIX Security and WOOT, CHES, IEEE S&P, ACM CCS, and NDSS.
- A stated methodology, written before you collect data, specifying what you will vary, what you will measure, and what result would count as success or failure.
- Quantitative evaluation. Success rates across trials, not anecdotes. A glitch that worked once is a story; a glitch that works 3.2% of the time across 10,000 attempts at a characterized parameter set is a result.
- Honest negative results. A well-executed attempt that did not succeed is publishable-grade work if the methodology is sound and the negative result is characterized. It is graded as such here. What is not acceptable is an uncharacterized failure — “I tried some settings and nothing happened.”
- Threats to validity. What could make your conclusion wrong? Sample size, device-to-device variation, environmental factors, measurement error.
Deliverables
- Paper, 8–12 pages in ACM or IEEE conference format, with abstract, related work, methodology, results, discussion, threats to validity, and references.
- Data and code, committed, sufficient for someone else to attempt reproduction.
- Recorded presentation, 20±2 minutes, in conference-talk form.
Presentation requirements
All three projects require a recorded presentation. Record a screen capture with voice-over — OBS Studio is free and works well.
- Length: as specified per project, ±2 minutes.
- Format: MP4. Preferred 720p60; maximum 1080p60; minimum 720p30.
- Slides required. Beamer, PowerPoint, Keynote, or presenterm are all acceptable.
- Legibility counts. Do not show code that cannot be read at the final render resolution. If a terminal transcript matters, zoom in on the part that matters.
- Audio clarity counts, which is not the same as audio quality. A cheap microphone in a quiet room beats a good one in a loud one.
- Submission: upload to Google Drive and put the link on a line of its own
in
final/final.md. Verify the link works from a private browsing window before you submit — a link I cannot open is a presentation I cannot grade.
Grading
The final project is 30% of the course grade, distributed as follows:
| Component | Points |
|---|---|
| Proposal (Week 5), including the fallback plan | 10 |
| Technical execution — depth, correctness, and rigor of the work | 35 |
| Written deliverable — report, design documents, or paper | 30 |
| Presentation — content, clarity, and delivery | 20 |
| Notebook and commit history showing work over time | 5 |
| Total | 100 |
Graduate submissions are held to a higher standard within the same rubric, principally on the technical execution and written deliverable components. Concretely, for CS 510: claims require evidence, evaluation requires numbers, and related work must be engaged with rather than listed.
What earns full marks on technical execution
- The work is reproducible from your documentation by someone with the same hardware.
- Conclusions follow from evidence you present, rather than from assertion.
- Limitations are stated by you before a reader has to notice them.
- Something in the project went wrong and the record shows how you handled it.
Academic integrity
Prior work on your target is often extensive — use it, and cite it. Building on published research is normal and expected; presenting it as your own discovery is misconduct. If someone has already extracted firmware from your device and written it up, cite them, then go further.
Tools are tools. Using binwalk, Ghidra, an LLM, or anyone’s published script
is fine and expected. Representing tool output as your own analysis without
verifying it is not, and it tends to be self-punishing — a decompiler’s
misinterpretation restated confidently in a report is exactly the kind of error
these projects are designed to surface.
See the academic misconduct policy on the course home page.
References
- OWASP IoT Security Testing Guide — https://owasp.org/www-project-iot-security-testing-guide/
- OWASP Firmware Security Testing Methodology — https://github.com/scriptingxss/owasp-fstm
- ETSI EN 303 645, Cyber Security for Consumer IoT — https://www.etsi.org/deliver/etsi_en/303600_303699/303645/
- NIST IR 8259A, IoT Device Cybersecurity Capability Core Baseline — https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8259A.pdf
- CERT Guide to Coordinated Vulnerability Disclosure — https://www.sei.cmu.edu/library/the-cert-guide-to-coordinated-vulnerability-disclosure/
- security.txt (RFC 9116) — https://www.rfc-editor.org/rfc/rfc9116.html
- ChipWhisperer documentation — https://chipwhisperer.readthedocs.io/
- Faultier — https://1bitsquared.com/products/faultier
- USENIX WOOT proceedings — https://www.usenix.org/conferences/woot
- IACR CHES (Cryptographic Hardware and Embedded Systems) — https://ches.iacr.org/
- ACM conference proceedings format — https://www.acm.org/publications/proceedings-template
- IEEE conference templates — https://www.ieee.org/conferences/publishing/templates.html
- OBS Studio — https://obsproject.com/
Related course pages: Schedule · Course home · HW #4 · HW #5 · Threat Modeling · Technical Writing
🛠️ Maintenance note: Project A depends on course-stock target devices — refresh the pool periodically, since a device that has been assessed by three previous cohorts has published student writeups circulating. Project C depends on glitching hardware availability; confirm the ChipWhisperer and Faultier are functional and that the target part still ships with the protection mechanism the exercise assumes. Conference paper templates and the ETSI/NIST document versions should be re-checked each offering.