mirror of
https://github.com/elastic/kibana.git
synced 2025-04-16 14:05:15 -04:00
63 lines
2.8 KiB
Text
63 lines
2.8 KiB
Text
# Risk consideration
|
|
|
|
When merging a new feature of considerable size or modifying an existing one,
|
|
consider adding a *Risk Matrix* section to your PR in collaboration with other
|
|
developers on your team and the QA team.
|
|
|
|
Below are some general themes to consider for the *Risk Matrix*. (Feel free to
|
|
add to this list.)
|
|
|
|
|
|
## General risks
|
|
|
|
- What happens when your feature is used in a non-default space or a custom
|
|
space?
|
|
- What happens when there are multiple Kibana nodes using the same Elasticsearch
|
|
cluster?
|
|
- What happens when a plugin you depend on is disabled?
|
|
- What happens when a feature you depend on is disabled?
|
|
- Is your change working correctly regardless of `kibana.yml` configuration or
|
|
UI Setting configuration? (For example, does it support both
|
|
`state:storeInSessionStorage` UI setting states?)
|
|
- What happens when a third party integration you depend on is not responding?
|
|
- How is authentication handled with third party services?
|
|
- Does the feature work in Elastic Cloud?
|
|
- Does the feature create a setting that needs to be exposed, or configured
|
|
differently than the default, on the Elastic Cloud?
|
|
- Is there a significant performance impact that may affect Cloud Kibana
|
|
instances?
|
|
- Does your feature need to be aware of running in a container?
|
|
- Does the feature Work with security disabled, or fails gracefully?
|
|
- Are there performance risks associated with your feature? Does it potentially
|
|
access or create: (1) many fields; (2) many indices; (3) lots of data;
|
|
(4) lots of saved objects; (5) large saved objects.
|
|
- Could this cause memory to leak in either the browser or server?
|
|
- Will your feature still work if Kibana is run behind a reverse proxy?
|
|
- Does your feature affect other plugins?
|
|
- If you write to the file system, what happens if Kibana node goes down? What
|
|
happens if there are multiple Kibana nodes?
|
|
- Are migrations handled gracefully? Does the feature affect old indices or
|
|
saved objects?
|
|
- Are you using any technologies, protocols, techniques, conventions, libraries,
|
|
NPM modules, etc. that may be new or unprecedented in Kibana?
|
|
|
|
|
|
## Security risks
|
|
|
|
Check to ensure that best practices are used to mitigate common vulnerabilities:
|
|
|
|
- Cross-site scripting (XSS)
|
|
- Cross-site request forgery (CSRF)
|
|
- Remote-code execution (RCE)
|
|
- Server-side request forgery (SSRF)
|
|
- Prototype pollution
|
|
- Information disclosure
|
|
- Tabnabbing
|
|
|
|
In addition to these risks, in general, server-side input validation should be
|
|
implemented as strictly as possible. Extra care should be taken when user input
|
|
is used to construct URLs or data structures; this is a common source of
|
|
injection attacks and other vulnerabilities. For more information on all of
|
|
these topics, see [Security best practices][security-best-practices].
|
|
|
|
[security-best-practices]: https://www.elastic.co/guide/en/kibana/master/security-best-practices.html
|