Proteger estructura/datos de los sysadmin (sa)

21/09/2009 - 23:56 por ramiritu | Informe spam
Hola; tengo el siguiente problema:

Necesito impedir que el sysadmin tenga acceso a mis Bases de Datos SQL Server.

Por que quiero impedir esto?.

En la empresa donde trabajo tenemos varias aplicaciones desarrolladas en SQL
Server y no queremos que los sysadmins donde instalamos nuestras aplicaciones
tengan acceso a nuestras bases de datos.

Esta inquietud de proteger los datos de los sysadmins radica en que ya
tenemos incidentes con algunas instalaciones donde estan entrando a las bases
de datos a hacer inserciones, consultas, modificaciones etc. y tambien
tenemos la inquietud que nos copien la estructura de la base de datos la
competencia. Lo peor es que esas modificaciones que hacen en nuestra
estructura en algunos casos esta bajo el concentimiento de los mismos dueños
de la empresa donde estan nuestras aplicaciones instaladas. Obviamente el DBA
gosa de su completa confianza del dueño; pero el problema es que para
nosotros el DBA no es de confianza.

Ahora estamos a punto de implementar SQL Server 2008 con encriptacion
transparente (TDE),pero tampoco nos resuelve el problema del acceso de los
sysadmins a nuestras bases de datos;

Una idea que tenemos es hacernos del SA de las instalaciones asi no podran
entrar por ningun lado ya que tambien estara implementado TDE. Pero ahi ya
tambien nos chocamos en que nosotros tenemos versiones Lite (recortadas) las
que corren en SQL Express (para pequeñas empresas); y TDE solo puede ser
usado en la version Enterprise de SQL Server (tomar encuenta el costo de
licensamiento no todos quedran comprar esa licencia). Tambien implementamos
columnas encryptadas que nos ayudan a saber si los registros fueron hechos
por nuestros sistemas o no esto (algo asi como una firma que esta enlazada al
registro) que tambien nos permitira sacar mensajes en nuestras aplicaciones
"De que la abse de datos nos es confiable ya que sufrio modificaciones extra
sistemas" estamos ya a punto de terminar eso.

Contarles la anegdota de una de estas empresas que anda haciendo todo eso de
meterce a la base de datos y modificar registros insertar etc. Esta empresa
lleva como cliente nuestro ya casi 3 años (SQL Server 2005) esta emrpesa
cuenta con una cartera de aproximadamente 23 mil clientes y va en crecimiento
constante, y por no comprar mas licencias de puntos de cobranzas por que le
parecen caras suponemos que dio la autorizacion a su DBA de analizar nuestras
estructuras (dicha persona tiene certificaciones de microsoft como
desarrollador en .net) hasta que nos dimos cuenta de que habian desarrollado
un punto de cobranzas propio sobre nuestras estructuras; darnos cuenta de
esto nos tomo bastante tiempo y cuando lo hicimos nos dimos cuenta que les
tomo casi un año afinar su programa para llegar a tener casi un 100% de
exactitud como la nuestra, digo casi por que por ahi es donde lo pillamos por
algunos registros que el asia de distinta manera que nosotros o algunas
columnas que el llenaba que nosotros ya en versiones actuales ya no usamos y
habian rastros de como el fue afinando estas inserciones de una data de un
año atras. la cosa es que nos costo tiempo y dinero pillar esto. y hacer esto
en un proceso tan delicado como cobranzas es tremendo podemos tener problemas
con la ley si el DBA hace estas cosas sin que el concentimiento del dueño
quien dice que tiene su quintita y hace y deshace operaciones de cobranzas,
la culpa nos cae a nosotros. y bueno asi van apareciendo otras cuentas
(instalaciones) que ya estan con la misma tonica que esta empresa que les
comento.

como veran estamos metidos un tremendo problema, aparte que estamos a punto
de migrar a todos nuestros clientes de ACCESS a SQL Server que son bastantes.

