Base de datos SQL más segura [cerrada]

-4

Voy a ejecutar un servicio oculto de Tor en un servidor Linux. Mi sitio tendrá una base de datos SQL. Esta base de datos contiene inicio de sesión de usuario y algunos otros detalles básicos.

Si marca una diferencia según el software que use, responda lo siguiente:

1) ¿Qué software de base de datos SQL debo usar para la mejor seguridad en mi sitio? IE para prevenir inyecciones de SQL y otras vulnerabilidades, etc.

2) El software de la base de datos también debe garantizar la privacidad / anonimato del servidor, de modo que no haya fugas de direcciones IP, etc. ... Sé que tener un servidor seguro puede reducir este riesgo, por lo que no se pueden realizar ataques que puedan filtrar datos valiosos. . Sin embargo, tal vez un cierto software de base de datos podría ser mejor en esto? No estoy seguro.

Solo el software libre, preferiblemente de código abierto, cuanto más fácil de configurar y administrar, mejor. Sé que las entradas de limpieza , la configuración correcta y otros factores se aplican cuando se trata de seguridad.

EDITAR: La gente ha malinterpretado seriamente la pregunta. Solo tenía curiosidad por saber si existía un software de base de datos que tuviera seguridad adicional en caso de que algún ataque como el SQLI hubiera pasado de alguna manera la seguridad del nivel de la aplicación.

NO estoy permitiendo que ningún usuario se comunique directamente con la base de datos, por supuesto que hay una aplicación entre el usuario y la base de datos. Una vez más siento curiosidad por saber si algún software de DB sería mejor que otros para proteger el anonimato del servidor, tal vez al tener una opción que impida que el servidor se conecte a cualquier cosa que no sea un host local, por lo que un atacante no puede hacer que se conecte. un sitio que controlan para ver las conexiones entrantes y registrar sus direcciones IP (lo inventé como ejemplo para superarlo).

    
pregunta k1308517 25.05.2016 - 13:49
fuente

1 respuesta

8

TL; TR: estos no son problemas de la base de datos. Tal vez esté utilizando una arquitectura incorrecta para su servicio oculto. Y con respecto a la información adicional después de la edición de la pregunta, vea al final de esta respuesta.

  

¿Qué software de base de datos SQL debo usar para la mejor seguridad en mi sitio? IE para prevenir inyecciones de SQL y otras vulnerabilidades, etc.

Las inyecciones de SQL no son un problema de la base de datos sino de la aplicación que utiliza una base de datos que reenvía las entradas del usuario mal filtradas directamente a la base de datos.

  

El software de la base de datos también debe garantizar la privacidad / anonimato del servidor, por lo que no se producen pérdidas de direcciones IP, etc. ...

Parece que desea que la base de datos esté directamente disponible para el usuario, es decir, sin una aplicación en la base de datos. Esta es una muy mala idea porque el usuario puede hacer cualquier cosa con la base de datos y ni siquiera necesita usar inyecciones de SQL.

Si, en cambio, restringe adecuadamente el acceso a la base de datos, es decir, solo permite el acceso desde su aplicación, el anonimato no es un problema de la base de datos porque no conoce la dirección IP de los usuarios. Por lo tanto, solo depende del tipo de datos que coloque en la base de datos, que es un problema de su aplicación y no de la base de datos.

Recomiendo echar un vistazo más de cerca a arquitectura multinivel y asegurarme de que solo proporciona acceso público a la nivel de presentación (es decir, el sitio web), pero nunca permita el acceso externo al nivel de datos (es decir, la base de datos). Este acceso solo debe ser realizado por el nivel lógico y ningún dato de usuario no filtrado nunca debe pasar a la base de datos (es decir, evitar la inyección de SQL).

  

EDITAR: La gente ha malinterpretado seriamente la pregunta. Solo tenía curiosidad por saber si existía un software de base de datos que tuviera seguridad adicional en caso de que algún ataque como el SQLI hubiera pasado de alguna manera la seguridad del nivel de la aplicación.

En este caso, la pregunta sobre el anonimato no tiene mucho sentido, porque si la base de datos no está directamente expuesta al usuario, solo puede conocer la dirección IP de los usuarios si la aplicación proporciona explícitamente esta información a la base de datos.

En cuanto a la protección SQLi adicional: se espera que la tarea de una base de datos ejecute los comandos que se le envíen. La tarea no es verificar si estos comandos pueden ser causados por una entrada de usuario sin filtro. Y en esta etapa ni siquiera hay suficiente información sobre esto porque no se sabe qué aportan los usuarios y cuáles no. Por lo tanto, solo se pueden aplicar heurísticas brutas o filtros adicionales que limitan los comandos que se pueden ejecutar. No tengo conocimiento de ninguna base de datos que tenga tales heurísticas ya incorporadas, pero existen firewalls de aplicaciones web e IDS que incluyen tales heurísticas o incluso cortafuegos de base de datos .

    
respondido por el Steffen Ullrich 25.05.2016 - 14:07
fuente

Lea otras preguntas en las etiquetas