Performing Service Account Audit
Overview
Audit service accounts across enterprise infrastructure to identify orphaned, over-privileged, and non-compliant accounts. This skill covers discovery of service accounts in Active Directory, cloud platforms, databases, and applications, assessing privilege levels, identifying missing owners, and enforcing lifecycle policies.
Anti-Rationalization Table
| Rationalization |
Reality |
| "I'll figure it out as I go" |
A structured approach saves time and reduces errors. Follow the workflow in this skill rather than improvising. |
| "I already know this topic" |
Familiarity breeds shortcuts. Use the checklist to verify you haven't missed critical steps. |
| "This doesn't apply to my situation" |
The patterns here generalize across contexts. Adapt, don't skip — the underlying principles hold. |
| "One more tool will fix it" |
Adding complexity rarely solves process gaps. Master the core workflow first. |
When to Use
Trigger phrases:
"performing service account audit"
"Audit service accounts across enterprise infrastructure to identify orphaned, ov"
When conducting security assessments that involve performing service account audit
When following incident response procedures for related security events
When performing scheduled security testing or auditing activities
When validating security controls through hands-on testing
Prerequisites
- Familiarity with identity access management concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Objectives
- Discover all service accounts across AD, cloud, databases, and applications
- Identify orphaned accounts with no valid owner or associated application
- Assess privilege levels and flag over-privileged service accounts
- Check for non-rotating passwords and weak authentication
- Map service account dependencies for safe remediation
- Generate compliance reports for SOX, PCI DSS, and HIPAA audits
Key Concepts
This section covers key concepts for performing service account audit.
- Ensure all prerequisites are met before proceeding
- Follow the documented workflow steps in sequence
- Record results and any anomalies encountered during this phase
Service Account Types
- AD Service Accounts: Windows services, scheduled tasks, IIS app pools
- Managed Service Accounts (gMSA): AD-managed automatic password rotation
- Cloud IAM Service Accounts: AWS IAM roles/users, Azure service principals, GCP service accounts
- Database Service Accounts: Application connection accounts, replication accounts
- Application Service Accounts: API keys, bot accounts, integration accounts
Audit Dimensions
- Ownership: Who is responsible for this account?
- Purpose: What application/service uses this account?
- Privileges: What permissions does this account have?
- Authentication: How does this account authenticate (password, key, certificate)?
- Rotation: When was the credential last changed?
- Activity: When was this account last used?
Workflow
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Scope the task — define objectives, boundaries, and success criteria
- Gather information — collect all necessary data and context before proceeding
- Execute the core workflow — follow the domain-specific steps methodically
- Validate results — verify outputs against expected outcomes or baselines
- Document findings — record results, anomalies, and recommendations
Step 1: Discovery - Active Directory
- Query AD for all service accounts (filter by description, OU, naming convention)
- Identify accounts with
ServicePrincipalName set
- List accounts in privileged groups (Domain Admins, Enterprise Admins)
- Check for gMSA vs traditional service accounts
- Identify accounts with
PasswordNeverExpires flag
Step 2: Discovery - Cloud Platforms
- AWS: List IAM users with access keys, check last used date, identify unused roles
- Azure: Enumerate service principals, app registrations, managed identities
- GCP: List service accounts, check key age, identify unused permissions
Step 3: Assessment
- Flag accounts with admin/privileged group membership
- Check password age against rotation policy (90 days max)
- Identify accounts with no login activity in 90+ days
- Verify account ownership against CMDB/asset inventory
- Check for shared credentials (same password hash across accounts)
Step 4: Risk Classification
- Critical: Domain/cloud admin privileges, no password rotation
- High: Access to sensitive data, no identified owner
- Medium: Standard service permissions, password older than 90 days
- Low: Read-only access, managed credentials (gMSA, managed identity)
Step 5: Remediation
- Disable orphaned accounts after validation with application teams
- Convert traditional service accounts to gMSA where possible
- Rotate credentials older than policy threshold
- Reduce privileges to minimum required
- Assign owners and document dependencies
Security Controls
| Control |
NIST 800-53 |
Description |
| Account Management |
AC-2 |
Service account lifecycle |
| Account Review |
AC-2(3) |
Periodic review of accounts |
| Least Privilege |
AC-6 |
Minimum service account permissions |
| Authenticator Management |
IA-5 |
Service credential rotation |
| Audit Review |
AU-6 |
Review service account activity |
Common Pitfalls
- Disabling service accounts without verifying application dependencies first
- Not discovering service accounts outside of Active Directory
- Missing cloud service principals and managed identities
- Not checking for interactive logon rights on service accounts
- Failing to document dependencies before remediation
Verification
When NOT to Use
- You don't have explicit written authorization to test
- Task is about defense/detection, not offense (use detection skills)
- You need to implement security controls (use implementing-* skills)
- Task requires compliance auditing (use auditing-* skills)
- You're investigating an incident (use incident response skills)
- Target is out of scope for your engagement
- Task is about vulnerability scanning only (use scanning tools)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Treating compliance checklists as security guarantees rather than minimum baselines
- Failing to document exceptions and risk acceptance decisions
- Relying on point-in-time audits instead of continuous monitoring
Process
- Analyze the task requirements
- Apply domain expertise
- Verify output quality
1---2name: performing-service-account-audit3description: Use when auditing service accounts across enterprise infrastructure to identify orphaned, over-privileged, and non-compliant accounts. This skill covers discovery of service accounts in Active Directory, cloud pl4license: Apache-2.05---67# Performing Service Account Audit89## Overview10Audit service accounts across enterprise infrastructure to identify orphaned, over-privileged, and non-compliant accounts. This skill covers discovery of service accounts in Active Directory, cloud platforms, databases, and applications, assessing privilege levels, identifying missing owners, and enforcing lifecycle policies.11121314## Anti-Rationalization Table1516| Rationalization | Reality |17|---|---|18| "I'll figure it out as I go" | A structured approach saves time and reduces errors. Follow the workflow in this skill rather than improvising. |19| "I already know this topic" | Familiarity breeds shortcuts. Use the checklist to verify you haven't missed critical steps. |20| "This doesn't apply to my situation" | The patterns here generalize across contexts. Adapt, don't skip — the underlying principles hold. |21| "One more tool will fix it" | Adding complexity rarely solves process gaps. Master the core workflow first. |2223## When to Use24**Trigger phrases:**25- "performing service account audit"26- "Audit service accounts across enterprise infrastructure to identify orphaned, ov"272829- When conducting security assessments that involve performing service account audit30- When following incident response procedures for related security events31- When performing scheduled security testing or auditing activities32- When validating security controls through hands-on testing3334## Prerequisites3536- Familiarity with identity access management concepts and tools37- Access to a test or lab environment for safe execution38- Python 3.8+ with required dependencies installed39- Appropriate authorization for any testing activities4041## Objectives42- Discover all service accounts across AD, cloud, databases, and applications43- Identify orphaned accounts with no valid owner or associated application44- Assess privilege levels and flag over-privileged service accounts45- Check for non-rotating passwords and weak authentication46- Map service account dependencies for safe remediation47- Generate compliance reports for SOX, PCI DSS, and HIPAA audits4849## Key Concepts5051This section covers key concepts for performing service account audit.5253- Ensure all prerequisites are met before proceeding54- Follow the documented workflow steps in sequence55- Record results and any anomalies encountered during this phase56### Service Account Types571. **AD Service Accounts**: Windows services, scheduled tasks, IIS app pools582. **Managed Service Accounts (gMSA)**: AD-managed automatic password rotation593. **Cloud IAM Service Accounts**: AWS IAM roles/users, Azure service principals, GCP service accounts604. **Database Service Accounts**: Application connection accounts, replication accounts615. **Application Service Accounts**: API keys, bot accounts, integration accounts6263### Audit Dimensions64- **Ownership**: Who is responsible for this account?65- **Purpose**: What application/service uses this account?66- **Privileges**: What permissions does this account have?67- **Authentication**: How does this account authenticate (password, key, certificate)?68- **Rotation**: When was the credential last changed?69- **Activity**: When was this account last used?7071## Workflow7273```python74# Example: IOC detection75import re7677IOC_PATTERNS = {78 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",79 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",80 "hash_md5": r"\b[a-f0-9]{32}\b",81 "hash_sha256": r"\b[a-f0-9]{64}\b",82}8384def extract_iocs(text: str) -> dict:85 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}86```87881. **Scope the task** — define objectives, boundaries, and success criteria892. **Gather information** — collect all necessary data and context before proceeding903. **Execute the core workflow** — follow the domain-specific steps methodically914. **Validate results** — verify outputs against expected outcomes or baselines925. **Document findings** — record results, anomalies, and recommendations93### Step 1: Discovery - Active Directory941. Query AD for all service accounts (filter by description, OU, naming convention)952. Identify accounts with `ServicePrincipalName` set963. List accounts in privileged groups (Domain Admins, Enterprise Admins)974. Check for gMSA vs traditional service accounts985. Identify accounts with `PasswordNeverExpires` flag99100### Step 2: Discovery - Cloud Platforms101- **AWS**: List IAM users with access keys, check last used date, identify unused roles102- **Azure**: Enumerate service principals, app registrations, managed identities103- **GCP**: List service accounts, check key age, identify unused permissions104105### Step 3: Assessment106- Flag accounts with admin/privileged group membership107- Check password age against rotation policy (90 days max)108- Identify accounts with no login activity in 90+ days109- Verify account ownership against CMDB/asset inventory110- Check for shared credentials (same password hash across accounts)111112### Step 4: Risk Classification113- **Critical**: Domain/cloud admin privileges, no password rotation114- **High**: Access to sensitive data, no identified owner115- **Medium**: Standard service permissions, password older than 90 days116- **Low**: Read-only access, managed credentials (gMSA, managed identity)117118### Step 5: Remediation119- Disable orphaned accounts after validation with application teams120- Convert traditional service accounts to gMSA where possible121- Rotate credentials older than policy threshold122- Reduce privileges to minimum required123- Assign owners and document dependencies124125## Security Controls126| Control | NIST 800-53 | Description |127|---------|-------------|-------------|128| Account Management | AC-2 | Service account lifecycle |129| Account Review | AC-2(3) | Periodic review of accounts |130| Least Privilege | AC-6 | Minimum service account permissions |131| Authenticator Management | IA-5 | Service credential rotation |132| Audit Review | AU-6 | Review service account activity |133134## Common Pitfalls135- Disabling service accounts without verifying application dependencies first136- Not discovering service accounts outside of Active Directory137- Missing cloud service principals and managed identities138- Not checking for interactive logon rights on service accounts139- Failing to document dependencies before remediation140141## Verification142- [ ] Service accounts inventoried across all platforms143- [ ] Each account has assigned owner144- [ ] Privileged service accounts documented with justification145- [ ] Password rotation compliance checked146- [ ] Orphaned accounts flagged for remediation147- [ ] gMSA migration candidates identified148- [ ] Compliance report generated149## When NOT to Use150151- You don't have explicit written authorization to test152- Task is about defense/detection, not offense (use detection skills)153- You need to implement security controls (use implementing-* skills)154- Task requires compliance auditing (use auditing-* skills)155- You're investigating an incident (use incident response skills)156- Target is out of scope for your engagement157- Task is about vulnerability scanning only (use scanning tools)158159160## Red Flags161162- Performing actions without explicit written authorization from the asset owner163- Testing against production systems without a defined scope and rules of engagement164- Treating compliance checklists as security guarantees rather than minimum baselines165- Failing to document exceptions and risk acceptance decisions166- Relying on point-in-time audits instead of continuous monitoring167168## Process1691701. Analyze the task requirements1712. Apply domain expertise1723. Verify output quality