Graylog2 / Graylog2/graylog2-server

Support for Immutable Indexes in OpenSearch to Prevent Log Tampering

Open
#23,699 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

👋 Hello Graylog team,

First, thank you for your amazing work on Graylog.
We are using Graylog in a compliance-sensitive environment, and we’d like to suggest an important new feature related to log integrity.

To comply with ISO/IEC 27001 and other security standards, we need to guarantee log integrity and protect against log tampering or falsification.
Currently, Graylog does not provide a built-in way to create immutable indexes in OpenSearch. This is a critical requirement for audit compliance.

Graylog manages its indexes in OpenSearch, but these indexes are fully mutable. A malicious user or administrator with access to OpenSearch could theoretically update or overwrite existing log documents, which violates immutability requirements for audit trails.

OpenSearch introduced the setting index.append_only.enabled=true to make an index append-only (immutable). This prevents updates of existing documents and ensures that logs cannot be falsified after being written.

I tested this manually with a custom API call:

```
curl -X PUT -H 'Content-Type: application/json' "http://localhost:9200/graylog_1" -d '
{
"settings": {
"index.append_only.enabled": true
}
}'

```

This works as expected in OpenSearch, but when Graylog starts, I get the following error:

```
Operation [INDEX] is not allowed with a custom document id a13e3725-94a1-11f0-be20-96f7b845026d as setting `index.append_only.enabled` is enabled for this index

```

This error suggests that Graylog requires control over the document IDs, which is incompatible with the append_only mode in OpenSearch.

Graylog should be able to create and manage append-only indexes in OpenSearch.
Once enabled, log entries should only be inserted (never updated or overwritten).
Graylog should handle document IDs in a way that is compatible with index.append_only.enabled.
This would ensure log immutability, a critical requirement for compliance with ISO/IEC 27001 and similar security standards.

Please add support for immutable (append-only) indexes in Graylog when using OpenSearch as the backend.
If full support is not possible immediately, at least provide a configuration mechanism so administrators can enforce immutability at the index level.

🙏 Thank you for considering this feature request!

### Environment

* Graylog Version: 6.3.3
* OpenSearch Version: 2.19.3
* MongoDB Version: 8.0.10

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.