Site icon Windows Active Directory

AD internal vs external trust hardening

AD internal vs external trust hardening

Active Directory trusts are one of those features that “just work” right up until they become the quietest, widest attack path in your environment. The hardening mindset is simple: a trust is not a convenience link, it is an authentication boundary decision.

This article compares internal trusts (trusts you create between forests/domains you control) versus external trusts (trusts to environments you do not fully control, including partners, vendors, subsidiaries you don’t administer day-to-day, or non-AD realms), and gives a practical hardening playbook.

Trusts, in plain language

A trust tells AD: “When a user from that other security authority claims an identity, I will accept it under these rules.” In practice, the trust becomes a path for:

  • Authentication: Kerberos tickets (and sometimes NTLM) are accepted across the trust.
  • Authorization: Access decisions use SIDs and group memberships that may originate elsewhere.
  • Directory discovery: DNS/GC lookups allow cross-forest user and group resolution.
  • Operational coupling: Replication is not the point, but outages, DNS drift, or time skew can still hurt you.

“Hardening a trust” therefore means controlling who can authenticate across it, where they can authenticate, what identity material is accepted, and how you detect abuse.

Internal vs external: the security difference that matters

Internal trust (you control both sides)

An internal trust is typically created to support mergers, multi-forest architectures, regional separation, or staged migrations. You may own both forests, but “internal” does not mean “safe.” The main risk is that you accidentally turn two security tiers into one big tier.

The attacker story for internal trusts is usually: compromise a weaker forest (older systems, lax admin hygiene, less monitoring), then use the trust to reach higher value targets in the stronger forest.

External trust (you do not control the other side)

External trusts (partner forests, vendors, or non-AD Kerberos realms) are closer to “internet adjacent.” You must assume:

  • They may run weaker security controls, or different policies you cannot enforce.
  • They may be compromised without telling you.
  • They may legitimately need only a tiny slice of access—yet the trust can expose far more if misconfigured.

With external trusts, your default posture should be: deny by default, allow explicitly, monitor continuously.

Threat model: what actually goes wrong with trusts

Trust abuse is rarely “a bug in trusts.” It’s almost always one of these:

  • Over-broad authentication scope: “Forest-wide authentication” (or equivalent) lets too many principals log on to too many computers in the trusting forest.
  • Authorization injection: SIDs/group memberships from the trusted side influence authorization on your side more than you intended (including misuse of SID history in migrations).
  • Privilege bridging: Admins reuse credentials, groups, or delegation patterns across forests, collapsing tiers.
  • Protocol downgrade paths: NTLM fallback, legacy encryption, unconstrained delegation, or lax SPN hygiene.
  • Weak monitoring: Trust auth looks like normal auth unless you explicitly log, correlate, and alert.

A useful mental model: a trust creates a credential acceptance relationship. If the other side can cause you to accept an identity that has access to your resources, then their security posture becomes part of yours.

Inventory first: know what you’re hardening

Before changing anything, build a trust inventory and classify each trust by risk:

  • Type: forest trust, external domain trust, realm trust.
  • Direction: inbound, outbound, or two-way.
  • Transitivity: does it extend beyond the directly trusted domain/forest?
  • Authentication scope: forest-wide vs selective (or equivalents).
  • Business justification: what must work? What can be removed?
  • Blast radius: what resources are reachable if the other side is compromised?

Example PowerShell starting points:

# Enumerate trusts (run in each forest)
Get-ADTrust -Filter * | Select-Object Name,Direction,TrustType,ForestTransitive,SelectiveAuthentication

# Quick view: which domains/forests you trust and how
Get-ADForest | Select-Object -ExpandProperty Domains

Treat “unknown justification” as “remove or redesign.” Trust sprawl is common after M&A and migrations.

Hardening goals by trust category

Internal trust hardening goals

  • Prevent tier collapse: admin identities and admin workstations must not become cross-forest bridges.
  • Reduce lateral movement: restrict where accounts from Forest A can authenticate in Forest B.
  • Keep migrations safe: control SID history use and validate authorization outcomes.
  • Make trust abuse loud: log and alert on cross-trust privileged activity.

External trust hardening goals

  • Minimum viable trust: narrow authentication to explicit servers and explicit groups.
  • Assume compromise: configuration should remain safe even if the trusted environment is hostile.
  • Constrain identity claims: prevent SID-based authorization tricks and limit what your systems will accept.
  • Continuous verification: detect anomalous ticketing/logons from the trusted side quickly.

Control #1: scope who can authenticate across the trust

The highest-leverage hardening step is to move from “everyone can authenticate” to “only this group can authenticate, and only to these servers.”

Prefer selective authentication when you can

Selective authentication forces you to explicitly allow which users/groups from the trusted side are allowed to authenticate to specific computers in the trusting forest. It’s an intentional friction point—and that’s good.

Operationally, selective authentication can be painful if your inventory of cross-forest dependencies is weak. The workaround is not to abandon it; the workaround is to model access properly:

  • Create a dedicated “Trust Access” group per use case (per application or server set).
  • Grant that group permission to authenticate to the target computer objects (not broad OU-wide defaults unless justified).
  • Keep membership tightly governed and reviewed.

