@cryptotaxi247 / CoPilot / commits / 40fc400a

Docs: Mintlify restructure + operator/admin guides + integrations (#718)

* docs: improve Get Started flow + enlarge hero video * docs: mintlify restructure + operator playbooks + integrations --------- Co-authored-by: Clawdbot <clawdbot@Clawdbots-Mac-mini.local>

taylorcopilot committed Feb 15, 2026 at 13:59 UTC 40fc400acd8e6376e7a8ba74bfcb939f775fb783
153 files changed +5217 -263
docs/admin.mdx new
+32
@@ -0,0 +1,32 @@
1 +---
2 +title: Admin / Platform Guide
3 +description: Provisioning, integrations/connectors, and platform reliability for CoPilot.
4 +---
5 +
6 +# Admin / Platform Guide
7 +
8 +This section is organized around **data onboarding and reliability**.
9 +
10 +## Start here
11 +
12 +- [Admin/Engineer quickstart](/user/admins-quickstart)
13 +- [First wins (30 minutes)](/getting-started/first-wins)
14 +
15 +## Tenancy & onboarding
16 +
17 +- [Customer provisioning](/user/customer-provisioning)
18 +- [Customers (UI reference)](/user/ui/customers)
19 +
20 +## Integrations & connectors
21 +
22 +- [3rd‑party integrations](/user/ui/external-third-party-integrations)
23 +- [Network connectors](/user/ui/external-network-connectors)
24 +
25 +## Platform health
26 +
27 +- [Indices management](/user/ui/indices-management)
28 +- [Graylog management](/user/ui/graylog-management)
29 +
30 +## Video walkthroughs
31 +
32 +- [Admin/Engineer track videos](/user/videos#adminengineer-track)
docs/assets/hero/customer-provisioning-walkthrough-thumb.jpg
Binary files /dev/null and b/docs/assets/hero/customer-provisioning-walkthrough-thumb.jpg differ
docs/assets/images/crowdstrike/crowdstrike_api_settings.png
Binary files /dev/null and b/docs/assets/images/crowdstrike/crowdstrike_api_settings.png differ
docs/assets/images/crowdstrike/docker_ps.PNG
Binary files /dev/null and b/docs/assets/images/crowdstrike/docker_ps.PNG differ
docs/assets/ui/agents-copilot-actions-action-details.png
Binary files /dev/null and b/docs/assets/ui/agents-copilot-actions-action-details.png differ
docs/assets/ui/agents-copilot-actions-invoke.png
Binary files /dev/null and b/docs/assets/ui/agents-copilot-actions-invoke.png differ
docs/assets/ui/agents-copilot-actions-overview.png
Binary files /dev/null and b/docs/assets/ui/agents-copilot-actions-overview.png differ
docs/assets/ui/agents-copilot-actions-results.png
Binary files /dev/null and b/docs/assets/ui/agents-copilot-actions-results.png differ
docs/assets/ui/agents-detection-rules-edit.png
Binary files /dev/null and b/docs/assets/ui/agents-detection-rules-edit.png differ
docs/assets/ui/agents-detection-rules-list.png
Binary files /dev/null and b/docs/assets/ui/agents-detection-rules-list.png differ
docs/assets/ui/agents-detection-rules-restart.png
Binary files /dev/null and b/docs/assets/ui/agents-detection-rules-restart.png differ
docs/assets/ui/agents-detection-rules-search.png
Binary files /dev/null and b/docs/assets/ui/agents-detection-rules-search.png differ
docs/assets/ui/agents-groups-advanced-fields.png
Binary files /dev/null and b/docs/assets/ui/agents-groups-advanced-fields.png differ
docs/assets/ui/agents-groups-details.png
Binary files /dev/null and b/docs/assets/ui/agents-groups-details.png differ
docs/assets/ui/agents-groups-list.png
Binary files /dev/null and b/docs/assets/ui/agents-groups-list.png differ
docs/assets/ui/agents-sca-overview-filters.png
Binary files /dev/null and b/docs/assets/ui/agents-sca-overview-filters.png differ
docs/assets/ui/agents-sca-overview-load.png
Binary files /dev/null and b/docs/assets/ui/agents-sca-overview-load.png differ
docs/assets/ui/agents-sca-overview-results.png
Binary files /dev/null and b/docs/assets/ui/agents-sca-overview-results.png differ
docs/assets/ui/agents-sysmon-config-edit.png
Binary files /dev/null and b/docs/assets/ui/agents-sysmon-config-edit.png differ
docs/assets/ui/agents-sysmon-config-overview.png
Binary files /dev/null and b/docs/assets/ui/agents-sysmon-config-overview.png differ
docs/assets/ui/agents-sysmon-config-reload.png
Binary files /dev/null and b/docs/assets/ui/agents-sysmon-config-reload.png differ
docs/assets/ui/agents-vulnerability-overview-distribution.png
Binary files /dev/null and b/docs/assets/ui/agents-vulnerability-overview-distribution.png differ
docs/assets/ui/agents-vulnerability-overview-filters.png
Binary files /dev/null and b/docs/assets/ui/agents-vulnerability-overview-filters.png differ
docs/assets/ui/agents-vulnerability-overview-table.png
Binary files /dev/null and b/docs/assets/ui/agents-vulnerability-overview-table.png differ
docs/assets/ui/agents-vulnerability-overview-top-packages.png
Binary files /dev/null and b/docs/assets/ui/agents-vulnerability-overview-top-packages.png differ
docs/assets/ui/alerts-siem-filters.png
Binary files /dev/null and b/docs/assets/ui/alerts-siem-filters.png differ
docs/assets/ui/alerts-siem-overview.png
Binary files /dev/null and b/docs/assets/ui/alerts-siem-overview.png differ
docs/assets/ui/artifacts-collect.png
Binary files /dev/null and b/docs/assets/ui/artifacts-collect.png differ
docs/assets/ui/artifacts-recommendation.png
Binary files /dev/null and b/docs/assets/ui/artifacts-recommendation.png differ
docs/assets/ui/artifacts-results.png
Binary files /dev/null and b/docs/assets/ui/artifacts-results.png differ
docs/assets/ui/graylog-alert-provisioning.png
Binary files /dev/null and b/docs/assets/ui/graylog-alert-provisioning.png differ
docs/assets/ui/graylog-custom-alert.png
Binary files /dev/null and b/docs/assets/ui/graylog-custom-alert.png differ
docs/assets/ui/graylog-event-definitions.png
Binary files /dev/null and b/docs/assets/ui/graylog-event-definitions.png differ
docs/assets/ui/healthcheck-alerts.png
Binary files /dev/null and b/docs/assets/ui/healthcheck-alerts.png differ
docs/assets/ui/healthcheck-check-names.png
Binary files /dev/null and b/docs/assets/ui/healthcheck-check-names.png differ
docs/assets/ui/healthcheck-overview.png
Binary files /dev/null and b/docs/assets/ui/healthcheck-overview.png differ
docs/assets/ui/healthcheck-thresholds.png
Binary files /dev/null and b/docs/assets/ui/healthcheck-thresholds.png differ
docs/assets/ui/incident-alerts-create-ioc.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-create-ioc.png differ
docs/assets/ui/incident-alerts-details-assets.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-details-assets.png differ
docs/assets/ui/incident-alerts-details-comments.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-details-comments.png differ
docs/assets/ui/incident-alerts-details-iocs.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-details-iocs.png differ
docs/assets/ui/incident-alerts-details-overview.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-details-overview.png differ
docs/assets/ui/incident-alerts-filters-customer-tag.png
Binary files /dev/null and b/docs/assets/ui/incident-alerts-filters-customer-tag.png differ
docs/assets/ui/incident-cases-details-alerts.png
Binary files /dev/null and b/docs/assets/ui/incident-cases-details-alerts.png differ
docs/assets/ui/incident-cases-details-comments.png
Binary files /dev/null and b/docs/assets/ui/incident-cases-details-comments.png differ
docs/assets/ui/incident-cases-details-datastore.png
Binary files /dev/null and b/docs/assets/ui/incident-cases-details-datastore.png differ
docs/assets/ui/incident-cases-details-overview.png
Binary files /dev/null and b/docs/assets/ui/incident-cases-details-overview.png differ
docs/assets/ui/incident-cases-generate-report.png
Binary files /dev/null and b/docs/assets/ui/incident-cases-generate-report.png differ
docs/assets/ui/incident-sources-create-source.png
Binary files /dev/null and b/docs/assets/ui/incident-sources-create-source.png differ
docs/assets/ui/incident-sources-field-mapping.png
Binary files /dev/null and b/docs/assets/ui/incident-sources-field-mapping.png differ
docs/assets/ui/incident-sources-graylog-event-def.png
Binary files /dev/null and b/docs/assets/ui/incident-sources-graylog-event-def.png differ
docs/assets/ui/incident-sources-list.png
Binary files /dev/null and b/docs/assets/ui/incident-sources-list.png differ
docs/assets/ui/indices-management-customer-storage.png
Binary files /dev/null and b/docs/assets/ui/indices-management-customer-storage.png differ
docs/assets/ui/indices-management-delete-index.png
Binary files /dev/null and b/docs/assets/ui/indices-management-delete-index.png differ
docs/assets/ui/indices-management-health.png
Binary files /dev/null and b/docs/assets/ui/indices-management-health.png differ
docs/assets/ui/indices-snapshots-create-snapshot.png
Binary files /dev/null and b/docs/assets/ui/indices-snapshots-create-snapshot.png differ
docs/assets/ui/indices-snapshots-repos.png
Binary files /dev/null and b/docs/assets/ui/indices-snapshots-repos.png differ
docs/assets/ui/indices-snapshots-restore.png
Binary files /dev/null and b/docs/assets/ui/indices-snapshots-restore.png differ
docs/assets/ui/indices-snapshots-schedule.png
Binary files /dev/null and b/docs/assets/ui/indices-snapshots-schedule.png differ
docs/assets/ui/patch-tuesday-cve-card.png
Binary files /dev/null and b/docs/assets/ui/patch-tuesday-cve-card.png differ
docs/assets/ui/patch-tuesday-filters.png
Binary files /dev/null and b/docs/assets/ui/patch-tuesday-filters.png differ
docs/assets/ui/patch-tuesday-kev-toggle.png
Binary files /dev/null and b/docs/assets/ui/patch-tuesday-kev-toggle.png differ
docs/assets/ui/patch-tuesday-summary.png
Binary files /dev/null and b/docs/assets/ui/patch-tuesday-summary.png differ
docs/assets/ui/power-atomic-red-team-overview.png
Binary files /dev/null and b/docs/assets/ui/power-atomic-red-team-overview.png differ
docs/assets/ui/power-atomic-red-team-results.png
Binary files /dev/null and b/docs/assets/ui/power-atomic-red-team-results.png differ
docs/assets/ui/power-atomic-red-team-run.png
Binary files /dev/null and b/docs/assets/ui/power-atomic-red-team-run.png differ
docs/assets/ui/power-mitre-attack-overview.png
Binary files /dev/null and b/docs/assets/ui/power-mitre-attack-overview.png differ
docs/assets/ui/power-mitre-attack-tabs.png
Binary files /dev/null and b/docs/assets/ui/power-mitre-attack-tabs.png differ
docs/assets/ui/power-mitre-attack-technique.png
Binary files /dev/null and b/docs/assets/ui/power-mitre-attack-technique.png differ
docs/assets/ui/report-general-panels.png
Binary files /dev/null and b/docs/assets/ui/report-general-panels.png differ
docs/assets/ui/report-general-wizard.png
Binary files /dev/null and b/docs/assets/ui/report-general-wizard.png differ
docs/assets/ui/report-sca-generate.png
Binary files /dev/null and b/docs/assets/ui/report-sca-generate.png differ
docs/assets/ui/report-sca-overview.png
Binary files /dev/null and b/docs/assets/ui/report-sca-overview.png differ
docs/assets/ui/report-vulnerability-filters.png
Binary files /dev/null and b/docs/assets/ui/report-vulnerability-filters.png differ
docs/assets/ui/report-vulnerability-generate.png
Binary files /dev/null and b/docs/assets/ui/report-vulnerability-generate.png differ
docs/docs.json
+112 -186
@@ -2,7 +2,7 @@
2 "$schema": "https://mintlify.com/docs.json",
3 "theme": "mint",
4 "name": "SOCFortress CoPilot",
5 - "description": "SOCFortress CoPilot documentation — operator workflows, admin/engineer configuration, and developer/AI-agent guides.",
5 + "description": "SOCFortress CoPilot documentation \u2014 operator workflows, admin/engineer configuration, and developer/AI-agent guides.",
6 "logo": {
7 "light": "/assets/brand/logo-text.png",
8 "dark": "/assets/brand/logo-text.png",
@@ -18,58 +18,25 @@
18 "tabs": [
19 {
20 "tab": "Get Started",
21 - "groups": [
22 - {
23 - "group": "Welcome",
24 - "pages": [
25 - "index",
26 - "getting-started/what-is-copilot",
27 - "getting-started/roles-and-mental-model",
28 - "getting-started/first-wins"
29 - ]
30 - },
31 - {
32 - "group": "Quickstarts",
33 - "pages": [
34 - "user/operators-quickstart",
35 - "user/admins-quickstart"
36 - ]
37 - },
38 - {
39 - "group": "Core concepts",
40 - "pages": [
41 - "user/overview",
42 - "user/navigation",
43 - "user/features"
44 - ]
45 - },
46 - {
47 - "group": "Watch next",
48 - "pages": [
49 - {
50 - "title": "Operator track videos",
51 - "href": "/user/videos#operator-track"
52 - },
53 - {
54 - "title": "Admin/Engineer track videos",
55 - "href": "/user/videos#adminengineer-track"
56 - }
57 - ]
58 - }
21 + "pages": [
22 + "getting-started/start-here",
23 + "getting-started/what-is-copilot",
24 + "getting-started/roles-and-mental-model",
25 + "getting-started/first-wins",
26 + "user/operators-quickstart",
27 + "user/admins-quickstart",
28 + "user/overview",
29 + "user/navigation",
30 + "user/features"
31 ]
32 },
33 {
34 "tab": "Operator",
63 - "groups": [
64 - {
65 - "group": "Start here",
66 - "pages": [
67 - "operator/index",
68 - "user/operators-quickstart"
69 - ]
70 - },
35 + "pages": [
36 + "operator",
37 + "user/operators-quickstart",
38 {
72 - "group": "Incident workflow",
39 + "group": "Incident Management",
40 "pages": [
41 "user/ui/incident-alerts",
42 "user/ui/incident-cases",
@@ -77,200 +44,159 @@
44 ]
45 },
46 {
80 - "group": "Reference (by menu)",
81 - "pages": [
82 - "user/ui/incident-management",
83 - "user/ui/incident-sources"
84 - ]
85 - },
86 - {
87 - "group": "Videos",
88 - "pages": [
89 - {
90 - "title": "Operator track",
91 - "href": "/user/videos#operator-track"
92 - },
93 - "user/videos"
94 - ]
95 - }
96 - ]
97 - },
98 - {
99 - "tab": "Admin / Platform",
100 - "groups": [
101 - {
102 - "group": "Start here",
47 + "group": "Agents",
48 "pages": [
104 - "admin/index",
105 - "user/admins-quickstart",
106 - "user/customer-provisioning"
49 + "user/ui/agents",
50 + "user/ui/agents-groups",
51 + "user/ui/agents-sysmon-config",
52 + "user/ui/agents-detection-rules",
53 + "user/ui/agents-copilot-actions",
54 + "user/ui/agents-vulnerability-overview",
55 + "user/ui/agents-patch-tuesday",
56 + "user/ui/agents-sca-overview"
57 ]
58 },
59 {
110 - "group": "Integrations & connectors",
60 + "group": "SOCFortress Capsules",
61 "pages": [
112 - "user/ui/external-third-party-integrations",
113 - "user/ui/external-network-connectors"
62 + "user/capsules/index"
63 ]
64 },
65 {
117 - "group": "Platform (by menu)",
66 + "group": "Reporting",
67 "pages": [
119 - "user/ui/customers",
120 - "user/ui/indices-management",
121 - "user/ui/graylog-management",
122 - "user/ui/graylog-pipelines",
123 - "user/ui/graylog-metrics"
68 + "user/ui/report-creation",
69 + "user/ui/report-general",
70 + "user/ui/report-vulnerability",
71 + "user/ui/report-sca"
72 ]
73 },
74 {
75 "group": "Videos",
76 "pages": [
129 - {
130 - "title": "Admin/Engineer track",
131 - "href": "/user/videos#adminengineer-track"
132 - },
77 "user/videos"
78 ]
79 }
80 ]
81 },
82 {
139 - "tab": "Developer",
140 - "groups": [
83 + "tab": "Admin / Platform",
84 + "pages": [
85 + "admin",
86 + "user/admins-quickstart",
87 {
142 - "group": "Start here",
88 + "group": "Log ingestion",
89 "pages": [
144 - "developer/start-here"
90 + "user/customer-provisioning",
91 + "user/ui/external-third-party-integrations",
92 + "user/ui/external-network-connectors"
93 ]
94 },
95 {
148 - "group": "Architecture",
96 + "group": "Alerting (Graylog \u2192 CoPilot)",
97 "pages": [
150 - "architecture/ARCHITECTURE",
151 - "architecture/MAP",
152 - "architecture/DEPLOYMENT",
153 - "architecture/DATA_FLOWS",
154 - "architecture/DATABASE_SCHEMA"
98 + "user/ui/incident-sources",
99 + "user/ui/graylog-management"
100 ]
101 },
102 {
158 - "group": "Integrations",
103 + "group": "Indices (Wazuh Indexer)",
104 "pages": [
160 - "integrations/ADDING_A_CONNECTOR"
105 + "user/ui/indices-management",
106 + "user/ui/indices-snapshots"
107 ]
108 },
109 {
164 - "group": "Videos",
110 + "group": "Health (InfluxDB)",
111 "pages": [
166 - {
167 - "title": "Browse videos",
168 - "href": "/user/videos"
169 - }
112 + "user/ui/healthcheck"
113 ]
171 - }
114 + },
115 + "user/videos"
116 ]
117 },
118 {
175 - "tab": "Videos",
119 + "tab": "Integrations",
120 "groups": [
121 {
178 - "group": "Library",
122 + "group": "Catalog",
123 "pages": [
180 - "videos/index",
181 - "user/videos"
124 + "integrations",
125 + "integrations/wazuh",
126 + "integrations/office-365",
127 + "integrations/mimecast",
128 + "integrations/huntress",
129 + "integrations/crowdstrike",
130 + "integrations/duo",
131 + "integrations/defender-for-endpoint",
132 + "integrations/bitdefender",
133 + "integrations/carbon-black",
134 + "integrations/cato-networks",
135 + "integrations/darktrace",
136 + "integrations/sap-siem"
137 ]
138 },
139 {
185 - "group": "Role tracks",
140 + "group": "Network connectors (syslog)",
141 "pages": [
187 - {
188 - "title": "Operator track",
189 - "href": "/user/videos#operator-track"
190 - },
191 - {
192 - "title": "Admin/Engineer track",
193 - "href": "/user/videos#adminengineer-track"
194 - }
142 + "integrations/network-connectors",
143 + "integrations/network-connectors/fortigate",
144 + "integrations/network-connectors/palo-alto",
145 + "integrations/network-connectors/cisco-asa",
146 + "integrations/network-connectors/sonicwall",
147 + "integrations/network-connectors/opnsense",
148 + "integrations/network-connectors/sentinelone"
149 ]
150 }
151 ]
152 },
153 {
200 - "tab": "UI Reference",
154 + "tab": "Power Features",
155 "groups": [
156 {
203 - "group": "Overview",
204 - "pages": [
205 - "user/ui/overview"
206 - ]
207 - },
208 - {
209 - "group": "Incident Management",
210 - "pages": [
211 - "user/ui/incident-management",
212 - "user/ui/incident-alerts",
213 - "user/ui/incident-cases",
214 - "user/ui/incident-sources"
215 - ]
216 - },
217 - {
218 - "group": "Customers",
219 - "pages": [
220 - "user/ui/customers",
221 - "user/customer-provisioning",
222 - "user/ui/external-third-party-integrations",
223 - "user/ui/external-network-connectors",
224 - "user/ui/external-services",
225 - "user/ui/connectors"
226 - ]
227 - },
228 - {
229 - "group": "Graylog",
230 - "pages": [
231 - "user/ui/graylog",
232 - "user/ui/graylog-management",
233 - "user/ui/graylog-pipelines",
234 - "user/ui/graylog-metrics"
235 - ]
236 - },
237 - {
238 - "group": "Indices",
239 - "pages": [
240 - "user/ui/indices",
241 - "user/ui/indices-management",
242 - "user/ui/indices-snapshots"
243 - ]
244 - },
245 - {
246 - "group": "Agents",
157 + "group": "Add-ons",
158 "pages": [
248 - "user/ui/agents",
249 - "user/ui/agents-groups",
250 - "user/ui/agents-vulnerability-overview",
251 - "user/ui/agents-sca-overview",
252 - "user/ui/agents-sysmon-config",
253 - "user/ui/agents-patch-tuesday",
254 - "user/ui/agents-detection-rules",
255 - "user/ui/agents-copilot-actions"
256 - ]
257 - },
258 - {
259 - "group": "Reports",
260 - "pages": [
261 - "user/ui/report-general",
262 - "user/ui/report-creation",
263 - "user/ui/report-sca",
264 - "user/ui/report-vulnerability"
159 + "power-features",
160 + "power-features/mitre-attack",
161 + "power-features/patch-tuesday",
162 + "power-features/cloud-security-assessment",
163 + "power-features/web-vulnerability-assessment",
164 + "power-features/github-audit",
165 + "power-features/ai-analyst",
166 + "power-features/atomic-red-team",
167 + "power-features/report-creation"
168 ]
266 - },
169 + }
170 + ]
171 + },
172 + {
173 + "tab": "Developer",
174 + "pages": [
175 + "developer/start-here",
176 + "architecture/ARCHITECTURE",
177 + "architecture/MAP",
178 + "architecture/DEPLOYMENT",
179 + "architecture/DATA_FLOWS",
180 + "architecture/DATABASE_SCHEMA",
181 + "integrations/ADDING_A_CONNECTOR"
182 + ]
183 + },
184 + {
185 + "tab": "Videos",
186 + "pages": [
187 + "videos",
188 + "user/videos"
189 + ]
190 + },
191 + {
192 + "tab": "Reference",
193 + "groups": [
194 {
268 - "group": "Other",
195 + "group": "Essentials",
196 "pages": [
270 - "user/ui/healthcheck",
271 - "user/ui/scheduler",
272 - "user/ui/artifacts",
273 - "user/ui/customer-portal"
197 + "reference",
198 + "reference/troubleshooting",
199 + "user/navigation"
200 ]
201 }
202 ]
docs/getting-started/roles-and-mental-model.mdx
+88
@@ -10,6 +10,94 @@ CoPilot is easiest to learn if you separate it into **two jobs**:
10 1) **Operate incidents** (alerts → cases → evidence → response)
11 2) **Make incidents possible** (connect sources/integrations so alerts flow)
12
13 +---
14 +
15 +## The mental model (visual)
16 +
17 +CoPilot becomes intuitive when you see it as **two loops** that share the same data:
18 +
19 +<Columns cols={2}>
20 + <Card title="Admin / Platform loop" icon="gear">
21 + You make detection possible.
22 +
23 + <Steps>
24 + <Step title="Connect & verify">
25 + Integrations + syslog connectors are healthy.
26 + </Step>
27 + <Step title="Ingest & route">
28 + Streams/pipelines route logs where they should go.
29 + </Step>
30 + <Step title="Provision & visualize">
31 + Customers/tenants, dashboards, indices, retention.
32 + </Step>
33 + <Step title="Enable alerting">
34 + Event definitions + notifications are configured.
35 + </Step>
36 + <Step title="Tune & maintain">
37 + Reduce noise, validate coverage, keep things reliable.
38 + </Step>
39 + </Steps>
40 + </Card>
41 +
42 + <Card title="Operator loop" icon="siren">
43 + You run incidents.
44 +
45 + <Steps>
46 + <Step title="Alert appears">
47 + New alert lands in Incident Management.
48 + </Step>
49 + <Step title="Triage">
50 + Decide: true positive? priority? scope?
51 + </Step>
52 + <Step title="Case work">
53 + Create a case, collect artifacts/evidence.
54 + </Step>
55 + <Step title="Respond">
56 + Contain, eradicate, recover.
57 + </Step>
58 + <Step title="Feedback">
59 + Feed improvements back into tuning/detections.
60 + </Step>
61 + </Steps>
62 + </Card>
63 +</Columns>
64 +
65 +### How alerts become cases (the shared pipeline)
66 +
67 +<Steps>
68 + <Step title="1) Data arrives">
69 + Endpoints (Wazuh), API integrations (O365/Mimecast/Huntress/CrowdStrike), and syslog devices (FortiGate/PAN‑OS/ASA).
70 + </Step>
71 + <Step title="2) Normalize & route">
72 + Graylog streams/pipelines normalize fields and route logs.
73 + </Step>
74 + <Step title="3) Detect">
75 + Graylog Event Definitions evaluate conditions and generate events.
76 + </Step>
77 + <Step title="4) Persist">
78 + Alerts are written to `gl-events*`.
79 + </Step>
80 + <Step title="5) Operate">
81 + CoPilot surfaces alerts → operators create/work cases → response.
82 + </Step>
83 +</Steps>
84 +
85 +### “Where do I click?” (quick map)
86 +
87 +<Columns cols={3}>
88 + <Card title="Operators" icon="siren" href="/user/operators-quickstart">
89 + Incident Management → Alerts → Cases
90 + </Card>
91 + <Card title="Admins / engineers" icon="gear" href="/user/admins-quickstart">
92 + Provisioning → Integrations → Connectors → Indices
93 + </Card>
94 + <Card title="Developers" icon="code" href="/developer/start-here">
95 + Architecture → Data flows → Connectors
96 + </Card>
97 +</Columns>
98 +
99 +---
100 +
101 ## SOC operator / analyst
102
103 You spend most of your time in **Incident Management**.
docs/getting-started/start-here.mdx new
+186
@@ -0,0 +1,186 @@
1 +---
2 +title: Start here
3 +description: A guided checklist to get logs flowing, dashboards populated, and alerts/cases working in SOCFortress CoPilot.
4 +---
5 +
6 +# Start here
7 +
8 +This is the **primary onboarding checklist** for CoPilot.
9 +
10 +CoPilot sits on top of an open-source SIEM stack. To get value fast, you want this order:
11 +
12 +1) **Ingest** (endpoints + integrations + syslog)
13 +2) **Visualize** (dashboards)
14 +3) **Detect** (alerts)
15 +4) **Respond** (alerts → cases → IR)
16 +
17 +If you’re unsure what role you are, read [Roles & mental model](/getting-started/roles-and-mental-model) first.
18 +
19 +---
20 +
21 +## Success definition (what “done” looks like)
22 +
23 +You’re “onboarded” when:
24 +
25 +- [ ] You can confirm **endpoint logs** are arriving (Wazuh)
26 +- [ ] You can confirm **integration/syslog logs** are arriving (External Services / Network Connectors)
27 +- [ ] You can open a **Grafana dashboard** that is populated with real data
28 +- [ ] A **Graylog alert** appears in CoPilot (**Incident Management → Alerts**)
29 +- [ ] An operator can open a **case** from an alert and track investigation work
30 +
31 +---
32 +
33 +## 0) Prereqs (10 minutes)
34 +
35 +Do these before troubleshooting anything else.
36 +
37 +- [ ] In CoPilot, configure and verify **Connectors** (Wazuh, Graylog, Grafana, Velociraptor).
38 + - If a connector can’t verify, stop here and fix connectivity/credentials.
39 +- [ ] Decide your **customer code** convention (short, stable, no spaces).
40 + - You’ll use this for routing/indexing/provisioning.
41 +
42 +Helpful pages:
43 +- [Admin/Engineer quickstart](/user/admins-quickstart)
44 +- [Customer provisioning (tenancy)](/user/customer-provisioning)
45 +- [UI navigation guide](/user/navigation)
46 +
47 +---
48 +
49 +## 1) Ingest logs (make data exist)
50 +
51 +### 1A) Endpoints — Wazuh (usually first)
52 +
53 +**Goal:** endpoints are enrolled and reporting; CoPilot shows them as healthy.
54 +
55 +Checklist:
56 +- [ ] Enroll at least 1 endpoint (Windows or Linux) into Wazuh.
57 +- [ ] Confirm the endpoint appears in CoPilot under **Agents** and shows online/healthy.
58 +- [ ] Confirm the agent is associated with the correct tenant/customer context.
59 +
60 +Success criteria:
61 +- You can point to **one real endpoint** in CoPilot and say “this host is actively producing telemetry.”
62 +
63 +Next (UI reference):
64 +- [Agents](/user/ui/agents)
65 +- [Agent groups](/user/ui/agents-groups)
66 +
67 +### 1B) Third‑party integrations — API sources
68 +
69 +Examples: Office 365, Mimecast, Huntress, CrowdStrike.
70 +
71 +**Goal:** events are arriving under the correct customer scope.
72 +
73 +Checklist:
74 +- [ ] Configure at least 1 integration under **External Services**.
75 +- [ ] Confirm events are flowing (don’t worry about dashboards yet).
76 +
77 +Success criteria:
78 +- You can find at least **one recent event** for the integration and tie it to a customer.
79 +
80 +Next (UI reference):
81 +- [External services](/user/ui/external-services)
82 +- [3rd party integrations](/user/ui/external-third-party-integrations)
83 +
84 +### 1C) Network connectors — syslog
85 +
86 +**Goal:** syslog events arrive from at least one device/source.
87 +
88 +Checklist:
89 +- [ ] Configure a network connector.
90 +- [ ] Confirm syslog events are arriving and are tenant-aware (routed/tagged correctly).
91 +
92 +Success criteria:
93 +- You can identify the source device + see fresh events in the expected location.
94 +
95 +Next (UI reference):
96 +- [Network connectors](/user/ui/external-network-connectors)
97 +
98 +---
99 +
100 +## 2) Visualize (make data understandable)
101 +
102 +CoPilot uses **Grafana** for dashboards. During **customer provisioning**, CoPilot can deploy **templated dashboards** so you get immediate visibility.
103 +
104 +Checklist:
105 +- [ ] Verify the **Grafana connector**.
106 +- [ ] Run **customer provisioning** for a test customer.
107 +- [ ] Confirm dashboards are deployed into the customer’s Grafana org.
108 +- [ ] Open at least 1 dashboard and confirm it’s populated (not empty panels).
109 +
110 +Success criteria:
111 +- You can show a dashboard with **real, current** data for a specific customer.
112 +
113 +Next:
114 +- [Customer provisioning](/user/customer-provisioning)
115 +- Videos (browse by role): [Videos](/user/videos)
116 +
117 +---
118 +
119 +## 3) Detect (make data actionable)
120 +
121 +CoPilot uses **Graylog** for searching and alerting.
122 +
123 +Mental model:
124 +- ingestion → streams/pipelines → event definitions → alerts written to `gl-events*`
125 +- CoPilot reads those into **Incident Management → Alerts**
126 +
127 +Checklist:
128 +- [ ] Verify the **Graylog connector**.
129 +- [ ] Ensure alert plumbing exists (built-in definitions or create one custom).
130 +- [ ] Trigger a test event and confirm an alert is created.
131 +- [ ] Confirm the alert is visible in CoPilot under **Incident Management → Alerts**.
132 +
133 +Success criteria:
134 +- A new alert appears in CoPilot and you can explain “what fired” + “what data it was based on.”
135 +
136 +Next (UI reference):
137 +- [Graylog management](/user/ui/graylog-management)
138 +- [Incident alerts](/user/ui/incident-alerts)
139 +
140 +---
141 +
142 +## 4) Respond (alerts → cases)
143 +
144 +Checklist:
145 +- [ ] Open an alert.
146 +- [ ] Create a case from it.
147 +- [ ] Add at least one note/comment/evidence link.
148 +- [ ] Assign/track status so it’s obvious what’s being worked.
149 +
150 +Success criteria:
151 +- An operator can manage an investigation end-to-end without leaving CoPilot.
152 +
153 +Next (UI reference):
154 +- [Incident cases](/user/ui/incident-cases)
155 +
156 +---
157 +
158 +## 5) Endpoint IR (Velociraptor)
159 +
160 +Velociraptor provides response capabilities: remote commands, artifact collection, and evidence gathering.
161 +
162 +Checklist:
163 +- [ ] Verify the **Velociraptor connector**.
164 +- [ ] Run one basic artifact collection against a test endpoint.
165 +- [ ] Confirm you can retrieve/view results in CoPilot.
166 +
167 +Success criteria:
168 +- You can collect at least one artifact and attach/associate results to investigation work.
169 +
170 +Next:
171 +- Velociraptor-focused walkthroughs in [Videos](/user/videos)
172 +
173 +---
174 +
175 +## 6) Expand (power features)
176 +
177 +Once the core SIEM loop is working, layer in these modules:
178 +
179 +- Vulnerability + SCA views (Wazuh-backed)
180 +- Microsoft Patch Tuesday prioritization
181 +- Cloud security assessment outputs (Scout Suite)
182 +- Web vulnerability assessment (Nuclei)
183 +- GitHub audit
184 +- AI-assisted reporting / report creation
185 +
186 +(We’ll link each of these to dedicated pages as we wireframe them.)
docs/getting-started/what-is-copilot.mdx
+30
@@ -13,6 +13,36 @@ It sits above tools like **Wazuh**, **Graylog**, **Velociraptor**, **Grafana**,
13 - **Onboard data**: customer/tenant provisioning, integrations, and connectors
14 - **Reduce context switching** with a consistent UI and workflow
15
16 +<Frame>
17 + <div style={{ width: '100%', maxWidth: 1100, margin: '0 auto' }}>
18 + <video
19 + autoPlay
20 + loop
21 + muted
22 + playsInline
23 + preload="auto"
24 + controls={false}
25 + disablePictureInPicture
26 + onClick={(e) => e.currentTarget.play()}
27 + style={{
28 + width: '100%',
29 + aspectRatio: '16 / 9',
30 + height: 'auto',
31 + display: 'block',
32 + borderRadius: 16,
33 + background: 'rgba(0,0,0,0.2)',
34 + }}
35 + >
36 + <source src="/assets/hero/copilot-hub.webm" type="video/webm" />
37 + <source src="/assets/hero/copilot-hub.mp4" type="video/mp4" />
38 + </video>
39 + </div>
40 +</Frame>
41 +
42 +<div style={{ fontSize: 13, opacity: 0.8, marginTop: 8 }}>
43 + If the animation doesn’t autoplay in your browser, click once to start playback.
44 +</div>
45 +
46 ## Who is it for?
47
48 <Columns cols={3}>
docs/index-mkdocs.md renamed
docs/index.mdx
+27 -13
@@ -9,6 +9,10 @@ CoPilot is a **single pane of glass** for operating an open‑source SOC/SIEM st
9
10 **Choose your path:**
11
12 +<Card title="Start here" icon="map" href="/getting-started/start-here" horizontal>
13 + Guided path: ingest → dashboards → alerts → cases → response.
14 +</Card>
15 +
16 <Card title="SOC Operator / Analyst" icon="siren" href="/user/operators-quickstart" horizontal>
17 Alert triage → cases → investigations.
18 </Card>
@@ -22,19 +26,29 @@ CoPilot is a **single pane of glass** for operating an open‑source SOC/SIEM st
26 </Card>
27
28 <Frame>
25 - <video
26 - autoPlay
27 - loop
28 - muted
29 - playsInline
30 - preload="auto"
31 - controls={false}
32 - disablePictureInPicture
33 - style={{ width: '100%', height: 'auto', display: 'block', borderRadius: 16 }}
34 - >
35 - <source src="/assets/hero/copilot-hub.webm" type="video/webm" />
36 - <source src="/assets/hero/copilot-hub.mp4" type="video/mp4" />
37 - </video>
29 + <div style={{ width: '100%', maxWidth: 1100, margin: '0 auto' }}>
30 + <video
31 + autoPlay
32 + loop
33 + muted
34 + playsInline
35 + preload="auto"
36 + controls={false}
37 + disablePictureInPicture
38 + onClick={(e) => e.currentTarget.play()}
39 + style={{
40 + width: '100%',
41 + aspectRatio: '16 / 9',
42 + height: 'auto',
43 + display: 'block',
44 + borderRadius: 16,
45 + background: 'rgba(0,0,0,0.2)',
46 + }}
47 + >
48 + <source src="/assets/hero/copilot-hub.webm" type="video/webm" />
49 + <source src="/assets/hero/copilot-hub.mp4" type="video/mp4" />
50 + </video>
51 + </div>
52 </Frame>
53
54 <div style={{ fontSize: 13, opacity: 0.8, marginTop: 8 }}>
docs/integrations.mdx new
+44
@@ -0,0 +1,44 @@
1 +---
2 +title: Integrations
3 +description: Source-by-source setup guides and expectations for what data, dashboards, and alerts you get in CoPilot.
4 +---
5 +
6 +# Integrations
7 +
8 +This section is a **catalog**.
9 +
10 +Pick a source, follow a short setup guide, then validate that:
11 +
12 +- logs are ingesting
13 +- dashboards populate (after provisioning)
14 +- alerting can be enabled (built-in or custom)
15 +
16 +If you’re brand new, start with the guided checklist: [Start here](/getting-started/start-here).
17 +
18 +---
19 +
20 +## The mental model
21 +
22 +Almost every integration follows this pattern:
23 +
24 +1. **Ingest** events (API integration or syslog)
25 +2. Store events in your SIEM datastore (Wazuh Indexer / OpenSearch-backed)
26 +3. (Often) build alerts in **Graylog** → alerts land in `gl-events*`
27 +4. CoPilot shows alerts in **Incident Management → Alerts** → operators open **Cases**
28 +
29 +---
30 +
31 +## First-wave integrations
32 +
33 +- [Wazuh (endpoints)](/integrations/wazuh)
34 +- [Office 365](/integrations/office-365)
35 +- [Mimecast](/integrations/mimecast)
36 +- [Huntress](/integrations/huntress)
37 +- [CrowdStrike](/integrations/crowdstrike)
38 +
39 +## Network connectors (syslog)
40 +
41 +- [Network connectors overview](/integrations/network-connectors)
42 +- Fortinet: [FortiGate](/integrations/network-connectors/fortigate)
43 +- Palo Alto Networks: [PAN-OS](/integrations/network-connectors/palo-alto)
44 +- Cisco: [ASA](/integrations/network-connectors/cisco-asa)
docs/integrations/_template.mdx new
+49
@@ -0,0 +1,49 @@
1 +---
2 +title: Integration template
3 +---
4 +
5 +# Integration name
6 +
7 +## What this integration is
8 +
9 +## Data path (how it flows)
10 +
11 +**Typical flow:**
12 +
13 +1. Source system → **collector/ingestion** (External Service, integration job, webhook, or syslog)
14 +2. Events → **SIEM storage** (Wazuh Indexer / OpenSearch-backed)
15 +3. Optional: events → **Graylog** for search/streaming + alert definitions
16 +4. Alerts → `gl-events*` → **CoPilot Incident Management → Alerts**
17 +5. Operator workflow → **Cases**, evidence, response
18 +
19 +> Exact wiring varies by integration and environment. This section is meant to make expectations concrete.
20 +
21 +## What data you get (high level)
22 +
23 +## Setup (wireframe)
24 +
25 +- Where to configure it in CoPilot
26 +- What credentials/permissions are typically needed (high level)
27 +
28 +## Success criteria (what “working” looks like)
29 +
30 +- [ ] Events are arriving under the correct customer
31 +- [ ] You can find a recent event and identify the source
32 +
33 +## Dashboards
34 +
35 +- What dashboards get deployed during provisioning (if applicable)
36 +- What “populated” looks like
37 +
38 +## Alerts (starter set)
39 +
40 +List 3–5 high-signal starter detections.
41 +
42 +## Troubleshooting
43 +
44 +If events aren’t showing up:
45 +
46 +- confirm connector/external service is verified
47 +- confirm routing/tenant association
48 +- confirm index/stream assumptions
49 +- confirm Graylog alert plumbing (if used)
docs/integrations/bitdefender.mdx new
+108
@@ -0,0 +1,108 @@
1 +---
2 +title: Bitdefender (GravityZone)
3 +description: Ingest Bitdefender GravityZone events into the SOCFortress SIEM stack via the Event Push Service connector.
4 +---
5 +
6 +# Bitdefender (GravityZone)
7 +
8 +## What this integration is
9 +
10 +This integration ingests **Bitdefender GravityZone** security events into your SIEM stack using GravityZone’s **Event Push Service**.
11 +
12 +In SOCFortress CoPilot deployments, Bitdefender typically pushes events to a small HTTP receiver/connector, which then forwards them to **Graylog** over syslog.
13 +
14 +---
15 +
16 +## Data path (how it flows)
17 +
18 +1) Bitdefender GravityZone (cloud) → **Event Push Service**
19 +2) Event Push Service → **CoPilot-hosted HTTP receiver** (connector)
20 +3) Receiver → **Graylog input** (syslog)
21 +4) Graylog → stream/index/dashboards (provisioned)
22 +5) Optional: Graylog alerting → Incident ingestion (if configured)
23 +
24 +---
25 +
26 +## Prerequisites
27 +
28 +- Bitdefender API access is enabled and an API client is created.
29 +- Network path is in place so Bitdefender can reach your HTTP receiver.
30 +- You have a target syslog host/port (Graylog input).
31 +
32 +Vendor reference:
33 +- Event Push Service API connector (CEF): https://www.bitdefender.com/business/support/en/77209-144080-build-an-event-push-service-api-connector-for-cef-standard.html
34 +
35 +---
36 +
37 +## Credentials & configuration you’ll need
38 +
39 +From Bitdefender:
40 +- API credentials / auth string (connector uses an `authentication_string`)
41 +
42 +From your SIEM:
43 +- Graylog host + port (syslog target)
44 +
45 +From your deployment:
46 +- A public-facing DNS/port so Bitdefender can deliver events to the receiver
47 +
48 +Example receiver config (for context; CoPilot provisioning typically generates this for you):
49 +
50 +```json
51 +{
52 + "port": 3200,
53 + "syslog_port": 10514,
54 + "transport": "Tcp",
55 + "target": "YOUR_GRAYLOG_SERVER",
56 + "authentication_string": "Basic <base64>",
57 + "secure": {
58 + "enabled": true,
59 + "key": "api/config/server.key",
60 + "cert": "api/config/server.crt"
61 + }
62 +}
63 +```
64 +
65 +---
66 +
67 +## CoPilot setup (recommended workflow)
68 +
69 +1) **Provision the customer** first (so the tenant wiring exists).
70 +2) In CoPilot, open the customer and add the **Bitdefender** integration.
71 +3) Enter the required configuration values.
72 +4) Deploy/start the Bitdefender connector container generated during provisioning.
73 +
74 +Provisioning typically creates:
75 +- Graylog CEF/syslog input
76 +- Graylog stream + index
77 +- Grafana datasource + dashboards
78 +- Bitdefender docker compose + config
79 +
80 +---
81 +
82 +## Deployment notes (connector container)
83 +
84 +In a standard layout, provisioning creates a customer-specific folder under:
85 +- `/opt/CoPilot/data/data/<CUSTOMER_NAME>/`
86 +
87 +Start the connector:
88 +
89 +```bash
90 +docker compose -f /opt/CoPilot/data/data/<CUSTOMER_NAME>/<CUSTOMER_NAME>_bitdefender_docker-compose.yml up -d
91 +```
92 +
93 +---
94 +
95 +## Success criteria
96 +
97 +- [ ] Bitdefender events are arriving in Graylog
98 +- [ ] Events are routed to the customer’s index/stream
99 +- [ ] Dashboards show non-empty data (after a short delay)
100 +
101 +---
102 +
103 +## Troubleshooting
104 +
105 +- Verify inbound firewall/NAT allows Bitdefender → HTTP receiver traffic.
106 +- Verify the receiver can reach Graylog syslog input (host/port).
107 +- Validate TLS cert/key configuration if `secure.enabled=true`.
108 +- Confirm auth string matches what Bitdefender expects.
docs/integrations/carbon-black.mdx new
+68
@@ -0,0 +1,68 @@
1 +---
2 +title: Carbon Black Cloud
3 +description: Ingest Carbon Black Cloud alerts into the SOCFortress SIEM stack.
4 +---
5 +
6 +# Carbon Black Cloud
7 +
8 +## What this integration is
9 +
10 +This integration ingests **VMware Carbon Black Cloud** alert data into your SOCFortress SIEM stack using the Carbon Black Cloud APIs.
11 +
12 +---
13 +
14 +## Data path (how it flows)
15 +
16 +1) Carbon Black Cloud → API polling/collector
17 +2) Collector → SIEM ingestion (indexing/search)
18 +3) Optional: alerting + routing into Incident Management
19 +
20 +---
21 +
22 +## Prerequisites
23 +
24 +- Carbon Black Cloud console access
25 +- API access enabled
26 +
27 +Vendor reference:
28 +- Alerts API: https://developer.carbonblack.com/reference/carbon-black-cloud/platform/latest/alerts-api/
29 +
30 +---
31 +
32 +## Credentials & permissions you’ll need
33 +
34 +From the Carbon Black Cloud console:
35 +- API ID
36 +- API Secret Key
37 +- ORG Key
38 +- ORG ID
39 +- Base API hostname (e.g., `https://defense.conferdeploy.net`)
40 +
41 +The recommended pattern is to create:
42 +1) a **custom access level** with **Alerts: READ**
43 +2) an **API key** bound to that access level
44 +
45 +---
46 +
47 +## CoPilot setup (recommended workflow)
48 +
49 +1) Provision the customer (tenant wiring).
50 +2) In CoPilot → customer → Integrations → **Add integration** → **Carbon Black**.
51 +3) Paste the API credentials + org identifiers.
52 +4) Deploy/start the collector/connector component (if your deployment model uses a containerized collector).
53 +
54 +---
55 +
56 +## Success criteria
57 +
58 +- [ ] Carbon Black alerts are arriving
59 +- [ ] Alerts/events are tagged to the correct customer
60 +
61 +---
62 +
63 +## Troubleshooting
64 +
65 +- Confirm API key permissions include alerts read access.
66 +- Confirm ORG identifiers match your tenant.
67 +- Validate base URL/region (commercial vs other environments).
68 +- Check collector logs for rate limiting/auth failures.
docs/integrations/cato-networks.mdx new
+65
@@ -0,0 +1,65 @@
1 +---
2 +title: Cato Networks
3 +description: Ingest Cato Networks SASE events into the SOCFortress SIEM stack.
4 +---
5 +
6 +# Cato Networks
7 +
8 +## What this integration is
9 +
10 +This integration ingests **Cato Networks** events into your SOCFortress SIEM stack using the Cato API (commonly via the `eventsFeed` capability).
11 +
12 +Vendor reference:
13 +- Cato API docs: https://api.catonetworks.com/documentation/
14 +
15 +---
16 +
17 +## Data path (how it flows)
18 +
19 +1) Cato Networks → events API feed
20 +2) CoPilot collector → SIEM ingestion (indexing/search)
21 +3) Optional: alerting and incident workflows
22 +
23 +---
24 +
25 +## Prerequisites
26 +
27 +- Cato Management Application access
28 +- API key created with appropriate permissions
29 +- Event feed enabled (Administration → Event Integrations)
30 +
31 +---
32 +
33 +## Credentials you’ll need
34 +
35 +From Cato:
36 +- **Account ID** (from the URL)
37 +- **API key**
38 +
39 +API key notes:
40 +- Choose **View permissions** for read-only ingestion.
41 +- Copy the key immediately when generated (can’t be retrieved later).
42 +
43 +---
44 +
45 +## CoPilot setup (recommended workflow)
46 +
47 +1) Provision the customer.
48 +2) Add **Cato Networks** integration under the customer.
49 +3) Provide account ID + API key.
50 +4) Validate that events begin flowing.
51 +
52 +---
53 +
54 +## Success criteria
55 +
56 +- [ ] Events show up for the expected customer
57 +- [ ] You can correlate an event in Cato with an event in the SIEM
58 +
59 +---
60 +
61 +## Troubleshooting
62 +
63 +- Confirm “Event Feed Enabled” is toggled on.
64 +- Confirm the API key is not expired/revoked.
65 +- Validate the account ID is correct and in-scope.
docs/integrations/crowdstrike.mdx new
+169
@@ -0,0 +1,169 @@
1 +---
2 +title: CrowdStrike
3 +description: Ingest CrowdStrike Falcon events using the Falcon SIEM Connector and route them into your SOCFortress SIEM stack.
4 +---
5 +
6 +# CrowdStrike
7 +
8 +## What this integration is
9 +
10 +This integration ingests **CrowdStrike Falcon** events into your SOCFortress SIEM stack using the **Falcon SIEM Connector** (FalconHose).
11 +
12 +CrowdStrike events are forwarded to your SIEM (typically Graylog) over syslog, where they can be searched, routed, and used for alerting and investigations.
13 +
14 +Vendor references:
15 +- Integrate with your SIEM: https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem
16 +- Get access to Falcon APIs: https://www.crowdstrike.com/blog/tech-center/get-access-falcon-apis/
17 +
18 +---
19 +
20 +## Prerequisites
21 +
22 +- CrowdStrike Falcon console access
23 +- An API client created with scope that includes **read access for Event streams**
24 +
25 +Important:
26 +- If you are in **CrowdStrike Government cloud**, you must open a support ticket with CrowdStrike to enable the Falcon SIEM Connector.
27 +
28 +![CrowdStrike API Settings](/assets/images/crowdstrike/crowdstrike_api_settings.png)
29 +
30 +---
31 +
32 +## Configuration (Falcon SIEM Connector)
33 +
34 +Connector configuration is stored at:
35 +- `/opt/crowdstrike/etc/cs.falconhoseclient.cfg`
36 +
37 +CoPilot provisioning typically generates this for you, but for reference the key values that must be set include:
38 +- `api_url`
39 +- `client_id`
40 +- `client_secret`
41 +- `syslog_host` / `syslog_port`
42 +
43 +Example configuration:
44 +
45 +```ini
46 +[Settings]
47 +version = 3
48 +api_url = REPLACE_BASE_URL/sensors/entities/datafeed/v2
49 +request_token_url = REPLACE_BASE_URL/oauth2/token
50 +app_id = SIEM-Connector-v2.0.0
51 +
52 +enable_correlation_id = false
53 +format_floats_as_scientific = true
54 +
55 +# API Client ID
56 +client_id = REPLACE_CLIENT_ID
57 +# API Client Secret
58 +client_secret = REPLACE_CLIENT_SECRET
59 +
60 +# Amount of time (in seconds) we will wait for a connect to complete.
61 +connection_timeout = 10
62 +# Amount of time to wait (in seconds) for a server's response headers after fully writing the request.
63 +read_timeout = 30
64 +
65 +# Specify partition number 0 to n or 'all' (without quote) for all partitions
66 +partition = all
67 +
68 +http_proxy =
69 +
70 +# Output formats
71 +# Supported formats are
72 +# 1.syslog: will output syslog format with flat key=value pairs uses the mapping configuration below.
73 +; Use syslog format if CEF/LEEF output is required.
74 +# 2.json: will output raw json format received from FalconHose API (default)
75 +output_format = syslog
76 +
77 +# Will be true regardless if Syslog is not enabled
78 +# If path does not exist or user has no permission, log file will be used
79 +output_to_file = false
80 +output_path = /var/log/crowdstrike/falconhoseclient/output
81 +
82 +# Offset file full filepath and filename
83 +offset_path = /var/log/crowdstrike/falconhoseclient/stream_offsets
84 +
85 +[Output_File_Rotation]
86 +# If the output is writing to a file, then the settings below will govern output file rotation
87 +#
88 +# If true, then the rotation rules will apply. If not, the client will continue to write to the same file.
89 +rotate_file = true
90 +# Maximum individual output file size in MB
91 +max_size = 500
92 +# Number of backups of the output file to be stored
93 +max_backups = 10
94 +# Maximum age of backup output files before it is deleted in DAYS
95 +max_age = 30
96 +
97 +[Logging]
98 +verbose_log = true
99 +# Maximum individual log file size in MB
100 +max_size = 500
101 +# Number of backups to be stored
102 +max_backups = 10
103 +# Maximum age of backup files before it is deleted in DAYS
104 +max_age = 30
105 +
106 +[Syslog]
107 +send_to_syslog_server = true
108 +host = REPLACE_SYSLOG_HOST
109 +port = REPLACE_SYSLOG_PORT
110 +protocol = tcp
111 +```
112 +
113 +---
114 +
115 +## CoPilot provisioning
116 +
117 +Once you have saved the CrowdStrike configuration for the customer, you are ready to deploy the integration.
118 +
119 +In CoPilot, navigate to the **Customers** section and select the appropriate customer. Provisioning typically creates:
120 +- Graylog CEF input
121 +- Graylog stream
122 +- Graylog index
123 +- Grafana datasource
124 +- Grafana dashboards
125 +- CrowdStrike docker compose file
126 +
127 +---
128 +
129 +## Deployment (connector container)
130 +
131 +The CrowdStrike integration runs via a docker container.
132 +
133 +During provisioning, a customer directory is created:
134 +- `/opt/CoPilot/data/data/<CUSTOMER_NAME>`
135 +
136 +Inside you’ll typically find:
137 +- `<CUSTOMER_NAME>_docker-compose.yml`
138 +- `cs.falconhoseclient.cfg`
139 +
140 +Start the container:
141 +
142 +```bash
143 +docker compose -f /opt/CoPilot/data/data/<CUSTOMER_NAME>/<CUSTOMER_NAME>_docker-compose.yml up -d
144 +```
145 +
146 +You should now see the container running:
147 +
148 +![CrowdStrike Running Container](/assets/images/crowdstrike/docker_ps.PNG)
149 +
150 +---
151 +
152 +## Success criteria
153 +
154 +- [ ] CrowdStrike events are arriving in Graylog
155 +- [ ] Events are routed to the correct customer stream/index
156 +- [ ] Dashboards populate (after a short delay)
157 +
158 +---
159 +
160 +## Troubleshooting
161 +
162 +- No events:
163 + - verify Falcon SIEM Connector is enabled for your tenant (GovCloud note above)
164 + - confirm API client has event stream read scope
165 + - check connector container logs
166 +
167 +- Events arriving but not routed:
168 + - confirm Graylog input/stream/index created during provisioning
169 + - confirm syslog host/port match your Graylog input
docs/integrations/darktrace.mdx new
+62
@@ -0,0 +1,62 @@
1 +---
2 +title: Darktrace
3 +description: Ingest Darktrace alert logs (AI Analyst / Model Breach / System Status) into the SOCFortress SIEM stack.
4 +---
5 +
6 +# Darktrace
7 +
8 +## What this integration is
9 +
10 +This integration ingests **Darktrace** alert logs into your SOCFortress SIEM stack.
11 +
12 +Darktrace provides multiple event types that can be useful for SOC operations:
13 +- AI Analyst alerts
14 +- Model breach alerts
15 +- System status alerts
16 +
17 +---
18 +
19 +## Data path (how it flows)
20 +
21 +1) Darktrace → API pull (token-authenticated)
22 +2) CoPilot collector → SIEM ingestion
23 +3) Optional: alerting and case workflows
24 +
25 +---
26 +
27 +## Credentials you’ll need
28 +
29 +Darktrace requires an **API token pair** (Public + Private). You typically need one per Master instance.
30 +
31 +Ways to obtain tokens:
32 +
33 +### Per-user token
34 +1) Enable “API Access” for a local user (Threat Visualizer → Admin → Permissions)
35 +2) Log in as that user → Account Settings → generate API tokens
36 +
37 +### Global token
38 +1) Threat Visualizer → System Config → Settings → generate API tokens
39 +
40 +---
41 +
42 +## CoPilot setup (recommended workflow)
43 +
44 +1) Provision the customer.
45 +2) Add **Darktrace** integration under the customer.
46 +3) Provide the Darktrace API endpoint + token pair.
47 +4) Validate alerts begin flowing.
48 +
49 +---
50 +
51 +## Success criteria
52 +
53 +- [ ] AI Analyst / Model Breach alerts show up in the SIEM
54 +- [ ] Events are associated with the correct customer
55 +
56 +---
57 +
58 +## Troubleshooting
59 +
60 +- Confirm the user used for token creation has API access enabled.
61 +- Confirm tokens are stored correctly and haven’t been rotated.
62 +- Validate time range/polling schedule in the collector.
docs/integrations/defender-for-endpoint.mdx new
+92
@@ -0,0 +1,92 @@
1 +---
2 +title: Microsoft Defender for Endpoint
3 +description: Ingest Microsoft Defender for Endpoint alerts into the SOCFortress SIEM stack.
4 +---
5 +
6 +# Microsoft Defender for Endpoint
7 +
8 +## What this integration is
9 +
10 +This integration ingests **Microsoft Defender for Endpoint** alerts via the Defender for Endpoint API.
11 +
12 +Vendor reference:
13 +- Get alerts API: https://learn.microsoft.com/en-us/defender-endpoint/api/get-alerts
14 +
15 +---
16 +
17 +## Data path (how it flows)
18 +
19 +1) Microsoft Defender for Endpoint → API polling (OAuth2)
20 +2) Collector → syslog/ingest into Graylog (implementation-dependent)
21 +3) Graylog → stream/index/dashboards
22 +
23 +---
24 +
25 +## Prerequisites
26 +
27 +- Azure app registration for API access
28 +- API permissions granted:
29 + - `Alert.Read.All`
30 + - `Alert.ReadWrite.All`
31 +
32 +---
33 +
34 +## Credentials & config you’ll need
35 +
36 +- Tenant ID
37 +- Client ID
38 +- Client secret
39 +- Token URL: `https://login.microsoftonline.com/<TENANT_ID>/oauth2/token`
40 +- Syslog host/port (Graylog)
41 +
42 +Example (for context; CoPilot provisioning typically fills this):
43 +
44 +```yaml
45 +filebeat.modules:
46 +- module: microsoft
47 + defender_atp:
48 + enabled: true
49 + var.oauth2.client.id: "CLIENT_ID"
50 + var.oauth2.client.secret: "CLIENT_SECRET"
51 + var.oauth2.token_url: "https://login.microsoftonline.com/TENANT_ID/oauth2/token"
52 +
53 +output.logstash:
54 + hosts: ["REPLACE_SYSLOG_HOST:REPLACE_SYSLOG_PORT"]
55 +```
56 +
57 +---
58 +
59 +## CoPilot setup (recommended workflow)
60 +
61 +1) Provision the customer.
62 +2) Add **Defender for Endpoint** integration under the customer.
63 +3) Provide tenant/client credentials.
64 +4) Deploy/start the connector container generated during provisioning.
65 +
66 +Provisioning typically creates:
67 +- Graylog input + stream + index
68 +- Grafana datasource + dashboards
69 +- A customer-specific docker compose + Filebeat config
70 +
71 +---
72 +
73 +## Deployment notes (connector container)
74 +
75 +```bash
76 +docker compose -f /opt/CoPilot/data/data/<CUSTOMER_NAME>/<CUSTOMER_NAME>_docker-compose-defender-for-endpoint.yml up -d
77 +```
78 +
79 +---
80 +
81 +## Success criteria
82 +
83 +- [ ] Defender alerts are arriving
84 +- [ ] Events are routed to the correct customer index/stream
85 +
86 +---
87 +
88 +## Troubleshooting
89 +
90 +- Confirm the Azure app has the required permissions and admin consent.
91 +- Confirm tenant ID/client ID/secret match.
92 +- Check connector logs for OAuth failures.
docs/integrations/duo.mdx new
+65
@@ -0,0 +1,65 @@
1 +---
2 +title: Duo
3 +description: Ingest Duo authentication logs into the SOCFortress SIEM stack using the Duo Admin API.
4 +---
5 +
6 +# Duo
7 +
8 +## What this integration is
9 +
10 +This integration ingests **Duo authentication and admin logs** into your SOCFortress SIEM stack via the **Duo Admin API**.
11 +
12 +Vendor reference:
13 +- Duo Admin API overview: https://duo.com/docs/adminapi#overview
14 +
15 +---
16 +
17 +## What data you get (high level)
18 +
19 +- Authentication logs
20 +- Telephony logs
21 +- Administrator action logs
22 +
23 +---
24 +
25 +## Prerequisites
26 +
27 +- Duo Admin Panel access
28 +- **Owner** role (required to create/modify Admin API applications)
29 +
30 +---
31 +
32 +## Credentials you’ll need
33 +
34 +From the Duo Admin Panel “Admin API” application:
35 +- Integration key
36 +- Secret key
37 +- API hostname
38 +
39 +Permissions note:
40 +- Grant the Admin API application **read log** permissions at minimum.
41 +
42 +---
43 +
44 +## CoPilot setup (recommended workflow)
45 +
46 +1) Provision the customer.
47 +2) Add the **Duo** integration under the customer.
48 +3) Paste the integration key/secret key/API hostname.
49 +4) Validate logs appear in the SIEM.
50 +
51 +---
52 +
53 +## Security notes
54 +
55 +Treat the Duo secret key like a password:
56 +- store it in a secure secrets manager
57 +- rotate if exposure is suspected
58 +
59 +---
60 +
61 +## Troubleshooting
62 +
63 +- Confirm the Admin API application has the required permissions.
64 +- Confirm the API hostname is correct for your Duo tenant.
65 +- Check for clock drift on the collector (Duo auth is time-sensitive).
docs/integrations/huntress.mdx new
+51
@@ -0,0 +1,51 @@
1 +---
2 +title: Huntress
3 +description: Ingest Huntress telemetry and operationalize it inside CoPilot.
4 +---
5 +
6 +# Huntress
7 +
8 +## What this integration is
9 +
10 +Huntress provides managed detection/response-style telemetry that can complement endpoint and identity sources.
11 +
12 +## Data path (how it flows)
13 +
14 +**Typical flow:**
15 +
16 +1. Huntress → **External Service integration** (API collector or export)
17 +2. Events → **SIEM storage** (Wazuh Indexer / OpenSearch-backed)
18 +3. Optional: events → **Graylog** alert definitions
19 +4. Alerts → `gl-events*` → **CoPilot Incident Management → Alerts**
20 +5. Operator workflow → **Cases**
21 +
22 +## What data you get (high level)
23 +
24 +- Alerts/detections (depending on enabled exports)
25 +- Host/agent context (depending on integration design)
26 +
27 +## Setup (wireframe)
28 +
29 +- Configure Huntress under **External Services / 3rd Party Integrations**.
30 +- Ensure events are tenant-aware.
31 +
32 +## Success criteria
33 +
34 +- [ ] You can find at least one recent Huntress event/detection
35 +- [ ] It is associated with the expected customer
36 +
37 +## Dashboards
38 +
39 +- [ ] Confirm dashboards populate (after provisioning)
40 +
41 +## Alerts (starter set)
42 +
43 +- High-confidence Huntress detections promoted into SOC alerting
44 +- Repeated detections on the same host
45 +- New persistence indicators (if present in telemetry)
46 +
47 +## Troubleshooting
48 +
49 +- Verify external service status
50 +- Confirm export mechanism (API/webhook) and permissions
51 +- Confirm routing
docs/integrations/index.mdx new
+44
@@ -0,0 +1,44 @@
1 +---
2 +title: Integrations
3 +description: Source-by-source setup guides and expectations for what data, dashboards, and alerts you get in CoPilot.
4 +---
5 +
6 +# Integrations
7 +
8 +This section is a **catalog**.
9 +
10 +Pick a source, follow a short setup guide, then validate that:
11 +
12 +- logs are ingesting
13 +- dashboards populate (after provisioning)
14 +- alerting can be enabled (built-in or custom)
15 +
16 +If you’re brand new, start with the guided checklist: [Start here](/getting-started/start-here).
17 +
18 +---
19 +
20 +## The mental model
21 +
22 +Almost every integration follows this pattern:
23 +
24 +1. **Ingest** events (API integration or syslog)
25 +2. Store events in your SIEM datastore (Wazuh Indexer / OpenSearch-backed)
26 +3. (Often) build alerts in **Graylog** → alerts land in `gl-events*`
27 +4. CoPilot shows alerts in **Incident Management → Alerts** → operators open **Cases**
28 +
29 +---
30 +
31 +## First-wave integrations
32 +
33 +- [Wazuh (endpoints)](/integrations/wazuh)
34 +- [Office 365](/integrations/office-365)
35 +- [Mimecast](/integrations/mimecast)
36 +- [Huntress](/integrations/huntress)
37 +- [CrowdStrike](/integrations/crowdstrike)
38 +
39 +## Network connectors (syslog)
40 +
41 +- [Network connectors overview](/integrations/network-connectors)
42 +- Fortinet: [FortiGate](/integrations/network-connectors/fortigate)
43 +- Palo Alto Networks: [PAN-OS](/integrations/network-connectors/palo-alto)
44 +- Cisco: [ASA](/integrations/network-connectors/cisco-asa)
docs/integrations/mimecast.mdx new
+51
@@ -0,0 +1,51 @@
1 +---
2 +title: Mimecast
3 +description: Ingest Mimecast security events and turn them into dashboards and alerts in CoPilot.
4 +---
5 +
6 +# Mimecast
7 +
8 +## What this integration is
9 +
10 +Mimecast telemetry provides email security signals (policy actions, suspicious messages, detections) that are useful for SOC alerting and investigation.
11 +
12 +## Data path (how it flows)
13 +
14 +**Typical flow:**
15 +
16 +1. Mimecast → **External Service integration** (API collector)
17 +2. Events → **SIEM storage** (Wazuh Indexer / OpenSearch-backed)
18 +3. Optional: events → **Graylog** alert definitions
19 +4. Alerts → `gl-events*` → **CoPilot Incident Management → Alerts**
20 +5. Operator workflow → **Cases**
21 +
22 +## What data you get (high level)
23 +
24 +- Email security events
25 +- Policy actions / detections (depends on API endpoints enabled)
26 +
27 +## Setup (wireframe)
28 +
29 +- Configure Mimecast under **External Services / 3rd Party Integrations**.
30 +- Confirm events are tenant-aware.
31 +
32 +## Success criteria
33 +
34 +- [ ] You can locate at least one recent Mimecast event
35 +- [ ] Events map to the correct customer
36 +
37 +## Dashboards
38 +
39 +- [ ] After provisioning, confirm dashboards populate for this customer
40 +
41 +## Alerts (starter set)
42 +
43 +- Spike in blocked/quarantined messages
44 +- Repeated phishing detections for a user
45 +- High-risk sender domains or attachment types (if available)
46 +
47 +## Troubleshooting
48 +
49 +- Verify external service is connected/verified
50 +- Confirm API credentials/permissions
51 +- Confirm routing/tenant association
docs/integrations/network-connectors.mdx new
+49
@@ -0,0 +1,49 @@
1 +---
2 +title: Network connectors (syslog)
3 +description: Vendor-by-vendor syslog ingestion patterns and validation steps.
4 +---
5 +
6 +# Network connectors (syslog)
7 +
8 +Network connectors ingest **syslog events** from firewalls and network devices (and some syslog-forwarding services).
9 +
10 +## Data path (how it flows)
11 +
12 +**Typical flow:**
13 +
14 +1. Network device → **syslog sender** (UDP/TCP)
15 +2. Syslog collector/ingestion → **Graylog** (inputs/streams/pipelines)
16 +3. Routed/normalized events → **Wazuh Indexer / OpenSearch-backed storage** (tenant-aware)
17 +4. Graylog alert definitions → `gl-events*` → **CoPilot Incident Management → Alerts**
18 +5. Operator workflow → **Cases**
19 +
20 +> The key requirement in multi-tenant setups is **tenant-aware routing**.
21 +
22 +## Vendor/device guides
23 +
24 +- [Fortinet FortiGate](/integrations/network-connectors/fortigate)
25 +- [Palo Alto Networks](/integrations/network-connectors/palo-alto)
26 +- [Cisco ASA](/integrations/network-connectors/cisco-asa)
27 +
28 +## Success criteria
29 +
30 +- [ ] Syslog events are arriving
31 +- [ ] You can identify the device/source
32 +- [ ] Events are routed/tagged to the correct customer
33 +- [ ] You can build at least one alert on top of the data (optional)
34 +
35 +## Starter alerts (generic)
36 +
37 +These are useful across most firewall/device syslog sources:
38 +
39 +- Excessive denies/drops from a single source IP
40 +- Inbound connections to sensitive ports (RDP/SSH/VPN admin)
41 +- New admin login or configuration change event
42 +- Threat/UTM events (if your device emits them)
43 +
44 +## Troubleshooting
45 +
46 +- Validate the device is sending to the correct IP/port
47 +- Confirm the collector is listening and receiving
48 +- Confirm parsing/extraction fields exist (vendor format)
49 +- Confirm routing rules / customer association
docs/integrations/network-connectors/cisco-asa.mdx new
+38
@@ -0,0 +1,38 @@
1 +---
2 +title: Cisco ASA (syslog)
3 +---
4 +
5 +# Cisco ASA (syslog)
6 +
7 +## What you get (high level)
8 +
9 +- Firewall connection logs
10 +- ACL denies/permits
11 +- VPN-related logs (optional)
12 +
13 +## Data path (how it flows)
14 +
15 +ASA → syslog → ingestion/collector → Graylog parsing/routing → storage/indexing → alerts (`gl-events*`) → CoPilot Alerts/Cases.
16 +
17 +## Setup (wireframe)
18 +
19 +- Configure ASA logging + syslog destination.
20 +- Confirm downstream parsing and tenant-aware routing.
21 +
22 +## Success criteria
23 +
24 +- [ ] You can find fresh ASA events
25 +- [ ] You can identify the device/source
26 +- [ ] Events are routed to the correct customer
27 +
28 +## Starter alerts
29 +
30 +- Excessive denies/drops
31 +- VPN auth failures
32 +- Admin login/config change events
33 +
34 +## Troubleshooting
35 +
36 +- Confirm logging level
37 +- Confirm syslog host and interface
38 +- Confirm event volume is not overwhelming ingestion
docs/integrations/network-connectors/fortigate.mdx new
+38
@@ -0,0 +1,38 @@
1 +---
2 +title: Fortinet FortiGate (syslog)
3 +---
4 +
5 +# Fortinet FortiGate (syslog)
6 +
7 +## What you get (high level)
8 +
9 +- Firewall traffic logs
10 +- Threat/UTM logs (depending on FortiGate config)
11 +- Admin/audit events (optional)
12 +
13 +## Data path (how it flows)
14 +
15 +FortiGate → syslog → ingestion/collector → Graylog parsing/routing → storage/indexing → alerts (`gl-events*`) → CoPilot Alerts/Cases.
16 +
17 +## Setup (wireframe)
18 +
19 +- Configure FortiGate to send syslog to your collector.
20 +- Ensure parsing and tenant-aware routing are in place.
21 +
22 +## Success criteria
23 +
24 +- [ ] You can find fresh FortiGate events
25 +- [ ] You can identify the sending device
26 +- [ ] Events are tenant-aware
27 +
28 +## Starter alerts
29 +
30 +- Excessive denies from a single source
31 +- Inbound connections to sensitive services
32 +- Admin login/config change events
33 +
34 +## Troubleshooting
35 +
36 +- Confirm FortiGate syslog destination and facility/severity
37 +- Confirm the collector is reachable from the FortiGate
38 +- Confirm key parsing fields exist downstream
docs/integrations/network-connectors/fortinet.mdx new
+62
@@ -0,0 +1,62 @@
1 +---
2 +title: Fortinet FortiGate (syslog)
3 +description: Configure FortiGate to forward logs to your SIEM via syslog.
4 +---
5 +
6 +# Fortinet FortiGate (syslog)
7 +
8 +## What this connector is
9 +
10 +This connector covers how to configure a **Fortinet FortiGate** firewall to forward logs to your SIEM using **syslog**.
11 +
12 +---
13 +
14 +## Data path (how it flows)
15 +
16 +1) FortiGate → syslog (TCP/UDP)
17 +2) SIEM syslog input (typically Graylog)
18 +3) Stream/index routing + dashboards
19 +
20 +---
21 +
22 +## Configuration steps (FortiGate)
23 +
24 +### Step 1: Access the firewall
25 +
26 +- Open the FortiGate web UI (e.g., `https://192.168.1.99`)
27 +- Log in with administrative credentials
28 +
29 +### Step 2: Configure syslog forwarding
30 +
31 +In the FortiGate UI:
32 +
33 +- Go to **Log & Report**
34 +- Select **Log Settings**
35 +- Under **Syslog Servers**, click **Create New**
36 +
37 +Configure:
38 +- **Name:** recognizable name
39 +- **IP/Domain:** SIEM syslog server
40 +- **Reliable:** TCP (reliable) or UDP (faster)
41 +- **Port:** listening port (default 514)
42 +- **Facility:** e.g., Local7
43 +- **Source IP:** optional
44 +
45 +Note:
46 +- Syslog format is configured via FortiGate **CLI**. Set the format to **rfc5424**.
47 +
48 +### Step 3: Save
49 +
50 +Click **OK/Apply**.
51 +
52 +### Step 4: Verify reception
53 +
54 +Confirm logs appear on the SIEM syslog input.
55 +
56 +---
57 +
58 +## Additional considerations
59 +
60 +- Ensure firewall rules allow outbound syslog traffic to the SIEM.
61 +- If logs traverse the internet, use a secure transport (VPN/TLS collector pattern).
62 +- Keep NTP/time sync correct for reliable correlation.
docs/integrations/network-connectors/opnsense.mdx new
+38
@@ -0,0 +1,38 @@
1 +---
2 +title: OPNsense (syslog)
3 +description: Configure OPNsense to forward logs to your SIEM via remote syslog.
4 +---
5 +
6 +# OPNsense (syslog)
7 +
8 +## What this connector is
9 +
10 +This connector covers how to configure **OPNsense** to forward logs to an external syslog server.
11 +
12 +Vendor reference:
13 +- https://docs.opnsense.org/manual/settingsmenu.html#logging
14 +
15 +---
16 +
17 +## Configuration steps (OPNsense)
18 +
19 +1) Log into the OPNsense web interface
20 +2) Navigate to **System → Settings → Logging**
21 +3) Check **Enable Remote Logging**
22 +4) Enter the syslog server hostname/IP under **Remote log servers**
23 + - optionally set port (default 514) and protocol (UDP/TCP)
24 +5) Click **Save**
25 +
26 +---
27 +
28 +## Success criteria
29 +
30 +- [ ] Logs appear in your SIEM input
31 +- [ ] Source is attributed to the expected OPNsense device
32 +
33 +---
34 +
35 +## Notes
36 +
37 +- Ensure the network path is secure; consider VPN/TLS forwarding when logs traverse untrusted networks.
38 +- Ensure firewall rules allow outbound syslog traffic.
docs/integrations/network-connectors/palo-alto.mdx new
+38
@@ -0,0 +1,38 @@
1 +---
2 +title: Palo Alto Networks (syslog)
3 +---
4 +
5 +# Palo Alto Networks (syslog)
6 +
7 +## What you get (high level)
8 +
9 +- Traffic logs
10 +- Threat logs
11 +- System logs (optional)
12 +
13 +## Data path (how it flows)
14 +
15 +PAN-OS → syslog → ingestion/collector → Graylog parsing/routing → storage/indexing → alerts (`gl-events*`) → CoPilot Alerts/Cases.
16 +
17 +## Setup (wireframe)
18 +
19 +- Configure PAN-OS to export syslog.
20 +- Confirm parsing and tenant-aware routing.
21 +
22 +## Success criteria
23 +
24 +- [ ] You can find fresh PAN logs
25 +- [ ] You can identify source device
26 +- [ ] Events are tenant-aware
27 +
28 +## Starter alerts
29 +
30 +- Threat log severity thresholding (high/critical)
31 +- Repeated denies/drops from a single source
32 +- Admin login/config change events
33 +
34 +## Troubleshooting
35 +
36 +- Confirm syslog profile and server configuration
37 +- Confirm connectivity and UDP/TCP choice
38 +- Confirm parsing fields exist
docs/integrations/network-connectors/sentinelone.mdx new
+64
@@ -0,0 +1,64 @@
1 +---
2 +title: SentinelOne (syslog over TLS)
3 +description: Forward SentinelOne alerts/events to the SIEM using TLS (mutual auth).
4 +---
5 +
6 +# SentinelOne (syslog over TLS)
7 +
8 +## What this connector is
9 +
10 +This connector forwards **SentinelOne** alerts and events to your SIEM using **TLS-encrypted syslog** with **mutual authentication**.
11 +
12 +Detailed guide:
13 +- https://socfortress.supportbench.net/article/sentinelone-syslog-forwarder-to-siem-stack
14 +
15 +---
16 +
17 +## Architecture
18 +
19 +```
20 +SentinelOne Cloud → TLS (mutual auth) → SIEM Stack
21 +```
22 +
23 +---
24 +
25 +## Setup steps (high level)
26 +
27 +### 1) Configure Syslog integration in SentinelOne
28 +
29 +- Log into the SentinelOne console
30 +- Go to **Settings → Integrations**
31 +- Select **Syslog**
32 +
33 +Set:
34 +- **Host:** SIEM FQDN/IP
35 +- **Port:** typically 6514 for TLS
36 +- Enable **Use TLS secure connection**
37 +- Syslog format: **RFC-5424**
38 +
39 +### 2) Upload certificates (mutual TLS)
40 +
41 +You’ll typically upload:
42 +- Root CA certificate
43 +- Client certificate
44 +- Client private key
45 +
46 +### 3) Firewall rules
47 +
48 +Ensure inbound rules allow SentinelOne cloud endpoints to reach your syslog listener, and that internal routing allows traffic to Graylog.
49 +
50 +### 4) Select event types
51 +
52 +In the integration’s Notifications tab, select which event categories to forward.
53 +
54 +### 5) Test
55 +
56 +Use **Test Connection** and confirm events arrive in the SIEM.
57 +
58 +---
59 +
60 +## Troubleshooting
61 +
62 +- TLS handshake failures: validate PEM formats, chain, and expiry.
63 +- Missing events: confirm event types selected + verify ingestion parsing.
64 +- Connectivity: confirm firewall/NAT and correct port.
docs/integrations/network-connectors/sonicwall.mdx new
+65
@@ -0,0 +1,65 @@
1 +---
2 +title: SonicWall (syslog)
3 +description: Forward SonicWall firewall logs to the SIEM via direct syslog or syslog-ng with TLS.
4 +---
5 +
6 +# SonicWall (syslog)
7 +
8 +## What this connector is
9 +
10 +This connector covers two approaches for forwarding **SonicWall** logs to your SIEM:
11 +
12 +1) Direct syslog forwarding (UDP/TCP)
13 +2) Syslog-NG collector (local UDP) → TLS forwarding (recommended for production)
14 +
15 +Direct syslog guide:
16 +- https://socfortress.supportbench.net/ar-1084/
17 +
18 +---
19 +
20 +## Method 1: Direct syslog forwarding (UDP/TCP)
21 +
22 +1) Log into SonicWall web management UI
23 +2) Go to **Log → Settings → Syslog**
24 +3) Enable syslog
25 +4) Configure syslog server:
26 + - Host/IP
27 + - Port
28 + - Format (Syslog or CEF)
29 + - Optional Syslog ID
30 +5) Select log categories (attacks, drops, user activity, etc.)
31 +6) Apply/Accept
32 +
33 +Validate logs arrive in the SIEM.
34 +
35 +---
36 +
37 +## Method 2: Syslog-NG collector (recommended)
38 +
39 +### Architecture
40 +
41 +```
42 +SonicWall (UDP) → Syslog-NG Collector (local) → TLS → SIEM Stack
43 +```
44 +
45 +### Steps (high level)
46 +
47 +1) Deploy a local syslog-ng collector:
48 + - https://socfortress.supportbench.net/article/local-log-collector-using-syslog-ng
49 +
50 +2) Point SonicWall syslog destination to the **local collector IP**
51 +
52 +3) Configure syslog-ng to forward via **TLS** to the SIEM
53 +
54 +4) Verify end-to-end flow:
55 + - collector receiving
56 + - TLS connection established
57 + - SIEM receiving and parsing
58 +
59 +---
60 +
61 +## Notes
62 +
63 +- If logs traverse the internet, prefer TLS forwarding.
64 +- Keep NTP/time sync correct.
65 +- Monitor log volume.
docs/integrations/office-365.mdx new
+54
@@ -0,0 +1,54 @@
1 +---
2 +title: Office 365
3 +description: Ingest Microsoft 365 audit and sign-in telemetry, then visualize and alert on it in CoPilot.
4 +---
5 +
6 +# Office 365
7 +
8 +## What this integration is
9 +
10 +Office 365 (Microsoft 365) telemetry is typically **API-collected** audit/sign-in activity that becomes part of your tenant’s SIEM dataset.
11 +
12 +## Data path (how it flows)
13 +
14 +**Typical flow:**
15 +
16 +1. Microsoft 365 → **External Service integration** (API collector)
17 +2. Events → **SIEM storage** (Wazuh Indexer / OpenSearch-backed)
18 +3. Optional: events → **Graylog** alert definitions
19 +4. Alerts → `gl-events*` → **CoPilot Incident Management → Alerts**
20 +5. Operator workflow → **Cases**
21 +
22 +## What data you get (high level)
23 +
24 +- Audit activity (user/admin activity)
25 +- Authentication/sign-in related events (depending on collector scope)
26 +
27 +## Setup (wireframe)
28 +
29 +- Configure Office 365 under **External Services / 3rd Party Integrations**.
30 +- Ensure events are **tenant-aware** (associated with the correct customer).
31 +
32 +## Success criteria
33 +
34 +- [ ] You can locate at least one **recent** Office 365 event in CoPilot
35 +- [ ] The event is associated with the expected customer
36 +
37 +## Dashboards
38 +
39 +After provisioning, CoPilot can deploy templated dashboards for supported integrations.
40 +
41 +- [ ] Confirm relevant Grafana dashboards for this customer are **populated** (not empty panels)
42 +
43 +## Alerts (starter set)
44 +
45 +- Suspicious sign-ins (impossible travel / unfamiliar location, if available)
46 +- Admin role changes
47 +- Mailbox forwarding / inbox rule changes
48 +- OAuth consent / suspicious app registrations (if available)
49 +
50 +## Troubleshooting
51 +
52 +- Verify the external service/integration is connected and healthy
53 +- Confirm customer code / tenant routing assumptions
54 +- Validate the ingestion pipeline (collector → storage → CoPilot view)
docs/integrations/sap-siem.mdx new
+50
@@ -0,0 +1,50 @@
1 +---
2 +title: SAP SIEM (Customer Data Cloud)
3 +description: Collect SAP Customer Data Cloud audit events and forward them into the SOCFortress SIEM stack.
4 +---
5 +
6 +# SAP SIEM (Customer Data Cloud)
7 +
8 +## What this integration is
9 +
10 +This integration collects **audit events** from SAP Customer Data Cloud (Gigya) and forwards them into your SOCFortress SIEM stack.
11 +
12 +It may also support higher-level detections such as:
13 +- multiple logins detection
14 +- suspicious login detection
15 +
16 +Vendor reference:
17 +- SAP doc: https://help.sap.com/docs/SAP_CUSTOMER_DATA_CLOUD/8b8d6fffe113457094a17701f63e3d6a/4143815a70b21014bbc5a10ce4041860.html
18 +
19 +---
20 +
21 +## Credentials you’ll need
22 +
23 +- API Key
24 +- User Key
25 +- Secret Key
26 +- API Domain (site domain)
27 +
28 +---
29 +
30 +## CoPilot setup (recommended workflow)
31 +
32 +1) Provision the customer.
33 +2) Add the **SAP SIEM** integration under the customer.
34 +3) Provide the API key/user key/secret and domain.
35 +4) Validate events arrive and are searchable.
36 +
37 +---
38 +
39 +## Success criteria
40 +
41 +- [ ] Audit events appear for the expected tenant
42 +- [ ] Optional detections (if enabled) mark/analyze events as expected
43 +
44 +---
45 +
46 +## Troubleshooting
47 +
48 +- Confirm you are using the correct domain/region for your SAP tenant.
49 +- Confirm the secret is the one associated with the userKey.
50 +- Ensure HTTPS is used when required by the auth method.
docs/integrations/wazuh.mdx new
+55
@@ -0,0 +1,55 @@
1 +---
2 +title: Wazuh (endpoints)
3 +description: Endpoint log ingestion and security telemetry via Wazuh.
4 +---
5 +
6 +# Wazuh (endpoints)
7 +
8 +## What this integration is
9 +
10 +Wazuh is the primary endpoint telemetry source in many CoPilot deployments.
11 +
12 +It provides:
13 +- endpoint security events
14 +- agent inventory/health
15 +- vulnerability and SCA signals (when enabled)
16 +
17 +## Data path (how it flows)
18 +
19 +**Typical flow:**
20 +
21 +1. Endpoints → **Wazuh agent**
22 +2. Wazuh Manager → decoding/rules → events
23 +3. Events → **Wazuh Indexer / OpenSearch-backed storage**
24 +4. Optional: events → **Graylog** for search + alerting (environment-dependent)
25 +5. Alerts → `gl-events*` → **CoPilot Incident Management → Alerts**
26 +6. Operator workflow → **Cases**
27 +
28 +## Setup (wireframe)
29 +
30 +- Configure and verify the **Wazuh connector** in CoPilot.
31 +- Enroll at least one agent and ensure it’s tagged/routed to the correct customer context.
32 +
33 +## Success criteria
34 +
35 +- [ ] A test endpoint appears in CoPilot **Agents** and is online
36 +- [ ] You can find recent endpoint events
37 +- [ ] (Optional) You can tune detection rules and see changes reflected in alert volume
38 +
39 +## Dashboards
40 +
41 +After provisioning, default dashboards can be deployed per customer.
42 +
43 +- [ ] Confirm dashboards populate for the customer (endpoint/security views)
44 +
45 +## Alerts (starter set)
46 +
47 +- High-severity authentication events
48 +- Suspicious process/command execution signals (where applicable)
49 +- Privilege changes / new admin users
50 +
51 +## Troubleshooting
52 +
53 +- Confirm agent enrollment and connectivity to Wazuh Manager
54 +- Confirm indexing/storage health
55 +- Confirm tenant routing/customer association
docs/operator.mdx new
+23
@@ -0,0 +1,23 @@
1 +---
2 +title: Operator Guide
3 +description: Playbooks and workflows for SOC operators and analysts using CoPilot.
4 +---
5 +
6 +# Operator Guide
7 +
8 +This section is organized by **outcomes** (what you’re trying to do), not menu items.
9 +
10 +## Start here
11 +
12 +- [Operator quickstart](/user/operators-quickstart)
13 +- [First wins (30 minutes)](/getting-started/first-wins)
14 +
15 +## Daily workflow
16 +
17 +- [Triage alerts](/user/ui/incident-alerts)
18 +- [Work cases](/user/ui/incident-cases)
19 +- [Artifacts & evidence](/user/ui/artifacts)
20 +
21 +## Video walkthroughs
22 +
23 +- [Operator track videos](/user/videos#operator-track)
docs/power-features.mdx new
+34
@@ -0,0 +1,34 @@
1 +---
2 +title: Power features
3 +description: Add-on capabilities that extend CoPilot beyond the core ingest→detect→respond loop.
4 +---
5 +
6 +# Power features
7 +
8 +These features make CoPilot more powerful, but they’re not required for the initial SIEM bring-up.
9 +
10 +If you’re still onboarding, start with the guided checklist: [Start here](/getting-started/start-here).
11 +
12 +---
13 +
14 +## How to think about power features
15 +
16 +Power features usually fit into one of these buckets:
17 +
18 +- **Exposure management** (patch/vuln posture)
19 +- **Assessment** (cloud/web scanning outputs)
20 +- **Reporting** (shareable artifacts)
21 +- **Acceleration** (AI assistance)
22 +
23 +They typically have additional inputs (connectors, permissions, targets) and should be rolled out after your core ingest→alerting path is healthy.
24 +
25 +---
26 +
27 +## Included modules
28 +
29 +- [Microsoft Patch Tuesday](/power-features/patch-tuesday)
30 +- [Cloud security assessment (Scout Suite)](/power-features/cloud-security-assessment)
31 +- [Web vulnerability assessment (Nuclei)](/power-features/web-vulnerability-assessment)
32 +- [GitHub audit](/power-features/github-audit)
33 +- [AI analyst / AI-assisted investigation](/power-features/ai-analyst)
34 +- [Report creation](/power-features/report-creation)
docs/power-features/_template.mdx new
+41
@@ -0,0 +1,41 @@
1 +---
2 +title: Power feature template
3 +---
4 +
5 +# Feature name
6 +
7 +## What it is
8 +
9 +## Who this is for
10 +
11 +- Admin / Platform
12 +- Operator
13 +
14 +## Inputs (what it needs)
15 +
16 +- Required connectors/integrations
17 +- Required data sources
18 +
19 +## Outputs (what you get)
20 +
21 +- UI views
22 +- Reports/artifacts
23 +- Alerts (if applicable)
24 +
25 +## Where it lives in the UI
26 +
27 +- Menu path and/or route
28 +
29 +## Success criteria
30 +
31 +- [ ] The feature loads and returns data
32 +- [ ] You can complete one end-to-end action
33 +
34 +## Safety / guardrails
35 +
36 +- What this feature should and should not be used for
37 +- Any exposure cautions
38 +
39 +## Troubleshooting
40 +
41 +- Most common failure points
docs/power-features/ai-analyst.mdx new
+142
@@ -0,0 +1,142 @@
1 +---
2 +title: AI analyst / AI-assisted investigation
3 +description: AI-assisted workflows to speed up alert triage, investigation, and knowledge capture across your open-source SIEM stack.
4 +---
5 +
6 +# AI analyst / AI-assisted investigation
7 +
8 +CoPilot’s AI features are designed to reduce context switching and speed up common SOC workflows:
9 +- understand an alert faster ("what am I looking at?")
10 +- decide what to do next ("benign or investigate?")
11 +- generate drafts for repetitive engineering tasks (exclusions/tuning)
12 +- chat with your stack (Wazuh, Velociraptor, CoPilot) using natural language
13 +
14 +---
15 +
16 +## What it is
17 +
18 +In the videos, AI in CoPilot shows up in two main ways:
19 +
20 +### 1) AI analyst (alert-focused)
21 +
22 +AI analyst is embedded directly into CoPilot’s alert experience.
23 +
24 +Typical flow:
25 +1) Open an alert
26 +2) Select the impacted asset/hostname
27 +3) Use **AI analyst** to generate context and suggested next steps
28 +
29 +It can help:
30 +- summarize what triggered the detection
31 +- explain why the behavior can be suspicious
32 +- suggest what to validate next (triage steps)
33 +
34 +The same area can also support workflows like drafting **Wazuh exclusion rules** for noisy/expected behavior.
35 +
36 +### 2) AI chatbot / “chat with your stack” (tool-assisted)
37 +
38 +CoPilot can expose an AI chatbot that can interface with:
39 +- **Wazuh Manager**
40 +- **Wazuh Indexer (OpenSearch)**
41 +- **Velociraptor**
42 +- **CoPilot**
43 +
44 +This makes it possible to ask questions like:
45 +- “show me recent alerts for customer X”
46 +- “pull surrounding events for this index document”
47 +- “run a Velociraptor artifact on host Y”
48 +
49 +…and have CoPilot handle the underlying API/tool calls.
50 +
51 +The chatbot can also be extended with additional “tools” (as shown in the videos), such as:
52 +- threat intelligence lookups (IP/domain reputation)
53 +- cyber news summaries
54 +- internal knowledge base search/summarization
55 +- high-level attack surface/exposure checks
56 +
57 +---
58 +
59 +## Why this is a power feature
60 +
61 +AI assistance is most valuable after your core stack is stable:
62 +- alerts are flowing
63 +- assets/customers are properly scoped
64 +- investigation pivots work (index_id/index_name, artifacts, cases)
65 +
66 +Once that foundation is in place, AI can:
67 +- reduce time-to-understanding for analysts
68 +- standardize triage narratives
69 +- accelerate tuning (without living in XML/rules all day)
70 +
71 +---
72 +
73 +## Operator workflows (practical)
74 +
75 +### Triage an alert faster
76 +
77 +1) Open the alert and review key fields (command line, parent process, user, host)
78 +2) Run **AI analyst** to get:
79 + - a plain-English explanation of the detection
80 + - what makes it suspicious
81 + - recommended validation steps
82 +3) Decide:
83 + - escalate/investigate further, or
84 + - mark as expected (and consider tuning)
85 +
86 +### Draft a Wazuh exclusion rule (noise reduction)
87 +
88 +If an alert is expected/benign but noisy:
89 +1) collect the key discriminators (image, command line pattern, user, parent, host group)
90 +2) generate a draft exclusion rule
91 +3) review it like code (avoid over-broad exclusions)
92 +4) deploy + validate
93 +
94 +### Chat with your stack (investigation + response)
95 +
96 +Use the chatbot when you want to do “SOC glue work” quickly:
97 +- ask questions against recent alerts
98 +- pivot into index logs for context
99 +- run Velociraptor collections/artifacts without leaving CoPilot
100 +
101 +---
102 +
103 +## Setup checklist (high level)
104 +
105 +Exact steps depend on your CoPilot release, but the videos show a common pattern:
106 +
107 +1) **Update your CoPilot deployment**
108 + - pull the latest images
109 + - update `docker-compose.yml` with the new AI/MCP service (if required)
110 +
111 +2) **Configure AI provider access**
112 + - set your model provider API key(s) (example shown in the video: OpenAI)
113 +
114 +3) **Configure stack connectivity for tool-assisted chat**
115 + - Wazuh Indexer (OpenSearch) URL + credentials
116 + - Wazuh Manager connection details (if used)
117 + - Velociraptor connection details
118 +
119 +4) **Validate permissions + scoping**
120 + - ensure users can only summarize/ask questions over data they’re authorized to access (multi-tenant safety)
121 +
122 +---
123 +
124 +## Safety / guardrails
125 +
126 +- Don’t paste secrets into prompts.
127 +- Treat AI output as a draft: verify before acting.
128 +- Be careful with exclusion rules: tune precisely to avoid blinding detections.
129 +- Restrict access: AI can summarize sensitive customer data; enforce RBAC/tenant scoping.
130 +
131 +---
132 +
133 +## Video context
134 +
135 +- AI analyst (alert-context + exclusion-rule assistance):
136 + - https://www.youtube.com/watch?v=-2srPC-Dw-0
137 +
138 +- AI chatbot + MCP-style “chat with your stack” (Wazuh/Indexer/Velociraptor/CoPilot):
139 + - https://www.youtube.com/watch?v=FHjD9QBaLD4
140 +
141 +- Expanded AI companion features (threat intel, cyber news, knowledge base search, exposure view):
142 + - https://www.youtube.com/watch?v=QaLrmSgEcLI
docs/power-features/atomic-red-team.mdx new
+127
@@ -0,0 +1,127 @@
1 +---
2 +title: Atomic Red Team (detection simulation)
3 +description: Run Atomic Red Team simulations to verify telemetry flow and validate that Wazuh detection rules fire as expected.
4 +---
5 +
6 +# Atomic Red Team (detection simulation)
7 +
8 +Atomic Red Team is a detection validation workflow: you simulate known adversary behaviors (“atomic tests”) and confirm your stack detects what it should.
9 +
10 +In CoPilot, this is commonly used to:
11 +- validate that **telemetry is flowing** end-to-end
12 +- verify your **Wazuh detection rules** are triggering as expected
13 +- identify blind spots and tuning opportunities before a real attacker shows up
14 +
15 +![Atomic Red Team (placeholder)](../assets/ui/power-atomic-red-team-overview.png)
16 +
17 +---
18 +
19 +## What it is
20 +
21 +Atomic Red Team is a library of small, self-contained tests mapped to the **MITRE ATT&CK** framework.
22 +
23 +Regularly running these tests helps:
24 +- prevent detection drift
25 +- validate new rules and changes
26 +- confirm the “alerting pipeline” still works after upgrades
27 +
28 +---
29 +
30 +## Why this is a power feature
31 +
32 +Detection simulation isn’t required for initial SIEM bring-up, but it’s one of the best ways to build confidence in your detections.
33 +
34 +It’s especially valuable when:
35 +- you just deployed new Wazuh rules
36 +- you changed Sysmon collection or agent group configs
37 +- you’re onboarding a new customer and need to prove coverage
38 +
39 +---
40 +
41 +## How it works (high level)
42 +
43 +The workflow shown in the videos:
44 +
45 +1) Install Atomic Red Team on an endpoint (Windows or Linux)
46 +2) Use a **Velociraptor artifact** to run a chosen atomic test remotely
47 +3) Confirm events are collected and shipped (agent → manager/indexer → Graylog/CoPilot)
48 +4) Validate:
49 + - the expected alert fired
50 + - the alert arrived in the right place (SIEM views and/or Incident Management)
51 +
52 +---
53 +
54 +## Operator workflow (practical)
55 +
56 +1) Choose a technique/test you want to validate (start with something safe)
57 +2) Run it on a **dedicated test endpoint** (recommended)
58 +3) Watch for:
59 + - Wazuh alert firing
60 + - the event appearing in SIEM search
61 + - the alert being routed into Incident Management (if that’s part of your pipeline)
62 +4) If it didn’t fire:
63 + - validate telemetry collection (Sysmon/auditd)
64 + - validate rule logic and mapping
65 + - validate routing/streams/event definitions
66 +
67 +---
68 +
69 +## Setup checklist
70 +
71 +### 1) Use a safe test target
72 +
73 +- Prefer a **lab endpoint** (not production)
74 +- Document which tests you run and when
75 +
76 +### 2) Install Atomic Red Team
77 +
78 +The videos demonstrate installing Atomic Red Team so the test library exists locally on the endpoint.
79 +
80 +### 3) Import Velociraptor artifacts to run tests remotely
81 +
82 +A key improvement is using Velociraptor artifacts to run tests without manually SSH/RDP’ing into hosts.
83 +
84 +Canonical repo for the Atomic Red Team Velociraptor artifacts:
85 +- https://github.com/socfortress/VELOCIRAPTOR-ATOMIC-RED-ARTIFACTS
86 +
87 +The videos reference:
88 +- a Windows Atomic test execution artifact
89 +- a Linux attack simulation artifact
90 +
91 +Once imported into Velociraptor, CoPilot/Velociraptor can run tests in a repeatable way.
92 +
93 +### 4) Validate detection + routing
94 +
95 +Use CoPilot to confirm the end-to-end path:
96 +- detections trigger in Wazuh
97 +- events are searchable in your datastore
98 +- alerts show up where you expect (SIEM views vs Incident Management)
99 +
100 +---
101 +
102 +## Where to find it
103 +
104 +- UI: [Atomic Red Team (alerts view)](/user/ui/alerts-atomic-red-team)
105 +
106 +---
107 +
108 +## Gotchas
109 +
110 +- Don’t run aggressive tests on production systems.
111 +- Some tests can create artifacts (scheduled tasks, registry changes, etc.). Understand cleanup behavior before running.
112 +- A “failed” test is still useful: it often reveals missing telemetry, broken routing, or overly strict rule logic.
113 +
114 +---
115 +
116 +## Related repositories
117 +
118 +- Velociraptor Atomic Red artifacts:
119 + - https://github.com/socfortress/VELOCIRAPTOR-ATOMIC-RED-ARTIFACTS
120 +
121 +## Video context
122 +
123 +- Windows-focused validation workflow:
124 + - https://www.youtube.com/watch?v=TMJOBATTK9M
125 +
126 +- Linux-focused validation workflow:
127 + - https://www.youtube.com/watch?v=tL3oNEx_3M8
docs/power-features/cloud-security-assessment.mdx new
+121
@@ -0,0 +1,121 @@
1 +---
2 +title: Cloud security assessment (Scout Suite)
3 +description: Run Scout Suite scans inside CoPilot to generate cloud posture reports (AWS supported; Azure/GCP may be limited depending on release).
4 +---
5 +
6 +# Cloud security assessment (Scout Suite)
7 +
8 +CoPilot can run **Scout Suite** scans and surface the resulting report inside the UI.
9 +
10 +Scout Suite is an open-source cloud security assessment tool that scans a cloud account via provider APIs, identifies risky configurations, and generates a report with remediation guidance.
11 +
12 +---
13 +
14 +## Why this is a power feature
15 +
16 +Cloud posture assessment is not required for the initial SIEM bring-up, but it becomes valuable once your core pipeline is healthy.
17 +
18 +Use it for:
19 +- periodic cloud posture reviews (monthly/quarterly)
20 +- identifying misconfigurations and risky exposures
21 +- producing a shareable “here’s what to fix next” report for stakeholders
22 +
23 +---
24 +
25 +## How it works in CoPilot (high level)
26 +
27 +1) You create cloud credentials with read-only assessment permissions (provider-specific)
28 +2) In CoPilot, you create a new cloud assessment report
29 +3) CoPilot runs Scout Suite in the background
30 +4) When complete, the report is listed and can be opened/viewed in CoPilot
31 +
32 +---
33 +
34 +## Supported providers
35 +
36 +- **AWS**
37 +- **Azure**
38 +- **Google Cloud (GCP)**
39 +
40 +CoPilot can run Scout Suite scans for these providers as long as the appropriate credentials and API permissions are in place.
41 +
42 +---
43 +
44 +## Setup checklist (AWS / Azure / GCP)
45 +
46 +### 1) Create a dedicated Scout Suite cloud principal
47 +
48 +Create a dedicated identity for assessments:
49 +- **AWS:** IAM user/role
50 +- **Azure:** App registration / service principal
51 +- **GCP:** service account
52 +
53 +Guidance:
54 +- Use **least privilege**.
55 +- Prefer read-only where possible.
56 +
57 +Provider-specific credential setup (recommended):
58 +- AWS: https://github.com/nccgroup/ScoutSuite/wiki/Amazon-Web-Services
59 +- Azure: https://github.com/nccgroup/ScoutSuite/wiki/Azure
60 +- GCP: https://github.com/nccgroup/ScoutSuite/wiki/Google-Cloud-Platform
61 +
62 +### 2) Generate credentials
63 +
64 +Create the credentials required for the provider you’re scanning.
65 +
66 +Common patterns from the Scout Suite wiki:
67 +- **AWS:** standard AWS credential sources (profiles in `~/.aws/credentials`, environment variables, role assumption, or explicit access keys)
68 +- **Azure:** Azure CLI login, user-account browser login (MFA-friendly), or service principal (including file-based SDK auth)
69 +- **GCP:** application-default user credentials or a service account key JSON
70 +
71 +### 3) Run the scan in CoPilot
72 +
73 +In CoPilot:
74 +1) Open **Cloud security assessment**
75 +2) Select provider type (AWS / Azure / GCP)
76 +3) Set a report name
77 +4) Enter credentials
78 +5) Submit
79 +
80 +The scan runs in the background. Runtime depends on the size of the cloud environment.
81 +
82 +Operational tip (from the video):
83 +- You can tail CoPilot container logs to see when report generation completes.
84 +- Use Refresh in the UI; when done, the report appears in the list.
85 +
86 +---
87 +
88 +## Success criteria
89 +
90 +- [ ] You can create a report and the scan completes
91 +- [ ] The report shows in the UI after refresh
92 +- [ ] The report content is accessible to authorized users
93 +
94 +---
95 +
96 +## Safety / guardrails
97 +
98 +- Cloud posture reports can contain sensitive inventory details (accounts, resources, IAM relationships).
99 + - Restrict access (RBAC) appropriately.
100 +- Use dedicated credentials and rotate them.
101 +- Avoid storing long-lived keys if your environment supports roles/short-lived credentials.
102 +
103 +---
104 +
105 +## Troubleshooting
106 +
107 +- Report never appears:
108 + - confirm credentials are valid
109 + - confirm required API permissions exist
110 + - check CoPilot container logs for Scout Suite errors
111 +
112 +- Report takes a long time:
113 + - large environments can take longer to enumerate
114 + - rerun during a quieter window
115 +
116 +---
117 +
118 +## Video context
119 +
120 +Walkthrough + setup:
121 +- https://www.youtube.com/watch?v=G3MDJSMvnRo
docs/power-features/github-audit.mdx new
+40
@@ -0,0 +1,40 @@
1 +---
2 +title: GitHub audit
3 +description: Collect and review GitHub audit-related data inside CoPilot.
4 +---
5 +
6 +# GitHub audit
7 +
8 +## What it is
9 +
10 +CoPilot contains schema and capability to store GitHub audit-related data (wireframe).
11 +
12 +## Who this is for
13 +
14 +- **Admin / Platform**: org security posture and governance
15 +
16 +## Inputs (what it needs)
17 +
18 +- GitHub org access and permissions to collect audit/security signals (implementation-dependent)
19 +
20 +## Outputs (what you get)
21 +
22 +- Audit views / reports (to be documented)
23 +
24 +## Where it lives in the UI
25 +
26 +- (Wireframe) This page will be updated with the exact menu path/route.
27 +
28 +## Success criteria
29 +
30 +- [ ] GitHub audit data can be collected
31 +- [ ] Data can be displayed and searched
32 +
33 +## Safety / guardrails
34 +
35 +- Treat audit exports as sensitive (users, access patterns, security events).
36 +
37 +## Troubleshooting
38 +
39 +- Confirm GitHub permissions/token scopes
40 +- Confirm collection job is running and storing results
docs/power-features/index.mdx new
+36
@@ -0,0 +1,36 @@
1 +---
2 +title: Power features
3 +description: Add-on capabilities that extend CoPilot beyond the core ingest→detect→respond loop.
4 +---
5 +
6 +# Power features
7 +
8 +These features make CoPilot more powerful, but they’re not required for the initial SIEM bring-up.
9 +
10 +If you’re still onboarding, start with the guided checklist: [Start here](/getting-started/start-here).
11 +
12 +---
13 +
14 +## How to think about power features
15 +
16 +Power features usually fit into one of these buckets:
17 +
18 +- **Exposure management** (patch/vuln posture)
19 +- **Assessment** (cloud/web scanning outputs)
20 +- **Reporting** (shareable artifacts)
21 +- **Acceleration** (AI assistance)
22 +
23 +They typically have additional inputs (connectors, permissions, targets) and should be rolled out after your core ingest→alerting path is healthy.
24 +
25 +---
26 +
27 +## Included modules
28 +
29 +- [MITRE ATT&CK integration](/power-features/mitre-attack)
30 +- [Microsoft Patch Tuesday](/power-features/patch-tuesday)
31 +- [Cloud security assessment (Scout Suite)](/power-features/cloud-security-assessment)
32 +- [Web vulnerability assessment (Nuclei)](/power-features/web-vulnerability-assessment)
33 +- [GitHub audit](/power-features/github-audit)
34 +- [AI analyst / AI-assisted investigation](/power-features/ai-analyst)
35 +- [Atomic Red Team (detection simulation)](/power-features/atomic-red-team)
36 +- [Report creation](/power-features/report-creation)
docs/power-features/mitre-attack.mdx new
+107
@@ -0,0 +1,107 @@
1 +---
2 +title: MITRE ATT&CK integration
3 +description: Technique-centric investigation and coverage lens powered by MITRE technique enrichment in Wazuh rules.
4 +---
5 +
6 +# MITRE ATT&CK integration
7 +
8 +MITRE ATT&CK in CoPilot gives you a technique-centric lens across alerts/events. It’s useful for:
9 +- coverage conversations (“what do we detect?”)
10 +- investigation context (“what does this behavior usually mean?”)
11 +- mapping detections to a globally recognized adversary behavior framework
12 +
13 +![MITRE ATT&CK (placeholder)](../assets/ui/power-mitre-attack-overview.png)
14 +
15 +---
16 +
17 +## What it is
18 +
19 +MITRE ATT&CK is a widely used framework that maps adversary behavior from **initial access** through **execution, persistence, lateral movement, and exfiltration**.
20 +
21 +In CoPilot, the MITRE ATT&CK view is built from **MITRE technique IDs attached to Wazuh rules**.
22 +
23 +Key idea:
24 +- When a Wazuh rule fires and includes MITRE technique metadata, CoPilot can display that technique and group related events under it.
25 +
26 +---
27 +
28 +## Why this is a power feature
29 +
30 +Most SIEM alert views are “alert-first.” MITRE ATT&CK flips it to “behavior-first.”
31 +
32 +This helps:
33 +- leadership and customers understand coverage in a standardized language
34 +- analysts quickly interpret what a detection is *trying* to tell them
35 +- detection engineers spot gaps (tactics/techniques you never hit)
36 +
37 +---
38 +
39 +## How technique enrichment works (Wazuh)
40 +
41 +Wazuh’s rule syntax supports attaching MITRE technique IDs to a rule.
42 +
43 +That means:
44 +- default Wazuh rules can provide technique mappings
45 +- your custom rules can also include technique IDs
46 +- SOCFortress rules can include technique IDs as part of your tuned ruleset
47 +
48 +When those rules generate events, CoPilot can present them inside the MITRE ATT&CK experience.
49 +
50 +---
51 +
52 +## What you can do in the UI
53 +
54 +When you open a technique, CoPilot shows an overview page with:
55 +- description
56 +- references
57 +- direct link out to the MITRE technique page
58 +
59 +![Technique details (placeholder)](../assets/ui/power-mitre-attack-technique.png)
60 +
61 +You can then pivot through supporting tabs such as:
62 +- **Tactics** (the “why” / objectives)
63 +- **Mitigations** (recommended controls)
64 +- **Software** (tools/malware commonly associated)
65 +- **Alerts / events** mapped to that technique
66 +- **Atomic tests** (where available) to validate detections
67 +
68 +![Technique tabs (placeholder)](../assets/ui/power-mitre-attack-tabs.png)
69 +
70 +---
71 +
72 +## Operator workflow (practical)
73 +
74 +Use MITRE ATT&CK when you want a fast interpretation loop:
75 +
76 +1) Open **Alerts → MITRE ATT&CK**
77 +2) Pick a technique showing activity
78 +3) Review tactics/mitigations/software context
79 +4) Pivot into the linked alerts/events for the concrete evidence
80 +5) If you’re testing, run an Atomic test to validate end-to-end detection coverage
81 +
82 +---
83 +
84 +## Prerequisites
85 +
86 +- Wazuh detections are flowing into the stack
87 +- Your Wazuh rules include MITRE technique IDs (default rules + your custom rules)
88 +
89 +---
90 +
91 +## Gotchas
92 +
93 +- MITRE mapping quality depends on rule metadata. If a rule has no technique ID, it won’t show up here.
94 +- This view is best for context and coverage—not necessarily the primary incident queue.
95 +
96 +---
97 +
98 +## Where to find it
99 +
100 +- UI: [MITRE ATT&CK (alerts view)](/user/ui/alerts-mitre)
101 +
102 +---
103 +
104 +## Video context
105 +
106 +Walkthrough of the feature:
107 +- https://www.youtube.com/watch?v=wK4aA7QrXmE
docs/power-features/patch-tuesday.mdx new
+50
@@ -0,0 +1,50 @@
1 +---
2 +title: Microsoft Patch Tuesday
3 +description: Track and prioritize Microsoft monthly vulnerabilities inside CoPilot.
4 +---
5 +
6 +# Microsoft Patch Tuesday
7 +
8 +## What it is
9 +
10 +CoPilot includes a Patch Tuesday experience to help operators/admins track and prioritize Microsoft monthly vulnerabilities.
11 +
12 +## Who this is for
13 +
14 +- **Admin / Platform**: triage exposure and prioritize remediation
15 +- **Operator**: understand which CVEs matter during investigations
16 +
17 +## Inputs (what it needs)
18 +
19 +- Internet access for Patch Tuesday data fetch (implementation-dependent)
20 +- No endpoint agent changes required
21 +
22 +## Outputs (what you get)
23 +
24 +- Cycle summary (current/recent)
25 +- Search and prioritization helpers
26 +
27 +## Where it lives in the UI
28 +
29 +- **Agents → Patch Tuesday**
30 +- Route: `/patch-tuesday`
31 +
32 +Operator walkthrough (UI guide):
33 +- [Patch Tuesday (Microsoft)](/user/ui/agents-patch-tuesday)
34 +
35 +## Success criteria
36 +
37 +- [ ] Patch Tuesday data loads
38 +- [ ] You can open a cycle and view prioritized items
39 +- [ ] You can search for a CVE and get results
40 +
41 +## Safety / guardrails
42 +
43 +- Patch Tuesday prioritization is guidance. Always validate against your environment and asset exposure.
44 +
45 +## Troubleshooting
46 +
47 +- If data won’t load:
48 + - verify outbound connectivity (if required)
49 + - check connector/service health (if applicable)
50 + - retry with a different cycle (if UI supports it)
docs/power-features/report-creation.mdx new
+51
@@ -0,0 +1,51 @@
1 +---
2 +title: Report creation
3 +description: Generate and export reports (often Grafana dashboards) for customers.
4 +---
5 +
6 +# Report creation
7 +
8 +## What it is
9 +
10 +CoPilot supports report creation, commonly via Grafana dashboards and PDF generation.
11 +
12 +## Who this is for
13 +
14 +- **Admin / Platform**: scheduled or ad-hoc reporting for customers
15 +- **Operator**: case-related evidence packets and summaries (depending on workflow)
16 +
17 +## Inputs (what it needs)
18 +
19 +- Grafana connector configured (for dashboard-backed reports)
20 +- Customer provisioning completed (dashboards/org exist)
21 +
22 +## Outputs (what you get)
23 +
24 +- Report outputs (PDF/exports, depending on configuration)
25 +- Shareable artifacts for customers and internal documentation
26 +
27 +## Where it lives in the UI
28 +
29 +- (Wireframe) This page will be updated with the exact menu path/route.
30 +
31 +## Success criteria
32 +
33 +- [ ] You can generate a report for a customer
34 +- [ ] Output can be downloaded/shared
35 +
36 +## Safety / guardrails
37 +
38 +- Reports can contain sensitive event data. Apply RBAC and retention rules.
39 +
40 +## Troubleshooting
41 +
42 +- Confirm Grafana connectivity
43 +- Confirm dashboards exist for the customer
44 +- Confirm report storage/output paths and permissions
45 +
46 +## Related UI reference pages
47 +
48 +- [Report creation](/user/ui/report-creation)
49 +- [General reports](/user/ui/report-general)
50 +- [SCA reports](/user/ui/report-sca)
51 +- [Vulnerability reports](/user/ui/report-vulnerability)
docs/power-features/web-vulnerability-assessment.mdx new
+124
@@ -0,0 +1,124 @@
1 +---
2 +title: Web vulnerability assessment (Nuclei)
3 +description: Run Nuclei-based web vulnerability scans inside CoPilot and review findings with request/response detail.
4 +---
5 +
6 +# Web vulnerability assessment (Nuclei)
7 +
8 +CoPilot includes a web vulnerability scanning module powered by **Nuclei**.
9 +
10 +It’s designed to give operators/admins a fast way to validate web exposure and identify common web/app misconfigurations across owned/authorized targets.
11 +
12 +---
13 +
14 +## Why this is a power feature
15 +
16 +Web scanning is not required for initial SIEM bring-up, but it’s a high-leverage add-on for reducing attack surface.
17 +
18 +Use it for:
19 +- periodic external exposure reviews (what are we accidentally exposing?)
20 +- validating suspected vulnerabilities during an incident
21 +- confirming whether a customer-facing app has known weak configurations (TLS, headers, exposed endpoints)
22 +
23 +---
24 +
25 +## How it works in CoPilot (high level)
26 +
27 +1) You enable the CoPilot Nuclei module
28 +2) You submit a target host/domain (and any supported scan options)
29 +3) CoPilot runs Nuclei in the background
30 +4) Results are stored and displayed as a report
31 +5) You can drill into each finding for evidence and reproduction detail
32 +
33 +---
34 +
35 +## Setup checklist
36 +
37 +### 1) Enable the Nuclei module (Docker)
38 +
39 +In the video walkthrough, Nuclei is enabled by adding the **CoPilot Nuclei module container** to your CoPilot `docker-compose.yml`, then running a compose up.
40 +
41 +Success check:
42 +- the Nuclei module container is running
43 +- the **Web vulnerability assessment** entry becomes available in the UI
44 +
45 +### 2) Confirm scanner reachability
46 +
47 +The scanner runtime must be able to reach your targets.
48 +
49 +Confirm:
50 +- DNS resolution works from the scanner runtime
51 +- egress is allowed to the target(s)
52 +- you’re scoping to assets you own/have permission to scan
53 +
54 +---
55 +
56 +## Running a scan
57 +
58 +Typical workflow (from the video):
59 +
60 +1) Open **Web vulnerability assessment**
61 +2) Select **Create new report** (if applicable)
62 +3) Enter a target host/domain
63 + - you usually don’t need to include `http://` or `https://` if the UI accepts a host
64 +4) Submit
65 +5) Wait for completion, then **refresh** the page
66 +
67 +---
68 +
69 +## Understanding results
70 +
71 +Once results are available, you can typically:
72 +- see a list of findings (grouped by type)
73 +- open a finding to review details
74 +
75 +Per-finding detail often includes:
76 +- description of what was detected
77 +- affected URL
78 +- the HTTP request/response evidence
79 +- the **curl command** Nuclei used (useful for reproduction and follow-up testing)
80 +
81 +This makes it easy to:
82 +- validate the finding
83 +- hand evidence to an app owner
84 +- reproduce safely in a test environment
85 +
86 +---
87 +
88 +## Practical operator usage
89 +
90 +A good operator loop:
91 +
92 +1) Run a scan against a specific application
93 +2) Identify quick wins (weak TLS/ciphers, exposed Swagger/OpenAPI, debug endpoints)
94 +3) Create remediation tasks and validate closure by rescanning
95 +
96 +---
97 +
98 +## Safety / guardrails
99 +
100 +- Only scan assets you **own** or have **explicit permission** to test.
101 +- Scanning can trigger WAF blocks, rate limits, or availability impact.
102 + - start with a single target
103 + - schedule scans during a quiet window
104 + - avoid aggressive configurations by default
105 +
106 +---
107 +
108 +## Troubleshooting
109 +
110 +- No results / scan never completes:
111 + - confirm the Nuclei module container is running
112 + - confirm the scanner can reach the target host
113 + - check CoPilot/Nuclei module logs
114 +
115 +- False positives:
116 + - use the request/response + curl output to validate
117 + - tune templates/scan scope as needed
118 +
119 +---
120 +
121 +## Video context
122 +
123 +Enablement + walkthrough:
124 +- https://www.youtube.com/watch?v=-SVHKuQUxlI
docs/reference.mdx new
+22
@@ -0,0 +1,22 @@
1 +---
2 +title: Reference
3 +description: Deep links, mental models, and troubleshooting for CoPilot.
4 +---
5 +
6 +# Reference
7 +
8 +Use this section when you need:
9 +
10 +- menu-mirroring UI reference
11 +- deep links / navigation tips
12 +- a symptom-based troubleshooting index
13 +
14 +If you’re onboarding, start here instead: [Start here](/getting-started/start-here).
15 +
16 +---
17 +
18 +## Key reference pages
19 +
20 +- [UI navigation guide](/user/navigation)
21 +- [UI reference overview](/user/ui/overview)
22 +- [Troubleshooting index](/reference/troubleshooting)
docs/reference/index.mdx new
+22
@@ -0,0 +1,22 @@
1 +---
2 +title: Reference
3 +description: Deep links, mental models, and troubleshooting for CoPilot.
4 +---
5 +
6 +# Reference
7 +
8 +Use this section when you need:
9 +
10 +- menu-mirroring UI reference
11 +- deep links / navigation tips
12 +- a symptom-based troubleshooting index
13 +
14 +If you’re onboarding, start here instead: [Start here](/getting-started/start-here).
15 +
16 +---
17 +
18 +## Key reference pages
19 +
20 +- [UI navigation guide](/user/navigation)
21 +- [UI reference overview](/user/ui/overview)
22 +- [Troubleshooting index](/reference/troubleshooting)
docs/reference/troubleshooting.mdx new
+117
@@ -0,0 +1,117 @@
1 +---
2 +title: Troubleshooting index
3 +description: Symptom → likely causes → what to check (CoPilot + SIEM stack).
4 +---
5 +
6 +# Troubleshooting index
7 +
8 +This page is a **symptom-based index**. Find what you’re seeing, then follow the checks.
9 +
10 +> Wireframe note: this is intentionally high-level. As we fill docs, each item will link to deeper pages with exact UI clicks and screenshots.
11 +
12 +---
13 +
14 +## Ingestion
15 +
16 +### No endpoint logs (Wazuh)
17 +
18 +Likely causes:
19 +- Wazuh connector not verified
20 +- agent not enrolled / offline
21 +- indexing/storage issue
22 +- tenant/customer association missing
23 +
24 +What to check:
25 +- CoPilot: Connectors → Wazuh status
26 +- CoPilot: Agents shows host online
27 +- Wazuh: agent status + manager logs
28 +- Indexer/OpenSearch: index health
29 +
30 +### No syslog / network logs
31 +
32 +Likely causes:
33 +- device not sending syslog
34 +- collector not listening / firewall/ACL
35 +- parsing pipeline not extracting fields
36 +- routing/tenant association missing
37 +
38 +What to check:
39 +- device syslog destination IP/port
40 +- collector receive logs
41 +- Graylog input/stream/pipeline
42 +
43 +### No third-party integration events (O365/Mimecast/etc.)
44 +
45 +Likely causes:
46 +- API credentials/scopes wrong
47 +- export/collector not running
48 +- routing/tenant association missing
49 +
50 +What to check:
51 +- CoPilot: External Services / Integration status
52 +- credential permissions
53 +- ingestion job logs (if applicable)
54 +
55 +---
56 +
57 +## Visualization
58 +
59 +### Grafana dashboards are empty
60 +
61 +Likely causes:
62 +- Grafana connector not verified
63 +- provisioning not completed
64 +- index pattern/data source misconfigured
65 +- data is not flowing yet
66 +
67 +What to check:
68 +- CoPilot: connector status
69 +- customer provisioning status
70 +- Grafana: data source points at correct indices
71 +
72 +---
73 +
74 +## Alerting
75 +
76 +### Graylog alerts not showing in CoPilot
77 +
78 +Likely causes:
79 +- Graylog connector not verified
80 +- event definitions not firing
81 +- `gl-events*` not being written
82 +- CoPilot not querying the correct index/pattern
83 +
84 +What to check:
85 +- CoPilot: Graylog connector status
86 +- Graylog: event definitions + streams
87 +- Indexer: `gl-events*` exists and has recent docs
88 +
89 +---
90 +
91 +## Incident workflow
92 +
93 +### Can’t create cases / case workflow feels broken
94 +
95 +Likely causes:
96 +- permissions/RBAC
97 +- missing required configuration
98 +
99 +What to check:
100 +- user permissions/roles
101 +- customer/tenant context
102 +
103 +---
104 +
105 +## Response
106 +
107 +### Velociraptor actions not working
108 +
109 +Likely causes:
110 +- Velociraptor connector not verified
111 +- agent not enrolled in Velociraptor org
112 +- permissions missing
113 +
114 +What to check:
115 +- CoPilot: Velociraptor connector status
116 +- Velociraptor: client visibility
117 +- CoPilot: agent metadata has velociraptor identifiers
docs/user/capsules/c2-alert-to-containment.mdx new
+31
@@ -0,0 +1,31 @@
1 +---
2 +title: "Step-by-Step IR: From C2 Alert to Full Containment"
3 +description: Containment-first playbook for C2 beaconing alerts.
4 +---
5 +
6 +# Step-by-Step IR: From C2 Alert to Full Containment
7 +
8 +**Video:** https://www.youtube.com/watch?v=PUQ3H913xGs
9 +
10 +## Goal
11 +Contain the host quickly, preserve evidence, then work the investigation to full containment.
12 +
13 +## When to use
14 +- Alerts indicating command-and-control (C2) / beaconing
15 +
16 +## Prereqs
17 +- Alert routing into CoPilot is working
18 +- Ability to isolate/quarantine endpoints (if enabled)
19 +
20 +## Procedure (high level)
21 +1) Confirm scope (customer, host, user)
22 +2) Contain first (isolate/quarantine where appropriate)
23 +3) Pivot into surrounding events + endpoint evidence
24 +4) Create/attach a case and document actions
25 +
26 +## Validation
27 +- Host is contained
28 +- Evidence captured and case notes updated
29 +
30 +## Safety notes
31 +- Prefer containment that preserves volatile evidence when possible.
docs/user/capsules/endpoint-response-actions-copilot.mdx new
+28
@@ -0,0 +1,28 @@
1 +---
2 +title: "Endpoint Response Actions with CoPilot"
3 +description: Execute repeatable endpoint response actions and confirm results.
4 +---
5 +
6 +# Endpoint Response Actions with CoPilot
7 +
8 +**Video:** https://www.youtube.com/watch?v=SJjR-2ATRug
9 +
10 +## Goal
11 +Run endpoint response actions (collection/containment) from CoPilot and verify outcomes.
12 +
13 +## When to use
14 +- During active incident response
15 +- For repeatable evidence collection workflows
16 +
17 +## Prereqs
18 +- Response/action capability is configured and tested
19 +
20 +## Procedure (high level)
21 +1) Select the action
22 +2) Target the correct endpoint
23 +3) Execute and monitor completion
24 +4) Review results and document in a case
25 +
26 +## Validation
27 +- Action completed successfully
28 +- Evidence/results captured and accessible
docs/user/capsules/index.mdx new
+61
@@ -0,0 +1,61 @@
1 +---
2 +title: SOCFortress Capsules
3 +description: Operator playbooks that walk you from alert → investigation → response using CoPilot.
4 +---
5 +
6 +# SOCFortress Capsules
7 +
8 +Capsules are short, task-focused operator playbooks based on SOCFortress video walkthroughs.
9 +
10 +Use them when you want a **step-by-step path** from an alert to investigation and response inside CoPilot.
11 +
12 +---
13 +
14 +## Quick start: pick a goal
15 +
16 +- **Contain a host from a C2 alert** → [C2 alert to containment](/user/capsules/c2-alert-to-containment)
17 +- **Investigate suspicious persistence** → [Suspicious scheduled tasks](/user/capsules/suspicious-scheduled-tasks)
18 +- **Remove unauthorized privilege** → [Rogue local admin accounts](/user/capsules/rogue-local-admin-accounts)
19 +- **Validate a detection** → [Atomic Red Team validation](/user/capsules/validate-detections-atomic-red-team)
20 +- **Run response actions** → [Endpoint response actions](/user/capsules/endpoint-response-actions-copilot)
21 +- **Memory forensics / malware hunting** → [Volatility 3 malware hunting](/user/capsules/volatility-3-malware-hunting)
22 +
23 +---
24 +
25 +## Capsules by category
26 +
27 +<details>
28 + <summary><strong>Incident Response Playbooks</strong></summary>
29 +
30 +- [Step-by-Step IR: From C2 Alert to Full Containment](/user/capsules/c2-alert-to-containment)
31 +- [SOC Playbook: Detecting and Removing Suspicious Scheduled Tasks](/user/capsules/suspicious-scheduled-tasks)
32 +- [Detecting & Removing Rogue Local Admin Accounts](/user/capsules/rogue-local-admin-accounts)
33 +
34 +</details>
35 +
36 +<details>
37 + <summary><strong>CoPilot How-Tos</strong></summary>
38 +
39 +- [Endpoint Response Actions with CoPilot](/user/capsules/endpoint-response-actions-copilot)
40 +- [Validate Detections with Atomic Red Team (CoPilot)](/user/capsules/validate-detections-atomic-red-team)
41 +
42 +</details>
43 +
44 +<details>
45 + <summary><strong>Forensics</strong></summary>
46 +
47 +- [Volatility 3 Malware Hunting (Full Tutorial)](/user/capsules/volatility-3-malware-hunting)
48 +
49 +</details>
50 +
51 +---
52 +
53 +## What each capsule includes
54 +
55 +- What you’re trying to accomplish
56 +- When to use it (what kind of alert/context)
57 +- Prerequisites (data sources + access)
58 +- Step-by-step procedure
59 +- Validation (“what good looks like”)
60 +- Safety notes (containment vs evidence preservation)
61 +- Video link
docs/user/capsules/rogue-local-admin-accounts.mdx new
+27
@@ -0,0 +1,27 @@
1 +---
2 +title: "Detecting & Removing Rogue Local Admin Accounts"
3 +description: Validate and remediate unauthorized local admin changes.
4 +---
5 +
6 +# Detecting & Removing Rogue Local Admin Accounts
7 +
8 +**Video:** https://www.youtube.com/watch?v=ogJMUFMOXLY
9 +
10 +## Goal
11 +Validate a local admin change is unauthorized and remove rogue admin access.
12 +
13 +## When to use
14 +- Alerts indicating local account creation or group membership changes
15 +
16 +## Prereqs
17 +- Endpoint telemetry + identity context
18 +
19 +## Procedure (high level)
20 +1) Validate who/what created the account or modified the group
21 +2) Confirm whether change is approved
22 +3) Remove unauthorized accounts / admin group entries
23 +4) Capture evidence and update the case
24 +
25 +## Validation
26 +- Rogue admin access removed
27 +- No recurrence after monitoring window
docs/user/capsules/suspicious-scheduled-tasks.mdx new
+27
@@ -0,0 +1,27 @@
1 +---
2 +title: "SOC Playbook: Detecting and Removing Suspicious Scheduled Tasks"
3 +description: Investigate scheduled task persistence alerts and remove malicious tasks.
4 +---
5 +
6 +# SOC Playbook: Detecting and Removing Suspicious Scheduled Tasks
7 +
8 +**Video:** https://www.youtube.com/watch?v=5xHxhSBROEc
9 +
10 +## Goal
11 +Identify suspicious scheduled tasks used for persistence and remove them safely.
12 +
13 +## When to use
14 +- Alerts indicating scheduled task creation/modification
15 +
16 +## Prereqs
17 +- Endpoint telemetry (Windows) + investigation pivots
18 +
19 +## Procedure (high level)
20 +1) Triage the alert and identify the host/user/process context
21 +2) Enumerate scheduled tasks on the endpoint
22 +3) Identify suspicious task(s) and associated binaries/commands
23 +4) Contain/remediate and document
24 +
25 +## Validation
26 +- Suspicious task removed/disabled
27 +- Follow-on telemetry confirms no re-creation
docs/user/capsules/validate-detections-atomic-red-team.mdx new
+31
@@ -0,0 +1,31 @@
1 +---
2 +title: "Validate Detections with Atomic Red Team (CoPilot)"
3 +description: Run controlled simulations to confirm detection rules fire as expected.
4 +---
5 +
6 +# Validate Detections with Atomic Red Team (CoPilot)
7 +
8 +**Video:** https://www.youtube.com/watch?v=HXnT-wnpxuQ
9 +
10 +## Goal
11 +Simulate attacker behaviors and verify detections + routing end-to-end.
12 +
13 +## When to use
14 +- After deploying/tuning detection rules
15 +- After telemetry changes (Sysmon, agent configs)
16 +
17 +## Prereqs
18 +- Atomic Red Team available on a test endpoint
19 +- Velociraptor artifacts to execute tests remotely
20 +
21 +Related:
22 +- [Atomic Red Team (detection simulation)](/power-features/atomic-red-team)
23 +
24 +## Procedure (high level)
25 +1) Pick a safe atomic test
26 +2) Execute it via CoPilot/Velociraptor
27 +3) Confirm the expected alert fires
28 +4) Tune rules/telemetry if needed
29 +
30 +## Validation
31 +- Alert fires and is visible in the expected UI surface(s)
docs/user/capsules/volatility-3-malware-hunting.mdx new
+28
@@ -0,0 +1,28 @@
1 +---
2 +title: "Volatility 3 Malware Hunting (Full Tutorial)"
3 +description: Memory-forensics workflow for malware hunting using Volatility 3.
4 +---
5 +
6 +# Volatility 3 Malware Hunting (Full Tutorial)
7 +
8 +**Video:** https://www.youtube.com/watch?v=R1X8V9yy_Y4
9 +
10 +## Goal
11 +Use Volatility 3 to hunt malware and suspicious activity in memory dumps.
12 +
13 +## When to use
14 +- When you have a memory capture from a suspicious host
15 +- When you need deeper insight than disk/EDR telemetry provides
16 +
17 +## Prereqs
18 +- Memory dump acquired and stored securely
19 +- Volatility 3 available in your analysis environment
20 +
21 +## Procedure (high level)
22 +1) Identify profile/context and validate the dump
23 +2) Enumerate processes and suspicious artifacts
24 +3) Pivot into network, modules, command lines, and persistence indicators
25 +4) Document findings and feed back into detections
26 +
27 +## Validation
28 +- Findings are reproducible and mapped to concrete evidence
docs/user/customer-provisioning.md
+31
@@ -12,6 +12,7 @@ Provisioning is designed to create the *plumbing* that makes customer data land
12 muted
13 playsInline
14 preload="auto"
15 + poster="/assets/hero/customer-provisioning-walkthrough-thumb.jpg"
16 style={{
17 width: '100%',
18 borderRadius: 16,
@@ -40,6 +41,36 @@ This same customer context is also where you configure:
41
42 These are set up **per customer** so that ingestion, routing, and alerting stay tenant-aware.
43
44 +### Also: Shuffle (SOAR) for tickets + notifications
45 +
46 +CoPilot can plug into **Shuffle** (SOAR) so SIEM stack alerts can be forwarded to third‑party tools such as:
47 +
48 +- Jira
49 +- email notifications
50 +- ConnectWise
51 +- other ticketing systems / custom webhooks
52 +
53 +This allows you to take an alert created by the stack and automatically:
54 +- create a ticket
55 +- enrich it with alert context
56 +- route it to the right destination per customer
57 +
58 +#### Per-customer workflows (recommended)
59 +
60 +In many environments, different customers want different routing (different Jira projects, different email recipients, different ticketing systems).
61 +
62 +CoPilot + Shuffle supports this pattern by letting you map alerts to **different Shuffle workflow IDs per customer**.
63 +
64 +Practical example:
65 +- Customer A → Jira Project `SOC`
66 +- Customer B → ConnectWise tickets
67 +- Customer C → email-only notifications
68 +
69 +> Tip: The alert context sent to Shuffle is driven by what you map in **Incident Sources** (title/asset/context fields).
70 +
71 +Video context:
72 +- https://www.youtube.com/watch?v=Ko5jLfkSCrk
73 +
74 ### 1) Dedicated customer index + routing (Graylog → Wazuh Indexer)
75
76 - A **customer-specific index** (for example: `wazuh-<customer_code>`) with your chosen:
docs/user/ui/agents-copilot-actions.md
+176 -3
@@ -1,9 +1,182 @@
1 -# CoPilot Actions
1 +---
2 +title: CoPilot actions
3 +description: Run repeatable response actions across endpoints using CoPilot + Velociraptor, and visualize results in Grafana.
4 +---
5 +
6 +# CoPilot actions
7
8 **Menu:** Agents → CoPilot Actions
9
5 -**Best for:** Admin/Engineer + Response engineering
10 +CoPilot Actions provides a more flexible way to launch endpoint actions (response + collection) across your infrastructure.
11
7 -Configure or manage endpoint actions / response capabilities.
12 +At a high level it combines:
13 +- **CoPilot** (operator UI)
14 +- **Velociraptor** (executes artifacts to run the action)
15 +- **Custom scripts** (the action logic)
16 +- **Grafana** (dashboards to visualize action results)
17
18 ![CoPilot Actions](../../assets/ui/agents-copilot-actions.png)
19 +
20 +Repo (required for setup assets + implementation details):
21 +- https://github.com/socfortress/CoPilot-Action
22 +
23 +---
24 +
25 +## Why this exists (vs “traditional Wazuh Active Response”)
26 +
27 +Wazuh Active Response is powerful, but at scale it can become cumbersome to:
28 +- deploy scripts to endpoints
29 +- keep action logic consistent across OSes
30 +- manage parameters and rollouts cleanly
31 +
32 +CoPilot Actions is designed to make automated responses **simpler to run and easier to operationalize**.
33 +
34 +---
35 +
36 +## How it works
37 +
38 +Conceptually:
39 +
40 +1) You choose an action in CoPilot
41 +2) CoPilot invokes a **Velociraptor artifact** (Windows or Linux)
42 +3) The artifact downloads/executes the **action script** for the selected action
43 +4) Results are written to logs and ingested into the stack
44 +5) Grafana dashboards let you explore outcomes over time
45 +
46 +CoPilot’s own UI also shows:
47 +- supported OS/technology
48 +- action metadata + description
49 +- a link to the underlying source code repo for the action
50 +
51 +![Action details (placeholder)](../../assets/ui/agents-copilot-actions-action-details.png)
52 +
53 +---
54 +
55 +## Prerequisites
56 +
57 +- CoPilot is deployed and you can access **Agents → CoPilot Actions**.
58 +- Velociraptor server + clients are deployed (the CoPilot-Action repo recommends Velociraptor **0.74.1+**).
59 +- CoPilot can authenticate to Velociraptor (Connector configured).
60 +
61 +---
62 +
63 +## Setup checklist (recommended)
64 +
65 +This is the practical “get it working end-to-end” checklist.
66 +
67 +### 1) Import the required Velociraptor artifacts
68 +
69 +From the repo:
70 +- `velociraptor/Linux.Execute.RemoteBashScript.yaml`
71 +- `velociraptor/Windows.Execute.RemotePowerShellScript.yaml`
72 +
73 +Import them into Velociraptor (UI):
74 +- **View Artifacts → Upload Artifacts**
75 +
76 +Why: these artifacts are the execution layer that downloads and runs action scripts consistently.
77 +
78 +### 2) Confirm the CoPilot ↔ Velociraptor connector
79 +
80 +In CoPilot, configure and test the Velociraptor connector:
81 +- **Connectors → Velociraptor**
82 +
83 +Why: CoPilot needs API access to launch the artifact executions.
84 +
85 +### 3) Ensure endpoints can download action scripts
86 +
87 +CoPilot Actions commonly downloads scripts from public GitHub repos.
88 +
89 +Verify:
90 +- endpoints have egress to `raw.githubusercontent.com` (or wherever your scripts live)
91 +- DNS + TLS inspection/proxy rules won’t block downloads
92 +
93 +### 4) (Windows) Verify PowerShell can run scripts
94 +
95 +If a Windows action relies on PowerShell, validate the execution policy and permissions on target endpoints.
96 +
97 +(Example from the repo docs: `RemoteSigned` at `LocalMachine` scope.)
98 +
99 +### 5) Create SIEM routing for action output (Graylog)
100 +
101 +Recommended pattern:
102 +- Create a dedicated **Graylog index set** (e.g., `copilot_action`)
103 +- Create a **Graylog stream** that routes CoPilot Action output to that index
104 +
105 +Why: action output is operational/response telemetry—keep it searchable without polluting core security logs.
106 +
107 +### 6) Add/verify Wazuh rule support for action output
108 +
109 +Action output is typically written to active response logs that the Wazuh agent already ships.
110 +
111 +Add/verify the supporting detection rules so the Wazuh manager can identify/classify “CoPilot Action” results.
112 +
113 +### 7) Import Grafana dashboards (optional but recommended)
114 +
115 +The CoPilot-Action repo includes dashboards under:
116 +- `Grafana/`
117 +
118 +Import them into Grafana and point the datasource at the CoPilot Action index.
119 +
120 +Why: dashboards make it much easier to confirm actions are firing and to review results across time.
121 +
122 +---
123 +
124 +## Repo pointers
125 +
126 +Everything you need to stand this up (artifacts + dashboards + docs) lives in:
127 +- https://github.com/socfortress/CoPilot-Action
128 +
129 +---
130 +
131 +## Common tasks
132 +
133 +### Find an action
134 +
135 +Use search to filter actions by name/technology.
136 +
137 +### Invoke an action
138 +
139 +![Invoke action (placeholder)](../../assets/ui/agents-copilot-actions-invoke.png)
140 +
141 +Typical flow:
142 +1) Select an action
143 +2) Review metadata (OS support, parameters)
144 +3) Select a target agent
145 +4) Invoke
146 +
147 +Examples shown in the video:
148 +- collecting browser history
149 +- blocking an IP address via Windows Firewall
150 +
151 +### View results
152 +
153 +Results can be viewed:
154 +- in Grafana dashboards (recommended for trending/overview)
155 +- in Velociraptor execution logs/results (best for deep troubleshooting)
156 +
157 +![Results (placeholder)](../../assets/ui/agents-copilot-actions-results.png)
158 +
159 +---
160 +
161 +## Troubleshooting (fast checks)
162 +
163 +If an action fails:
164 +- Confirm the required Velociraptor artifacts exist and are runnable
165 +- Check the Velociraptor artifact execution **logs/results** for errors
166 +- Verify Graylog stream/index routing if you expect results in dashboards
167 +- Confirm endpoint prerequisites (PowerShell availability, script paths, permissions)
168 +
169 +---
170 +
171 +## Gotchas
172 +
173 +- Actions can be disruptive (containment/firewall changes). Use approvals + logging.
174 +- Start by testing actions on a lab endpoint and then roll out.
175 +- Ensure your routing keeps action output separated from core security telemetry.
176 +
177 +---
178 +
179 +## Video context
180 +
181 +Feature walkthrough + setup approach:
182 +- https://www.youtube.com/watch?v=l9OLtgemYOQ
docs/user/ui/agents-detection-rules.md
+92 -3
@@ -1,9 +1,98 @@
1 -# Detection Rules
1 +---
2 +title: Detection rules (Wazuh)
3 +description: View and manage Wazuh detection rules in CoPilot to tune signal vs noise.
4 +---
5 +
6 +# Detection rules (Wazuh)
7
8 **Menu:** Agents → Detection Rules
9
5 -**Best for:** Detection engineering
10 +Detection rules in CoPilot map to **Wazuh detection rules**. These rules are what Wazuh uses to generate alerts from decoded telemetry.
11
7 -Edit and manage detection rules (Wazuh) through CoPilot.
12 +CoPilot lets you **view, search, and manage** these rules without SSH’ing into the Wazuh manager.
13
14 ![Detection Rules](../../assets/ui/agents-detection-rules.png)
15 +
16 +---
17 +
18 +## What you’re looking at
19 +
20 +![Rules list (placeholder)](../../assets/ui/agents-detection-rules-list.png)
21 +
22 +This page exposes the rule files that live on the **Wazuh manager** (e.g., the standard `*_rules.xml` files and your local exclusions/custom rules).
23 +
24 +Key point:
25 +- **Rules still live on the Wazuh manager.** CoPilot pulls them via API and can upload/save changes back to the manager.
26 +
27 +---
28 +
29 +## Why this matters
30 +
31 +Rules are one of your main control points for:
32 +- reducing noisy alerts (exclusions)
33 +- adding new detection logic for emerging threats
34 +- aligning alerting to what you actually care about in a given customer environment
35 +
36 +---
37 +
38 +## Common tasks
39 +
40 +### Search for rules
41 +
42 +![Search rules (placeholder)](../../assets/ui/agents-detection-rules-search.png)
43 +
44 +Use search when you need to:
45 +- find a rule by **ID**
46 +- locate a specific field match / keyword
47 +- quickly identify which file contains the logic you need to adjust
48 +
49 +### Add an exclusion (reduce noise)
50 +
51 +A typical workflow (from the video):
52 +1) Open your exclusions/custom rule file
53 +2) Add or modify a rule (incrementing the rule ID when needed)
54 +3) Update the match conditions/fields
55 +4) Save/upload the file
56 +
57 +![Edit rule file (placeholder)](../../assets/ui/agents-detection-rules-edit.png)
58 +
59 +### Upload/save changes to the Wazuh manager
60 +
61 +After editing, you must upload/save so the updated file is written to the manager.
62 +
63 +Important:
64 +- Saving changes updates the file on the **Wazuh manager**.
65 +
66 +### Restart Wazuh to apply rule changes
67 +
68 +Rule changes typically require a Wazuh manager restart/reload to take effect.
69 +
70 +![Restart Wazuh (placeholder)](../../assets/ui/agents-detection-rules-restart.png)
71 +
72 +Operational note:
73 +- Treat restarts as a controlled change (maintenance window, customer comms if needed).
74 +
75 +---
76 +
77 +## When to use it
78 +
79 +Use Detection Rules when you need to:
80 +- reduce false positives / noisy detections
81 +- validate why an alert did or did not fire
82 +- tune alert fidelity for a specific customer
83 +- add detection logic for a new threat/use case
84 +
85 +---
86 +
87 +## Gotchas
88 +
89 +- Rule changes can impact alert volume immediately—roll out carefully and document changes.
90 +- Keep ownership/change control clear (avoid ad-hoc production edits).
91 +- Any restart/reload step should be treated as operationally significant.
92 +
93 +---
94 +
95 +## Video context
96 +
97 +This page and workflow are demonstrated here:
98 +- https://www.youtube.com/watch?v=31lCr80-NVM
docs/user/ui/agents-groups.md
+101 -4
@@ -1,9 +1,106 @@
1 -# Agent Groups
1 +---
2 +title: Agent groups (Wazuh)
3 +description: Multi-tenant Wazuh agent groups used to apply endpoint configuration, control telemetry, and reduce SIEM noise.
4 +---
5
3 -**Menu:** Agents → Groups
6 +# Agent groups (Wazuh)
7
5 -**Best for:** Admin/Engineer
8 +**Menu:** Agents → Groups
9
7 -Use groups to segment endpoints and attach customer labels used for routing.
10 +Agent groups in CoPilot map to **Wazuh agent groups**. Wazuh uses these groups to apply endpoint configuration such as:
11 +- log collection settings
12 +- Security Configuration Assessment (SCA) policy configuration
13 +- File Integrity Monitoring (FIM) configuration
14
15 ![Groups](../../assets/ui/agents-groups.png)
16 +
17 +---
18 +
19 +## What you’re looking at
20 +
21 +![Groups list (placeholder)](../../assets/ui/agents-groups-list.png)
22 +
23 +This page shows:
24 +- the list of Wazuh groups
25 +- how many agents are in each group
26 +- group details/config once selected
27 +
28 +Multi-tenancy note:
29 +- Groups are typically created **per customer**.
30 +- We usually also split by **operating system** (Windows / Linux / macOS).
31 +
32 +Common naming pattern:
33 +- `Windows_<customer_code>`
34 +- `Linux_<customer_code>`
35 +- `Mac_<customer_code>`
36 +
37 +Example groups visible in the lab:
38 +- `Windows_lab`, `Linux_lab`, `Mac_lab`
39 +
40 +---
41 +
42 +## Why groups matter
43 +
44 +Groups are one of the highest leverage controls in the stack:
45 +
46 +- They define what telemetry is collected and shipped to the Wazuh Manager.
47 +- They standardize configuration across fleets (repeatable, auditable).
48 +- They help prevent SIEM bloat by letting you suppress noise **at the agent**, before it ever hits the manager/indexer.
49 +
50 +---
51 +
52 +## Common tasks
53 +
54 +### Add an agent to a group
55 +
56 +Typical workflow:
57 +1) Identify the agent
58 +2) Assign it to the correct customer + OS group
59 +3) Verify the agent receives updated configuration
60 +
61 +### Validate a group is applied
62 +
63 +In Wazuh terms, group configuration ends up under the manager’s shared group config and is pushed down to agents.
64 +
65 +---
66 +
67 +## Advanced: group configuration fields (why they’re powerful)
68 +
69 +![Group advanced fields (placeholder)](../../assets/ui/agents-groups-advanced-fields.png)
70 +
71 +Group configuration is where you can:
72 +- tune Windows EventChannel collection
73 +- apply QueryList include/exclude logic
74 +- configure SCA policy behavior
75 +- adjust FIM rules
76 +
77 +### Using groups to reduce SIEM noise (from the video)
78 +
79 +Windows Security events can be extremely noisy. If you filter noise only on the **Wazuh Manager**, the manager still has to:
80 +- receive the event
81 +- parse/decode it
82 +- evaluate it against rules
83 +
84 +A better performance move is to suppress events at the **Wazuh agent**, so they are **never shipped** to the manager in the first place.
85 +
86 +Approach (high level):
87 +1) Start with broad collection (so you know what you’re getting)
88 +2) Identify noisy event IDs / patterns
89 +3) Add suppressions in the group’s agent configuration (QueryList / suppression rules)
90 +4) Validate the agent received the updated config and the noise stopped upstream
91 +
92 +This improves:
93 +- Wazuh Manager performance
94 +- indexer storage consumption
95 +- Graylog pipeline load
96 +- downstream alerting signal-to-noise
97 +
98 +Video context:
99 +- https://www.youtube.com/watch?v=_vfd9eslwN0
100 +
101 +---
102 +
103 +## Gotchas
104 +
105 +- Group config syntax can be sensitive (especially Windows event query filters). Make small changes and validate.
106 +- Don’t suppress blindly—ensure you’re not hiding high-signal events you need for detection.
docs/user/ui/agents-patch-tuesday.md
+113 -4
@@ -1,9 +1,118 @@
1 -# Patch Tuesday
1 +---
2 +title: Patch Tuesday (Microsoft)
3 +description: Patch-cycle view that prioritizes Microsoft CVEs by urgency (P0–P3), KEV, CVSS, and EPSS.
4 +---
5
3 -**Menu:** Agents → Patch Tuesday
6 +# Patch Tuesday (Microsoft)
7
5 -**Best for:** Ops + reporting
8 +**Menu:** Agents → Patch Tuesday
9
7 -Patch-focused reporting/overview.
10 +Patch Tuesday is a patch-cycle view focused on **Microsoft Patch Tuesday** releases. It helps you triage CVEs for a given patch cycle and prioritize what to patch first using:
11 +- priority bands (**P0–P3**)
12 +- **KEV** (Known Exploited Vulnerabilities)
13 +- **CVSS** severity
14 +- **EPSS** (exploit likelihood)
15 +- affected product family / product
16
17 ![Patch Tuesday](../../assets/ui/patch-tuesday.png)
18 +
19 +---
20 +
21 +## What you’re looking at
22 +
23 +### Cycle summary
24 +
25 +![Summary (placeholder)](../../assets/ui/patch-tuesday-summary.png)
26 +
27 +At the top, you’ll see:
28 +- count of **unique CVEs**
29 +- counts by priority (P0 Emergency, P1 High, P2 Medium, P3 Low)
30 +- the patch cycle date and generation timestamp
31 +
32 +Use this for:
33 +- a fast “how big is this month?” snapshot
34 +- tracking backlog reduction over the patch window
35 +
36 +### Filters
37 +
38 +![Filters (placeholder)](../../assets/ui/patch-tuesday-filters.png)
39 +
40 +You can filter by:
41 +- **Cycle** (e.g., `2026-Feb`)
42 +- **Priority**
43 +- **Product family**
44 +- **Severity**
45 +- **Search** (CVE, title, product)
46 +
47 +### KEV toggle
48 +
49 +![KEV toggle (placeholder)](../../assets/ui/patch-tuesday-kev-toggle.png)
50 +
51 +Turn on **KEV** to focus on vulnerabilities that are known to be exploited.
52 +
53 +### CVE cards
54 +
55 +![CVE card (placeholder)](../../assets/ui/patch-tuesday-cve-card.png)
56 +
57 +Each CVE entry typically includes:
58 +- CVE ID + title
59 +- priority (P0–P3)
60 +- KEV indicator (when applicable)
61 +- product family and affected products
62 +- CVSS
63 +- EPSS + percentile
64 +- associated KBs / updates (when available)
65 +
66 +---
67 +
68 +## How to use this page (operator workflow)
69 +
70 +A practical monthly flow:
71 +
72 +1) **Start with KEV + P0**
73 + - Turn on KEV
74 + - Filter to P0 (Emergency)
75 + - Patch these first (or implement compensating controls immediately)
76 +
77 +2) **Use EPSS to prioritize within a priority band**
78 + - When you have many P1/P2 items, sort mentally by EPSS (higher likelihood first)
79 +
80 +3) **Group work by product family**
81 + - Cluster Windows Server vs Workstations vs Office/Edge/etc.
82 +
83 +4) **Coordinate by customer / environment**
84 + - In multi-tenant stacks, drive patch work per tenant and track completion
85 +
86 +5) **Validate outcome**
87 + - Confirm patch deployment via your patch tooling
88 + - Re-check vulnerability posture in CoPilot after inventory refresh
89 +
90 +---
91 +
92 +## What P0–P3 means (recommended interpretation)
93 +
94 +Use the priority bands as an urgency rubric:
95 +- **P0 (Emergency):** patch immediately (especially if KEV/high EPSS)
96 +- **P1 (High):** patch in the first wave of the cycle
97 +- **P2 (Medium):** patch in the standard window
98 +- **P3 (Low):** patch as capacity allows
99 +
100 +Always combine this with:
101 +- asset criticality
102 +- exposure (internet-facing vs internal)
103 +- compensating controls (EDR, network controls, app allowlisting)
104 +
105 +---
106 +
107 +## Prerequisites
108 +
109 +- Patch Tuesday feed/data source is enabled and up-to-date
110 +- Vulnerability data ingestion is working (for EPSS/CVSS enrichment where applicable)
111 +
112 +---
113 +
114 +## Gotchas
115 +
116 +- Don’t treat CVSS as a patch order by itself—use KEV + EPSS + exposure + asset criticality.
117 +- Patch Tuesday prioritization is about **urgency**, not just severity.
118 +- Some environments require maintenance windows—use compensating controls when you can’t patch immediately.
docs/user/ui/agents-sca-overview.md
+90 -4
@@ -1,9 +1,95 @@
1 -# SCA Overview
1 +---
2 +title: SCA overview
3 +description: Review Wazuh Security Configuration Assessment (SCA) posture across endpoints.
4 +---
5
3 -**Menu:** Agents → SCA Overview
6 +# SCA overview
7
5 -**Best for:** Ops + reporting
8 +**Menu:** Agents → SCA Overview
9
7 -Security Configuration Assessment overview.
10 +SCA (Security Configuration Assessment) is Wazuh’s secure configuration/hardening framework. It evaluates endpoints against policies (benchmarks) and reports pass/fail results so you can:
11 +- find configuration drift
12 +- measure baseline hardening posture
13 +- prioritize remediation of failed controls
14
15 ![SCA Overview](../../assets/ui/agents-sca-overview.png)
16 +
17 +---
18 +
19 +## What you’re looking at
20 +
21 +### Filters
22 +
23 +![Filters (placeholder)](../../assets/ui/agents-sca-overview-filters.png)
24 +
25 +You can scope results by:
26 +- **Customer** (multi-tenant)
27 +- **Agent Name**
28 +- **Policy Name**
29 +- **Score range** (min/max)
30 +
31 +### Load SCA Data
32 +
33 +![Load SCA Data (placeholder)](../../assets/ui/agents-sca-overview-load.png)
34 +
35 +This page typically requires an initial fetch.
36 +
37 +Use **Load SCA Data** to pull the latest SCA results into the view.
38 +
39 +### Results view
40 +
41 +![Results (placeholder)](../../assets/ui/agents-sca-overview-results.png)
42 +
43 +Once loaded, you’ll use this page to identify:
44 +- which agents are failing baseline policies
45 +- which policies are producing the lowest scores
46 +- where remediation work will produce the biggest posture improvement
47 +
48 +---
49 +
50 +## When to use it
51 +
52 +Use SCA overview when you need to:
53 +- identify endpoints failing hardening baselines
54 +- find drift after a change window (GPO, tooling rollout, new images)
55 +- support audits/compliance reporting with repeatable evidence
56 +
57 +---
58 +
59 +## Common tasks
60 +
61 +### Triage low scores first
62 +
63 +A practical flow:
64 +1) Filter by customer
65 +2) Set a **Max Score** threshold (start low)
66 +3) Identify the bottom-scoring endpoints/policies
67 +4) Remediate the highest leverage failures (the ones that apply broadly)
68 +
69 +### Investigate and remediate failed checks
70 +
71 +Use the agent’s dedicated page to drill down:
72 +- open an agent and review the **SCA** tab for policy/check details
73 +
74 +Remediation usually happens outside CoPilot (GPO, configuration management, image updates), then you validate by re-running SCA and confirming the score improves.
75 +
76 +### Export / reporting
77 +
78 +If you need a deliverable:
79 +- see: [SCA report](/user/ui/report-sca)
80 +
81 +---
82 +
83 +## Prerequisites
84 +
85 +- Wazuh SCA is enabled on agents
86 +- Policies are deployed to the endpoints/groups you care about
87 +- Agents are checking in and SCA scans have run
88 +
89 +---
90 +
91 +## Gotchas
92 +
93 +- SCA is only as good as your policies and rollout. Keep policies consistent per OS/group/customer.
94 +- Score changes often lag behind configuration changes (depends on scan cadence + agent check-in).
95 +- Don’t chase perfect scores blindly—prioritize controls that reduce real risk for your environment.
docs/user/ui/agents-sysmon-config.md
+92 -3
@@ -1,9 +1,98 @@
1 -# Sysmon Config
1 +---
2 +title: Sysmon config (Windows)
3 +description: Centralized Sysmon configuration management for Windows telemetry collected by Wazuh.
4 +---
5 +
6 +# Sysmon config (Windows)
7
8 **Menu:** Agents → Sysmon Config
9
5 -**Best for:** Admin/Engineer
10 +Sysmon (System Monitor) is a Microsoft Sysinternals tool that logs high-value system activity to the **Windows Event Log**. We use it on Windows endpoints to collect richer telemetry (process, network, file, etc.) that improves detections and investigations.
11
7 -Manage Sysmon configuration in a repeatable way.
12 +In the CoPilot stack:
13 +- **Sysmon** generates telemetry on the Windows endpoint
14 +- The **Wazuh agent** collects Sysmon events
15 +- The **Wazuh manager** is the source of truth and forwards that telemetry into the SIEM
16
17 ![Sysmon Config](../../assets/ui/agents-sysmon-config.png)
18 +
19 +---
20 +
21 +## Why we use Sysmon
22 +
23 +Windows Security logs are useful, but Sysmon provides additional, security-relevant telemetry that is widely adopted in SOC environments.
24 +
25 +Benefits:
26 +- higher-fidelity investigation data (what ran, how it ran, what it talked to)
27 +- better detection coverage for common attacker techniques
28 +- consistent event schemas when you standardize a baseline configuration
29 +
30 +---
31 +
32 +## What this page is
33 +
34 +A centralized place to manage Sysmon configuration files so you can:
35 +- keep Windows telemetry consistent across endpoints
36 +- tune noise (exclude expected/benign activity)
37 +- roll out changes per customer/group
38 +
39 +![Sysmon config overview (placeholder)](../../assets/ui/agents-sysmon-config-overview.png)
40 +
41 +---
42 +
43 +## How Sysmon config management works in CoPilot (high level)
44 +
45 +Based on the workflow in the video:
46 +
47 +1) You maintain a Sysmon config (XML)
48 +2) CoPilot writes the config into the appropriate Wazuh shared group directory (typically per Windows customer group)
49 +3) Endpoints receive the updated file via Wazuh agent group sync
50 +4) A reload mechanism applies the new Sysmon config without requiring a reboot (implementation depends on your environment)
51 +
52 +---
53 +
54 +## Step 1 — Review and edit the Sysmon config
55 +
56 +![Edit Sysmon config (placeholder)](../../assets/ui/agents-sysmon-config-edit.png)
57 +
58 +Operator/engineer tips:
59 +- Make small, intentional changes
60 +- Track versions and keep a rollback path
61 +- Prefer customer/group-specific configs when environments differ (EDR tools, server roles, etc.)
62 +
63 +---
64 +
65 +## Step 2 — Apply / reload the config
66 +
67 +![Reload Sysmon config (placeholder)](../../assets/ui/agents-sysmon-config-reload.png)
68 +
69 +A practical pattern is to reload Sysmon after pushing a new config so changes take effect quickly.
70 +
71 +Why this matters:
72 +- you can respond to noise quickly (exclude noisy, expected software)
73 +- you can add coverage quickly when a new detection need appears
74 +
75 +---
76 +
77 +## Using Sysmon to reduce SIEM noise
78 +
79 +Sysmon configs can be very detailed. A common problem is “too much telemetry.”
80 +
81 +Use this page to:
82 +- exclude known-benign software that generates high event volume
83 +- reduce ingestion costs (compute + storage)
84 +- keep detections focused on high-signal telemetry
85 +
86 +Example from the video context:
87 +- if an endpoint is running an EDR tool and Sysmon is generating noisy events around specific event IDs, you can add exclusions so you don’t ingest bloat into the SIEM.
88 +
89 +Video context:
90 +- https://www.youtube.com/watch?v=XT1d49HTqQw
91 +
92 +---
93 +
94 +## Gotchas
95 +
96 +- Sysmon configs can be complex—test changes on a small set of endpoints first.
97 +- Any change can shift event volume dramatically—coordinate with index/retention planning.
98 +- A broken config may fail to apply; keep validation and rollback procedures.
docs/user/ui/agents-vulnerability-overview.md
+104 -4
@@ -1,9 +1,109 @@
1 -# Vulnerability Overview
1 +---
2 +title: Vulnerability overview
3 +description: Review vulnerability posture across agents with EPSS scoring and package detail.
4 +---
5
3 -**Menu:** Agents → Vulnerability Overview
6 +# Vulnerability overview
7
5 -**Best for:** Both (Ops + reporting)
8 +**Menu:** Agents → Vulnerability Overview
9
7 -High-level view of vulnerabilities (often backed by Wazuh vulnerability detection data).
10 +Vulnerability Overview provides near real-time vulnerability data (from **Wazuh Indexer**) enriched with **EPSS** scoring and package details, so you can prioritize remediation based on both severity and likely exploitation.
11
12 ![Vulnerability Overview](../../assets/ui/agents-vulnerability-overview.png)
13 +
14 +---
15 +
16 +## What you’re looking at
17 +
18 +### Distribution
19 +
20 +![Distribution (placeholder)](../../assets/ui/agents-vulnerability-overview-distribution.png)
21 +
22 +A quick breakdown of vulnerabilities by severity (Critical / High / Medium / Low).
23 +
24 +Use this for:
25 +- “How bad is it right now?”
26 +- tracking whether patching is reducing overall exposure
27 +
28 +### Coverage + top packages by EPSS
29 +
30 +![Top packages by EPSS (placeholder)](../../assets/ui/agents-vulnerability-overview-top-packages.png)
31 +
32 +This section highlights:
33 +- how many **agents** are impacted
34 +- how many **unique packages** are involved
35 +- how many **customer codes** are represented
36 +
37 +And surfaces packages/vuln clusters ranked by **EPSS** (a good “what should we care about first?” view).
38 +
39 +### Detailed table
40 +
41 +![Table (placeholder)](../../assets/ui/agents-vulnerability-overview-table.png)
42 +
43 +The table is the working view where you can pivot by:
44 +- CVE
45 +- severity
46 +- affected agent/hostname
47 +- package / OS / architecture
48 +- **CVSS**
49 +- **EPSS score** and **EPSS percentile**
50 +- timestamp (when observed)
51 +
52 +---
53 +
54 +## EPSS (Exploit Prediction Scoring System) — how to use it
55 +
56 +EPSS is a probability model maintained by FIRST that estimates the likelihood a CVE will be exploited “in the wild.”
57 +
58 +In CoPilot you’ll typically see:
59 +- **EPSS**: a score between **0 and 1** (higher means more likely exploitation)
60 +- **EPSS Pct**: percentile ranking (how that CVE compares to other CVEs)
61 +
62 +How to operationalize it:
63 +- Use **CVSS** to understand *impact/severity*
64 +- Use **EPSS** to understand *likelihood/urgency*
65 +- Prioritize items that are **High CVSS + High EPSS** first
66 +
67 +Rule of thumb:
68 +- A Medium CVSS with a very high EPSS can be more urgent than a High CVSS with very low EPSS.
69 +
70 +Reference:
71 +- https://www.first.org/epss/
72 +
73 +---
74 +
75 +## Common tasks
76 +
77 +### Filter by tenant/customer
78 +
79 +Use filters to focus on one customer code at a time in multi-tenant environments.
80 +
81 +![Filters (placeholder)](../../assets/ui/agents-vulnerability-overview-filters.png)
82 +
83 +### Identify “top risk” items
84 +
85 +A practical triage flow:
86 +1) Review **Top Packages by EPSS**
87 +2) Open the package/CVE details
88 +3) Identify affected agents
89 +4) Create remediation tasks (patch/update/remove package)
90 +5) Validate closure by confirming the item disappears as inventory updates
91 +
92 +### Pivot to reporting
93 +
94 +If you need a deliverable for a customer or internal patch window:
95 +- use the reporting workflow described here: [Vulnerability report](/user/ui/report-vulnerability)
96 +
97 +---
98 +
99 +## Prerequisites
100 +
101 +- Wazuh inventory (syscollector) is flowing for endpoints
102 +- Wazuh vulnerability detection is enabled and indexing results
103 +
104 +---
105 +
106 +## Gotchas
107 +
108 +- Stale inventory = stale posture. If an agent hasn’t checked in recently, its vulnerability list may be outdated.
109 +- EPSS is a prioritization signal, not a guarantee—use it alongside your environment context (internet exposure, compensating controls, exploitability, asset criticality).
docs/user/ui/agents.md
+76 -3
@@ -1,9 +1,82 @@
1 +---
2 +title: Agents
3 +description: Operator-facing views and controls for endpoints, groups, actions, and security posture.
4 +---
5 +
6 # Agents
7
8 **Menu:** Agents
9
5 -**Best for:** Admin/Engineer + Detection engineering
10 +![Agents](../../assets/ui/agents.png)
11
7 -Agent-related pages cover endpoint group configuration, Sysmon config, detection rules, and security posture views.
12 +---
13
9 -![Agents](../../assets/ui/agents.png)
14 +## What this page is
15 +
16 +Agents are the onboarded endpoints reporting to the **Wazuh Manager**.
17 +
18 +In CoPilot, the **Wazuh Manager is the source of truth** for agent inventory and core endpoint status.
19 +
20 +This section includes:
21 +- viewing agent inventory
22 +- organizing agents into groups
23 +- reviewing posture (vulnerabilities, Patch Tuesday, SCA)
24 +- running response workflows (artifact collection, commands, quarantine, active response)
25 +
26 +---
27 +
28 +## When to use it
29 +
30 +Use Agents when you need to:
31 +- confirm an endpoint is onboarded and reporting
32 +- find endpoints by hostname/customer/group
33 +- pivot from an alert to the impacted endpoint
34 +
35 +---
36 +
37 +## Prerequisites
38 +
39 +- Agents are enrolled and reporting into the stack
40 +- Customer labels/grouping is configured (if you’re multi-tenant)
41 +
42 +---
43 +
44 +## Common tasks
45 +
46 +### Open an agent’s dedicated page
47 +
48 +You can open an agent directly by ID:
49 +
50 +`/agents/<agent_id>`
51 +
52 +On the dedicated agent page you can typically access:
53 +- **Overview** (identity + last seen + versions + customer_code)
54 +- **Vulnerabilities** (Wazuh vulnerability module)
55 +- **SCA** (Wazuh SCA results)
56 +- **Cases** the endpoint is part of
57 +- **Artifacts** previously collected
58 +- **Alerts** the endpoint is part of
59 +- **Collect** (run Velociraptor artifacts)
60 +- **Command** (run remote commands)
61 +- **Quarantine** (isolate/unisolate endpoint)
62 +- **Active Response** (run response capabilities)
63 +- **File Collection** (collect a file)
64 +- **Data Store** (endpoint data store)
65 +
66 +### Other pages in this section
67 +
68 +- View agents: [Agents](/user/ui/agents)
69 +- Manage groups: [Agent groups](/user/ui/agents-groups)
70 +- Sysmon config: [Sysmon config](/user/ui/agents-sysmon-config)
71 +- Detection rules: [Detection rules](/user/ui/agents-detection-rules)
72 +- Response/actions: [CoPilot actions](/user/ui/agents-copilot-actions)
73 +- Posture:
74 + - [Vulnerability overview](/user/ui/agents-vulnerability-overview)
75 + - [Patch Tuesday](/user/ui/agents-patch-tuesday)
76 + - [SCA overview](/user/ui/agents-sca-overview)
77 +
78 +---
79 +
80 +## Gotchas
81 +
82 +- If an agent isn’t visible here, it’s usually an enrollment/ingestion issue upstream.
docs/user/ui/alerts-atomic-red-team.md
+8 -2
@@ -2,8 +2,14 @@
2
3 **Menu:** Alerts → Atomic Red Team
4
5 -**Best for:** Detection engineering / validation
5 +**Best for:** Operators + detection engineering / validation
6
7 -Use Atomic Red Team workflows to test detections and confirm alert routing.
7 +Use Atomic Red Team workflows to:
8 +- simulate attacker behaviors (Atomic tests)
9 +- verify telemetry and alert routing end-to-end
10 +- validate that detection rules are firing as expected
11 +
12 +Related power feature:
13 +- [Atomic Red Team (detection simulation)](/power-features/atomic-red-team)
14
15 ![Atomic Red Team](../../assets/ui/alerts-atomic-red-team.png)
docs/user/ui/alerts-mitre.md
+10 -2
@@ -2,8 +2,16 @@
2
3 **Menu:** Alerts → MITRE ATT&CK
4
5 -**Best for:** Detection engineering + reporting
5 +**Best for:** Operators + detection engineering + reporting
6
7 -Use this view for ATT&CK alignment, coverage discussions, and investigation context.
7 +This page provides a technique-centric lens across alerts/events.
8 +
9 +Use it for:
10 +- ATT&CK alignment and coverage discussions
11 +- investigation context (tactics/mitigations/software)
12 +- validating detection coverage (including Atomic tests, when available)
13 +
14 +Related power feature:
15 +- [MITRE ATT&CK integration](/power-features/mitre-attack)
16
17 ![MITRE](../../assets/ui/alerts-mitre.png)
docs/user/ui/alerts-siem.md
+28 -1
@@ -4,6 +4,33 @@
4
5 **Best for:** Both
6
7 -Use the SIEM view to search/pivot into surrounding events. This is often where you use `index_name` + `index_id` references.
7 +This page shows a **high-level view of SIEM alerts** based on what **Graylog** indicates (using the filters on the page).
8 +
9 +Important:
10 +- These are **different from Incident Management alerts**.
11 +- SIEM alerts shown here are **not created/managed** in CoPilot’s Incident Management queue.
12 +
13 +Use this page for:
14 +- a quick overview of alert volume and themes
15 +- validating that Graylog alerting is working
16 +- validating that alerts configured in Graylog are flowing into **Incident Management** when expected
17 +
18 +It is **not** intended to be the primary analyst workflow surface for alert handling.
19
20 ![SIEM](../../assets/ui/alerts-siem.png)
21 +
22 +---
23 +
24 +## How to use it (practical)
25 +
26 +1) Apply your filters (customer/time window/stream/etc.)
27 +2) Confirm Graylog is producing the alerts you expect
28 +3) Pick an alert and pivot to underlying SIEM events (when available)
29 +4) Cross-check whether a corresponding Incident Management alert exists (if your routing/provisioning is configured to create one)
30 +
31 +---
32 +
33 +## Gotchas
34 +
35 +- If you see SIEM alerts here but not in Incident Management, it usually indicates an ingestion/routing gap (Graylog event definition/stream → CoPilot incident ingestion).
36 +- If you only need the analyst queue, go to: [Incident alerts](/user/ui/incident-alerts)
docs/user/ui/alerts.md
+3 -1
@@ -4,7 +4,9 @@
4
5 **Best for:** Admin/Engineer + Detection engineering + SOC leadership
6
7 -This section is oriented around SIEM views and testing/coverage (not the day-to-day triage queue).
7 +This section is oriented around **high-level alert visibility and validation** (not the day-to-day alert triage queue).
8 +
9 +These pages are **not** the same as [Incident alerts](/user/ui/incident-alerts). Incident Management is where analysts/operators typically work alerts.
10
11 ## Sub-pages
12
docs/user/ui/artifacts.md
+163 -4
@@ -1,9 +1,168 @@
1 -# Artifacts
1 +---
2 +title: Artifacts (Velociraptor)
3 +description: Run Velociraptor artifacts from CoPilot to collect DFIR evidence from endpoints and review results.
4 +---
5
3 -**Menu:** Artifacts
6 +# Artifacts (Velociraptor)
7
5 -**Best for:** SOC operators / analysts
8 +**Menu:** Artifacts
9
7 -Artifacts are where you manage investigation files and evidence.
10 +CoPilot’s Artifacts feature integrates with **Velociraptor** (DFIR / threat hunting) to run **Velociraptor Artifacts** via the Velociraptor API and pull results back into CoPilot.
11
12 ![Artifacts](../../assets/ui/artifacts.png)
13 +
14 +---
15 +
16 +## What is Velociraptor?
17 +
18 +Velociraptor is an advanced **digital forensics and incident response (DFIR)** platform that gives you endpoint visibility and targeted evidence collection at scale.
19 +
20 +A few key concepts (Velociraptor terminology):
21 +- **VQL**: Velociraptor Query Language (how evidence is collected)
22 +- **Artifacts**: packaged collections (YAML) of one or more VQL queries + parameters + preconditions
23 +
24 +Velociraptor artifacts are designed to be reusable and safe to run across fleets using **preconditions** (if a precondition fails, that source is skipped).
25 +
26 +Reference:
27 +- Velociraptor docs: https://docs.velociraptor.app
28 +- Artifacts concept: https://docs.velociraptor.app/docs/vql/artifacts/
29 +
30 +---
31 +
32 +## What you can do in CoPilot
33 +
34 +From an operator perspective, CoPilot lets you:
35 +
36 +- **Select an endpoint** (agent/hostname / Velociraptor ID)
37 +- **Choose an artifact** to run (collection)
38 +- **Provide parameters** (when the artifact requires them)
39 +- **Run the artifact** and review the returned results
40 +
41 +---
42 +
43 +## Before you start (required identifiers)
44 +
45 +CoPilot needs a way to target the correct Velociraptor client.
46 +
47 +In the UI you’ll typically see fields like:
48 +- **Hostname** (optional)
49 +- **Velociraptor ID** (the Velociraptor client id)
50 +
51 +If the endpoint doesn’t have a valid Velociraptor ID mapped, collections won’t run against that host.
52 +
53 +---
54 +
55 +## Step 1 — Run an artifact collection
56 +
57 +![Collect artifacts (placeholder)](../../assets/ui/artifacts-collect.png)
58 +
59 +1) Open **Artifacts**
60 +2) Select (or enter) the target endpoint (Hostname / **Velociraptor ID**)
61 +3) Choose the artifact you want to run
62 +4) Fill in any required parameters
63 +5) Start the collection
64 +
65 +Operator tips:
66 +- Prefer artifacts that are **targeted** (high-signal) rather than “collect everything.”
67 +- If an artifact supports parameters (time range, path, user, regex), start narrow.
68 +
69 +---
70 +
71 +## Step 2 — Review results
72 +
73 +![Artifact results (placeholder)](../../assets/ui/artifacts-results.png)
74 +
75 +After the artifact finishes, review:
76 +- returned rows/tables (the “answers” from VQL)
77 +- any files collected (if the artifact uploads files)
78 +- errors or skipped preconditions (common when an artifact is OS-specific)
79 +
80 +What good looks like:
81 +- You can answer: *what evidence did we collect, from which host, and what does it mean for the alert/case?*
82 +
83 +---
84 +
85 +## Step 3 — Use artifacts from an alert (fast triage)
86 +
87 +CoPilot also surfaces artifact collection entry points from **Alerts → Assets**.
88 +
89 +Practical workflow:
90 +1) Open an alert
91 +2) Go to the impacted asset
92 +3) Run a targeted artifact (process listing, persistence checks, event logs, etc.)
93 +4) Bring the result back into the case via notes/comments
94 +
95 +---
96 +
97 +## Step 4 — (Optional) Artifact recommendations
98 +
99 +Some CoPilot views may provide artifact recommendations to speed up response.
100 +
101 +![Artifact recommendation (placeholder)](../../assets/ui/artifacts-recommendation.png)
102 +
103 +---
104 +
105 +## Operator artifact starter pack (recommended)
106 +
107 +Use this section as a default playbook when you’re in triage and need to move fast.
108 +
109 +### 1) Identify the host (what system is this?)
110 +
111 +Run:
112 +- `Generic.Client.Info` (basic host facts)
113 +- `Generic.Client.DiskSpace` (quick disk pressure check)
114 +
115 +### 2) Process triage (what’s running right now?)
116 +
117 +Run:
118 +- Windows: `Windows.System.Pslist`
119 +- Linux: `Linux.Sys.Pslist`
120 +
121 +### 3) Network triage (is it talking to something?)
122 +
123 +Run:
124 +- Windows: `Windows.Network.Netstat`
125 +- Linux: `Linux.Network.Netstat`
126 +
127 +### 4) Persistence triage (will it come back?)
128 +
129 +Run:
130 +- `Windows.Sys.StartupItems`
131 +
132 +### 5) Find a file fast (where is this binary/script across the host?)
133 +
134 +Run:
135 +- `Windows.Search.FileFinder`
136 +
137 +### 6) Execution evidence (what ran recently?)
138 +
139 +Run:
140 +- `Windows.Forensics.Prefetch`
141 +- `Windows.System.Amcache` (alternate view of execution evidence)
142 +
143 +### 7) Log triage (high-signal Windows event hunting)
144 +
145 +Run:
146 +- `Windows.EventLogs.EvtxHunter`
147 +
148 +### 8) YARA hunting (when you have an IOC or suspect binary)
149 +
150 +Run:
151 +- Windows: `Windows.Detection.Yara.Process` (fast, memory/process focused)
152 +- Windows: `Windows.Detection.Yara.NTFS` (disk scan)
153 +- Linux: `Linux.Detection.Yara.Process`
154 +
155 +> Tip: Start with **Process**-scoped YARA first (fastest), then broaden to disk if needed.
156 +
157 +---
158 +
159 +## Common gotchas
160 +
161 +### “The artifact didn’t run / no results returned”
162 +Common causes:
163 +- The endpoint doesn’t have a correct **Velociraptor ID** mapped.
164 +- The artifact precondition skipped the collection (e.g., wrong OS).
165 +- Velociraptor connectivity/API credentials are not configured correctly.
166 +
167 +### “This collected too much data”
168 +Use parameterized artifacts, tighten time windows, and prefer targeted artifacts. Velociraptor is designed to return high-value results rather than bulk collection.
docs/user/ui/graylog-management.md
+89 -1
@@ -1,5 +1,93 @@
1 -# Graylog Management
1 +---
2 +title: Graylog management (alerting)
3 +description: Define Graylog event alerts (detections) so CoPilot can ingest them into Incident Management.
4 +---
5 +
6 +# Graylog management (alerting)
7
8 **Menu:** Graylog → Management
9
10 +This page is for **Admin / Engineer** workflows.
11 +
12 +CoPilot uses **Graylog** as the detection and alerting engine. If Graylog isn’t creating event alerts, CoPilot won’t have anything to ingest into **Incident Management → Alerts**.
13 +
14 ![Graylog Management](../../assets/ui/graylog-management.png)
15 +
16 +---
17 +
18 +## How CoPilot alerting works (Graylog → gl-events* → CoPilot)
19 +
20 +1) Your log metadata is ingested (Wazuh, O365, firewall, third-party, etc.)
21 +2) Graylog evaluates **Event Definitions** (your detection logic)
22 +3) When a condition matches, Graylog creates an **Event/Alert** and writes it to an index (commonly `gl-events*`)
23 +4) CoPilot reads those event alerts and creates/updates alerts in **Incident Management**
24 +
25 +---
26 +
27 +## Alert Provisioning (pre-built detections)
28 +
29 +SOCFortress ships a set of **pre-built alert provisioning items** to help you get alerts flowing quickly.
30 +
31 +![Alert provisioning (placeholder)](../../assets/ui/graylog-alert-provisioning.png)
32 +
33 +Examples visible in the lab:
34 +- **WAZUH SYSLOG LEVEL ALERT** — triggers when `SYSLOG_LEVEL = ALERT` (usually set via pipeline when Wazuh rule level is > 11)
35 +- **OFFICE365 EXCHANGE ONLINE** — example O365 alert source
36 +- **OFFICE365 THREAT INTEL** — O365 threat intel alerts
37 +- **CROWDSTRIKE ALERT** — CrowdStrike alerts
38 +- **FORTINET SYSTEM / FORTINET UTM** — FortiGate alerts
39 +- **PALOALTO ALERT** — Palo Alto alerts
40 +
41 +> These pre-built items assume you have pipeline rules that normalize key fields (for example: setting an `alert_severity` or equivalent “this is an alert” marker).
42 +
43 +---
44 +
45 +## Event Definitions (your detection logic)
46 +
47 +Event Definitions are where you define:
48 +- the query/conditions
49 +- aggregation/time window
50 +- when an event should fire
51 +
52 +![Event definitions (placeholder)](../../assets/ui/graylog-event-definitions.png)
53 +
54 +Operator impact:
55 +- Better event definitions → higher signal alerts → less noise in CoPilot.
56 +
57 +---
58 +
59 +## Custom alerts (build your own)
60 +
61 +You are not limited to SOCFortress pre-built detections.
62 +
63 +If you can ingest metadata into Graylog, you can create an alert off it.
64 +
65 +Practical examples:
66 +- Alert on risky admin actions in Office 365
67 +- Alert on firewall activity to known phishing URLs
68 +- Alert on anomalous authentication patterns
69 +
70 +![Custom alert (placeholder)](../../assets/ui/graylog-custom-alert.png)
71 +
72 +---
73 +
74 +## Related configuration (ties into Incident Sources)
75 +
76 +After Graylog is firing events, you still need CoPilot to map those events into an operator-friendly alert.
77 +
78 +Next step:
79 +- Configure **Incident Sources** (field mappings for title/asset/time/context):
80 + - [Incident sources (Graylog → Alerts)](/user/ui/incident-sources)
81 +
82 +---
83 +
84 +## Common gotchas
85 +
86 +### “I configured a Graylog alert, but CoPilot alerts are missing context”
87 +That’s typically an **Incident Sources mapping** issue: CoPilot needs to know which fields to treat as title, asset name, and context.
88 +
89 +### “My detection is firing, but CoPilot shows nothing”
90 +Confirm:
91 +- the Event Definition actually creates events
92 +- events are written to `gl-events*`
93 +- CoPilot can read that index (permissions/connectivity)
docs/user/ui/healthcheck.md
+98 -3
@@ -1,9 +1,104 @@
1 -# Healthcheck
1 +---
2 +title: Healthcheck (InfluxDB + Telegraf)
3 +description: Monitor endpoint and SIEM health signals via Telegraf metrics stored in InfluxDB.
4 +---
5 +
6 +# Healthcheck (InfluxDB + Telegraf)
7
8 **Menu:** Healthcheck
9
5 -**Best for:** Both
10 +**Best for:** Admin / Engineer (primary) + Operator (awareness)
11 +
12 +CoPilot’s Healthcheck ties into **InfluxDB** to surface health signals collected by **Telegraf**.
13 +
14 +Typical signals include:
15 +- CPU consumption
16 +- memory consumption
17 +- disk space utilization
18
7 -Healthcheck provides a high-level signal of platform/stack health.
19 +This is useful for detecting spikes, capacity issues, and “slow burn” failures before they impact your SIEM.
20
21 ![Healthcheck](../../assets/ui/healthcheck.png)
22 +
23 +---
24 +
25 +## How it works (high level)
26 +
27 +1) **Telegraf** runs on endpoints/servers and collects metrics (cpu/mem/disk)
28 +2) Metrics land in **InfluxDB** (CoPilot queries the InfluxDB `_monitoring` bucket)
29 +3) Health checks and thresholds create alert states (ok/info/warn/crit)
30 +4) CoPilot displays the resulting alerts in the Healthcheck UI
31 +
32 +---
33 +
34 +## What you can do in CoPilot
35 +
36 +### Review active alerts
37 +
38 +![Healthcheck overview (placeholder)](../../assets/ui/healthcheck-overview.png)
39 +
40 +Use this to quickly see:
41 +- what is currently broken / at risk
42 +- which systems are trending toward failure
43 +
44 +### Triage by severity
45 +
46 +Healthcheck alerts are categorized by severity (for example: **Critical**, **Warning**, **Info**, **Ok**).
47 +
48 +![Healthcheck alerts (placeholder)](../../assets/ui/healthcheck-alerts.png)
49 +
50 +---
51 +
52 +## What to monitor (recommended)
53 +
54 +### CPU
55 +- sustained high CPU on Graylog/Wazuh components can cause ingestion/alerting lag
56 +
57 +### Memory
58 +- memory pressure can lead to OOM kills and unstable services
59 +
60 +### Disk
61 +- disk thresholds are the most common SIEM failure mode (indexes stop accepting writes)
62 +
63 +---
64 +
65 +## Practical runbook (when something trips)
66 +
67 +1) Identify what triggered (disk vs cpu vs mem)
68 +2) Identify the system/host
69 +3) Decide whether this is:
70 + - a transient spike
71 + - a sustained capacity issue
72 + - a misconfiguration (wrong retention / noisy ingestion)
73 +4) Take action:
74 + - disk: snapshot/restore + retention tuning + index cleanup
75 + - cpu/mem: scale resources, tune ingestion, investigate heavy queries
76 +
77 +Related pages:
78 +- [Index management (Wazuh Indexer)](/user/ui/indices-management)
79 +- [Snapshot & restore (cold storage)](/user/ui/indices-snapshots)
80 +
81 +---
82 +
83 +## Advanced: check names and thresholds
84 +
85 +Depending on your deployment, Influx may expose many checks.
86 +
87 +![Check names (placeholder)](../../assets/ui/healthcheck-check-names.png)
88 +
89 +If you want to standardize what shows up in CoPilot, define consistent Telegraf inputs and consistent alert thresholds.
90 +
91 +![Thresholds (placeholder)](../../assets/ui/healthcheck-thresholds.png)
92 +
93 +---
94 +
95 +## Common gotchas
96 +
97 +### “Healthcheck is empty”
98 +Common causes:
99 +- Telegraf isn’t deployed or isn’t shipping metrics
100 +- InfluxDB connector isn’t configured in CoPilot
101 +- wrong org/bucket configuration (CoPilot expects `_monitoring`)
102 +
103 +### “Alerts are noisy”
104 +Tune thresholds to avoid flapping (especially CPU) and focus on sustained conditions.
docs/user/ui/incident-alerts.md
+161 -5
@@ -1,11 +1,167 @@
1 -# Incident Alerts
1 +---
2 +title: Incident alerts
3 +description: How to triage, filter, tag, and collaborate on alerts in SOCFortress CoPilot.
4 +---
5
3 -**Menu:** Incident Management → Alerts
6 +# Incident alerts
7
5 -**Best for:** SOC operators / analysts
8 +**Menu:** Incident Management → Alerts
9
10 This is your primary triage queue.
11
9 -Deep link tip: `/incident-management/alerts?alert_id=<id>`
10 -
12 ![Incident Alerts](../../assets/ui/incident-alerts.png)
13 +
14 +---
15 +
16 +## What you’re looking at
17 +
18 +The Alerts view is split into two parts:
19 +
20 +- **Alerts list** (left): your queue (newest/most relevant alerts)
21 +- **Alert details** (right or modal): the selected alert, with tabs like **Overview** and **Timeline**
22 +
23 +Deep link tip: you can open/highlight an alert directly with:
24 +
25 +`/incident-management/alerts?alert_id=<id>`
26 +
27 +---
28 +
29 +## Step 1 — Triage an alert (quick workflow)
30 +
31 +1) Open **Incident Management → Alerts**
32 +2) Click an alert in the list to open **details**
33 +3) In **Overview**, confirm:
34 + - **Customer** (tenant)
35 + - **Title / Description**
36 + - **Assets** impacted (an alert can include multiple assets)
37 + - Any existing **Tags**, **Comments**, and **IOCs**
38 +4) Decide your next action:
39 + - add a **Comment** (notes + handoff)
40 + - add an **IOC** (evidence you want tracked)
41 + - apply **Tags** (triage labels + RBAC visibility)
42 + - move to a **Case** (if you need investigation tracking)
43 +
44 +---
45 +
46 +## Step 2 — Filter the queue (find what matters fast)
47 +
48 +Use the filter controls to narrow your queue.
49 +
50 +![Filter by Customer Code + Tag](../../assets/ui/incident-alerts-filters-customer-tag.png)
51 +
52 +### UI callout: Add filter → Customer Code + Tag
53 +
54 +1) Click **Add filter**
55 +2) Add **Customer Code**
56 + - Pick a tenant from the dropdown (shows as `#<code> - <name>`)
57 +3) Add **Tag**
58 + - The Tag filter is **multi-select**
59 + - You can type a tag and press **Enter** to add it
60 +4) Click **Submit** to apply
61 +
62 +Available filters include:
63 +
64 +- **Status** (Open / Closed / In progress)
65 +- **Assigned To** (dropdown)
66 +- **Customer Code** (dropdown)
67 +- **Source** (dropdown)
68 +- **Tag** (multi-select; type + Enter)
69 +- **Title** (text)
70 +- **Asset Name** (text)
71 +- **IoC** (text)
72 +
73 +Notes:
74 +- Filters are intended to speed up triage — they don’t bypass security.
75 +- **Customer scoping** and **tag-based visibility** are enforced server-side.
76 +
77 +---
78 +
79 +## Step 3 — Apply tags (triage + access control)
80 +
81 +Tags are used for two things:
82 +
83 +1) **Triage / workflow labels** (examples: `needs-validation`, `high-confidence`, `containment`, `false-positive`)
84 +2) **Role-based access control (RBAC)**: some environments restrict alert visibility by tag.
85 +
86 +Operator-facing tips:
87 +- If an alert “disappears” from your view, it may be because:
88 + - you no longer have access to that **customer**, or
89 + - you don’t have access to one of the alert’s **tags**.
90 +
91 +---
92 +
93 +## Step 4 — Understand assets on alerts (why one alert can have many)
94 +
95 +![Alert details (Overview)](../../assets/ui/incident-alerts-details-overview.png)
96 +
97 +![Alert details (Assets)](../../assets/ui/incident-alerts-details-assets.png)
98 +
99 +An alert can be linked to **multiple assets** (hosts/users/entities).
100 +
101 +CoPilot also has **dedup/merge** behavior:
102 +
103 +- If a *new incoming alert* matches an **existing OPEN alert** for the **same customer** and has the **same title**, CoPilot will **not** create a second alert.
104 +- Instead, it **adds the new asset** to the existing alert.
105 +- A new alert is created when:
106 + - the previous alert was moved to a **CLOSED** phase for that customer, or
107 + - the same title appears for a **different customer**.
108 +
109 +Why this matters in triage:
110 +- The alert title may look “unchanged,” but the **asset list grows**, which is often your first signal that scope expanded.
111 +
112 +---
113 +
114 +## Step 5 — Comments and IOCs (collaboration + evidence)
115 +
116 +![Alert details (Comments)](../../assets/ui/incident-alerts-details-comments.png)
117 +
118 +![Alert details (IoCs)](../../assets/ui/incident-alerts-details-iocs.png)
119 +
120 +In the alert details pane, use the tabs:
121 +- **Comments** (for notes + handoff)
122 +- **IoCs** (for evidence you want tracked)
123 +
124 +### UI callout: Add a comment
125 +
126 +1) Open the alert details
127 +2) Click the **Comments** tab
128 +3) Type into **“Write a new comment…”**
129 +4) Click **Send comment**
130 +
131 +Tip: use comments for decision logging (“why we think this is benign/malicious”), scope notes, and handoff.
132 +
133 +### UI callout: Add an IOC
134 +
135 +![Create IoC form](../../assets/ui/incident-alerts-create-ioc.png)
136 +
137 +1) Open the alert details
138 +2) Click the **IoCs** tab
139 +3) Click **Create IoC**
140 +4) Fill out:
141 + - **Description**
142 + - **Type** (IP / DOMAIN / HASH / URL)
143 + - **Value**
144 +5) Click **Submit**
145 +
146 +Notes:
147 +- The **Value** field is disabled until you select a **Type**.
148 +- IOCs can be deleted later from the IoCs list.
149 +
150 +---
151 +
152 +## Timeline (audit trail)
153 +
154 +Use the **Timeline** tab to review alert activity over time (updates, notes, linked context).
155 +
156 +---
157 +
158 +## Common gotchas
159 +
160 +### “Why didn’t a new alert get created?”
161 +It was likely merged into an existing OPEN alert (same customer + same title) and the new entity showed up under **Assets**.
162 +
163 +### “I can’t delete this alert in bulk”
164 +Bulk delete intentionally skips alerts that are **linked to cases**.
165 +
166 +### “Why can’t I see an alert my teammate can see?”
167 +Tag-based RBAC and customer access are enforced server-side. Differences in **tag access** or **customer access** can change visibility.
docs/user/ui/incident-cases.md
+109 -4
@@ -1,11 +1,116 @@
1 -# Incident Cases
1 +---
2 +title: Incident cases
3 +description: How to build and run an investigation case by linking multiple alerts, tracking work, and generating reports.
4 +---
5 +
6 +# Incident cases
7
8 **Menu:** Incident Management → Cases
9
5 -**Best for:** SOC operators / analysts
10 +Cases are where you **bundle related alerts into one investigation** (example: Wazuh + firewall + third‑party integration alerts) and track the work from triage → resolution.
11
7 -Cases track investigation lifecycle and allow you to link related alerts, comments, and artifacts.
12 +Deep link tip: you can open/highlight a case directly with:
13
9 -Deep link tip: `/incident-management/cases?case_id=<id>`
14 +`/incident-management/cases?case_id=<id>`
15
16 ![Incident Cases](../../assets/ui/incident-cases.png)
17 +
18 +---
19 +
20 +## What you’re looking at
21 +
22 +The Cases view is split into two parts:
23 +
24 +- **Cases list** (left): your queue of open/in‑progress/closed cases
25 +- **Case details** (right or modal): the selected case, with tabs like:
26 + - **Overview**
27 + - **Alerts** (linked alerts)
28 + - **Comments**
29 + - **Data Store**
30 +
31 +---
32 +
33 +## Step 1 — Create or open a case
34 +
35 +![Case details (Overview)](../../assets/ui/incident-cases-details-overview.png)
36 +
37 +1) Open **Incident Management → Cases**
38 +2) Click a case in the list to open **details**
39 +3) Use **Overview** to confirm:
40 + - case name + description
41 + - customer (tenant)
42 + - status + assignee
43 +
44 +---
45 +
46 +## Step 2 — Link multiple alerts to the same case
47 +
48 +A case becomes valuable when it holds *all the signals* for the incident.
49 +
50 +Example workflow:
51 +- A **Wazuh** alert fires (endpoint)
52 +- A **firewall** alert fires (network)
53 +- A **third‑party integration** alert fires (cloud / email / EDR)
54 +
55 +Link them all to the same case so the case becomes the single place to:
56 +- see the full timeline of signals
57 +- coordinate comments
58 +- generate a consolidated report
59 +
60 +### UI callout: Review linked alerts
61 +
62 +![Case details (Alerts)](../../assets/ui/incident-cases-details-alerts.png)
63 +
64 +1) Open the case details
65 +2) Click the **Alerts** tab
66 +3) Confirm all related alerts are listed under this case
67 +
68 +> Tip: You can link alerts from the **Alerts** screen as well (operators usually start from an alert, then attach it to an existing case).
69 +
70 +---
71 +
72 +## Step 3 — Use comments for investigation notes + handoff
73 +
74 +![Case details (Comments)](../../assets/ui/incident-cases-details-comments.png)
75 +
76 +1) Open the case details
77 +2) Click **Comments**
78 +3) Add investigation notes, decisions, and handoff context
79 +
80 +---
81 +
82 +## Step 4 — Use Data Store for supporting material
83 +
84 +![Case details (Data Store)](../../assets/ui/incident-cases-details-datastore.png)
85 +
86 +Use **Data Store** to keep files tied to the case (exports, screenshots, timelines, supporting artifacts).
87 +
88 +---
89 +
90 +## Step 5 — Generate a case report (Jinja templates)
91 +
92 +Cases can generate reports using templates.
93 +
94 +### UI callout: Generate Report
95 +
96 +![Generate report modal](../../assets/ui/incident-cases-generate-report.png)
97 +
98 +1) Open the case details
99 +2) In **Overview**, click **Generate Report**
100 +3) Choose a **Template**
101 +4) Enter a **Filename**
102 +5) Click **Generate**
103 +
104 +Template notes:
105 +- Templates are **customizable** and support **Jinja** templating.
106 +- Different template types may generate different outputs (for example: a `.docx` template vs an `.html` template used to generate a PDF).
107 +
108 +---
109 +
110 +## Common gotchas
111 +
112 +### “Why can’t I find all alerts for this incident in one place?”
113 +Make sure you link each relevant alert (endpoint + network + third‑party) into the same case via the **Alerts** tab.
114 +
115 +### “My report template isn’t available in the dropdown”
116 +Report templates are managed in the template manager (your environment may restrict who can upload/manage templates).
docs/user/ui/incident-sources.md
+125 -3
@@ -1,9 +1,131 @@
1 -# Incident Sources
1 +---
2 +title: Incident sources (Graylog → Alerts)
3 +description: Configure how CoPilot reads Graylog event alerts and turns them into Incident Management alerts.
4 +---
5 +
6 +# Incident sources (Graylog → Alerts)
7
8 **Menu:** Incident Management → Sources
9
5 -**Best for:** Admin/Engineer (setup) + Operator (awareness)
10 +**Best for:** Admin / Engineer
11 +
12 +Incident Sources define how CoPilot **turns Graylog event alerts into CoPilot Incident Alerts**.
13
7 -Sources define how alerts are grouped and routed into Incident Management.
14 +In practice, Sources answer:
15 +- *Which logs/index patterns are eligible to create alerts?*
16 +- *How do we group alerts by “source” (Wazuh vs O365 vs Mimecast vs …)?*
17 +- *Which fields become the alert title, asset, timestamp, and context we see in CoPilot?*
18
19 ![Incident Sources](../../assets/ui/incident-sources.png)
20 +
21 +---
22 +
23 +## How alerting works (mental model)
24 +
25 +CoPilot uses **Graylog** to do the detection logic and searching.
26 +
27 +High level:
28 +
29 +1) Graylog evaluates **Event Definitions** (your detection logic)
30 +2) When an event fires, Graylog writes an alert into an index (commonly `gl-events*`)
31 +3) CoPilot reads those event alerts and **creates/updates** alerts inside **Incident Management → Alerts**
32 +
33 +![Graylog event definition → gl-events* (placeholder)](../../assets/ui/incident-sources-graylog-event-def.png)
34 +
35 +---
36 +
37 +## What a “Source” means in CoPilot
38 +
39 +A **Source** is essentially an **alert category**.
40 +
41 +Examples:
42 +- **Wazuh** (endpoint alerts)
43 +- **Office 365**
44 +- **Mimecast**
45 +- **CrowdStrike**
46 +- **Firewall / Syslog**
47 +
48 +This keeps your triage queue clean and helps you group alerts by where they came from.
49 +
50 +---
51 +
52 +## Step 1 — Create a source
53 +
54 +![Sources list (placeholder)](../../assets/ui/incident-sources-list.png)
55 +
56 +1) Open **Incident Management → Sources**
57 +2) Click to **add** a new source
58 +3) Give it a name you’ll use consistently (example: `wazuh`, `office365`, `mimecast`)
59 +
60 +---
61 +
62 +## Step 2 — Choose the index pattern(s) for this source
63 +
64 +![Create source (placeholder)](../../assets/ui/incident-sources-create-source.png)
65 +
66 +You’ll select which index patterns/log sources are relevant for this alert source.
67 +
68 +Important:
69 +- This does **not** mean “alerts can only be created from this one index.”
70 +- It’s defining what data CoPilot can use as **alert context** when it builds the alert record.
71 +
72 +---
73 +
74 +## Step 3 — Map the fields CoPilot needs (the important part)
75 +
76 +![Field mapping (placeholder)](../../assets/ui/incident-sources-field-mapping.png)
77 +
78 +A source defines which fields CoPilot should use when it creates an alert.
79 +
80 +### Alert title field
81 +This becomes the alert’s **title** in CoPilot.
82 +
83 +Example (Wazuh):
84 +- rule description is often the best title field (it explains *why* it fired).
85 +
86 +### Asset name field
87 +This controls which entity becomes the **Asset** on the alert (and is key for dedup/merging behavior).
88 +
89 +Example (Wazuh):
90 +- agent name is commonly used as the asset name.
91 +
92 +### Time field
93 +This controls which timestamp CoPilot uses for alert ordering/timelines.
94 +
95 +Tip:
96 +- Pick the most reliable timestamp for the detection record you’re using.
97 +
98 +### Context fields
99 +These are the fields you want visible inside the alert details.
100 +
101 +Important distinction:
102 +- Context fields are **not** the detection logic.
103 +- Detection logic stays in **Graylog Event Definitions**.
104 +- Context fields define what metadata CoPilot stores/displays when the alert fires.
105 +
106 +---
107 +
108 +## Step 4 — Validate end-to-end
109 +
110 +1) In Graylog, confirm your **Event Definition** is firing (test with a known event)
111 +2) Confirm Graylog writes events into `gl-events*`
112 +3) In CoPilot, confirm a new alert appears under **Incident Management → Alerts** with:
113 + - correct **Source**
114 + - correct **Title**
115 + - correct **Asset**
116 + - useful **Context** fields
117 +
118 +---
119 +
120 +## Common gotchas
121 +
122 +### “Graylog is alerting, but CoPilot shows nothing”
123 +Usually one of:
124 +- the event alerts aren’t being written where CoPilot expects (index / permissions)
125 +- source field mappings don’t match the fields in the event payload
126 +
127 +### “Alerts are grouped wrong / mixed between integrations”
128 +Create separate Sources (Wazuh vs O365 vs Mimecast vs firewall) and ensure your Graylog event definitions populate the fields needed to classify them.
129 +
130 +### “Alerts don’t have enough metadata”
131 +Add more **context fields** to the source mapping so CoPilot can store/display the details operators need.
docs/user/ui/indices-management.md
+69 -1
@@ -1,5 +1,73 @@
1 -# Index Management
1 +---
2 +title: Index management (Wazuh Indexer)
3 +description: Monitor index health, disk usage by customer, and manage retention in the Wazuh Indexer.
4 +---
5 +
6 +# Index management (Wazuh Indexer)
7
8 **Menu:** Indices → Index Management
9
10 +**Best for:** Admin / Engineer
11 +
12 +Index Management gives you an operational view of your **Wazuh Indexer** storage and index health.
13 +
14 +This matters because the indexer is where your SIEM data lives — if storage or index health degrades, search/alerting and investigations degrade with it.
15 +
16 ![Index Management](../../assets/ui/indices-management.png)
17 +
18 +---
19 +
20 +## What you can do here
21 +
22 +- Check overall **indexer health** (high-level “are we OK?” signal)
23 +- See **storage usage by customer** (who is consuming the most disk)
24 +- Identify large/noisy indexes
25 +- Delete indexes when appropriate (careful: destructive)
26 +
27 +---
28 +
29 +## Step 1 — Review overall health
30 +
31 +![Overall health (placeholder)](../../assets/ui/indices-management-health.png)
32 +
33 +Use this as your first stop when you see:
34 +- searches slowing down
35 +- ingestion backpressure
36 +- dashboards timing out
37 +- alerting gaps
38 +
39 +---
40 +
41 +## Step 2 — Review storage by customer (who is using the disk?)
42 +
43 +![Customer storage (placeholder)](../../assets/ui/indices-management-customer-storage.png)
44 +
45 +This view helps you answer:
46 +- Which customers have the highest log volume?
47 +- Which customer is driving storage growth this week?
48 +- Do we need to tune ingestion/noise upstream?
49 +
50 +Practical actions:
51 +- confirm high-volume customers match expectations (endpoint count, integrations)
52 +- tune noisy sources (drop/suppress earlier in the pipeline)
53 +- adjust retention strategy
54 +
55 +---
56 +
57 +## Step 3 — Delete indexes (only when you mean it)
58 +
59 +![Delete index (placeholder)](../../assets/ui/indices-management-delete-index.png)
60 +
61 +Deleting an index is destructive.
62 +
63 +Use cases:
64 +- removing test/lab data
65 +- cleaning up misconfigured pipelines that created junk indexes
66 +- emergency disk recovery (prefer snapshots + retention tuning first)
67 +
68 +---
69 +
70 +## Related: cold storage via Snapshot & Restore
71 +
72 +If you need to free up space without losing historical logs, use:
73 +- [Snapshot & Restore](/user/ui/indices-snapshots)
docs/user/ui/indices-snapshots.md
+82 -1
@@ -1,5 +1,86 @@
1 -# Snapshot & Restore
1 +---
2 +title: Snapshot & restore (cold storage)
3 +description: Offload old indexes into snapshot repositories and restore them later when needed.
4 +---
5 +
6 +# Snapshot & restore (cold storage)
7
8 **Menu:** Indices → Snapshot & Restore
9
10 +**Best for:** Admin / Engineer
11 +
12 +Snapshots let you **offload older indexes into cold storage** (snapshot repositories) so you can make room for new events while still keeping the ability to restore history later.
13 +
14 ![Snapshot & Restore](../../assets/ui/indices-snapshots.png)
15 +
16 +---
17 +
18 +## When to use snapshots
19 +
20 +Use snapshots when you need to:
21 +- reduce disk usage on the indexer
22 +- keep long-term historical logs without keeping them “hot”
23 +- preserve data before major maintenance/changes
24 +
25 +---
26 +
27 +## Repository registration is required
28 +
29 +CoPilot can manage snapshots, but the snapshot **repository must exist and be registered** in the Wazuh Indexer cluster first.
30 +
31 +In the UI you’ll see this warning if none exist:
32 +
33 +> “Snapshot repositories must be manually registered in your Wazuh Indexer cluster …”
34 +
35 +![Repositories (placeholder)](../../assets/ui/indices-snapshots-repos.png)
36 +
37 +---
38 +
39 +## Step 1 — Verify repositories
40 +
41 +1) Open **Indices → Snapshot & Restore**
42 +2) Click **Repositories**
43 +3) Confirm at least one repository exists and is healthy
44 +
45 +---
46 +
47 +## Step 2 — Create a snapshot
48 +
49 +![Create snapshot (placeholder)](../../assets/ui/indices-snapshots-create-snapshot.png)
50 +
51 +1) Go to **Snapshots**
52 +2) Choose the repository
53 +3) Select the index/index pattern(s) to snapshot
54 +4) Run the snapshot
55 +
56 +---
57 +
58 +## Step 3 — Restore a snapshot (when you need old data)
59 +
60 +![Restore snapshot (placeholder)](../../assets/ui/indices-snapshots-restore.png)
61 +
62 +Restoring brings historical data back so you can:
63 +- investigate an incident with older timelines
64 +- run retro-hunts
65 +- rebuild context for cases
66 +
67 +---
68 +
69 +## Step 4 — Schedule snapshots (automation)
70 +
71 +![Scheduled snapshots (placeholder)](../../assets/ui/indices-snapshots-schedule.png)
72 +
73 +If you regularly offload older logs, scheduled snapshots help keep disk usage stable.
74 +
75 +---
76 +
77 +## Common gotchas
78 +
79 +### “No snapshot repositories found”
80 +A repository must be registered in the Wazuh Indexer cluster before snapshots can run.
81 +
82 +### “Snapshots succeed but disk is still full”
83 +Snapshots don’t automatically delete hot indexes. You still need a retention plan:
84 +- delete old indexes (with intent)
85 +- reduce ingestion volume
86 +- tune retention windows
docs/user/ui/report-creation.md
+25 -4
@@ -1,9 +1,30 @@
1 -# Report Creation
1 +---
2 +title: Report creation (operator)
3 +description: Generate General (Grafana-to-PDF), Vulnerability, and SCA reports in CoPilot.
4 +---
5 +
6 +# Report creation
7
8 **Menu:** Report Creation
9
5 -**Best for:** Admin/Engineer + SOC leadership
10 +**Best for:** SOC operators / analysts + SOC leadership
11 +
12 +CoPilot supports three report types:
13 +
14 +1) **General reports**: snapshots Grafana dashboard panels and generates a PDF
15 +2) **Vulnerability reports**: pulls vulnerability data from the **Wazuh Vulnerability Detection** module
16 +3) **SCA reports**: pulls hardening/compliance results from the **Wazuh SCA** module
17 +
18 +---
19 +
20 +## Choose the report type
21 +
22 +Use the Report Creation area to select which report you want to generate:
23
7 -Report Creation is where you generate PDF/report outputs (Grafana dashboards and security reporting).
24 +- [General reports](/user/ui/report-general)
25 +- [Vulnerability reports](/user/ui/report-vulnerability)
26 +- [SCA reports](/user/ui/report-sca)
27
9 -![Report Creation](../../assets/ui/report-general.png)
28 +Tip:
29 +- Use **General reports** for executive summaries and “what did we see?” dashboards.
30 +- Use **Vulnerability/SCA** reports for operational security posture and remediation tracking.
docs/user/ui/report-general.md
+58 -1
@@ -1,5 +1,62 @@
1 -# General Reports
1 +---
2 +title: General reports (Grafana → PDF)
3 +description: Create PDF reports by snapshotting Grafana panels and combining them into a single document.
4 +---
5 +
6 +# General reports (Grafana → PDF)
7
8 **Menu:** Report Creation → General Reports
9
10 +General reports generate a PDF by taking snapshots of selected **Grafana dashboard panels**.
11 +
12 ![General Reports](../../assets/ui/report-general.png)
13 +
14 +---
15 +
16 +## What you need
17 +
18 +- A Grafana org + dashboard you can access
19 +- The panels you want to include
20 +
21 +---
22 +
23 +## Step 1 — Pick dashboard + time range
24 +
25 +![Report wizard (placeholder)](../../assets/ui/report-general-wizard.png)
26 +
27 +1) Open **Report Creation → General Reports**
28 +2) Select the **Organization**
29 +3) Select the **Dashboard**
30 +4) Choose a **time range** (ex: `24h`, `7d`, `30d`)
31 +
32 +---
33 +
34 +## Step 2 — Select panels to include
35 +
36 +![Panels selection (placeholder)](../../assets/ui/report-general-panels.png)
37 +
38 +1) Pick the panels you want in the report
39 +2) Arrange/confirm the selection
40 +
41 +---
42 +
43 +## Step 3 — Generate the PDF
44 +
45 +When you generate the report, CoPilot will:
46 +- create secure iframe links for the selected panels
47 +- capture panel images
48 +- assemble a PDF
49 +
50 +Operator tips:
51 +- Keep reports focused: pick 6–12 panels rather than trying to include everything.
52 +- Use consistent time ranges so reports are comparable week-to-week.
53 +
54 +---
55 +
56 +## Common gotchas
57 +
58 +### “This only works on desktop”
59 +General report generation is desktop-oriented (panel selection/layout).
60 +
61 +### “Panels are blank / missing data”
62 +Usually a Grafana permissions or time range issue.
docs/user/ui/report-sca.md
+57 -1
@@ -1,5 +1,61 @@
1 -# SCA Reports
1 +---
2 +title: SCA reports (Wazuh)
3 +description: Generate CSV reports for Security Configuration Assessment (SCA) results from Wazuh policy scans.
4 +---
5 +
6 +# SCA reports (Wazuh)
7
8 **Menu:** Report Creation → SCA Reports
9
10 +SCA (Security Configuration Assessment) reports pull from the **Wazuh SCA module**, which evaluates endpoints against hardening/compliance policies.
11 +
12 +Wazuh SCA model (simplified):
13 +- agents scan against SCA **policies** (rules/checks)
14 +- results are tracked per check (pass/fail/not applicable)
15 +- agents send diffs/summary to the manager to reduce noise
16 +
17 ![SCA Reports](../../assets/ui/report-sca.png)
18 +
19 +---
20 +
21 +## What you can do
22 +
23 +- Review SCA posture across a customer (policy score, failing checks)
24 +- Generate a CSV report for auditing and remediation planning
25 +
26 +---
27 +
28 +## Step 1 — Review SCA overview
29 +
30 +![SCA overview (placeholder)](../../assets/ui/report-sca-overview.png)
31 +
32 +Common operator filters:
33 +- Customer
34 +- Agent/host
35 +- Policy id/name
36 +- Minimum/maximum score
37 +
38 +---
39 +
40 +## Step 2 — Generate and download
41 +
42 +![Generate SCA report (placeholder)](../../assets/ui/report-sca-generate.png)
43 +
44 +When you generate an SCA report, CoPilot produces a **CSV** containing policy results.
45 +
46 +Operator tips:
47 +- Treat SCA as a “secure baseline drift” signal.
48 +- Use policy-based grouping (CIS/NIST mappings) for audit discussions.
49 +
50 +---
51 +
52 +## Common gotchas
53 +
54 +### “No SCA data found”
55 +Common causes:
56 +- SCA is not enabled on the agents
57 +- policies are not deployed
58 +- the agents haven’t scanned yet (or haven’t checked in)
59 +
60 +### “Why did results change?”
61 +SCA alerts are typically emitted on **status change** between scans (pass↔fail↔n/a) rather than spamming every scan.
docs/user/ui/report-vulnerability.md
+57 -1
@@ -1,5 +1,61 @@
1 -# Vulnerability Reports
1 +---
2 +title: Vulnerability reports (Wazuh)
3 +description: Generate CSV reports from the Wazuh Vulnerability Detection module data in the Wazuh Indexer.
4 +---
5 +
6 +# Vulnerability reports (Wazuh)
7
8 **Menu:** Report Creation → Vulnerability Reports
9
10 +Vulnerability reports pull data from the **Wazuh Vulnerability Detection** module.
11 +
12 +Wazuh’s model (simplified):
13 +- agents collect software inventory via **Syscollector**
14 +- the manager correlates inventory with CTI feeds and flags CVEs
15 +- results are indexed and queryable (inventory + alerts)
16 +
17 ![Vulnerability Reports](../../assets/ui/report-vulnerability.png)
18 +
19 +---
20 +
21 +## What you can generate
22 +
23 +- A vulnerability report for a specific **customer/tenant**
24 +- Filtered views by severity, agent, package, CVE, etc. (depending on UI/options)
25 +
26 +---
27 +
28 +## Step 1 — Filter what you want to report on
29 +
30 +![Vulnerability filters (placeholder)](../../assets/ui/report-vulnerability-filters.png)
31 +
32 +Common operator filters:
33 +- Customer
34 +- Severity (Critical/High/Medium/Low)
35 +- Agent/host
36 +- Specific CVE (`CVE-…`)
37 +
38 +---
39 +
40 +## Step 2 — Generate and download
41 +
42 +![Generate vulnerability report (placeholder)](../../assets/ui/report-vulnerability-generate.png)
43 +
44 +When you generate a report, CoPilot produces a **CSV** and stores it for download.
45 +
46 +Operator tips:
47 +- Use “Critical + High” first for remediation prioritization.
48 +- If you’re generating very large reports, prefer background generation if available.
49 +
50 +---
51 +
52 +## Common gotchas
53 +
54 +### “The report is empty”
55 +Common causes:
56 +- the Wazuh vulnerability module isn’t enabled or isn’t indexing status
57 +- the customer has no Syscollector inventory data
58 +- filters are too narrow
59 +
60 +### “Why do vulnerabilities exist even if we patched?”
61 +Wazuh correlates inventory versions + hotfix data (Windows) against CVE ranges. Inventory and patch state need to be current.
docs/videos.mdx new
+15
@@ -0,0 +1,15 @@
1 +---
2 +title: Videos
3 +description: The CoPilot YouTube playlist, summarized and organized by role.
4 +---
5 +
6 +# Videos
7 +
8 +Use the playlist like documentation: each video is linked and summarized into skimmable bullets.
9 +
10 +- [Open the video library](/user/videos)
11 +
12 +## Role-based tracks
13 +
14 +- [Operator track](/user/videos#operator-track)
15 +- [Admin/Engineer track](/user/videos#adminengineer-track)
mkdocs.yml
+1 -1
@@ -70,7 +70,7 @@ extra_css:
70 - stylesheets/extra.css
71
72 nav:
73 - - Home: index.md
73 + - Home: index-mkdocs.md
74 - User Guide:
75 - Overview: user/overview.md
76 - Quickstart (Operators): user/operators-quickstart.md