Bueno espero puedan ayudarme, si no es posible hacer lo que pido, por lo
menos hacerle mas dificil el acceso a los DBAs. Esto es trabajo de muchos
años y no podemos dejar que otros en un 2 por 3 se aprovechen de lo
desarrollado, costo mucho tiempo y esfuerzo llegar al nivel que llegamos.

Gracias. de ante mano

Preguntas similare

Leer las respuestas

#1 aa
22/09/2009 - 00:20 | Informe spam
Al sysadmin no creo que le puedas sacar nada,por eso es sysadmin.
O haces como sap que para una tabla tiene muchas tablas con un campo en cada
una o grabas los datos con una funcion tuya encriptando (no el del sql sino
algo de ustedes) y cuando el sistema lee lo desencripta,si ellos no saben tu
encriptacion por mas que graben cuando vos desencriptes lo de ellos va a
darte basura,yo creo que es lo mejor.
"ramiritu" wrote in message
news:
Hola; tengo el siguiente problema:

Necesito impedir que el sysadmin tenga acceso a mis Bases de Datos SQL
Server.

Por que quiero impedir esto?.

En la empresa donde trabajo tenemos varias aplicaciones desarrolladas en
SQL
Server y no queremos que los sysadmins donde instalamos nuestras
aplicaciones
tengan acceso a nuestras bases de datos.

Esta inquietud de proteger los datos de los sysadmins radica en que ya
tenemos incidentes con algunas instalaciones donde estan entrando a las
bases
de datos a hacer inserciones, consultas, modificaciones etc. y tambien
tenemos la inquietud que nos copien la estructura de la base de datos la
competencia. Lo peor es que esas modificaciones que hacen en nuestra
estructura en algunos casos esta bajo el concentimiento de los mismos
dueños
de la empresa donde estan nuestras aplicaciones instaladas. Obviamente el
DBA
gosa de su completa confianza del dueño; pero el problema es que para
nosotros el DBA no es de confianza.

Ahora estamos a punto de implementar SQL Server 2008 con encriptacion
transparente (TDE),pero tampoco nos resuelve el problema del acceso de los
sysadmins a nuestras bases de datos;

Una idea que tenemos es hacernos del SA de las instalaciones asi no podran
entrar por ningun lado ya que tambien estara implementado TDE. Pero ahi ya
tambien nos chocamos en que nosotros tenemos versiones Lite (recortadas)
las
que corren en SQL Express (para pequeñas empresas); y TDE solo puede ser
usado en la version Enterprise de SQL Server (tomar encuenta el costo de
licensamiento no todos quedran comprar esa licencia). Tambien
implementamos
columnas encryptadas que nos ayudan a saber si los registros fueron hechos
por nuestros sistemas o no esto (algo asi como una firma que esta enlazada
al
registro) que tambien nos permitira sacar mensajes en nuestras
aplicaciones
"De que la abse de datos nos es confiable ya que sufrio modificaciones
extra
sistemas" estamos ya a punto de terminar eso.

Contarles la anegdota de una de estas empresas que anda haciendo todo eso
de
meterce a la base de datos y modificar registros insertar etc. Esta
empresa
lleva como cliente nuestro ya casi 3 años (SQL Server 2005) esta emrpesa
cuenta con una cartera de aproximadamente 23 mil clientes y va en
crecimiento
constante, y por no comprar mas licencias de puntos de cobranzas por que
le
parecen caras suponemos que dio la autorizacion a su DBA de analizar
nuestras
estructuras (dicha persona tiene certificaciones de microsoft como
desarrollador en .net) hasta que nos dimos cuenta de que habian
desarrollado
un punto de cobranzas propio sobre nuestras estructuras; darnos cuenta de
esto nos tomo bastante tiempo y cuando lo hicimos nos dimos cuenta que les
tomo casi un año afinar su programa para llegar a tener casi un 100% de
exactitud como la nuestra, digo casi por que por ahi es donde lo pillamos
por
algunos registros que el asia de distinta manera que nosotros o algunas
columnas que el llenaba que nosotros ya en versiones actuales ya no usamos
y
habian rastros de como el fue afinando estas inserciones de una data de un
año atras. la cosa es que nos costo tiempo y dinero pillar esto. y hacer
esto
en un proceso tan delicado como cobranzas es tremendo podemos tener
problemas
con la ley si el DBA hace estas cosas sin que el concentimiento del dueño
quien dice que tiene su quintita y hace y deshace operaciones de
cobranzas,
la culpa nos cae a nosotros. y bueno asi van apareciendo otras cuentas
(instalaciones) que ya estan con la misma tonica que esta empresa que les
comento.

como veran estamos metidos un tremendo problema, aparte que estamos a
punto
de migrar a todos nuestros clientes de ACCESS a SQL Server que son
bastantes.

Bueno espero puedan ayudarme, si no es posible hacer lo que pido, por lo
menos hacerle mas dificil el acceso a los DBAs. Esto es trabajo de muchos
años y no podemos dejar que otros en un 2 por 3 se aprovechen de lo
desarrollado, costo mucho tiempo y esfuerzo llegar al nivel que llegamos.

Gracias. de ante mano
Respuesta Responder a este mensaje
#2 Ruben Garrigos
22/09/2009 - 00:24 | Informe spam
Hola ramiritu,

Lamentablemente creo que teneis un problema grave. Si dais permisos de sysadmin
a los usuarios en vuestros servidores de SQl Server no hay forma que de forma
más o menos sencilla no obtengan acceso a vuestros datos. Ahora bien, quizás
podríais hacer que esos datos no les sean "útiles" manteniendolos encriptados
en la base de datos continuamente. Para hacer eso no podeis depender de SQL
Server únicamente si ya por otro lado les estais dando acceso total. Creo
que una posibilidad es que vuestra aplicación almacene la información encriptada
en la base de datos con un algoritmo propietario vuestro.

El problema lo tendrías después en protegeros ante modificaciones de vuestro
código para saltarse dicha encriptación. Tendríais que utilizar código firmado,
ofuscación, etc. Aún así, un debugger a nivel de memoria del servidor os
podría desenmascarar. Supongo que tendreis que llegar a un compromiso con
los clientes para que firmen algún documento en el que se diga algo así como
que si modifican algo de la BD la aplicación dejará de funcionar. La aplicación
podría cada cierto tiempo comprobar la "integridad" de la base de datos y
asegurarse que nadie ha cambiado nada. Por ejemplo scriptando todos los procedimientos,
tablas, etc. y calculando un checksum. Si se modifica, es que han cambiado
algo de la estructura. Para los datos podríais crear algún tipo de checksum/hash
propietario de forma que todas las filas se comprueben de dicha forma. En
el momento que la aplicación detecte algun intento de modificación o fila
no autorizada pues podría detenerse y no continuar.

Creo que al final hay un coste importante en hacer vuestra aplicación "parcialmente
segura" ante modificaciones (tanto tampering de la base de datos como a cambios
de datos no autorizados) por lo que puede que no os sea rentable. También
podríais plantearos mantener vosotros el software y que se realizara un acceso
remoto a dicho software, realizando vosotros el hosting de la aplicación
de forma que tuvierais control del acceso a los servidores y vuestros clientes
fuesen meros usuarios.

Dadle una pensada y pensad realmentehasta donde estais dispuestos, de verdad,
a invertir para que no os modifiquen vuestro software y datos. No hay solución
mágica ni sencilla ni transparente para solucionar algo así...

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola; tengo el siguiente problema:

Necesito impedir que el sysadmin tenga acceso a mis Bases de Datos SQL
Server.

Por que quiero impedir esto?.

