how it happened
- whointruderinside Starwood since 2014
- the gapunreviewed systemsno detailed security review
- then4 years unseenno logging or segmentation
- the result339M recordsfound September 2018
what everyone assumed
A large organisation has security tools, logs, and people whose job is to watch for trouble, and the reasonable belief that follows is that an intruder inside your systems would surface: an alarm, an anomaly, a noticed login. It is a comforting and ordinary assumption, because it is the whole point of having the tooling in the first place. The belief is that presence gets detected, that four years of someone inside your database is simply not something that can happen without anyone noticing.
what happened
It happened across four years. The FTC later found that the environment lacked the things that turn presence into a signal: network segmentation, adequate logging and monitoring, appropriate access controls, adequate multi-factor authentication. The access spanned a corporate acquisition, and during that acquisition the buyer did not complete a detailed security review of what it was absorbing, which meant the intruder already inside Starwood’s systems was never surfaced by the diligence either. Quarter after quarter, the database returned answers to a visitor who was not supposed to be asking, and no screen lit up to say so.
step by step
- around July 2014an intruder is inside Starwood's systemsNo segmentation, thin logging and weak MFA, the FTC later finds.
- Marriott acquires StarwoodNo detailed security review of what it absorbs.the assumption breaks here
- four years of quiet accessThe reservation database answers a visitor nobody sees.
- 8 September 2018one alert finally flags it339 million guest records, 5.25 million unencrypted passport numbers.
how it surfaced
On September 8, 2018, an internal tool flagged a suspicious attempt to access the Starwood reservation database, and the long stay finally became visible. Marriott disclosed the breach on November 30, 2018. The regulator’s account put the scale at 339 million Starwood guest records worldwide, including 5.25 million unencrypted passport numbers, accessed across a window that ran from around July 2014 until that September. The detection that ended it was one alert, four years after the access began.
Noticing has to be built into a system. It does not happen on its own.
An intruder is detected when monitoring, logging, and segmentation are present to catch them, and where those are thin, presence can last for years without producing the alarm everyone assumed would come.
picture it at a company like yours
The company here is made up. The other two paths are not: they happened, and each links to the story.
- in this storythe day it mattersThe intruder carries on quietly inside your merged company for years.what it costs youYou discover it long after, and the customer data of both companies has been exposed.
- or it goes like thisit happenedSalesloft / Drift, 2025howA chat tool's key into your CRM is stolen from the vendor.what leavessupport tickets, including passwords pasted into themwho ends up with itan extortion group working through hundreds of companies
- or it goes like thisit happenedGitHub OAuth tokens, 2022howIntegration keys to your code host are stolen from the integration vendor.what leavesyour private code and the secrets inside itwho ends up with itattackers looking for the next door
sources
your turn
what you can do about it
this week
Pick your most sensitive data store and ask what would tell you someone is reading it.
Your organisation has systems you trust to behave, and the quiet confidence that you would know if something were wrong inside them. The question the quiet months ask is whether that confidence rests on tooling or on the absence of bad news: this week, pick your most sensitive data store and ask one concrete thing, if someone were reading it right now who should not be, what specifically would tell you, and how long would it take. The Starwood answer, for four years, was nothing and no one.
go deeper
if you're not sure where to start
Run the offboarding checklist on one leaver. It covers every account and token to close when someone leaves.
open the checklist →
