
Firmware analysis
Extracted and unpacked: embedded credentials, keys, certificates, debug functionality and unsafe update handling.
IoT pentest
Security testing for connected devices: firmware, hardware interfaces, wireless and the cloud behind them. Shows what an attacker can do with a device in hand, before you ship.

Organizations we secured




An IoT pentest assesses a physical connected device as a whole product: the firmware it runs, the hardware interfaces on the board, the radio protocols it speaks, the mobile app that controls it, and the cloud service they all talk to.
Testing any one of those alone misses the point, because the interesting attacks cross the boundaries: firmware extracted from one unit yields a key that authenticates every unit, and a debug interface left populated gives a shell, then a cloud credential that turns out not to be scoped per device. The assumption driving it is physical possession. Somebody will buy your device and open it, so any control that depends on them not looking is not a control.

A device is a product, not a firmware image. All five surfaces are in scope because attackers do not respect the boundaries between them.

Extracted and unpacked: embedded credentials, keys, certificates, debug functionality and unsafe update handling.

UART, JTAG, SWD and SPI flash. Populated headers and readable flash are the most common way in.

BLE, Zigbee, Z-Wave, LoRa and proprietary sub-GHz, tested for pairing, authentication, replay and interception.

Whether an update is signature-verified, whether it can be downgraded, and whether secure boot is enabled and not merely available.

The API the fleet talks to, including whether one device's credential is scoped to that device or to everything.

