Skip to content

Commit 7871ea3

Browse files
author
Sam Kleinman
committed
DOCS-79: Draft work of security document
1 parent 392653b commit 7871ea3

File tree

2 files changed

+184
-3
lines changed

2 files changed

+184
-3
lines changed

draft/administration/security.txt

Lines changed: 92 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,96 @@
22
Authentication and Security
33
===========================
44

5-
.. _replica-set-security:
5+
.. default-domain:: mongodb
66

7-
Replica Set Security
8-
--------------------
7+
As with all software running in a networked environment,
8+
administrators of MongoDB must consider security risks and risk
9+
exposures for the MongoDB deployment. There are no cure-alls for risk
10+
mitigation, and maintaining a secure MongoDB deployment is an ongoing
11+
process. This document takes a *Defense in Depth* approach to securing
12+
MongoDB deployments, and addresses a number of different methods for
13+
managing risk and reducing risk exposure
14+
15+
The intent of *Defense In Depth* approaches is to ensure there are no
16+
exploitable points of failure in your deployment that could allow an
17+
intruder or un-trusted party to access the data stored in the MongoDB
18+
database. The easiest and most effective way to reduce the risk of
19+
exploitation is to run MongoDB in a trusted environment, limit access,
20+
follow a system of least privilege, and follow best development and
21+
deployment practices. See the :ref:`security-reduce-risk` section for
22+
more information.
23+
24+
Strategies for Reducing Risk
25+
----------------------------
26+
27+
The most effective way to reduce risk for MongoDB deployments is to
28+
run your entire MongoDB deployment, including all MongoDB components
29+
(i.e. :program:`mongod`, :program:`mongos` and application instances)
30+
in a *trusted environment*. Trusted environments use the following
31+
strategies to control access:
32+
33+
- network filter (i.e. firewall) rules that block all connections
34+
from unknown systems to MongoDB components.
35+
36+
- bind :program:`mongod` and :program:`mongos` instances to specific
37+
interfaces to limit accessibility.
38+
39+
- limit MongoDB programs to non-public local networks, and virtual
40+
private networks.
41+
42+
You may further reduce risk by:
43+
44+
- requiring authentication for access to MongoDB accesses.
45+
46+
- requiring strong, complex, single purpose authentication credentials.
47+
48+
- deploying a model of least privilege, where all users have *only* the
49+
amount of access they need to accomplish required tasks, and no
50+
more.
51+
52+
- following the best application development and deployment practices,
53+
which includes: validating all inputs, managing sessions, and
54+
application-level access control.
55+
56+
Continue reading this document for more information on specific
57+
strategies and configurations to help reduce the risk exposure of
58+
your application.
59+
60+
Vulnerability Notification
61+
--------------------------
62+
63+
10gen takes the security of MongoDB and associated products very
64+
seriously. If you discover a vulnerability in MongoDB or another
65+
10gen product, or would like to know more about our vulnerability
66+
reporting and response process, see the
67+
:doc:`/vulnerability-notification` document.
68+
69+
Networking Risk Exposure
70+
------------------------
71+
72+
Port Numbers
73+
~~~~~~~~~~~~
74+
75+
Network Interface Limitation
76+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77+
78+
Firewall
79+
~~~~~~~~
80+
81+
Authentication
82+
--------------
83+
84+
Interfaces
85+
----------
86+
87+
JavaScript
88+
~~~~~~~~~~
89+
90+
HTTP Interface
91+
~~~~~~~~~~~~~~
92+
93+
REST API
94+
~~~~~~~~
95+
96+
Data at Rest
97+
------------
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
==========================
2+
Vulnerability Notification
3+
==========================
4+
5+
10gen values the privacy and security of all users of MongoDB, and we
6+
work very hard to ensure that MongoDB and related tools minimize risk
7+
exposure and increase the security and integrity of data and
8+
environments using MongoDB.
9+
10+
Notification
11+
------------
12+
13+
If you believe you've discovered a vulnerability in MongoDB or a
14+
related product, have experienced a security incident related to
15+
MongoDB, please report these issues so that 10gen can respond
16+
appropriately and work to prevent additional issues in the
17+
future. All vulnerability reports should contain as much information
18+
as possible so that we can move easily to resolve the issue, in
19+
particular, include the following:
20+
21+
- The name of the product.
22+
23+
- *Common Vulnerability* information, if applicable, including:
24+
25+
- CVSS (Commong Vulnerability Scoring System) Score
26+
27+
- CVE (Common Vulnerability and Exposures) Identifier.
28+
29+
- Contact information, including an email address and/or phone number,
30+
if applicable.
31+
32+
10gen guarantees a response to all vulnerability notifications within
33+
48 hours.
34+
35+
Jira
36+
~~~~
37+
38+
10gen prefers `jira.mongodb.org <https://jira.mongodb.org>`_ for all
39+
communication regarding MongoDB and related products.
40+
41+
Submit a ticket in the "`Core Server Security
42+
<https://jira.mongodb.org/SECURITY/>`_" project, at:
43+
<https://jira.mongodb.org/SECURITY/>. The ticket number will become
44+
reference identification for the issue for the lifetime of the issue,
45+
and you can use this identifier for tracking purposes.
46+
47+
10gen will respond to any vulnerability notification received in a
48+
Jira case posted to the `SECURITY
49+
<https://jira.mongodb.org/SECURITY/>`_ project.
50+
51+
Email
52+
~~~~~
53+
54+
While Jira is the preferred communication vector, you may also report
55+
vulnerabilities via email to <[email protected]>.
56+
57+
You may encrypt email using our `public key
58+
<http://docs.mongodb.org/10gen-gpg-key.asc>`_, to ensure the privacy
59+
of a any sensitive information in your vulnerability report.
60+
61+
10gen will respond to any vulnerability notification received via
62+
email via email which will contain a reference number (i.e. a ticket
63+
from the SECURITY project,) Jira case posted to the `SECURITY
64+
<https://jira.mongodb.org/SECURITY/>`_ project.
65+
66+
Evaluation
67+
~~~~~~~~~~
68+
69+
10gen will validate all submitted vulnerabilities. 10gen will use Jira
70+
to track all communication regarding the vulnerability, which may
71+
include requests for clarification and additional information. If
72+
needed 10gen representatives can set up a conference call to exchange
73+
information regaining the vulnerability.
74+
75+
Disclosure
76+
~~~~~~~~~~
77+
78+
10gen requests that you do *not* publicly disclose any information
79+
regarding the vulnerability or exploit, until 10gen has had the
80+
opportunity to analyze the vulnerability, respond to the notification,
81+
and if needed to notify key users, customers, and partners.
82+
83+
The amount of time required to validate a reported vulnerability
84+
depends on the complexity and severity of the issue. 10gen takes all
85+
required vulnerabilities very seriously, and will always ensure that
86+
there is a clear and open channel of communication with the reporter
87+
of the vulnerability.
88+
89+
After validating the issue, 10gen will coordinate public disclosure of
90+
the issue with the reporter in a mutually agreed timeframe and
91+
format. If required or requested, the reporter of a vulnerability will
92+
receive credit in the published security bulletin.

0 commit comments

Comments
 (0)