miércoles, septiembre 21, 2016

Herramienta de respuesta rápida a ataques centrada en análisis forense remoto de sistemas.

GRR es una herramienta de respuesta rápida a ataques centrado en análisis forense remoto de sistemas. Esta compuesta por dos partes: un agente escrito en Python (cliente) que se instala en los sistemas de destino donde se quiere realizar el análisis forense y infraestructura de servidor en Python que puede manejar y hablar con el agente.

Un agente se implementa en sistemas que se desean investigar. Una vez desplegado, cada sistema se convierte en un cliente GRR y que puede empezar a recibir mensajes desde los servidores de frontend. Cada mensaje le dice al cliente que ejecute una acción específica del cliente y devolverá los resultados. Una acción del cliente es simplemente un código conocido que el agente sabe cómo ejecutar (tales como la obtención de la lista de archivos en un directorio o la lectura de un tampón de un archivo).


Estas acciones se invocan del lado del servidor a través de lo que llamamos flujos. Un flujo es una pieza de código del lado del servidor que solicita el sistema de GRR para programar llamadas remotas a un cliente y tiene cierta lógica adicional para decidir qué hacer sobre la base de los resultados de llamada.

Este flujo se ejecuta en un cliente a petición de un usuario. Para ello, se puede utilizar la web de interfaz gráfica de usuario (GUI), que permite a un usuario GRR  iniciar flujos de clientes y revisar los resultados. O también se puede utilizar la consola basada en texto para hacer lo mismo.

Cualquier flujo que se puede ejecutar en una sola máquina también se puede ejecutar en varias. Una búsqueda permite la ejecución de un flujo en todo el conjunto de maquinas, o cualquier subconjunto de máquinas que hablan con el servidor GRR.


Características del cliente:

  • Multiplataforma, compatible entre plataformas: Linux, OS X y Windows.
  • Permite análisis de la memoria remota en vivo en sistemas: Linux, OS X y Windows a través de la la aplicación Rekall de análisis forense de memoria.
  • Realiza búsqueda y descarga de archivos y el registro de Windows.
  • Infraestructura de comunicación segura diseñada para un despliegue a través de Internet.
  • Soporte de actualización automática del cliente.
  • Seguimiento detallado de: la CPU del cliente, memoria, uso de IO...

Características del Servidor:

  • Capacidades de respuesta y manejo de la mayoría de las tareas de respuesta a incidentes y análisis forense.
  • A nivel de sistema operativo y el acceso al sistema de archivos en bruto, utilizando el SleuthKit (TSK).
  • Permite búsquedas a través de una flota de máquinas.
  • Back-end completamente escalable para manejar grandes despliegues.
  • Programación de automatizado de tareas para tareas repetitivas.
  • Diseño asíncrono que permite futura programación de tareas para los clientes, diseñados para trabajar con una gran flota de ordenadores portátiles.
  • AngularJS interfaz de usuario web y interfaz de programación de aplicaciones REST JSON.
  • Completamente programable mediante la consola IPython.
  • Las características básicas para establecer una línea del tiempo de las evidencias recogidas. 

Esta herramienta nos permite realizar un análisis forense de forma rápida y remota, cuando detectamos un ataque en nuestra organización y queremos evaluar rápidamente los daños y recoger las evidencias.

Más información y descarga de GRR:
https://github.com/google/grr


