Security

446 vulnerabilities, then zero: what an honest inventory changes

Each machine scanned its own images, and nobody could see the fleet. By centralising the analysis on the real inventory (111 unique images instead of 25 local databases), the counter went from 446 to 0 in one evening. The story of a measurement project, not a fixing one.

Contents (5 sections)
  1. The previous setup: accurate, and yet wrong
  2. Centralising again, and counting properly
  3. 446, then zero
  4. The sensor and its output
  5. What changes for you

There is one question we always ask during an audit, and it rarely takes less than ten minutes to answer: how many container images are running in your environment, exactly? Not “roughly”, not “the ones in the production docker-compose”. The number. In most fleets, nobody knows, because nobody has ever needed to know, until the day someone has to answer “are we exposed to this vulnerability?”

We asked ourselves that question a few days ago. The answer took us an evening, and it was worth it.

The previous setup: accurate, and yet wrong #

Each host analysed its own images locally and reported its results. On paper, it is common sense: the analysis happens where the images live, the load is spread out, no data moves around. Each machine gave an accurate verdict about itself.

The problem was not the accuracy of each measurement, but what we did with it. Twenty-five local analyses produce twenty-five figures. They never produce the figure for the fleet. There was no way to answer “which version of this database is still running somewhere?” without querying twenty-five machines one by one, and without being sure we had not forgotten any.

Centralising again, and counting properly #

We replaced the local analyses with a single analysis, run against the real inventory of the container fleet. The difference in coverage is the first lesson: 111 unique images, where the previous setup examined only 25 local databases. It is not that 86 images were vulnerable and ignored; it is that 86 images were not being looked at by anyone, and the vast majority of them were perfectly fine. But we did not know that.

The second lesson concerns prioritisation. Not all vulnerabilities are equal, and sorting by theoretical severity is a poor guide: a “critical” flaw in a component no attacker exploits in real life gets ahead of a “medium” flaw that is actively being used. The right filter exists: the KEV catalogue from the US CISA, which only lists vulnerabilities whose exploitation has been observed in the wild.

Our scanner had stopped exposing this information in a recent version. So we went and fetched it directly from the official catalogue and cross-referenced it with the results ourselves. It takes three lines of processing, and it turns a list of hundreds of entries into a handful of things to do this week.

446, then zero #

Once the inventory was accurate and the sorting useful, the fixing work became manageable. The fleet counter went from 446 vulnerabilities to 0 in one evening.

That figure needs an honest qualification, or it means nothing. It does not mean we fixed 446 code defects one by one. It means that 446 findings concerned outdated base images, and that once the inventory was known, rebuilding them all cleared most of it in one go. The hard part was not the fixing. It was knowing what to fix.

You cannot patch what you have not inventoried. And you do not build an inventory by asking each machine to describe itself.

The sensor and its output #

That leaves the question of output: to whom, and at what threshold? This is the part we most often see rushed, and the one that decides whether the setup is any use.

A sensor whose output has not been thought through produces noise, and weekly noise that people end up ignoring is worse than silence: it gives the feeling of being monitored without actually being so. So we connect the output after checking that the signal is clean, with a simple rule: the summary only goes to team channels if there is really something to report. A healthy fleet produces no messages at all. That is deliberate, and it is why people still read the messages when there are some.

What changes for you #

If you entrust us with your hosting or your server and application management, this project has three concrete consequences, and they can be checked:

  • We can answer “am I exposed to this vulnerability?” in a minute, because the inventory exists and is up to date, not because someone remembers what runs where.
  • Prioritisation is based on real-world exploitation, through the KEV catalogue, not on a theoretical score. You do not pay for engineering time on vulnerabilities nobody exploits.
  • The figure is a measurement, not a promise. “We patch regularly” commits nobody to anything. “446 then 0, on a given date, across 111 images” can be checked.

And if you manage your own fleet, the question to ask yourself tonight is not “am I up to date?”. It is: do I know what I have? As long as the answer is no, every other figure is an opinion.

About
01/Read nextThree articles

Related articles

Security

A stale lock file is a scan that lies

Dependency lock files are the source of truth for security scans. When a build pipeline quietly rewrites them instead of failing, the scan reads the wrong versions and returns a reassuring verdict. How we found out, and what we changed.

dependenciessoftware supply chain
Security

Rolling out a SIEM across 38 machines: Wazuh, from sizing to tuning

A log that stays on the compromised machine is worthless. We deployed Wazuh across the whole fleet in two days: a dedicated VM, twelve-month retention, 38 agents in three waves, and above all tuning that brought the noise down from 1,250 alerts per machine to 8 for the entire fleet. The installer pitfalls, compliance checks in containers, and the home-made detections that really matter.

wazuhsiem
Security

An SSH bastion for 43 machines: why Warpgate, and how we set it up

Three tool keys on every server, up to six copies on one hypervisor, and no central record of who did what. In one day, we put all fleet administration behind Warpgate, an open-source bastion that records every session. The principle, the architecture, the key consolidation, and the pitfalls that each cost us a round trip.

warpgatebastion

What next

Spot problems before they cost you?

Centralised logs, alerts, patches applied on purpose, backups actually restored. First conversation free.

Discuss your project

Reply within 24 working hours, from one of the two founders. Or by phone: +33 7 59 96 14 99.