Warning
This project is in active development and intended for security testing, research, and educational purposes only. It is not production-ready. Do not deploy in production environments. APIs, tool interfaces, and data formats may change without notice. Use at your own risk.
Demo
https://github.com/user-attachments/assets/0d0381f0-5b68-43b2-8630-19ec130885b2
What is CrowdSentinel?
CrowdSentinel transforms traditional SIEM querying into intelligent, framework-driven investigations using natural language. It serves as a unified security intelligence layer that connects large language models to enterprise security data sources, enabling:
- Natural Language Threat Hunting โ Query Elasticsearch using plain English
- AI-Guided Investigation Workflows โ Built-in prompts guide agents through proper IR methodology
- Persistent Investigation State โ Memory-managed IoC tracking, forensic timelines, and cross-query correlation that survives across sessions (8GB FIFO storage)
- Cross-Tool IoC Correlation โ IoCs discovered in one tool are automatically available to all others
- Multi-Source Analysis โ Elasticsearch, EVTX logs (Chainsaw), PCAP files (Wireshark), live endpoint forensics (Velociraptor), local host forensics (osquery)
- Velociraptor Endpoint Forensics โ 25 MCP tools for live artefact collection (processes, network, persistence, execution evidence, NTFS MFT, SRUM, remote EVTX) with automatic IoC extraction
- Encoded-Command Deobfuscation โ Automatically peels base64/UTF-16LE/gzip/hex layers off encoded commands (e.g. PowerShell
-EncodedCommand) so C2 addresses hidden inside them surface as IoCs
- Adaptive Schema Intelligence โ Data-driven schema registry (ECS, Sysmon, Windows Security, auditd, Zeek, Packetbeat, AWS CloudTrail) adapts hunts to each index's field conventions
- DFIR Knowledge Resources โ 9 MCP resources exposing investigation playbooks, Pyramid of Pain reference, and cross-correlation guidance directly to connected AI agents
- Standalone CLI โ Full threat hunting from the terminal without an MCP client
Installation
Install from PyPI (recommended)
pip install crowdsentinel-mcp-server
uv pip install crowdsentinel-mcp-server
crowdsentinel setup
crowdsentinel doctor
Optional extras:
pip install 'crowdsentinel-mcp-server[velociraptor]'
pip install 'crowdsentinel-mcp-server[deobf]'
Detection rules (6,060 Lucene + EQL + ES|QL) are bundled with the package โ no download needed. The setup command downloads additional tools:
- Chainsaw binary for EVTX analysis
- 3,000+ Sigma rules for Chainsaw
Downloaded tools are stored in ~/.crowdsentinel/ and persist across package upgrades.
System dependency for PCAP analysis:
sudo apt install tshark
sudo dnf install wireshark-cli
brew install wireshark
Run directly with uvx (no install needed)
uvx crowdsentinel-mcp-server
uvx crowdsentinel-mcp-server-es7
uvx crowdsentinel-mcp-server-es9
uvx opensearch-mcp-server
Install from source
git clone https://github.com/thomasxm/CrowdSentinels-AI-MCP.git
cd CrowdSentinels-AI-MCP
chmod +x setup.sh && ./setup.sh
./setup.sh --full
The setup script will:
- Install dependencies (pipx, uv, Claude Code CLI if needed)
- Bundle 6,060 detection rules and download Chainsaw binary
- Prompt for Elasticsearch credentials (never hardcoded)
- Configure the MCP server with Claude Code
- Validate your connection
With --full, every optional extra is installed too, so all 139 MCP tools have their dependencies available โ the recommended mode for a production-ready server.
Installed Size
CrowdSentinel bundles 6,060 detection rules and integrates with external analysis tools. Below is the full disk space breakdown so you can plan accordingly.
Core package (via pip or uvx):
| Component | Size | Notes |
|---|
| CrowdSentinel package | 49 MB | The server itself |
โ Bundled Sigma rules (src/rules/) | 30 MB | 6,060 pre-converted detection rules |
โ Elastic TOML rules (src/detection-rules/) | 17 MB | Original TOML format rules + hunting queries |
| โ Python code (clients, tools, etc.) | 2 MB | Actual application code |
| Dependencies | 64 MB | All transitive deps |
โ cryptography | 14 MB | Largest dependency (TLS) |
โ elasticsearch | 8.3 MB | ES Python client |
โ pygments | 5.2 MB | Syntax highlighting |
โ pydantic_core | 5 MB | Validation engine |
โ opensearchpy | 3.6 MB | OpenSearch client |
| โ Others (27 packages) | ~28 MB | mcp, fastmcp, httpx, anthropic, etc. |
| Core total | 113 MB | pip install crowdsentinel-mcp-server |
Additional tools (via crowdsentinel setup):
| Component | Download | Installed | Notes |
|---|
| Chainsaw binary (v2.13.1) | ~3 MB | ~15 MB | EVTX log analysis engine |
| Sigma rules (SigmaHQ) | ~3 MB | ~30 MB | 3,000+ Sigma rules for Chainsaw |
| Chainsaw mappings | โ | <1 MB | Event log source mappings |
| Setup total | ~6 MB | ~46 MB | Stored in ~/.crowdsentinel/ |
System dependency (via package manager):
| Component | Installed | Install Command | Notes |
|---|
| tshark + Wireshark libs | ~132 MB | sudo apt install tshark | PCAP network analysis โ required for cross-tool IoC correlation |
Full installation summary:
| Scenario | Total Disk Space |
|---|
Core only (pip install) | ~113 MB |
Core + setup (crowdsentinel setup) | ~159 MB |
| Full platform (+ tshark) | ~291 MB |
Note: PyPI download size is only 8.9 MB (wheel) thanks to compression of the bundled detection rules.
Quick Start
1. Set environment variables
export ELASTICSEARCH_HOSTS="https://localhost:9200"
export ELASTICSEARCH_API_KEY="your_api_key"
export VERIFY_CERTS="false"
2. Connect to an MCP Client
CrowdSentinel works with any MCP-compatible AI agent. Choose your client below:
Claude Code (CLI)
claude mcp add crowdsentinel \
-e ELASTICSEARCH_HOSTS="https://localhost:9200" \
-e ELASTICSEARCH_API_KEY="your_api_key" \
-e VERIFY_CERTS="false" \
-- uvx crowdsentinel-mcp-server
Claude Desktop
Edit ~/.config/Claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"crowdsentinel": {
"command": "uvx",
"args": ["crowdsentinel-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "your_api_key",
"VERIFY_CERTS": "false"
}
}
}
}
VS Code Copilot
Create .vscode/mcp.json in your workspace:
{
"servers": {
"crowdsentinel": {
"command": "uvx",
"args": ["crowdsentinel-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "your_api_key",
"VERIFY_CERTS": "false"
}
}
}
}
Then enable MCP in VS Code settings: "chat.mcp.enabled": true
Cursor
Create or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"crowdsentinel": {
"command": "uvx",
"args": ["crowdsentinel-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "your_api_key",
"VERIFY_CERTS": "false"
}
}
}
}
Roo Code (VS Code Extension)
Create .roo/mcp.json in your workspace:
{
"mcpServers": {
"crowdsentinel": {
"command": "uvx",
"args": ["crowdsentinel-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "your_api_key",
"VERIFY_CERTS": "false"
}
}
}
}
Or configure via Roo Code settings panel: Settings > MCP Servers > Add Server.
5ire
In 5ire settings (v0.15.0+), add an MCP server with:
- Command:
uvx
- Arguments:
crowdsentinel-mcp-server
- Environment Variables:
ELASTICSEARCH_HOSTS = https://localhost:9200
ELASTICSEARCH_API_KEY = your_api_key
VERIFY_CERTS = false
Note: 5ire v0.14.0 has known MCP compatibility issues. Use v0.15.0+ for reliable operation.
Any MCP Client (Generic)
stdio transport (default โ works with most clients):
{
"mcpServers": {
"crowdsentinel": {
"command": "uvx",
"args": ["crowdsentinel-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "your_api_key",
"VERIFY_CERTS": "false"
}
}
}
}
SSE transport (for web-based clients):
crowdsentinel-mcp-server --transport sse --port 8001
HTTP transport (for REST API clients):
crowdsentinel-mcp-server --transport streamable-http --port 8001
3. Or use the CLI directly
crowdsentinel setup
crowdsentinel health
crowdsentinel hunt "powershell encoded" -i winlogbeat-*
crowdsentinel rules -p windows --tactic credential_access
crowdsentinel detect windows_builtin_win_alert_mimikatz_keywords_lucene -i winlogbeat-*
crowdsentinel pcap overview capture.pcap
crowdsentinel pcap beaconing capture.pcap
crowdsentinel chainsaw hunt /path/to/evtx/ --sigma-rules /path/to/sigma/
CLI Usage
CrowdSentinel provides a full CLI for threat hunting from the terminal:
pip install crowdsentinel-mcp-server
crowdsentinel setup
crowdsentinel --help
Available Commands
| Command | Description | Example |
|---|
setup | Download detection rules, Chainsaw, and Sigma rules | crowdsentinel setup |
health | Show cluster health | crowdsentinel health |
indices | List all indices | crowdsentinel indices |
hunt | IR-focused threat hunt with IoC extraction | crowdsentinel hunt "powershell" -i winlogbeat-* |
eql | Execute an EQL query | crowdsentinel eql "process where process.name == 'cmd.exe'" -i winlogbeat-* |
esql | Execute an ES|QL query | crowdsentinel esql "FROM logs-* | LIMIT 10" |
detect | Execute a detection rule by ID | crowdsentinel detect win_susp_logon -i winlogbeat-* |
rules | List available detection rules | crowdsentinel rules -p windows --tactic credential_access --type eql |
schema | Detect schema for an index pattern | crowdsentinel schema -i winlogbeat-* |
ioc | Hunt for a specific Indicator of Compromise | crowdsentinel ioc 203.0.113.42 --type ip -i winlogbeat-* |
analyse | Analyse search results from stdin (JSON) | cat results.json | crowdsentinel analyse -c "context" |
analyse --mcp | AI agent analysis using all 139 MCP tools | crowdsentinel hunt "query" | crowdsentinel analyse --mcp -c "context" |
auth | Manage LLM authentication for agent mode | crowdsentinel auth login |
pcap | Analyse PCAP files (overview, beaconing, lateral movement) | crowdsentinel pcap beaconing capture.pcap |
chainsaw | Hunt EVTX logs with Chainsaw and Sigma rules | crowdsentinel chainsaw hunt /path/to/evtx/ |
doctor | Validate connector configuration and readiness (offline โ no external calls) | crowdsentinel doctor |
All commands support --output/-o with three formats:
crowdsentinel hunt "failed login" -i winlogbeat-* -o json
crowdsentinel hunt "failed login" -i winlogbeat-* -o table
crowdsentinel hunt "failed login" -i winlogbeat-* -o summary
Agent Mode (--mcp)
The analyse --mcp flag replaces deterministic analysis with an AI agent that autonomously uses all 139 MCP tools to investigate. The agent follows the 4-phase IR methodology: hunt, analyse, correlate, report.
Authentication:
crowdsentinel auth login
crowdsentinel auth login --provider anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
crowdsentinel analyse --mcp --model-url http://localhost:11434/v1 --model llama3.1
crowdsentinel auth status
Agent flags:
| Flag | Default | Description |
|---|
--mcp | off | Enable AI agent with MCP tools |
--mcp-server NAME:CMD | none | Add external MCP server (e.g., VirusTotal) |
--model | auto-detect | LLM model to use |
--model-url | none | OpenAI-compatible API endpoint |
--max-steps | 30 | Maximum tool calls |
--timeout | 300 | Maximum seconds |
Pipeline Examples
Deterministic analysis (no API key needed):
crowdsentinel hunt "powershell encoded" -i winlogbeat-* -o json | \
crowdsentinel analyse -c "Encoded PowerShell commands" -o summary
crowdsentinel hunt "event.code:4625" -i winlogbeat-* -o json | \
crowdsentinel analyse -c "Failed login brute force investigation" -o summary
crowdsentinel hunt "event.code:4688 OR event.code:4672 OR event.code:1" -i winlogbeat-* -o json | \
crowdsentinel analyse -c "Process execution and privilege escalation" -o summary
AI agent investigation (requires auth):
crowdsentinel hunt "mimikatz OR lsass OR procdump" -i winlogbeat-* -o json | \
crowdsentinel analyse --mcp -c "Credential dumping tools investigation" --max-steps 15 -o summary
crowdsentinel hunt "powershell -enc OR FromBase64String" -i winlogbeat-* -o json | \
crowdsentinel analyse --mcp -c "Full IR workflow: encoded PowerShell" --max-steps 30 -o table
crowdsentinel hunt "event.code:4688" -i winlogbeat-* -o json | \
crowdsentinel analyse --mcp -c "Execute detection rules against process creation" --max-steps 20 -o summary
crowdsentinel pcap beaconing capture.pcap -o json | \
crowdsentinel analyse --mcp -c "Investigate beaconing for C2 infrastructure" --max-steps 10 -o summary
crowdsentinel hunt "event.code:1102" -i winlogbeat-* -o json | \
crowdsentinel analyse --mcp -c "Security log cleared - anti-forensics" --max-steps 10 -o summary
crowdsentinel hunt "powershell" -i winlogbeat-* -o json | \
crowdsentinel analyse --mcp --mcp-server "vt:uvx virustotal-mcp-server" \
-c "Check IoCs against VirusTotal" -o summary
Key Features
|
Threat hunting, detection rules, forensics, endpoint collection, network analysis, cross-correlation, command deobfuscation, and IoC enrichment โ all accessible via natural language
6,060 Detection Rules
Pre-built Lucene, EQL & ES|QL rules with automatic MITRE ATT&CK mapping
Investigation State
Persistent IoC tracking across tools and sessions with cross-source correlation and FIFO storage
|
4 Security Frameworks
- Cyber Kill Chain (7 stages)
- Pyramid of Pain (6 levels)
- Diamond Model (4 vertices)
- MITRE ATT&CK (automatic mapping)
5 Data Sources + Threat Intel
- Elasticsearch / OpenSearch (SIEM)
- Velociraptor (live endpoint forensics)
- osquery (local host forensics)
- EVTX logs (Chainsaw + Sigma)
- PCAP files (Wireshark/TShark)
- IoC enrichment (Shodan, VirusTotal, AbuseIPDB, ThreatFox)
- MISP (export events, search attributes)
|
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ LLM Client / Claude Code CLI โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Protocol (stdio/SSE/HTTP)
โ HTTP: Origin validation (anti DNS-rebinding)
โ + transport-level audit logging
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CrowdSentinel MCP Server โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 139 Tools โ โ 6,060 Rules โ โ Security Frameworks โ โ
โ โ - Hunting โ โ - Lucene โ โ - Cyber Kill Chain โ โ
โ โ - Detection โ โ - EQL โ โ - Pyramid of Pain โ โ
โ โ - Forensics โ โ - ES|QL โ โ - Diamond Model โ โ
โ โ - Endpoint โ โ โ โ - MITRE ATT&CK โ โ
โ โ - Network โ โโโโโโโโโโโโโโโโโค โ โ โ
โ โ - Enrichment โ โ Schema โ โ 9 MCP Resources โ โ
โ โ - Correlation โ โ Registry โ โ (DFIR knowledge base) โ โ
โ โ - Deobfuscate โ โ (data-driven) โ โ โ โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Investigation State (Persistent) โโ
โ โ Cross-source IoC sharing, auto-capture, STIX 2.1 export โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโ
โ โ โ โ โ
โผ โผ โผ โผ โผ
โโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ
โElastic- โ โVelocirap-โ โosquery โ โ Chainsaw โ โ Wireshark โ
โsearch/ โ โtor โ โ(local โ โ(EVTX/ โ โ (PCAP) โ
โOpenSearch โ โ(EDR/DFIR)โ โ host) โ โ Sigma) โ โ (Network) โ
โ (SIEM) โ โ(Endpoint)โ โ โ โ(Offline) โ โ โ
โโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Shodan โ โ VirusTotal โ โ AbuseIPDB + ThreatFox โ
โ InternetDB โ โ (v3) โ โ + MISP (export/search) โ
โ (free/no key)โ โ (free tier) โ โ (free tier) โ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (Roadmap)
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ Splunk โ โ Wazuh โ โ Zeek โ
โ โ โ (EDR/XDR) โ โ (NSM/IDS) โ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
What's Included
| Category | Tools | Description |
|---|
| Elasticsearch Core | 19 | Index, document, cluster, alias, data stream, raw API operations |
| Threat Hunting | 8 | Attack pattern detection, kill-chain stage hunting, timeframe hunts, anomaly detection |
| EQL & ES|QL Hunting | 11 | Event-sequence queries, ES|QL pipes, saved hunt history, capability detection |
| Asset Discovery & Schema Intelligence | 12 | Index discovery, data-driven schema detection (ECS, Sysmon, auditd, Zeek, CloudTrailโฆ), smart search |
| IoC Analysis & Deobfuscation | 6 | IoC extraction, encoded-command decoding, kill-chain mapping, investigation reports |
| Detection Rules | 9 | 6,060 rule library โ list, execute, validate, suggest, batch execution |
| Investigation Prompts | 5 | Fast triage spine โ 10 critical IR questions |
| Chainsaw (EVTX) | 5 | Sigma rule hunting, iterative IoC discovery |
| Wireshark (PCAP) | 11 | Network forensics, beaconing, lateral movement detection, traffic decoding |
| Threat Intelligence | 5 | IoC enrichment (Shodan, VirusTotal, AbuseIPDB, ThreatFox) + MISP export/search |
| Investigation State | 10 | Persistent IoCs, cross-tool sharing, STIX 2.1 export, reporting |
| Velociraptor (Endpoint) | 25 | Live forensic artefact collection โ processes, network, persistence, execution evidence, MFT, SRUM |
| osquery (Local Host) | 4 | SQL-based local host forensics โ processes, sockets, users, ad-hoc queries |
| Cross-Source Correlation | 5 | SIEM โ endpoint pivots, IoC-driven endpoint hunts, unified timelines, time correlation |
| Workflow Guidance & Status | 4 | Next-step guidance, progressive disclosure, system status, storage cleanup |
Velociraptor tools register when VELOCIRAPTOR_API_CONFIG is set; osquery tools register when a local osqueryi binary is present; the 10 high-risk write tools are hidden when DISABLE_HIGH_RISK_OPERATIONS=true.
Security Frameworks
| Framework | Purpose |
|---|
| Cyber Kill Chain | Hunt by attack stage (7 stages), predict adversary's next move |
| Pyramid of Pain | Prioritise IoCs by difficulty for attackers to change (6 levels) |
| Diamond Model | Map adversary, capability, infrastructure, victim relationships |
| MITRE ATT&CK | Automatic technique mapping for all detections |
Detection Rules (6,060 Rules)
| Type | Count | Source | Description |
|---|
| Lucene | 1,966 | Sigma-converted | Fast pattern matching queries |
| EQL | 3,963 | Sigma-converted + Elastic | Event sequences and correlations |
| ES|QL | 131 | Elastic TOML rules | Pipe-based query language (ES 8.11+) |
Platforms: Windows, Linux, macOS, Cloud (AWS/Azure/GCP), Network, Identity
Log Sources: PowerShell, Sysmon, Security Events, Process Creation, Audit logs
Encoded-Command Deobfuscation
Real intrusions hide C2 addresses and URLs inside encodings the SIEM stores verbatim โ most commonly PowerShell -EncodedCommand (base64 of UTF-16LE), but also FromBase64String, base64โgzip, bare base64, and hex blobs. CrowdSentinel decodes these layers automatically during IoC extraction and via the dedicated decode_command tool, so the inner indicators surface instead of staying buried:
- Zero extra dependencies โ the decoder core uses only the Python standard library (
base64/zlib/codecs/binascii)
- Optional long tail โ install the
deobf extra (pip install 'crowdsentinel-mcp-server[deobf]') to add chepy for XOR and exotic encodings; its absence degrades gracefully
- Provenance โ every decode records its recipe (e.g.
base64->utf-16le) for the IR report
- Safe by design โ decode-only (nothing is executed), with depth and output-size bounds so a decompression bomb cannot hang the server
Configuration
Environment Variables
ELASTICSEARCH_HOSTS="https://localhost:9200"
ELASTICSEARCH_CLOUD_ID="deployment:base64..."
ELASTICSEARCH_BEARER_TOKEN="service_token_here"
ELASTICSEARCH_API_KEY="your_api_key"
ELASTICSEARCH_USERNAME="elastic"
ELASTICSEARCH_PASSWORD="your_password"
VERIFY_CERTS="true"
REQUEST_TIMEOUT="30"
DISABLE_HIGH_RISK_OPERATIONS="true"
VIRUSTOTAL_API_KEY="your_vt_key"
ABUSEIPDB_API_KEY="your_abuse_key"
THREATFOX_API_KEY="your_tf_key"
MISP_URL="https://misp.example.org"
MISP_API_KEY="your_misp_key"
Security Warning: Never use VERIFY_CERTS="false" or plain-text passwords in production. Use API keys or service tokens with TLS certificate verification enabled. For self-signed certificates, set ELASTICSEARCH_CA_CERT to your CA certificate path.
Production Configuration Examples
Elastic Cloud
ELASTICSEARCH_CLOUD_ID="my-deployment:dXMtY2VudHJhbC0x..."
ELASTICSEARCH_API_KEY="your_cloud_api_key"
VERIFY_CERTS="true"
Self-Hosted with Custom CA
ELASTICSEARCH_HOSTS="https://es-cluster.internal:9200"
ELASTICSEARCH_API_KEY="your_api_key"
ELASTICSEARCH_CA_CERT="/etc/elasticsearch/certs/ca.crt"
VERIFY_CERTS="true"
Mutual TLS (mTLS)
ELASTICSEARCH_HOSTS="https://es-cluster.internal:9200"
ELASTICSEARCH_CA_CERT="/etc/elasticsearch/certs/ca.crt"
ELASTICSEARCH_CLIENT_CERT="/etc/elasticsearch/certs/client.crt"
ELASTICSEARCH_CLIENT_KEY="/etc/elasticsearch/certs/client.key"
VERIFY_CERTS="true"
Development / Testing (insecure)
ELASTICSEARCH_HOSTS="http://localhost:9200"
ELASTICSEARCH_USERNAME="elastic"
ELASTICSEARCH_PASSWORD="test123"
VERIFY_CERTS="false"
This configuration is not suitable for production. Use API keys with TLS in production environments.
Transport Modes
| Mode | Use Case | Command |
|---|
| stdio (default) | MCP clients (Claude Code, etc.) | Auto-configured by setup.sh |
| SSE | Web/streaming clients | --transport sse --port 8000 |
| HTTP | REST API access | --transport streamable-http |
The HTTP transports are hardened at the transport layer:
- Origin validation (anti DNS-rebinding) โ browser requests are rejected unless their
Origin is loopback or listed in MCP_ALLOWED_ORIGINS (comma-separated; * alone disables the check). Requests without an Origin header โ every non-browser MCP client โ are unaffected.
- Audit logging โ every HTTP exchange is logged at the transport boundary (JSON-RPC method, tool name, body size, path), including requests the tool layer never sees, such as unknown tools or protocol errors. Logs are metadata-only, memory-bounded, and sanitised against log forgery.
Disabling Write Operations
For read-only access (recommended for production):
DISABLE_HIGH_RISK_OPERATIONS="true"
This hides destructive tools: create_index, delete_index, index_document, delete_document, delete_by_query, create_data_stream, delete_data_stream, put_alias, delete_alias, general_api_request
Usage Examples
Example 1: Hunt for Brute Force Attacks
You: Hunt for brute force attacks in the last hour
CrowdSentinel: Searching for failed authentication attempts...
[Calls hunt_by_timeframe with attack_types=["brute_force"]]
Found 47 failed login attempts from 3 source IPs targeting the "admin" account.
Top sources:
- 192.168.1.105: 28 attempts
- 10.0.0.42: 15 attempts
- 172.16.0.8: 4 attempts
Example 2: Investigate a Suspicious Host
You: Show me all activity on host DESKTOP-ABC123 in the last 24 hours
CrowdSentinel: Generating a forensic timeline for that host...
[Calls get_host_activity_timeline]
Timeline shows:
- 09:15: User "jsmith" logged in (Event 4624)
- 09:17: PowerShell executed encoded command
- 09:18: New scheduled task created "WindowsUpdate"
- 09:22: Outbound connection to 203.0.113.42:443
- 09:25: LSASS memory access detected
Example 3: Kill Chain Analysis
You: We found C2 beaconing. What should we hunt for next?
CrowdSentinel: Hunting adjacent kill chain stages...
[Calls hunt_adjacent_stages with current_stage="COMMAND_AND_CONTROL"]
Looking backwards (Installation stage):
- Found scheduled task persistence on 3 hosts
- Registry Run key modifications detected
Looking forwards (Actions on Objectives):
- Lateral movement to 2 additional hosts via SMB
- Credential dumping attempts detected
Example 4: Network Traffic Analysis
You: Analyse this PCAP for C2 beaconing
CrowdSentinel: Checking for regular connection intervals...
[Calls detect_beaconing on the PCAP file]
Detected beaconing pattern:
- Host: 192.168.1.50 โ 203.0.113.100:443
- Interval: 60 seconds (ยฑ2s jitter)
- Duration: 4 hours
- Confidence: HIGH
Recommend blocking 203.0.113.100 and investigating 192.168.1.50.
Example 5: CLI Threat Hunt
crowdsentinel hunt "powershell -enc" -i winlogbeat-* --timeframe 1440 -o json
crowdsentinel hunt "event.code:4625" -i winlogbeat-* -o json | \
crowdsentinel analyse -c "Failed authentication investigation"
crowdsentinel rules --tactic lateral_movement -p windows
Compatibility
| Package | Backend | Install |
|---|
crowdsentinel-mcp-server | Elasticsearch 8.x (default) | pip install crowdsentinel-mcp-server |
crowdsentinel-mcp-server-es7 | Elasticsearch 7.x | pip install crowdsentinel-mcp-server-es7 |
crowdsentinel-mcp-server-es9 | Elasticsearch 9.x | pip install crowdsentinel-mcp-server-es9 |
opensearch-mcp-server | OpenSearch 1.x, 2.x, 3.x | pip install opensearch-mcp-server |
For Developers
Project Structure
crowdsentinel-mcp-server/
โโโ src/
โ โโโ server.py # MCP server entry point
โ โโโ version.py # Version constant
โ โโโ risk_config.py # Write operation controls
โ โโโ transport_security.py # Origin validation for HTTP transports (anti DNS-rebinding)
โ โโโ transport_audit.py # Transport-level audit logging (every HTTP exchange)
โ โ
โ โโโ cli/ # Standalone CLI
โ โ โโโ main.py # CLI entry point (argparse) โ 15 commands incl. doctor
โ โ
โ โโโ agent/ # `analyse --mcp` AI agent mode (multi-provider LLM auth)
โ โโโ config/ # Connector configuration
โ โ
โ โโโ clients/ # Backend logic layer
โ โ โโโ base.py # Base client, authentication
โ โ โโโ exceptions.py # Exception handling decorators
โ โ โโโ common/
โ โ โโโ client.py # Unified SearchClient (multiple inheritance)
โ โ โโโ threat_hunting.py # Threat hunting queries
โ โ โโโ ioc_analysis.py # IoC extraction & analysis
โ โ โโโ deobfuscate.py # Encoded-command decoding (stdlib core + optional chepy)
โ โ โโโ cyber_kill_chain.py # Kill chain logic
โ โ โโโ rule_loader.py # Detection rule loading
โ โ โโโ chainsaw_client.py # EVTX/Sigma integration
โ โ โโโ osquery_client.py # Local osquery execution (sqlglot-validated SQL)
โ โ โโโ misp_client.py # MISP export/search
โ โ โโโ threat_intel.py # Shodan/VirusTotal/AbuseIPDB/ThreatFox enrichment
โ โ โโโ schemas/ # Data-driven schema registry
โ โ โโโ ecs.py, sysmon.py, windows_security.py, auditd.py
โ โ โโโ defs/ # JSON schema defs (zeek, packetbeat, aws_cloudtrail, โฆ)
โ โ
โ โโโ tools/ # MCP tool interfaces (25 modules, 139 tools)
โ โ โโโ register.py # Dynamic tool registration
โ โ โโโ threat_hunting.py # Hunting tool definitions
โ โ โโโ rule_management.py # Rule management tools
โ โ โโโ velociraptor_tools.py # Live endpoint forensics (25 tools)
โ โ โโโ osquery_tools.py # Local host forensics (4 tools)
โ โ โโโ cross_correlation.py # SIEM โ endpoint correlation (5 tools)
โ โ โโโ chainsaw_hunting.py # Chainsaw tools
โ โ โโโ wireshark_tools.py # Network analysis tools
โ โ โโโ threat_intel.py # Enrichment + MISP tools
โ โ โโโ investigation_state_tools.py # State management tools
โ โ
โ โโโ storage/ # Persistent investigation state
โ โ โโโ investigation_state.py # Core state management
โ โ โโโ storage_manager.py # File system storage (8GB FIFO)
โ โ โโโ models.py # Pydantic models (IoC, Investigation)
โ โ
โ โโโ utils/ # Shared utilities
โ โ
โ โโโ wireshark/ # Network traffic analysis
โ โโโ core/ # TShark execution, PCAP parsing
โ โโโ hunting/ # Beaconing, lateral movement, IoC hunting
โ โโโ baseline/ # Traffic baseline creation
โ โโโ extraction/ # File carving from traffic
โ โโโ reporting/ # NCSC-style reports, timelines
โ
โโโ rules/ # 6,060 detection rules (EQL + Lucene)
โโโ chainsaw/ # Chainsaw binary + 3,000+ Sigma rules
โโโ skills/ # Claude Code agent skills
โโโ Makefile # Test pyramid + release automation
โโโ tests/ # Tiered test suite (unit / integration / api / e2e / system)
Design Patterns
| Pattern | Usage |
|---|
| Multiple Inheritance | SearchClient composes all specialised clients |
| Decorator | Exception handling via @handle_exceptions |
| Factory | create_search_client() creates appropriate client |
| Plugin Architecture | Tools registered dynamically via ToolsRegister |
| Auto-Capture | Tool results automatically analysed for IoCs |
Adding a New Tool
- Create client method in
src/clients/common/your_module.py:
class YourClient(SearchClientBase):
def your_method(self, param: str) -> dict:
return results
- Add to SearchClient in
src/clients/common/client.py:
class SearchClient(YourClient, OtherClients, ...):
pass
- Create tool wrapper in
src/tools/your_tools.py:
class YourTools:
def __init__(self, client, mcp):
self.client = client
self.mcp = mcp
def register_tools(self):
@self.mcp.tool()
def your_tool(param: str) -> str:
"""Tool description for LLM."""
result = self.client.your_method(param)
return json.dumps(result)
- Register in server in
src/server.py:
from src.tools.your_tools import YourTools
def _register_tools(self):
YourTools(self.client, self.mcp).register_tools()
Running Tests
The test suite is a bottom-up pyramid (see tests/README.md): hermetic unit tests, then live tiers that spin up a real Elasticsearch (via testcontainers) and the real MCP server.
make test-unit
make coverage
make check-tests
make test-integration
make test-api
make test-e2e
make test-suite
| Tier | What it proves | Backing services |
|---|
| Unit | Function-level behaviour, fail-fast validation | None (hermetic) |
| Integration | App โ Elasticsearch trust boundary (auth, TLS, seeded data) | Real ES via testcontainers |
| API | MCP-over-HTTP contract (schemas, errors, Origin security, audit logs) | Real ES + real server subprocess |
| E2E | Full analyst journey via a real MCP client | Real ES + real server + fastmcp.Client |
| System | Full pipeline against your own range cluster | BYO Elasticsearch |
Live tiers are opt-in (--run-integration / --run-api / --run-e2e / --run-system), so plain pytest tests/ stays fast and hermetic.
Local Testing Environment
docker-compose -f docker-compose-elasticsearch.yml up -d
docker-compose -f docker-compose-opensearch.yml up -d
Default credentials (testing only):
- Elasticsearch:
elastic / test123
- OpenSearch:
admin / admin
Roadmap
| Feature | Status | Description |
|---|
| Velociraptor Integration | Done | 25 live endpoint forensics tools + 5 cross-correlation tools via the Velociraptor API |
| osquery Integration | Done | SQL-based local host forensics (processes, sockets, users, ad-hoc queries) |
| Encoded-Command Deobfuscation | Done | Recover IoCs hidden in base64/UTF-16LE/gzip/hex-encoded commands (optional chepy for the long tail) |
| Threat Intel Enrichment | Done | IoC enrichment via Shodan InternetDB, VirusTotal, AbuseIPDB, ThreatFox + STIX 2.1 export |
| MISP Integration | Done | Export investigation IoCs as MISP events, search MISP attributes (offline JSON export without a server) |
| Zeek Integration | Partial | Zeek logs indexed into ES are hunted via the data-driven schema registry; native NSM integration planned |
| Wazuh Integration | Planned | Open-source EDR/XDR โ its indexer is OpenSearch-based, so CrowdSentinel's existing OpenSearch client can hunt Wazuh alerts and agent telemetry |
| Splunk Integration | Planned | Add Splunk as a data source alongside Elasticsearch |
| Sigma Rule Converter | Planned | Convert Sigma rules to native ES/Splunk queries |
| Case Management | Planned | Export investigations to TheHive, JIRA |
| Custom Rule Builder | Planned | Create detection rules via natural language |
See CHANGELOG.md for detailed version history.
Velociraptor Integration (Live Endpoint Forensics)
CrowdSentinel integrates with Velociraptor for live endpoint forensic artefact collection. When configured, 25 additional MCP tools and 5 cross-correlation tools become available.
Setup
pip install crowdsentinel-mcp-server[velociraptor]
export VELOCIRAPTOR_API_CONFIG="/path/to/api_client.yaml"
The API client config is generated from the Velociraptor server:
velociraptor config api_client --name crowdsentinel --role administrator,api \
--config server.config.yaml /path/to/api_client.yaml
| Category | Tools | Use Case |
|---|
| Discovery | velociraptor_client_info, velociraptor_list_clients, velociraptor_list_artifacts | Resolve hostnames, enumerate enrolled endpoints, discover available artefacts |
| Generic Collection | velociraptor_collect_artifact, velociraptor_get_collection_results | Collect any Velociraptor artefact and fetch its results |
| Live State | velociraptor_pslist, velociraptor_netstat, velociraptor_users, velociraptor_groups, velociraptor_mounts | Running processes, active network connections, accounts, groups, mounted volumes |
| Execution Evidence | velociraptor_prefetch, velociraptor_amcache, velociraptor_shimcache, velociraptor_userassist, velociraptor_bam, velociraptor_srum | Forensic proof of programme execution and resource usage |
| Persistence | velociraptor_services, velociraptor_scheduled_tasks, velociraptor_autoruns | Service, scheduled task, and autorun persistence mechanisms |
| User Activity | velociraptor_shellbags, velociraptor_recentdocs, velociraptor_lnk, velociraptor_evidence_of_download | User browsing, document access, link files, file downloads |
| Filesystem & Logs | velociraptor_ntfs_mft, velociraptor_evtx | MFT search by name/path/timestamp, remote EVTX queries |
| Cross-Correlation | correlate_siem_with_endpoint, endpoint_to_siem_pivot, endpoint_hunt_from_ioc, correlate_by_time, build_unified_timeline | Validate SIEM findings on endpoints, pivot from endpoint IoCs to fleet-wide SIEM searches, unified timelines |
Cross-Source IoC Sharing
IoCs extracted from Velociraptor artefacts are automatically captured into the active investigation alongside SIEM, Chainsaw, and Wireshark findings. Use get_shared_iocs to retrieve the combined indicator set for cross-source correlation.
SIEM (Elasticsearch) Endpoint (Velociraptor)
โ โ
hunt_by_timeframe() velociraptor_pslist()
โ โ
auto_capture โโโโโโโบ Investigation State โโโโโโโ auto_capture
โ
get_shared_iocs()
DFIR Knowledge Resources
9 MCP resources provide structured investigation reference data directly to connected AI agents:
| Resource | Content |
|---|
crowdsentinel://investigation-workflow | Mandatory 4-phase IR workflow |
crowdsentinel://ioc-reference | IoC types ranked by Pyramid of Pain |
crowdsentinel://ioc-reference/data | Machine-readable IoC reference data |
crowdsentinel://cross-correlation-playbooks | 5 investigation playbooks (suspicious process, brute force, lateral movement, persistence, exfiltration) |
crowdsentinel://velociraptor-guide | Artefact reference tables and "found X in SIEM โ check Y on endpoint" decision tree |
crowdsentinel://data-sources | All data source capabilities and investigation decision matrix |
crowdsentinel://tool-recommendations | Which tool to reach for at each investigation step |
crowdsentinel://schemas | Supported log-source schemas (ECS, Sysmon, Windows Security, auditd, Zeek, โฆ) |
crowdsentinel://schemas/list | Machine-readable schema listing |
Documentation
User Guides
Feature Guides
Developer Guides
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Licence
GNU General Public Licence v3.0 โ See LICENSE for details.
Cyber Range
CrowdSentinel ships with a companion crowdsentinel-range โ a fully ephemeral AWS lab that generates ground-truth-labeled attack telemetry so you can investigate real detections rather than synthetic data.
Current range (v1) โ 2-host AWS lab
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ AWS VPC (private subnet) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Linux SIEM (Ubuntu 22.04) โ โ Windows Range Box (Server 2022) โ โ
โ โ Elasticsearch 8.x (TLS) โโโโโโโโ Sysmon (olafhartong) + Winlogbeat 9 โ โ
โ โ Auditbeat + Filebeat โ โ Atomic Red Team + PurpleSharp โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ SSM VPC endpoints โ no inbound ports open โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ--โ
โ SSM port-forward :19200
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโ
โ ./range-mcp.sh โ CrowdSentinel โ
โ MCP Server โ Claude Code โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
3 commands to go from zero to hunting:
cd crowdsentinel-range && make up && make attack-windows
cd .. && ./range-mcp.sh
Demo: 73,328 events triaged in ~40 seconds โ 2 shellcode payloads decoded, C2 IP extracted from raw bytes, full IR report with 19 MITRE techniques.
Future range (v2) โ enterprise AD environment
The next range generation targets full Active Directory kill-chain coverage: initial access โ lateral movement โ domain compromise, with a network security monitor layer, runtime security instrumentation, centralised vulnerability management, and deception infrastructure. Inspired by DetectionLab, Ludus, and SimuLand.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ AWS / Multi-VPC โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโ Attacker Subnet โโโโโ โโโโโโโโโโโโโโ Corporate Subnet โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ
โ โ Kali Linux (C2 server) โ โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โ Caldera + Metasploit โ โ โ Domain โ โ Windows 11 โ โ Windows 11 โ โ โ
โ โ Covenant C2 โโโโถโ โ Controller โ โ Workstation 1 โ โ Workstation 2 โ โ โ
โ โ โ โ โ (AD DS, DNS) โ โ (domain-joined) โ โ (domain-joined) โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโ DMZ Subnet โโโโโโโโโโ โ โ Linux File/Web Server (IIS / Apache, SMB share) โ โ โ
โ โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ Nginx reverse proxy โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Simulated internet SVC โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ Management / SIEM Subnet โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Elasticsearch + โ โ Zeek / Suricata โ โ โ
โ โ โ Kibana (SIEM) โ โ (NSM โ full packet + alerts) โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Velociraptor โ โ Falco (runtime security) โ โ โ
โ โ โ (live EDR/forensics)โ โ eBPF probe (CO-RE, default) โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ + kernel module fallback โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ DefectDojo โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ (vuln management) โ โ Honeypots + Canary tokens โ โ โ
โ โ โ FalcoยทZeekยทscanners โ โ (deception layer) โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Grafana โ centralized dashboards + alerting โ โ โ
โ โ โ ES ยท Falco ยท Suricata ยท Velociraptor ยท DefectDojo โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ VyOS router โ inter-subnet ACLs + egress filter โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SSM / VPN
CrowdSentinel MCP + Claude Code
v2 target capabilities:
| Capability | v1 (current) | v2 (planned) |
|---|
| Hosts | 2 (Linux SIEM + Windows) | 7โ10 (DC + 2ร WS + Linux + NSM + attacker + SIEM) |
| Network segments | 1 (private subnet) | 4 (attacker / corp / DMZ / management) |
| Active Directory | โ | Full AD DS domain + GPO + Kerberos |
| Lateral movement coverage | Limited | Pass-the-Hash, Kerberoasting, DCSync |
| Network detection | โ | Zeek (NSM) + Suricata IDS |
| Runtime security | โ | Falco; modern eBPF probe (CO-RE, bundled, default) + kernel module fallback; syscall-level host + container detection |
| Endpoint forensics | โ | Velociraptor live triage |
| Vuln management | โ | DefectDojo; aggregates Falco alerts, Zeek/Suricata findings, scanner results (OpenVAS, Trivy) into unified tracking + remediation workflow |
| Dashboards | โ | Grafana; centralised metrics + alert visualisation across ES, Falco, Suricata, Velociraptor, and DefectDojo |
| Deception layer | โ | Honeypot + canary tokens |
| C2 infrastructure | ART atomics only | Caldera + Metasploit + Covenant |
| Attack scenarios | Windows atomics + EVTX replay | Full kill-chain: initial access โ domain compromise |
| CrowdSentinel coverage | ES hunt + IR | ES + Zeek/Suricata + Falco + Velociraptor cross-source correlation; DefectDojo/Grafana as upstream context |
Design references: DetectionLab (Sysmon+WEF+Splunk convergence), Ludus (modular Proxmox/Ansible, VLAN segmentation), SimuLand (multi-domain AD forest, cloud-native), SANS FOR508 (artifact-first DFIR workflow), Falco (CO-RE eBPF probe architecture, kernel module fallback).
Acknowledgements
CrowdSentinel stands on the shoulders of outstanding open-source projects. Thank you to all of their maintainers and contributors.
Protocol & server framework
- Model Context Protocol โ the protocol connecting LLMs to tools, by Anthropic
- FastMCP โ the Python MCP server framework this project is built on
Analysis engines & forensic tools
- Chainsaw โ EVTX log analyser by WithSecure Labs
- Velociraptor โ live endpoint forensics and DFIR platform by Velocidex/Rapid7
- osquery โ SQL-powered host instrumentation by the osquery Foundation
- Wireshark / TShark โ network protocol analysis by the Wireshark Foundation
- Chepy โ CyberChef-like decoding library powering optional long-tail deobfuscation
- sqlglot โ SQL parser used to safely validate osquery queries
Detection content
- Sigma / SigmaHQ โ the community detection rule standard and rule corpus
- Elastic detection-rules โ Elastic's prebuilt EQL/ES|QL detection rules
- Community-contributed Sigma and custom rules
Data platforms & threat intelligence
Development & testing
Methodology frameworks
- Cyber Kill Chain (Lockheed Martin), Pyramid of Pain (David J. Bianco), Diamond Model (Caltagirone, Pendergast & Betz), MITRE ATT&CK