28 Commits

Author SHA1 Message Date
Peter Wilson
a7026acef9
remove multierror package - from entry formatter (#28253) 2024-09-03 12:00:15 +01:00
Peter Wilson
a19195c901
unexport as much as possible in the audit package (#28039) 2024-08-09 17:03:29 +01:00
Peter Wilson
d824e572be
merge two consecutive if checks, update comments (#27963) 2024-08-05 13:54:37 +00:00
Peter Wilson
2dbb3d4dcb
Audit: rewrite audit entry formatting to improve performance (#27952)
* rewrite audit entry formatting to improve performance
2024-08-02 19:04:39 +01:00
Peter Wilson
aeae52fc4f
Audit: Use existing cloned object for hashing (don't re-clone) (#27913)
* unexport hashstructure funcs

* don't re-copy/clone LogInput fields when this object belongs to the pipeline
2024-07-31 10:47:10 +01:00
Peter Wilson
4f6c215a65
unexport hashstructure funcs (#27911) 2024-07-30 15:31:59 +01:00
Peter Wilson
961442c959
VAULT-23334: CE changes to support exclusion in audit (#26615)
* CE changes to support exclusion in audit

* Add an external test for audit exclusion

---------

Co-authored-by: Kuba Wieczorek <kuba.wieczorek@hashicorp.com>
2024-06-11 08:40:18 +01:00
Peter Wilson
555d29427a
move entry formatter config to its own file (#26576) 2024-04-22 15:50:57 +00:00
Peter Wilson
8bee54c89d
VAULT-24452: audit refactor (#26460)
* Refactor audit code into audit package
* remove builtin/audit
* removed unrequired files
2024-04-18 08:25:04 +01:00
Peter Wilson
3dc16db87e
VAULT-24798: audit - improve error messages (#26312)
* audit: remove 'op' from error messages and do some clean up

* Allow early error checking to be concerned with vault/Core vs. audit
2024-04-11 09:09:32 +01:00
Peter Wilson
e0a905e8f8
VAULT-25710: Audit - enforce header formatter requirement in EntryFormatter (#26239)
* Check Enterprise unseal order for audit funcs, enforce header formatter in audit entry formatter node
* ApplyConfig return empty headers (but never nil) when nil/empty supplied
* Add NoopHeaderFormatter and remove builtin audit testHeaderFormatters
2024-04-03 10:53:34 +01:00
Peter Wilson
5a1d20bd35
Audit: Timestamps on sink entries should match the creation time of the audit event (#26088)
* Sync timestamps in sinks to the creation time of the audit entry (event)

* changelog
2024-03-22 13:26:55 +00:00
Peter Wilson
5f1193b2bb
refactored audit package (#25879) 2024-03-12 10:09:37 +00:00
Peter Wilson
67c16342d8
VAULT-24013: Audit regression attempting to recover from panic (#25605)
* Add Logger to BackendConfig

* EntryFormatter use logger and recover panics

* Added TODO to consider

* Add 'name' to entry formatter

* Add test for the panic

* Fix NoopAudit with update params

* emit counter metric even when 0

* Fix vault package tests

* changelog

* Remove old comment during test writing
2024-02-26 10:33:30 +00:00
Peter Wilson
808cdfc2d2
Audit: some refactoring out of types.go (#25511)
* some refactoring out of types.go

* tests for metrics tag, parallelize other tests
2024-02-20 09:56:35 +00:00
Peter Wilson
83986f342b
Audit: Extracted SSCT related auditing code to formatter node (#25443)
* Removed unneeded header tracking in log request/log response of audit broker, moved SSCT overwrite to entry formatter

* added changelog
2024-02-15 20:02:58 +00:00
Peter Wilson
cfa37138b9
VAULT-23122: Audit fix for 'log_raw' issue (#24968)
* Fix for log_raw issue on audit

* Updates and test change

* changelog

* Update test now that the original event won't have the formatted data
2024-01-22 12:03:08 +00:00
Scott Miller
9bb4f9e996
Re-process .well-known redirects with a recursive handler call rather than a 302 redirect (#24890)
* Re-process .well-known redirects with a recursive handler call rather than a 302 redirect

* Track when the RequestURI mismatches path (in a redirect) and add it to the audit log

* call cancelFunc
2024-01-19 09:59:58 -06:00
Peter Wilson
ff0d1ff4c9
Audit: Entry formatting is the only supported way to do audit (#24867)
* removed 'writer' related code as we only do formatting within the eventlogger

* re-added ported test elide list responses
2024-01-15 21:04:21 +00:00
Peter Wilson
31baa89f75
audit: entry_formatter update to ensure no race detection issues (#24811)
* audit: entry_formatter update to ensure no race detection issues
* in progress with looking at a clone method for LogInput
* Tidy up LogInput Clone method
* less memory allocation
* fix hmac key clone
2024-01-12 14:47:29 +00:00
Kuba Wieczorek
17ffe62d0d
[VAULT-22481] Add audit filtering feature (#24558)
* VAULT-22481: Audit filter node (#24465)

* Initial commit on adding filter nodes for audit

* tests for audit filter

* test: longer filter - more conditions

* copywrite headers

* Check interface for the right type

* Add audit filtering feature (#24554)

* Support filter nodes in backend factories and add some tests

* More tests and cleanup

* Attempt to move control of registration for nodes and pipelines to the audit broker (#24505)

* invert control of the pipelines/nodes to the audit broker vs. within each backend

* update noop audit test code to implement the pipeliner interface

* noop mount path has trailing slash

* attempting to make NoopAudit more friendly

* NoopAudit uses known salt

* Refactor audit.ProcessManual to support filter nodes

* HasFiltering

* rename the pipeliner

* use exported AuditEvent in Filter

* Add tests for registering and deregistering backends on the audit broker

* Add missing licence header to one file, fix a typo in two tests

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>

* Add changelog file

* update bexpr datum to use a strong type

* go docs updates

* test path

* PR review comments

* handle scenarios/outcomes from broker.send

* don't need to re-check the complete sinks

* add extra check to deregister to ensure that re-registering non-filtered device sets sink threshold

* Ensure that the multierror is appended before attempting to return it

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-12-18 18:01:49 +00:00
Peter Wilson
24c6e82a84
Remove old audit behavior from test code (#24540)
* Export audit event

* Move older tests away from audit behavior that didn't use eventlogger

* spelling--;

* no more struct initialization of NoopAudit outside of NewNoopAudit

* locking since we're accessing the shared backend
2023-12-15 09:26:34 +00:00
Marc Boudreau
d66fdb4dfd
Use non-persistent Salter for logging test message (#22308)
* use non-persistent Salter for logging test message

* adjust tests based on code changes to ProcessManual

* suggestion for log test message fix (#22320)

* clean up test code and fix misnamed elements

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-08-14 15:00:49 +00:00
hashicorp-copywrite[bot]
0b12cdcfd1
[COMPLIANCE] License changes (#22290)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License.

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* add missing license headers

* Update copyright file headers to BUS-1.1

* Fix test that expected exact offset on hcl file

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Sarah Thompson <sthompson@hashicorp.com>
Co-authored-by: Brian Kassouf <bkassouf@hashicorp.com>
2023-08-10 18:14:03 -07:00
Marc Boudreau
263614051d
Audit Logging Using go-eventlogger Under Experiment Flag (#22234)
* add hashfunc field to EntryFormatter struct and adjust NewEntryFormatter function and tests
* add HeaderAdjuster interface and require it in EntryFormatter
* adjust all references to NewEntryFormatter to include a HeaderAdjuster parameter
* replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance
* export audit.NewEvent function and adjust function signature
* add eventlogger based handling in LogRequest
* adjust eventlogger.Broker according to number of backends
* record auditing metrics
* only send events if a pipeline is registered
* remove TODO comments
* remove unused struct and method
* move setup of audited headers earlier into Core's initialization
* adjust entry_formatter to properly handle request headers
* protect against potential segmentation fault
* moved common code out of both switch cases
* protect against case where a.Data.Request or a.Data.Request.Headers is nil

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-08-08 21:01:28 +01:00
Peter Wilson
30114d0038
Moved HeaderFormatter to an Option for NewEntryFormatter, updated tests (#22116) 2023-07-28 17:07:20 +01:00
Marc Boudreau
769fe0b67d
VAULT-17079: Adding Hash Function and HeaderAdjuster to EntryFormatter (#22042)
* add hashfunc field to EntryFormatter struct and adjust NewEntryFormatter function and tests

* add HeaderAdjuster interface and require it in EntryFormatter
dquote> adjust all references to NewEntryFormatter to include a HeaderAdjuster parameter

* replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance

* fixup! replace use of hash function in AuditedHeadersConfig's ApplyConfig method with Salter interface instance

* review feedback

* Go doc typo

* add another test function

---------

Co-authored-by: Peter Wilson <peter.wilson@hashicorp.com>
2023-07-27 12:31:52 -04:00
Peter Wilson
31074bc448
VAULT-18284: Audit refactor packages (#21972)
* initial git mv to rename 'audit' packages

* remove 'Audit' prefix from structs inside audit package

* refactor of event/audit pacakges

* EventFormatter => EntryFormatter

* 'AuditFormat' => EntryFormat

* Use NewFormatterConfig func

---------

Co-authored-by: Marc Boudreau <marc.boudreau@hashicorp.com>
2023-07-20 13:32:06 -04:00