BACK TO BLOGS Back to Press Releases

Non-human identities: The expanding identity attack surface in modern SMB environments

Written by:

Written by:

Many small and midsize businesses secure their employee user accounts more than adequately. Multifactor authentication, conditional access policies, identity governance, and single sign-on have become standard controls across many organizations, thanks in part to their default inclusion in most IT products and platforms and to an evolving security culture and awareness worldwide.

At the same time, a second category of identities has expanded rapidly with far less oversight. These identities belong to applications, cloud workloads, services, automation platforms, AI, devices, and development pipelines rather than human users.

NIST Special Publication 800-207 defines Zero Trust as a model that focuses on protecting resources rather than assuming trust based on network location or identity type. To comply with that principle, it must be applied equally to both human and non-human identities.

Non-human identities (NHI) are nothing new; API keys, tokens, and other technologies have enabled systems to authenticate and communicate without human interaction for decades.  

But technology has continued to advance, introducing new types of identities that authenticate with new types of products and platforms. Organizations continue to adopt them, even if they aren’t explicitly aware.

For SMBs, securing these identities is not an option. Most organizations already depend on hundreds or thousands of machine-derived authentication relationships, even if they have never formally inventoried or classified them as non-human identities.

What is a non-human identity (NHI)?

An identity, human or non-human, is a person, device, application, service, or workload that can authenticate to another system and be granted or denied access to resources based on the permissions assigned to it.  

An identity consists of an identifier, such as a computer user account like “DOMAIN\username”, and a mechanism that proves ownership of that identifier, such as a password, certificate, cryptographic key, Kerberos ticket, or OAuth token. A system can trust and authorize the identity only after that proof is successfully validated.

What makes an NHI “non-human” is that the subject of the identity:

  • Is not an actual person
  • Does not authenticate with an interactive logon mechanism.

Where a typical human identity might be a username and password manually entered on a webpage by a person on a laptop or phone, a non-human identity could be a SaaS application calling the web server's API behind the same webpage. The SaaS application would use its API token the same way a human would use their username to tell the web server who is trying to authenticate to it.

Identifiers such as account names, IMEIs, serial numbers, GUIDs, and UUIDs are not necessarily identities themselves. While they may uniquely identify something, they are just strings of numbers or characters. They alone don’t provide any means of authentication or participate in access-control decisions. Different types of identities are represented by different identifiers, and some may look alike.  

Common types of non-human identities

Service Accounts

A service account is a traditional identity used by Windows services, Linux daemons, enterprise applications, scheduled tasks, and any other arbitrary, programmatic service to authenticate to other systems without human interaction.  

In many environments, service accounts are stored in Active Directory or other account databases and are granted permissions to business resources such as SQL Server instances, file shares, or data backup platforms.

Group Managed Service Accounts (gMSAs)

A Group Managed Service Account (gMSA) is a specialized Active Directory domain account designed to run services across one or more Windows servers while eliminating the need for administrators to manually manage passwords.  

Active Directory automatically generates strong passwords for these accounts, rotates those passwords on a defined schedule, and prevents interactive (human) sign-in, which significantly reduces secure credential management overhead.

API Keys

An API key is a simple, long-lived string of characters (a literal code) that an application passes to an API to identify the project, program, or website making the request. An API key functions like a username and password between a system or service and an application with an available interface (an API).  

Unlike many modern identity mechanisms, API keys are typically static credentials. If an API key is exposed, another application may be able to use that key until it is revoked or rotated for another.

OAuth Access Tokens

An OAuth access token is a temporary credential issued after a user, application, or workload successfully authenticates. Rather than repeatedly transmitting usernames, passwords, or certificates, the application presents the token when accessing a resource.  

The token contains information about who authenticated, what permissions were granted, and when the token expires. An OAuth token answers the question: "This identity has already been authenticated, and these are the specific actions it is currently allowed to perform."  

Certificates

A certificate is a digitally signed credential based on Public Key Infrastructure (PKI) that binds something’s cryptographic public key to its identity. They are most frequently used to help secure websites: a certificate authority (CA) verifies a websites identity before providing it with a certificate, which it’s digitally signed and secured with its public key.  

Anyone who wants to browse the website can first verify its identity by confirming the certificate’s digital signature  

SSH Keys

Secure shell (SSH) keys are cryptographic credentials commonly used in Linux and Unix environments. Instead of entering passwords, systems authenticate using a private key and a matching public key.  

SSH authentication is frequently used for automation because scripts and deployment platforms can authenticate securely without storing user passwords.

Service Principals

A service principal is the security identity that represents an application within Microsoft Entra ID (formerly Azure Active Directory), AWS (as IAM roles), and other cloud service providers and allows that application to authenticate to cloud services.  

A service principal serves a similar purpose to a service account, but it was designed for cloud environments rather than traditional infrastructure. Instead of logging in with a username and password, a service principal commonly uses certificates, OAuth authentication, or other modern authentication methods.

Managed Identities

A managed identity is a special, automated type of service principal in Microsoft Entra ID where Azure manages the credentials for you, removing the draw for developers to store credentials, certificates, or client secrets within code.  

Azure handles credential issuance and rotation behind the scenes while allowing the workload to request authentication tokens directly from Microsoft Entra ID.

Workload Identities

A workload identity is a broad term used to describe an identity assigned to software rather than a person. Applications, containers, scripts, serverless functions, automation platforms, and AI services can all use workload identities.

Kerberos Service Identities

A Kerberos service identity allows applications and services in Active Directory environments to authenticate securely using Kerberos tickets. This reduces the need to transmit passwords across the network and allows services to verify one another's identity.

These identities are commonly associated with Service Principal Names (SPNs), an alias of a service principal, which tell Active Directory which account represents a particular service.

Kubernetes Service Accounts

A Kubernetes service account is an identity used by containers running inside a Kubernetes cluster. It allows workloads to authenticate to the Kubernetes API and other integrated services.  

In modern environments, Kubernetes service accounts are often connected to cloud workload identity systems so that containers can access cloud resources without storing credentials inside themselves.

Robotic Process Automation (RPA) Identities

An RPA identity belongs to a software robot or AI agent that automates repetitive business processes. These bots frequently interact with multiple systems and may perform tasks that would otherwise require human effort. Because RPA bots often require access to business-critical systems, they should be governed and monitored like any other privileged non-human identity.  

RPAs are managed by tools like UiPath, Automation Anywhere, and Microsoft Power Automate.

How non-human identities create security risks, and how to mitigate them

1. Excessive privileges accumulate over time

Many non-human identities receive broad permissions or account roles during deployment because it’s much easier than spending time selecting and assigning the specific, granular rights they may need. Those permissions often remain in place long after the application, workload, or integration no longer requires them.

Zero Trust mitigation strategy:

The most effective way to reduce excessive permissions is to compare granted permissions against actual usage and remove access that is no longer required.  

Technologies such as Microsoft Entra Workload ID, Microsoft Defender XDR, AWS IAM Access Analyzer, Azure RBAC, and AWS IAM policies can help identify overprivileged identities and reduce permissions based on observed activity.

For example, if a service principal only reads data from a storage account, it should not retain permissions across an entire cloud subscription. By continuously evaluating permission usage and narrowing access over time, organizations reduce the impact of compromised credentials

2. Credentials become distributed across multiple systems

Non-human identity credentials often end up stored in source code repositories, CI/CD pipelines, configuration files, Kubernetes Secrets, environment variables, and backup systems (or worse, directly in source code). Over time, teams lose track of where those credentials exist and who can access them.

Zero Trust mitigation strategy:

Organizations should move secrets out of individual applications and into centralized secret-management platforms such as Azure Key Vault, AWS Secrets Manager, HashiCorp Vault, or CyberArk Secrets Manager.

Where possible, static credentials should be replaced with managed identities, IAM roles, workload identity federation, or certificate-based authentication. Centralization reduces credential sprawl and provides a single source of truth for credential inventory, access auditing, and rotation.

3. Visibility and ownership are often poorly defined

Organizations frequently know who owns an application but don’t have easy visibility into the service accounts, service principals, API tokens, and workload identities that support it. As a result, security teams struggle to determine which identities exist and what access they possess.

Zero Trust mitigation strategy:

A foundational Zero Trust practice is maintaining visibility into every identity that can access organizational resources. Technologies such as Microsoft Entra Workload ID, Microsoft Defender XDR, CyberArk, and BeyondTrust can discover and catalog non-human identities across cloud, SaaS, and on-premises environments.

Every identity should have a documented owner, a defined business purpose, and an assigned review process.

4. Dormant and orphaned identities remain active

When applications are retired or integrations are replaced, the associated non-human identities often remain enabled but forgotten. Many of these identities retain access to the production systems they once needed to do their jobs, even though they no longer perform a business function.

Zero Trust mitigation strategy:

Organizations should treat non-human identities like any other managed asset by implementing onboarding, review, and decommissioning processes. Tools such as Microsoft Entra Workload ID, and AWS IAM Access Analyzer can help identify inactive identities and unused permissions.

A common practice is requiring identity owners to periodically certify that an identity is still needed. If no valid business use exists, access should be revoked and the identity retired.

5. Traditional monitoring is often user-centric

Many monitoring programs were designed around human behavior, such as failed logins, account lockouts, and unusual geographic sign-in activity. Non-human identities often perform machine-to-machine actions that appear normal even when compromised.

Zero Trust mitigation strategy:

Authentication should not be treated as a one-time event or enforced only against normal user accounts. Monitoring platforms such as Microsoft Sentinel, AWS CloudTrail, AWS GuardDuty, and Splunk can establish behavioral baselines for applications and workloads.

For example, a workload that normally reads data from one database should generate an alert if it suddenly begins creating cloud resources or enumerating administrative APIs. Continuous verification focuses on what the identity is actually doing rather than simply whether it authenticated successfully.

6. Non-human identities often bypass human security controls

Employee accounts frequently benefit from controls such as MFA, access reviews, onboarding, and offboarding. Non-human identities often operate outside these controls because automated systems cannot easily participate in interactive authentication workflows.

Zero Trust mitigation strategy:

Organizations should tie resource access directly to the verified identity of the workload instead of relying on shared passwords, API keys, or stored secrets. Technologies such as Microsoft Entra Managed Identities, AWS IAM Roles, Kubernetes Workload Identity, workload identity federation, and mutual TLS certificates allow applications to authenticate as themselves.

7. Machine-to-machine trust relationships expand the blast radius

Modern applications often communicate with databases, APIs, storage platforms, cloud services, and third-party integrations. If a non-human identity is compromised, attackers may be able to use those trusted connections to reach additional resources.

Zero Trust mitigation strategy:

Organizations should limit the systems, services, and resources each workload can access. Controls such as Kubernetes Network Policies, AWS Security Groups, Azure Network Security Groups (NSGs), host firewalls, application allowlisting, and microsegmentation technologies restrict communication paths.

For example, a payment-processing application should be able to communicate with its database and logging platform, but not with every server in the environment.  

By evaluating access at each connection point and enforcing resource-level restrictions, organizations reduce the ability of attackers to move laterally after compromising a non-human identity.

FAQs

What is non-human identity security?

Non-human identity security is the practice of discovering, authenticating, authorizing, monitoring, and retiring identities used by applications, services, devices, workloads, automation tools, and AI agents. Its purpose is to ensure that every machine identity has a defined owner, a legitimate purpose, and only the access required for its task.

What are the most common non-human identity security risks?

Common risks include excessive permissions, exposed credentials, static API keys, dormant accounts, unclear ownership, and unrestricted machine-to-machine connections. Because these identities operate automatically, compromised activity may resemble legitimate system behavior unless organizations monitor what each identity normally accesses and performs.

How can an organization find its non-human identities?

Start by inventorying service accounts, API keys, certificates, service principals, managed identities, SSH keys, Kubernetes service accounts, automation platforms, and AI integrations. Review identity providers, cloud platforms, source-code repositories, CI/CD systems, secret stores, applications, and endpoint or network logs to uncover identities that may not appear in a central directory.

How often should non-human identities be reviewed?

Review non-human identities periodically and whenever an application, integration, owner, or business process changes. High-privilege identities should receive more frequent reviews. Credentials should also be rotated or revoked immediately following suspected exposure, ownership changes, or decommissioning.

How does Zero Trust protect non-human identities?

Zero Trust requires every identity and access request to be explicitly verified rather than trusted because it originates from a familiar application or network location. Applying least privilege, short-lived credentials, resource-level authorization, application control, network segmentation, and continuous monitoring limits what a compromised non-human identity can access and how far an attacker can move.

No items found.

Start your path to stronger defenses

Start your trial

Try ThreatLocker free for 30 days and experience full Zero Trust protection in your own environment.

Book a demo

Schedule a customized demo and explore how ThreatLocker aligns with your security goals.

Ask an expert

Just starting to explore our platform? Find out what ThreatLocker is, how it works, and how it’s different.