The mobile app that pairs and controls, tested as a full mobile assessment alongside the device.
We assume physical possession, because that is the real threat model for a shipped product. A control that depends on nobody opening the case is not a control, and grading a device as though the attacker will not do the obvious is how vendors end up surprised.
The cloud side is always in scope. The single most consequential finding on IoT engagements is a device credential that authenticates against the whole fleet instead of one unit, and it is only findable by testing the device and the backend together.
Hardware work happens in the lab, which means devices are shipped to us and we tell you at scoping what is likely to be destructive and what is not.
It changes what the test can prove. Most providers pick for you; this is the reasoning so you can pick yourself.
| Approach | We start with | Trade-off |
|---|---|---|
| Black box | We start with nothing but the name of the target, the way a real attacker does. | Highest realism, lowest coverage. Time spent discovering is time not spent testing. |
| Grey box | We start with the access a legitimate user or partner would have. | The honest default for most engagements. Realistic enough, and covers the logic flaws a black box run never reaches. |
| White box | Full access to documentation, configuration and where relevant source code. | Highest coverage, lowest realism. The right choice when the question is completeness, not plausibility. |
Grey box with documentation and a couple of units is the practical default. White box with firmware source and schematics gets materially deeper on secure boot and update handling. Black box is honest but slow, and the budget goes into reverse engineering, not into findings.
The same six phases on every engagement, so two reports a year apart are comparable.
Everything in scope is enumerated first, from whatever position the engagement starts in. A test run against an incomplete asset list is a test of the wrong thing, and this is the phase clients most often want to shorten.
We work out what an attacker would actually want here and which routes would get them there, so the effort goes where the risk is instead of evenly across a checklist.
Automated tooling for coverage, then hands-on analysis of everything it surfaced and everything it cannot reason about. Nothing is reported on tool output alone.
Findings are proved, never asserted. If we say something is exploitable, we exploited it, and the report contains the steps you can follow to see it yourself.
What the foothold is worth: what it reaches, what it escalates to, and which other findings it chains with. Two mediums that together reach cardholder data are not two mediums.
Executive summary, technical findings with severity, reproduction steps and named owners, ATT&CK mapping, and a remediation order that reflects real risk and not raw CVSS.
Federal entities and critical national infrastructure operators evidence several IAS control families through testing, not documentation, because a control marked implemented on a screenshot has not been shown to hold.
Abu Dhabi healthcare providers and payers must protect health information across its lifecycle, with testing designed so that clinical availability is never the thing at risk.
Dubai government entities and their suppliers must test proportionately to the classification of the information handled. Supplier connections are explicitly in scope, which is the part most organisations forget to include.
An IoT pentest covers five surfaces: the firmware, the hardware interfaces on the board, the radio protocols, the mobile companion app and the cloud backend they all talk to.
Extracted and unpacked for embedded credentials, keys, certificates, debug functionality, cryptographic use and unsafe update handling.
UART, JTAG, SWD, SPI flash and any populated header or test pad left on a production board. Populated headers and readable flash are the most common way in.
Pairing, authentication, replay, interception and range on whichever protocol the device uses.
The mobile application that pairs and controls, tested as a full mobile assessment.
Device identity, credential scope per unit, the provisioning flow and the fleet management API.
Testing any one alone misses the point, because the interesting attacks cross the boundaries between them.
An IoT pentest needs two or three units of the same model, shipped to our lab.
Hardware work can be destructive, and having a spare means a bricked unit does not end the engagement halfway through. One unit takes the hardware work, and an intact unit is needed for radio, local network and companion app testing against a device that still behaves normally.
Send them with whatever documentation you can: schematics, a firmware image, the provisioning procedure and test accounts on the backend. Each one shortens the time spent discovering and lengthens the time spent testing.
An IoT pentest may destroy one device, and we tell you at scoping which steps carry that risk before taking any of them.
Chip-off flash reading and some probing are destructive by nature. Desoldering a flash chip to read it, or lifting a pad to reach a test point, cannot be undone. We do not take those steps without your agreement, and we try the non-destructive routes first: a populated UART or JTAG header, an in-circuit read of the flash, or an update image obtained from the backend.
Physical possession is the threat model, so what a destructive step yields matters even if you would rather we did not take it. If a key comes out of the flash, an attacker with a soldering iron gets the same key.
Yes, an IoT pentest includes the cloud backend and the mobile companion app, and it should, because the most consequential findings only appear when they are tested with the device.
The most consequential IoT finding we report is a device credential scoped to the whole fleet rather than to one unit. It is only visible when a credential pulled from one device is tried against the API on behalf of another. Provisioning, device identity and the fleet management API are tested as part of the same engagement.
The mobile app is tested as a full mobile assessment within the same engagement. It is usually where pairing secrets and backend credentials are handled, so excluding it leaves a large gap. Its own storage, transport and backend are in scope.
An IoT pentest covers BLE, Zigbee, Z-Wave, LoRa and proprietary sub-GHz radio.
For each protocol we test pairing and authentication, replay, interception and range. The typical finding is not a broken protocol but a device that accepts a pairing it should have refused, or a command that can be recorded and played back without the key.
If your device uses something unusual, tell us at scoping so we can confirm we have the hardware for it, instead of discovering that mid-engagement. Range is tested because an attack that needs the attacker in the room is a different finding from one that works from the street.
No, secure boot on its own is not enough to pass an IoT pentest, though it raises the bar considerably and it is worth having.
What we test is whether it is actually enforced in the shipped configuration, whether rollback to an older signed image with a known flaw is possible, and whether debug paths bypass it. Available and enabled are different things, and a board with secure boot left unenforced and a populated JTAG header has neither.
The update path is tested alongside it: whether an update is signature-verified, whether the verification can be skipped, and whether an unsigned image can be made to run.
An IoT pentest typically takes three to four weeks including firmware, hardware, radio, the backend, the companion app and reporting.
Unfamiliar architectures or heavy obfuscation extend it, because time then goes into reverse engineering instead of into findings. A firmware image and schematics supplied at the start have the opposite effect.
Lab time and shipping are part of the plan. Devices come to us, and the timeline starts when they arrive, not when the order is signed. A retest of open findings once fixes land is quoted up front with the engagement, so it is a known cost.
The best time for an IoT pentest is before you ship, at the design or pre-production stage.
Findings at that stage cost a firmware change. The same findings after shipping cost a recall or a fleet update, if a fleet update is even possible, and a hardware finding on a shipped product cannot be fixed in the field at all.
Shipped products are still worth testing. A device already in the field is exactly the device an attacker holds, and knowing what it yields lets you fix the backend side, which is where the fleet-wide damage would be done.
An IoT pentest assumes physical possession, because somebody will buy your device and open it, so any control that depends on them not looking is not a control.
A populated UART or JTAG header gives a shell or a debugger on the running device. From there the filesystem, the running processes and whatever is in memory are readable, and that is often the whole product.
Readable SPI flash, in circuit or chip-off, yields the firmware image. Unpacked, it typically exposes embedded credentials, keys, certificates and the update mechanism, and a key extracted from one unit is often the key every unit uses.
The report states plainly what possession yields: whether it stops at one device, or reaches the fleet through a shared secret and the backend.
An IoT pentest is grey box by default, with documentation and a couple of units, and white box with firmware source and schematics gets materially deeper.
Devices only, as an attacker who bought one would have them. Honest but slow. The budget goes into reverse engineering, not into findings.
Devices, documentation, a firmware image and test accounts on the backend and app. The practical default, and enough to reach the cross-surface findings that matter.
Firmware source and schematics as well. Materially deeper on secure boot and update handling, because we can read what the bootloader checks instead of inferring it from behaviour.
The deliverables of an IoT pentest are findings across all five surfaces with severity and reproduction, an assessment of what physical possession yields, backend findings, and remediation split between firmware and hardware.
What a firmware update can fix: embedded secrets, unsafe update handling, exposed services, radio pairing logic and most cryptographic misuse. These can reach the fleet, if the update mechanism is sound.
What needs a board change or a manufacturing change: populated debug headers, readable flash, secure boot not enforced, and test pads. These only reach the next revision, so they are called out separately and early.
Each finding carries a named owner. Once fixes land we retest, quoted up front, and issue an attestation of what was tested and found, not a certificate.
An IoT pentest follows the same six phases as every RedTeam Security engagement, with device findings written against the OWASP ISVS and mapped to MITRE ATT&CK where a technique applies.
The UAE regimes that reach a connected device are the ones that govern the data it handles. Abu Dhabi healthcare providers under ADHICS must protect health information across its lifecycle, with testing designed so clinical availability is never at risk. Federal entities and critical national infrastructure operators evidence IAS control families through testing. Dubai government entities and their suppliers test proportionately to the information classification under the DESC ISR.
A connected device in front of patient or government data is part of the system the obligation covers, and the report is written so an assessor can follow it from scope to retest.
Tell us what needs testing. We reply with a scope, a timeline and a quote, under NDA.