En la empresa donde trabajo tenemos varias aplicaciones desarrolladas
en SQL Server y no queremos que los sysadmins donde instalamos
nuestras aplicaciones tengan acceso a nuestras bases de datos.

Esta inquietud de proteger los datos de los sysadmins radica en que ya
tenemos incidentes con algunas instalaciones donde estan entrando a
las bases de datos a hacer inserciones, consultas, modificaciones etc.
y tambien tenemos la inquietud que nos copien la estructura de la base
de datos la competencia. Lo peor es que esas modificaciones que hacen
en nuestra estructura en algunos casos esta bajo el concentimiento de
los mismos dueños de la empresa donde estan nuestras aplicaciones
instaladas. Obviamente el DBA gosa de su completa confianza del dueño;
pero el problema es que para nosotros el DBA no es de confianza.

Ahora estamos a punto de implementar SQL Server 2008 con encriptacion
transparente (TDE),pero tampoco nos resuelve el problema del acceso de
los sysadmins a nuestras bases de datos;

Una idea que tenemos es hacernos del SA de las instalaciones asi no
podran entrar por ningun lado ya que tambien estara implementado TDE.
Pero ahi ya tambien nos chocamos en que nosotros tenemos versiones
Lite (recortadas) las que corren en SQL Express (para pequeñas
empresas); y TDE solo puede ser usado en la version Enterprise de SQL
Server (tomar encuenta el costo de licensamiento no todos quedran
comprar esa licencia). Tambien implementamos columnas encryptadas que
nos ayudan a saber si los registros fueron hechos por nuestros
sistemas o no esto (algo asi como una firma que esta enlazada al
registro) que tambien nos permitira sacar mensajes en nuestras
aplicaciones "De que la abse de datos nos es confiable ya que sufrio
modificaciones extra sistemas" estamos ya a punto de terminar eso.

Contarles la anegdota de una de estas empresas que anda haciendo todo
eso de meterce a la base de datos y modificar registros insertar etc.
Esta empresa lleva como cliente nuestro ya casi 3 años (SQL Server
2005) esta emrpesa cuenta con una cartera de aproximadamente 23 mil
clientes y va en crecimiento constante, y por no comprar mas licencias
de puntos de cobranzas por que le parecen caras suponemos que dio la
autorizacion a su DBA de analizar nuestras estructuras (dicha persona
tiene certificaciones de microsoft como desarrollador en .net) hasta
que nos dimos cuenta de que habian desarrollado un punto de cobranzas
propio sobre nuestras estructuras; darnos cuenta de esto nos tomo
bastante tiempo y cuando lo hicimos nos dimos cuenta que les tomo casi
un año afinar su programa para llegar a tener casi un 100% de
exactitud como la nuestra, digo casi por que por ahi es donde lo
pillamos por algunos registros que el asia de distinta manera que
nosotros o algunas columnas que el llenaba que nosotros ya en
versiones actuales ya no usamos y habian rastros de como el fue
afinando estas inserciones de una data de un año atras. la cosa es que
nos costo tiempo y dinero pillar esto. y hacer esto en un proceso tan
delicado como cobranzas es tremendo podemos tener problemas con la ley
si el DBA hace estas cosas sin que el concentimiento del dueño quien
dice que tiene su quintita y hace y deshace operaciones de cobranzas,
la culpa nos cae a nosotros. y bueno asi van apareciendo otras cuentas
(instalaciones) que ya estan con la misma tonica que esta empresa que
les comento.

como veran estamos metidos un tremendo problema, aparte que estamos a
punto de migrar a todos nuestros clientes de ACCESS a SQL Server que
son bastantes.

Bueno espero puedan ayudarme, si no es posible hacer lo que pido, por
lo menos hacerle mas dificil el acceso a los DBAs. Esto es trabajo de
muchos años y no podemos dejar que otros en un 2 por 3 se aprovechen
de lo desarrollado, costo mucho tiempo y esfuerzo llegar al nivel que
llegamos.

Gracias. de ante mano

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida