Security Checklist - Secureframe
Security Checklist - Secureframe
General
Set up security@ email address (forward to developers group)
Perform regular system vulnerability sweeps
Create a set of security policies and document them, holding them in a specific folder,
either digitally or on paper.
Prepare for ransomware attack (establish a response team, emergency contact list,
consider cybersecurity liability insurance, determine the limit you’re willing to pay)
Create an incident response plan that outlines responsibilities and steps for detecting,
reporting, and responding to an incident
Pentesting
Intrusion Detection
Personnel
Firewall rules,
Close unnecessary ports and block unnecessary protocols and services
Segment functions such as APIs, admin privileges, etc.
Device security
Encrypt all devices, such as laptops and hard drives (e.g., FileVault on Mac)
Apply device restrictions (stop backups to personal cloud storage, etc.)
Consider providing employees with mobile devices for business purposes with remote wipe
Block potentially dangerous apps and websites
Prevent users from installing software
Turn on endpoint verification
Software security
List current system security software (e.g., firewalls, AV, SIEM tools, etc.)
Consider data loss protection software
Require MFA for all third-party services
Slack
GitHub
Heroku
AWS
Others:
Set up a team password manager (e.g., 1Password)
Check all software and operating systems are fully patched and updated to the latest
versions. Consider an inventory management/patch management tool (e.g., Fleetsmith)
Domain names
Auto-renew on
Buy primary domains for 5-10 years (optional)
Transfer lock enabled (default for most services)
Application Security
Data Storage
Create a list of personal data, where it’s stored, and sensitivity level
Database fields (and other data stores)
Files
Third-party services
Data at rest
Storage level encryption
Database
Elasticsearch
S3
Application-level encryption
Database fields
File uploads
Use authenticated encryption (e.g., AES-GCM or Libsodium)
Data in transit
External
HTTPS everywhere (including subdomains)
HSTS header
HSTS preload list (if possible)
Secure ciphers
SSL certificates not expiring soon
Internal
Postgres (sslmode=verify-full)
Elasticsearch (HTTPS)
Redis (SSL)
Database users
Password greater than 32 characters
Use separate roles for migrations, app, and analytics
Business Intelligence tools
Personal data not accessible
Auditing/logging
Check for data leakage
Logs
Error reporting
App instrumentation
Third-party analytics
Cache stores
Email inboxes
End-user security
User Management
Internal Threats