Documente Academic
Documente Profesional
Documente Cultură
Agenda
1. Seguridad de la Informacin
1.1. Introduccin
1.2. Estndares y Buenas Prcticas 1.3. Leyes y Regulaciones de Ecuador 2. Desarrollo Seguro de Software 2.1. Importancia del Software 2.2. Ambientes vs. Aplicaciones 2.3. Funcionalidad vs. Seguridad 2.4. Ciclo de Vida de Desarrollo de Sistemas 2.5. Ciclo de Vida de Desarrollo de Software 2.6. Seguridad Web 2.7. Amenazas Especficas para Ambientes Web
Agenda
3. Top Ten de Owasp
3.1. Injection
3.2. Broken Authentication and Session Management 3.3. Cross-Site Scripting (XSS) 3.4. Insecure Direct Object References 3.5. Security Misconfiguration 3.6. Sensitive Data Exposure 3.7. Missing Function Level Access Control 3.8. Cross-Site Request Forgery (CSRF) 3.9. Using Known Vulnerable Components 3.10. Unvalidated Redirects and Forwards
1. Qu es la Seguridad de la Informacin?
Garantiza que solo los usuarios autorizados (Confidencialidad) puedan tener acceso a la informacin precisa y completa (Integridad) cuando sea necesario (Disponibilidad)
Exposicin
La prdida potencial de un rea debido a la ocurrencia de un evento adverso
Tecnologa
Procesos
Disposiciones para propender a que las instituciones del sistema financiero cuenten con un sistema para la gestin del riesgo operativo que les permita identificar, medir, controlar / mitigar y monitorear los riesgos derivados de fallas o insuficiencias en los procesos, personas, tecnologas de informacin y eventos externos incluyendo el riesgo legal.
Norma JB-2148-2012
PARA OBTENER LO MEJOR DE AMBOS MUNDOS TENDRAN QUE SER DISEADOS E INTEGRADOS EN FASES INDIVIDUALES DEL CICLO DE VIDA DE DESARROLLO.
LA SEGURIDAD DEBE ESTAR ENTRELAZADA EN EL NUCLEO DEL PRODCUTO Y PROVEER PROTECCIN EN LAS CAPAS NECESARIAS.
ENTRADA
ENCRIPCIN PROCESAMIENTO LGICO
COMUNICACIN INTERPROCESOS
ACCESO SALIDAS INTERCONEXIN CON OTROS SISTEMAS
POR NATURALEZA LOS CONTROLES DE SEGURIDAD SIEMPRE SE HAN IDENTIFICADO COMO ADMINISTRATIVOS O FISICOS, LOS CONTROLES USADOS DENTRO DEL SOFTWARE SON MS TECNICOS POR NATURALEZA
LO IMPORTANTE ES COMPRENDER LAS NECESIDADES DE SEGURIDAD DE UNA PIEZA DE SOFTWARE, IMPLEMENTAR LOS CONTROLES Y MECANISMOS CORRECTOS, SEGUIR UNA METODOLOGIA DE DESARROLLO ESTRUCTURADA.
FIREWALLS
IDS/IPS FILTRADORES DE CONTENIDO
SOFTWARE ANTIVIRUS
ESCANERS DE VULNERABILIDADES HARD AND CRUNCHY ON THE OUTSIDE SOFT AND CHEWY ON THE INSIDE NUESTRO PERIMETRO ES SOLIDO/FORTIFICADO PERO NUESTRO ENTORNO INTERNO Y SOFTWARE SON FACILES DE EXPLOTAR UNA VEZ CONSEGUIDO EL ACCESO.
AMBIENTES VS APLICACIONES
LA SEGURIDAD HA SIDO PROVISTA POR PRODUCTOS DE SEGURIDAD Y DISPOSITIVOS PERIMETRALES ANTES QUE POR CONTROLES DENTRO DE LAS APLICACIONES.
FUNCIONALIDAD VS SEGURIDAD
COMPLEJIDAD EL CODIGO POR SI MISMO INTERACCION DE RUTINAS VARIABLES LOCALES Y GLOBALES ENTRADAS RECIBIDAS DE OTRA APLICACIN SALIDAS QUE ALIMENTAN A OTRAS APLICACIONES
FUNCIONALIDAD VS SEGURIDAD
LOS PROGRAMADORES Y ARQUITECTOS DE APLIACIONES DEBEN SIEMPRE BUSCAR EL EQUILIBRIO ENTRE LA FUNCIONALIAD NECESARIA DEL PROGRAMA, LOS REQUERIEMINTOS DE SEGURIDAD Y LOSMECANISMOS QUE DEBERIAN SER IMPLEMENTADOS PARA PROVEER ESTA SEGURIDAD. ESTO PUEDE PROVEER MAYOR COMPLEJIDAD A LA DE POR SI COMPLEJA TAREA DE PROGRAMACION
INICIACIN:
QUE ES LO QUE NECESITAMOS Y PORQU LO NECESITAMOS?
AYUDAR AL EQUIPO A COMENZAR EL PROCESO DE IDENTIFICACIN DE LOS CONTROLES DE SEGURIDAD QUE EL SISTEMA NECESITAR TENER.
ADQUISICIN/ DESARROLLO:
ANLISIS DE REQUERIMIENTOS
EVALUACIN DE TERCEROS
PLAN DE SEGURIDAD PLAN DE EVALUACIN Y TEST DE SEGURIDAD
IMPLEMENTACIN:
SOLO CONECTALO. NO TENEMOS TIEMPO PARA REALIZAR PRUEBAS. ESTOY SEGURO QUE FUNCIONAR BIEN PROCESO DE CERTIFICACIN: ES EL TEST TECNICO DEL SISTEMA. ASEGURAR AL EFECTIVIDAD DEL SISTEMA Y LOS CONTROLES DE SEGURIDAD PROCESO DE ACREDITACIN: ES LA AUTORIZACIN FORMAL DAD POR LA ADMINISTRACIN PARA QUE EL SISTEMA ENTRE EN OPERACIN EN JUN DETERMINADO AMBIENTE. LA DECISIN DE ACREDITACIN ES BASADA EN EL RESULTADO DEL PROCESO DE CERTIFICACIN
OPERACIN/MANTENIMIENTO:
EL SISTEMA FUE SEGURO CUANDO LO INSTALAMOS. ESTOY SEGURO QUE NADA A CAMBIADO DESDE ENTONCES DURANTE LA FASE DE IMPLEMENTACIN DEBE QUEDAR CLARA LA LINEA BASE DE CONFIGURACIN DE HARDWARE, SOFTWARE, FIRMWARE. MONITOREO CONTINUO PARA GARANTIZAR QUE ESTA LINEA BASE SE MANTIENE SE DEBE DISPONER DE UN PROCESO DE CONTROL DE CAMBIOS Y GESTIN DE LA CONFIGURACIN SE DEBE REALIZAR EVALUACIONES DE VULNERABILIDAD Y TEST DE PENETRACIN. ESTO PERMITIRA IDENTIFICAR NUEVAS VULNERABILIDADES QUE PUEDAN PRESENTARSE Y REMEDIARLAS
ELIMINACIN:
CUANDO UN SISTEMA YA NO ES EFECTIVO PARA LA FUNCIONALIDAD QUE FUE CONCEBIDO, SE DEBE PENSAR EN UN PLAN DE TRANSICIN HACIA UNA NUEVA SOLUCIN. DETERMINAR CLARAMENTE SI LA DATA SERA MOVIDA A OTROS SISTEMAS, ALMACENADA, DESTRUIDA.
DESARROLLO: CODIGO DE PROGRAMACIN PARA SATISFACER LAS ESPECIFICACIONES EXPUESTAS EN LA FASE DE DISEO
TESTING/VALIDACIN: VALIDACIN DEL SOFTWARE PARA ASEGURAR QUE LOS OBJETIVOS ESTN CUMPLIDOS Y EL SOFTWARE FUNCIONA COMO FUE PLANEADO LIBERACIN/MANTENIMIENTO: IMPLEMENTACIN DEL SOFTWARE ASEGURANDOSE QUE ESTE HASTA CONFIGURADO APROPIADAMENTE, PARCHADO Y MONITOREADO
UNA BUENA ADMINSTRACIN DEL PROYECTO MANTIENE A ESTE MOVIENDOSE EN LA DIRECCIN CORRECTA
ASIGNA LOS RECURSOS NECESARIOS PROPORCIONA EL LIDERAZGO NECESARIO PLANES PARA GESTIONAR LOS PEORES ESCENARIOS (ANALISIS DE RIESGOS) PROCESO DE ADMINSTRACIN DE PROYECTO DEBER GARANTIZAR QUE EL MISMO EJECUTE CADA UNA DE LAS FASES DEL CICLO DE DESARROLLO APROPIADAMENTE
LA ADMINTRACIN DEL PROYECTO ES UNA PIEZA CLAVE DEL DESARROLLO DE PRODUCTOS Y LA ADMINSTRACIN DE SEGURIDAD ES UNA PIEZA CLAVE DENTRO DE LA ADMINSTRACIN DEL PROYECTO.
SI EL CLIENTE DESEA MODIFICAR LOS REQUERIMIENTOS ES IMPORTANTE QUE EL SOW SE ACTUALICE Y SE REVISE EL PRESUPUESTO.
SE EVALUA PRODUCTOS SIMILARES EXISTENTES EN EL MERCADO Y LAS NECESIDADES QUE NO ESTAN SIENDO ATENDIDAS POR ESTOS.
MODELO INFORMACIONAL: FIRMAS DE VIRUS, ARCHIVOS DE SISTEMAS MODIFICADOS, CHECKSUMS DE LOS ARCHIVOS DEL SISTEMA, ACTIVIDAD DE VIRUS
MODELO FUNCIONAL: LA APLICACIN DEBERA SER CAPAZ DE ESCANEAR LOS DISCOS DUROS, REVISAR EL E-MAIL EN BUSCA DE FIRMAS DE VIRUS CONOCIDAS, MONITOREAR LOS ARCHIVOS CRITICOS DEL SISTEMA Y ACTUALIZARSE AUTOMTICAMENTE. MODELO DE COMPORTAMIENTO: EL APLICATIVO INDICAR CUANDO EMPEZAR A FUNCIONAR, ESCANER LOS DISCOS DUROS Y SEGMENTOS DE MEMORIA. SI SE ENCONTRAR UN VIRUS EL ESTADO DEL COPUTADOR CAMBIAR Y SE TRATAR AL VIRUS APROPIADAMENTE. SE DEBE CONSIDERAR CADA ESTADO DEL APLICATIVO PARA GARANTIZAR QUE NO ENTRAR EN UN ESTADO INSEGURO O REACCIONAR DE UNA MANERA NO CONTEMPLADA.
MODELAMIENTO DE AMENAZAS
SEGURIDAD WEB
CUANDO SE TRATA DE INTERNET Y APLICACIONES BASADAS EN WEB, HAY MUCHAS SEGURIDADES ESPECIFICAS EN ESTA AREA. LAS EMPRESAS EXPONEN SUS PRODUCTOS Y SERVICIOS PARA LA MAYOR AUDIENCIA POSIBLE, TENIENDO UN ACCESO SIN CONTROL DESDE DIFERENTES PUNTOS A SUS SERVIDORES WEB. TIENEN A ABRIR LOS PUERTOS 80 Y 443 EN SUS FIREWALLS PARA PERMITIR EL TRAFICO BASADO EN WEB, LO QUE LES DA UN ALTO RIESGO DE ATAQUES POR ESTA VIA. EL RIESGO SE INCREMENTA SI NO TIENES UNA METODOLOGIA DE DESARROLLO, PROCESOS DE DESARROLLO, ASEGURAMIENTO DE LA CALIDAD, CONTROL DE CAMBIOS E IDENTIFICADOS LOS RIESGOS Y VULNERABILIDADES INTRINSECAS DE ESTE TIPO DE APLICACIONES.
INJECTION
VIDEOS SEGURIDAD EN APLICACIONES\OWASP Appsec Tutorial Series - Episode 2_ SQL Injection_(480p).mp4
INJECTION
DESCRIPCIN
ESTE ATAQUE EXPLOTA UNA VULNERABILIDAD DE UNA APLICACIN QUE CONSTRUYE SENTENCIAS SQL BASADAS EN LAS ENTRADAS DEL USUARIO. EL ATACANTE TRABAJA CON LAS CADENAS DE DATOS DEL APLICATIVO QUE CONSTRUYE BAJO SENTENCIAS SQL.
EL RESULTADO DE LA SENTENCIA SQL EJECUTA OTRA ACCIN QUE LA PREVISTA POR LA APLICACIN. SQL INJECTION RESULTA DE LA FALLA DE LA APLIACCIN PARA VALIDAR APROPIADAMENTE LA ENTRADA DE DATOS. CUANDO SE TRABAJA CON ENTRADAS DE DATOS CONSISTENTES EN SENTENCIAS SQL SIN USAR UNA VALIDACIN APROPIADA COMO PARTE DE LAS CONSULTAS DE SQL, ES POSIBLE OBTENER INFORMACIN DESDE LA BASE DE DATOS DE UNA MANERA NO PREVISTA EN LA ETAPA DE DISEO DE LA APLICACIN.
INJECTION
IMPACTO
UNA INYECCIN CORRECTA PUEDE OBTENER INFORMACIN, AS COMO ADICIONAR O MODIFICAR DATOS DIRECTAMENTE EN LA BASE. IDENTIFICACIN TODO CODIGO DEBE SER REVISADO PARA DETERMINAR SI LAS ENTRADAS SOLICITADAS ESTAN MANEJANDOSE SIN LAS VALIDACIONES CORRECTAS. ESPECIALMENTE LAS QUE LLAMAN A LA BASE DE DATOS A TRAVS DE CONCATENACIN DE CADENAS. DURANTE LA ETAPA DE TESTING, ESTOS PROBLEMAS DEBEN SER IDENTIFICADOS EN CADA PARAMETRO QUE SE ENVIA A LA APLICACIN
INJECTION
DEFENSA
VALIDACIONES ADICIONALES:
TAMAO Y LONGITUD
LA AUTENTICACION ES CONFIRMAR LA IDENTIDAD DE UN USUARIO SOBRE UNA APLICACIN.DEBIDO A QUE EL PROTOCOLO HTTP NO TIENE ESTADO, LA APLIACCIN WEB DEBE PROVEER DE UN MECANISMOS DE ADMINSTRACIN DE SESIN DESPUS QUE EL USUARIO SE HAYA AUTENTICADO. MUCHAS APLICACIONES EMITEN UN SESSION ID O PARAMENTRO URL PARA MANTENER EL ESTADO ENTRE LAS SOLICITUDES. SE HAN DESARROLLA ATAQUES PARA ESTAS DOS FUNCIONES BASICAS DE UNA APLICACIN PARA ROMPER LA SEGURIDAD.
AUTENTICACIN BASICA
UTILIZAR TOKENS DE AUTENTICACION COMO UNA VERSION CODIFICADA DEL USUARIO Y PASSWORD SOLICITAR AUTENTICACIN CADA VEZ QUE SE INGRESE APGINAS SENSIBLES AUTENTICACIN NTML PROTOCOLO DE AUTENTICACION CHALLENGE/RESPONSE AUTENTICACIN CUSTOMIZADA UNA SOLUCION CUSTOMIZADA PARA PROVEER AUTENTICACIN, NORMALMENTE VALIDA LAS CREDENCIALES CONTRA UNA BASE DE DATOS
ADMNISTRACIN DE SESIN ES MANEJA COMUNMENTE A TRAVS DE COOKIES. HAY DOS TIPOS DE COOKIES: PERSISTENTES Y DE SESIN.
COOKIES PERSISTENTES SON ENVIADOS AL USUARIO SIN UN TIEMPO DE EXPIRACIN FIJO. ESTAS QUEDARN EN EL DISCO DURO DESPUES DE TERMINAR LA SESIN Y CERRAR EL BROWSER. ESTAS COOKIES DAN SEGUIMIENTO A LOS SITIOS VISITADOS, PREFERENCIAS DE NAVEGACIN. COOKIES DE SESIN NO SON ALMACENADAS EN EL DISCO DURO PERO SE MANTIENEN EN MEMORIA Y NO SE ALMACENAN DESPUES DE CERRAR EL BROWSER.
IDENTIFICADOR DE SESIN DBIL (UN MISMO ID EN TODAS LAS SESIONES, LONGITUD MENOR A 128 BITS, NO RANDMICO)
CAPTURA DE SESIN NUEVO TOKEN NO ES GENERADO CUANDO UN USUARIO INTENTA IR DE UNA SESIN DESAUTORIZADA A UNA AUTORIZADA.
PARA UN ATACANTE, COMPROMETER LA COOKIE DE SESIN DE UN USARIO PUEDE SER TAN BUENO COMO OBTENER SU USUARIO Y PASSWORD. ESTAS VULNERABILIDADES PUEDEN GARANTIZAR AL ATACANTE UN ACCESO NO AUTORIZADO A LAS FUNCIONALIDADES DE UN SISTEMA O A INFORMACIN SENSITIVA. IDENTIFICACIN
REVISAR EL CODIGO DE LA APLICACIN PARA VALIDAR LOS MECANISMOS DE AUTENTICACIN Y MANEJO DE SESIONES.
ASEGURARSE QUE LAS VULNERABILIDADES COMUNES LISTADAS ANTERIORMENTE NO ESTAN PRESENTES EN LA APLICACIN.
PARA GARANTIZAR MECANISMOS DE AUTENTICACIN SEGURA, PODEMOS IMPLEMENTAR LOS SIGUIENTES CONTROLES:
FORZAR BLOQUEO DE CUENTAS PARA PREVENIR ATAQUES DE FUERZA BRUTA DURACIN DE LA CUENTA ANTES DEL BLOQUEO UMBRAL DE INTENTOS ANTES DEL BLOQUEO DE LA CUENTA ASEGURAR QUE LAS CLAVES PASEN POR UN PROCESO DE VALIDACIN PREVIO ANTES DE APROBARLOS. CONTRASEA ROBUSTA
CROSS SITE SCRIPTING (XSS) OCURRE CUANDO LOS DATOS DE ENTREDA NO SON VALIDADOS CORRECTAMENTE ANTES DE QUE EMPIEZEN A SER UTILIZADOS POR LA APLICACIN INTERNAMENTE EN FORMA DINMICA. UN ATACANTE PUEDE TOMAR VENTAJA DE ESTA VULNERABILIDAD PARA MODIFICAR LOS VALORES DE ENTRADA (HTTP GEST, POST, HEADERS, ETC) PARA INYECTAR CODIGO JAVASCRIPT EN EL LADO DEL CLIENTE. EL XSS PERMITE EJECUTAR SCRIPTS MALICIOSOS EN EL WEB SERVER, PERMITIENDO EL ACCESO A CUALQUIER PARTE DEL DOM DEL BROWSER, INCLUYENDO COOKIES, SESSION IDS, HTML.
STANDARD XSS: ESTA FORMA DE XSS REQUIERE QUE LA VICTIMA HAGA CLICK EN UN LINK MALICIOSO QUE TIENE CODIGO EMBEBIDO. ESTE TIPO DE ATAQUES SE USAN GENERALMENTE EN PHISHING O SPAM. TAMBIEN SE LO CONOCE COMO XSS REFLEJADO.
PERSISTENT XSS: ES UNA VARIANTE DE XSS QUE SE MANTIENE EN LA APLICACIN, FRECUENTEMENTE EN LA BASE DE DATOS . CUANDO UN USUARIO ACCEDE A UNA PAGINA CON UN SCRIP MALICIOSO, EL ATAQUE SE DISPARA. ESTE TIPO DE ATAQUES SE ENCUENTRAN EN FOROS ONLINE DONDE LOS USUARIOS PUEDEN ENVIAR MENSAJES REITERATIVOS.
ESTE TIPO DE ATAQUE PUEDE SER USUADO PARA OBTENER INFORMACIN COMO USUARIOS Y CONTRASEAS, INFORMACIN SENSIBLE, TENER CONTROL REMOTO O MONITOREAR EL BROWSER DE UN USARIO, O MANIPULAR LA PAGINA WEB PARA OBTENER INFORMACIN ESPECIFICA COMO NUMEROS DE TARJETAS DE CREDITO. POR EJEMPLO, UN ATACANTE PODRIA USUAR ESTA VULNERABILIDAD PARA ENVIAR MAILS FALSOS A CLIENTES O EMPLEADOS, EL CUAL CONTENGA UN URL CON CODIGO MALICIOSO, EL CUAL PROBLAMENTE ESTARA DISEADO PARA QUE SE EJECUTE DESDE UN SITIO DE CONFIANZA. ES DECIR CUANDO YA EL USUARIO SE HAYA AUTENTICADO, CON LA FINALIDAD QUE EL ATACANTE ROBE UNA SESIN VALIDA.
REVISAR EL CODIGO FUENTE DE LA APLICACIN E IDENTIFCAR LAS PGINAS QUE ACEPTEN DATOS DE ENTRADA Y QUE ESTOS DATOS SON MOSTRADOS DE REGRESO AL USUARIO
ESTA VULNERABILIDAD OCURRE CUANDO UN PROGRAMADOR EXPONE UNA REFERENCIA A UN OBJETO A TRAVS DE UN PARMETRO DE URL, CAMPO OCULTO U OTRO CAMPO. ESTA REFERENCIA DE OBJETO PUEDE SER UNA LLAVE PRIMARIA DE BASE DE DATOS, U ARCHIVO, UN DIRECTORIO, U OTRO IDENTIFICAR INTERNO DE LA APLICACIN. POR EJEMPLO, VARIAS VECES UNA REFERENCIA A UN OBJETO DIRECTO ES LA LLAVE PRIMARIA DE LA BD, LO CUAL ES FACIL IMPLEMENTAR PARA LOS PROGRAMADORES PERO TAMBIEN ESTO LES PUEDE PERMITIR UN FACIL ACCESO A LOS ATACANTES EN UN BACKEND DE BD.
MANIPULANDO UNA REFERENCIA A OBJETO, UN ATACANTE PUEDE GANAR ACCESO A RECURSOS ADICIONALES O DATA DE UN SISTEMA, TALES COMO ARCHIVOS O REGISTROS DE BD.
IDENTIFICACIN:
ESTA INSEGURA PRACTICA DE DESARROLLO PUEDE SER IDENTIFICADA A TRAVS DE UNA REVISIN DEL CDIGO FUENTE DE LA APLICACIN PARA ENCONTRAR REAS DONDE LOS OBJETOS INTERNOS SON DIRECTAMENTE REFERENCIADOS EN LA CAPA DE PRESENTACIN DE LA APLICACIN.
PARA IDENTIFICAR ESTO EN LA ETAPA DE TESTING, TODOS LOS PARMETROS DE ENTRADA DEBERAN SER MANIPULADOS EN UN INTENTO PARA GANAR ACCESO NO AUTORIZADO A LA DATA. POR EJEMPLO, SI UN URL CONTINEN UN PARMETRO ID EL CUAL REFERENCIA AUN PERFIL DE USUARIO, INTENTA CAMBIAR EL VALOR PARA GANAR ACCESO A OTRO PERFIL DE USUARIO.
ALGUNAS RECOMENDACIONES PUEDEN SER TOMADAS PARA PREVENIR ESTE TIPO DE VULNERABILIDADES:
NO REFERENCIAR DIRECTAMENTE OBJETOS INTERNOS EN LA CAPA DE PRESENTACIN DE LA APLICACIN. EN SU LUGAR, IMPLEMENTAR UNA FORMA LGICA DE ALMACENAR UNA LISTA DE OBJETOS VLIDOS PARA ESE USUARIO DENTRO DE UN ARREGLO. Y EL ACCESO A ESTOS OBJETOS SE CONCEDE CON UN ADECUADO SISTEMA DE INDEXACIN. ESTA SOLUCIN LIMITAR A LAS OBJETOS PARA ACCESO SOLO A LOS INDICADOS DENTRO DEL ARREGLO. AL REALIZAR BSQUEDAS DE OBJETOS SOBRE LA BASE DE UN NMERO DE REFERENCIA SE DEBE MANTENER UNA SESIN CON ESE USUARIO Y ATAR ESA SESIN A UNA LISTA DE OBJETOS PERMITIDOS EN EL BACKEND DE LA APLICACIN.
Esto permite al atacante forzar al navegador de la victima para acometer daos o estafas que la aplicacin atribuye a un usuario legtimo.
Quizs esta es una de las vulnerabilidades llamada a ser la ms importante en los prximos aos. Se le conoce como el gigante dormido del OWASP top 10
Y si usted es de lo que abre muchas ventanas simultneamente en cada sesin de su navegador, tampoco esta exento de ser vctima de un ataque de CSRF por culpa de una aplicacin vulnerable, sin que pueda hacer absolutamente nada al respecto.
Identifique todas las fuentes de datos y clasifquelas en confiables y no confiables. Valide todos los datos de las fuentes no confiables.
Debe existir una rutina centralizada para la validacin de datos para toda la aplicacin. Especifique el tipo correcto de caracteres para todas las fuentes de datos (ejemplo UTF-8) Codifique todos los datos a un mismo tipo de caracteres antes de validarlos. Todos los errores de validacin debe resultar en rechazo de las entradas. Valide todos los datos de entrada antes de procesarlos, incluyendo todos los parmetros , URLs y nombres de cookies y sus valores. Verifique que los valores en el header contengan solamente caracteres ASCII. Valide todas las redirecciones.
Validate todas las entradas contra un white-list de caracteres permitidos siempre que sea posible?
Si un caracter potencialmente peligroso debe se permitido asegrese de inplementar controles adicionales como output encoding
Requiera autentificacin para todas las pginas excepto para aquellas entendidas como pblicas.
Las respuestas de error de autentificacin no deben aclarar cual de los datos de autentificacin es incorrecto. Utilice autentificacin para conectarse con sistemas que envuelvan datos o funciones sensibles.
La autentificacin necesaria para conectar con sistemas externos a la aplicacin debe ser cifrada y guardada en una ubicacin protegida en un sistema seguro (ej. el servidor).
Use solamente solicitudes POST para transmitir credenciales de autentificacin. Enve siempre los passwords no temporales por una conexin cifrada o como datos cifrados. Los passwords temporales pueden ser una excepcin. Promueva y solicite la complejidad as como la longitud necesaria en el password para evitar ataques de fuerza bruta. Ocho caracteres son suficientes pero 16 son lo ideal.
Los passwords no deben ser visibles en la pantalla del usuario. Utilice bloqueo de cuentas despus de un nmero establecido de intentos Las operaciones de recuperacin de password y de creacin del mismo requieren del mismo nmero de controles que los de autentificacin e ingreso. Las preguntas de recuperacin de passwords, deben soportar un nmero suficiente de respuestas posibles. Los passwords temporales deben tener un perodo corto de expiracin.
Use los controles de sesin del entorno del servidor. La aplicacin debe reconocer solo estos identificadores como vlidos. La creacin de identificadores de sesin debe ocurrir en un entorno confiable (ej. el servidor) Los controles de manejo de sesin deben utilizar algoritmos que garanticen que los identificadores de sesin sean suficientemente aleatorios.
Implemente una funcin de salida que finalice completamente la sesin y destruya sus datos.
La funcin de salida debe ser accesible desde todas las pginas protegidas por autorizacin. Establezca un Session Timeout de inactividad lo ms corto posible, basado en balancear el riesgo con los requerimientos funcionales.
Establezca un tiempo mximo de actividad para sus sesiones, y cirrelas si este tiempo es superado.
Utilice un sistema de control de sesin adicional por requerimiento, para las funciones de alta sensibilidad.
Configure los cookies utilizados en conexiones HTTPS con el atributo "secure". Configure los cookies con el atributo HttpOnly a menos que especficamente requiera que scripts del lado cliente puedan leerlos y cambiarlos.
Gracias