seguridad en aplicaciones web
DESCRIPTION
Desarrollo de Seguridad en las aplicaciones webTRANSCRIPT
HACKEO Y DEFENSA PARA APLICACIONES WEB
PRESENTADO POR: ABEL ESTRELLA HUANCAYO
Configuración de la aplicación Web
Aplicación Web Hacking
Amenazas de Aplicaciones Web
Desarrollo de un Ataque
Medidas de Defensa
Herramientas de Hacking de Aplicaciones Web
DESARROLLO
CONFIGURACIÓN DE LA APLICACIÓN WEB
APLICACIONES WEB HACKING
Clonación de sitios web Robo de tarjeta de crédito información Aprovechamiento del lado del servidor
scripting La explotación de desbordamientos de búfer Ataques al Servidor de Nombres de Dominio
(DNS). Empleo de códigos maliciosos Denegación de Servicio Destrucción de datos
DESARROLLO DE UN ATAQUE
ESCANEO
RECOPILACION DE INFORMACIÓN
REALIZAR PRUEBAS O TESTEO
PLANIFICACIÓN DE ATAQUE
INICIO DEL ATAQUE
Interoperatividad entre Lenguajes .
Cualquier Lenguaje o protocolo puede ser victima.
La forma semántica de las funciones, programación.
Los meta caracteres
AMENAZAS EN APLICACIONES WEB
Cross-site scripting
Medidas Validar todas las cabeceras, las cookies, las
cadenas de consulta, los campos del formulario, y campos ocultos (es decir, todos los parámetros) en contra de un riguroso especificación.
Adoptar una estricta política de seguridad Filtrado de salida la secuencia de comandos
también para afrontar a las vulnerabilidades de XSS evitando que se transmiten a los usuarios.
Eliminando Html_tags Codificando los html tags Validando http_referer
Injection
Las aplicaciones web necesitan guardar datos
RDBMS (MySQL, MS-SQL, PostgreSQL, Oracle...)LDAP…XML
Un ataque típico es la inyección: variar significado sentencia (en nuestro beneficio)
SQL Injection
LDAP Injection
XPath Injection
SLQ INJECTION
Medidas El primer paso para prevenir los ataques
basados en SQL injection es ser consciente de que un usuario no siempre va a proporcionarte la entrada que tu piensas.
El segundo paso es realizar algo que es básico en seguridad: validación de datos. Para cada dato sea cual sea, proveniente de un usuario de la aplicación debemos asegurarnos de que sea válido y del tipo adecuado.
Cookie/session poisoning
Atributo
Valor Sintaxis Descripción
NOMBRE _DE_COOKIE
VALOR
El nombre y el valor no pueden contener los siguientes caracteres: punto y coma (;), coma (,) o espacio ( ). Dichos valores sólo se pueden agregar utilizando una codificación URL.
Este es el único atributo obligatorio.
expires FECHADía, DD-MM-AAAA HH:MM:SS GMT
El atributo de expires se usa para definir la fecha en la que la cookie ya no debe almacenarse en el disco rígido ni ser admitida por el servidor.
domain nombre_de_dominio xxx.xxx.xxx
El nombre del dominio generalmente se deja vacío ya que el nombre del servidor se asigna por defecto (generalmente es lo que se quiere aquí). Donde se indique, el nombre del dominio debe contener al menos dos puntos (es decir: www.commentcamarche.net). Un equipo proveniente de un dominio específico sólo puede especificar un nombre de sub-dominio o su propio nombre de dominio
path /directorio /ruta/El valor path se utiliza para definir una carpeta o archivo en el servidor dentro del cual la cookie es válida, para reducir el campo de acción.
secure ninguno El valor secure es opcional. Se utiliza para especificar que la cookie será enviada sólo si la conexión es segura (utilizando SSL o HTTPS).
Medidas
No guarde en texto plano o contraseña cifrada débil en un cookie.
Implementar eliminación de cookies por tiempo.
Las cookies de autenticación de credenciales debería estar asociada con una dirección IP.
Hacer salir funciones disponibles.
Buffer Overflow
Medidas
Validar formularios de entrada de longitud.
Comprobar los límites y mantener un cuidado especial cuando se utiliza a los bucles al momento de realizar copiado de los datos.
StackGuard y StackShield para Linux son herramientas para la defensa de programas y sistemas.
Herramientas de HackingInstant Source
Wget
WebSleuth
BlackWidow
WindowBomb
Burp
cURL
Instant Source
WGET
Ejemplos Bajar un archivo:
wget http://www.inti.gov.ar/index.html Bajar un archivo del cual ya bajamos una parte con otro programa:
wget -c http://www.inti.gov.ar/index.html Bajar el directorio completo de
http://www.debian.org/~jules/gnome-stage-2/dists/unstable/main/binary-i386/ donde estan unos .deb que queremos bajarnos: Wget -r -A=.html,.deb -nc -np http://www.debian.org/~jules/gnome-stage-2/dists/unstable/main/binary-i386/
Bajar un archive de Ftp:
wget ftp://username:[email protected]/somedir/somefile El mismo archive con password adicional:
Wget ftp://ftp.example.net/somefile --ftp-user=username --ftp-password= ”password”
WebSleuth - Screenshot
Blackwidow
SiteScope Tool
NORMAS DE SEGURIDAD DE APLICACIONES WEB
OWASP” (Open Web Application Security Project Validación de la
entrada y salida de información .
Diseños simples . Utilización y
reutilización de componentes de confianza
Defensa en profundidad
Tan seguros como el eslabón más débil
La "seguridad gracias al desconocimiento" no funciona.
Verificación de privilegios Ofrecer la mínima
información consideraciones de
arquitectura, mecanismos de autenticación, gestión de sesiones de usuario, control de acceso, registro de actividad, prevención de problemas comunes, consideraciones de privacidad y criptografía.
CONCLUSIONES Ningún Lenguaje de programación puede prever código
inseguro, aunque dentro de sus características permita el bloqueo de información confidencial y relevante.
El no uso de herramientas lógicas, ya sea firewall,
verificaciones de las aplicaciones web, depuraciones, permitirán la mayor vulnerabilidad de estas.
El mayor uso plataformas web, por la diversidad de
empresas y para todo tipo de servicios, donde las aplicaciones web tienen el papel más importante, convirtiéndolo en la interfaz de comunicación entre empresas y clientes, por ello de su implementación con estándares de seguridad.
A la par que avanzan las aplicaciones web, el avance
del hackeo va en paralelo.
RECOMENDACIONES Tener Buenas prácticas para el uso de internet es
decir:
usar contraseña en el equipo (router) de conexión a internet
Establecer mejores prácticas de uso de internet tales como navegar en sitios conocidos/seguros, evitar dar click a links enviados por otros usuarios, evitar abrir correos electrónicos de fuentes desconocidas
Utilizar una herramienta Antivirus con Firewall personal, detector de intrusos y soluciones Anti-Spam y Anti-Phishing
Es importantísimo crear aplicaciones web con, por lo menos, un nivel mediano y alto de seguridad.
Seguir el desarrollo de proyectos y normas para Aplicaciones Web Abiertas como el caso de Guía OWASP” (Open Web Application Security Project).