Internal trusts: don’t assume forest-wide authentication is harmless

Forest-wide authentication is tempting internally because it reduces support tickets. But it silently enables cross-forest lateral movement from any compromised workstation/user on the weaker side to any reachable server on the stronger side, limited only by resource ACLs and your network layout.

A common internal compromise pattern is: user in Forest A is phished → attacker gains local admin on a workstation → harvests credentials/tickets → uses trust to probe and access servers in Forest B. If you’ve allowed broad auth scope, you’ve made reconnaissance and pivoting easy.

External trusts: forest-wide authentication is almost always the wrong default

If the trusted organization needs access to one application, then your trust should look like: one group, one app tier, explicit allow-list. Anything broader turns their entire identity system into an input to yours.

Control #2: constrain what identity material you accept

Cross-trust authorization is ultimately SID-based. That’s powerful—and dangerous—because a SID can represent group membership, including historical or migrated identities.

SID history: treat it like radioactive material

SID history exists to preserve access during migrations. It also creates a high-value abuse target: if an attacker can inject privileged SIDs into SID history on the trusted side, they may be able to obtain access on the trusting side (depending on your filtering controls and where those SIDs are honored).

  • Use SID history only when there is a time-bound migration requirement.
  • Prefer application-side remapping (new groups, new ACLs) over indefinite SID history reliance.
  • Review and remove SID history as soon as the migration window closes.

Enable and validate SID filtering / SID history blocking where appropriate

AD provides mechanisms (often described as SID filtering, quarantine mode, or SID history blocking depending on trust type and tooling) to prevent the trusted environment from asserting unauthorized SIDs across the trust.

Don’t treat this as a checkbox you “assume is on.” Explicitly validate the trust’s behavior in your environment, document it, and ensure the operational team knows what changes can weaken it (for example, disabling filtering to “fix” an access issue).

Example command-line inspection patterns (verify exact flags in your environment):

# View trust details from the local domain/forest perspective
netdom trust <TrustedDomainOrForest> /domain:<YourDomain> /verify

# Use netdom to view or adjust certain trust properties (handle with change control)
netdom trust <TrustedDomainOrForest> /domain:<YourDomain> /quarantine

The key operational principle: if your “fix” for a trust issue is “turn off filtering,” you likely just created a long-lived security incident.

Control #3: reduce transitivity and name routing exposure

Transitivity determines whether a trust relationship extends beyond the directly trusted domain/forest. The more transitive your setup, the more likely you’ll end up trusting identities you never intended to.

External trusts: prefer non-transitive designs unless there is a proven need

  • Keep the trust as narrow as possible (single domain, single direction, explicit scope).
  • Avoid chaining trusts where Partner A can indirectly reach Partner B through you.

Forest trusts and name suffix routing: be intentional

Forest trusts can include name suffix routing controls. This matters when you’re dealing with overlapping namespaces, UPN suffixes, or multiple accepted identity formats. Keep your accepted suffixes explicit and reviewed. If you don’t need a suffix across a trust, don’t route it.

Control #4: block “credential bridges” with admin tiering

Trust hardening fails if administrators treat two forests like one. The most common real-world failure mode is not a trust setting; it’s credential reuse and admin workstation reuse.

Internal trusts: enforce administrative separation

  • Separate admin accounts per forest (and often per tier). Do not use the same privileged identity across forests.
  • Use dedicated admin workstations (PAWs/SAWs) that are not used for email, browsing, or vendor support sessions.
  • Prohibit cross-forest membership in high privilege groups unless there is a documented, monitored exception.

External trusts: treat the partner as hostile for admin hygiene

  • Never allow partner identities to administer your AD directly.
  • Do not log on to partner systems with your privileged accounts (and vice versa).
  • Prefer app-level federation patterns (or isolated resource forests) over giving broad domain-level access.

Control #5: harden Kerberos and delegation patterns across trust boundaries

Trusts are frequently paired with delegation to make applications “work seamlessly.” Delegation is another place where convenience can silently become privilege.

Ban unconstrained delegation for anything exposed across a trust

Unconstrained delegation can allow servers to obtain service tickets on behalf of users in ways that become high-impact if the server is compromised. If a server is reachable by accounts from a trusted forest, unconstrained delegation is a red flag that deserves immediate remediation.

Prefer constrained delegation (and keep it minimal)

  • Only allow delegation to the exact downstream services required.
  • Use separate service accounts per application boundary.
  • Review SPNs and delegation settings regularly; stale SPNs are a common source of surprise access.

Reduce protocol downgrade risk

  • Minimize NTLM usage for cross-forest scenarios where possible.
  • Standardize on modern Kerberos encryption (AES) and remove legacy dependencies as part of the trust program.
  • Watch for “it only works if we allow older settings” as an indicator of hidden technical debt.

Control #6: network and DNS hardening for cross-forest trust traffic

Trusts don’t just live in AD objects; they live on the wire. The safest trust is one with a narrow network path: only required ports, only between required DCs and application servers, and with DNS carefully scoped.

