Microsoft 365 security, Thailand
By Alex, Founder of Raso Cyber. Published in partnership with Digigen.
The email came from a supplier they had worked with for six years.
It was a quotation, shared through a document link, from a name in the address book that had sent forty other quotations that year. Beam, the IT manager at a Bangkok industrial parts distributor, was not the one who clicked it. The company's operations director was. He was in a taxi on Rama IV, running late, and the link asked him to sign in to Microsoft 365 to view the file.
So he signed in. Email, password, and then the Authenticator prompt on his phone, which he approved without breaking stride.
The document opened. It was a real quotation. Nothing about the experience felt wrong, because nothing about it was wrong. He had authenticated to Microsoft, genuinely and successfully, and Microsoft had issued him a session token to prove it.
The only detail he could not see was that his login had travelled through somebody else's server on the way, and that a copy of the token had been kept.
Ninety seconds later, a machine in a Microsoft Azure data centre in the eastern United States used that token to open his mailbox. No password prompt. No Authenticator push. As far as the tenant was concerned, the operations director had simply opened Outlook on another device, and the multi-factor requirement was already satisfied.
He had. In a sense.
Here is the part that people find hardest to accept: nothing broke.
For eleven days, the attacker read email. That is mostly what they did. They read the finance folder, the supplier correspondence, the payment approval threads. They learned who signed off on what, what the invoice format looked like, which suppliers were slow payers and which were owed money that month. They set up a mailbox rule that quietly moved any email containing the words "bank" or "payment" or "โอนเงิน" into an archive folder the director never opened.
Somewhere in that fortnight they worked out that the operations director's account also carried Global Administrator rights in Microsoft 365. It had carried them for four years, since the migration, because somebody had needed them once and nobody had taken them away.
So the attacker created a new user account. Ordinary name. Looked like a service account. Gave it administrative rights, and from that moment did almost all of their work from the new account rather than the director's, because the new account was theirs and nobody was watching it.
Then they waited for an invoice worth taking.
It fell apart in the most ordinary way imaginable.
A sales coordinator came in on Monday, tried to log in, and could not. Her account did not exist. She assumed she had broken something and walked over to Beam's desk to apologise.
Beam checked. The account was gone. Not disabled. Deleted, and then permanently deleted, which is a thing you have to deliberately choose to do. While he was looking at that, a second person appeared with the same problem.
He opened the audit log and started reading, and the floor went out from under him. Accounts created that he had not created. Licences moved around. Users deleted. And then, when he traced the account that had done most of it, an administrator he had never heard of, created eleven days earlier by the operations director's account at four in the morning.
Beam did what almost everyone does next. He reset the operations director's password, forced MFA re-registration, and felt the relief of having done something decisive.
A password reset on one account does nothing to a session that is already running on another.
He was still fully compromised. The attacker did not notice for several hours, and when they did, they simply carried on, because the backdoor administrator account was untouched and the refresh tokens issued to it were still perfectly valid.
By lunchtime the finance manager had a call from a supplier asking why a payment of 1.8 million baht had gone to an account they did not recognise.
I got the call that afternoon. This is the part of the story that matters most, so I want to be specific about it, because the instinct almost every SME follows is the wrong one.
Do not start by resetting passwords. Reset the password and you have addressed the front door while the attacker is sitting in the living room. What you have to do first is revoke the sessions. In Entra ID that means revoking the refresh tokens for every account you suspect, which invalidates the sessions themselves rather than just the credentials that created them. Until that happens, every other step is theatre.
Then, in order:
We got all of that done in about five hours. The 1.8 million baht was partially recovered, because the receiving bank was Thai and the finance manager had moved fast. Partially. Not entirely.
Somewhere around six in the evening, with the tenant finally clean, I asked the managing director a question he had not been expecting.
Personal data had been in those mailboxes. Employee records, customer contact details, supplier information. Under Thailand's PDPA, if a personal data breach poses a risk to the rights and freedoms of the individuals involved, the company has to notify the Personal Data Protection Committee within 72 hours of becoming aware of it. Failure to notify in time carries an administrative fine of up to 3 million baht, entirely separately from any penalty for the inadequate security that allowed the breach in the first place.
Nobody in the room had known that. That is not unusual. The PDPC has been steadily more active through 2025 and 2026, and breach notification failure was cited in every one of the enforcement cases announced in August 2025. The largest penalty issued so far reached 7 million baht against a company that had failed to appoint a DPO, failed to implement adequate security, and failed to notify within 72 hours.
The clock had started that morning, when Beam looked at the audit log. Not when the attacker first got in eleven days earlier. From awareness, not from compromise. They had until Thursday.
They made it, with a day to spare, because the audit log had been preserved and they could actually describe what happened. That is not a coincidence. The companies that miss the deadline are usually the ones that cannot answer the questions, not the ones that do not want to.
Over the following month the company did what a competent organisation does after a bad experience. They bought properly. Advanced identity licensing, a serious email security layer, endpoint detection and response, and third party backup with email archiving.
It is a good stack. It is better than most Thai SMEs have. And when I reviewed it, I asked one question:
Which of these would have stopped the attack?
The honest answer is none of them, not on their own. The root cause was a stolen session token, and a token replay is not stopped by buying a licence. It is stopped by configuration decisions, and most of them were available in the licences they already owned before the incident:
Phishing-resistant MFA
Passkeys, FIDO2 keys, or Windows Hello. The credential is cryptographically bound to the real login domain, so a proxy in the middle has nothing to capture. This is the only control on the list that defeats the attack structurally rather than statistically. Push notifications and authenticator codes do not, because in this attack the user completes the prompt correctly. That is the whole point.
Conditional Access requiring a compliant device
The attacker's infrastructure cannot satisfy a device compliance check, no matter how valid the token is.
Token protection
Binds a token to the device that received it, so a replay from somewhere else is rejected.
Continuous Access Evaluation
Kills a risky session in near real time instead of letting it run until the token expires naturally.
Removing standing administrative rights
The operations director should not have been a Global Administrator for four years. With just-in-time privileged access, that account would have been worth far less to steal.
None of that is expensive. Most of it ships in Microsoft 365 Business Premium. What it costs is a few weeks of somebody's attention and a willingness to look at settings that have not been touched since the tenant was built.
The licences were the easy part.
The tooling used against this company is sold as a subscription. Phishing kits capable of exactly this attack start at around USD 120 a month, and Microsoft has tracked a single kit pushing tens of millions of messages at more than 500,000 organisations monthly. Microsoft has reported a 146% rise in adversary-in-the-middle attacks year on year. In one three day window in April 2026, a single campaign harvested credentials and session tokens from over 35,000 users across 13,000 organisations in 26 countries.
Every one of those users had MFA.
84%
of incident responses where MFA failed to prevent the attack (Obsidian Security)
59%
of taken-over accounts had MFA enabled (Proofpoint)
146%
year on year rise in adversary-in-the-middle attacks (Microsoft)
97%
of companies in Southeast Asia are SMEs
The uncomfortable finding for anybody who thinks their size protects them is this: attackers have worked out that the fastest way into a large manufacturer is through the parts distributor that emails them invoices.
You do not need to understand token binding to have this conversation. You need to ask:
If the answers are vague, that is your finding.
If you are also weighing up who should be running your tenant day to day, our guide on choosing a Microsoft 365 partner in Thailand covers the questions to put to a provider before you sign.
No cost, no sales deck
If you run Microsoft 365 and nobody has independently reviewed your tenant, Raso Cyber will do it at no cost.
We will tell you specifically whether the controls that stop this attack are switched on in your environment: your Conditional Access policies, your authentication methods, your administrative role assignments, your OAuth consent posture, your audit log retention, and your email authentication. You get a plain English report on what is exposed and what to fix first, in what order.
No sales deck. No follow-up call you did not ask for. Just an honest answer to the question the company in this story would have paid a great deal to have asked twelve days earlier.
Book at rasocyber.com Reply through DigigenReply through Digigen and they will put us in touch.
Digigen builds and runs the platform. We check whether it is locked.
About the author: Alex is the founder of Raso Cyber, an independent cyber security practice that assesses and hardens Microsoft 365 and Google Workspace tenants for businesses in Thailand and Singapore. This post was published in partnership with Digigen, a certified Google Cloud and Microsoft Solutions Partner.