Home - parastuffs/Embedded-Security GitHub Wiki
Attack The Vault!
This is your vault, an Arduino Uno:
Inside the vault, there is a secret keyphrase stored.
The vault will prompt you to input a password. When correctly entered, a hash of the secret keyphrase is replied, along with the associated salt.
Deliverables
- Hash and salt to prove you managed to enter the vault.
- Write-up of the method(s) you used to enter the vault. There might very well be more than one attack vector.
Write-up minimal content
Your write-up should have at the very least the following elements:
- Hardware necessary to conduct your attack, as well as schematics describing their interfacing.
- Asset description
- Attack tree
- Vulnerability severity assessment
- Attack(s) description and implementation
- Proposed counter-measure(s)
First step
[!IMPORTANT] Start by uploading the firmware to the Arduino. You can use
avrdudeto do so:
avrdude -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -Uflash:w:firmware.elf
Planning
This planning is tentative, meaning it should serve as guidelines to assess your progression and evaluate the effort necessary during the autonomous sessions.
-
Session 1
- Attack tree draft
- Flash the firmware on the target
- Analyse the target behaviour
- Decide on a preferred attack vector
- Decide on a platform for the write-up, initialise it and share it with the teacher
-
Session 2
- Successfully interface the ChipWhisperer-Nano with the target
- Instrument the behaviour of the target to get information using the CW-Nano
- Start implementing the attack
-
Session 3
- Finish the attack; retrieve the secret from the target
- Feedback on the initial write-up draft
-
Session 4
- Evaluate the severity of your attack using CVSS v4
- With the original source code, devise a counter-measure tailored to your primary attack
- Demonstration of the counter-measure effectiveness; the exploitation phase is not applicable any more
-
Session 5
- Explore a secondary attack vector on the original firmware
- Devise an updated primary attack to bypass the counter-measure
- [ ] Closing self-assessment skill inquiry
Evaluation
50% of the grade is set by the write-up, 50% by a 15 minutes, individual discussion.
Grids
For each grid, there are three levels: acquired, partially acquired and not acquired. They respectively award 100%, 50% or 0% of the associated criterion. Each criterion as an assigned weight within the total grade of the evaluated part (written or oral).
Write-up
| Acquired | Partially acquired | Not acquired | Weight | |
|---|---|---|---|---|
| Form | Well-written, easy to follow, illustrated | Lack of structure | 20 | |
| Reproducible | We can take it as-is and get to the same result | We need to deduce some commands or information by myself | Cryptic | 10 |
| Attack tree is complete | All are present: attacker, attacks, counter-measures and asset | Some branches are missing | Severely lacking: no counter-measures, no difference between exploration and exploitation, ... | 10 |
| A vulnerability is correctly identified | We have proofs of its identifications, information leaking prior to the attack that we can exploit | A vulnerability is targetted, but without proper ground | What vulnerability? | 10 |
| The Attack is appropriate with regard to the identified vulnerability | Correctly aligned | Adjacent; no entirely linked to the vulnerability | Makes no sense | 10 |
| The attack is correctly implemented and manages to retrieve the secret | Works as intended | Does something, but the secret is not retrieved | Does not work | 20 |
| The proposed counter-measure would indeed void the exploit | Yes | In some specific context | No | 10 |
| Complete vulnerability assessment: score, analysis, recommendations | Complete | Partial | Absent or severely lacking | 10 |
Oral discussion
| Acquired | Partially acquired | Not acquired | Weight | |
|---|---|---|---|---|
| Answers to questions | They are correct and the student can elaborate on the subject | Correct, but that's it | Incorrect | 35 |
| Course topics | Can navigate between the subjects, make links between the chapters | Knows about the topics individually, but can't see how they are related | What topics? | 25 |
| Perspective | Can take a step back regarding their project, identify flaws, strong points | Can describe the project | Barely understand what they did | 40 |
- Example of discussion topics:
- If we wanted to cipher the serial communication, what scheme would you recommand?
- Say the firmware was signed, would you have acted differently?
- Could you have used a clock glitching attack (which is not available on the CW-Nano)?
- How would a white-box system have changed your approach?