Prepare for Your First Security Audit Without Last-Minute Surprises
This guide is for non-technical customers getting ready for a software security audit. You will leave with an audit-ready packet: named contacts, system inventory, access list, policy set, evidence folder, and proof that core security controls are turned on and documented.
TL;DR — Your first security audit goes faster when you gather evidence before the auditor asks for it. The single biggest time-saver is to create one shared audit folder and fill it with five things: system inventory, access list, security policies, proof of backups, and screenshots showing MFA (multi-factor authentication) and logging are enabled. Reading time: ~5 min
Goal
When you finish, you will have a single audit-prep folder containing the documents, screenshots, exports, and contact list an auditor usually asks for first, and you will have verified that your key security controls are enabled and visible.
Prerequisites
- Your company file storage access with permission to create a shared folder (for example Google Drive, Microsoft SharePoint, or Dropbox)
- Admin or manager access to your main business systems:
- your app hosting dashboard
- your cloud provider dashboard, if you have one
- your identity provider (the login system your team uses, such as Google Workspace, Microsoft 365, or Okta)
- your source code host (for example GitHub, GitLab, or Bitbucket)
- your ticketing system, if you use one
- A spreadsheet tool you can edit, such as Google Sheets, Excel, or Airtable
- A PDF viewer and screenshot tool
- The names and email addresses of:
- your technical owner
- your security contact
- your compliance or legal contact
- your backup person for each role
- If you have command-line access, optional tools:
openssl— check withopenssl versioncurl— check withcurl --version
Steps
Step 1: Create one shared audit folder
Create a top-level folder in your file storage named exactly:
Security Audit - 2026
Inside it, create these subfolders exactly:
01-Contacts
02-System-Inventory
03-Access-Review
04-Policies
05-Backups
06-Logging-Monitoring
07-Vulnerability-Management
08-Incident-Response
09-Screenshots
10-Exports
What you should see when this succeeds: one shared folder with 10 clearly named subfolders, visible to the people who will help answer audit questions.
Step 2: Add your audit contacts list
Create a spreadsheet in 01-Contacts named exactly:
audit-contacts.xlsx
Add these column headers exactly:
Role,Primary Name,Primary Email,Backup Name,Backup Email
Fill at least these roles:
Executive Owner
Technical Owner
Security Contact
Compliance Contact
Hosting Contact
Identity Provider Contact
Backup/Recovery Contact
What you should see when this succeeds: a completed contacts sheet with no blank owner roles.
Step 3: Build a simple system inventory
Create a spreadsheet in 02-System-Inventory named exactly:
system-inventory.xlsx
Add these column headers exactly:
System Name,Purpose,Vendor/Host,Stores Customer Data (Yes/No),Stores Payment Data (Yes/No),Admin URL,Owner,Backup Owner
List every system that matters for your service, including at minimum:
Production Application
Production Database
File Storage
Source Code Host
Identity Provider
Email Provider
Customer Support System
Monitoring/Alerting
Backup System
What you should see when this succeeds: one row per important system, with an owner and admin URL for each.
Step 4: Export or record your current user access list
In each provider dashboard, open the users or members page and export the list if the provider offers export. Common menu paths are:
Your provider dashboard → Settings → Users
Your provider dashboard → Organization → Members
Your provider dashboard → Admin → Users
If export is available, save the file into 03-Access-Review.
If export is not available, create a spreadsheet named:
access-review.xlsx
Use these headers exactly:
System,User,Email,Role,Admin (Yes/No),MFA Enabled (Yes/No),Last Reviewed Date
What you should see when this succeeds: a file in 03-Access-Review covering all admin-capable systems.
Step 5: Capture proof that MFA is enabled for admins
In your identity provider dashboard, open the MFA settings page. Common menu paths are:
Admin Console → Security → Authentication → 2-Step Verification
Admin Center → Security → Multifactor Authentication
Identity Provider Dashboard → Security → MFA Policies
Take screenshots showing:
1. MFA is required for administrators
2. The policy status is On/Enabled
3. The date/time is visible on your screen if possible
Save the screenshots in 09-Screenshots with these filenames:
mfa-admin-policy.png
mfa-admin-enforcement.png
What you should see when this succeeds: screenshots that clearly show MFA is enabled, not just available.
Step 6: Capture proof of backups and restore options
Open your hosting, database, or backup provider dashboard. Common menu paths are:
Provider dashboard → Backups
Provider dashboard → Database → Backups
Provider dashboard → Storage → Snapshots
Take screenshots showing:
1. Backups are enabled
2. The backup schedule or retention period
3. The restore option or restore history
Save them in 05-Backups with these filenames:
backup-enabled.png
backup-retention.png
backup-restore-options.png
What you should see when this succeeds: screenshots that show backups exist and can be restored, not just purchased.
Step 7: Capture proof of logging and alerting
Open your hosting, cloud, or monitoring dashboard. Common menu paths are:
Provider dashboard → Logs
Provider dashboard → Monitoring → Alerts
Cloud console → Audit Logs
Take screenshots showing:
1. Audit logs or activity logs are enabled
2. At least one alert destination exists (email, Slack, pager, webhook)
3. Recent log entries are visible
Save them in 06-Logging-Monitoring with these filenames:
audit-logs-enabled.png
alert-destination.png
recent-log-events.png
What you should see when this succeeds: visible evidence that actions are logged and alerts have somewhere to go.
Step 8: Add your policies and incident process
Create these documents in 04-Policies if you do not already have them:
access-control-policy.docx
password-policy.docx
backup-policy.docx
incident-response-plan.docx
change-management-policy.docx
Each document should include these exact headings:
Purpose
Scope
Owner
Review Date
Policy
Exceptions
For incident-response-plan.docx, also add these headings exactly:
How to Report an Incident
Who Responds First
How Customers Are Notified
How Evidence Is Preserved
Post-Incident Review
What you should see when this succeeds: five files exist, each with an owner and review date.
Step 9: Add vulnerability and patch evidence
If you receive security scan reports from your agency or provider, place the latest report in 07-Vulnerability-Management.
If you do not have a report, create a file named:
vulnerability-tracking.xlsx
Use these headers exactly:
Issue ID,System,Severity,Date Found,Owner,Target Fix Date,Status,Date Closed
Then add at least one row for each open security issue you already know about.
What you should see when this succeeds: a current report or tracker exists, even if some items are still open.
Step 10: Verify your public site uses HTTPS and a valid certificate
First use the browser path: open your website, click the padlock icon, and confirm the certificate is valid and not expired.
If you have CLI access, run:
curl -I https://yourdomain.com
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com < /dev/null | openssl x509 -noout -dates -issuer -subject
What you should see when this succeeds: the site loads over https://, the browser shows a secure connection, and the certificate output shows future notAfter date.
Verify it works
Check that your audit folder contains all 10 subfolders and at least one file in each of these folders:
01-Contacts
02-System-Inventory
03-Access-Review
04-Policies
05-Backups
06-Logging-Monitoring
09-Screenshots
Open your shared folder and confirm another team member can view it.
For your website, verify either of these:
curl -I https://yourdomain.com
Expected result:
HTTP/2 200
or a redirect to HTTPS first, then a successful HTTPS page:
HTTP/1.1 301 Moved Permanently
location: https://yourdomain.com/
Use this simple audit-prep flow as your checklist:
View as text
[Contacts] ---- 1. owners ----> [Audit Folder] [Systems] ---- 2. inventory ----> [Audit Folder] [Access List] ---- 3. users/MFA ----> [Audit Folder] [Policies] ---- 4. rules ----> [Audit Folder] [Backups] ---- 5. proof ----> [Audit Folder] [Logs] ---- 6. evidence ----> [Audit Folder]
Common pitfalls
Missing admin access to one critical system
Mistake: only collecting evidence from the app dashboard and forgetting identity, backups, or source code hosting.
Symptom: the auditor asks for user access or MFA proof for a system you cannot open.
Fix: add every admin-capable system to system-inventory.xlsx, then get temporary read access before the audit starts.
Screenshots show options, not enabled status
Mistake: taking a screenshot of the settings page without the toggle or policy status visible.
Symptom: the auditor replies, asking whether the control is actually on.
Fix: retake the screenshot so the words Enabled, On, or Required are visible in the same image.
No review date on policies
Mistake: uploading policy documents with no owner and no review date.
Symptom: the auditor treats the document as stale or draft.
Fix: add Owner and Review Date headings to each policy and save a new version.
Access list does not show MFA status
Mistake: exporting users but not recording whether admins use MFA.
Symptom: you have a user list, but still cannot answer the MFA question.
Fix: add the MFA Enabled (Yes/No) column to access-review.xlsx and fill it for all admin users.
Backup proof shows schedule but no restore path
Mistake: saving only a screenshot that backups run nightly.
Symptom: the auditor asks how you know recovery will work.
Fix: add a second screenshot showing the restore button, restore menu, or restore history in the backup dashboard.
This article was written by an AI system and published pending human review. Verify anything you intend to act on.
Have a project in mind?
Get an instant AI price estimate for it, or talk directly to our team.
One email a month on what we learn building with AI