How to Land Your First SOC Analyst Job: 10 Hands-On Projects That Beat Certifications Every Time + Video

Listen to this Post

Featured Image

Introduction:

Many aspiring security professionals stack certifications like Security+ and CySA+ only to discover that employers demand proof of practical threat detection and incident response. Theory alone cannot simulate the pressure of investigating live alerts, correlating logs, or documenting a real breach. The ten hands-on projects outlined below—ranging from SIEM deployment to phishing analysis—bridge that gap, giving you demonstrable evidence that you can perform the daily tasks of a SOC analyst.

Learning Objectives:

  • Build and configure a SIEM (Splunk or ELK) to ingest, search, and alert on security logs.
  • Execute a simulated phishing campaign and conduct full incident response documentation.
  • Deploy intrusion detection systems (Snort/Suricata) and analyze packet captures for malicious patterns.
  • Automate SOC workflows using Python or PowerShell scripts to enrich indicators of compromise (IOCs).

You Should Know:

  1. SIEM Log Monitoring with ELK Stack on Ubuntu 22.04
    A SIEM aggregates logs from firewalls, endpoints, and servers, enabling real-time threat detection. The ELK stack (Elasticsearch, Logstash, Kibana) is a free, open-source alternative to Splunk. Below is a step‑by‑step setup on a Linux VM.

Step-by-step guide:

  • Update system and install Java (required for Elasticsearch):
    `sudo apt update && sudo apt install openjdk-11-jdk -y`
    – Import Elasticsearch GPG key and install:
    `wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -`

`sudo apt install elasticsearch -y`

  • Start Elasticsearch and enable on boot:
    `sudo systemctl start elasticsearch && sudo systemctl enable elasticsearch`
    – Install Logstash and Kibana similarly, then configure Logstash to ingest syslog:
    `sudo nano /etc/logstash/conf.d/syslog.conf` – add input (beats) and output (elasticsearch) sections.
  • Install Filebeat on a test endpoint to forward Windows Event Logs:
    Download Filebeat from Elastic, edit `filebeat.yml` to point to Elasticsearch, run `sudo filebeat setup` and sudo filebeat start.
  • Access Kibana at `http://:5601` and build dashboards for failed logins or suspicious process creations.
  1. Simulated Phishing Attack & Incident Response with GoPhish
    Understanding how users fall for phishing and how to respond is core SOC work. GoPhish is an open‑source phishing framework.

Step-by-step guide:

  • Install GoPhish on a Linux VM: download from GitHub, unzip, and run ./gophish. Access web UI at `https://:3333` (default credentials: admin/gophish).
  • Create a phishing campaign: clone a login page (e.g., Outlook), configure an SMTP server (use a test mail service like Mailtrap), and import target email addresses.
  • Launch the campaign and monitor results (opens, clicks, credentials submitted).
  • As incident response: collect affected machine logs (Windows Event ID 4624 for logins), run a script to quarantine the user’s mailbox (PowerShell: Set-Mailbox -Identity [email protected] -AccountDisabled $true), and write a post‑incident report including timeline and user training recommendations.
  1. IDS Deployment & Packet Analysis with Snort on Linux
    Snort detects malicious traffic by matching signatures. This project teaches you to write custom rules and analyse PCAPs.

Step-by-step guide:

  • Install Snort: sudo apt install snort -y. During setup, define your home network (e.g., 192.168.1.0/24).
  • Test Snort in sniffer mode: `sudo snort -v -i eth0` (captures packet headers).
  • Write a custom rule to alert on inbound SSH attempts: edit `/etc/snort/rules/local.rules` and add:
    `alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:”SSH connection detected”; sid:1000001; rev:1;)`
    – Run Snort in IDS mode: `sudo snort -A console -q -c /etc/snort/snort.conf -i eth0`
    – Analyse a PCAP from MalwareTrafficAnalysis.net: `snort -r suspicious.pcap -c /etc/snort/snort.conf -A fast` to generate alerts. Use `tshark -r suspicious.pcap -Y “tcp.port==22″` to filter SSH packets.
  1. Cloud Log Monitoring Using AWS CloudTrail and Azure Defender
    Cloud breaches often go undetected because analysts don’t know cloud audit logs. CloudTrail records every API call; Azure Defender provides security alerts.

Step-by-step guide (AWS):

  • Create a free AWS account and enable CloudTrail in the us-east-1 region (creates a trail that logs management events).
  • Use AWS CLI to search for anomalous actions:

`aws cloudtrail lookup-events –lookup-attributes AttributeKey=EventName,AttributeValue=DeleteTrail –region us-east-1`

  • Simulate a credential leak by creating an IAM user with a compromised key, then run `aws ec2 describe-instances` from a different IP.
  • In CloudTrail Event History, filter by `userIdentity.sessionContext.sourceIp` to find the anomalous IP.
  • For Azure Defender: enable Defender for Cloud on a trial subscription, deploy a test VM, then attempt to disable antivirus via PowerShell (logs appear in “Security alerts” within 30 minutes).
  1. Endpoint Monitoring with Sysmon + Wazuh on Windows
    Sysmon (System Monitor) logs process creation, network connections, and file changes. Wazuh is an open‑source XDR that integrates with Sysmon.

Step-by-step guide:

  • Download Sysmon from Microsoft, then install with a standard configuration:
    `Sysmon64.exe -accepteula -i sysmonconfig.xml` (get config from SwiftOnSecurity’s GitHub).
  • Verify logs in Event Viewer under “Applications and Services Logs/Microsoft/Windows/Sysmon/Operational”.
  • Install Wazuh agent on Windows: download from wazuh.com, point to your Wazuh server (can be a free cloud trial). The agent automatically forwards Sysmon events.
  • In Wazuh dashboard, create a rule to detect `whoami.exe` execution (often used after privilege escalation).
  • Test by running `whoami` on the endpoint; the alert should appear within seconds.
  1. Threat Hunting in Real Datasets with Zeek Logs
    Zeek (formerly Bro) is a network analysis framework. Using public PCAPs (e.g., from SECOMS or Malware Capture Facility), you can generate Zeek logs and hunt for anomalies.

Step-by-step guide:

  • Install Zeek: `sudo apt install zeek -y` (on Ubuntu). Add Zeek to PATH.
  • Convert a PCAP to Zeek logs: `zeek -r malware.pcap` – this generates conn.log, http.log, dns.log.
  • Use `jq` (JSON processor) to hunt for long‑duration connections:
    `cat conn.log | zeek-cut duration | sort -n | tail -10` (requires `zeek-cut` from the Zeek package).
  • For DNS tunneling detection: search for subdomains longer than 30 characters:
    `cat dns.log | zeek-cut query | awk ‘length($0) > 30’`
    – Write a simple hunting hypothesis: “Attackers often query rarely seen domains.” Use `cut` and `sort | uniq -c` to count unique DNS queries.

7. Python SOC Automation Script to Enrich IOCs

Automation reduces mean time to respond. Write a Python script that takes a list of IP addresses, queries VirusTotal’s API, and returns malicious verdicts.

Step-by-step guide: