Initial draft of Barbican review
Change-Id: Id2a1be4baf4a2a62433572785359dd7c550ce8a5
This commit is contained in:
parent
ee91b2dae1
commit
f31be8a32d
325
doc/source/artifacts/barbican/newton/architecture-page.rst
Normal file
325
doc/source/artifacts/barbican/newton/architecture-page.rst
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
==========================
|
||||||
|
barbican architecture page
|
||||||
|
==========================
|
||||||
|
|
||||||
|
barbican - 3.0.0.0b2/newton
|
||||||
|
---------------------------
|
||||||
|
**Status**: Draft
|
||||||
|
|
||||||
|
**Release**: Newton
|
||||||
|
|
||||||
|
**Version**: 3.0.0.0b2
|
||||||
|
|
||||||
|
**Contacts**:
|
||||||
|
|
||||||
|
- PTL: Douglas Mendizábal - redrobot
|
||||||
|
|
||||||
|
- Architect: Douglas Mendizábal - redrobot
|
||||||
|
|
||||||
|
- Security Reviewer: Robert Clark - hyakuhei
|
||||||
|
- Security Reviewer: Doug Chivers - capnoday
|
||||||
|
|
||||||
|
Project description and purpose
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Barbican is a RESTful API for the secure storage, provisioning and management
|
||||||
|
of secret material such as passphrases, encryption keys and X.509 certificates.
|
||||||
|
|
||||||
|
|
||||||
|
Primary users and use-cases
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
1. End users will use the system to store sensitive data, such as passphrases
|
||||||
|
encryption keys, etc.
|
||||||
|
2. Cloud administrators will use the administrative APIs to manage resource
|
||||||
|
quotas.
|
||||||
|
3. Other cloud services will use the system to store/retrieve sensitive data on
|
||||||
|
behalf of end users.
|
||||||
|
|
||||||
|
|
||||||
|
External dependencies & associated security assumptions
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Barbican depends on an external Authentication/Authorization service. In
|
||||||
|
a typical deployment this dependency will be fulfilled by the keystone service.
|
||||||
|
|
||||||
|
This review is of a barbican deployment with a certificate management system
|
||||||
|
(CMS) and PKCS#11.
|
||||||
|
|
||||||
|
|
||||||
|
Components
|
||||||
|
~~~~~~~~~~
|
||||||
|
- API Process (Python): Python web service listening for web requests.
|
||||||
|
- Worker Process (Python): Python process that executes tasks
|
||||||
|
retrieved from the worker queue.
|
||||||
|
- keystone Listener Process (Python): Python process that consumes keystone
|
||||||
|
events published by the keystone service.
|
||||||
|
- Database (MySQL): MySQL database to store barbican state data related to its
|
||||||
|
managed entities and their metadata.
|
||||||
|
- Worker Queue (RabbitMQ): This queue is used to process new order
|
||||||
|
requests.
|
||||||
|
- Configurable secure backend. One of the following:
|
||||||
|
|
||||||
|
- DogTag Service: An instance of the RedHat DogTag service.
|
||||||
|
- Hardware Security Module (HSM): Dedicated hardware security module with
|
||||||
|
either a PKCS#11 or KMIP interface
|
||||||
|
|
||||||
|
- Administrative CLI (Python): Command line interface tool that performs
|
||||||
|
administrative tasks.
|
||||||
|
|
||||||
|
|
||||||
|
Service architecture diagram
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
.. image:: figures/barbican_architecture-diagram.png
|
||||||
|
|
||||||
|
Generated using draw.io, editable version:
|
||||||
|
https://www.draw.io/#G0Bz5iXPX51Qd9SW1IZXZ2UjljWEU
|
||||||
|
|
||||||
|
|
||||||
|
Data assets
|
||||||
|
~~~~~~~~~~~
|
||||||
|
- *Secret data* : Passphrases, Encryption Keys, RSA Keys - persisted in
|
||||||
|
Database [PKCS#11] or HSM [KMIP] or [KMIP, Dogtag]
|
||||||
|
- *Secret metadata* - persisted in database
|
||||||
|
- *RBAC rulesets* - persisted in policy.json
|
||||||
|
- *ACL rules* - persisted in database
|
||||||
|
- *DB Credentials* - persisted in barbican.conf
|
||||||
|
- *HSM Credentials* - persisted in barbican.conf, clients are also paired with
|
||||||
|
the HSM (for Safenet anyway) via PKI
|
||||||
|
- *RabbitMQ Credentials* - persisted in barbican.conf
|
||||||
|
- *keystone Event Queue Credentials* - persisted in barbican.conf
|
||||||
|
- *Middleware configuration* - persisted in paste.ini
|
||||||
|
- *[PKCS#11] HSM HMAC Key* - persisted in HSM
|
||||||
|
- *[PKCS#11] HSM Master Key Encryption Key (MKEK)* - persisted in HSM
|
||||||
|
- *Per-project KEKs wrapped by MKEK* - stored in DB
|
||||||
|
- *CA (dogtag) credentials* - persisted in worker process barbican.conf
|
||||||
|
- *keystone Credentials (barbican service account)* - should be configured to
|
||||||
|
only allow token validation but in some configurations may have higher
|
||||||
|
privileges
|
||||||
|
- *Client keystone token* - ephemeral token provided by client, validated
|
||||||
|
against keystone by barbican service account, could be any level of
|
||||||
|
permissions (e.g. service accounts for other services)
|
||||||
|
- *CADF Credentials* - write only access to rabbit server
|
||||||
|
|
||||||
|
Data asset impact analysis
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Data Assets:
|
||||||
|
|
||||||
|
- *Secret Data*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: Differs between plugins. In the case of the KMIP
|
||||||
|
plugin, secret data is stored directly in the HSM and direct compromise is
|
||||||
|
out of scope (See HSM credentials) however the PKCS#11 plugin encrypts
|
||||||
|
secret data in the HSM, using a key that is not retrievable from the HSM.
|
||||||
|
If secret data was tampered with in the database, subsequent retrieval via
|
||||||
|
the HSM would fail because of HMAC integrity checks.
|
||||||
|
- Confidentially Failure Impact: Secret data is persisted in the DB only in
|
||||||
|
its encrypted form. When the encryption keys are protected Exposure of this
|
||||||
|
data has little impact.
|
||||||
|
- Note: The simple-crypto plugin does not protect against these issues
|
||||||
|
- Availability: Service breaks if secret data is not available
|
||||||
|
|
||||||
|
- *Secret metadata*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican ignores metadata, it is there as a
|
||||||
|
facility for users. User applications could be affected by changes to this
|
||||||
|
metadata. Future UI designers should ensure that metadata is sanitized
|
||||||
|
before being rendered to avoid things like XSS in metadata.
|
||||||
|
- Confidentiality Failure Impact: Metadata is not intended to be confidential
|
||||||
|
and barbican does not encrpyt it, but end-users could use metadata to
|
||||||
|
store confidential information.
|
||||||
|
does not encrypt it.
|
||||||
|
- Availability Failure: barbican unaffected
|
||||||
|
|
||||||
|
- *RBAC/ACL rulesets*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: Attacker with valid AuthN could be granted access
|
||||||
|
to any secret.
|
||||||
|
- Confidentiality Failure Impact: Mappings between users and secrets
|
||||||
|
- Availability Failure Impact: barbican will not start if the file is not
|
||||||
|
readable.
|
||||||
|
|
||||||
|
- *DB Credentials*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican won't be able to access DB and fail to
|
||||||
|
start.
|
||||||
|
- Confidentiality Failure Impact: ACLs could be abused to grant access to all
|
||||||
|
secrets for any Authenticated user (AuthZ failure). All Secrets could be
|
||||||
|
deleted / mangled.
|
||||||
|
- Availability Failure Impact: barbican won't be able to access DB and fail
|
||||||
|
to start.
|
||||||
|
|
||||||
|
- *HSM Credentials*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican can no longer authenticate to HSM,
|
||||||
|
there is potential here to cause the HSM to purge on multiple reconnects.
|
||||||
|
- Confidentiality Failure Impact:
|
||||||
|
|
||||||
|
- [PKCS#11] No keys are exposed, MKEK and HMAC keys could be deleted,
|
||||||
|
causing a denial of service (DoS). If these were not backed up, all
|
||||||
|
secrets would be lost.
|
||||||
|
- [KMIP] Attacker is able to retrieve all secrets from the HSM
|
||||||
|
|
||||||
|
- Availability: barbican won't be able to access HSM and will fail to CRUD
|
||||||
|
secrets in KMIP, unable to decrypt or encrypt secrets in PKCS#11.
|
||||||
|
|
||||||
|
- *RabbitMQ Credentials*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican and Workers can no longer access the
|
||||||
|
queue. Denial of service.
|
||||||
|
- Confidentiality Failure Impact: An attacker could add new tasks to the
|
||||||
|
queue which would be executed by workers. User quotas could be exhausted by
|
||||||
|
an attacker. DoS. User would be unable to create genuine secrets.
|
||||||
|
- Availability Failure Impact: barbican could no longer create new secrets
|
||||||
|
without access to the queue.
|
||||||
|
|
||||||
|
- *Identity Service (keystone) Event Queue Credentials [Including endpoint
|
||||||
|
address]*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: An attacker could setup their own queue, point
|
||||||
|
barbican to this rogue queue and by publishing events, delete all
|
||||||
|
users/projects/secrets in barbican. Additionally, typical DoS scenario
|
||||||
|
using incorrect credentials for the legitimate queue.
|
||||||
|
- Confidentiality Failure Impact: barbican should only be able to subscribe
|
||||||
|
to the event queue. An attacker with the credentials could create their own
|
||||||
|
subscriber meaning that legitimate events don't get consumed by barbican.
|
||||||
|
Race condition?
|
||||||
|
- Availability Failure Impact: Projects might not get deleted when they
|
||||||
|
should be but the overall run state of barbican is unaffected.
|
||||||
|
|
||||||
|
- *Middleware Configuration*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: Can remove/replace keystone auth middleware -
|
||||||
|
allows you to capture tokens and also could cause barbican to fail open
|
||||||
|
(everything authorized). If keystone auth middleware is deleted from
|
||||||
|
paste.ini, an attacker could add their own keystone headers to REST
|
||||||
|
requests and barbican would interpret them as valid. If an attacker had
|
||||||
|
access to the filesystem they could inject their own middleware by dropping
|
||||||
|
a class on the FS (in the Python path) and directing paste.ini to use that.
|
||||||
|
- Confidentiality Failure Impact: Minimal - an attacker can enumerate the
|
||||||
|
middleware.
|
||||||
|
- Availability Failure Impact: barbican breaks
|
||||||
|
|
||||||
|
- *PKCS#11 MKEK/HMAC*: - Stored un-retrievable in HSM
|
||||||
|
|
||||||
|
- Integrity Failure Impact: PKCS#11 create, read, update, delete (CRUD)
|
||||||
|
operations will fail.
|
||||||
|
- Confidentiality Failure Impact: All secrets in DB could be decrypted.
|
||||||
|
However this failure mode is out of scope for this TA.
|
||||||
|
- Availability Failure Impact: PKCS#11 CRUD operations will fail.
|
||||||
|
|
||||||
|
- *PKCS#11 MKEK/HMAC*: - backed up *somewhere*
|
||||||
|
|
||||||
|
- Integrity Failure Impact: HSM Disaster Recovery will fail : PKCS#11 CRUD
|
||||||
|
operations will fail.
|
||||||
|
- Confidentiality Failure Impact: All secrets in DB could be decrypted by an
|
||||||
|
attacker with knowledge of the DB contents.
|
||||||
|
- Availability Failure Impact: HSM Disaster Recovery will fail : PKCS#11 CRUD
|
||||||
|
operations will fail.
|
||||||
|
|
||||||
|
- *Dogtag Credentials*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: Inability to submit or issue certificates (DoS)
|
||||||
|
- Confidentially Failure Impact: A malicious user can create valid
|
||||||
|
certificates for any service that trusts the Dogtag CA.
|
||||||
|
- Availability Failure Impact: Unable to submit or retrieve certificates.=
|
||||||
|
DoS.
|
||||||
|
|
||||||
|
- *Certificate Signing Request*:
|
||||||
|
|
||||||
|
- As a cryptographically "public" asset, we do not model CIA for Certificate
|
||||||
|
Signing Requests
|
||||||
|
|
||||||
|
- *keystone Credentials*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican will not be able to validate user
|
||||||
|
credentials and fail. DoS.
|
||||||
|
- Confidentially Failure Impact: A malicious user might be able to abuse
|
||||||
|
other OpenStack services (depending on keystone role configurations) but
|
||||||
|
barbican is unaffected. If the service account for token validation also
|
||||||
|
has barbican admin privilages, then a malicious user could manipulate
|
||||||
|
barbican admin functions.
|
||||||
|
- Availability Failure Impact: barbican will not be able to validate user
|
||||||
|
credentials and fail. DoS.
|
||||||
|
|
||||||
|
- *Client keystone Token*:
|
||||||
|
|
||||||
|
- Integrity Failure Impact: barbican will not be able to validate user
|
||||||
|
credentials and fail. DoS.
|
||||||
|
- Confidentially Failure Impact: A malicious user might be able to abuse
|
||||||
|
OpenStack services including barbican. If the token had an admin scope then
|
||||||
|
an attacker may be able to subvert multiple cloud services. [Total fail].
|
||||||
|
- Availability Failure Impact: Not a persistent asset, provided and used at
|
||||||
|
the same time.
|
||||||
|
|
||||||
|
|
||||||
|
Interfaces
|
||||||
|
~~~~~~~~~~
|
||||||
|
Format:
|
||||||
|
From->To *[Transport]*
|
||||||
|
|
||||||
|
- Assets in flight
|
||||||
|
- Authentication?
|
||||||
|
- Description
|
||||||
|
|
||||||
|
1. Client->API Process *[TLS]*:
|
||||||
|
|
||||||
|
- Assets in flight: User keystone Credentials, Plaintext Secrets, HTTP Verb,
|
||||||
|
Secret ID, Path
|
||||||
|
- Access to keystone credentials or plaintext secrets is considered a total
|
||||||
|
security failure of the system - this interface must have robust
|
||||||
|
confidentiality and integrity controls, i.e. TLS.
|
||||||
|
|
||||||
|
2. Administrator->API Process *[TLS]*:
|
||||||
|
|
||||||
|
- Assets in flight: barbican admin keystone Credentials
|
||||||
|
- An attacker with access to the admin credentials can modify quotas,
|
||||||
|
expanding or reducing them for any user. This has potential availability
|
||||||
|
impact. DoS.
|
||||||
|
|
||||||
|
3. Administrator->API Process Host *[SSH]*:
|
||||||
|
|
||||||
|
- The actions of a malicious administrator are out of scope for the
|
||||||
|
OpenStack Threat Analysis Process. However the OSSP suggests hosts for
|
||||||
|
OpenStack services are configured following best practices such as
|
||||||
|
**<TODO>.**
|
||||||
|
|
||||||
|
4. Administrator->Administrative CLI *[SSH]*:
|
||||||
|
|
||||||
|
- The actions of a malicious administrator are out of scope for the
|
||||||
|
OpenStack Threat Analysis Process. However the OSSP suggests hosts for
|
||||||
|
OpenStack services are configured following best practices such as
|
||||||
|
**<TODO>.**
|
||||||
|
|
||||||
|
5. API Process->PKCS#11 HSM *[NTL]*: - work to understand NTL is required
|
||||||
|
|
||||||
|
- Assets in flight: HSM Credentials(Partition), HSM Commands, Plaintext
|
||||||
|
Secrets, MKEK wrapped PKEKs (MKEK is never transmitted over this
|
||||||
|
transport).
|
||||||
|
- Note: Access to individual secrets resulting in a compromise of system
|
||||||
|
integrity. Only secrets that were transmitted in view of an attacker are
|
||||||
|
compromised.
|
||||||
|
|
||||||
|
6. Worker Process to HSM *[NTL]*: - work to understand NTL is required, how
|
||||||
|
does it compare to TLS?
|
||||||
|
|
||||||
|
- Assets in flight: HSM Credentials(Partition), HSM Commands, Plaintext
|
||||||
|
Secrets, MKEK
|
||||||
|
- Credentials/Authentication: Each HSM connection has different credentials.
|
||||||
|
Credentials tied specifically to the FQDN of the worker process.
|
||||||
|
Certificate pairs generated on the HSM and installed into worker
|
||||||
|
processes. Site Crypto Officer / Crypto Officer creates certificates on
|
||||||
|
the HSM.
|
||||||
|
|
||||||
|
7. Worker Process->Certificate Authority (Dogtag)*[TLS]*:
|
||||||
|
|
||||||
|
- Assets in flight: CSR (uploaded by client or generated in Worker), Dogtag
|
||||||
|
credentials
|
||||||
|
- Note: All workers share the same set of credentials
|
||||||
|
|
||||||
|
8. API Process->keystone REST *[TLS]*: **TODO** - is this interface missing on
|
||||||
|
the diagram?
|
||||||
|
|
||||||
|
- Assets in flight: keystone credentials, Customer token
|
||||||
|
|
||||||
|
|
||||||
|
Resources
|
||||||
|
~~~~~~~~~
|
||||||
|
- https://wiki.openstack.org/wiki/barbican
|
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
169
doc/source/artifacts/barbican/newton/review-findings.rst
Normal file
169
doc/source/artifacts/barbican/newton/review-findings.rst
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
=================================
|
||||||
|
barbican security review findings
|
||||||
|
=================================
|
||||||
|
|
||||||
|
barbican security review findings - 3.0.0.0b2/newton
|
||||||
|
----------------------------------------------------
|
||||||
|
**Status**: Draft
|
||||||
|
|
||||||
|
**Release**: Newton
|
||||||
|
|
||||||
|
**Version**: 3.0.0.0b2
|
||||||
|
|
||||||
|
**Review Date**: 08/18/2016
|
||||||
|
|
||||||
|
**Review Body**: OpenStack Security Project
|
||||||
|
|
||||||
|
**Contacts**:
|
||||||
|
|
||||||
|
- PTL: Douglas Mendizábal - redrobot
|
||||||
|
|
||||||
|
- Architect: Douglas Mendizábal - redrobot
|
||||||
|
|
||||||
|
- Security Reviewer: Robert Clark - hyakuhei
|
||||||
|
- Security Reviewer: Doug Chivers - capnoday
|
||||||
|
|
||||||
|
|
||||||
|
Findings:
|
||||||
|
---------
|
||||||
|
|
||||||
|
1. Modification of ACLs in barbian database could compromise all secrets
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: barbican has a feature that allows a tenant to grant another tenant
|
||||||
|
access to a secret. This is controlled via a tenant mapping table within the
|
||||||
|
barbican database. The implied security model of the barbican database (when
|
||||||
|
running with PCKS#11) is that all cryptographic operations are performed in
|
||||||
|
the HSM, a confidentiality or integrity breach of the database will not
|
||||||
|
directly result in secrets being compromised. However if an attacker was able
|
||||||
|
to modify the ACL mapping, they could grant a tenant access to any/all
|
||||||
|
secrets stored in the HSM. Once the mapping is manipulated the attacker could
|
||||||
|
retrieve secrets using the normal barbican API.
|
||||||
|
- Impact: All secrets stored in barbican are exposed.
|
||||||
|
- Likelihood: Medium
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: High
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Provide deployment guidance requiring strong controls
|
||||||
|
securing access to the barbican database.
|
||||||
|
|
||||||
|
|
||||||
|
2. Misconfigured HSM credential could cause DoS via HSM auto-purge
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: A misconfigured or tampered barbican hardware security module (HSM)
|
||||||
|
credential could cause a denial-of-service of barbican (and potentially other
|
||||||
|
services using the HSM if it is shared), if the HSM is configured to purge
|
||||||
|
after a number of failed connection attempts.
|
||||||
|
- Impact: Denial of service to barbican, potential loss of all secrets if there
|
||||||
|
is inadequate backup, denial of service and potential loss of secrets for
|
||||||
|
other services sharing the HSM.
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Deployment guidance recommending that HSMs should not be
|
||||||
|
configured to auto-purge, unless this risk is actively managed via a security
|
||||||
|
event monitoring system. In this later case, consider adding a delay
|
||||||
|
period or auto backoff to barbican connection attempts to allow a SOC time
|
||||||
|
to respond.
|
||||||
|
|
||||||
|
|
||||||
|
3. Compromised HSM credential could cause DoS and all secrets (PKCS#11 only)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: When using PKCS#11 to connect barbican to a HSM, a compromised HSM
|
||||||
|
credential would allow an attacker to delete MKEK and HMAC keys, causing a
|
||||||
|
denial of service. If these keys were not backed up, all secrets would be
|
||||||
|
lost.
|
||||||
|
- Impact: Denial of service, loss of all secrets.
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Deployment guidance recommending that HSM credentials are
|
||||||
|
protected.
|
||||||
|
|
||||||
|
|
||||||
|
4. Compromised HSM credential lets attacker access all secrets (KMIP only)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: Although this review focusses on PKCS#11 barbican deployments, the
|
||||||
|
following KMIP finding was discovered during review and is included here for
|
||||||
|
completeness. When using KMIP to connect barbican to a HSM, a compromised HSM
|
||||||
|
credential allows an attacker to access all secrets stored in the HSM.
|
||||||
|
- Impact: Compromise of all secrets.
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Deployment guidance recommending that HSM credentials are
|
||||||
|
protected.
|
||||||
|
|
||||||
|
|
||||||
|
5. Metadata should be sanitized before rendering to avoid XSS
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: Lack of sanitization of metadata could lead to cross site scripting
|
||||||
|
(XSS) vulnerabilities.
|
||||||
|
- Impact:
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: Medium
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Recommendation: Ensure future UI designers are aware of this risk and
|
||||||
|
sanitize all metadata before rendering.
|
||||||
|
|
||||||
|
|
||||||
|
6. Weak keystone credentials could result in loss of barbican users/secrets.
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: An integrity failure of the keystone event queue credentials could
|
||||||
|
allow an attacker to point barbican at a keystone event queue controlled by
|
||||||
|
the attacker, the attacker could then publish events triggering deletion of
|
||||||
|
all users/projects/secrets in barbican.
|
||||||
|
- Impact: Soft deletion of all users/projects/secrets in the compromised
|
||||||
|
barbican deployment. Limited impact as there is time to restore deleted
|
||||||
|
data before the cleanup process runs.
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: Medium
|
||||||
|
- Overall Risk Rating: Low
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Strong integrity controls for keystone credentials,
|
||||||
|
monitoring to detect mass deletion.
|
||||||
|
|
||||||
|
|
||||||
|
7. Compromised keystone credentials could lead to barbican admin compromise
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: If the keystone credentials for the barbican service account (for
|
||||||
|
token validation) have barbican admin privileges then a confidentiality
|
||||||
|
failure could allow an attacker to manipulate the barbican administration
|
||||||
|
functions.
|
||||||
|
- Impact: Compromise of secrets, DOS.
|
||||||
|
- Likelihood: Medium
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Bug: <link to launchpad bug for this finding>
|
||||||
|
- Recommendation: Do not grant barbican service account admin privileges
|
||||||
|
|
||||||
|
|
||||||
|
8. Compromise of PKCS#11 MKEK/HMAC backup could cause compromise of all secrets
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Risk: Loss of confidentiality of the PKCS#11 MKEK/HMAC backup could allow an
|
||||||
|
attacker to decrypt all secrets in the barbican database.
|
||||||
|
- Impact: Compromise of all secrets
|
||||||
|
- Likelihood: Low
|
||||||
|
- Impact: High
|
||||||
|
- Overall Risk Rating: Medium
|
||||||
|
- Recommendation: Provide handling and encryption recommendations for MKEK/HMAC
|
||||||
|
backups.
|
||||||
|
|
||||||
|
|
||||||
|
Recommendations:
|
||||||
|
----------------
|
||||||
|
|
||||||
|
1. Provide best practice recommendations for HSM usage and operations
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Recommendation: HSM security is outside the scope of this review (because it
|
||||||
|
is an external entity), but it is critical to the security of a barbican
|
||||||
|
deployment, so best practice recommendations should be provided for HSM usage
|
||||||
|
and security.
|
||||||
|
|
||||||
|
2. Document metadata useage
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
- Recommendation: barbican metadata is not encrpyted, but users could store
|
||||||
|
confidential data there. barbican documentation should highlight this to
|
||||||
|
users.
|
Loading…
Reference in New Issue
Block a user