Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

home-siem-lab

A working Linux SIEM built on a laptop. Ingests host telemetry (process execution, identity file changes, file integrity) into Elasticsearch, queryable in real time through Kibana. Built to practice detection engineering — the discipline of writing rules that catch attacker behavior in log data.

Credential access detected in Kibana

Above: Kibana Discover showing a whoami → sudo whoami → ls /etc/shadow → sudo cat /etc/shadow sequence captured by Auditbeat in real time. A common post-compromise pattern where an attacker enumerates their privileges and dumps password hashes for offline cracking.

What it does

  • Collects Linux syscall audit events, identity file writes, and file integrity events from the host.
  • Streams them into Elasticsearch via Auditbeat.
  • Provides real-time querying and dashboards through Kibana.
  • Ships with a starter set of audit rules aligned to common attacker techniques.

Architecture

See docs/architecture.md.

Stack

Component Version Role
Elasticsearch 8.15.3 Log datastore
Kibana 8.15.3 Query UI + dashboards
Auditbeat 8.15.3 Host log shipper
Linux auditd kernel Syscall + file audit
Docker Engine 29.6.2 Runs Elastic + Kibana
Host OS Linux Mint 22.3 (Ubuntu 24.04 base) Endpoint

Reproduce

git clone https://github.com/Megh089/home-siem-lab.git
cd home-siem-lab

# Bring up Elastic + Kibana
docker compose up -d

# Install Auditbeat on the host (see docs/setup.md for full steps)
sudo cp config/auditbeat.yml /etc/auditbeat/auditbeat.yml
sudo auditbeat setup --dashboards
sudo systemctl enable --now auditbeat

# Verify
curl -s 'http://localhost:9200/_cat/indices/auditbeat-*?v'
# Open http://localhost:5601 in a browser

Roadmap

  • Week 1: Elastic + Kibana + Auditbeat running, host telemetry visible in Kibana
  • Week 2: 4 Sigma detection rules written, 3 fully validated (credential access, shell execution, user creation), 1 written but blocked on file_integrity limitation (documented)
  • Week 3: Custom Kibana dashboard for alert volume, top processes, network anomalies
  • Week 4: False-positive measurement over 2 weeks of real endpoint activity, write-up

Limitations

This is a lab, not a production deployment. Called out honestly:

  • Single endpoint. A real SIEM aggregates thousands of hosts. Detection tuning at N=1 doesn't reveal fleet-wide false positive patterns.
  • Security disabled on Elasticsearch. xpack.security.enabled=false means no auth and no TLS. Bound to 127.0.0.1 only, but any production deployment would enable security and use certificates.
  • Single-node cluster → indices are yellow, not green (no replicas possible). Fine for a lab; would violate resiliency requirements in production.
  • Synthetic attacks. Detections in Week 2 will be validated against Atomic Red Team simulations, not real intrusions. Real attacker behavior varies.
  • Host-based Auditbeat. The shipper runs on the host, not in Docker, because syscall auditing requires kernel access. This limits portability of the setup.

Author

Megh J — computer security student, York University. Part of an ongoing portfolio; see gps-spoof-detection for related work on drone security.

About

Linux SIEM built on Elastic + Kibana + Auditbeat. Detection engineering practice: Sigma rules, MITRE ATT&CK mapping, honest false-positive measurement.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors