Skip to content

Commit 5d58b32

Browse files
keeper_security_siem_integration: new integration package for Keeper Security (elastic#15089)
Add Keeper Security agentless integration package This PR introduces a new Keeper Security integration that enables truly agentless audit event collection by allowing Keeper to push data directly to Elasticsearch via the Bulk API without requiring any Elastic Agent installation. WHAT: New integration package keeper_security_siem_integration with complete ECS field mapping Agentless architecture: Keeper Security Platform → Elasticsearch Bulk API → Ingest Pipeline → Index Comprehensive ingest pipeline with timestamp normalization, GeoIP enrichment, and ECS compliance Pre-built Kibana dashboard for audit event visualization Support for multiple timestamp formats and robust error handling Built-in field mappings for user information, source IPs, organization data, and related entities WHY: Eliminates the operational overhead of installing and managing Elastic Agents Provides real-time audit event processing directly from Keeper Security platform Ensures consistent ECS field mapping for better integration with Elastic Security workflows Offers immediate value with pre-configured dashboards and visualizations Supports enterprise security monitoring with minimal infrastructure requirements The integration processes Keeper audit events (authentication, security actions, user management) and enriches them with geographic location data, user correlation fields, and standardized ECS categorization. Add keeper_security_siem_integration integration package. The integration does not make use of elastic-agent, instead depending only on the Elasticsearch bulk API. Keeper fields are mapped to their corresponding ECS fields where possible. The integration includes a Kibana dashboard for audit event visualization. No system testing is performed due to testing infrastructure limitations for integrations that do not make use of an agent. The integration has been tested against a live instance of the Keeper data source. Pipeline test samples were derived from live data samples.
1 parent 1a52bf4 commit 5d58b32

File tree

16 files changed

+2397
-0
lines changed

16 files changed

+2397
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@
295295
/packages/juniper_srx @elastic/integration-experience
296296
/packages/kafka @elastic/obs-infraobs-integrations
297297
/packages/kafka_log @elastic/obs-infraobs-integrations
298+
/packages/keeper_security_siem_integration @elastic/security-service-integrations
298299
/packages/keycloak @elastic/security-service-integrations
299300
/packages/kibana @elastic/stack-monitoring
300301
/packages/kubernetes @elastic/obs-ds-hosted-services
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dependencies:
2+
ecs:
3+
reference: [email protected]
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
# Keeper Security Integration
2+
3+
The Keeper Security integration provides **truly agentless** data collection by allowing Keeper to push audit events directly to Elasticsearch via the Bulk API. This integration enables seamless monitoring and analysis of Keeper Security platform activities without requiring any Elastic Agent installation.
4+
5+
## Overview
6+
7+
### Compatibility
8+
9+
This integration is compatible with:
10+
- Keeper Security Enterprise Platform (all versions that support audit event streaming)
11+
- Elasticsearch 8.0+ with Bulk API access
12+
- Kibana 9.0+ for dashboard visualization
13+
- Self-managed and Elastic Cloud deployments
14+
15+
### How it works
16+
17+
The Keeper Security integration uses a direct push architecture where:
18+
19+
1. **Keeper Security Platform** generates audit events for user activities and administrative actions
20+
2. **Direct API Push**: Keeper pushes events directly to Elasticsearch using the Bulk API
21+
3. **Ingest Pipeline**: Events are processed through the `logs-keeper.audit-1.0.0` ingest pipeline
22+
4. **ECS Mapping**: Data is automatically mapped to Elastic Common Schema (ECS) fields
23+
5. **Index Storage**: Processed events are stored in `logs-keeper.audit-*` indices
24+
6. **Visualization**: Pre-built dashboards provide immediate insights into Keeper activities
25+
26+
This architecture provides real-time event processing with minimal latency and eliminates the need for intermediate collection agents.
27+
28+
## What data does this integration collect?
29+
30+
The Keeper Security integration collects comprehensive audit events including:
31+
32+
### Event Types
33+
- **Authentication Events**: Two-factor authentication changes, login activities
34+
- **Security Actions**: Master password changes, security policy modifications
35+
- **Administrative Operations**: User management, role assignments, policy updates
36+
- **Record Access**: Password retrievals, file access, sharing activities
37+
- **Enterprise Management**: Organization settings, compliance actions
38+
39+
### Use Cases
40+
- **Security Monitoring**: Track unauthorized access attempts and security policy violations
41+
- **Compliance Reporting**: Generate audit trails for regulatory requirements (SOX, HIPAA, PCI-DSS)
42+
- **User Activity Analysis**: Monitor user behavior patterns and identify anomalies
43+
- **Incident Response**: Investigate security incidents with detailed audit trails
44+
- **Risk Assessment**: Analyze access patterns and identify potential security risks
45+
46+
## What do I need to use this integration?
47+
48+
### Elastic Prerequisites
49+
- **Elasticsearch Cluster**: Self-managed (8.0+) or Elastic Cloud deployment
50+
- **Kibana Access**: Version 9.0+ for dashboard and configuration management
51+
- **API Permissions**: Ability to create API keys with index write privileges
52+
- **GeoIP Database**: Recommended for IP geolocation enrichment
53+
54+
### Keeper Security Prerequisites
55+
- **Keeper Enterprise Account**: Active enterprise subscription
56+
- **Administrative Access**: Enterprise admin privileges to configure audit streaming
57+
- **Network Connectivity**: Outbound HTTPS access from Keeper to your Elasticsearch cluster
58+
- **API Integration**: Keeper platform configured for external audit streaming
59+
60+
## How do I deploy this integration?
61+
62+
For complete deployment instructions, refer to the {{url "getting-started-observability" "Observability Getting Started guide"}} for foundational setup steps.
63+
64+
### Onboard and configure
65+
66+
**1. Install Integration Assets**
67+
68+
In Kibana:
69+
1. Navigate to **Management > Integrations**
70+
2. Search for "Keeper Security"
71+
3. Click **Add Keeper Security**
72+
4. Click **Install assets only** (no agent policy needed)
73+
5. Confirm installation
74+
75+
This installs:
76+
- Index templates for `logs-keeper.audit-*`
77+
- Ingest pipeline `logs-keeper.audit-1.0.0`
78+
- Pre-built dashboards and visualizations
79+
- Field mappings and ECS compliance
80+
81+
**2. Create API Key**
82+
83+
In Kibana Dev Tools, execute:
84+
85+
```json
86+
POST /_security/api_key
87+
{
88+
"name": "keeper-integration",
89+
"expiration": "365d",
90+
"role_descriptors": {
91+
"keeper-writer": {
92+
"cluster": ["monitor"],
93+
"indices": [
94+
{
95+
"names": ["logs-keeper.audit-*"],
96+
"privileges": ["auto_configure", "create_doc"]
97+
}
98+
]
99+
}
100+
}
101+
}
102+
```
103+
104+
Copy the Base64 encoded API key for Keeper configuration.
105+
106+
**3. Enable GeoIP Enrichment (Recommended)**
107+
108+
Enable GeoIP database for IP geolocation:
109+
110+
```json
111+
PUT /_cluster/settings
112+
{
113+
"persistent": {
114+
"ingest.geoip.downloader.enabled": true,
115+
"ingest.geoip.downloader.poll.interval": "3d"
116+
}
117+
}
118+
```
119+
120+
**4. Configure Keeper Security Platform**
121+
122+
Contact your Keeper Security administrator to:
123+
- Configure audit event streaming to your Elasticsearch endpoint
124+
- Provide the API key and endpoint URL (`https://YOUR_HOST/logs-keeper.audit-1.0.0/_bulk`)
125+
- Verify network connectivity between Keeper and Elasticsearch
126+
127+
### Validation
128+
129+
**Test API Endpoint**:
130+
```bash
131+
curl --location 'https://YOUR_HOST/logs-keeper.audit-1.0.0/_bulk' \
132+
--header 'Authorization: ApiKey YOUR_API_KEY' \
133+
--header 'Content-Type: application/x-ndjson' \
134+
--data-raw '{"create":{}}
135+
{"test_event":"validation_test"}
136+
'
137+
```
138+
139+
**Verify Data Ingestion**:
140+
1. Go to **Discover** in Kibana
141+
2. Select index pattern: `logs-keeper.audit-*`
142+
3. Verify events appear with proper ECS field mapping
143+
144+
**Check Dashboard**:
145+
1. Navigate to **Analytics > Dashboard**
146+
2. Open "Keeper SIEM Integration - Dashboard"
147+
3. Confirm visualizations populate with incoming data
148+
149+
## Troubleshooting
150+
151+
### Common Issues
152+
153+
**No Data Appearing**
154+
- Verify API key permissions using the test curl command
155+
- Check Keeper Security platform audit streaming configuration
156+
- Confirm network connectivity between Keeper and Elasticsearch
157+
- Review Elasticsearch logs for ingestion errors
158+
159+
**Missing GeoIP Data**
160+
- Verify GeoIP downloader is enabled: `GET /_ingest/geoip/stats`
161+
- Check that public IP addresses are being processed (private IPs won't have geo data)
162+
- Allow time for GeoIP database download (initial setup can take several minutes)
163+
164+
**Field Mapping Issues**
165+
- Ensure integration assets were installed properly
166+
- Verify ingest pipeline `logs-keeper.audit-1.0.0` exists: `GET /_ingest/pipeline/logs-keeper.audit-1.0.0`
167+
- Check index template mapping: `GET /_index_template/logs-keeper.audit`
168+
169+
**Dashboard Not Loading**
170+
- Confirm Kibana version compatibility (9.0+)
171+
- Verify integration installation completed successfully
172+
- Check that data is present in the `logs-keeper.audit-*` indices
173+
174+
For additional troubleshooting, consult the {{url "security" "Elastic Security documentation"}} and Keeper Security platform documentation.
175+
176+
## Performance and scaling
177+
178+
### Architecture Recommendations
179+
180+
**Single Instance Deployment**:
181+
- Suitable for small to medium enterprises (<1000 events/hour)
182+
- Single Elasticsearch node with adequate storage
183+
- Basic monitoring and alerting
184+
185+
**High-Volume Deployment**:
186+
- Recommended for large enterprises (>1000 events/hour)
187+
- Multi-node Elasticsearch cluster with dedicated data nodes
188+
- Index lifecycle management (ILM) for automated data retention
189+
- Monitoring with dedicated monitoring cluster
190+
191+
### Scaling Considerations
192+
193+
**Event Volume**: Keeper audit events are typically low-volume but burst during peak activity periods. Plan for 10x normal volume during security incidents or mass administrative actions.
194+
195+
**Storage Planning**: Each audit event averages 1-2KB after processing. Estimate storage needs based on retention requirements and event frequency.
196+
197+
**Index Management**: Implement ILM policies to automatically manage index size and retention:
198+
199+
```json
200+
PUT /_ilm/policy/keeper-audit-policy
201+
{
202+
"policy": {
203+
"phases": {
204+
"hot": {
205+
"actions": {
206+
"rollover": {
207+
"max_size": "10GB",
208+
"max_age": "30d"
209+
}
210+
}
211+
},
212+
"warm": {
213+
"min_age": "30d",
214+
"actions": {
215+
"allocate": {
216+
"number_of_replicas": 0
217+
}
218+
}
219+
},
220+
"delete": {
221+
"min_age": "365d"
222+
}
223+
}
224+
}
225+
}
226+
```
227+
228+
## Reference
229+
230+
### Audit Events Reference
231+
232+
The Keeper Security integration processes audit events from the Keeper Security platform and maps them to ECS-compliant fields for analysis and visualization.
233+
234+
#### Sample Event
235+
236+
{{event "audit"}}
237+
238+
#### Exported Fields
239+
240+
{{fields "audit"}}
241+
242+
### APIs Used
243+
244+
This integration uses the following APIs:
245+
- **Elasticsearch Bulk API**: For direct event ingestion
246+
- **Elasticsearch Index Templates API**: For field mapping configuration
247+
- **Elasticsearch Ingest Pipeline API**: For event processing and enrichment
248+
- **Keeper Security Audit Streaming API**: For event delivery (configured on Keeper side)
249+
250+
### Ingest Pipeline
251+
252+
The integration uses the `logs-keeper.audit-1.0.0` ingest pipeline which:
253+
- Maps Keeper-specific fields to ECS schema
254+
- Enriches IP addresses with geographic information (when GeoIP is enabled)
255+
- Processes timestamps and ensures proper field types
256+
- Adds correlation fields for security analysis
257+
258+
### ML Modules
259+
260+
Currently, no machine learning modules are included with this integration. Custom ML jobs can be created to detect:
261+
- Anomalous authentication patterns
262+
- Unusual access times or locations
263+
- Bulk administrative actions
264+
- Suspicious user behavior patterns
265+
266+
### Change Log
267+
268+
Refer to the [CHANGELOG.md](../../../changelog.yml) for version history and updates.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
- version: "0.1.0"
2+
changes:
3+
- description: Initial release of Keeper Security agentless integration
4+
type: enhancement
5+
link: https://github.com/elastic/integrations/pull/15089
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"events": [
3+
{
4+
"remote_address": "192.168.1.100",
5+
"audit_event": "set_two_factor_on",
6+
"category": "admin",
7+
"client_version": "CLI.5.3.1",
8+
"username": "[email protected]",
9+
"enterprise_id": 1669,
10+
"timestamp": "2025-09-25T22:45:08.057Z"
11+
},
12+
{
13+
"remote_address": "10.0.0.50",
14+
"audit_event": "set_two_factor_off",
15+
"category": "admin",
16+
"client_version": "EMConsole.17.1.2",
17+
"username": "[email protected]",
18+
"enterprise_id": 1987,
19+
"timestamp": "2025-09-26T01:13:47.042Z"
20+
},
21+
{
22+
"remote_address": "203.0.113.10",
23+
"audit_event": "change_master_password",
24+
"category": "security",
25+
"client_version": "CLI.5.3.1",
26+
"username": "[email protected]",
27+
"enterprise_id": 1666,
28+
"timestamp": "2025-09-26T15:13:31.915Z"
29+
},
30+
{
31+
"remote_address": "172.16.0.25",
32+
"audit_event": "set_two_factor_off",
33+
"category": "security",
34+
"client_version": "EMConsole.18.0.0",
35+
"username": "[email protected]",
36+
"enterprise_id": 1088,
37+
"timestamp": "2025-09-26T06:46:05.810Z"
38+
}
39+
]
40+
}

0 commit comments

Comments
 (0)