SEGURIDAD ENBASES DE DATOS
INTRODUCCIÓN A LASEGURIDAD Información almacenada en la base de datos debe estar protegida contra accesos no autorizados,...
Términos de bases de datos
VIOLACIONES DE LA SEGURIDADE INTEGRIDAD                              La pérdida de                             consistenci...
Formas de acceso indebido  Lectura de datos sin autorización  (robo de información).  Modificación de datos sin  autorizac...
Niveles de seguridad para una base de datos:                         Físico  El lugar donde se encuentran los sistemas deb...
¿Que son las inyecciones de códigoSQL? Es un método de infiltración de código intruso que se vale de una vulnerabilidad i...
¿Dónde se origina esteproblema? Por el incorrecto chequeo o filtrado de las variables.
¿Como saber si tu sitio puede serhackeado con SQL Injection? Simplemente agregale "/*" o una simple tilde, si te tira  un...
¿Como realiza un hacker lainyección? Simplemente verifica que el sitio sea vulnerable con las tecnicas que mencioné anter...
¿En que consiste? Validar el acceso de un usuario registrado utilizando SQL: $sql = "SELECT * FROM usr WHERE id = " . $id ...
 Si intentamos modificar la consulta poniendo cómo  contraseña  OR  =    SELECT * FROM usr WHERE id = root AND pwd =    O...
 el visitante malintencionado podra conseguir contraseñas, borrar, anñadir y modificar datos de nuestra base de datos... ...
¿Que debo hacer? En el caso de que tu servidor haya dado resultado positivo, será porque no se preocupa de cambiar la com...
inyeccion.php // Evitamos la inyeccion SQL // Modificamos las variables pasadas por URL foreach( $_GET as $variable => $v...
Incluiremos este script en todas laspáginas realicemos consultas a la basede datos: // Evitamos la inyeccion SQL include ...
Seguridad en bases de datos
Próxima SlideShare
Cargando en…5
×

Seguridad en bases de datos

720 visualizaciones

Publicado el

Publicado en: Educación
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Seguridad en bases de datos

  1. 1. SEGURIDAD ENBASES DE DATOS
  2. 2. INTRODUCCIÓN A LASEGURIDAD Información almacenada en la base de datos debe estar protegida contra accesos no autorizados, la destrucción o alteración de datos con fines indebidos y contra la introducción accidental de inconsistencia.
  3. 3. Términos de bases de datos
  4. 4. VIOLACIONES DE LA SEGURIDADE INTEGRIDAD La pérdida de consistencia se debe: Anomalías en la Error lógico que Caídas de Anomalías a la distribución viola transacciones base de datos computadores transacciones Para respeta protecciones de base de datosEs más fácil prevenir la pérdida de consistencia de datos queprevenir el acceso mal intencionado a la base de datos
  5. 5. Formas de acceso indebido Lectura de datos sin autorización (robo de información). Modificación de datos sin autorización. Destrucción no autorizada de los datos
  6. 6. Niveles de seguridad para una base de datos: Físico El lugar donde se encuentran los sistemas debe estar protegido Humano Debe tener cuidado al conceder autorizaciones Sistema operativo Seguridad contra ataques exteriores Sistemas de bases de datos Garantizar que no se violen las restricciones de autorización
  7. 7. ¿Que son las inyecciones de códigoSQL? Es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos. Consiste en la modificación de las consultas a nuestra base de datos a partir de los parámetros pasados por URL al script en PHP.
  8. 8. ¿Dónde se origina esteproblema? Por el incorrecto chequeo o filtrado de las variables.
  9. 9. ¿Como saber si tu sitio puede serhackeado con SQL Injection? Simplemente agregale "/*" o una simple tilde, si te tira un error, tu sitio es vulnerable. Vamos a poner un ejemplo: Tu sitio es "http://www.tupagina.com/index.php?id=1" Lo comprobamos de la siguiente manera: "http://www.tupagina.com/index.php?id=1/*" o tambien asi: "http://www.tupagina.com/index.php?id=1" como tambien de esta manera: "http://www.tupagina.com/index.php?id=1)" Si al colocar cualquiera de estas opciones da un error, tu sitio es vulnerable, por el contrario si tu sitio sigue mostrandose igual, tanto tu SQL como tu plantilla php estan correctamente configurados.
  10. 10. ¿Como realiza un hacker lainyección? Simplemente verifica que el sitio sea vulnerable con las tecnicas que mencioné anteriormente, si lo es comienza el proceso de prueba. tu sitio es : "http://www.tupagina.com/index.php?id=1" asi que se comienza con el chequeo de tablas asi "-1 order by 1" hasta dar con el error "-1 order by 16" una vez alli ya sabemos que las tablas son menos de 16 mostrando el siguiente error "Unknown column 17 in order clause".
  11. 11. ¿En que consiste? Validar el acceso de un usuario registrado utilizando SQL: $sql = "SELECT * FROM usr WHERE id = " . $id ; $sql .= " AND pwd = " . $pwd . "" ; Cuando se tienen valores para el nombre de usuario (id) y la contraseña del usuario (pwd) se tendrá una consulta normal a la base de datos que nos devolverá los datos del usuario si la contraseña es correcta: SELECT * FROM usr WHERE id = root AND pwd = 4358
  12. 12.  Si intentamos modificar la consulta poniendo cómo contraseña OR = SELECT * FROM usr WHERE id = root AND pwd = OR =  Como siempre es igual a , habremos modificado la consulta para que nos devuelva siempre los datos del usuario aunque la contraseña sea incorrecta, y el visitante malintencionado se podrá conectar como cualquier usuario.
  13. 13.  el visitante malintencionado podra conseguir contraseñas, borrar, anñadir y modificar datos de nuestra base de datos... por eso es importanto que nos aseguremos que nuestro sitio es seguro en este aspecto.
  14. 14. ¿Que debo hacer? En el caso de que tu servidor haya dado resultado positivo, será porque no se preocupa de cambiar la comilla simple por , y en este caso, deberemos ser nosotros los que manualmente lo cambiemos de todas las variables pasadas tanto por URL como vía formulario:
  15. 15. inyeccion.php // Evitamos la inyeccion SQL // Modificamos las variables pasadas por URL foreach( $_GET as $variable => $valor ){ $_GET [ $variable ] = str_replace ( "" , "" , $_GET [ $variable ]); } // Modificamos las variables de formularios foreach( $_POST as $variable => $valor ){ $_POST [ $variable ] = str_replace ( "" , "" , $_POST [ $variable ]); }
  16. 16. Incluiremos este script en todas laspáginas realicemos consultas a la basede datos: // Evitamos la inyeccion SQL include inyeccion.php ; // // Contenido de la página PHP //

×