elastic / elastic/apm

[SIEM integration] Investigate if agents can capture authentication related information

Open
#136 4 comments 1 reaction 0 assignees View on GitHub
apm-agents
Dominant language
Gherkin
Stars
427
Forks
125
PR merge metrics
No merged PRs in 30d

Description

## Description of the issue
We started to investigate possible ways to use APM collected information for SIEM purposes. One of proposals is to have APM capture authentication attempts and use captured data for SIEM analysis. See https://github.com/elastic/apm/issues/128 for more details.
For the first milestone we would like to limit the scope to [Form-based authentication](https://en.wikipedia.org/wiki/HTTP%2BHTML_form-based_authentication) - more advanced authentication protocols such as OpenID Connect or SAML are not part of the scope at this stage.

In this issue we would like to summarize which authentication related information APM agents can capture and what would be the effort to implement the missing pieces. The data we would like agents to capture is:
1. Detect transactions that are authentication attempts - that is the transactions that were invoked for authentication purposes. For example transaction for POST request to `/login` with form data containing user's credentials should be marked as "transaction for authentication purposes" while subsequent transactions (that probably check a cookie to ensure that user is already authenticated) should not be marked as "transaction for authentication purposes"
2. Capture authentication attempts outcome. Possible values are `success`,` failure` and `unknown` . `unknown` can be used for cases when authentication did not succeed but not because credentials were checked and found invalid but instead check procedure itself did not complete for some technical reason. For example some backend service on which application relies for authentication was not available.
3. Capture username supplied as part of user's credentials for authentication attempt. Please note that we would like to capture username even for authentication attempts with outcome other than `success`. It might be even more interesting from SIEM point of view to see username used for authentication attempts that did not succeed.

## What we ask agent teams to do

@elastic/apm-agent-devs Please leave a comment answering the question: can your agent capture authentication related information described above, namely: 1) Detect authentication attempts, 2) Authentication outcome and 3) Username and what would be approximate effort estimate to implement it?

In addition if you have any other suggestion or comment regarding the subject of SIEM-APM integration around authentication related information (for example maybe we should not use `transaction` events to transfer authentication related information from agents to APM Server - maybe we should use `span` events or introduce a new type of event, etc.) please leave a comment in this issue.

## Agents status summary

| Agent | Detect authentication attempts | Outcome | Username | Notes
| ---------|:---------------------------------------:|:----------:|:------------:|:----:|
| .NET | | | | |
| Go | | | | |
| Java | | | | |
| Node.js | | | | |
| Python | | | | |
| Ruby | | | | |

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.