Network segmentation principles

  • Limit the trust “lane”: constrain which subnets can reach which DCs and which application tiers across forests.
  • Restrict RPC exposure: where feasible, constrain dynamic RPC port ranges and document firewall rules.
  • Prefer server-to-server access patterns: avoid needing end-user workstations to directly touch the other forest.

DNS principles for trust safety

  • Use conditional forwarders or stub zones rather than broad forwarding whenever possible.
  • Protect zone transfer settings and keep the trust DNS footprint minimal.
  • Monitor for unexpected SRV record lookups and DC discovery behavior from unusual sources.

Operational hint: many “trust is broken” incidents are actually DNS or time synchronization issues. Fixing those is fine. Widening the trust scope to “make it work” is not.

Monitoring and detection: make cross-trust activity visible

If you don’t measure cross-trust authentication and authorization, you’re effectively blind to trust abuse. The baseline objective is: “We can answer who authenticated across a trust, to what, and whether it was privileged.”

What to log

  • Kerberos ticketing and logon events on target servers (and DCs) for cross-forest principals.
  • Directory Service Changes for trust object modifications (Trusted Domain Objects).
  • Privileged group changes and cross-forest group nesting patterns (especially if used for access control).
  • Resource access on sensitive servers that are reachable via the trust.

Practical detection ideas

  • Alert on logons from trusted-forest accounts to any tier-0 systems (domain controllers, ADFS/PKI, identity infrastructure).
  • Alert on first-seen principals from the trusted forest accessing your environment.
  • Track and review membership of “Trust Access” groups as a governed artifact.
  • Alert on modifications to trust objects in the System container (TrustedDomain objects).

If you’re building a SIEM rule set, add a “cross-trust” dimension to authentication analytics: trusted forest name, trust direction, target tier, and privilege indicators (admin groups, service accounts, sensitive servers).

Internal trust hardening playbook

  1. Separate admin identities and workstations per forest. Make cross-forest admin logons an exception that requires approval, not a habit.
  2. Adopt selective authentication for server tiers that matter. Start with crown jewels (Tier 0 / Tier 1) even if you keep broader scope for lower tiers temporarily.
  3. Time-box SID history. Create a migration plan that ends with SID history cleanup and ACL modernization.
  4. Harden delegation and service accounts. Remove unconstrained delegation, review SPNs, and reduce service account reach.
  5. Build trust health tests that don’t weaken security. Define what “working” means (auth to app servers, group resolution, etc.) and test it without widening the trust.

A good internal-trust end state is not “users can access everything everywhere.” It’s “users can access the services they need, and a compromise in Forest A does not automatically become a compromise in Forest B.”

External trust hardening playbook

  1. Justify the trust. If the requirement is “single app access,” consider application federation, a proxy pattern, or a dedicated isolation design before a broad AD trust.
  2. Minimize direction and transitivity. Use one-way trust if possible. Avoid transitive exposure unless you have a hard requirement.
  3. Use selective authentication as the default. Build explicit allow-lists: which partner groups can authenticate to which servers.
  4. Constrain identity acceptance. Validate SID filtering/SID history behavior and document a “never disable without security approval” rule.
  5. Fence the network. Constrain trust traffic to the minimum: between designated DCs and designated application servers only.
  6. Monitor like it’s a third-party integration. Cross-trust logons should be treated as high-signal events, especially on sensitive hosts.

The goal is to make the trust behave like a tightly-scoped API, not a shared security universe.

Common pitfalls (and what to do instead)

  • Pitfall: “We’ll start broad and tighten later.”
    Instead: start narrow for sensitive tiers first, then expand only where you can prove it’s necessary.
  • Pitfall: “Turning off filtering fixed it.”
    Instead: fix the access model (groups, ACLs, suffix routing, selective auth) rather than weakening identity controls.
  • Pitfall: Partner accounts placed into your local privileged groups.
    Instead: isolate access through dedicated groups mapped to explicit resources, and keep privilege local.
  • Pitfall: Delegation used as glue.
    Instead: design service-to-service auth properly and use constrained delegation only where unavoidable.
  • Pitfall: No monitoring because “it’s just internal.”
    Instead: treat internal trusts as a high-priority detection surface—internal compromise is the most common starting point.

A quick decision matrix

Use this as a sanity check when someone proposes a trust change:

  • If you don’t control the other side → selective authentication + minimal direction + minimal network lane.
  • If the other side is “internal but weaker” → treat it like external for Tier 0 and Tier 1 resources.
  • If the trust is for migration → plan the exit: time-box, measure progress, remove SID history, retire trust.
  • If the trust is “because users want it” → define the actual resources and implement explicit access modeling.

Validation checklist

After hardening, validate both security and functionality:

  • Cross-forest users can access only the intended applications/servers.
  • Unintended cross-forest logons are blocked (especially to admin tiers).
  • Trust object changes are audited and alerts are in place.
  • Partner or secondary forest compromise does not automatically grant privileged access in your forest.
  • Support teams have a runbook for “trust issues” that does not involve weakening security controls.
Exit mobile version