5G-ENSURE Security research archive

Reference · Tooling

IMSI catcher detector apps: what a phone will not let them see

The apps in this category are asked to detect a radio-layer attack from behind an interface that was designed to hide the radio layer. Most of their limitations follow from that one fact.

1Boundary

The baseband is the boundary, and it is not moving

A mobile handset contains two computers. One runs the operating system and the applications. The other, the baseband, runs the radio: it implements the protocols that talk to the network, and it is deliberately isolated, because it is subject to regulatory certification and because a fault in it affects the network as well as the device.

Applications live on the first computer and can only learn about the radio what the operating system relays from the second. That relay was built to support features people expect: how strong the signal is, which network is in use, whether data is available. It was not built to support protocol analysis, and it exposes almost nothing about the message exchange in which an identity is disclosed.

So a detector app is working from a summary. It can generally see the identifiers of the current cell, a signal measure, the generation in use, and sometimes a list of neighbours. From that it must infer whether the cell is what it claims to be, which is a question the summary was never designed to answer. Platform changes over the past decade have narrowed the summary, on privacy and stability grounds that are defensible in themselves and that happen to remove exactly the fields this category of tool needs.

2Heuristics

What the tools do with what they are given

Given a summary, the available approaches are all comparative. A tool can compare the current cell against cells it has seen before in the same place, against a public database of known cell identifiers, or against a model of what a plausible cell looks like. Each approach fails differently, and the failures are structural.

Comparison against history needs history, so it is weakest exactly where a person is most likely to want it: somewhere they have not been before. Comparison against a database inherits the database’s coverage, and a legitimate new cell is indistinguishable from an illegitimate one until somebody surveys it, which means a network expanding normally generates alarms. Comparison against a model of plausibility depends on the model, and real networks contain implausible-looking cells for ordinary reasons: temporary capacity at events, indoor systems, cells that serve a single building.

The one signal that survives all of this reasonably well is the change of generation, which is why it appears on every page here that touches detection. It is not a summary artefact and it is not a coverage question: a modern handset in an area with modern coverage reporting older service is describing something specific, and the reason it is strong evidence is that an attacker wants the downgrade.

3Use

Using one without being misled by it

The practical value of these tools is in the aggregate. A single alert carries very little; a record showing that the same anomaly occurs at the same place on the same kind of day carries considerably more, because the coincidence is what is informative and no single reading can contain a coincidence.

It also helps to know which questions are outside the category entirely. Nothing installed on a handset can detect an observer that only listens, because a passive observer transmits nothing for the handset to notice, and this is why paging exposure has no app-shaped answer. Nothing on the handset can attribute an anomaly to an operator, an agency or anyone else, and the reason that attribution matters is set out in the comparison of the two kinds of interception. And no app can retrospectively tell you whether an identity was collected last week.

What does change the exposure, where a handset offers the setting, is refusing the older generations outright and preferring networks that conceal the subscriber identity. That is a configuration decision, and it acts on the mechanism instead of reporting on it.

QQuestions

Questions and answers

Why can an app not just read the radio?

Because the radio is a separate processor running its own software, and the operating system talks to it through a narrow interface. Applications sit two steps removed: they see what the operating system chooses to publish about the connection, which is a summary intended for showing signal bars, not a view of the radio protocol.

Are the paid ones better than the free ones?

Not in a way that the price predicts, because the binding constraint is the platform interface and every app on a given platform faces the same one. What differs is the quality of the heuristics and whether history is kept, and neither correlates reliably with cost.

What about a dedicated device instead of a phone?

Equipment with direct access to the radio can observe what a handset cannot, and that is the category most credible published measurement work uses. It is a different proposition from an app: it requires expertise to operate and to interpret, and it answers questions about an area; protecting one person is a different job.

So are the apps worthless?

No, but their value is narrower than their descriptions suggest. An app that notices an unexplained drop to an older generation and keeps a record of where and when has told you something real and worth knowing. Treating a warning as confirmation that a specific person is being targeted goes well past what the underlying data can carry.