Self-directed project
Fundamentals of Cybersecurity
Cybersecurity · July 2026
Built a complete beginner SOC incident response workflow from phishing triage through containment and executive reporting. The work identified a malicious email, isolated the anomalous Rotterdam login as the compromise point, mapped events to kill-chain stages, and drafted a GDPR-style breach notification and incident summary grounded in the observed facts. The capstone also translated the real Continental case into a concrete control recommendation focused on exfiltration monitoring.
Graded against
- Threat Triage & Detection20%
- Log Analysis & Investigation30%
- Incident Response & Containment20%
- Compliance & Breach Notification15%
- Executive Communication & Lessons15%
Passed · pass mark 60/100
What stood out6
- Correctly identified the phishing email as malicious and caught 3 of 4 critical red flags without false positives.
- Flagged the impossible-travel login row and tied it to the compromise path instead of treating the alert as generic noise.
- Sequenced containment in a sensible order that cut access first and avoided destructive actions.
- Used the Continental case to justify egress/exfiltration monitoring with the concrete 40TB / 4-week dwell-time fact.
- Leakage-Free Threat Triage
- Anomaly-Driven Log Investigation
The work I submitted10 tasks
Phishing Triage
{"prompt":"Flag the red flags in the phishing email","flagged":["attachment","greeting","sender","link"],"caughtCritical":3,"totalCritical":4,"falsePositives":0,"passed":false,"attempt":2}Killchain Map
{"prompt":"Map each observed event to its kill-chain stage","mappings":{"phish":"Delivery","run":"Exploitation","creds":"Installation","login":"Command & Control","exfil":"Actions on Objectives"},"correct":5,"total":5,"passed":true,"attempt":2}Log Triage
{"prompt":"Flag the anomalous sign-in rows in the auth log","flaggedRows":["r7"],"caughtImpossibleTravel":true,"badCaught":1,"falsePositives":0,"passed":true,"attempt":1}Ioc Extraction
{"prompt":"Select the real Indicators of Compromise to block","selected":["ru-host","attachment","c2","attacker-ip"],"iocsCaught":4,"benignBlocked":0,"passed":true,"attempt":1}Containment Plan
{"prompt":"Choose and order the sound containment actions; cut access first; avoid the destructive ones.","selected":["disable-account","isolate-host","block-iocs","force-reset"],"order":["disable-account","isolate-host","block-iocs","force-reset"],"avoidedBad":["re-image","alert-all"],"soundCaught":4,"destructiveChosen":0,"accessCutFirst":true,"passed":true,"attempt":2}Breach Notification
{"prompt":"Draft the GDPR Art. 33 72-hour breach notification to the supervisory authority.","text":"What happened\nOn Wednesday at 02:13, a suspicious login was detected on the account belonging to Markus Weber (username: m.weber), originating from Rotterdam. The login is assessed as unauthorized. Following the compromise, ransomware was deployed on the network, encrypting files on shared network drives.\n\nData & people affected\nMarkus Weber's login credentials and personal information were stolen. Network shares accessible through his account were encrypted by the ransomware. [Flag: you may want to specify how many users/customers had data on the affected shares, and what type of data was stored there — this materially affects the severity assessment and any notification obligations.]\n\nLikely consequences\nThe incident carries a risk of reputational damage and financial loss, arising from the ransomware encryption of network shares and the potential misuse of Markus Weber's stolen credentials and personal data. [Flag: consider stating whether a ransom demand was made, whether backups are available/unaffected, and whether this is assessed as low/moderate/high risk — reports to higher authorities typically expect an explicit risk rating.]\n\nMeasures taken\nThe infected system was isolated from the network. The rogue account was removed, and the attacker's IP address has been flagged and blocked at the firewall.","charCount":1328,"elementsCovered":["nature","data","consequences","measures"],"passed":true,"attempt":2}Incident Report
{"prompt":"Write the incident report (Summary / Timeline / Root cause / Impact / Recommendations)","sections":{"summary":"On Wednesday, an unauthorized login from Rotterdam compromised Markus Weber's account, leading to theft of his login credentials and personal data. The attacker deployed ransomware, encrypting files on network shares before the affected system was isolated and contained.","timeline":"02:13, suspicious login from Rotterdam detected on m.weber's account. Shortly after, login credentials and personal data were exfiltrated. Ransomware was deployed, encrypting files on network shares. The infected system was isolated from the network, the rogue account was removed, and the attacker's IP was flagged and blocked at the firewall.","rootCause":"Markus Weber's account lacked multi-factor authentication, so the stolen login credentials alone were sufficient for the attacker to gain access. Once inside, the attacker was able to escalate to network shares and deploy ransomware without a second layer of verification to block the unauthorized login.","impact":"Markus Weber's login credentials and personal information were compromised. Network shares accessible through his account were encrypted by ransomware, resulting in loss of access to affected files. The incident carries a risk of reputational and financial loss. [Flag: consider adding scope details here if available — how many files/shares were encrypted, whether other users' data was on those shares, and whether the encryption was fully contained or partially spread before isolation, since this drives the severity rating.]","recommendations":"Implement multi-factor authentication on all user accounts. Apply the principle of least privilege to limit account access to only what is necessary. Segment the network to contain the spread of ransomware and limit lateral movement. Refresh phishing- and security-awareness training for employees."},"charCount":1746,"sectionsAddressed":["summary","timeline","rootCause","impact","recommendations"],"passed":true,"attempt":1}Recommendations
{"prompt":"Rate each control on impact and effort; order by priority (quick wins first)","ratings":{"mfa":{"impact":3,"effort":1},"awareness":{"impact":3,"effort":3},"least-privilege":{"impact":2,"effort":2},"endpoint":{"impact":3,"effort":1},"segmentation":{"impact":3,"effort":3}},"ranking":[{"rank":1,"control":"mfa","impact":3,"effort":1,"score":5},{"rank":2,"control":"endpoint","impact":3,"effort":1,"score":5},{"rank":3,"control":"awareness","impact":3,"effort":3,"score":3},{"rank":4,"control":"segmentation","impact":3,"effort":3,"score":3},{"rank":5,"control":"least-privilege","impact":2,"effort":2,"score":2}],"passed":false,"attempt":2}Real Case Analysis
{"prompt":"Real case: which ONE control would have most reduced the damage, and why?","text":"Control: Egress/exfiltration monitoring. The 40TB loss came from 4 weeks of undetected data movement, not the entry method. Catching abnormal outbound traffic early would've cut the dwell window and sharply limited how much data left before detection.","charCount":251,"controlsNamed":["monitoring / detection"],"passed":true,"attempt":1}Teach Back
{"prompt":"Teach one concept back in your own words, anchored to a real number from tonight.","text":"Multi-factor authentication (MFA) requires a second proof of identity beyond just a password — like a one-time code, app approval, or biometric — before granting access. In the Markus case, stolen login credentials alone were enough to log in from Rotterdam because no MFA was in place. Had MFA been enabled, the attacker would have needed that second factor too, and the stolen password alone would have been useless — likely stopping the breach right at the login stage, before any data theft or ransomware deployment occurred.","charCount":529}