Уязвимость базы данных Graph

#security #neo4j #graph-databases

#Безопасность #neo4j #графические базы данных

Вопрос:

Существуют ли какие-либо уязвимости в базах данных graph (если быть точным, то особенно Neo4j v2.0), такие как SQL-инъекции в базах данных на основе SQL, и как их преодолеть при внедрении?

Ответ №1:

Как и в случае с SQL, Cypher уязвим таким же образом, если используется конкатенация строк. Крайне важно обойти это использование параметров в Cypher.

Ответ №2:

Вы не указали, какой API и драйвер вы используете.

Если вы создаете запросы Cypher самостоятельно, убедитесь, что вы используете параметры Cypher:

 {
  "query" : "MATCH (x {name: {startName}})-[r]-(friend) WHERE friend.name = {name} RETURN TYPE(r)",
  "params" : {
    "startName" : "I",
    "name" : "you"
  }
}
  

Если вы используете драйвер для построения ваших запросов Cypher, я предполагаю, что драйвер решит это за вас, но вы можете захотеть ознакомиться с конкретной документацией.

Комментарии:

1. это шифр, который я использую для построения запросов.

Ответ №3:

На данный момент нет известных уязвимостей в Neo4j или других системах баз данных NoSQL, но я хотел бы сказать, что дыры в безопасности обычно связаны с приложениями, которые работают с системами баз данных. Я имею в виду, что Neo4j может быть безопасным сам по себе, но SQL-инъекция или другие подобные вещи связаны с приложением.

Например, если вы не проверяете, является ли пользовательский ввод массивом или нет, злоумышленникам удается выполнить sql-инъекцию с помощью методов NoSQL-инъекции. Дополнительная информация: https://www.owasp.org/index.php/Testing_for_NoSQL_injection

Также вы должны быть уверены в безопасности на стороне сервера, я имею в виду, что вы должны ответить на такого рода вопросы; правильно ли установлен Noe4j? Защищены ли учетные данные от атак методом перебора / угадывания или нет? и так далее..