31 julio 2012

Reversing malware tales: Análisis estático con Peframe

En anteriores posts de esta saga hablamos sobre como usar el debugger para realizar inspecciones sobre elementos de malware, en este caso vamos a hablar del paso previo a usar el debugger. Vamos a realizar un análisis en estático sobre un ejecutable para pre-identificar con lo que nos vamos a encontrar.

Para ello, usaremos la herramienta 'Peframe', que está escrita en Python y que se puede descargar desde aquí.

Peframe nos permite analizar un ejecutable PE y sacar información útil como los 'strings' del binario o  la lista de DLLs que importa y las funciones que llama


Vamos a analizar diversos especímenes de malware para ver ejemplos reales de información que se puede obtener con esta herramienta.


Como podemos ver en la captura, peframe nos lista todas las DLLs que este binario cargará y las funciones que llama de cada una de ellas.

Destacan GetProcAddress(), que se suele emplear para enmascarar el uso de otras funciones, ShellExecuteW() y URLDownloadToFileW().

Peframe también permite auto-clasificar las funciones que el entiende como 'sospechosas' con el flag --suspicious

En este caso, Peframe ha identificado esas dos funciones como sospechosas.

Vamos a analizar ahora un binario bastante fortificado, que contiene unas cuantas técnicas anti-debug.


Como se puede observar, emplea IsDebuggerPresent() -nuestra vieja conocida- GetModuleFileName() y UnhandledExceptionFilter(), otra función empleada como 'trick anti-debug', con lo que tenemos claro que, cuando vayamos a analizar este espécimen de malware, nos vamos a encontrar muchas 'minas' en el camino.

Conclusión: Peframe es una herramienta muy útil para pre-analizar un ejecutable, sacar las primeras conclusiones sobre su naturaleza y averiguar el funcionamiento interno del espécimen.

[+] peframe - Static Analysis of Portable Executable Malware
Leer más...

30 julio 2012

Los usuarios prefieren comodidad a seguridad


No sólo lo digo yo, sino, entre otros, un estudio hecho por Skype, en los que se concluye que un 40% de los usuarios PASAN de actualizar los sistemas operativos que utilizan para: jugar, trabajar, chatear, darle de comer a las vaquitas en el facebook, gestionar su banca online… 

Es por esto por lo que cada vez vemos más normal que los desarrolladores de aplicaciones y sistemas operativos, como Mozilla Firefox o Adobe por ejemplo, en sus últimas versiones, ya ni pregunte al usuario si quiere actualizar. Casi merece la pena que algunos usuarios sufran las actualizaciones en silencio, como las hemorroides, pero que, por lo menos, tengan el sistema operativo y las aplicaciones legales con sus parches y la última versión disponible. 

De esto se ha hablado hasta la saciedad, que realmente no todos los usuarios queremos que esto pase. En lo que a mí respecta, evidentemente quiero tener los últimos parches de todo, pero por lo menos quiero enterarme que un parche se está aplicando y, más o menos, saber para qué es. Además, como una regla general, es conveniente dejar un margen de tiempo razonable antes de efectuar actualizaciones "grandes" del sistema operativo.

Luego vienen los Poltergeist en los que, la máquina deja de funcionar, el navegador se cierra sólo mostrando un ininteligible mensaje de error, o el cifrado del disco deja el arranque inservible (1 y 2). Si estas cosas se aplican solas, lo primero que me viene a la cabeza es pensar en personas con un nivel de indefensión ante la informática como mi madre, que piensa que porque un icono aparece en un sitio diferente o un programa no tiene el mismo comportamiento que antes, es que ha entrado un virus. Ni ganas tengo de imaginar, la cantidad de llamadas de teléfono de madres a hijos (y en las empresas, de usuarios a CAUs) diciendo que el ordenador que ayer funcionaba hoy no arranca. Ahí la repetida pregunta que mi madre oye una y otra vez: "¿y qué has tocado?" y su correspondiente respuesta: "yo??? nada!", esta vez sería cierta, puesto que quien ha aplicado un parche automático y sin avisar es el sistema operativo…

Ya el propio Microsoft, a partir de Windows 7 (aunque reconozco que no sé si Vista también lo hace, no tuve la desgracia de usarlo para poder comprobarlo), por defecto cuando hay una pila de actualizaciones, te dice que las va a aplicar,.. y como dejes la máquina con la sesión abierta, le dará igual que tengas un montón de aplicaciones arrancadas, que te dará 10 minutos para que guardes y cierres o, en caso contrario, te encontrarás un sistema operativo recién arrancado, sin lo que tuvieras abierto, pero eso sí, mucho más seguro. 

Y es que resulta que fabricantes de software como Skype, Norton, Adobe o Tom Tom entre otros, han patrocinado la Semana Internacional de Modernización Tecnológica, con la sana idea de concienciar a los usuarios de la importancia que tiene eso de tener el software al día. Y aquí tenéis el lamentable resultado a modo de infografía



Os dejo el enlace de la noticia que leí MuySeguridad, que hizo que se me pusieran los pelos como escarpias. Y luego resulta que la gente que no actualiza absolutamente nada de nada, ejecuta o se cree todo aquello que le llega por correo, se mosquea cuando su tarjeta de crédito hace operaciones desde Rusia ¿ah, pero los mensajes en cirílico que aparecían, no eran notificaciones del Kaspersky?

Menos mal que la encuesta la hacen a usuarios de Estados Unidos, Reino Unido y Alemania,… y ahí en los países donde impera el sentido de la paranoia, la rectitud y la rigurosidad, ha salido que casi la mitad de los usuarios no se preocupa por la seguridad de su software. ¿Qué pasaría si la encuesta la hacen en España o en países latinos? 

Y tú ¿prefieres juerga y playa o quedarte actualizando el sistema operativo? 
Leer más...

29 julio 2012

Enlaces de la SECmana - 134




Leer más...

27 julio 2012

Spotbros, alternativa fiable a WhatsApp

Que WhatsApp no es precisamente el paradigma de la seguridad, es algo que no es nuevo, lo que si lo es es que aparezcan alternativas mejor pensadas, con mas criterio desde el punto de vista de la seguridad.

Hoy toca hablar de una de ellas: Spotbros, esta aplicación (disponible para IOS (todavía no) y Android) ha hecho su aparición hace relativamente poco tiempo y, aparte de bastantes nuevas ideas en cuanto a la parte social, incorpora características de seguridad bastante interesantes
  • Cifrado en las comunicaciones (AES 256) App <--> Servidor
  • Los datos que se almacenan en los servidores (fotos, etc) se eliminan en un periodo de tiempo inferior a 30 días
  • Una política de gestión de contactos mucho mas granular, no existe 'auto-aceptación' de contactos si ambas personas no se tienen entre si en la agenda.
Personalmente, esta última característica me parece una gran idea, seguro que todos, en algún momento, hemos recibido el típico mensaje 'hola que tal?' de un número que no teníamos en la agenda y la siempre desagradable situación de ¿pregunto quién es?.

Además, certifico que la gente de Spotbros tienen una forma de gestionar los reportes de seguridad muy afectiva y responsable. Frente al mutismo de WhatsApp al reportar fallos, Spotbros es bastante mas atenta. Y es que es imposible hacer un software totalmente libre de bugs, el verdadero reto es saber responder a ellos de una forma responsable y eficaz
 
En definitiva, merece a pena probarla www.spotbros.com
Leer más...

26 julio 2012

OWASP Broken Web Applications Project VM v1.0

Ayer, un post en el blog principal de OWASP anunciaba una nueva publicación del Broken Web Applications Project.

Este proyecto, que comenzó a mantenerse dentro de OWASP desde el 31 de Enero de 2010, consiste en la creación de una máquina virtual en la que se ejecutan un conjunto de aplicaciones que contienen vulnerabilidades, con el objetivo de practicar técnicas conocidas y relacionadas con la seguridad en aplicaciones web, tanto de forma manual, como para sacar el máximo partido a herramientas automáticas tanto de auditoría web como de código fuente. También nos permite ponernos "en el otro lado", defensa, para conocer el compartamiento de dichas aplicaciones en caso de que sean explotadas, probar firewalls de aplicaciones web (WAFs) o piezas de código fuente. 

Con esta recopilación nos ahorramos el tener que preparar un entorno o crear pruebas de conceptos o servicios vulnerables, así como evitar realizar ataques sobre entornos reales totalmente ajenos...

Dentro del conjunto de aplicaciones que se incluyen, se dividen en tres tipologías diferentes:
  • Aplicaciones de entrenamiento
Dentro de estas aplicaciones se incluyen aquellas que guían al usuario en la explotación satisfactoria de vulnerabilidades. Algunas de sobra conocidas por todos, se incluyen las siguientes:
    • OWASP WebGoat version 5.4+SVN (Java)
    • OWASP WebGoat.NET version 2012-07-05+GIT
    • OWASP ESAPI Java SwingSet Interactive version 1.0.1+SVN
    • Mutillidae version 2.2.3 (PHP)
    • Damn Vulnerable Web Application version 1.8+SVN (PHP)
    • Ghost (PHP)
  • Aplicaciones vulnerables "realistas"
Son como las de entrenamiento, pero en este caso las aplicaciones son más complejas y su comportamiento y funcionalidad pretende ser mucho más realista:
    • OWASP Vicnum version 1.5 (PHP/Perl)
    • Peruggia version 1.2 (PHP)
    • Google Gruyere version 2010-07-15 (Python)
    • Hackxor version 2011-04-06 (Java JSP)
    • WackoPicko version 2011-07-12+GIT (PHP)
    • BodgeIt version 1.3+SVN (Java JSP)
  • Versiones anticuadas de aplicaciones reales
Aquí se incluyen proyectos de aplicaciones web completamente reales y de uso extendido, cuyas versiones  o ramas tuvieron que requerir actualizaciones a causa de contener vulnerabilidades conocidas. Lo curioso de todo, es que, si bien pueden ya no estar mantenidas por los desarrolladores del proyecto, estas se pueden encontrar todavía.
    • WordPress 2.0.0 (PHP, released December 31, 2005) que incluye los plugins:
      • myGallery version 1.2
      • Spreadsheet for WordPress version 0.6
    • OrangeHRM version 2.4.2 (PHP, released May 7, 2009)
    • GetBoo version 1.04 (PHP, released April 7, 2008)
    • gtd-php version 0.7 (PHP, released September 30, 2006)
    • Yazd version 1.0 (Java, released February 20, 2002)
    • WebCalendar version 1.03 (PHP, released April 11, 2006)
    • Gallery2 version 2.1 (PHP, released March 23, 2006)
    • TikiWiki version 1.9.5 (PHP, released September 5, 2006)
    • Joomla version 1.5.15 (PHP, released November 4, 2009)
    • AWStats version 6.4 (build 1.814, Perl, released February 25,2005)
  • Aplicaciones creadas para probar herramientas
    • OWASP ZAP-WAVE version 0.2+SVN (Java JSP) - Prueba de OWASP ZAProxy
    • WAVSEP version 1.2 (Java JSP) - Aplicación utilizada para el benchmark de scanners de seguridad
    • WIVET version 3+SVN (Java JSP)
  • Páginas de pruebas o pequeñas aplicaciones
    • OWASP AppSensor Demo Application (Java)
Si bien en otras ocasiones ya hemos mencionado (por ejemplo, aquí y aquí) diferentes programas concretos o webs vulnerables a propósito sobre las que realizar pruebas, con este nuevo proyecto dispondremos de más variedad y como no, de un entorno mucho más controlado para que, como hemos mencionado antes, podamos actuar de una forma más defensiva.

El creador del proyecto, Chuck Willis, estará presentando esta "major version" en el Arsenal de la Black Hat USA que se está celebrando actualmente, y que comenzó ayer. Podéis seguir cualquier actualización del proyecto tanto en su twitter @owaspbwa, así como en la propia página del proyecto OWASP BWA y el repositorio en Google Code. La guía completa para el usuario se encuentra en esta página Wiki.

¡A practicar! ¡De forma legítima!
Leer más...

25 julio 2012

Nominados de los Pwnie Awards 2012


Un año más, y con la llegada de la BlackHat USA, se van a celebrar los Pwnie Awards 2012. Recordamos, para el que nos los conozca, que estos premios van dirigidos a aquellas vulnerabilidades que merecen especial mención, los FAILs más importantes del año, los mejores bugs, las mejores técnicas de exploiting descubiertas...sólo llevamos la mitad del año, pero como todos os podréis imaginar, hay candidadatos más que de sobra para cada una de las categorías que se premian a estas alturas:
  • Best Client-Side Bug - Mejor vulnerabilidad del lado del cliente
  • Best Server-Side Bug - Mejor vulnerabilidad del lado del servidor
  • Best Privilege Escalation Bug - Mejor vulnerabilidad que permita escalada de privilegios
  • Most Innovative Research - Mejor trabajo de investigación
  • Lamest Vendor Response - Respuesta más absurda por parte de un fabricante
  • Best Song - Mejor canción
  • Most Epic FAIL - El FAIL más épico
  • Epic Ownage - El compromiso/incidente/brecha de seguridad más épico
Tras recoger candidatos mediante el formulario online que se publicó justo hace un mes y hasta el 10 de Abril, se anunciaron los siguientes nominados tras el recuento de votos para cada una de las categorías:

Pwnie for Best Client-Side Bug

Premio para la persona que haya descubierto el fallo más sofisticado e interesante tecnicamente en el lado del cliente.
  • Pinkie Pie's Pwnium Exploit - Pinkie Pie {GANADOR}
Haciendo referencia a cuando se consiguió, encadenando 6 vulnerabilidades, ejecución de código remota en Chrome para ganar el concurso Google Pwnium en la CanSecWest.
  • Sergey Glazunov's Pwnium Exploit - Sergey Glazunov {GANADOR}
Ídem que el anterior, pero en este caso Sergey Glazunov utilizó como mínimo 14 vulnerabilidades
  • MS11-087: Unspecified win32k.sys TrueType font parsing engine vulnerability (CVE 2011-3402) - Autores del Duqu
No creo que si ganan vayan a recoger el premio, pero esta nominación va dirigida al exploit remoto para el Kernel de Windows que vulneraba cualquier versión aprovechando un fallo en el intérprete de fuentes.
  • Flash BitmapData.histogram() Info Leak (CVE 2012-0769) - Fermín J. Serna
Especial mención al genial documento que publicó Fermín que convertía una vulnerabilidad por lectura de memoría out-of-bounds en la obtención de memoría completa de una dirección elegida. Todo ello gracias a manipulación del heap y mucha, mucha creatividad para conseguir lo buscado. Podréis consultar su ponencia en la pasada SummerCon sobre este tema en este enlace. Estará por BlackHat USA dando hoy mismo una ponencia sobre el tema.
  • iOS Code Signing Bypass (CVE 2011-3442) - Charlie Miller
Para el bug que, tras subir una aplicación creada por él mismo, permitió demostrar que fue capaz de evadir el firmado de código de iOS, inyectando código en la aplicación una vez era instalada en el dispositivo. Charlie Miller consiguió, por parte de Apple, que fuese expulsado del programa de desarrolladores por un año completo.

Pwnie for Best Server-Side Bug

Premio para la persona que haya descubierto el fallo más sofisticado e interesante tecnicamente en el lado del servidor.
  • TNS Poison Attack (CVE-2012-1675) - Joxean Koret
Joxean mostraba un ataque que juntaba envenenamiento DNS y vulnerabilidades en el Listener TNS y que permitía realizar man-in-the-middle a bases de datos Oracle.
  • ProFTPD Response Pool Use-after-Free (CVE-2011-4130) - Anonymous
¡Una vulnerabilidad de tipo "use-after-free" en un servidor FTP y no en un navegador web! Esta permitió, tras la autenticación, la ejecución remota de código en ProFTPD. 
  • MySQL Authentication Bypass (CVE-2012-2122) - Sergei Golubchik {GANADOR}
Ya dedicamos el post "Vulnerabilidad grave en MySQL/MariaDB - CVE-2012-2122" a esta forma de evadir la autenticación en servidores MySQL, poco más que decir.
  • WordPress Timthumb Plugin 'timthumb' Cache Directory Arbitrary File Upload Vulnerability (CVE-2011-4106) - Mark Maunder
Esta vulnerabilidad ha dejado un gran conjunto de temas de Wordpress marcados como inseguros, por incluir este script Timthumb por defecto para el redimensionado de imágenes, que contenía una vulnerabilidad que permitía subir ficheros. Se lo han pasado/se lo están pasando genial aprovechando aún hoy en día esta vulnerabilidad para comprometer miles de blogs Wordpress.

Pwnie for Best Privilege Escalation Bug

El mejor fallo que permita escalada de privilegios.
  • Xen Intel x64 SYSRET Privilege Escalation (CVE-2012-0217) - Rafal Wojtczuk
Escalada de privilegios en procesadores Intel x64.
  • iOS HFS Catalog File Integer Underflow (CVE-2012-0642) - pod2g
Exploit utilizado en Absinthe iOS 5.0/5.0.1 para el jailbreak untether de dispositivos iOS versión 5. De los más usados y aprovechados, como es obvio.
  • MS11-098: Windows Kernel Exception Handler Vulnerability (CVE-2011-2018) - Mateusz "j00ru" Jurczyk {GANADOR}
j00ru consiguió mediante esta vulnerabilidad comprometer cualquier Windows de 32 bits desde Windows NT a Windows 8 en su versión Developer Preview. 
  • VMware High-Bandwidth Backdoor ROM Overwrite Privilege Elevation (CVE-2012-1515) - Derek Soeder
Ejecución de código en determinados sistemas operativos en sistemas "invitados" que se ejecutan dentro de una máquina virtual VMware que permitiría la ejecución de código con privilegios de Kernel.

Pwnie for Most Innovative Research

