TMA-SHAREPOINT-2.2
Ensure the SharePoint farm service account (database access account) is configured with the minimum privileges for the local server.
Description
The SharePoint farm service account (database access account) must be configured with the minimum privileges for the local server. Prints the number of local groups on this server, other than WSS_RESTRICTED_WPG, WSS_ADMIN_WPG and WSS_WPG, that directly contain the farm service account (expected 0). Only direct membership is evaluated; nested domain groups need manual review. Run on every farm server. Run on a SharePoint farm server as a farm administrator; the audit loads the Microsoft.SharePoint.PowerShell snap-in and fails if it cannot.
How it is checked
Audit method: Shell command
$ErrorActionPreference = 'Stop'; if (-not (Get-Command Get-SPFarm -ErrorAction SilentlyContinue)) { Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction Stop }; if (-not (Get-Command Get-SPFarm -ErrorAction SilentlyContinue)) { throw 'SharePoint cmdlets are not available' }; $acct = "$((Get-SPFarm -ErrorAction Stop).DefaultServiceAccount.Name)"; if ($acct -notmatch '\\') { throw 'farm account not found' }; $dom, $sam = $acct.Split('\', 2); $re = '/' + [regex]::Escape($dom) + '/' + [regex]::Escape($sam) + '$'; $allowed = @('WSS_RESTRICTED_WPG','WSS_ADMIN_WPG','WSS_WPG'); $pc = [ADSI]("WinNT://" + $env:COMPUTERNAME + ",computer"); $bad = @($pc.Children | Where-Object { $_.SchemaClassName -eq 'group' } | Where-Object { $allowed -notcontains "$($_.Name)" } | Where-Object { $paths = @($_.Invoke('Members') | ForEach-Object { $_.GetType().InvokeMember('ADsPath', 'GetProperty', $null, $_, $null) }); @($paths | Where-Object { $_ -match $re }).Count -gt 0 }); $bad.Count- Expected output
0
How it is fixed
Fix method: Guidance or infrastructure patch
Remove the farm account from every local group except WSS_RESTRICTED_WPG, WSS_ADMIN_WPG and WSS_WPG (Server Manager > Local Users and Groups, or Remove-LocalGroupMember -Group <group> -Member <DOMAIN\farmaccount>), and remove any other rights/services assigned to it.
Properties
- Operating systems
- Any
- Tags
- sharepointservice-accountsleast-privilege
- Reference
- CIS Microsoft SharePoint 2019 Benchmark v1.0.0 - 2.2 Ensure the SharePoint farm service account (database access account) is configured with the minimum privileges for the local server.
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target sharepoint