Author Topic: Seguridad Base de Datos SQL Server  (Read 5011 times)

0 Members and 1 Guest are viewing this topic.

Offline murraybozinsky

  • Sv Jr.
  • **
  • Posts: 54
Seguridad Base de Datos SQL Server
« on: September 09, 2011, 11:14:21 am »
Estábamos discutiendo un colega y yo, sobre el tema de la seguridad en las bases de datos, y las mejores practicas de desarrollo de una aplicación, lo cual me decia él, que la única forma de brindar una buena seguridad es usando solo Store procedure, mi pregunta es para los administradores de bases de datos, si una aplicación usa solo SP para accesar, esta ya no seria vulnerable a ataques como sql injection u otros métodos que desconozco.

por cierto, el tema nació del atrevimiento de un usuario que con su login y password de sql para la aplicacion, se conecto usando el Excel, y ubtuvo info de una tabla. ok, no podiamos restringir por objetos en la BD, porque son demasiados, entoces los accesos que tiene son de conect, insert, delete, update. 

Offline Non Servium

  • Sv Member
  • ***
  • Posts: 426
  • Ilix Punx :)
Re: Seguridad Base de Datos SQL Server
« Reply #1 on: September 09, 2011, 11:35:30 am »
Pues seguridad puedes utilizar iniicios de sesión de SQL Server para evitar las conexiones desde Excel...
Aparte de eso, el "SQL injection" muere para Microsoft desde la innovación de LINQ (Microsoft .NET Framework 3.0)

Usar SP para todos los procedimientos parece innecesario, aunque para procesos puntuales y delicados es muy recomendable, sin embargo, para un select o un insert de un usuario (por ejemplo), solamente debería de validarse desde la aplicación (si aún se usan SQL Command, SQL Data Adapter, etc)
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch

Offline murraybozinsky

  • Sv Jr.
  • **
  • Posts: 54
Re: Seguridad Base de Datos SQL Server
« Reply #2 on: September 09, 2011, 03:05:05 pm »
Bueno precisamente es lo que yo pienso, yo no estoy de acuerdo en que una aplicación sea full Store Procedure para el acceso a la data, osea,  digo que son necesarios para procesos puntuales y talvez mas complejos, sin embargo, discutiamos que es la unica manera para que el usuario no pueda utilizar otras herramientas de acceso a la base de datos, en este caso el Excel, ya que si le quitamos los permisos de insert, delete, update,y select, y solo le dejaramos el permiso de Execute , entonces ya no podria hacer lo que hizo con el Excel, pero ese cambio implica como encapsular todo el acceso a la base solo con Store Procedure, lo cual yo no  estoy muy de acuerdo.  por eso mi pregunta, del inicio.

Offline Non Servium

  • Sv Member
  • ***
  • Posts: 426
  • Ilix Punx :)
Re: Seguridad Base de Datos SQL Server
« Reply #3 on: September 09, 2011, 04:40:37 pm »
Escencialmente tu duda es la seguridad de SQL, no? Pues que un usuario tenga acceso a la base desde Excel esta mal. Hay directivas en SQL Server con las que un Admin de base de datos puede trabajar.

Los inicios de sesión de SQL Server son la herramienta (al menos para mi) con la que restringis o permitis acceso a leer (db_datareader) insertar, eliminar, actualizar (db_datawriter) o acceso total (db_owner). Pues el inicio de sesión no es visible por un usuario, solamente se muestran las credenciales (usuario del inicio de sesion y contraseña) por un archivo encriptado o talvez desde el sistema interno (credenciales compiladas en el codigo) y si es web, desde un archivo en el server...

No han administrado los logins en el servidor o los usuarios tienen las claves?
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch

Offline edu_guerr

  • Sv Member
  • ***
  • Posts: 463
Re: Seguridad Base de Datos SQL Server
« Reply #4 on: September 09, 2011, 06:18:16 pm »
Escencialmente tu duda es la seguridad de SQL, no? Pues que un usuario tenga acceso a la base desde Excel esta mal. Hay directivas en SQL Server con las que un Admin de base de datos puede trabajar.
Este es puro descuido del encargado de la bd, en cualquier empresa siempre existira uno o mas usuarios que intentaran pasarsela de listo usando algun macro de excel u otra herramienta, por lo que hay que considerarlo siempre.

Offline murraybozinsky

  • Sv Jr.
  • **
  • Posts: 54
Re: Seguridad Base de Datos SQL Server
« Reply #5 on: September 09, 2011, 08:13:53 pm »
bueno navegando por alli me encontre esta nota
http://www.mug.org.ar/SQL/ArticSQL/1804.aspx
que mas o menos es lo que mencionas tu bereco190xP, en todo caso creo que me gusta mas
la idea de mapear las contraseñas segun explica la nota, y eso lo puedo hace desde la aplicación, sin necesidad
de molestar al dba, que pienso que lo tienen alli de gusto, pero ni modo.
Gracias.

Offline tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Posts: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: Seguridad Base de Datos SQL Server
« Reply #6 on: September 13, 2011, 06:26:08 pm »
yo te recomendaría utilizar adecuadamente los GRANT en las tablas, mezclandolos con la creación vistas para consultas simples, logras lo que buscas....

lo más común que he visto en aplicaciones, es conectarse con la seguridad integrada de windows(hablando de sqlserver), cosa que en todos los sistemas de los que hablo esta mal echo.

o lo otro que he visto, es utilizar un solo usuario  para la conexión de la aplicacion, y que usan una pseudo tabla de acceso de usuarios, que no tiene ningún sentido...

....por otro lado, la seguridad no tiene nada que ver con store procedures, no hay ningúna relación...
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Offline Pattyxoxo

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Posts: 4399
  • Judge XOXO Dredd
Re: Seguridad Base de Datos SQL Server
« Reply #7 on: September 13, 2011, 08:59:10 pm »
esta en ingles pero una vista en esta paginita te puede ayudar mucho...

http://www.greensql.com/content/sql-server-security-best-practices
"El Socialismo solo funciona en dos lugares: en el Cielo, donde no lo necesitan, y en el Infierno donde ya lo tienen"


Offline Juancho

  • The Communiter-
  • *
  • Posts: 1311
Re: Seguridad Base de Datos SQL Server
« Reply #8 on: October 03, 2011, 09:20:12 pm »
Bueno, creo q mucho te han dicho, utilizar solo Procedimientos almacenados, MSSQLServer, tiene muchas herramientas para la seguridad, puede ser q el DBA del proyecto no conozca bn la utilizacion de la seguridad en una BD. Por ejemplo, 2 de los grandes pilares ens eguridad de MSSQL son los roles como los esquemas, tanto puedes definirle los roles q va a tener sobre las BD del sistema y los esquemas a un usuario para saber a lo q puede y no puede acceder, a eso agregale el inicio de sesion de SQL. Lo q pasa q la mayoria d veces la gente no peude utilizar los esquemas en las BD, y solo utilzan los roles, x ejemplo si las cuentas de usuario solo tienen acceso a SELECT pero no a modificar o crear, facilmente las puedes aislar en VIEW (para no comprometer la tabla) y dentro de otro esquema. Pero es de saber primero la seguridad q tienen los motores de base de datos.
<a href="http://www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/" target="_blank">
<img src="http://cache.www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/b_560x95.png" border="0" width="560" height="95" alt="" />
</a>