SEGURIDAD La seguridad en sistemas es un área de las Ciencias de la Computación que se ocupa de diseñar las normas, procedimientos, métodos y técnicas destinados a conseguir un sistema de información seguro y confiable. El objetivo es prevenir ataques y minimizar los riesgos que surgen de distintos tipos de amenazas. SEGURIDAD Orígenes de las amenazas •Usuarios •Personal técnico interno •Intrusos •Errores de programación •Programas maliciosos •Fallos electrónicos o lógicos •Siniestros •Catástrofes naturales SEGURIDAD Tipos de ataques Internos Externos SEGURIDAD Consecuencias de los ataques •Robo de información •Destrucción de información •Anulación del funcionamiento de los sistemas •Suplantación de la identidad SEGURIDAD La seguridad en sistemas es una cualidad que se mide con valores 0 o 1, un sistema es seguro o no es seguro. No es posible garantizar la seguridad. Un sistema es seguro hasta que se detecta una vulnerabilidad. Las vulnerabilidades son los puntos débiles que permiten que un atacante comprometa la integridad, disponibilidad o confidencialidad de los datos . SEGURIDAD EN LOS DATOS Alternativas de ataque Modificación restringida y auditable Integridad CIA Confidencialidad Visibilidad restringida Disponibilidad Accesibilidad libre de ataques SEGURIDAD EN LOS DATOS Es necesario controlar • Ingreso y generación • Almacenamiento • Transmisión Se busca prevenir tanto errores no intencionales como ataques intencionales. SEGURIDAD EN LOS DATOS Principio de seguridad • Validar todas las entradas • Filtrar todas las salidas ¿Es suficiente? La seguridad nunca puede quedar a cargo del usuario o de otro tipo de actor externo. Peer to peer Cliente-Servidor Clound SEGURIDAD EN LOS DATOS Ingreso • Autenticación segura - Identidad • Definir niveles de acceso - Permisos • Evitar inyecciones de código SEGURIDAD EN LOS DATOS Autenticación segura La autenticación es el proceso que le permite a una entidad probar su identidad ante otra. La autenticación segura busca prevenir ataques a través de la usurpación de identidad. Los protocolos de autenticación digital actuales permiten demostrar la posesión de las credenciales sin transmitirlas por la red. SEGURIDAD EN LOS DATOS Autenticación segura La autenticación segura se basa en el uso de una credencial: • Contraseñas • Certificado Digital • Firma Digital Los dos últimos previenen repudio. SEGURIDAD EN LOS DATOS Autenticación segura Pilares Lo que el usuario sabe (su contraseña) Lo que el usuario tiene (tarjeta, smartphone) Lo que el usuario es (retina, huella digital) Un ataque busca vulnerar el pilar más débil. La seguridad de cada uno está ligada a la tecnología empleada, tanto el software y hardware SEGURIDAD EN LOS DATOS Autenticación segura Contraseñas, niveles de restricción 8 caracteres que combinen números, letras mayúsculas y minúsculas Actualización cada 40 días Almacenamiento seguro de contraseñas No repetir entre las últimas 5 Forzar cambiar contraseña asignada por el administrador Con 5 intentos fallidos se bloquea Evitar los ataques por fuerza bruta SEGURIDAD EN LOS DATOS Autenticación segura Un certificado digital es un documento electrónico que permite garantizar la identidad del emisor de un mensaje o el usuario de un sistema. El certificado digital permite verificar que la autorización del usuario para acceder al sistema está vigente, pero también protege la identidad del usuario mismo. SEGURIDAD EN LOS DATOS Autenticación segura Un certificado digital consta de una pareja de claves criptográficas, una pública y una privada. Lo otorga una autoridad de certificación, que es una entidad de confianza que asegura que la clave pública se corresponde con los datos del titular. SEGURIDAD EN LOS DATOS Autenticación segura Las claves se crean con un algoritmo matemático, de forma que aquello que se cifra con una de las claves sólo se puede descifrar con su clave pareja. El titular del certificado debe mantener bajo su poder la clave privada, ya que si ésta es sustraída, el sustractor podría suplantar la identidad del titular en la red. En este caso el titular debe revocar el certificado lo antes posible, igual que se anula una tarjeta de crédito sustraída. SEGURIDAD EN LOS DATOS Autenticación segura La firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente tener certeza, no solo de la autoría del mensajes, sino también de que este no ha sido alterado desde su firma. La firma digital otorga plena prueba y valor legal para efectuar transacciones. Un certificado digital tiene la firma digital de la autoridad certificante. SEGURIDAD EN LOS DATOS Autenticación segura La validez de una firma se ampara en la imposibilidad de falsificarla. La clave es secreta, única, verificable, no repudiable y se obtiene con algoritmos complejos. Como la firma no es repudiable, el firmante no puede negar su propia firma. SEGURIDAD EN LOS DATOS Autenticación segura La firma digital es un instrumento con características técnicas y normativas. Es decir, existen procedimientos técnicos que permiten la creación y verificación de firmas digitales, y existen documentos normativos que respaldan el valor legal de las firmas. SEGURIDAD EN LOS DATOS Autenticación segura El sistema no debería permitir que el atacante haga un bypass de la aplicación y acceda directamente a los datos. La web implica nuevos desafíos. SEGURIDAD EN LOS DATOS Autenticación segura Una aplicación con autenticación no debería permitir que sus funcionalidades puedan accederse directamente con un link. Robar una cookie (por ejemplo porque el servidor la guarda en una carpeta pública) permite acceder a una sesión de usuario sin tener credenciales. Cuando el usuario termina una sesión el browser no debería permitir volver a ella con la opción back. SEGURIDAD EN LOS DATOS Restricciones de acceso Las restricciones de acceso habilitan o limitan el acceso a ciertas funcionalidades o datos en base a la identidad o rol del usuario (autenticado). Pueden depender del estado del sistema, la hora, la localización del usuario, etc. SEGURIDAD EN LOS DATOS Restricciones de acceso Modelo basado en roles Jerárquico (Administrador, supervisor, operario, el administrador no tiene restricciones, el supervisor puede hacer todo lo que puede hacer el operario) No jerárquico (Auditor, Gerente, Cajero, no hay relación jerárquica entre Auditor y Cajero. El auditor puede ver todo, pero no puede modificar. El cajero solo puede ver y modificar algunos datos) SEGURIDAD EN LOS DATOS Restricciones de acceso Para cada rol o nivel de usuario se definen los permisos o las restricciones. SEGURIDAD EN LOS DATOS Inyecciones de código Los controles de acceso a los datos sobre los caminos convencionales son insuficientes. No alcanza con que las opciones insertar, modificar o editar ofrecidas por el sistema requieran autenticación. Es necesario prevenir otras formas de acceder a estas operaciones, por fuera de la aplicación. Más aun es necesario prevenir la modificación de las tablas usadas por la autenticación. SEGURIDAD EN LOS DATOS Inyecciones de código Cuando el usuario completa un formulario escribe 50 caracteres en un campo que requiere 20. Los 30 caracteres adicionales pueden ser un comando SQL que modifica los datos almacenados Los primeros 20 caracteres se chequean dependiendo del tipo de campo y el resto se descarta o se usa para detectar ataque. Principio de seguridad: Validar toda la entrada SEGURIDAD EN LOS DATOS Inyecciones de código Un generador de reportes tan flexible que permite al usuario ingresar un comando SQL que accede directamente a la base datos, habilita a un usuario que inició una sesión para consultar información, pueda también modificarla. Si los requerimientos imponen restricciones de acceso para modificar la información, las funcionalidades ofrecidas para mostrar datos no deberían permitir modificarlos. SEGURIDAD EN LOS DATOS Generación de datos La opciones de procesamiento estadístico no deberían permitir inferir otro tipo de datos. ¿Cuántos empleados varones de 62 años tienen antecedentes penales? Si la respuesta es 1 y el usuario sabe que hay un único empleado con 62 años, identificó a quien tiene antecedentes penales. Principio de seguridad: Filtrar toda la salida SEGURIDAD EN LOS DATOS Transmisión y almacenamiento de datos Plano Encriptado Sniffing SEGURIDAD EN LOS DATOS Encriptación • Grandes volúmenes de datos (algoritmos simétricos) • Contraseñas (algoritmos hash para encriptar contraseñas almacenadas) • Firma Digital (algoritmos asimétricos y hash para encriptación) El algoritmo no basta, RCA va a fallar si la contraseña tiene 4 letras. SEGURIDAD Y CICLO DE VIDA REQUERIMIENTOS DEL NEGOCIO Y REGLAS DEL NEGOCIO ANÁLISIS DE RIESGOS REVISIÓN DE CÓDIGO TEST SEGURIDAD TEST DE PENETRACIÓN OPERACIONES DE SEGURIDAD RN+RU Requerimientos Análisis de Riesgos Diseño Revisión de código + Análisis estático Implementación Testing de Seguridad Testing Penetration Testing Operaciones de Seguridad Mantenimiento REQUERIMIENTOS DE SEGURIDAD Surgen de • Reglas del negocio • Requerimientos del Usuario: casos de abuso Están incluidos en • Requerimientos no funcionales Derivan en: • Requerimientos funcionales • Requerimientos para los datos REQUERIMIENTOS DE SEGURIDAD Reglas del Negocio ISO 27000. FISMA, Federal Information Security Management Act. SOX, Sarbanes-Oxley. HIPAA, Health Insurance Portability & Accountability Act. PCI DSS, Payment Card Industry Data Security Standard. NIST SP 800, National Institute of Standards and Technology Special Publication (series). COBIT, Control Objectives for Information and Related Technology. ITIL, Information Technology Infrastructure Library. OTROS! REQUERIMIENTOS DE SEGURIDAD ¿Necesita que el sistema sea seguro? ¿Cuán seguro debería ser el sistema? No son preguntas adecuadas REQUERIMIENTOS DE SEGURIDAD ¿Qué datos son confidenciales? ¿Sobre qué funcionalidades es necesario restringir el acceso? ¿Para qué tipos de usuarios? ¿Es posible definir roles? ¿La estructura de roles es jerárquica? ¿Qué mecanismo es adecuado para restringir el acceso? ¿Contraseñas? ¿Credencial digital?¿Firma digital? REQUERIMIENTOS DE SEGURIDAD Caso de uso UC 1: Login al Web Store Actor principal: Cliente. Precondición: el Cliente tiene acceso a internet. Postcondición: el Cliente tiene acceso a su cuenta. Descripción Breve: El Cliente ingresa su nombre de usuario y contraseña y si son válidos consigue acceder a su cuenta para comprar online. REQUERIMIENTOS DE SEGURIDAD Casos de abuso Los casos de abuso del usuario son los casos de uso de quien intenta vulnerar el sistema. Por ejemplo: • Obtener datos privados • Alterar datos • Denegar servicio a la aplicación Lo que NO debe hacer software, podrían considerarse como anti-requerimientos REQUERIMIENTOS DE SEGURIDAD Caso de abuso MUC 1: Sniffing de Password Actor Primario: Atacante Precondición: El atacante tiene acceso a una máquina “en el camino” (red) entre el usuario y el sistema. Postcondición: El atacante obtuvo una (o más) credenciales (usuario/passwd) válidos. Descripción Breve: El atacante pretende obtener credenciales para luego lograr acceso no autorizado al sistema. REQUERIMIENTOS DE SEGURIDAD Caso de abuso Flujo Normal 1. El Atacante instala un sniffer de red. 2. El sniffer guarda todos los paquetes que contengan los strings “Login”, “Username”, o “Password”. 3. El atacante lee los logs del sniffer. 4. El atacante prueba con pares username/password 5. Si encuentra un par válido logra acceso al sistema. Requerimiento funcional derivado: cinco intentos continuos y fallidos de login, bloquean la cuenta. Observación: un atacante puede bloquear el acceso al usuario legítimo. REQUERIMIENTOS DE SEGURIDAD Casos de uso y casos de abuso Mitiga – Un caso de uso puede mitigar la posibilidad de que un caso de abuso pueda completarse exitosamente (para el atacante). Amenaza – Un caso de abuso puede amenazar un caso de uso, explotándolo o dificultándolo. REQUERIMIENTOS DE SEGURIDAD Usuario común incluye Enviar información extiende Encriptar todos los datos y enviar Texto Cifrado Embeber el Texto Cifrado en una Imagen Atacante Hackear el canal de comunicación y obtener el texto plano Capturar el texto cifrado y hacer criptoanálisis para extraer el texto plano REQUERIMIENTOS DE SEGURIDAD Escenarios Escenario 1: La aplicación almacena información sensible que debe ser protegida según el standard HIPAA. Requerimiento de seguridad: aplicar criptografía fuerte para proteger información confidencial. REQUERIMIENTOS DE SEGURIDAD Escenarios Escenario 2: La aplicación transmite datos de usuario confidenciales usando redes no confiables. Requerimientos de seguridad: Los canales de comunicación deben protegerse con criptografía para prevenir snooping . Además debe emplearse autenticación criptográfica mutua para prevenir ataques man-in-the-middle (integridad y autenticidad).. REQUERIMIENTOS DE SEGURIDAD Escenarios Escenario 3: La aplicación debe permanecer disponible a usuarios legítimos. Requerimientos de seguridad: Debe monitorearse la utilización de recursos por parte de usuarios remotos para limitarla a aquellos que sean legítimos. SEGURIDAD VS. USABILIDAD Un sistema seguro va a requerir mayor esfuerzo del usuario: • Ingresar contraseña • Actualizar contraseña periódicamente • Validación estricta de los datos de entrada Puede ser contraproducente. El usuario establece contraseñas obvias, las transmite de manera no segura o directamente las tiene a la vista. SEGURIDAD VS. DISPONIBILIDAD Un sistema de autenticación que bloquea al usuario luego de 5 intentos fallidos, compromete la disponibilidad. Para balancear seguridad y disponibilidad, el analista puede plantear al cliente la alternativa de desbloquear automáticamente al usuario, luego de trascurrido cierto período de tiempo. http://cybersecurity.ieee.org/center-for-secure-design/avoiding-thetop-10-security-flaws.html OWASP LIST OWASP Top 10-2003 OWASP Top 10-2004 A1-Entrada no validada A1-Entrada no validada A2-Control de acceso interrumpido A2-Control de acceso interrumpido A3-Administración de cuentas y sesión interrumpida OWASP Top 10-2007 OWASP Top 10-2010 A1-Secuencia de comandos en sitios A1-Inyección cruzados XSS A2-Fallas de inyección A3-Administración A3-Ejecución de de autenticación y ficheros sesión malintencionados interrumpida A4-Referencia A4-Fallas de cross A4-Fallas de cross insegura y directa site scriptingXSS site scriptingXSS a objetos A5A5A5-Falsificación de Desbordamiento Desbordamiento peticiones en sitios de bufer de bufer cruzados CSRF OWASP Top 10-2013 A1-Inyección A2-Pérdida de A2-Secuencia de autenticación y comandos en sitios gestión de cruzados XSS sesiones A3-Pérdida de A3-Secuencia de autenticación y comandos en sitios gestión de cruzados XSS sesiones A4-Referencia A4-Referencia directa insegura a directa insegura a objetos objetos A5-Falsificación de A5-Configuración peticiones en sitios de seguridad cruzados CSRF incorrecta OWASP LIST OWASP Top 10-2003 A6-Fallas de inyección de comandos OWASP Top 10-2004 A6-Fallas de inyección A7-Manejo A7-Problemas de inadecuado de manejo de errores errores A8-Uso inseguro de criptografía A9-Fallas de administración remota(no aplicable) A10-Configuración indebida de servidor web y de aplicación A8Almacenamiento inseguro A9-Negación de servicio OWASP Top 10-2007 A6-Revelación de información y gestión incorrecta de errores A7-Pérdida de autenticación y gestión de sesiones A8Almacenamiento criptográfico inseguro A9Comunicaciones inseguras A10A10-Falla de Administración de restricción de configuración acceso a URL insegura OWASP Top 10-2010 OWASP Top 10-2013 6-Defectuosa configuración de seguridad A6-Exposición de datos sensibles A7Almacenamiento criptográfico inseguro A7-Ausencia de control de acceso a las funciones A8-Falla de restricción de acceso a URL A8-Falsificación de peticiones en sitios cruzados CSRF A9-Uso de A9-Protección componentes con insuficiente en la vulnerabilidades capa de transporte conocidas A10-Redirecciones A10-Redirecciones y reenvíos no y reenvíos no validados validados