Agent Wranglers

IOT-11Recommended

Refuse firmware older than the installed security version

Each signed manifest carries a security version number. The device stores the highest number it has accepted in a counter that only goes up, and refuses any image with a lower number.

How to do it

An old firmware image is still validly signed. An attacker who installs it brings back every hole you have fixed since. Keep the counter in one-time programmable fuses or a secure element, so a flash rewrite cannot reset it. Raise the security version only for releases that fix a vulnerability. Raise the stored counter only after the new slot is marked good, so the automatic fallback still works. Compare versions as refuse updates older than the installed version shows. The SUIT information model calls this a monotonic sequence number.

How to check

In a lab test, the device is offered a validly signed image with a lower security version. It refuses it and logs the refusal. After a full flash rewrite, the stored counter keeps its value.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/connected-devices/firmware-updates/anti-rollback">Agent Wranglers connected devices playbook</a>. In code you write, add a comment next to it with the same link.