4.2 Configuration
The configuration information is stored in the instal-
lation folder, {path-OrientDB}/config, where the fol-
lowing files are located:
orientdb-server-config.xml. In this file are the
necessary parameters to establish connection and the
users of the server of OrientDB with the summaries
of their passwords. This configuration is by default,
and unlike Neo4j, allowing the connection from any
source IP to the OrientDB server, exposing it to the In-
ternet. The strange thing is that the documentation in-
dicates the opposite (OrientDB expo, 2017). It is sig-
nificant, in addition, how to work with the user root,
making it more vulnerable against brute-force attacks,
especially since it is possible to remotely connect to
the root account.
security.json. This file shows the security settings
of the OrientDB server, changes can be made to im-
prove security. Highlight that three default users are
created for access to any database. The users cre-
ated by default are: admin:admin, writer:writer and
reader:reader. Similarly, a default database, named
Gratefuldeadconcerts, is created.
Finally, authentication is enabled by default just
like in Neo4j and it would be necessary to disable the
credentials manually.
4.3 User Authentication. Design
Failures
Initially, when the server is started, it asks to be as-
signed a password for the user root, which will have
full access to all the databases and the management
portal. If the password is left blank, a random is cre-
ated.
The authentication is based on HTTP Basic as
in Neo4j, in this case you have credentials for each
database that is inside the server. As seen in the con-
figuration, if not changed, three users are generated
to access each database, which initially have a default
credentials to try to access. It is possible to manage
from the browser the creation of more users and as-
sign them the roles that appear in the documentation
(OrientDB rol, 2017), some of them allow to cross-
wise access to all the databases of the server.
The OrientDB server does not deploy any system
against brute-force attacks, either to attack access to a
particular database or to take root credentials and ac-
cess them all. This point is significant especially if it
joins an additional vulnerability detected. The docu-
mentation explains that from the server of OrientDB
can not list the databases that are inside the server
without authentication (AuthOrientDB, 2017), but if
a request is sent to the end-point/listdatabases, for ex-
ample http://10.0.0.1:2480/listdatabases, you can see
that it returns a list with the names of the databases,
and in the response header, the version of the Ori-
entDB server is sent, all without requiring credentials.
All this greatly simplifies the fingerprinting.
4.4 Licenses
As in the case of Neo4j, OrientDB has two types of
licenses, Community and Enterprise. This last one
adds different functionalities for the management of
the databases but the security characteristics are equal
in both licenses, which is a better defensive approach
than in Neo4j, at least if it thinks in global terms.
5 EXHIBITION OF PRIVATE
INFORMATION. DATA LEAKS
AND INTERNET
In order to verify the impact of some of the secu-
rity problems detected, among the most spread graph
databases, a verification process was required. With
this purpose, a specific fingerprinting tool, called
GraFScaN (Hern
´
andez, M; Mu
˜
noz, A., 2017), was
designed. Using this tool, different active attacks
were implemented (brute force attacks and DoS), and
Internet (IPv4) was monitored from May 2016 until
January 2017. The tool uses IP addresses of inter-
est obtained from the search engine Shodan (Shodan,
2017) and scanning tools such as Zmap (Zmap, 2017)
or Masscan (Masscan, 2017). These scanning tools
have the capability of scanning the whole Internet
within few minutes. If further information is required,
we strongly recommend reading the user guide in-
cluded with the tool (Hern
´
andez, M; Mu
˜
noz, A.,
2017).
In the case of Neo4J, more than 1275 databases
were found, 298 without any authentication. In the
databases without authentication, all the privileges
could be used for the implementation of different
types of attacks. For example, a denial of service
for both Neo4j and the whole machine containing it
(Neo4J does not manage neither the RAM memory
nor the disk storage efficiently). This problem was
even more significant when the machine itself offered
a web service through port 80, most of the cases cor-
porative webs.
For the cases without authentication in Neo4J (e.g.
Figure 3 and Figure 4), it was possible to obtain the
specific version used (v1.9/17, v2.x/251 and v3.0/30).
SECRYPT 2017 - 14th International Conference on Security and Cryptography
308