I'm trying to determine whether Defender for Endpoint has an equivalent to CrowdStrike's Indicators of Attack that can block a specific behavior immediately, rather than only detect it afterward. For example, I'd like to prevent python.exe from running when its command line is launched from a user-writable path such as C:Users and ends with a .py file.
I can create custom detections, but those appear to trigger after the event and then perform response actions. Is there a Defender feature I'm overlooking for inline behavioral blocking, or does CrowdStrike provide a capability that Defender handles through separate application-control products?
3 Answers
There is a real capability gap, but it’s more accurate to describe it as a difference in product architecture than simply saying one detection engine is better. A custom behavioral block may be a single feature in one product, whereas the Microsoft approach splits detection, response, and execution control across different components. The practical test is to run the exact command in a controlled system and compare when the process is prevented versus when an alert appears. If the alert arrives only after execution, you have detection rather than prevention.
The blocking function is handled by separate application-control technologies rather than the endpoint detection engine. Windows Defender Application Control or AppLocker can control execution based on policy, while Attack Surface Reduction rules provide blocking for a predefined set of behaviors. However, the exact combination of process name, user-writable path, and .py extension may not be expressible through the built-in ASR rules.
Custom detections are based on Advanced Hunting queries and generally run after the activity has been recorded. They can trigger response actions such as isolating a device or quarantining a file, but they aren’t an inline execution-control mechanism, so they won’t reliably stop python.exe before it starts.

That’s the issue I’m running into: we already use WDAC and AppLocker, but neither one gives us this particular contextual rule in the way we need.