jueves, 11 de septiembre de 2014

Informática Forense





Es una realidad que cada vez está más instaurado en nuestra sociedad el cybercrimen y es por eso que de forma paralela crece la necesidad de evolucionar entorno a la investigación de incidentes de seguridad. La Informática forense nació como una herramienta clave en los procesos judiciales a causa de la necesidad de aportar pruebas de ámbito tecnológico que demuestren , ya sea como objetivo final, o como medio , que se ha cometido una infracción de seguridad por parte de un intruso y en la mayoría de los casos, un cybercrimen. Evidentemente la informática forense va mucho más allá de el ámbito judicial, y son muchas las empresas que estñan haciendo uso de esta técnica a nivel profesional.

El análisis de la memoria volátil (RAM) combinado con los tradicionales de memoria persistente es una opción muy robusta y que puede ayudar en gran medida a responder las principales preguntas que se formula el analista y por tanto la organización 

  • que
  • cuando
  • donde
  • quien
  • como
  • porque


Los análisis de memoria volátil tiene diversas ventajas. Principalmente reducen el volumen de datos a investigar pero también nos revela trazas importantes como la información de procesos en ejecución o conexiones activas de red, además, aprovechar la RAM nos permite contrarrestar técnicas anti-forenses.

El auge del crecimiento de dispositivos con sistemas Linux o basados en el kernel del mismo (por ejemplo Android) ha echo aumentar el numero de ataques a estos sistemas, y por tanto, en consecuencia, aumenta también la necesidad de combatir estos ataques.. 

El proceso se divide en 3 partes, primero 

  1. Volcado de Memoria (Conseguir una imagen completa de la memoria RAM). 
  2. Análisis de la Memoria (a partir de diversas herramientas, el investigador puede analizar la memoria obtenida en el paso anterior).
  3. Conclusiones (donde se establecen las respuestas a las preguntas iniciales que el investigador persigue responder).

Vamos ahora a repasar estas tres fases empezando por el volcado. El módulo del kernel fmem crea un nuevo pseudo-dispositivo en tiempo de ejecución en /dev/fmem lo cual es una gran ventaja sobretodo en clientes que necesiten que la actividad empresarial no se pare y se obtengan los datos necesarios para el análisis forense en tiempo real y a partir de ahí pueda seguir con normalidad el funcionamiento de la empresa. Crash y volatility son dos módulos kernel para este propósito y para sistemas android podemos disponer de la herramienta de volcado LIME, para hacer un volcado de la memoria volátil en la tarjeta SD o sobre la red local. Me ha parecido una gran solución el volcado desde máquinas virtuales, ya que es cierto que pausando la maquina se puede obtener el volcado de memoria que existía en ese preciso instante y además, está a la orden del día el exponencial uso de servicios cloud, con el respectivo aumento del uso de maquina virtuales en la nube y susceptibles de poder ser atacadas. Si la evolución de los entorno SAAS y cloud computing sigue en auge el volcado de memoria se podrá simplificar en un futuro.
Bajo mi punto de vista la mejor herramienta en la fase de Análisis es Volatility, la herramienta utilizada como testing , y parece que los resultados que ofrece son excelentes, siendo considerada la mejor herramienta para el análisis de RAM en Linux. Volatility ofrece unos 35 plugins diferentes, de los que por ejemplo destacan la posibilidad de mostrar las conexiones activas de red o mostrar todos los módulos de kernel cargados. Por ejemplo, analizando y generando el volcado de memoria de la imagen de disco victoria-v8.sda1.img se observó como el intruso utilizó netcat para transferir datos por la red e incluso se identifica su ip gracias al plugin linux_netstat.


Definitivamente podemos afirmar que existen herramientas de mucha utilidad para realizar análisis forense de un sistema informático. Después de los datos aportados considero que es básico poder realizar el volcado/análisis de memoria Ram y que tiene muchas ventajas y aceleran el proceso de investigación.

miércoles, 10 de septiembre de 2014

