Most engineers think…
Most engineers think EPM works by quietly adding the user to the local Administrators group for a few minutes and pulling them back out — "temporary admin", basically.
Wrong — and interviewers probe exactly this. The user's account never changes. The agent launches that one process with a modified access token that carries admin rights. There is no admin password on the box to phish, no UAC credential prompt to keylog, and nothing for mimikatz to scrape — because no admin account was ever used. Elevation lives and dies with the process.
① Local admin is malware's best friend — and the riot problem
Here is the uncomfortable maths of endpoint security: malware almost never needs an exploit to become powerful. When Aditya at TCS opens a poisoned invoice, the payload runs as a child of his session and inherits his access token. If Aditya sits in the local Administrators group, the malware is an administrator the instant it starts. No zero-day, no privilege escalation trick — just inheritance.
What does admin-grade malware actually do? Three things you will meet again in every incident report. One: ransomware encrypts everything it can reach and deletes the Volume Shadow Copies so there is nothing to roll back to — shadow-copy deletion needs admin. Two: it reads the memory of LSASS and walks away with every cached credential on the box, including the domain admin who RDP-ed in last Tuesday. Three: it installs a service, a driver or an HKLM run key — admin-only locations — so it survives reboot. Remove admin from the user, and all three doors slam shut at once.
So why hasn't every company just removed admin rights years ago? Because the morning after, the riot starts. Installers fail. Developers cannot register a debugger or run their build tools. That 2014-era legacy app that insists on writing to C:\Program Files and HKLM crashes. Printer and VPN client updates die. The helpdesk queue triples, a VP screams, and within two weeks IT quietly hands admin back "temporarily" — forever. Every PAM engineer in India has watched this movie.
The fix is to change the unit of trust. Think of a wedding hall: the standard guest never gets the owner's master keys, but the caterer's van gets a gate pass for one delivery. BeyondTrust Endpoint Privilege Management (EPM) — the product the field still calls Avecto Defendpoint — elevates per application, never per user. The human stays a standard user for life; the approved installer, and only it, runs with an elevated token. Capability stays, attack surface goes.
Pause & Predict
Predict: the SAME phishing payload detonates on (a) a standard-user laptop and (b) a local-admin laptop. List what it can do in each case before reading on. Type your guess.
Aditya at TCS opens a malicious invoice attachment; his account is in local Administrators. Why does the ransomware get admin power without using any exploit?
Symptom: two weeks after a "remove all local admin" project, the exception list has 800 names and is growing. Cause: admin rights were deleted with no per-application elevation path, so every blocked installer became a ticket and every ticket became an exception. Fix: deploy the EPM agent in audit mode FIRST, learn what genuinely needs elevation, then remove admin with rules already in place. Least privilege is a migration, not a deletion.
② The Avecto model — Workstyles, rules, groups and the token trick
EPM is an agent plus a policy. The agent on Windows is literally named Avecto Defendpoint Service — the acquisition heritage leaks straight into services.msc — and its cloud check-in runs through the IC3Adapter. Endpoint configuration lives under HKLM\SOFTWARE\Avecto\Privilege Guard Client. Knowing these three strings is half of EPM troubleshooting.
The policy has four building blocks. A Workstyle is the container, targeted by Filters (Account, Computer, or WMI). An Application Group bundles application definitions — the what. An Application Rule binds a group to an action — Allow, Elevate, Audit, or Block — plus the token treatment, an end-user Message, and an audit event. In the Policy Editor you will live at Windows > Workstyles > [Workstyle name].
The four words you will use in every EPM conversation
Tap each card — this vocabulary carries the whole lesson and most interview questions.
The container: rules + messages + TAP + filters, aimed at a user/computer population. Evaluated top-down; first match takes the app. So: order is policy.
A reusable bundle of app definitions matched by publisher, hash, path, command line, parent. So: define once, reuse in many rules.
Group + action (Allow/Elevate/Audit/Block) + token change + message + audit. So: this line is where elevation actually happens.
The dialog the user sees: reason capture, authentication, challenge/response, or a branded block. So: messages are your riot insurance.
Now the part that separates EPM from every "make me admin" hack: elevation happens at the application token. When a rule says Elevate, the agent launches that one process with a modified token carrying admin rights. The user typed no admin password — none exists for them — and they never see a UAC credential prompt, because EPM intercepts the elevation request and answers it with policy instead. The same trick runs in reverse for people who must stay admin: a drop-rights rule launches browsers and email with a reduced token, so even an admin reads mail at standard privilege.
Pause & Predict
Predict: an application matches rules in BOTH the "All Users" Workstyle and the "High Flexibility" Workstyle below it. Which one acts, and what happens to the other? Type your guess.
How does an Application Group recognise an app? The matching criteria you will actually use: publisher certificate, file hash, file/folder path — plus refinements like product name, command line and parent process. Here is the judgement call that shows up in interviews: publisher beats path. A path rule ("elevate anything in C:\Installers") is one rename away from elevating malware. A hash rule is cryptographically exact but dies on every vendor update. A publisher rule — "signed by OpenJS Foundation" — survives updates and cannot be faked by renaming, because Authenticode signatures are verified, not guessed.
PS C:\> Get-AuthenticodeSignature 'C:\Installers\node-v20.11.1-x64.msi' | >> Format-List SignerCertificate, Status # The CN= subject below is exactly the publisher value your app definition matches on.
SignerCertificate : [Subject]
CN=OpenJS Foundation, O=OpenJS Foundation,
S=California, C=US
Status : ValidTwo Workstyles could both apply to Sneha's app launch — "All Users" (position 1) and "High Flexibility" (position 2). Which rules actually process the application?
③ QuickStart day-1 baseline + one real rule end-to-end
Never start from a blank policy. BeyondTrust ships a QuickStart policy for Windows with four Workstyles already wired: All Users (everyone — the blocklist and safety net), High Flexibility (developers: signed apps allowed, unknown apps after a confirmation), Medium Flexibility (unknown apps elevate only after the user gives a reason) and Low Flexibility (fixed-task staff — unknown apps blocked with a support-desk message). It also ships named Application Groups — (Default) Any Application, Add Admin – General (Business Apps), Block - Blocklisted Apps, Passive - All Users Functions & Apps — and ready-made messages like Allow Message (Authentication & Reason) and Block Message.
QuickStart is a starting point, not a finish line. The vendor's own minimum-edit list: set the authorization users/groups, brand every message, assign users to flexibility Workstyles, populate the blocklist, and configure the Challenge/Response shared keys. That last one is the most-skipped: the key is set at Policy Editor → Messages → Challenge/Response Keys → Set Key (use ≥15 mixed characters). Think of it as Aadhaar-OTP-by-phone: the screen shows an 8-digit challenge, the user calls the helpdesk, the helpdesk computes the 8-digit response from the shared key — a fresh challenge every display, so yesterday's code is useless. It even works with the laptop offline.
Pause & Predict
Predict: you deploy QuickStart with Challenge/Response messages enabled but never visit Messages → Challenge/Response Keys. What do users and the helpdesk experience? Type your guess.
One real rule, end to end: Karthik's Node.js installer
Scenario: Karthik, a developer at Wipro (laptop 10.20.34.57), must run the Node.js installer every month. He is a standard user in the IN-Developers AD group. Here is the rule a senior admin builds — every step, no skipping. Step 1 — identify the app properly: run Get-AuthenticodeSignature against the MSI (you saw this in section ②) and copy the publisher subject, CN=OpenJS Foundation. Step 2 — make the WHAT: in the Policy Editor create an Application Group Add Admin – Dev Installers (Wipro) and add an MSI definition matching that publisher — optionally tightened with a product-name check. No path matching, no hash churn.
Step 3 — bind the rule: in Windows > Workstyles > High Flexibility, add an Application Rule: target the new group, action Elevate (the process token gets admin rights added), end-user message Allow Message (Authentication & Reason) — Karthik re-authenticates and types why — and auditing on, so the event lands in reporting with his reason attached. Step 4 — order it: drag the rule above any rule that uses (Default) Any Application; first match wins, and the catch-all must stay the last resort. Step 5 — save, deploy to the pilot group, and make Karthik install Node while you watch the event arrive.
▶ One double-click through the EPM agent
Watch Karthik's installer travel from launch to elevated token — then see how a lazy path-matched rule turns the same flow into an attacker's elevator. Press Play for the healthy path, then Break it to see the failure.
What about apps you never predicted? That is on-demand elevation: On-Demand Application Rules hook the right-click menu and can override the native Run as administrator entry — same label, but the click now lands in EPM, which answers with your message (reason + authentication + audit) instead of a UAC credential prompt. Done right, on-demand elevation targets a defined Application Group with a reason-capture message — never (Default) Any Application with a silent allow, which would be self-service admin with extra steps.
Sneha at Infosys faces this
Pilot laptop 10.20.34.81: right-click → Run as administrator on the test installer shows the NATIVE Windows UAC password prompt instead of the branded EPM dialog. Auto-elevation rules and blocks on the same machine work fine.
Fresh agent install with no reboot — the on-demand shell-integration hook only registers after a restart (a known fresh-install behaviour on EPM Windows 24.x), so the right-click path still belongs to Windows while everything else already follows policy.
Confirm both endpoint services are Running and policy has arrived, then check the machine's last reboot time against the agent install time. The on-demand rule itself is present and enabled — the context-menu hook just is not registered yet.
Policy Editor > Windows > Workstyles > High Flexibility > On-Demand Application Rules (rule present + enabled)Reboot the laptop and re-test. Then bake a mandatory restart into the agent deployment package (SCCM/Intune) so no pilot user ever tests on-demand elevation pre-reboot.
Right-click → Run as administrator now opens the EPM Allow Message (Authentication & Reason); the elevation event appears in reporting with Sneha's reason text and the publisher of the installer.
Priya at ICICI rolled out QuickStart. Users hit an 8-digit challenge prompt when elevating, but the helpdesk cannot generate any working response code. What was missed?
④ Beyond elevation — TAP, Power Rules, PM Cloud deploy and the Mac side
Elevation control is half of EPM; the other half is application control. The same rule machinery blocks what should never run (Block - Blocklisted Apps), allows-without-elevating the everyday estate, and — before any of that — can run in audit-only passive mode so you discover what your fleet actually launches before you enforce anything. Smart teams run passive for two to four weeks and let the event data write the policy for them.
Then there is the feature that wins security-team hearts: Trusted Application Protection (TAP). Word, Excel, Outlook, Adobe Reader and the browsers are VIPs who meet strangers all day — every document and webpage is untrusted input. TAP is their bodyguard: the VIP app keeps running, but when a macro makes Word spawn cmd.exe or PowerShell, TAP frisks the child process — no trusted publisher or Trusted Owner, no entry. Untrusted DLL loads get the same treatment. Two shipped flavours: High Security validates all child processes; High Flexibility validates only immediate children, so more installer chains survive.
Meera's user at Flipkart opens a poisoned .docx and the macro tries to launch cmd.exe. With TAP enabled, what happens?
Meera at Flipkart faces this
After enabling the TAP High Security template, users report downloaded installers 'die silently' — double-click, nothing. A line-of-business add-in installer launched from an Outlook attachment also fails, with no block message anyone recognises.
High Security TAP validates EVERY process in the chain spawned from protected apps (Outlook, browsers). The vendor's installer chain includes an unsigned helper executable, so TAP kills it mid-chain — silently from the user's point of view.
Pull the TAP block events in reporting: each names the protected parent (outlook.exe, chrome.exe) and the exact child binary that failed validation — the unsigned helper shows up immediately.
Policy Editor > Windows > Workstyles > [Workstyle] > Trusted Application Protection (template: High Security vs High Flexibility)Switch the pilot population to the High Flexibility TAP template (validates immediate children only), or keep High Security and add the vendor's publisher certificate / Trusted Owner so the chain passes validation.
Re-run the same download — the installer completes. Then prove TAP still works: a macro test-doc spawning cmd.exe from Word is still blocked and logged.
When yes/no rules are not clever enough, Power Rules are the escape hatch: a PowerShell script (3.0 or later) attached via Run a Rule Script changes the rule's outcome at run time. Real uses: elevate only if a valid change ticket exists, only inside a maintenance window, or only after an API reputation check. You develop against the PRTestHarness module, which stubs the agent with mock data, and ship with the PRInterface module on the endpoint. Encrypted JSON settings files (UTF-8) carry credentials safely alongside the script.
PS C:\> Get-Command -Module PRInterface | Select-Object -First 6 -ExpandProperty Name
ConvertTo-PRHashTable Get-PRChallengeCode Get-PREnvironmentVariable Get-PRFileHash Get-PRScriptSettings Get-PRVariable
Shipping the policy: in the PM Cloud console the left-menu Policies page owns the lifecycle. Create Policy (from the QuickStart template or an uploaded XML) → Edit & Lock Policy → make your changes across the editor sections (Workstyles, Application Groups, Content Groups, Messages, Custom Tokens, Utilities) → Save & Unlock, which mints a new revision. Nothing has reached an endpoint yet. Deployment is the separate, deliberate step: Assign Policy to Groups → pick the revision → pick computer group(s) → Assign Policy. Agents pull it on their next IC3Adapter check-in. Upload Revision offers Merge Policy or Overwrite Policy — read twice before clicking, one of them replaces everything.
Pause & Predict
Predict: you just clicked Save & Unlock on your edited policy in PM Cloud. Has anything changed on the 1,240 developer laptops yet? Type your guess.
Policy 'not arriving' is services or precedence 90% of the time, not the console. Check, in order: both services running (Avecto Defendpoint Service + BeyondTrust Privilege Management Cloud Adapter/IC3Adapter), the registry key HKLM\SOFTWARE\Avecto\Privilege Guard Client present, and — in multi-policy GPO setups — remember policies apply in alphanumeric order, so a forgotten pilot named AAA-Test silently beats Corp-Baseline. Rename or retire test policies; do not debug ghosts.
PS C:\> Get-Service -DisplayName 'Avecto Defendpoint Service', >> 'BeyondTrust Privilege Management Cloud Adapter*' | Select-Object Status, DisplayName PS C:\> reg query "HKLM\SOFTWARE\Avecto\Privilege Guard Client"
Status DisplayName ------ ----------- Running Avecto Defendpoint Service Running BeyondTrust Privilege Management Cloud Adapter HKEY_LOCAL_MACHINE\SOFTWARE\Avecto\Privilege Guard Client
Reporting closes the loop: every elevation, block and TAP event carries the user, machine, application name/path/publisher/hash, the action taken, the matching rule and any justification text the user typed — and hash checks can be enriched with VirusTotal lookups. This is the data that turns week-one passive mode into week-four policy, and the evidence trail your auditor will ask for. One hygiene note from the advisory desk: the agent itself is software — BeyondTrust's BT25-05 advisory covers CVE-2025-2297, a privilege-elevation flaw in EPM for Windows itself (CVSS 4.0 7.2 per the vendor advisory), fixed in 25.4.270.0. An out-of-date least-privilege agent is an irony nobody needs; patch it like any other security product.
And the Macs in the corner?
The Mac story rhymes with Windows but speaks macOS. There is no UAC; the pain points are the installer authorization prompt ("enter an administrator's name and password") and sudo in Terminal. EPM for Mac lets a standard user run approved installers and system-preference changes through policy-driven authorization — reason capture and audit included, no admin credentials typed — and brings sudo under policy control instead of handing out admin accounts. Policy is authored in the same Policy Editor under macOS Workstyles and deployed from the same PM Cloud console, so one mental model covers the whole desk fleet. The agent ships via Jamf/Intune the same way SCCM carries the Windows MSI.
🤖 Ask the AI Tutor
Tap any question — instant, scoped to this lesson. No login, no waiting.
Pre-curated from BeyondTrust docs + community Q&A, scoped to this lesson. For a live prod issue, paste your export into chat.techclick.in.
📝 Wrap-up assessment — six more
You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.
🧠 In your own words
Type one line: Your CISO asks: if we take local admin away, how will engineers install anything? Give the two-line EPM answer. Then compare to the expert version.
🗣 Teach a friend
Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.
📖 Glossary
- Workstyle
- EPM policy container (rules + messages + TAP + filters) targeted at users/computers; first matching Workstyle in the list wins.
- Application Group
- Reusable bundle of application definitions — the WHAT a rule acts on — matched by publisher, hash, path, command line or parent.
- Application Rule
- Binds an Application Group to an action (Allow/Elevate/Audit/Block) plus token change, end-user message and audit event.
- On-Demand Application Rule
- Rule fired from the right-click menu; can override the native 'Run as administrator' entry with EPM's policy flow.
- Access token
- Kernel object listing a process's identity and privileges; EPM elevates by launching the process with a modified token.
- Avecto Defendpoint
- Heritage name of EPM for Windows/Mac — still the literal name of the endpoint service and registry path.
- IC3Adapter
- BeyondTrust Privilege Management Cloud Adapter — the endpoint service that checks in to PM Cloud and pulls policy revisions.
- QuickStart policy
- Vendor starter policy: All Users + High/Medium/Low Flexibility Workstyles, named groups and ready-made messages.
- Challenge/Response
- Offline approval: 8-digit challenge on screen, helpdesk computes the 8-digit response from a shared key (≥15 chars, set in Messages).
- Trusted Application Protection (TAP)
- Enhanced Security layer that lets Office/Adobe/browsers run but blocks their untrusted child processes and DLL loads.
- Power Rules
- PowerShell (3.0+) scripts on an Application Rule that change its outcome at run time via the PRInterface module.
- PM Cloud
- The EPM SaaS console: Policies → Create/Edit & Lock → Save & Unlock (revision) → Assign Policy to Groups → agents pull via IC3Adapter.
📚 Sources
- BeyondTrust EPM Windows/Mac docs — Workstyles: components, evaluation order, filters. docs.beyondtrust.com/epm-wm/docs/workstyles
- BeyondTrust EPM docs — QuickStart for Windows template (Workstyles, Application Groups, Messages, customization checklist). docs.beyondtrust.com/epm-wm/docs/gpo-quickstart-templates
- BeyondTrust EPM docs — Policies page in PM Cloud (Create Policy, Edit & Lock, Assign Policy to Groups, revisions). docs.beyondtrust.com/epm-wm/docs/policies
- BeyondTrust EPM docs — On-Demand Application Rules (right-click integration, Run-as-administrator override). beyondtrust.com/docs/privilege-management/windows/admin/windows-policies/workstyles/application-rules/on-demand-app-rules.htm
- BeyondTrust EPM docs — Messages & Challenge/Response keys (8-digit codes, Set Key, ≥15-char shared key). docs.beyondtrust.com/epm-wm/docs/policy-messages
- BeyondTrust blog — Trusted Application Protection (Office/Adobe/browser child-process and DLL control). beyondtrust.com/blog/entry/trusted-application-protection
- BeyondTrust EPM docs — Power Rules & core scripting (PRInterface cmdlets, PRTestHarness, PowerShell 3.0+). docs.beyondtrust.com/epm-wm/docs/epm-for-windows-core-scripting
- BeyondTrust Beekeepers community — fresh-install on-demand rules trigger native UAC until reboot; minimum services + Avecto registry key. beekeepers.beyondtrust.com (EPM Windows threads 5826, 5652)
- Security Scientist — 12 Q&A on Privilege Management for Windows & Mac (de-elevation, deployment via SCCM/Intune/JAMF, VirusTotal enrichment). securityscientist.net/blog/12-questions-and-answers-about-beyondtrust-privilege-management-for-windows-and-mac/
- Microsoft Learn — Configuring additional LSA protection (why LSASS credential dumping needs admin). learn.microsoft.com/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection
What's next?
Windows and Mac are tamed — but your Linux servers still have engineers typing 'sudo su -' like it's 2009. Next lesson: pbrun, centralized policy and replayable terminal sessions with Privilege Management for Unix/Linux, plus AD Bridge to give Linux boxes an Aadhaar-style single identity.