Persona que haya publicado la investigación, paper, presentación, hilo en lista de correo o herramienta más innovadora e interesante.
Inyectando paquetes en redes internas desde Internet.
Charla presentada por Tarjei en la ReCON 2012, sobre ataques basados en cadenas de texto que afectan a Windows, y sin ejecutar código en Ring0.
Este tipo de ataques añaden funcionalidades a ejecutables PE (instaladores de software, actualizaciones, etc) sin invalidar las firmas Authenticode.
Otra charla de REcon, que mostraba como aprovechar análisis de programas académicos para aplicarlos a retos de ingeniería inversa del mundo real.
Desbordamientos de búfer en autómoviles, explotando vulnerabilidades mediante un CD grabado, con dispositivos BlueTooth conectados o desconectados, o conexiones desde un teléfono móvil al teléfono GSM interno de un coche. ¡Instalando malware en coches!

Lamest Vendor Response

Todavía no se han publicado los nominados a la peor y más absurda respuesta por parte del vendedor tras reportarle algún tipo de vulnerabilidad.

Pwnie for Best Song

La mejor canción relacionada con el mundo de la seguridad:
Pwnie for Most Epic FAIL

El fallo más épico de estos últimos meses:
  • A la industria Anti-Virus en general
  • Herpesnet - Francesco Pompo (aka Frk7)
Como desmontar una botnet aprovechando que el botmaster no es my espabilado. La gente de malware.lu la desmontó por completo 
  • LinkedIn Breach of 6 Million Password Hashes - LinkedIn
También tenemos post sobre el caso LinkedIn. 2500 empleados, más de 90 millones de usuarios, no tenían CSO ni salt para sus contraseñas.
  • F5 Static Root SSH Key - F5 Networks {GANADOR}
Incluir la clave privada de autenticación en el firmware de un dispositivo, dándote acceso a cualquiera de los dispositivos F5, no tiene precio.

Pwnie for Epic 0wnage

Al mayor de los "pwnages", los nominados son tres en este caso:
  • "Flame" Windows Update MD5 Collision Attack - Flame Authors {GANADOR}
Técnica utilizada por Flame para conseguir firmar actualizaciones legítimamente. También tenemos un post dedicado completamente a este tema. 
  • Autoridades de Certificación - Todas
Comprometidas una a una sin parar, y la industria sigue cerrándose los ojos ante este tema, confiando en entidades "low-cost" para su gestión de certificados. Se destruyó Diginotar, y seguro que vienen más.
  • iOS Jailbreaks - iPhone Dev Team y Chronic Dev Team
Equipos de personas que se dedican a aprovechar vulnerabilidades en sistemas operativos iOS, publican sus 0days y permiten que cualquiera pueda aprovecharlos para sus dispositivos, de manera rápida y sencilla. Cada versión, un reto, que siempre consiguen ganar.

-------------


Hoy 25 de Julio tendrá lugar la ceremonia de entrega de premios, actualizaremos el post para señalar a los ganadores de cada categoría, tras su celebración en la Blackhat USA, AUGUSTUS III+IV Ballroom en el Caeser's Palace de Las Vegas.

¡Suerte a todos!

Leer más...

24 julio 2012

Un saludo a todos, soy Angel de Seguridad informática "A lo Jabalí...." algunos ya sabéis que publicamos en el blog nuestra opinión sobre libros de seguridad que estamos leyendo. Estamos de vacaciones, así que hackeamos Security by Deafult y publicamos por aquí!

Juan Luís García Rambla es el autor de Ataques en redes de datos IPv4 e IPv6, y tengo que reconocer que no es lo que esperaba, al comprar el libro en Informática64 pensaba en un documento muy técnico lleno de scripts y tutoriales sobre herramientas, algo que también hay.

Después de una introducción brillante Juan Luís aborda uno de los principales problemas de la seguridad informática, las decisiones se dejan en un usuario sin conocimientos y sin una preparación adecuada para tomar una decisión correcta.

-"Si Yago, tienes razón!"

En este libro el autor nos va explicando los riesgos de seguridad asociados a cada capa de la comunicación, cada dispositivo de red o cada tecnología empleada, exponiendo las distintas técnicas de ataque y porque ese ataque puede ser efectivo.

La importancia de conocer en profundidad los protocolos y sistemas es vital, se critica rápido a los usuarios de "botón gordo", hay que ejecutar en una shell el ARP Poisoning, configurar tus propios exploits. Pero sabemos ¿cómo funciona el protocolo ARP?, si,si... sabemos lo que hace y como utilizarlo en nuestro beneficio, pero realmente conozco sus características, sus peculiaridades, y de IPv6 también (¿Existe ARP en IPv6?).

Este punto de vista abre todo un mundo de posibilidades para el atacante, y de factores a tener en cuenta para el encargado de gestionar la seguridad, los malos (que si se preocupan de todo lo que pueden utilizar) no van a inundar la red con respuestas ARP si es más fácil configurar el switch para escuchar todo el tráfico, y mas discreto. En este caso ese IDS que tenemos instalado igual no nos sirve de mucho.

Un ejemplo del libro ....

Utilizando la característica de SLAAC (StateLess Address Auto Configuration) de IPv6 para realizar un acceso, puedes asignar a la tarjeta de red el equivalente de una APIPA en IPv4.

ifconfig eth0 inet6 add 2001::10/64

Ahora podemos comunicar mediante IPv6 con otros equipos que tengan habilitado IPv6 y no se les haya asignado una dirección, siempre y cuando no lo impida un firewall.

Ahora accedemos a los recursos de la maquina vía UNC


\\2001-db8-81a1-bd1-1111-145a-14a-1001.ipv6-literal.net\

O mediante URL

http://[2001-db8-81a1-bd1-1111-145a-14a:1001]/

Una ACL implementada en IPv4 filtraría el acceso, y hasta aquí puedo leer.... si queréis mas información tendréis que pedir un libro, en mi opinión si estas empezando con la seguridad informática Ataques IPv4 e IPv6 es fundamental en tu biblioteca, y si ya tienes conocimientos sobre el tema yo te recomiendo que lo leas con atención y disfrutes del punto de vista de un profesional, con mucha experiencia, unos planteamientos muy interesantes y una forma de escribir brillante.

-"¿Puedo ponerlo, puedo?"
-"¿Si?, je,je,je...."

Seguridad a lo Jabalí para Todos!!

------------------------------------------------------------

Contribución por Angel Villaveiran
Leer más...

