The clock starts the moment you confirm unauthorized access
You spot a shell history full of commands you didn't run, or a customer reports stolen data, or your intrusion detection screams. No matter how the alert arrives, the next 48 hours decide whether you contain the damage or watch it cascade into litigation, regulatory fines, and customer loss.
I've walked dozens of clients through breach response. The ones who had a checklist and executed it calmly kept their businesses alive. The ones who panicked or delayed lost weeks of forensic evidence and faced harsher penalties. This guide gives you the hour-by-hour actions that matter when your server is compromised.
Hour 0-2: Confirm and contain
Before you rip cables or shut down systems, verify the breach is real. False positives waste time and create downtime for no reason.
Verify the incident
Check the evidence yourself:
- Review login records (
last,lastb,/var/log/auth.logor/var/log/secure) - Examine shell histories for root and service accounts (
~/.bash_history,~/.zsh_history) - Scan running processes for unknown binaries (
ps aux,top,lsof -i) - Look for unauthorized cron jobs (
crontab -lfor each user,/etc/cron*) - Check file integrity if you have AIDE or Tripwire baselines
Document every finding with timestamps and command output. Screenshot or copy logs to a separate, trusted system immediately.
Isolate compromised systems
Do not shut down the server yet—you'll lose memory artifacts and live connections that forensics teams need.
Instead, isolate the network:
# Block all inbound traffic except your IP
iptables -I INPUT 1 -s YOUR_TRUSTED_IP -j ACCEPT
iptables -I INPUT 2 -j DROP
ip6tables -I INPUT 1 -s YOUR_TRUSTED_IPv6 -j ACCEPT
ip6tables -I INPUT 2 -j DROP
If you manage the server through a firewall or cloud security group, update rules there too. The attacker may have tunneled in through application layers, so network isolation is your first wall.
Disable the compromised service accounts:
# Lock user accounts (does not kill active sessions)
passwd -l suspicious_user
usermod -s /usr/sbin/nologin suspicious_user
Kill active sessions for those users:
# Find and terminate sessions
who
pkill -KILL -u suspicious_user
Snapshot everything
If you're on a VPS or cloud platform, take a full disk snapshot or image right now before you change anything else. Label it with the date and time. This snapshot is your forensic baseline; lawyers and incident response firms will ask for it.
Hour 2-4: Preserve evidence and assess scope
You've bought time. Now gather evidence before it disappears.
Capture volatile data
Memory and network state vanish when you reboot. Capture them first:
- Memory dump (requires tools like
LiMEoravmlpre-installed, or run from live USB) - Open network connections:
netstat -anp > /root/netstat_$(date +%s).txtorss -anp - Loaded kernel modules:
lsmod > /root/lsmod_$(date +%s).txt - Process list with full command lines:
ps auxwwf > /root/ps_$(date +%s).txt - Current logged-in users:
w > /root/w_$(date +%s).txt
Store these files on external media or a remote system the attacker cannot reach.
Copy logs before rotation
Log rotation or attacker cleanup can erase the trail. Copy everything:
mkdir /root/breach_logs_$(date +%F)
cp -a /var/log /root/breach_logs_$(date +%F)/
tar -czf /root/breach_logs_$(date +%F).tar.gz /root/breach_logs_$(date +%F)
If the server runs a web application, copy application logs (PHP error logs, WordPress debug logs, Node.js logs, database slow query logs). Copy web server access logs and database logs (/var/log/mysql, /var/lib/pgsql/data/log).
Transfer the tarball off the server immediately.
Map the scope
Answer these questions:
- What data does this server hold? (customer records, payment info, credentials, email, backups?)
- Which accounts or services were compromised?
- What network access did the attacker have? (internal network, database server, other VMs?)
- Was data exfiltrated? (check outbound traffic logs, firewall logs, unusual bandwidth spikes)
- Are backups intact or compromised?
Build a timeline of attacker activity from log correlation. Note when the first anomaly appeared and when you detected it—this gap is your exposure window.
Hour 4-8: Notify your internal team and start investigation
Alert the right people
You need help. Notify:
- Your manager or company leadership (they'll decide legal and PR strategy)
- Your legal team or outside counsel
- Your security team or a third-party incident response firm if you don't have in-house expertise
- Your hosting provider if they manage the infrastructure (AWS, Google Cloud, managed hosting—they may have additional logs or can assist isolation)
Do not notify customers yet unless you have definitive proof of data exposure. Premature notifications cause panic and legal complications if you later find no sensitive data was accessed.
Begin forensic analysis
If you have a forensics partner, hand off the snapshot and logs now. If you're handling it yourself, start identifying indicators of compromise:
- Search for recently modified files:
find / -type f -mtime -7 -ls > /root/recent_files.txt - Check for unauthorized SSH keys in
~/.ssh/authorized_keysfor all users - Look for backdoor PHP files in web directories:
find /var/www /home/*/public_html -type f -name '*.php' -mtime -30 - Scan for reverse shells, web shells, or known malware patterns
- Review crontab entries and systemd timers for persistence mechanisms
- Check package manager logs for unauthorized installs (
/var/log/apt,/var/log/yum.log)
Document every finding and its timestamp. You'll need this for legal proceedings and regulatory reports.
Determine if re-infection is possible
Did the attacker install a rootkit? Are there other backdoors? Don't assume you found everything. Run integrity checks and consider a full reinstall if the compromise was deep.
Hour 8-24: Eradication and initial recovery
Remove attacker access completely
Change every credential:
- Root password and all user passwords
- Database passwords (and update application configs)
- API keys, service account tokens, cloud IAM credentials
- SSH keys (regenerate and redistribute)
- Control panel passwords (cPanel, Plesk, ISPConfig)
- Third-party service passwords (DNS, CDN, monitoring)
Rotate TLS certificates if private keys were on the compromised server.
Revoke or regenerate any secrets stored in environment variables, config files, or secrets managers.
Patch the entry point
Identify how the attacker got in and close it:
- Outdated CMS or plugins? Update immediately or remove.
- Weak password or stolen credential? Enforce stronger policies.
- Exposed service with no firewall? Lock it down.
- Application vulnerability? Patch or disable the application.
- Misconfigured permissions? Fix them.
Run a vulnerability scan to catch other exposures.
Rebuild or restore
If the compromise was shallow (a single account, limited access), you may clean and harden in place. If the attacker had root or installed kernel-level malware, rebuilding from a known-good backup or clean OS image is safer.
When restoring from backup:
- Use a backup from before the earliest attacker activity (check your timeline)
- Verify the backup itself wasn't tampered with
- Apply all security patches before putting it back online
Test the restored system in isolation before reconnecting it to the network.
Hour 24-48: Notification and documentation
Comply with breach notification laws
If you confirmed that personal data, health records, payment information, or credentials were accessed or exfiltrated, you probably have legal notification obligations. Rules vary by jurisdiction:
- GDPR requires notification to authorities within 72 hours and to affected individuals without undue delay.
- US state laws (California, New York, etc.) have their own timelines and thresholds.
- Sector-specific laws like HIPAA for healthcare or PCI-DSS for payment cards impose strict requirements.
Work with your legal counsel to determine who must be notified and when. Typical recipients:
- Affected customers or users
- Regulators or data protection authorities
- Law enforcement (depending on the severity and nature)
- Credit bureaus (if Social Security numbers or financial data was exposed)
- Your cyber insurance carrier
Draft the notification with your legal team. Include what happened, what data was affected, what you're doing about it, and what recipients should do (e.g., change passwords, watch for fraud).
Document everything for the record
Your timeline, evidence files, action log, and notification records form your legal and regulatory defense. Organize:
- Incident timeline (first detection, actions taken, containment achieved)
- List of affected systems and data
- Forensic findings and IOCs (indicators of compromise)
- Remediation steps completed
- Notification delivery records
Store this documentation securely. You may need it for audits, lawsuits, or insurance claims months or years later.
Strengthen defenses before going live
Before you restore normal service, verify:
- Intrusion detection or monitoring is active (OSSEC, Wazuh, Fail2ban, cloud-native tools)
- Firewall rules are tight and tested
- Logging is comprehensive and shipped off-server to a SIEM or secure storage
- Backups are automated, encrypted, and stored separately
- Security patching is up to date and scheduled
- Two-factor authentication is enabled for admin access
Run a penetration test or vulnerability assessment if budget allows.
What happens after the 48-hour window?
The acute phase is over, but the work continues. Over the next weeks:
- Conduct a root-cause analysis and document lessons learned.
- Update your incident response plan based on what worked and what didn't.
- Train your team on the new procedures.
- Monitor closely for re-infection or related attacks—attackers often return.
- Engage with regulators or law enforcement as required.
- Communicate transparently with customers to rebuild trust.
FAQ
Q: Should I pay a ransom if the attacker encrypted data?
No, paying funds criminal enterprises and offers no guarantee of decryption. Restore from backups instead. Law enforcement recommends against payment.
Q: Can I skip forensics if I already know the entry point?
You risk missing other compromises, persistence mechanisms, or exfiltrated data. Forensics also provides evidence for legal and insurance purposes.
Q: Do I have to notify customers if no data was actually stolen?
It depends. If you confirmed unauthorized access to systems containing personal data but cannot prove exfiltration, many laws still require notification. Consult legal counsel.
Q: How long should I keep breach evidence?
Retain logs, snapshots, and documentation for at least the statute of limitations in your jurisdiction—often three to seven years. Your legal and compliance teams will guide retention policies.
Q: What if I can't determine the scope within 48 hours?
Continue the investigation and notify stakeholders of the ongoing assessment. Transparency about uncertainty is better than silence. You can issue updated notifications as you learn more.
Secure the server, protect the data, document the process
A data breach is a crisis, not a catastrophe—if you act fast and follow a plan. Isolate, preserve evidence, eradicate the attacker, notify the right parties, and harden defenses before resuming operations. The 48-hour window is tight, but with this checklist you'll stay focused on what matters: stopping the bleeding, understanding the damage, and meeting your legal and ethical obligations. Keep the checklist handy and drill it with your team before the next alert comes in.
![Data Breach Response Checklist: 48-Hour Server Plan [2026]](/images/blog/data-breach-response-checklist-48-hour-server-plan-2026.jpg)