Lightweight Sigma Rule Detection Engine for Small Teams Without a SIEM
A single-binary log detection engine for small companies and schools that runs community Sigma rules over Linux, web server and Windows logs in real time, raises clear alerts, and fits on a small VPS instead of a full SIEM stack. An advanced security final year project on rule compilation, streaming matching and alert quality.
Advanced
Needs a team, real planning, and a supervisor who knows the area.2 semesters · 3 students
7 to ship
3 optional extrasSuggested stack
What you should ship
- A Sigma rule loader and compiler that turns YAML rules into an efficient in-memory matcher, supporting field modifiers, wildcards and boolean conditions, with a documented list of unsupported features
- Log ingestion for Linux auth logs and journald, Nginx or Apache access logs, and Windows Sysmon events forwarded from an agent, normalised to a common schema
- Real-time matching with at least 150 community rules enabled, sustaining a stated events-per-second rate on a 2 vCPU VPS
- Correlation for simple sequences, such as many failed logins followed by a success from the same IP within 10 minutes
- Alerting to email, Slack or Telegram with deduplication, grouping and a plain-language explanation drawn from the rule
- A lab of your own machines where you run safe, scripted test activity (for example Atomic Red Team style tests you control) and record which rules fire
- A comparison with running the same rules through a heavier stack such as Wazuh or Elastic: memory use, setup time and detection coverage
If you have time left
- A rule testing mode: replay a stored log file against a new rule before enabling it
- MITRE ATT&CK coverage map built from the tags of enabled rules
- Multi-tenant mode for a managed service provider watching several small clients
The problem small teams have with log-based detection
A small software company, a school IT office or a clinic chain has servers and laptops producing logs that nobody watches. When something goes wrong, such as a brute-forced SSH account, a web shell uploaded through an old plugin, or a staff laptop running a suspicious PowerShell command, the evidence is sitting in the logs, unread.
The standard answer is a SIEM. Open source options exist, but a full stack with an indexer, dashboards and managers needs several gigabytes of memory and someone who understands it. Commercial SIEMs are priced by data volume. Small teams either never start or install one and abandon it.
What already exists and the gap
- Wazuh: open source security platform with agents, rules and dashboards. Capable, but the full deployment is heavy for a single small VPS, and there is no official Sigma backend.
- Elastic Security: powerful detection on top of Elasticsearch, with memory and operational demands to match.
- Chainsaw and similar tools: run Sigma rules against Windows event logs quickly, mainly for hunting in collected logs after the fact.
- SigmaHQ rule repository: thousands of community detection rules in a vendor-neutral format, which is the reason this project is possible.
The gap is a small, always-on engine that takes community Sigma rules as they are, runs them in real time on a modest machine across Linux, web and Windows logs, and produces alerts a non-specialist can act on.
What you build
Roles: admin (installs, chooses rule packs), responder (receives alerts).
- Lightweight shippers forward logs from servers and laptops to the engine over TLS.
- The engine normalises events to a common schema and maps Sigma field names to it.
- Compiled rules match events as they arrive. Correlation rules track short sequences per key (IP, user, host).
- Alerts are grouped, deduplicated and sent with an explanation, the matching event, and suggested next steps.
- A small dashboard shows recent alerts, rule health (rules that never fire, rules that fire too often) and ingestion rate.
The technically interesting part
This is a compiler and data structures project in disguise. Compiling Sigma rules into a fast matcher means parsing YAML, handling modifiers such as contains, startswith, endswith and regular expressions, and evaluating boolean conditions over named selections. Naively checking every rule against every event is slow. Index rules by log source and by required field values, prefilter with string search structures (for example Aho-Corasick over literal substrings), and only then evaluate full conditions. Measure the speed-up.
The second hard problem is field mapping. The same idea appears as different field names in different log sources. Build a clear mapping layer and report which rules you could not map.
How to evaluate it
- Throughput: events per second on a 2 vCPU, 4 GB VPS with 150 rules, with and without your prefilter.
- Correctness: a test corpus of events where the expected rule matches are known; compare with the official Sigma tooling where possible.
- Detection in the lab: run scripted, safe test activities on your own machines and report which were detected, missed, and why.
- Alert quality: over two weeks on your own lab or a consenting small organisation's test server, count alerts per day and the share that were actionable.
- Footprint: memory and setup time compared with a heavier stack running the same rules.
Suggested plan
- Weeks 1 to 4: study the Sigma specification and rule repository; build the lab.
- Weeks 5 to 10: parser, compiler and a naive matcher with tests.
- Weeks 11 to 15: ingestion, normalisation and field mapping.
- Weeks 16 to 20: prefilter optimisation, correlation, alerting.
- Weeks 21 to 26: lab detection tests, benchmarks, comparison, write-up.
Path to a product
Release the engine as open source to build trust, which matters for security tools. Sell a hosted version or a managed rule pack with tuning for common small-business setups. The first customer is a small managed service provider who wants to offer "we watch your logs" to clients without running a full SIEM for each.
Scope warning
Do not build a log search and analytics platform; store alerts and a short window of raw events, not everything forever. Do not write your own agent for Windows; use Sysmon and an existing shipper. Only run attack simulations on machines you own in your lab.
Learn what you need on Sefism
- System design roadmap : ingestion pipelines, backpressure and storage choices.
- SigmaHQ Sigma Rules : the rule format and community rules your engine runs.
- Sysmon : the Windows telemetry source for endpoint rules.
- Wazuh : the heavier open source stack to compare against.
- LetsDefend : practice reading alerts the way a responder will.
- Go Documentation : a good fit for a single-binary, concurrent engine.
Get help with this idea
Scoping a security project is mostly about deciding what you will not defend against and how you will prove the rest works. If you want a second opinion on scope, stack or your evaluation plan, a mentor can review it with you; you still build it yourselves. New to Sefism? Create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.