23 julio 2012

Trabajando con varios motores de Scripting

Hola a tod@s!

En estos tiempos que corren hoy día, hay una palabra que suena bastante dentro del mundo de la consultoría informática. No, no estamos hablando de la maldita palabra crisis. Estamos hablando de la palabra transición.

Empresas que cierran, empresas que abren, empresas que se fusionan, etc, etc.. Y en medio de esta vorágine nos encontramos muchos de nosotros trabajando a destajo, automatizando lo que podemos y por qué no decirlo, automatizando lo que nos dejan.

En muchas ocasiones podemos encontrarnos en tipos de consultoría en donde se pretende pasar de una tecnología a otra. En otras ocasiones nos encontramos en sitios en donde el personal informático se ha cambiado por completo, y otras veces, por ejemplo, podemos encontrarnos ante empresas que quieren adoptar otro tipo de tecnología para automatizar tareas.

Estos ejemplos, de los que seguro que el lector se verá claramente identificado con alguno de ellos, implica la transición de “algo”. En el caso que nos ocupa, me gustaría hablaros de la automatización de tareas unitarias y repetitivas mediante tecnologías de scripting.

El chascarrillo que conté en la Rooted, en el que bromeaba con realizar tareas repetitivas con Batch frente a otros lenguajes de scripting, provocó una serie de comentarios en algunos casos a favor, en otros en contra, y que Lorenzo Martínez, acertadamente, publicó un artículo llamado Scripts de seguridad, qué lenguaje elegir?, que seguro hizo pensar a más de uno, entre los que me incluyo.

Uno de los mensajes que lanzaba Lorenzo se podía resumir con una frase como la siguiente: “Si a ti te funciona, estás cómodo, es de rápida implementación y se ejecuta eficientemente, debes usar ese”.

Habiendo (espero) puesto en antecedentes, imaginemos una pequeña historia.

Recread por ejemplo la siguiente situación. Qué pasaría si por ejemplo al cambiar de empleo, entras en una empresa en donde la automatización de tareas relacionadas con la seguridad o con cualquier otra disciplina se realiza en un lenguaje que a priori no controlas? Yo particularmente tengo una especie de “biblioteca” de scripts realizados en Python, PowerShell y BATCH (Con dos ·$%$!). Pero, y si al realizar una consultoría, o realizar un cambio de puesto de trabajo, me encuentro con la adopción de otra tecnología de la que no tengo la menor idea? Quiere decir esto que mi “biblioteca” de scripts ya no vale? Realmente la única opción es transigir?


Yo personalmente me las he visto y deseado en consultorías en donde el lenguaje predilecto era Perl, del cual no tengo ni la menor idea. Consultorías en donde tienes que realizar una tarea automática y que la relación horas-->coste-->persona no iban favor. Aunque la curva de aprendizaje sea poco elevada si dominas otros lenguajes de scripting, en la gran mayoría de ocasiones no vas a poder aprender un lenguaje de scripting al estilo Matrix. ¡Ojalá!



Podemos imaginar innumerables ejemplos. Para ayudar a la transición de un lenguaje obsoleto como BATCH a otros más potentes, o para integrar scripts que sean más eficientes en un entorno donde prima ya un motor, o para automatizar tareas utilizando la potencia de varios motores de scripting, en Windows existe una tecnología llamada Windows Script Host. Esta tecnología provee al sistema de opciones de automatización mediante un lenguaje independiente, y que implementa un modelo de acceso a objetos a través de una serie de interfaces (Component Object Model).



Entre las capacidades de esta tecnología se encuentra la de poder trabajar con varios lenguajes de scripting. Entre los lenguajes a los que se ofrece soporte, se encuentran Perl y Python por ejemplo, siempre y cuando se tengan instalados en el equipo los motores correspondientes.



Para ofrecer este soporte, la herramienta por línea de comandos CSCRIPT, proporciona un parámetro llamado IE, en el que se puede elegir el motor de script en función del fichero a pasarle como argumento.


Imagen 1.- Ejecutando código Perl desde CSCRIPT

Gracias a este tipo de soporte, se hace posible la utilización de varios motores en un script único. Lo único que tendríamos que hacer es realizar una llamada a la herramienta CSCRIPT, indicándole como parámetro extra el motor que necesitamos que utilice.

Si por el contrario tuviésemos la necesidad de ejecutarlo todo a través de un único script, o si desde una función en VBS (Visual Basic Script) necesitamos llamar a una función en Perl por ejemplo, Windows ofrece una tecnología llamada Windows Script File. A través de este fichero, es posible mezclar varios lenguajes de scripting en un único fichero, y ejecutarlo todo a través de la herramienta CSCRIPT por ejemplo. El modelo de fichero utiliza una jerarquía básica XML, en donde tendremos una serie de etiquetas disponibles para llamar a un motor u otro.

A continuación os dejo con un ejemplo utilizando para ello la inclusión de un script en VBS y otro en Perl, todo incluido en un único fichero WSF. Una vez ejecutada la función de VBS, éste llama a una función en Perl. Todo ello ejecutado a través de la herramienta CSCRIPT.



Imagen 2.- Ejecución de ficheros WSF a través de CSCRIPT

Si alguna vez tienes algún problema en decidir qué tipo de lenguaje elegir a la hora de automatizar alguna tarea, o tienes algún problema de “transición”, o piensas que el script que tienes en tu biblioteca es más eficiente que el que proponen, o quieres aunar varias tecnologías tomando lo mejor de cada una, Windows Scripting File es tu amigo.

Saludos a tod@s!

Contribución por Juan Garrido
Leer más...

22 julio 2012

Enlaces de la SECmana - 133

Leer más...

20 julio 2012

Vuestros "ETHERNET EXPOSED" - XIII

Nueva edición de esta serie de posts en la que recopilamos vuestros ETHERNET EXPOSED. Aún siendo el post 13, os aseguro que las imágenes no darían para nada, mala suerte.

Os recordamos que en esta sección pretendemos recopilar las imágenes que realizáis a tomas ethernet que se encuentren expuestas en lugares curiosos, transitados, accesibles... y que posteriormente nos enviáis a nuestra dirección de contacto.

