|
1 | 1 |  |
2 | | -# 🛡️ Sentinel Kit: The Simplified Platform for Incident Response (SOC & DFIR) |
| 2 | +# 🛡️ Sentinel Kit: The Unified Security Platform for SOC & DFIR |
3 | 3 |
|
4 | | -**WARNING**: This project is currently in an early stage of development. Not all components have been ported to this repository, and the features are not yet stable enough for production use. The features already available online are documented [here](docs/index.md). |
| 4 | +**Sentinel Kit** is a comprehensive security platform designed to provide **Security Operations Center (SOC)** and **Digital Forensics and Incident Response (DFIR)** capabilities with unparalleled deployment simplicity. |
5 | 5 |
|
6 | | ---- |
7 | | - |
8 | | -**Sentinel Kit** is a comprehensive Docker stack designed to provide **Digital Forensics and Incident Response (DFIR)** and **Security Operations Center (SOC)** capabilities with unparalleled deployment simplicity. |
| 6 | +Built for **real-time security monitoring**, **threat detection**, and **incident response**, this integrated platform enables collection, analysis, detection, and immediate response to security threats. |
9 | 7 |
|
10 | | -Ideal for **situational monitoring** or **small-scale security incident response**, this integrated platform enables collection, analysis, detection, and immediate response to threats. |
| 8 | + |
11 | 9 |
|
12 | 10 | --- |
13 | 11 |
|
14 | | -## ✨ Key Features |
| 12 | +## ✨ Core Capabilities |
15 | 13 |
|
16 | | -Sentinel Kit is an all-in-one toolkit that covers the entire security incident lifecycle: |
| 14 | +Sentinel Kit provides a complete security monitoring and response ecosystem: |
17 | 15 |
|
18 | | -* **Log Collection & Parsing (SIEM Lite)**: Uses **Fluent Bit** for data ingestion and **Elasticsearch** for storage and indexing. |
19 | | -* **Advanced Analysis & Triage**: Planned integration of **Sigma** rules for log-based detection and **YARA** for suspicious file triage (via upload mechanisms). |
20 | | -* **Detection and Response (EDR)**: A dedicated agent (integrating into the ecosystem) provide real-time detection and response functionalities. In addition, this optional agent can act as a collection element to forward logs from your workstations to the sentinel-kit server. |
21 | | -* **Secure Uploads**: Provides a dedicated **SFTP** server for uploading evidence, logs, or suspicious files. |
22 | | -* **Comprehensive Visualization**: Monitoring dashboards via **Kibana** and **Grafana/Prometheus**. |
| 16 | +### 🔍 **Real-Time Threat Detection** |
| 17 | +* **Sigma Rules Engine**: Advanced detection rules for log-based threat hunting |
| 18 | +* **Alert Management**: Real-time alert processing and triage workflow |
| 19 | +* **Custom Detection Logic**: Create and manage custom detection rules |
23 | 20 |
|
24 | | ---- |
| 21 | +### 📊 **Security Monitoring & Analytics** |
| 22 | +* **Unified Dashboard**: Centralized security metrics and KPIs |
| 23 | +* **Data Source Monitoring**: Track log ingestion and data source health |
| 24 | +* **Service Health Monitoring**: Platform component status and performance |
25 | 25 |
|
26 | | -## 🚀 Quick Start (Installation) |
| 26 | +### 📁 **Log Collection & Analysis** |
| 27 | +* **Multi-Source Ingestion**: FluentBit-based log collection from various sources |
| 28 | +* **Elasticsearch Storage**: Scalable log storage and indexing |
| 29 | +* **Advanced Search**: Powerful querying and filtering capabilities |
27 | 30 |
|
28 | | -This project is designed to be deployed in minutes using Docker Compose. |
| 31 | +### 🎯 **Integrated Analysis Tools** |
| 32 | +* **Native Alert Viewer**: Built-in alert analysis and investigation tools |
| 33 | +* **Kibana Integration**: Advanced log exploration and custom dashboards |
| 34 | +* **Grafana Dashboards**: Infrastructure monitoring and metrics visualization |
29 | 35 |
|
30 | | -### Prerequisites |
| 36 | +--- |
31 | 37 |
|
32 | | -* **Docker** |
33 | | -* **Docker Compose** (or Docker Engine including Compose) |
34 | | -* Minimum **8 GB of RAM** (essential for Elasticsearch) |
35 | | - |
36 | | -### Deployment Steps |
37 | | - |
38 | | -1. **Clone the Repository:** |
39 | | - ```bash |
40 | | - git clone |
41 | | - cd sentinel-kit |
42 | | - ``` |
43 | | - |
44 | | -2. **Set the following DNS entry (in hosts file if you are running it locally):** |
45 | | -```bash |
46 | | -# OS host file |
47 | | -127.0.0.1 sentinel-kit.local |
48 | | -127.0.0.1 backend.sentinel-kit.local |
49 | | -127.0.0.1 phpmyadmin.sentinel-kit.local |
50 | | -127.0.0.1 kibana.sentinel-kit.local |
51 | | -127.0.0.1 grafana.sentinel-kit.local |
52 | | -``` |
| 38 | +## 🚀 Quick Start |
53 | 39 |
|
54 | | -3. **Launch the Stack:** |
55 | | - ```bash |
56 | | - docker-compose up -d |
57 | | - ``` |
58 | | - *Startup may take several minutes, especially the first time, as Elasticsearch initializes and the backend installs its dependencies.* |
| 40 | +### Prerequisites |
59 | 41 |
|
60 | | -3. **Check Status:** |
61 | | - ```bash |
62 | | - docker-compose ps |
63 | | - ``` |
64 | | - All services should be in the `Up` status. |
| 42 | +- **Operating System**: Windows 10/11, Linux, or macOS |
| 43 | +- **Docker & Docker Compose** (or Docker Desktop) |
| 44 | +- **Memory**: Minimum 8 GB RAM (16 GB recommended) |
| 45 | +- **Storage**: At least 20 GB free disk space |
| 46 | +- **Network**: Internet access for initial container downloads |
| 47 | + |
| 48 | +### One-Command Deployment |
| 49 | + |
| 50 | +1. **Clone and Start:** |
| 51 | + ```bash |
| 52 | + git clone https://github.com/codeyourweb/sentinel-kit.git |
| 53 | + cd sentinel-kit |
| 54 | + |
| 55 | + # Windows PowerShell |
| 56 | + ./launcher.ps1 build |
| 57 | + |
| 58 | + # Linux/macOS |
| 59 | + ./launcher.sh build |
| 60 | + ``` |
| 61 | + |
| 62 | + After an initial build. Startup could be done with `start` command |
| 63 | + |
| 64 | +2. **Configure DNS (Local Development):** |
| 65 | + Use the integrated console command as __Administrator__: |
| 66 | + ```bash |
| 67 | + ./launcher.sh local-dns-install |
| 68 | + ``` |
| 69 | + |
| 70 | + Or, manually add to your hosts file : |
| 71 | + ``` |
| 72 | + 127.0.0.1 sentinel-kit.local |
| 73 | + 127.0.0.1 backend.sentinel-kit.local |
| 74 | + 127.0.0.1 phpmyadmin.sentinel-kit.local |
| 75 | + 127.0.0.1 kibana.sentinel-kit.local |
| 76 | + 127.0.0.1 grafana.sentinel-kit.local |
| 77 | + ``` |
| 78 | + |
| 79 | +3. **Access the Platform:** |
| 80 | + - **Main Dashboard**: https://sentinel-kit.local |
| 81 | + - **Kibana**: https://kibana.sentinel-kit.local |
| 82 | + - **Grafana**: https://grafana.sentinel-kit.local |
| 83 | + |
| 84 | +### First Steps |
| 85 | +1. [Configure and create an admin user](docs/01-getting-started.md) |
| 86 | +2. [Add new data sources and ingest logs](docs/02-data-ingestion.md) |
| 87 | +3. [Create detection rules](docs/04-sigma-rules.md) |
| 88 | +4. [Monitor and analyze alerts](docs/05-alert-management.md) |
| 89 | + |
| 90 | +## 🏗️ Architecture Overview |
| 91 | + |
| 92 | +Sentinel Kit follows a microservices architecture with the following core components: |
| 93 | + |
| 94 | +| Component | Purpose | Technology Stack | |
| 95 | +|-----------|---------|------------------| |
| 96 | +| **Web Interface** | Main dashboard and management console | Vue.js, Nginx | |
| 97 | +| **Backend API** | Core business logic and data management | PHP Symfony, PHP-FPM | |
| 98 | +| **Detection Engine** | Sigma rules processing and alert generation | Elastalert, Python | |
| 99 | +| **Log Storage** | Centralized log repository and indexing | Elasticsearch | |
| 100 | +| **Log Ingestion** | Multi-source log collection and forwarding | FluentBit | |
| 101 | +| **Database** | Platform configuration and user management | MySQL | |
| 102 | +| **Monitoring** | Infrastructure metrics and dashboards | Prometheus, Grafana | |
| 103 | +| **Service Discovery** | Reverse proxy and SSL termination | Caddy | |
65 | 104 |
|
66 | 105 | --- |
67 | 106 |
|
68 | | -## 🌐 Component Access |
| 107 | +## 📚 Documentation |
69 | 108 |
|
70 | | -Once the stack is running, you can access the interfaces via the default ports exposed by the Caddy service: |
| 109 | +### User Guides |
| 110 | +* [Getting Started](docs/01-getting-started.md) - Initial setup and first admin user creation |
| 111 | +* [Data Ingestion](docs/02-data-ingestion.md) - Configure log sources and data collection |
| 112 | +* [Sigma Rules Management](docs/04-sigma-rules.md) - Create and manage detection rules |
| 113 | +* [Alert Management](docs/05-alert-management.md) - Investigation and response workflows |
| 114 | +* [Monitoring & Health](docs/06-monitoring-health.md) - Platform monitoring and troubleshooting |
71 | 115 |
|
72 | | -| Service | Role | Default Access | |
73 | | -| :--- | :--- | :--- | |
74 | | -| **Web Interface** (Admin frontend) | Access to the admin application | `https://sentinel-kit.local` | |
75 | | -| **Web API** | Used for clients<->server communications and admin actions over the web interface | `https://backend.sentinel-kit.local` | |
76 | | -| **Kibana** | Exploration and visualization of Elastic logs | `http://kibana.sentinel-kit.local` | |
77 | | -| **Grafana** | Monitoring dashboards | `http://grafana.sentinel-kit.local` | |
78 | | -| **phpMyAdmin** | MySQL database management | `http://phpmyadmin.sentinel-kit.local` | |
79 | | -| **SFTP Server** | Secure file/evidence upload | Port `2222` | |
| 116 | +--- |
80 | 117 |
|
81 | | -### Default Credentials (Utilities) |
| 118 | +## 🔄 Management Commands |
82 | 119 |
|
83 | | -| Tool | Username | Password | |
84 | | -| :--- | :--- | :--- | |
85 | | -| **Grafana** | `sentinel-kit_grafana_admin` | `sentinel-kit_grafana_password` | |
86 | | -| **MySQL (DB)** | `sentinel-kit_user` | `sentinel-kit_passwd` | |
87 | | -| **SFTP** | `sentinel-kit_ftp_user` | `sentinel-kit_ftp_passwd` | |
| 120 | +The included launcher provides simplified platform management: |
88 | 121 |
|
89 | | -All of this can be edited in `.env` file |
| 122 | +```powershell |
| 123 | +============================================= |
| 124 | + Sentinel-Kit Management Script |
| 125 | +============================================= |
90 | 126 |
|
91 | | ---- |
| 127 | +USAGE: |
| 128 | + .\launcher <command> |
92 | 129 |
|
93 | | -## 🛠️ Technical Architecture (via `docker-compose.yml`) |
| 130 | +COMMANDS: |
| 131 | + start Start the Docker stack |
| 132 | + stop Stop the running Docker stack |
| 133 | + build Build and start the Docker stack |
| 134 | + clean-data Clean all user data and stop containers |
| 135 | + console Access Sentinel-Kit console |
| 136 | + logs Show Docker container logs |
| 137 | + status Show container status |
| 138 | + local-dns-install Install local DNS entries to hosts file |
| 139 | + local-dns-uninstall Remove local DNS entries from hosts file |
| 140 | + help Show this help message |
94 | 141 |
|
95 | | -The architecture is modular and relies on the interconnection of several services |
96 | | - |
| 142 | +OPTIONS: |
| 143 | + -Follow Follow log output (for logs command) |
| 144 | +``` |
97 | 145 |
|
98 | | -## ⚙️ Configuration |
| 146 | +--- |
99 | 147 |
|
100 | | -Main configurations are located in the `config/` folder: (edit these elements only if you know what you are doing 😊) |
| 148 | +## 🛟 Support & Community |
101 | 149 |
|
102 | | -* `config/caddy_server`: Reverse proxy that serve front and back-end web applications. |
103 | | -* `config/docker-config`: Server stack configuration (dockerfile, entrypoints...). |
104 | | -* `config/elasticsearch`: Configuration of the Elasticsearch certification chain and nodes cluster. |
105 | | -* `config/fluentbit_server`: Fluent Bit configuration files (inputs, filters, outputs to Elasticsearch). |
106 | | -* `config/grafana`: Grafana initial setup (datasources and dashboards). |
107 | | -* `config/prometheus`: Prometheus monitoring targets configuration. |
108 | | -* `config/sigma_ruleset`: sigma rules used on elasticsearch ingested logs |
109 | | -* `config/yara_ruleset`: yara rules used on `data/yara_triage_data` folder or by *sentinel-kit_datamonitor* agent |
| 150 | +* **Documentation**: Complete guides available in the [docs/](docs/) directory |
| 151 | +* **Issues**: Report bugs via GitHub Issues |
| 152 | +* **Discussions**: Community support and feature discussions |
| 153 | +* **Security Issues**: Report security vulnerabilities privately |
110 | 154 |
|
111 | | -## 📖 Data |
| 155 | +--- |
112 | 156 |
|
113 | | -Persistent data are located in the `data/` folder: |
| 157 | +## 📄 License |
114 | 158 |
|
115 | | -* `data/caddy_logs`: Store the caddy server access & error logs. |
116 | | -* `data/fluentbit_db`: fluentbit ingest database (to avoid indexing same data several times). |
117 | | -* `data/ftp_data`: Store file uploaded on the SFTP server. |
118 | | -* `data/grafana`: Contains a persistence of your grafana profile if you want to make your own dashboard and customizations. |
119 | | -* `data/kibana`: Kibana user customizations (dashboard, config...). |
120 | | -* `data/log_ingest_data`: Is designed to forward logs if you don't want to use fluentbit HTTP forwarder. |
121 | | -* `data/yara_triage_data`: is used to automatically scan any file placed in this folder. |
| 159 | +This project is licensed under the **GNU AFFERO GENERAL PUBLIC LICENSE**. See [LICENSE](LICENSE) for details. |
122 | 160 |
|
123 | 161 | --- |
124 | 162 |
|
125 | | -## 🛑 Stopping and Cleaning the Stack |
| 163 | +## 🙏 Acknowledgments |
126 | 164 |
|
127 | | -To stop and remove the containers, networks, and volumes created by Docker Compose: |
128 | | -
|
129 | | -```bash |
130 | | -docker-compose down -v |
131 | | -``` |
132 | | -
|
133 | | -If you want to erase all user data, and start from a fresh and clean installation, there is a `clean-user-data` sh or powershell (depending on your OS) to help you erasing all personal data. Then, you can rebuild the whole stack with: |
| 165 | +* **Sigma Project** for the detection rule format and community rules |
| 166 | +* **Elastic Stack** for the powerful search and analytics engine |
| 167 | +* **FluentBit** for efficient and lightweight log processing |
| 168 | +* **Vue.js Community** for the reactive frontend framework |
| 169 | +* **Symfony** for this powerfull PHP framework, core of Sentinel-Kit backend |
| 170 | +--- |
134 | 171 |
|
135 | | -```bash |
136 | | -docker-compose up --build --force-recreate |
137 | | -``` |
| 172 | +*Sentinel Kit - Simplifying Security Operations through Unified Platform Management* |
0 commit comments