- Lunes, 13 Diciembre 2010
Según el informe sobre riesgos y tendencias del 2009 de IBM X-Force: (i) Se descubrieron 6.601 nuevas vulnerabilidades durante el 2009, de las cuales el 49% de ellas eran vulnerabilidades de aplicaciones Web. (ii) Para el 52% de todas las vulnerabilidades descubiertas ningún fabricante suministró parches disponibles a finales del 2009.
(iii) El número de nuevos links Web maliciosos aumentó un 345% comparado con 2008. (iv) El 60,9% de phishing se dirige a la industria financiera, mientras que el 0,4% se dirige a las organizaciones del gobierno. (v) La cantidad de spam URL que utiliza nombres de dominio confiables y bien conocidos continúa aumentando. (vi) La mayor parte del spam, en torno al 80% se clasifica como mensajes spam-spam URL que incluye URLs que una persona hace clic para ver los contenidos spam. (vii) El 7,5% de Internet se considera socialmente no aceptable, no deseado o extremadamente malicioso. (viii) Las vulnerabilidades relacionadas con PDF han superado a quienes afectan a documentos Office. (ix) La gran mayoría de explotación basada en Web se centra en toolkits de explotación Web en contra de fuentes construidas con un propósito singular. (x) EEUU se sitúa como uno de los principales sitios con links Web maliciosos. Se detecta un crecimiento de botnets espectacular en julio más de 6000 botnets cada una con miles de nodos, por ejemplo conficker con unos cinco millones de bots.
Seguridad de aplicaciones Web
Se observa una tendencia creciente en relación a que el software sea un servicio basado en Web, el número de casos reales en nuestra sociedad es cada día mayor: banca online, comercio electrónico, e-gobierno, e-democracia, e-sanidad, gestión de relaciones con el cliente, Redes Sociales, empresas de contenidos, etc. e incluso cloud computing (XaaS donde X puede ser (I) Infraestructura, (P) Plataforma, (S) Software, etc.). Las aplicaciones hospedadas en servidores Web son cada día más numerosas se puede observar que se encuentran escritas en una mezcla de PHP, Java, Perl, Python, C, ASP, etc. La seguridad Web es muy raramente la principal preocupación de los arquitectos-diseñadores software, pudiendo identificarse las siguientes deficiencias: (i) Escritura deficiente de scripts (un script es un conjunto de instrucciones que automatizan tareas creando utilidades) con una inadecuada validación de la entrada. (ii) Datos sensibles almacenados en texto en claro en ficheros leíbles por cualquiera. (iii) Envío de contraseñas sin cifrar, y uso de HTTP en vez de HTTPS (SSL/TLS), etc. Un esfuerzo de protección para mejorar la seguridad de la gestión de datos lo han dado Visa y Mastercard con el estándar PCI-DSS; sin embargo, hay que tener en cuenta que un exquisito cumplimiento IT (Information Technology) no siempre es sinónimo por sí solo de una buena gestión de la seguridad en una organización. Las aplicaciones Web se ejecutan bien sobre un servidor Web (real, virtual, aislado o una granja de servidores) o bien sobre un servidor de aplicación, recogen la entrada de usuarios Web vía servidor Web e interactúan con bases de datos de back-end y terceras partes. Las aplicaciones Web preparan y sacan los resultados a los usuarios vía el servidor Web, pudiendo identificarse dos aspectos clave: (i) Generan dinámicamente páginas HTML. (ii) Contienen contenido procedentes de muchas diferentes fuentes, a menudo de usuarios regulares: blogs, Redes Sociales, sitios Web para la compartición de fotografías, música, etc. Se pueden identificar dos lados en la seguridad Web: (1) Navegador Web (como Internet Explorer 8 de Microsoft, Mozilla Firefox 3.5.13, Safari 5 (para PC/MacOS), Netscape 9.0, Opera 9.10, Chrome de Google 4.0, micro-navegadores para PDAs, etc.). Puede ser atacado por cualquier sitio Web que uno visite. Los ataques conducen a la instalación de malware (en forma de keyloggers (capturan las teclas que pulsemos; se soluciona con teclados virtuales creados sobre la pantalla), botnets, spyware, etc. Por ejemplo se engaña al usuario que descargue y ejecute un software codec para poder visualizar un vídeo interesante), robo de documentos e identidad, pérdida de datos privados, etc. (2) Aplicación Web. Se ejecuta en el sitio Web (como bancos online, blogs, comercios online, Google Apps, etc.) se encuentran escritos en PHP, ASP, JSP, Ruby, etc. poseen muchos fallos (o bugs) potenciales como XSS, inyección SQL (SQL-I), etc. además los ataques permiten el robo de tarjetas de crédito, pintarrajear sitios Web (caso del sitio Web www.eu-2010.es donde la imagen de ZP fue suplantada por la del cómico Mr Bean. Se hubiese solucionado si se hubiese realizado una adecuada auditoría de código para evitar XSS), etc.
Modelos de amenazas/atacantes Web
Los atacantes Web pueden ser muy variados: (i) Controlan sitios Web maliciosos, incluso pueden obtener certificado SSL/TLS para su sitios. Las razones por las que un usuario puede visitar estos sitios Web maliciosos son muy variadas: recibir un correo electrónico con phishing, contenido muy atractivo (desde el punto de vista lúdico o profesional), debido a resultados de una búsqueda a través de un Buscador Web, colocado por una red de anuncios publicitarios, mala suerte, etc. (ii) El atacante no tiene otro acceso a la máquina del usuario. (iii) Atacante gadget. Por ejemplo un gadget malicioso incluido en un mashup honesto. Un gadget es un objeto-programa-miniaplicación que proporciona servicios dinámico; gadgets en Windows 7/Vista se encuentran en la barra lateral. (iv) Atacante de red. Pueden ser pasivos (realizan escuchas clandestinas inalámbricas o con conexión al cable basadas en sniffers), activos utilizando un router malicioso, realizando un envenenamiento DNS (o pharming), utilizando un envenenamiento ARP para hacer MITM, etc. (v) Atacante malware. El atacante consigue controlar la máquina del usuario de muy diversas formas: (a) Explotando bugs de la aplicación o del sistema operativo (por ejemplo buffer overflow) debido a no realizar auditorías de código y colocar los parches del sistema operativo. (b) Convenciendo al usuario que instale contenido malicioso, de muy diversas formas por ejemplo: engañándole diciendo que ejecute un programa antivirus gratuito, o bien que instale un codec especial para poder leer un vídeo con formato nuevo, etc. (vi) Riesgos XSS/CSS (Cross Site Scripting). XSS es una forma de ataque de reflexión, al usuario se le engaña para que visite un sitio Web escrito deficientemente, un bug en el código del sitio Web causa que visualice y el navegador del usuario ejecuta un script de ataque arbitrario. Puede: (a) Cambiar contenidos del sitio Web afectado, manipulando componentes DOM (Document Object Model) (la página HTML son datos estructurados, DOM proporciona la representación de esta jerarquía), mostrando información falsa, pidiendo datos sensibles, controla campos del formulario de esta página y de páginas con link, por ejemplo el ataque de phishing de MySpace.com inyecta el campo de contraseña que permite enviar la contraseña a un amigo malicioso. (b) Puede causar que el navegador del usuario ataque a otros sitios Web.
Esencia de la seguridad de la información. Errores. Generaciones de amenazas
La esencia de la seguridad de la información puede definirse como un proceso continuo, es una cuestión de negocios (no sólo de mero cumplimiento y responsabilidad del departamento de IT/ICT), mejora la imagen y reputación de la organización, permite aumentar la confianza y credibilidad, incrementa la productividad de la organización, es una necesidad invisible justificable y útil, es una inversión, es una ventaja de negocio competitiva, es una prioridad, es el foco generador de resiliencia para los negocios, evita riesgos corporativos, pérdidas financieras, es un verdadero soporte para los objetivos de negocio, es el pilar clave para la gerencia de toda empresa, la seguridad soporta y cuida los objetivos de negocio, es un problema de negocios (business) cuyo responsable es la dirección de la organización. A lo largo de los años se han podido identificar numerosos errores de peso en torno a la seguridad de la información: (i) Si nuestra empresa tiene software antivirus y/o firewall estamos seguros. (ii) La mayor parte de las amenazas graves vienen de fuera. (iii) Nuestra empresa no se debe preocupar de la seguridad debido a que hacemos backup de datos diariamente. (iv) La responsabilidad de la seguridad recae en el personal de seguridad IT, si alguien de la empresa tiene cualquier problema (lo avisa haciendo una solicitud vía Web por GP o por teléfono si queremos más rapidez) ellos lo resolverán. (v) Ciertos CEO ignorantes afirman que su empresa tiene restricciones de presupuesto así que se preguntan absurdamente si el presupuesto de seguridad es necesario si el trabajo se realiza. Por otra parte es un error craso afirmar: (a) La seguridad de la empresa es sólo un producto que comprar o sólo tecnología que utilizar o sólo una política que se acuerda o tan sólo una inversión de tiempo concreta. Tener en cuenta que el eslabón-enlace más débil es el factor humano. Tener muy presente que la seguridad cubre todos los aspectos de la empresa, se mete en todas partes, indaga sobre qué activos y los riesgos a todos los activos y sobre cómo hacer para solucionar problemas-riesgos. La conclusión es que la seguridad es un proceso en curso que integra tecnología, políticas, buenas prácticas de las personas, formación y concienciación estableciendo una cultura moderna en seguridad-privacidad. Una amenaza es la probabilidad de un ataque, por ejemplo de que un paquete IP cause buffer-overflow. Una vulnerabilidad es la probabilidad de una vulnerabilidad explotable, por ejemplo buffer-overflow. Las consecuencias es el coste total de un ataque con éxito. El riesgo es el producto de amenazas por vulnerabilidades por consecuencias, por ejemplo el cascar un sistema.
Es posible identificar a lo largo de los años las siguientes generaciones de amenazas: (1) Primera generación: Subversión de elementos de infraestructura. Afecta a elementos IT, correo electrónico, servidores, bases de datos, datos, programas, etc. (2) Segunda generación: Subversión de procesos de negocio. Afecta a procesos, personas, etc. (3) Tercera generación: Subversión de infraestructuras críticas. Afecta a infraestructuras de transportes-tráfico, de agua, de comunicaciones, de la salud pública, de banca y finanzas, de energía y utilidades, centros de datos vitales, centrales nucleares, producción-distribución de fluido eléctrico, etc.
Principales vulnerabilidades en sitios Web
Las principales vulnerabilidades a sitios Web que también pueden contemplarse como ataques Web son: (i) Inyección SQL. El navegador envía una entrada maliciosa al servidor. Una comprobación incorrecta de la entrada conduce a una query SQL maliciosa. El código malicioso del atacante se ejecuta en el servidor de la víctima. Utiliza SQL para cambiar el significado del comando de base de datos. Existen diversas defensas conocidas para tratar este problema de forma eficiente como los firewalls de aplicación Web (FortiWeb-400B de Fortinet, NetScaler de Citrix, TrafficShield de F5, etc.). Los ataques de inyección de código generales tienen como objetivo ejecutar código arbitrario en el servidor; en el contexto de la inyección SQL, las queries de base de datos con PHP son peligrosas ya que una cadena maliciosa cambia el significado de la query. Posibles prevenciones de la inyección SQL: nunca construir comandos SQL por uno mismo, utilizar SQL parametrizada o emplear ORM framework. (ii) CSRF (Cross-Site Request Forgery) o XSRF. Un sitio Web malicioso envía una petición de navegador a un sitio Web bueno, utilizando credenciales de una víctima inocente. El sitio Web del atacante falsifica la petición del navegador de la víctima al servidor de la víctima. Se ve afectada la sesión del usuario en el servidor de la víctima. Se trata de una petición falsificada que afecta la sesión en curso. Puede prevenirse parcialmente.
Entre las posibles defensas: (1) Validación del token secreto. Pide incluir un secreto difícil de averiguar. (2) Validación de referer. Para su seguridad nunca teclear tu contraseña, por ejemplo Facebook, en sitios no localizados en Facebook.com. (3) Cabecera HTTP a medida. No funciona entre dominios. (iii) CSS (Cross-Site Scripting) o XSS. El sitio Web malicioso envía a una víctima inocente un script que roba información de un sitio Web honesto. El código malicioso del atacante se ejecuta en el navegador de la víctima. Se inyecta script malicioso en el contexto confiable. El problema tiene el origen en el eco de la entrada no confiable. Difícil de prevenir: requiere cuidado, tests, herramientas, etc. Una vulnerabilidad XSS aparece cuando un atacante puede inyectar código scripting en páginas generadas por una aplicación Web.
Algunos métodos para poder inyectar código malicioso son: (a) XSS reflejado (Tipo 1). El script del atacante se refleja de vuelta en el usuario como parte de una página del sitio Web de la víctima. (b) XSS almacenado (Tipo 2). El atacante almacena el código malicioso en un recurso gestionado por la aplicación Web, como una base de datos. (c) Ataques basados en DOM (Document Object Model) que no utilizan el servidor.
Algunas defensas contra ataques XSS en el lado del cliente son: (i) Protección basada en proxy. Se encarga de analizar el tráfico HTTP intercambiado entre el navegador Web del usuario y el servidor Web destino, escaneando en busca de caracteres HTML especiales y codificándolos antes de que se ejecute la página en el navegador Web del usuario. (ii) Protección utilizando un firewall de nivel de aplicación. Se encarga de analizar las páginas HTML navegadas en busca de hiperenlaces que pueden conducir a la fuga de información sensible y detener las peticiones malas utilizando un conjunto de reglas de conexión. (iii) Protección utilizando un sistema de auditoria. Se encarga de monitorizar la ejecución de código JavaScript y compara las operaciones contra políticas de alto nivel para detectar posible comportamiento malicioso.
Según OWASP (Open Web Application Security Project) algunas estrategias para protegerse contra los ataques XSS son:
1) Asegurarse que tus aplicaciones validan todas las cabeceras, cookies, cadenas query, campos de formulario y campos ocultos (todos los parámetros) contra una especificación rigurosa de lo que debería permitirse. Nunca confiar en los datos del lado del cliente, la mejor estrategia es permitir sólo lo que se espera, asimismo eliminar/codificar caracteres especiales, como por ejemplo caracteres long, codificaciones UFT-8. Existen herramientas de test blackbox automatizadas como Hailstorm, WebInspect, Retina, eEye, Cenzic, Spidynamic, etc., herramientas de endurecimiento de aplicaciones Web como WebSSARI basada en flujo de información y servicios de test de seguridad blackbox como whitehatsec.com.
2) No intentar identificar contenido activo ni eliminarlo, filtrarlo o sanearlo. Ya que existen demasiados tipos de contenidos activos e infinitas formas de codificarlos para saltarse dichos filtros de tales contenidos.
3) Utilizar una política de seguridad positiva que especifica lo que esta permitido. Las políticas basadas en firma de ataque “negativas” son difíciles de mantener y son probablemente incompletas.
Tendencias en seguridad ICT TOP 10 Sans. Controles críticos TOP 20 Sans
El ranking Sans Top 10 de tendencias en seguridad ICT (Information and Communication Technologies) es el siguiente: (1) Dispositivos móviles: Laptops. Por ejemplo con cifrado del disco duro. (2) Dispositivos móviles: PDA/teléfonos inteligentes. (3) Acciones del gobierno: Cumplimiento de regulación. (4) Ataques dirigidos: Al gobierno y comercios. (5) Ataques dirigidos: teléfonos celulares: GSM/GPRS/
UMTS/HSDPA/Bluetooth. (6) Ata-ques dirigidos: VoIP (Voice over IP). (7) Técnicas de ataque: spyware. (8) Técnicas de ataque: vulnerabilidades de día cero. (9) Técnicas de ataque: rootkits. (10) Estrategias de defensa: Sofisticación de NAC (Network Access Controls). El ranking Sans Top 20 de controles críticos es: (1) Inventario de dispositivos autorizados y no autorizados. Utilizando una herramienta automatizada de descubrimiento de inventario de activos soft/hard en tiempo real. (2) Inventario de software autorizado y no autorizado. (3) Configurar de forma segura hardware y software en laptops, estaciones de trabajo y servidores. (4) Configuración segura para dispositivos de red como routers, switches, firewalls, IPS/IDS, UTM. (5) Defensa de las fronteras. (6) Mantenimiento, monitorización y análisis de logs de auditoria de seguridad. (7) Seguridad del software de aplicaciones. (8) Uso controlado de privilegios administrativos. Acceso controlado basado sólo en lo que se necesita conocer. (10) Valoración y remedio continuo de vulnerabilidades. (11) Monito-rización y control de cuentas. (12) Defensas contra malware. Con anti-virus tipo appliances-hardware desplegados en la red y software en los puestos de trabajo. (13) Limitación y control de puertos de red, protocolos y servicios. Utilizando hardware NAC. (14) Control de dispositivos inalámbricos. WiFi, Bluetooth, GSM/GPRS/UMTS/HSPDA, etc. (15) DLP (Data Loss Prevention). (16) Ingeniería de red segura. (17) Test de penetración y ejercicios Read Team y hacking ético. (18) Capacidad de respuesta de incidentes. (19) Capacidad de recuperación de datos. (20) Valoración de destreza-habilidad en seguridad y apropiada formación para cubrir zonas vacías.
Correlación entre niveles y peligros de seguridad
Actualmente existen diversas áreas de amenazas como por ejemplo la distribución de malware, el phishing/pharming, spam, rootkits, DoS/DDoS, Bot-nets. Si consideramos un usuario que se encuentra fuera de una organización que desea interactuar con una base de datos dentro de la organización, es posible identificar de fuera hacia adentro los siguientes niveles de protección con los peligros asociados indicados: (i) Nivel de clientes HTTP/usuarios. Se pueden detectar peligros como CSS, spoofing/trickery. (ii) Nivel transporte HTTP(S). Monitoriza-ción pasiva, MITM (Man-In-The-Middle), secuestro de sesiones. (iii) Nivel de firewall. Permitir HTTP(S). (iv) Servidor Web. Buffer overflow, format string, directorio transversal, cuentas por defecto, aplicaciones sample. (v) Aplicaciones Web, CGIs. Manipulación de filter-bypass, metacaracteres, caracteres null, buffer overflow. (vi) Firewalls. Tener presente las amenazas dentro de la red interna. (vii) Bases de datos. Comandos SQL directos, query de base de datos restringida, exploits de base de datos.
Consideracions finales
Nuestro grupo de investigación lleva trabajado más de quince años en el campo de la seguridad Web de servidores, aplicaciones, servicios, infraestructuras, etc. Destacando la evaluación y desarrollo de proyectos de mejora en el contexto Web, la seguridad-privacidad por diseño en el mundo Web. La síntesis de mecanismos de protección adecuados tanto de tipo software como hardware, así como lógica incrustada en micro-nanosistemas.
Este artículo se enmarca en las actividades desarrolladas dentro del proyecto LEFIS-APTICE (financiado por Socrates. European Commission).
Bibliografía
- Areitio, J. “Seguridad de la Información: Redes, Informática y Sistemas de Información”. Cengage Learning-Paraninfo. 2010.
- Areitio, J. “Test de seguridad para evaluar y mejorar el nivel de riesgos de seguridad”. Revista Conectrónica. Nº 134. Febrero 2010.
- Zittrain, J. “The Future of the Internet and How to Stop It”. Yale University Press. 2009.
- Herramientas para aplicaciones Web: http://www.owasp.org: (i) Web Scarab: Interceptor HTTP (potente, modifica los datos en tránsito. (ii) Web Goat: aplicaciones deliberadamente inseguras para formación de exploits
- Escáner de seguridad de aplicaciones Web Nikto: http://www.cirt.net/nikto2
- Web Dev Toolbar: https://addons.mozilla.org/firefox/addon/60
- Accesorios para Firefox XSS y SQL-I: http://securitycompass.com
- N-Stalker: http://www.nstalker.com/products/free
- Escáner de seguridad de aplicaciones Web gratuita Wapiti : http://wapiti.sourceforge.net
- Escáner de información sensible Spider: http://www.cit.cornell.edu/security/tools
- Herramienta SQL-I (SQL Inyection) Absinthe: http://www.0x90.org/releases/absinthe
- Otras herramientas gratuitas: https://infosec.uga.edu/sate/tools.php
Autor:
Prof. Dr. Javier Areitio Bertolín – E.Mail: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Catedrático de la Facultad de Ingeniería.
Director del Grupo de Investigación Redes y Sistemas. Universidad de Deusto .
Cursos Técnicos y Seminarios
Fibra GPON asimétrica. Solución Plug&Play para edificios
Keynet Systems organiza esta charla técnica en la que se tratará de cómo se diseña e instala una ...
Proyecto europeo “Ingenieros del Futuro” con formaciones online gratuitas para jóvenes y docentes ...
El Clúster GAIA ha participado en el proyecto europeo "Engineers of the Future”, cofinanciado por ...
Curso básico de Radiocomunicaciones gratuito
Este curso realizado por el Dr. Francisco Ramos Pascual abordará todos aquellos aspectos ...
Libro electrónico sobre conectividad inalámbrica
Mouser Electronics, Inc presenta un nuevo libro electrónico en colaboración con STMicroelectronics ...
Centro de recursos técnicos sobre retos de la ciberseguridad
En el mundo interconectado de hoy en día, la necesidad de integrar la seguridad en el nivel ...
Suscríbase a la revista CONECtrónica
Precio suscripción anual:
PDF: 60,00.- € (IVA incluido.)
PAPEL: 180,00.- € (IVA incluido.)
Recibirá las 7 ediciones que se publican al año.