Description
The Awareness as a Service (AaaS) firehose currently has no mechanism to restrict what data a token can access or which IPs are permitted to use it. This means that if a token is leaked and not promptly revoked, it can be used by any party from any origin to access firehose data without restriction.
To mitigate this risk, two complementary controls need to be introduced:
- Token Scopes — each token declares which data streams/resources it is permitted to access on the AaaS firehose.
- Backend IP ACL / Allowlist — each token carries an IP allowlist; requests originating from IPs not on that list are rejected by the backend, regardless of token validity.
Together these ensure that a leaked-but-unrevoked token cannot be meaningfully exploited unless the attacker also controls a permitted IP address.
Reference
- AaaS firehose architecture (internal docs)
- Existing token issuance flow
Acceptance Criteria
Desired Output (may vary)
A hardened AaaS token model where leaked, unrevoked tokens are limited in blast radius by both scope restrictions and IP-based access control, while all existing tokens continue to function transparently as legacy */* tokens.
Description
The Awareness as a Service (AaaS) firehose currently has no mechanism to restrict what data a token can access or which IPs are permitted to use it. This means that if a token is leaked and not promptly revoked, it can be used by any party from any origin to access firehose data without restriction.
To mitigate this risk, two complementary controls need to be introduced:
Together these ensure that a leaked-but-unrevoked token cannot be meaningfully exploited unless the attacker also controls a permitted IP address.
Reference
Acceptance Criteria
403 Forbidden).legacy: true). Legacy tokens are automatically granted:*(wildcard — access to all resources)*(wildcard — any IP permitted)scopesandip_allowlistfields.Desired Output (may vary)
A hardened AaaS token model where leaked, unrevoked tokens are limited in blast radius by both scope restrictions and IP-based access control, while all existing tokens continue to function transparently as legacy
*/*tokens.