You are on page 1of 19

12-6-2013

Proyecto Final
Seguridad
Carolina Hurtado Henao
INGENIERIA DE SISTEMAS
1. Implementar, usando libreras criptogrficas de Java, una suite de cifrado para:

Generar un Resumen (Message Digest)







Generar una firma Digital



- Compleja



- Simple









Cifrar un mensaje con Clave Privada










Cifrar un mensaje con Criptografa asimtrica de Llave Pblica








Implementar una aplicacin que permita a un usuario obtener una comunicacin
segura a partir de un servidor SSL.







Error al iniciar el demonio del Servidor:


2. Implementar un escner de puertos en (C ++ || # o Java o PHP o Python) utilizando
operaciones y paso de mensajes va sockets e integrar un esquema de firewall simple que permita
cerrar servicios conforme el anlisis de resultados del escner de vulnerabilidades. Se deben
ejecutar las reglas de filtrado desde la aplicacin.



El cdigo anterior permite el escaneo de puertos. Al ejecutarlo en Java:
- Ingreso mi IP



- Como el rango de puertos esta entre 1 y 1000, se puede ir observando por cuales no est
escuchando y por cuales si





Para el uso de IPtables se ejecuta el cdigo desde el terminal en LINUX







- Con el comando ifconfig, averiguamos la IP


- En el archivo PScanner se ingresa la IP, y el rango de puertos, en este caso
entre 0 y 150 (aunque el rango puede variar)

- Se compila y se ejecuta el archivo

- Se observa los puertos que no estn escuchando y los que si

- Se le ingresa el comando iptables -L




3. Implementar un mdulo que permita filtrar intentos de ataques de SQL Injection
evitando consultas vulnerables y que incorpore funciones para escapar caracteres
anmalos en las cadenas SQL, debe sustentar la vulnerabilidad de inyeccin y la
contramedida.

En la base de datos se encuentran ingresados los siguientes registros




Se tiene el siguiente login, en el cual pueden ingresar personas de dos tipos o
roles (campo nmero 6 de la B.D), un administrador o un usuario





Para acceder se ingresa un nombre y un password, los cuales tiene que estar
registrados en la Base de Datos, para poder ser comparados, y de acuerdo al rol
que posee lo redirecciona a su respectiva pgina.

La anterior aplicacin web es a la cual se le aplicara el cdigo para prevenir el SQL
Injection en Java




SQL Injection

Qu es un ataque SQL Injection?
Los ataques SQL Injection explotan una vulnerabilidad en la validacin de las entradas a la
base de datos de una aplicacin. Una inyeccin SQL consiste en inyectar un cdigo SQL
invasor dentro de otro cdigo SQL para alterar su funcionamiento normal haciendo que se
ejecute el cdigo invasor en la base de datos.

El siguiente es el cdigo en Java con el que se intenta recuperar los usuarios que coinciden
con el usuario y la contrasea ingresados



Para lo anterior si se loguea carolina 770055, se redirecciona a su pgina como
administradora:




Si se loguea diego 009876, se redirecciona a su pgina como usuario:




Si se loguea daniel 24dgdg, no deja ingresar por no encontrarse los datos en la B.D




Si se tiene acceso al cdigo y/o sentencia de recuperacin de usuarios y se le aplica SQL
Injection, quedara de la siguiente forma:



Por ser este un login si se ingresa en ambos espacios '1' OR '1' = '1' y '1' OR '1' = '1',
nos redirecciona a la pgina de administrador, de igual forma para cualquier nombre y
contrasea que se ingrese as estos no estn almacenados en la Base de Datos!!!












Para impedir esta clase de penetracin en nuestra aplicacin, se implementa el siguiente
cdigo para prevenir los ataques con SQL Injection
- En la clase clsConecta:




En java se utiliza la librera PreparedStatement que es una sentencia SQL de base de datos
pre compilada, y esto permite que su ejecucin sea ms rpida que una SQL normal.
Utilizamos ResulSet para devolver el resultado de esta orden a ejecutar

De hecho, si se trata de setear el String con unos caracteres como este, asi se ingrese el
nombre y la clave correspondientes, no permite ingresar!!!



- En la clase DAOEmpleado



Para el login se implementa este cdigo que ayuda a prevenir la filtracin a nuestros datos
guardados en la B.D

You might also like