Filosofia de Diseño DCU


Introducción


Mi propósito en este artículo es introducir DCU desde un punto de vista teórico-práctico, peor sobretodo incidir en que es una técnica que me ha sido de gran utilidad en la creación de proyectos.
Antes de Comenzar cualquier proyecto de software es importante determinar qué filosofía de diseño se llevará a cabo, en este caso se ha escogido una filosofía de diseño DCU (Diseño Centrado en el Usuario), ya que se pretende que las aplicaciones resultantes puedan resolver necesidades concretas de los propios usuarios, consiguiendo de esta forma una mayor satisfacción y una experiencia de uso con el mínimo esfuerzo por parte de estos.




La mayoría de los procesos que hacen Diseño Centrado en el Usuario suponen las siguientes etapas: 

Etapas

  • Conocer a fondo los usuarios finales, deberemos definir un 'target' y analizar si se ajusta bien a el modelo de aplicación que se quiere desarrollar. 
  • Diseñar un producto que resuelva sus necesidades y se ajuste a sus capacidades, expectativas y motivaciones
  • Poner a prueba el diseñado, normalmente usando test de usuarios 


El motivo de la elección de este tipo de Metodología es evidente, se está destacando constantemente desde distintos medios la importancia de las aplicaciones móviles en la sociedad actual, es evidente como ha aumentado su utilización en el día a día de los usuarios, por lo tanto,, si existe un elemento importante en esta ecuacuón,es la experiencia de usuario y sin olvidarse de la usabilidad, ambos son factores muy importantes. 
La clave del diseño DCU, es que se debe tener en cuenta el usuario en todas las fases de creación de los aplicativos, para empezar en un proceso previo de 'brainstorming' ya se ha tenido en cuenta del usuario considerablemente 





Características


A continuación vamos a listar las principales características comunes de la mayoria de patrones DCU, no existe una pauta única para desarrollar esta filosofia de proyecto pero si que se pueden agrupar diversos puntos que deben coincidir si queremos basarnos en el diseño DCU de forma correcta.

  • Está orientado a los usuarios del producto, que participan durante todo el proceso.
  • Se aplica durante todas las fases del desarrollo.
  • Iterativo
  • Multidisciplinar
  • EL objetivo principal és la usabilidad, siempre orientada hacia el usuario.

Aplicando DCU


Creo que es de gran utilidad conocer algunas herramientas o fuentes de datos que nos permitan augmentar nuestra productividad utilizando herramientas,m y ene ste caso no iba a ser menos.
A continuación vamos a alejarnos de los estándares ISO y a centrarnos en algunos proyectos que se han basado en ellos pero con un enfoque mucho más práctico:

UsabilityNet
Proyecto fundado por la Union europa para promover usabilidad y diseño centrado en el usuario. En su web Podemos encontrar herramientas muy útiles y es interesante el echo de que podemos enfocar nuestro producto desde diferentes perfiles ( global organisations, local groups,etc...).
De las herramientas me gustaria destacar la 'Methods Table' dond epodemos seleccionar los métodos más apropiados en función de tres condiciones:

  • Tiempo/recursos limitados
  • Sin acceso directo a los usuarios
  • Experiencia/habilidades limitadas




Trump
El proyecto TRUMP define 10 métodos concretos a partir de ISO 13407

  1. Reunión con los interesados
  2. Contexto de uso
  3. Escenarios de tareas
  4. Evaluar sistema existente
  5. Requisitos de usabilidad
  6. Prototipado en papel
  7. Guías de estilo
  8. Evaluar prototipo
  9. Evaluación de la usabilidad
  10. Recopilar opinión



Usability Planner
Basándose en ISO PAS 18152, se trata de una herramienta web, podemos seleccionar que métodos vamos a usar para dar soporte a un diseño centrado en el usuario. Opcionalmente, usability planner nos permite priorizar las etapas del projecto en las cuales queremos máximizar la usabilidad. Vamos a ver un screenshot de la propia web con las incipales etapas: