Re: URGENTE

From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: LIZETH ANGHELA SIRPA CACERES <angheliz(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: URGENTE
Date: 2007-09-14 22:04:36
Message-ID: 20070914220436.GF2738@cajita
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

LIZETH ANGHELA SIRPA CACERES dijo [Thu, Sep 13, 2007 at 09:20:36PM -0400]:
> Si tienen alguna sugerencia o cometario, por favor haganmela
> llegar.(especialmete comentarios sobre ideas de ataques que se pueden
> realizar a los procedimientos almacenados)
>
> Ahh. tambien quisiera saber quienes se animan a ayudarme a realizar las
> pruebas finales, es decir los ataques

Ten en cuenta que hablar de los "procedimientos almacenados" es hablar
de funciones arbitrarias hechas en una variedad de lenguajes - incluso
toma en cuenta que hay lenguajes "trusted" y "untrusted" dependiendo
del tipo de operaciones que permiten.

¿Cómo puede un usuario de un sistema clásico (piensa en una aplicación
Web, por irnos a lo más común, o en un sistema transaccional detrás de
un GUI en determinada empresa) tener acceso a tus procedimientos
almacenados? Bueno, a través de las funciones que llamen directamente
las acciones que él pueda invocar, o a través de triggers invocados
indirectamente por acciones realizadas sobre tablas. El usuario final
(típicamente) no puede inyectar datos arbitrarios sobre de tus
procedimientos - y si puede hacerlo, es un fallo en la seguridad _de
tu aplicación_.

Pero bueno, una vez dentro de Postgres, e ignorando los lenguajes
no-confiables, ¿qué es lo que puede hacer determinado dato sobre un
procedimiento almacenado _bien escrito_? (y sí, acá asumo que los
programadores no hacen estupideces demasiado grandes - pero bueno,
muchas veces eso es asumir demasiado. O, como dicen otras personas,
«si te evitáramos hacer cosas aparentemente estúpidas, te evitaríamos
hacer cosas muy ingeniosas también») Está más limitado -
Digamos... ¿Pérdida/corrupción de información? Sí, claro, pero ya
tienes acceso directo a la BD, podrías estar modificando los datos
directamente en las tablas. Tal vez lo más grave sería una negación de
servicio (al invocar repetidamente un procedimiento que sea muy caro
para tu BD).

Eso sí, si abres la puerta para la ejecución de lenguajes
no-confiables (untrusted - PL/TclU, PL/PerlU, PL/PythonU y muchos
más), te proveen muchísima más funcionalidad... Pero muchísimos más
riesgos. Como sea, tú eliges si deseas emplearlos :)

Asómate a esta discusión (en inglés), tiene varios puntos que te
pueden servir:

http://www.thescripts.com/forum/thread173959.html

Y a este pedazo de documentación en español:

http://es.tldp.org/Postgresql-es/web/navegable/user/sql-createlanguage.html

Saludos,

--
Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)5623-0154 / 1451-2244
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

In response to

  • Re: URGENTE at 2007-09-14 01:20:36 from LIZETH ANGHELA SIRPA CACERES

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2007-09-15 00:02:35 Re: URGENTE
Previous Message Ramón Alberto Bruening González 2007-09-14 21:56:11 plpsql con resultado de consulta