Desarrollo de aplicaciones seguras con.NET David Carmona División de Desarrolladores y Plataforma Microsoft Ibérica.

Slides:



Advertisements
Presentaciones similares
Presentación – Web Attack
Advertisements

1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
Procesos para un desarrollo seguro
Recomendaciones para la escritura de código seguro
Algunos tips en Seguridad ASP.NET 2.0
Componentes de ASP.NET Leonardo Diez Dolinski Servicios Profesionales Danysoft.
Programa VSIP David Carmona División de Desarrolladores y Plataforma Microsoft Ibérica.
Amenazas o vulnerabilidades de procesos Directivas de seguridad Principio de Privilegios mínimos Boletines de Seguridad Amenazas o vulnerabilidades.
Implementación de procedimientos almacenados
Internet Information Server 6.0 Aplicaciones Web Seguras
Seguridad en aplicaciones Web con Microsoft ASP.NET
Acceso a datos con Microsoft ADO.NET
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia
Defensa contra ataques web comunes
ADMINISTRACION DE REDES SECUENCIA DE COMANDOS EN SITIOS CRUZADOS(XSS)
Errores comunes al desarrollar websites
© 2011 All rights reserved to Ceedo. Ceedo - Flexible Computing Autenticación Basada en Certificado (CBA) - Doble Factor de Autenticación ( 2FA) La organización.
INFOPATH.
INGENIERÍA DE SISTEMAS E INFORMÁTICA TEMA: ANÁLISIS DE LAS APLICACIONES WEB DE LA SUPERINTENDENCIA DE BANCOS Y SEGUROS, UTILIZANDO LAS RECOMENDACIONES.
ACCESO A BASES DE DATOS ORACLE CON PHP
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Seguridad en ASP.NET Daniel Laco
Acceso a datos y paso de datos entre capas
Implementación de seguridad en aplicaciones y datos
Escritura de código seguro: defensa contra las amenazas
Seguridad y Privacidad
Características Técnicas
Introducción ADO .Net.
Auditoria Informática Unidad II
BUFFER OVERFLOW Y EXPLOITS
Desarrollo de sitios web con PHP y MySQL Tema 7: Seguridad José Mariano González Romano
Nomiplus T&A . NET Sistema Integral de Control de Asistencias altamente configurable para el Control de Personal, permitiendo la Administración del.
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
SERVIDOR.
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
HOL – FOR06. ► Introducción. ► Configuración de Forefront. ► Amenazas web: Solución Antimalware ► Amenazas de correo electrónico. Malware y Spam ► Protección.
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
Los Diez Riesgos Más Importantes en Aplicaciones WEB Top A1-Inyección Oscar William Monsalve Luis Alberto Suarez Jorge Eliecer Betancur Diana Marcela.
The OWASP Foundation OWASP AppSec Aguascalientes 2010 Guía de Desarrollo Seguro Francisco Aldrete Miembro de OWASP capítulo Aguascalientes.
Seguridad en Aplicaciones Web
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
OWASP - A6 Open Web Application Security Project Riesgo por: Configuración Defectuosa de Seguridad Guillermo David Vélez Álvarez C.C. 71' 763,346.
EXPLOITEXPLOIT Equipo 3Equipo 3. Exploit: Es un programa o código que "explota" una vulnerabilidad del sistema o de parte de él para aprovechar esta deficiencia.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
INSTITUTO DE ESTUDIOS SUPERIORES DE CHIHUAHUA COMPUTACION Ciclo: segundo cuatrimestre Lic. Roberto Servando Roque Corona.
Top 25 errores de la programación
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Instituto Tecnológico Superior de Nochistlán División Académica Ingeniería en Sistemas Computacionales “Manejo de Seguridad en PHP: Aplicaciones Seguras”
ATAQUES POR INYECCION DE CODIGO SQL
UNIVERSIDAD TECNOLÓGICA ECOTEC. ISO 9001: Lucía Castro- Víctor Cabezas- Diana Checa UNIVERSIDAD ECOTEC Ataques Aplicaciones WEB Lucía Castro Víctor.
UD 1: “Adopción de pautas de seguridad informática” Análisis de las principales vulnerabilidades de un sistema informático. Luis Alfonso Sánchez Brazales.
REFERENCIA DIRECTA INSEGURA A OBJETOS
XSS CROSS SITE SCRIPTING Es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte.
Introducción a ataques de tipo inyección: Inyección SQL
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López 24/09/ Adrián de la Torre López.
Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que.
Punto 6 – Seguridad en el protocolo HTTP Juan Luis Cano.
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Secuencia de Comandos en Sitios Cruzados XSS
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Hackear un Sitio Web. Claudio
A NÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez.
Alberto Rivera Tavera Microsoft Student Partner
JDBC. Definición Java Database Conectivity El acceso a bases de datos JDBC implica abrir una conexión ejecutar comandos SQL en un sentencia procesar los.
Usuarios. Colocar el servidor en el modo de autenticación Windows/SqlServer. En SQL Server Management Studio, click derecho, Propiedades en la Instancia.
WINDOWS SERVER 2008 r2 ADMINISTRACION DE RECURSOS: Con el Administrador de recursos del sistema de Windows del sistema operativo Windows Server® 2008 R2,
Transcripción de la presentación:

