I built SentinelShield, a Python and Streamlit project on my @NitinSukthe-G GitHub, as a lightweight Web Application Firewall (WAF) and Intrusion Detection System (IDS) simulator for cybersecurity practical training and security monitoring. The project record gives 2026-08 as both its start and last-updated month. It is one of my cybersecurity projects listed on my github profile.
I use predefined signatures and IP-based rate limiting to demonstrate a defensive detection-and-response workflow. The application inspects submitted HTTP-style request data, checks request frequency by source IP, makes an ALLOW, BLOCK, or RATE LIMITED decision, logs the event, and updates dashboard metrics and the event table. Its workflow is Detection → Decision → Logging → Alerting → Dashboarding. It analyzes submitted test data rather than executing payloads, and is intended for educational, controlled use—not as a replacement for a production WAF, IDS, IPS, or SIEM.
- The detector covers SQL injection (including
OR 1=1andUNION SELECT), cross-site scripting (including<script>andjavascript:), directory traversal (../), local file inclusion (/etc/passwd), and command injection (; whoami). It also detects abusive traffic when a source IP exceeds a request threshold; the README does not give the threshold or time-window duration. - The dashboard includes total, blocked, allowed, and rate-limited request counts; attack-category distribution; security-event logs; source-IP and severity information; and request and attack statistics. Each logged event contains a timestamp, source IP address, detection category, security action, severity, and submitted request data. The README describes the charts as using Plotly / Streamlit Charts, without specifying which option is implemented.
The project uses Python for the application and detection logic, Streamlit for the dashboard, Pandas for event and statistics handling, regular expressions for signature-based detection, and JSON for lightweight event storage. The documented files are app.py for the dashboard and request workflow, detector.py for threat detection, logger.py for event logging, rate_limiter.py for IP-based limiting, and rules.py for signatures and rules. Generated events go to data/security_events.json; screenshots are listed under screenshots/.
- The README reports seven tested cases: one normal request marked ALLOWED; five attack cases—SQL injection, XSS, directory traversal, LFI, and command injection—marked BLOCKED; and one repeated-traffic case marked RATE LIMITED. All seven are marked tested. It supplies no numeric request totals, rate-limit threshold, detection-accuracy measurements, or benchmark results.
git clone https://github.com/YOUR-USERNAME/SentinelShield.git
cd SentinelShield
python -m venv venv
# Windows: venv\Scripts\activate
# Linux/macOS: source venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
# Open http://localhost:8501
The README describes the application as publicly deployed on Streamlit but leaves its Live Application URL blank. Its clone command also uses YOUR-USERNAME, so the actual repository URL is not established by the README. Other unspecified implementation details include the exact signatures, severity levels, decision precedence, persistence and retention behavior, dependency versions, and deployment configuration. The listed future improvements include machine-learning-assisted anomaly detection, persistent database storage, reverse-proxy integration, authentication and role-based access control, configurable rules, GeoIP/ASN enrichment, SIEM integration, email or webhook alerts, advanced request/header analysis, historical time-series reporting, and automated security-test generation.