Premios Bitacoras.com 2016, categoría Mejor Blog de Seguridad Informática. Vota el blog Gúru de la informática (http://www.gurudelainformatica.es/) aquí: http://bitacoras.com/premios16/votar/eea22ce67fa1b6b7fbe997e326176f42d5a71599

miércoles, septiembre 14, 2016

Máquina virtual para la evaluación, ingeniería inversa y análisis de Malware, de aplicaciones Android.

AndroL4b es una máquina virtual orientada a los aspectos de seguridad en Android basado en ubuntu-mate, que incluye la colección de los últimos framework, tutoriales y laboratorios, de seguridad, para la ingeniería inversa y análisis de malware en aplicaciones Android.

Contiene las siguientes herramientas y laboratorios:
 
Herramientas.
 
APKStudio, es un IDE multiplataforma para la ingeniería inversa y recompilación de binarios de aplicaciones Android, dentro de una sola interfaz de usuario. Cuenta con un diseño amigable, con un editor de código que soporta el resaltado de sintaxis para Android smali y archivos de código (* .smali).

ByteCodeViewer, suite de Ingeniería inversa de aplicaciones Android, con cinco descompiladores Java diferentes, dos editores de código de bytes, un compilador de Java y plugins...


Mobile Security Framework (MobSF), es una aplicación de código abierto para móviles (Android/iOS). Un  framework capaz de realizar el análisis estático y dinámico (Sólo esta permitido el análisis estático en esta maquina virtual). Puede ser utilizado para un análisis de seguridad de aplicaciones eficaz y rápido, es compatible con los binarios (APK y IPA) y el código fuente comprimido. MobSF también puede realizar pruebas de seguridad con su Fuzzer API que puede hacer de: recopilación de información, análisis de cabeceras de seguridad, identificar vulnerabilidades específicas de la API móvil como: la XXE, FRSS, de traspaso de rutas, IDOR... y otras cuestiones lógicas relacionadas con la sesión. 

Dorzer, marco de evaluación de seguridad de aplicaciones para Android. Permite realizar búsquedas de vulnerabilidades de seguridad en aplicaciones y dispositivos, asumiendo el papel de una aplicación, permitiendo interaccionar con: la máquina virtual Dalvik, los puntos finales del IPC de otras aplicaciones y el sistema operativo subyacente. 

APKtool, es una herramienta para la ingeniería inversa de binarios de aplicaciones Android. Puede decodificar los recursos de forma casi original y reconstruirlos, después de hacer algunas modificaciones, que hace posible depurar código smali paso a paso. También hace más fácil trabajar con la aplicación debido a la estructura de archivos en proyectos y con la automatización de algunas tareas repetitivas como la construcción de apk.

AndroidStudio, IDE para el desarrollo de aplicaciones Android. Es un entorno de desarrollo integrado (IDE) para el desarrollo de aplicaciones Android, basado en IntelliJ IDEA.  Android Studio ofrece características que mejoran la productividad en la construcción de aplicaciones Android.

ClassyShark, es una herramienta para desarrolladores Android. Permite navegar de forma fiable a través de un archivo ejecutable Android y mostrar información importante como: las interfaces de clase y los miembros, el recuento de dex y dependencias. Soporta múltiples formatos incluyendo: bibliotecas (.dex, .aar, .so), ejecutables (.apk, .jar, .class) y todos los binarios XMLs Android: AndroidManifest, recursos, diseños, etc.

BurpSuite, es una plataforma integrada para la realización de pruebas de seguridad de aplicaciones web. Sus diversas herramientas funcionan perfectamente para apoyar todo el proceso de: pruebas, cartografía y análisis de la superficie de ataque de una petición inicial, a través de la búsqueda y explotación de vulnerabilidades de seguridad.

Wireshark, es el analizador de protocolos de red más importante del mundo. Permite ver lo que está ocurriendo en una red a nivel microscópico. Es el estándar de facto de la industria y las instituciones educativas.

MARA, marco de análisis de seguridad y ingeniería inversa de aplicación para móviles. Es un conjunto de herramientas comúnmente utilizadas en ingeniería inversa y análisis de aplicaciones para móviles bajo los estándares de OWASP.

FindBugs-IDEA, análisis estático de código de bytes en busca de fallos en el código Java

AndroBugs Framework, escáner de vulnerabilidades de seguridad de Android que ayuda a los desarrolladores y pentesters a encontrar posibles vulnerabilidades de seguridad en aplicaciones de Android.

Metasploit, es un proyecto de código abierto de seguridad informática que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración "Pentesting" y el desarrollo de firmas para sistemas de detección de intrusos.

Laboratorios.

DIVA Android, es una aplicación diseñada expresamente para ser insegura. El objetivo de la aplicación es enseñar a los desarrolladores profesionales, defectos que generalmente están presentes en las aplicaciones, generalmente debido a prácticas de codificación pobres o inseguras.

InsecureBankv2, ese una aplicación Android hecha para entusiastas de la seguridad informática y desarrolladores para aprender las inseguridades de aplicaciones de Android. Su componente de servidor de fondo está escrito en Python. El componente de cliente es decir, el InsecureBank.apk para Android se puede descargar junto con la fuente.

DroidBench, es un conjunto de pruebas de codigo abierto para evaluar la eficacia de las herramientas de análisis específicas para aplicaciones Android.  La suite se puede utilizar para evaluar los análisis tanto estáticos como dinámicos, pero en particular, contiene interesantes casos de prueba para problemas de análisis estático (sensibilidad de campo, la sensibilidad de objetos, ventajas y desventajas en longitudes de vía de acceso, etc.), así como modelar correctamente el ciclo de vida de una aplicación, manejo de devoluciones de llamadas asincrónicas e interaccionar con la interfaz de usuario.

GoatDroid, es un entorno de formación totalmente funcional y autónomo para educar a los desarrolladores y probadores de seguridad de Android. GoatDroid requiere dependencias mínimas y es ideal tanto para principiantes como para los usuarios más avanzados.

Sieve, un gestor de contraseñas de aplicaciones, que muestra algunas vulnerabilidades comunes de aplicaciones Android.

Más información y descarga de AndroL4b:
https://github.com/sh4hin/Androl4b

miércoles, septiembre 07, 2016

Herramienta de código abierto para la prueba y Hardening de clusters de alta disponibilidad.

Dentro de la seguridad informática la disponibilidad es un factor muy importante que normalmente se le suele menospreciar. Entendemos por disponibilidad a la garantía de que los usuarios autorizados puedan acceder a la información y recursos de red cuando los necesiten. La disponibilidad es un factor imprescindible un cluster.


Message Simulator es una herramienta de automatización de pruebas para ayudar a: validar un cluster de alta disponibilidad, el rendimiento y la capacidad de recuperación.

Este proyecto permite la simulación de carga de tráfico operativa normal de mensajería, con la posibilidad de someter el cluster a los acontecimientos externos, en tiempo real. Esta herramienta puede ayudar a predecir e identificar los cuellos de botella que pueden producir una interrupción en el cluster que afecte a la disponibilidad del mismo. El enfoque de esta versión inicial es para los clústeres RabbitMQ con la capacidad de soportar en el futuro: Redis y ZeroMQ.

Esta herramienta está implementado en Python 2.7 con archivos JSON. El objetivo es que la creación simulaciones de mensajes fáciles de ejecutar modelados en JSON para ayudar con el endurecimiento de cola de mensajes.

Esta herramienta permite la siguientes simulaciones:

La realización de simulaciones de carga.

Para ejecutar las simulaciones de carga se utilizan los archivos JSON incluidos en el directorio del proyecto “./simulations/rabbit/load/” .

Estas pruebas se centran en la creación de una carga constante y predecible en el cluster. Y son el primer paso en la preparación de un grupo para la producción.

Simulaciones de alta disponibilidad (HA).

Para realizar las simulaciones de alta disponibilidad (HA) se utilizan los archivos JSON incluidos en el directorio "./simulations/rabbit/ha/”. Para los clusters no acoplables a RabbitMQ, estas simulaciones requieren ssh sin contraseña de inicio de sesión con la capacidad de funcionar como root en el host remoto para poder ejecutar “sudo service rabbitmq-server stop|start”.

Estas pruebas son para probar: la capacidad de recuperación de un cluster, la durabilidad, la persistencia, la manipulación del cliente, herramientas de monitorización y determinación de los procesos de manejo de interrupción cuando se producen eventos fuera de funcionamiento normal.

La realización de simulaciones de estrés.

Para ejecutar las simulaciones de estrés se utilizan los archivos JSON incluidos en el directorio “./simulations/rabbit/stress/”.

Las simulaciones de estrés se centran en la creación de entidades que se subrayará la agrupación de maneras inesperadas. La primera prueba se crea un único intercambio Fanout que tiene más de 150 colas asociadas a ella y luego se bifurca en 10 procesos de edición independientes que ayudarán a publicar mensajes en el mismo intercambio, al mismo tiempo. El objetivo es que no exceda la capacidad de su grupo, pero buscar estrés de procesamiento y los recursos del cluster interno para ver cómo esta tensión interna afecta a las herramientas de supervisión y lo más importante, donde se producirán cuellos de botella para los clientes.

Más información y descarga de Message Simulator:
https://github.com/GetLevvel/message-simulator