Cyber Security
Privacy-Preserving Log Anonymisation Pipeline for a College Web Server (Python/MySQL)
Keep the 180-day CERT-In log trail without keeping your students' personal data inside it
- Python 3
- MySQL 8
- Flask
- +2
Turn the logs your college lab already writes into one correlated alert queue you can defend line by line
Mapped to your syllabusVTU MCA 2022 Scheme · 22MCA44 Project Phase-2 · Semester 4LabNet SIEM: Log Correlation & Alert-Triage Lab is a defensive-security project that turns the scattered logs of a small college lab network into one correlated alert queue. Every Linux lab machine already writes logs — SSH and sudo activity in auth.log, web-server requests in access.log, cron jobs in syslog — but nobody reads them until something breaks. This project builds a miniature SIEM (Security Information and Event Management) system out of components the student controls end to end: a lightweight shipper that tails log files on each lab host, a Python parser that normalises every line into a common event schema, a MySQL event store, a correlation engine driven by human-readable YAML rules, and a Flask dashboard where alerts arrive with a severity, a MITRE ATT&CK mapping and an analyst verdict.
All detection happens on your own lab systems only — your VMs, your logs, your rules. The bundle includes a scripted activity generator that produces the log signatures the rules are designed to catch (rapid failed SSH logins, a short probe sequence, repeated 404 requests to the lab web server) so every rule can be demonstrated live in the viva without touching any machine you do not own.
Flask and Chart.js are industry-standard extras layered on top of the Python, MySQL and JavaScript skills the VTU MCA 2022 scheme teaches (22MCA21, 22MCA24, 22MCA31). The result is a project where every design decision — schema, rule DSL, window size, severity scale — is one you can explain and defend.
Syllabus alignment
A college lab with sixty machines, one web server and one firewall emits tens of thousands of log lines every day, yet has no mechanism to notice when something in them matters. Repeated failed SSH logins, an unusual run of sudo commands on a non-teaching machine, or a scanner probing the lab web server all leave the same trace: ordinary lines in files nobody opens. By the time a problem is noticed — a full disk, a defaced intranet page, a lab machine behaving oddly — the supporting evidence is scattered across hosts, and there is no way to answer even basic questions such as which accounts attempted login, from which addresses, and when.
Commercial SIEM platforms solve this for enterprises, but a college cannot deploy one: licences are expensive, and more importantly a closed product teaches a student nothing about how normalisation, correlation and triage actually work. What is needed is a small, fully explainable, rule-driven SIEM that a department can run on its own hardware, that watches only its own systems, and that demonstrates the complete detection loop — collect, normalise, correlate, triage, tune — with every step visible and every rule arguable in a viva.
A college lab generates thousands of log lines a day and reads none of them. Security events — repeated failed logins, unusual sudo use, a scanner probing the lab web server — leave evidence in files nobody opens until days later. This project builds a miniature SIEM: a shipper and parser that normalise events from several sources into one schema, a MySQL event store, a rule-driven correlation engine that raises alerts only when related events occur inside a time window, and a triage console where each alert is confirmed or dismissed, the verdict feeding back into rule tuning.
A sixty-machine lab plus one web server produces four log streams: Linux auth.log, syslog, the Nginx/Apache access log and the lab firewall's connection log. Individually, each line is noise. Security value appears in correlation: five failed SSH logins from one address followed by a success is a story no single line tells. The project teaches exactly this skill — detection engineering — with nothing beyond the scheme's own courses.
In scope
auth.log, syslog) and from the lab web server's access log — file-based sources only.Out of scope (v1)
The project follows an iterative-incremental SDLC model, aligned to VTU's two-phase MCA structure: Phase-1 (22MCAL35) covers analysis and design with a thin prototype, and Phase-2 (22MCA44) delivers the increments, testing and final evaluation.
| Phase | Weeks | Activities | Deliverable |
|---|---|---|---|
| Requirement analysis | 1–2 | Inventory lab log sources, sample each format, measure daily volumes, list functional and non-functional requirements, agree a retention policy with the lab administrator | SRS and log-source catalogue |
| System design | 3–4 | Event schema, ER diagram, DFD levels 0–1, rule-DSL design, dashboard wireframes | Design document |
| Increment 1 | 5–7 | Shipper, collector API, parser, normalisation into MySQL | One host feeding the store live |
| Increment 2 | 8–10 | Correlation engine with threshold, sequence and volume rules; ATT&CK mapping | First alerts firing on seeded activity |
| Increment 3 | 11–12 | Triage console, verdict persistence, weekly report, CSV export | Working end-to-end system |
| Testing and tuning | 13–14 | Unit and integration tests, load test with one million events, false-positive tuning pass | Test report and tuned rule set |
| Documentation | 15–16 | Final report, PPT, demo rehearsal | Phase-2 submission |
Testing approach: pytest unit tests for every parser pattern and rule operator; integration tests that replay a recorded day of lab logs and assert the expected alert counts; a load test validating query performance at one million events; and a documented false-positive review in which every rule is scored and tuned. Because detection logic is data-driven, the same seeded activity is replayed after every rule change, so tuning results are regression-tested rather than anecdotal.
LabNet SIEM is built as a pipeline of five cooperating stages, each independently runnable and testable:
parse_failed flag rather than dropped, so parser improvements recover old data.flowchart LR
H1["Lab host 1 (auth.log, syslog)"] --> SH1[Shipper]
H2["Lab host 2 (auth.log)"] --> SH2[Shipper]
W["Lab web server (access.log)"] --> SH3[Shipper]
SH1 -->|HTTPS batches| C[Collector API]
SH2 -->|HTTPS batches| C
SH3 -->|HTTPS batches| C
C --> P[Parser and normaliser]
P --> DB[(MySQL event store)]
Q[Correlation worker] -->|reads rules| R[rules.yaml]
DB --> Q
Q --> A[Alerts]
DB --> CON[Flask triage console]
A --> CON
CON -->|verdicts| DB
CON --> REP[Weekly tuning report]erDiagram
HOST ||--o{ SOURCE : "runs"
SOURCE ||--o{ EVENT : produces
EVENT }o--|| RULE : "matched by"
RULE ||--o{ ALERT : triggers
ALERT ||--o{ TRIAGE_VERDICT : receives
HOST {
string id PK
string hostname UK
string ip
}
SOURCE {
string id PK
string host_id FK
string log_path
string parser
}
EVENT {
bigint id PK
datetime ts
string host_id FK
string source_id FK
string event_type
string actor
string src_ip
string outcome
text raw
}
RULE {
string id PK
string name
string rule_type
int window_seconds
int threshold
string severity
string mitre_id
}
ALERT {
bigint id PK
string rule_id FK
datetime raised_at
string key_value
string status
}
TRIAGE_VERDICT {
bigint id PK
bigint alert_id FK
string analyst
string verdict
string comment
}The design is deliberately event-sourced: alerts are derived views over stored events, so re-running a corrected rule over old data reproduces history. This property lets the report show before-and-after tuning results on identical data — a strong, honest evidence chain for the viva.
Module 01
A small Python agent installed on each lab host that tails configured files (auth.log, syslog, access.log), tracks byte offsets in a state file so lines are never re-sent or skipped after a restart, and batches lines to the collector API over HTTPS with a shared token.
Module 02
Receives batches, applies per-source regex parsing rules to extract timestamp, actor, source address, process and outcome, normalises everything into the common event schema, and records unparsable lines with a parse_failed flag for later pattern work.
Module 03
The MySQL schema: hosts, sources, daily-partitioned events, rules, alerts and verdicts; composite indexes on (host, ts) and (src_ip, ts); and a 180-day purge job that keeps retention aligned with the CERT-In log-retention direction.
Module 04
Reads YAML rule definitions and evaluates them on rolling windows: threshold rules (N events of a type per key), sequence rules (failure-then-success within T minutes) and volume rules (4xx rate per address). Every rule carries a severity and a MITRE ATT&CK technique id.
Module 05
A Flask and JavaScript dashboard showing the live alert queue, drill-down to the context events that triggered each alert, and one-click verdicts (True Positive, False Positive, Needs Review) with comments persisted to the database.
Module 06
Generates a weekly report of per-rule hits, false-positive rate and time-to-triage, exports alerts as CSV for the department, and suggests threshold changes; this report is the evidence for the tuning-improvement claim in the final write-up.
Module 07
Scripted, clearly-labelled routines run only on the lab's own test VMs that produce the log signatures the rules detect — bursts of failed SSH logins, a short probe sequence, repeated 404 requests — plus a benign-traffic seed so the console shows a realistic mixed queue.
Slide 1
LabNet SIEM — Log Correlation & Alert-Triage Lab
Slide 2
The Problem: Logs Nobody Reads
Slide 3
Existing vs Proposed System
Slide 4
Objectives
Slide 5
Technology Stack
Slide 6
System Architecture
Slide 7
Database Design
Slide 8
Correlation Rules — the Heart
Slide 9
Demo — Live Alert & Triage
Slide 10
Testing & Tuning Results
Slide 11
Novelty & Individual Contribution
Slide 12
Conclusion & Future Scope
Bullets, speaker notes and the .pptx · ₹2,000
Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.
A SIEM collects security-relevant events from many sources into one store, correlates them into alerts, and supports analyst triage. My system implements all four functions at lab scale: shippers collect, the parser normalises, a correlation engine raises alerts from stored events, and the console records verdicts — so it is a genuine, if deliberately small, SIEM.
A single failed login is routine in any lab; a single 404 is normal web noise. The story that matters is a pattern — repeated failures followed by a success, or a sustained run of 404s from one address. Correlation across events in a time window is what turns thousands of noise lines into a handful of meaningful alerts.
MITRE ATT&CK is a public knowledge base of adversary tactics and techniques observed in real intrusions. Mapping each rule to a technique id gives every alert a common language — the analyst and the examiner immediately know what class of behaviour fired, and it keeps rule design honest because vague rules cannot be mapped precisely.
+11 more questions, with answers
Unlocks with the project · ₹2,000
Unlock for ₹2,000What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.
Unlocks with the project · ₹2,000
Unlock for ₹2,000How to study it, adapt it and walk your examiner through it, step by step.
Unlocks with the project · ₹2,000
Unlock for ₹2,000OnlyProjects. (2026). Mini-SIEM Log Correlation & Alert-Triage Lab for a College Lab Network (Python/MySQL): MCA Cyber Security project bundle [Educational resource]. https://onlyprojects.online/projects/mca-cyber-log-correlation-siem-lab
Keep browsing
Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.
Cyber Security
Keep the 180-day CERT-In log trail without keeping your students' personal data inside it
Cyber Security
Find committed API keys and tokens in repository history, then drive every one to verified rotation
Web Development
Booking, zone-weight rating, AWB tracking, delivery run sheets and cash-on-delivery reconciliation for a tier-2 courier franchise
AI & Machine Learning
Turn Agmarknet's daily wholesale prices into a seven-day forecast and a when-and-where-to-sell advisory
Blockchain
Every hall ticket and marksheet carries a SHA-256 fingerprint anchored in a signed hash registry that verifiers can check without internet
Blockchain
A tamper-evident, hash-linked event ledger that runs the MSMED 45-day clock, computes s.16 interest and tracks disputes to MSEFC referral