A cutting edge, real time security monitoring system, designed to revolutionize your network's defense π».
- Introduction
- π Features
- π οΈ Installation Instructions
- π§ Usage
- π οΈ System Architecture
- Client-Server Communication
- βοΈ Technologies Used
- π‘οΈ Security & Authentication
- π Logs & Reports
- π Sigma Rule Integration
- π Sigma: The Backbone of Detection
- β FAQ
- π¨ Troubleshooting
- π₯ Community
- π€ Contributing
- π Code of Conduct
- π License
- π Star History
Intrudex is a state-of-the-art, Sigma-based Intrusion Detection and Prevention System (IPS/IDS), specifically designed for Windows environments. It features a hybrid architecture, combining the efficiency of a C++ Windows client for real-time log monitoring with a Python Flask-based server for centralized management and a web dashboard.
Intrudex leverages Sigma rules to detect threats in Windows Event Logs, providing real-time security alerts and automatic threat response mechanisms.
- Windows Log Monitoring β Uses Sysmon and Windows Event Logs for security monitoring.
- Sigma Rule-Based Detection β Converts Sigma rules into real-time security alerts.
- Standalone & Server Mode β Can function independently or connect to a Flask-based server.
- Windows Notifications β Displays security alerts natively on Windows.
- Automatic Threat Response (IPS) β Blocks IPs, kills processes, and disables accounts upon threat detection.
- Remote Command Execution β Allows remote security commands from the web dashboard.
- Self-Healing System β Uses registry entries and scheduled tasks to prevent tampering.
- Web Dashboard (Flask) β Provides log visualization, rule management, and remote control.
- Public/Private Key Authentication β Ensures secure client-server communication.
- Log Backup & Report Generator β Stores logs in a database with export functionality.
Before you begin, make sure your system meets the following requirements:
- Python 3.x
- C++ compiler (for Windows Client)
- NSIS/Inno Setup for creating the installer
- SQLite/PostgreSQL for the database
- Download and extract the client files.
- Open Command Prompt and navigate to the folder where the client files are located.
- Run the installer (
setup.exe
) and follow the instructions.
- Clone the repository:
git clone https://github.com/intrudex/intrudex.git
- Install required Python libraries:
pip install -r requirements.txt
- Configure the server settings, such as database connection and Sigma rule paths in
config.json
.
- Start the client application on the target Windows machine.
- Start the Flask server:
python app.py
Once the system is running, you can:
- View logs and alerts in the web dashboard.
- Trigger a remote command from the dashboard to block an IP or kill a malicious process.
- Go to the "Remote Control" section.
- Select the action you want to perform (e.g., block IP).
- Click "Execute" to apply the action.
Intrudex is based on a client-server model with a web-based dashboard for centralized management.
graph TD
A[Windows Client C++] --> B[Event Logs Sysmon, Windows Logs]
B --> C[Apply Sigma Rules Detection]
C --> D{Threat Detected?}
D -->|Yes| E[Trigger IPS Actions]
D -->|No| F[Log Event for Analysis]
E --> G[Send Alert to Web Dashboard]
F --> G
G --> H[Web Server Flask API]
H --> I[Store Logs in Database]
I --> J[Generate Reports]
H --> K[Allow Remote Commands]
K --> L[Client Executes Commands]
This flowchart demonstrates how the client communicates with the server for log storage and report generation.
graph TD
A[Windows Client C++] --> B[Logs Collected]
B --> C[Send Logs to Server]
C --> D[Store Logs in Database]
D --> E{Export Logs?}
E -->|Yes| F[Export Logs]
E -->|No| G[Log Stored for Analysis]
F --> G
G --> J[End]
Component | Technology Used |
---|---|
Windows Client | C++ (WinAPI, Windows Event Log, Sigma) |
Threat Detection | Sigma Rules (YAML) |
Web Dashboard | Python (Flask, Bootstrap) |
Database | SQLite / PostgreSQL |
Remote Communication | REST API (Flask) |
Self-Healing | Windows Registry, Task Scheduler |
Installer | NSIS / Inno Setup |
- Public/Private Key Authentication β Ensures secure client-server communication.
- Database Encryption β Prevents log tampering and ensures integrity.
- Tamper Protection β Uses self-healing mechanisms (registry keys, scheduled tasks).
- IPS Logging β All intrusion events are logged for forensic analysis.
- All logs are stored in a database for future analysis.
- The web dashboard allows real-time log monitoring.
- Reports can be generated & exported (JSON, CSV, PDF).
graph TD
A[Collect Logs Windows Event Viewer, Sysmon] --> B[Store Logs Locally]
B --> C[Send Logs to Server]
C --> D[Store Logs in Database]
D --> E{Request Backup or Export?}
E -->|Yes| F[Export Logs]
F --> G[Store Backup Securely]
G --> H[Send Confirmation to Web Dashboard]
E -->|No| I[Log Stored for Future Analysis]
H --> J[End]
- Intrudex parses Sigma rules to detect anomalies and security threats in logs.
- Uses YAML-based Sigma rules to match event logs.
- Example of a Sigma rule for detecting failed logins:
title: Failed Windows Login Attempts
logsource:
category: authentication
product: windows
detection:
selection:
EventID: 4625
condition: selection
graph TD
A[Sigma Rule Definition] --> B[Load Rule into System]
B --> C[Capture Event Logs]
C --> D[Match Logs with Rule Patterns]
D --> E{Pattern Match Found?}
E -->|Yes| F[Flag as Potential Threat]
E -->|No| G[Continue Monitoring]
F --> H[Trigger Threat Notification]
H --> I[Send Alert to Web Dashboard]
G --> I
I --> J[End]
Sigma is an open-source, generic signature format for log event detection. Think of it as "Snort/YARA for logs" β it allows security teams to write detection rules that work across diverse log sources (Windows Event Logs, Sysmon, etc.).
- Standardized Threat Detection: Write rules once, apply anywhere β avoids vendor lock-in.
- Community-Driven: Leverage thousands of pre-existing rules from the SigmaHQ repository.
- Flexibility: Customize rules for your environment without reinventing the wheel.
-
Rule Conversion: Intrudex converts Sigma YAML rules into real-time detection logic for Windows Event Logs.
-
Detection Workflow:
graph LR A[Sigma Rule YAML] --> B[Intrudex Engine] B --> C[Monitor Windows Logs] C --> D{Match Found?} D -->|Yes| E[Trigger Alert/Response] D -->|No| F[Continue Monitoring]
-
Key Features:
- Automatic Rule Updates: Pull the latest Sigma rules from the community repository.
- Custom Rules: Add your own Sigma YAML files to sigma_rules/custom/ for tailored detection.
- Testing: Validate rules against historical logs for accuracy.
title: Suspicious Process Creation
description: Detects processes spawned from temp directories.
logsource:
product: windows
category: process_creation
detection:
selection:
Image|endswith:
- '\Temp\malware.exe'
- '\AppData\Local\Temp\*'
condition: selection
level: high
- Processes launched from Temp directories (common in malware attacks).
- Use Existing Rules:
git clone https://github.com/SigmaHQ/sigma.git
cp sigma/rules/windows/*.yml /intrudex/sigma_rules/
- Write Custom Rules:
- Follow the Sigma Specification.
- Test rules with Sigma CLI.
Sigma Feature | Intrudex Support | Notes |
---|---|---|
Windows Event Logs | β Full | Optimized for Sysmon/EventID parsing. |
Logsource Types | β Partial | Supports process_creation, network, etc. |
Rule Aggregation | β Yes | Combine multiple rules for complex threats. |
Rule Testing | Use Sigma CLI for advanced validation. |
Q: Can I use custom Sigma rules?
A: Yes! Place YAML files in the sigma_rules/custom
folder.
Q: How do I update Intrudex?
A: Run the update script in the update
folder or follow the instructions on our GitHub page.
Q: What kind of support does Intrudex offer?
A: We offer community support through our GitHub page and online forums.
Q: Is Intrudex compatible with other operating systems?
A: Currently, Intrudex is designed for Windows environments, but we plan to expand to other operating systems in the future.
Issue: Client fails to connect to the server.
Solution:
- Verify the server IP in
config.json
. - Check firewall rules for port
5000
.
Join our community to stay up-to-date with the latest developments, provide feedback, and get support.
GitHub: https://github.com/Armoghans-Organization/Intrudex.git
We welcome contributions to Intrudex! To contribute:
- Fork the repository and clone your fork.
- Create a new branch (
git checkout -b feature-name
). - Make your changes and ensure that tests pass.
- Commit your changes (
git commit -am 'Add new feature'
). - Push to your fork (
git push origin feature-name
). - Open a pull request.
We follow the Contributor Covenant.
Intrudex is released under the MIT License.