Desarrollo de aplicaciones seguras con.NET David Carmona División de Desarrolladores y Plataforma Microsoft Ibérica

¿Qué vamos a ver? Preguntas sobre seguridad Análisis amenazas Criterios aceptación seguridad Revisión de seguridad del diseño Mejores prácticas de desarrollo Pruebas seguridad Pruebas mínimo privilegio Security Push Instalación y operaciones Aprender y redefinir Revisiones de código Pruebas mínima exposición

Errores más comunes The Security of Applications Porcentaje de aplicaciones Cifrado débil 24% Autenticación falseable 62% Validación de entrada vulnerable 71% Algún error de seguridad 100%

Validación de la entrada Identificar posibles entradas Campos HTML, controles WinForms Servicios Web / Remoting / DCOM QueryString, Cookies, Viewstate ¡¡ Nunca confiar en su contenido !! Validar en servidor Buffer overruns Inyección SQL Cross-site scripting (XSS)

PUSH 0x PUSH [0x0A2EF4D9] CALL 0x0A3BA78C Validación de la entrada Buffer overruns void UnSafe (const char* datoSinValidar) { int otraVariableLocal; strcpy (variableLocal, datoSinValidar); } char variableLocal[4]; Stack char[4] int Return address 0x01 0x01 0x01 0x01 0x0A 0x3B 0xA4 0x29 0x00 0x14 0x5B 0xB1 0xDA 0xC1 0x42... datoSinValidar 0x x0A3BA429

Validación de la entrada Buffer overruns Causas más comunes Copia de cadenas Arrays Reserva de memoria insuficiente Defensas Utilizar código manejado Vigilar P/Invoke, código unsafe Usar con cuidado strcpy, memcpy Mejor equivalentes en strsafe.h Habilitar switch /GS

Validación de la entrada Inyección SQL Control del criterio de una sentencia SQL desde algún parámetro de entrada SqlConnection conn= new SqlConnection( server=localhost;Database=Northwind + user id=sa;password=pass*word;"); string sqlString="SELECT * FROM Orders WHERE + CustomerID='" + idCliente + "'"; SqlCommand cmd = new SqlCommand(sqlString, conn); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); //...

Validación de la entrada Inyección SQL SELECT * FROM Orders WHERE CustomerID=VINET' La gente buena introduce VINET SELECT * FROM Orders WHERE CustomerID=VINETOR 1=1 -- Los malos VINET OR 1=1 -- SELECT * FROM Orders WHERE CustomerID=VINET; DROP TABLE ORDERS -- Los malísimos VINET; DROP TABLE ORDERS -- SELECT * FROM Orders WHERE CustomerID= VINET;exec xp_cmdshell format C: VINET;exec xp_cmdshell format C:

Validación de la entrada Inyección SQL Utilizar comandos parametrizables Al menos minimizarlo Validar entrada en servidor Usar cuentas SQL restringidas No volcar mensajes de error string sqlString="SELECT * FROM Orders WHERE SqlCommand cmd = new SqlCommand(sqlString, conn); idCliente);

Validación de la entrada Cross-site scripting Agujeros que permiten al hacker ejecutar código script en un cliente web Dos entradas principales Contempladas (foros, s, librerías…) Ocultas (querystring, campos HTML…) Efectos habituales Modificación del contenido Envío de información Robo de sesión

Validación de la entrada Cross-site scripting Validar y limpiar cualquier entrada Vigilar, … Especialmente la que es mostrada después Utilizar HttpOnly en IE6.1 Aprovechar ASP.NET HTMLEncode para limpiar ValidateRequest para validar todas las entradas

Autenticación falseable Robos de passwords Nunca enviar por canales inseguros Cuidado con RPC, Remoting Proteger su almacenamiento Establecer políticas Utilizar hash con salt Password SHA1CryptoServiceProvider.ComputeHash Salt Hash

Autenticación falseable Modificación de ticket ASP.NET utiliza tickets en forma de URL o cookie Robo de cookie Cuidado con XSS Usar RequireSSL y !Persistent Modificación de cookie Si contiene información del usuario Utilizar MAC

Cifrado débil Defensas Mejor sin secretos Utilizar hash Usar autenticación integrada Si los hay mejor en servidor No almacenar en querystring, campos ocultos, viewstate, … En cualquier caso usar siempre cifrado ¡Nunca uno propio!

Cifrado débil Algoritmos de cifrado El punto débil está en la clave Para no trastear con ella… Cifrar con certificado digital Acceso controlado por Windows Usar DPAPI Clave controlada por Windows Dispositivos hardware

Sumario La gran mayoría de las aplicaciones tienen agujeros de seguridad ¿Y la tuya? La regla del 20 / 80 Validación de entrada Autenticación Cifrado El 100% está en el resto del ciclo de vida

Para saber más Seminarios de seguridad TechNet Security Day Barcelona 5 febrero Madrid 12 febrero Guías de arquitectura (PAGs) Ms Press Writing Secure Code