Hello World
Your first case. One question. One answer. Welcome to PracticeSIEM.
28 hands-on investigation cases with authentic log artifacts. Solve real alerts covering web attacks, credential stuffing, cloud breaches, and ransomware.
Your first case. One question. One answer. Welcome to PracticeSIEM.
Seven people logged into the server today. Only one was first. The timestamp doesn't lie.
Someone's hammering your SSH port right now. How many times did they fail before you noticed? (Spoiler: a lot)
Six logins. All green. Except one — from an IP that has no business being here. Spot the pattern break.
Five team members used sudo today. Four of them did normal work. One did something sus. Find the odd one out.
Someone is trying to break into your webserver. They're using a standard ssh brute-force tool, banging away at the login. Find the attacker's IP address and count how many failed attempts they made.
At 02:04 UTC the IDS fired on web-01. The on-call analyst took a quick look and went back to sleep — probably a script kiddie. You pulled the auth logs before rotation. Prove them wrong.
HR flagged an unknown account in Active Directory this morning — svc_helpdesk_old. IT has no record of creating it. By the time anyone looked, it had already logged in. Windows Security Event Logs from the domain controller are attached.
Your web server logged legitimate users all day. But one user account shouldn't be logging in from anywhere, let alone from an external IP. Find the ghost.
Nginx logged something ugly this morning. Someone's running sqlmap against your API and they already got a 200 back with a payload that shouldn't work. Find what they extracted.
One user logged in from a different location starting at midnight. Normal office hours work doesn't happen in the middle of the night. Who broke pattern?
Firewall lit up like a Christmas tree. One IP hit 20 different ports in 7 seconds. They weren't guessing — they were mapping. Two ports answered back.
The FTP backup service runs twice a day — 2am and 2pm. Both sessions grab small config files from the internal backup host. Last night there was a third session. From an IP that isn't in the building.
Most of your team uses sudo for legitimate work. One user is systematically trying to steal every credential they can find. Who's hunting for secrets?
Someone logged into the deploy account at 3:47am. Not with a password — with a key. Deploy never uses key-based auth. Someone planted a backdoor.
The dev team noticed a new file in the uploads directory on app-03. By the time they flagged it, the process tree looked wrong. You have auth logs and nginx access logs.
A database server generated 1,200 DNS queries in under 10 minutes — all to subdomains of a domain registered 3 days ago. Figure out what left the building.
Twelve users. One password attempt each. Spread across 47 minutes from the same IP. Fail2ban never triggered. One account caved. This is what a spray looks like — and why it's so hard to catch.
The auth log has a 47-minute hole in it. Logs don't develop holes on their own. Someone deleted the evidence — but they left fingerprints doing it.
Someone uploaded a PHP file to the app server. Three minutes later they had a root shell. You have two log files. Reconstruct the attack from first upload to full compromise.
One external IP logged into web-01. Seventeen minutes later, three servers were compromised and a database dump was on its way to Russia. Trace every hop.
Your AWS CloudTrail lit up with API calls from an IP you've never seen before. Within 3 minutes they enumerated your entire infrastructure, created a new IAM user, and attached it to the Administrator policy. By the time the alert fired, they were already gone. Find out how they got in and what they accessed.
The IDS was offline for 6 hours. When it came back — nothing. Clean bill of health. But a junior analyst noticed the backup_svc account logged in twice at 3am. backup_svc doesn't run at 3am. Hunt season is open.
The domain controller flagged anomalous Kerberos ticket requests at 03:47. A service account that hasn't logged in for 8 months just authenticated to 14 different servers in 90 seconds. Windows Security Event Logs attached. Something golden this way comes.
The SecOps team discovered that 47 servers across multiple departments had files encrypted overnight. But here's the twist: a manual administrator never touched a keyboard, and no external attacker was seen entering the network. The encryption started in your file server at 02:14 UTC.
A security researcher publicly disclosed that a popular npm package released 3 weeks ago contained a malicious payload. The code was dormant until an exact hostname matched — yours. Your prod environment just lit up with outbound connections to Telegram. Time to figure out what was downloaded and who is affected.
No malware dropped. No foreign binaries. Just curl, base64, wget, and bash — tools that ship with every Linux server. But in this sequence, they're a fully functional C2 implant. Find the campaign.
A web app with a URL-fetching feature just became the attacker's proxy. They used it to hit the EC2 metadata service, grabbed IAM credentials, and used them from their own IP to download three S3 files before you noticed. Trace the full cloud attack chain.