Gusto Hardening Guide
Payroll security for admin controls, partner integrations, and bank account protection
Overview
Gusto is a payroll and benefits platform for small-medium businesses. REST API and partner integrations access employee SSN, bank accounts, compensation, and tax information. Compromised access enables payroll fraud and exposes highly sensitive PII.
Intended Audience
- Security engineers managing payroll systems
- Gusto administrators
- GRC professionals assessing payroll compliance
- Third-party risk managers evaluating HR integrations
Table of Contents
1. Authentication & Access Controls
1.1 Enforce MFA
Profile Level: L1 (Baseline) NIST 800-53: IA-2(1)
ClickOps Implementation
Step 1: Enable 2-Step Verification
- Navigate to: Settings → Security
- Enable: Require 2-step verification
- Configure for all admins
Step 2: Configure Login Security
- Enable login notifications
- Configure trusted devices
- Review active sessions
1.2 Admin Access Controls
Profile Level: L1 (Baseline) NIST 800-53: AC-3, AC-6
ClickOps Implementation
Step 1: Define Admin Roles
| Role | Permissions |
|---|---|
| Primary Admin | Full access |
| Full Admin | Most admin functions |
| Limited Admin | Specific access |
| No Access | Employee only |
Step 2: Configure Admin Permissions
- Navigate to: Team → Admins
- Limit full admin count
- Use limited admin for specific tasks
2. API Security
2.1 Partner Integration Security
Profile Level: L1 (Baseline) NIST 800-53: IA-5
Description
Manage Gusto partner integrations securely.
Rationale
Attack Scenario: Compromised API partner access enables bank account modification; payroll fraud redirects employee payments.
ClickOps Implementation
Step 1: Review Connected Apps
- Navigate to: Settings → Connected Apps
- Review all partner integrations
- Remove unused connections
Step 2: Integration Best Practices
- Limit integration permissions
- Audit data access
- Review quarterly
3. Data Security
3.1 Protect Payroll Data
Profile Level: L1 (Baseline) NIST 800-53: SC-28
ClickOps Implementation
Step 1: Limit Data Access
- Restrict who can view payroll
- Limit SSN visibility
- Protect bank account data
Step 2: Approval Workflows
- Require approval for payroll changes
- Enable bank account change verification
- Configure payment notifications
3.2 Document Security
Profile Level: L1 (Baseline) NIST 800-53: SC-28
ClickOps Implementation
Step 1: Document Access
- Limit who can view tax documents
- Restrict W-2/1099 access
- Configure download permissions
4. Monitoring & Detection
4.1 Activity Monitoring
Profile Level: L1 (Baseline) NIST 800-53: AU-2, AU-3
ClickOps Implementation
Step 1: Review Activity
- Monitor admin logins
- Track payroll changes
- Alert on bank account updates
Detection Focus
-- Detect bank account changes
SELECT admin_email, employee_name, change_type
FROM gusto_activity
WHERE action = 'bank_account_change'
AND timestamp > NOW() - INTERVAL '7 days';
-- Detect unusual admin activity
SELECT admin_email, action, COUNT(*) as actions
FROM gusto_activity
WHERE timestamp > NOW() - INTERVAL '24 hours'
GROUP BY admin_email, action
HAVING COUNT(*) > 50;
Appendix A: Edition Compatibility
| Control | Simple | Plus | Premium |
|---|---|---|---|
| 2-Step Verification | ✅ | ✅ | ✅ |
| Admin Roles | ✅ | ✅ | ✅ |
| API Access | Limited | ✅ | ✅ |
| Priority Support | ❌ | ❌ | ✅ |
Changelog
| Date | Version | Maturity | Changes | Author |
|---|---|---|---|---|
| 2025-12-14 | 0.1.0 | draft | Initial Gusto hardening guide | Claude Code (Opus 4.5) |