Tenemos 4 nuevas contribuciones, en esta ocasión enviadas por David Jesús García, David López y nuestro compañero Lorenzo.

Empezamos por las imágenes enviadas por David Jesús:

Me acorde de vosotros el otro dia cuando fui a cenar con mi chica a un restaurante de la cadena "Peggy Sue", que imitan los restaurantes americanos de los años 50. 

Entre la decoracion, en cada mesa hay acceso a una gramola, donde puedes elegir a coste cero una cancion, al estilo de la epoca. Por lo que pude intuir, estas gramolas encolan las peticiones de los usuarios de las diferentes mesas en un playlist, y va sonando por orden.


Pero yo no tuve oportunidad, porque en mi mesa la gramola no estaba, y a cambio tenia lo que veis en las fotos. Decir que mi mesa estaba bastante apartada de la barra principal, y lejos de la vista de los camareros :)


Es un buen pasatiempo mientras se esperan los postres....

El siguiente ethernet exposed nos lo envía David López, encontrado en una comisaría de polícia de Delicias, en Zaragoza:


No es la primera, ni seguro que la última, en la que nos envían ethernet exposed relacionados con puestos de gestión para el DNI-e...

Los últimos ethernet exposed nos los envía nuestro compañero Lorenzo, que además ¡siempre intenta llegar más lejos que realizar una simple foto!

"para el siguiente Ethernet Exposed. Te mando uno que cacé en el hotel Zenit de Bilbao. Estuve impartiendo un curso de Checkpoint a unos clientes allí, y según llego del parking del hotel, me encuentro en el rellano del ascensor con un RJ-45 a media altura... Llevaba demasiadas cosas en la mano, así que esperé al día que me volvía para comprobar si había o no link ;) Lo que pasó ahí, queda entre ese RJ-45 y yo jejeje"


Qué peligro...pasemos al siguiente:

Te envío un pedaaaazo de ethernet exposed de la facultad de ingeniería de sistemas, electrica y electrónica de la Universidad Católica de Cuenca, en Ecuador. Se trata de la toma RJ-45 al alcance de cualquiera, utilizada para el envío del control de presencia, para los profesores de la Universidad. Hay bastante gente alrededor cuando estuve, pero oye, a lo mejor hay momentos mas tranquilos :)))


Antes de invitar a Lorenzo a impartir a alguna charla, por favor, revisad que en un perímetro de 2km no quedan tomas de red al descubierto...porque no se le escapa ninguna.

Como siempre os decimos, nuestra dirección de correo sigue abierta a todas aquellas contribuciones de ETHERNET EXPOSED que os encontréis, ¡muchas gracias a todos y hasta la próxima!

---------------

Leer más...

19 julio 2012


A finales del pasado mes de Junio el Instituto Español de Ciberseguridad – Spanish Cyber Security Institute, en adelante SCSI (iniciativa del ISMS Forum Spain), publicó su primer estudio titulado “Ciberseguridad nacional, un compromiso detodos”. Este estudio realiza un análisis y diagnóstico del estado actual de la ciberseguridad en España, argumentando por qué es necesaria una Estrategia Nacional de Ciberseguridad y exponiendo cuales deben ser sus funciones, habilitadores, objetivos a corto-medio plazo y las acciones más relevantes para alcanzar estos objetivos. 


En el presente artículo nos centraremos en explicar por qué es necesaria una Estrategia Nacional de Ciberseguridad en España. 

Durante el último lustro, muchos de los países de nuestro entorno geopolítico han reconocido la importancia estratégica de disponer de un ciberespacio seguro para garantizar la prosperidad económica, social y cultural de los diferentes Estados. La Estrategia Nacional de Ciberseguridad debe transmitir esta importancia estratégica, pero además, debe servir de guía para los responsables de la dirección, control y gestión de la ciberseguridad nacional, así como para sus beneficiarios, y servir como instrumento de disuasión para sus potenciales transgresores. 

La Estrategia Nacional de Ciberseguridad debe dar respuesta a las siguientes cuestiones:
  1. ¿Qué preocupa? (Riesgos y amenazas)

    La novedad, diversidad y heterogeneidad de los riesgos y amenazas relacionados con el ciberespacio hacen indispensable un conocimiento de ciber-situación fiable y actualizada que proporcione a los responsables de la ciberseguridad nacional el conocimiento necesario para su dirección, control y gestión. 

  2. ¿Quién se preocupa? (Responsables)

    La  seguridad del ciberespacio nacional es responsabilidad del Gobierno. Presidencia del Gobierno debe asumir el liderazgo de la ciberseguridad nacional. Para ello, deberá crear un sistema nacional de ciberseguridad, es decir, el conjunto  de órganos, organismos y procedimientos que permitan  la  dirección, control y gestión de la seguridad de nuestro ciberespacio.

  3. ¿Cómo se responde a esa preocupación? (Políticas)

    El Gobierno de España deberá mostrar una determinación política para hacer frente a los riesgos y amenazas cibernéticos y, por ello, deberá fijar unos objetivos y  priorizarlos.

    Del mismo modo, la creación del sistema nacional de ciberseguridad permitirá reducir el riesgo asociado a que cada ministerio y agencia decidan sus líneas de actuación sin tener en cuenta las de los demás y, como resultado, que los gobiernos luego se vean obligados a hacer un esfuerzo de coordinación adicional que se podría haber evitado si se hubieran dado orientaciones adecuadas desde un comienzo. Las principales políticas deben ir dirigidas a fomentar: La resiliencia de nuestro ciberespacio, la colaboración público – privada, la educación y concienciación, la I+D+i  y la colaboración internacional.
La construcción del sistema nacional de ciberseguridad deberá realizarse a partir de los habilitadores de la ciberseguridad, que dividimos en habilitadores principales, aquellos que permitirán construir el sistema nacional de ciberseguridad, y habilitadores secundarios, aquellos que permitirán hacer funcionar el sistema en conjunción con los primarios.

