Pinned Tweet
kqlquery.com is live! 🛡️ I thought about starting a blog page for a while now, the first steps have been taken. In the next period, I will start uploading more #KQL and security related content.
Bert-Jan 🛡️ retweeted
I'm very sad Microsoft decided to deprecate runDetails for custom detections via the GraphAPI. This was the only official method to track detection health in Defender XDR. I can't understand why removing this is deemed a good idea, this was important.
learn.microsoft.com/en-us/gr…
Bert-Jan 🛡️ retweeted
Forever relevant ⬇️
Having responded to probably hundreds of incidents at this point, from ransomware to APT's, in my experience, the lack of knowledge on how to adequately secure Entra applications and service principals continues to be the biggest knowledge gap most defending teams have.
You should be able to securely configure apps, detect compromise of apps and understand how to investigate compromise of apps. It seems overwhelming at first, but it isn't.
Get started like this
Secure them:
•Use managed identities where possible - negates the need for credential handling
•Limit privilege - reduce both the permissions granted and add additional API specific restrictions (i.e don't grant read/write all to all SharePoint sites, just the ones an application needs to access). This includes pushing back on vendors or internal teams that request privilege not required
•High privileged applications should have no direct owners - lower privileged users can be granted direct ownership of an app, don't do this, govern the ability to manage applications via Entra ID roles
•Configure credential restrictions such as requiring shorter lived secrets or enforcing use of certificates
•Remove unused apps and service principals, this can prevent existing high privileged apps being leveraged and reduces your supply chain compromise footprint for multitenant apps
•Monitor risk events for service principals like you would users
Detect compromise of them:
•Alert on application creation or application credential creation - may be noisy in large environments, but a good starting point
•Alert on credentials being added to service principals - credentials generally live on the application object, service principal credential creation should be rare
•Alert on permission consent - this can detect not only malicious activity but permission creep
•Alert on anomalous resource access - does your app usually access only Azure Storage, and suddenly it accesses Microsoft Graph? - this may indicate a compromised credential
•Alert on anomalous ASN or location access - does your app usually access only from a specific ASN or country, and suddenly that changes? - this may indicate a compromised credential
Many of these are covered by Defender for Cloud Apps and other tools out of the box, but it is worth ensuring you are covered down and what they actually mean.
Investigate compromise of them:
Know how to query the following logs and understand the events surfaced
•Entra ID sign in data - filter on service principal sign in events via the Entra portal or Kusto in the Defender XDR portal
•Entra ID audit logs - filter on events related to the service principal via the Entra portal or Kusto in the Defender XDR portal. Service principals can be used to further establish persistence, such as creation of users or additional service principals, rinse and repeat for any malicious additions to your environment
•Microsoft Graph - was the compromised app used to access data via Microsoft Graph? You can query via the Defender XDR portal using Kusto to find these events
•Defender for Cloud Apps - did the compromised app access other M365 services? You can query via the Defender XDR portal using Kusto to find these events
•Unified Audit Log - you can retrieve the events related to the compromised app via the audit functionality inside the Defender XDR portal
Bert-Jan 🛡️ retweeted
CloudKeyVaultEvents: Azure Key Vault Logs, Schema and KQL Hunting, by. @BertJanCyber #DFIR
kqlquery.com/posts/cloudkeyv…
🔎 Exploring the CloudKeyVaultEvents table in Microsoft Defender
🔗 Blog: kqlquery.com/posts/cloudkeyv…
Version 2.0 of the TaHiTI Threat Hunting Methodology has been published!
Scroll down on the page to download the pdf.
nvb.nl/afspraken-gedragscode…
Two new Advanced Hunting tables will arrive soon.
SubmissionEvents and SubmissionResults, to enhance email submission visibility and detection workflows.
Bert-Jan 🛡️ retweeted
I had the domain for quite some time and the website was already up - but finally it's where I wanted it to be.
◽️Full XDR and Sentinel schema coverage
◽️Documentation of XDRInternal modules by @NathanMcNulty and me
◽️Table column relations (partly)
xdrinternals.com/
Who is attending @OneConferenceNL tomorrow?
I got some new stickers to collect 😉
If you are around do not miss our session!
TaHiTI, threat hunting methodology.
📅 07 October 2026
🕦 11:30 - 12:20
📍 Europe 1 & 2
Added some UserAgent IOC sweeping queries for the EntraTrace project.
Queries matches in:
• Entra sign-in logs
• Microsoft Graph activity logs
• Azure AD Graph activity logs
Queries are added with prefix EntraTrace -, individual links in comments.
github.com/Bert-JanP/Hunting…
IOC Sweeping queries:
Sign-in UserAgent Matches: github.com/Bert-JanP/Hunting…
Azure AD Graph UserAgent Matches: github.com/Bert-JanP/Hunting…
Microsoft Graph UserAgent Matches: github.com/Bert-JanP/Hunting…
Was digging into this one, but all sites had already been taken offline. Good write-up on what was behind the phishing attempt.
‼️ just got a pretty smart github OAuth phishing/ATO attempt on my personal account.
attacker created a repo named after my github username, opened an issue mentioning me with a fake account-access alert, which triggered a real email from [email protected].
“This wasn’t me” → attacker-controlled GitHub Pages → real github.com OAuth consent page for an app called “profile security settings”, asking for public/private repo access + permission to update GitHub Actions workflow files.
no fake github login page. the email is github, the auth page is github. the malicious part is the OAuth app + redirect flow.
the page is just an obfuscated redirector, while the OAuth callback forwards the returned code/state to the same backend: github.com/api6268/code-839c…
also caught two other username-specific phishing issues from the same github account before they disappeared.
some indicators:
issue account: 6119f4f
OAuth app: profile security settings
consent: Authorize request-6286
landing: api6268[.]github[.]io/code-839c74ee/
related landing: api25cd[.]github[.]io/account-13e95c92/
callback: request-6286[.]github[.]io
backend: gitmain[.]serveblog[.]net
route ID: 9e52a992
Kusto Insights is back with another newsletter! Co-delivered with @alexverboon from this moment forward.
kustoinsights.substack.com/p…
Interesting repo to check out with some #KQL and #SPL hunting queries.
github.com/sims718718/Unifie…
NCSC brengt een security-advisory uit over Citrix NetScaler ADC en NetScaler Gateway. De kans en schade van deze kwetsbaarheid beoordelen wij als high/high. Wij adviseren u de security-advisory op te volgen. advisories.ncsc.nl/2026/ncsc…
#CyberSecurity
Official comms and patches from Citrix are out!
Exploitation of CVE-2026-88771 and CVE-2026-88772 on unmitigated NetScaler deployments has been observed.
community.citrix.com/techzon…
A new Teams table will be added: MessageContents.
Adding tables is good for additional detection possibilities, but first try to prevent Teams based attacks. Work with only allowed domains first, and add detections on top for validation.
Thanks for the PRs 8 other tools have been added!
Releasing EntraTrace
EntraTrace is a defensive security research tool for tracking and identifying the behavior of offensive tooling targeting Microsoft Entra ID.
The tool is still in early development, feel free to have a look and share your feedback!
github.com/Bert-JanP/EntraTr…

