Los habilitadores principales son:

  • Liderazgo del Estado. El Estado tiene la obligación de legislar y actuar para proteger, o hacer que se protejan, los servicios que se prestan en el ciberespacio y que permiten a los ciudadanos, sus organizaciones y empresas, desarrollarse en los ámbitos social, cultural y económico, entre otros. Cumplir con tal obligación implica el ejercicio del liderazgo para la definición de políticas, estrategias y normativa jurídica en materia de ciberseguridad, además de crear los instrumentos organizativos que permitan su aplicación. Corresponde a la Presidencia del Gobierno asumir este liderazgo.
  • Estructura Organizativa. El Estado debe crear una estructura organizativa que permita  la dirección, control y  gestión de la ciberseguridad nacional.
  • Marco legislativo. Será necesario desarrollar un marco legislativo que de soporte a la ciberseguridad nacional, que resulte eficaz y a la vez tenga en cuenta los derechos fundamentales y libertades públicas del estado de derecho.  Cuanto menos dispersas sean las normas que formen parte de ese marco legislativo, el nivel de seguridad jurídica  será mayor.
  • Metodología. El carácter novedoso del ciberespacio y la complejidad de su seguridad, hacen necesario desarrollar una metodología de trabajo que proporcione un mejor entendimiento sobre la importancia estratégica del ciberespacio así como de su estado de riesgo. Esta metodología deberá proporcionar: un lenguaje común, unos fundamentos teóricos homogeneizados y unos procedimientos en los que se describa el modo de proceder en materia de ciberseguridad.
  • Tecnología. La tecnología es el fundamento del ciberespacio. El conocimiento y adaptación a la continua  evolución tecnológica y técnica resultan  fundamentales para mejorar la resiliencia y seguridad de nuestro ciberespacio.

Los habilitadores secundarios son:

  • Estado de Ciber-situación. El conocimiento de la ciber-situación debe proporcionar el conocimiento inmediato del ciberespacio propio, el del resto de naciones, y el de cualquier otro de interés, así como el conocimiento del estado y disponibilidad de las capacidades operativas  que son necesarias para el planeamiento, dirección y gestión de las operaciones necesarias para la seguridad del ciberespacio.
  • Compartición de información. Se deben articular un conjunto de mecanismos que permita a los diferentes actores de la ciberseguridad nacional compartir información de manera eficiente y eficaz. Además, la compartición de información ayudará a conseguir un conocimiento de ciber-situación fiable y actualizado, mejorará  la disponibilidad y resiliencia de los activos de la ciberseguridad nacional,       permitirá  gestionar de modo eficaz y eficiente  las crisis cibernéticas y, en otro contexto, permitirá optimizar la inversión económica en materia de ciberseguridad, racionalizando el uso de recursos, humanos y técnicos.
  • Concienciación y educación. La sociedad española debe conocer el alcance y la complejidad de la ciberseguridad nacional,  así como tomar conciencia de los riesgos individuales (privacidad e intimidad) y colectivos (seguridad nacional, prosperidad económica, social y cultural) a los que está  expuesta si se hace un uso irresponsable del ciberespacio.
  • Comunicación Estratégica. Es necesario elaborar una política de comunicación estratégica sobre los asuntos de la ciberseguridad nacional y las situaciones de crisis cibernéticas, así como impulsar el debate parlamentario y social en la revisión y aprobación de las estrategias,      promover la comunicación público-privada y entre las administraciones, difundir alertas y recomendaciones a la población.
  • Colaboración Público-Privada. El Gobierno de España no dispone, por sí mismo, de las capacidades necesarias para garantizar la seguridad del ciberespacio nacional y, por tanto, deberá contar con el sector privado, entre otros, para alcanzar un nivel de seguridad acorde a un estado de riesgo conocido y controlado. Es responsabilidad del Gobierno de España crear y fomentar un marco de colaboración público–privado.
  • I+D+i. La fuerte componente tecnológica del ciberespacio y la ciberseguridad, obliga a fomentar la competitividad y la  I+D+i en el sector público y privado nacional. Para ello el Gobierno de España deberá desarrollar un conjunto de políticas que tengan como objetivo que las empresas nacionales puedan comercializar sus productos y servicios, que  el Estado mantenga un estado tecnológico avanzado y, lo que resulta más importante, que disponga de unos “socios” ágiles para responder a la dinámica evolución de las TIC.
  • Cooperación Internacional. El carácter global del ciberespacio hace necesario mantener alianzas, no solo con nuestros aliados, sino con el resto de países que se encuentran más allá de nuestro ámbito geopolítico.
En definitiva, España, a pesar de los grandes esfuerzos realizados, no dispone aún de una capacidad sólida que permita realizar una dirección, control y gestión eficaces y eficientes de nuestra ciberseguridad. La Estrategia Nacional de Ciberseguridad debe ser el instrumento que posibilite disponer de unas capacidades de ciberseguridad acordes a las necesidades que el estado del riesgo del ciberespacio demande en cada momento.



------------------------

Articulo cortesía de @EFOJONC y @infosecmanblog, miembros del SCSI

Leer más...

18 julio 2012

Securizando un entorno de máquinas virtuales con Virtualbox

La virtualización ha dejado de ser únicamente una moda, y, con los agravantes de los recortes por la crisis y la conciencia ecológica, se ha convertido en una forma de vida para todo tipo de organizaciones. Por esto, la seguridad ha tenido que reinventarse para poder adaptar conceptos como la correcta segmentación de redes, que anteriormente se hacía mediante diversas interfaces de red, VLANs y cables físicos conectados a una maraña de servidores, para definir políticas de acceso entre máquinas virtuales que corren en un mismo servidor físico.

Dentro de los sistemas de virtualización, hay una amplia elección profesional para elegir, por lo que las organizaciones que dispongan de recursos económicos para ello, pueden acudir a sus supermercado de productos de seguridad favorito, y hacerse con costosas licencias para crear entornos virtuales. En general, estas plataformas profesionales, permiten definir redes virtuales diferenciadas con políticas de seguridad que especifican el tráfico permitido entre ellas.

Como he dicho antes, para una organización más humilde o alguien que esté empezando una aventura empresarial (que las hay, incluso en España en 2012), la solución libre Virtualbox puede cubrir de sobra las necesidades de virtualización.  

Desde el prisma de un purista de la seguridad, tal cual explico en mi curso de Buenas Prácticas de Seguridad en Entornos Corporativos, el primer paso, para segmentar las redes que existirán en una organización, es identificar los diferentes servidores/servicios para decidir su distribución. Aquellos que necesiten tener una puerta por la que entre tráfico desde Internet, deberá ir en una DMZ de servicios públicos o frontend. La ubicación de los servidores que nutren estas aplicaciones públicas deben ir en una red diferente y protegida, o de backend. El tráfico a permitir entre todas estas redes habrá de ser el justo y necesario para evitar exposiciones de servicios/máquinas por error. Más o menos como se puede ver en el dibujo de abajo, y siguiendo los consejos que ya explicamos en "Cómo diseñar una política de cortafuegos"






"Bueno vale, después de la clase de pizarra que nos has soltado… cuéntanos esto del Virtualbox"

El problema de VirtualBox es que no dispone de una consola remota como tal, con la que gestionar las máquinas virtuales y con la que definir diferentes redes virtuales, así como asignar políticas de seguridad, por lo que habrá que inventarse algo por debajo, que supla esta carencia.

Partimos del caso de una organización pequeña en que disponemos de una máquina Linux, con recursos suficientes de RAM y disco duro, en la que instalaremos Virtualbox. Esta máquina dispone de conectividad a Internet (porque esté conectada al router ADSL o a una ONT de fibra óptica), y quizá conexión con una red LAN o wireless. Supongamos entonces que la máquina dispone únicamente de un par de interfaces físicos de red: uno conectado hacia Internet y otro hacia una red privada. 

Vamos a crear dos nuevas redes que permitan unir servidores de dos tipos: de frontend y de backend. Para ello, Linux provee de diferentes herramientas que permiten crear interfaces virtuales. En este caso vamos a definir dichos interfaces virtuales como tipo TAP [http://en.wikipedia.org/wiki/TUN/TAP]. 

Para ello, haremos, por cada red que queramos definir los siguientes pasos:



Si necesitamos más interfaces virtuales, repetiremos las dos líneas "tunctl" e "ifconfig" con un nuevo intefaz virtual y el direccionamiento a asignar a sucesivos tap1, tap2, etc,…

Se supone que esto crea un interfaz de red virtual "persistente" asignado al uid 0 (si ejecutamos como root la orden, claro). Sin embargo, deberemos repetir los pasos de la definición de interfaces cada vez que arranque la máquina física. Para ello crearemos un script, en el /etc/rcX.d que corresponda, para que se definan los interfaces de red ANTES de que arranquen las máquinas virtuales. Es decir, no lo hagáis en el /etc/rc.local, que como sabréis, se ejecuta como último script de los de arranque.

Lo siguiente que tenemos que hacer es definir el interfaz de red de la máquina virtual que quedamos, como "Bridged Adapter" y seleccionaremos el interfaz "tap" que hayamos definido para esa red. 



Repetiremos este proceso para todas las máquinas virtuales según nuestras necesidades de pertenecer a la DMZ pública o a la privada. El direccionamiento de red a asignar a las máquinas virtuales de ambas redes, deberá pertenecer al mismo que tiene cada interfaz virtual TAP. En el caso del ejemplo, deberían pertenecer al rango 192.168.5.0/24. 

De esta manera, las máquinas de la DMZ pública, que ofrezcan servicios a Internet, quedarán en una DMZ virtual y las de backend en otra.

Viajando a la paranoia extrema

"Oye, ¿y si me comprometen una máquina, no podrían saltar a otra de la misma red?" Pues la respuesta es "puede". Si te comprometen una máquina virtual, las posibilidades son las mismas que en una red DMZ física, por lo que si la seguridad de cada una de las máquinas, a nivel individual, no ha sido tenido en cuenta convenientemente, podemos tener un problema mayor.

Para reforzar este posible caso, si queremos, podemos darle una vuelta de tuerca más, haciendo incluso que, la opción de máquinas virtuales sea más segura que la opción de redes físicas. Para ello, lo que haremos, en vez de definir un interfaz virtual por cada red, será crear un interfaz TAP por cada máquina virtual. Asignaremos desde el panel de Virtualbox el interfaz TAP, en modo bridge a cada máquina y utilizaremos subnetting para optimizar el espacio de direcciones IP.

Si antes usábamos una red con máscara 24 (255.255.255.0), ahora usaremos una máscara 30 (255.255.255.252). Los 30 bits de máscara nos permite 4 direcciones IP: la primera es la dirección de red, la última el broadcast de esa red y las otras dos son las "usables" para asignar a dos interfaces de red, creando una conexión Punto-a-Punto. Una será para la máquina virtual que montaremos en esa red, y otra para el interfaz tapX de la máquina física (que actuará de default gateway para la máquina virtual).

En el caso de 192.168.5.0/30 por ejemplo, tendríamos la 192.168.5.0 como dirección de red, la 192.168.5.3 como dirección de broadcast y la 192.168.5.1 y 192.168.5.2 como direcciones asignables. Si os liáis con el subnetting, podéis usar este enlace para el cálculo online de direcciones IP



Así, para acceder a otras máquinas, habrá que pasar sí o sí, a través del firewall… por lo que una política de seguridad estricta, asegurará, que si nos comprometen cualquiera de las máquinas virtuales, no será sencillo saltar a una "de las de al lado". Desde el punto de vista de la gestión de máquinas virtuales puede llegar a ser más lioso, pero como siempre, seguridad y usabilidad, se llevan mal. Este esquema es lo más parecido a implementar las Private VLAN que permite la electrónica de red Cisco.

Y ahora me diréis… ¿y si te comprometen la máquina física desde el propio acceso a Internet?  Pues lleváis razón. Quien tenga acceso a la máquina física puede acceder a los datos de todos los servidores contenidos en ella.

De vosotros dependerá securizar convenientemente esa máquina física, o incluso crear una máquina virtual nueva, que sea la que haga las labores de firewall, con un interfaz de red asignado (bridge) a cada una de las nuevas redes que hemos creado.

Así, la máquina física, si logramos que no tenga servicios de ningún tipo hacia el exterior, será un bastión muy difícil de vulnerar.
Leer más...