Comienza el Curso de Perito Telematico Forense de la UDIMA

El 19 de Septiembre, tuve el placer de participar como ponente en las clases presenciales que inauguraban la edición 2014 del Curso de Perito Telemético Forense de la Universidad a Distancia de Madrid (UDIMA) con la presencia de 120 alumnos, entre expertos informáticos, profesionales del derecho informático y telemático y cuerpos y fuerzas de seguridad del estado. La Asociación Nacional de Tasadores y Peritos Judiciales, a la que pertenezco, participa en su elaboración junto con la UDIMA en la Cátedra conjunta ANTPJI-UDIMA.

curso_antpji

Mi ponencia trató sobre el Análisis Pericial de Dispositivos Móviles,  la verdad es que fue una experiencia enriquecedora y tengo que agradecer a todos los allí presentes su atención y excelente trato. Cuando se organizan este tipo de cursos no me gusta ir solo a dar mi parte e irme, suelo aprovechar para asistir como oyente al resto de ponencias y en este caso no iba a ser menos, sobre todo visto el nivel impresionante de los ponentes.

Podéis consultar el programa del curso, en el que aparecen dichos ponentes. Fueron todas interesantísimas y el nivel de los ponentes muy alto, pero me parecieron especialmente destacables las impartidas por:

  • D.Ángel Bahamontes Gómez (Presidente Asociación Nacional de Tasadores y Peritos Judiciales Informáticos) sobre ¿Qué es un Perito Informático?
  • D. Eloy Velasco Núñez (Magistrado Juez de la Audiencia Nacional) con “Aspectos jurídicos de la prueba electrónica”, quien además de Juez es un auténtico experto en tecnología.
  • D. Roberto Peña Cerdeña ( Director de Centro de Operaciones de Seguridad SOC y Supervisor del Equipo de Respuesta ante Incidentes de Seguridad Informática CSIRT, para administración pública y privada) con la ponencia “Análisis forense avanzado en entornos distribuidos”. Me descubrió un mundo nuevo respecto a como se pueden capturar trazas de red  y convertirlas en pruebas electrónicas válidas en sede judicial.
  • D. Óscar Sánchez-Crespo Giménez (Gerente de Comunicación Gestual) sobre “Perito judicial en Microexpresiones faciales” , si, habeis leído bien…fue sorprendente e interesante a la par.

IMG_20140919_202038

  • D. Fernando de la Cuadra (Director de educación ESET) con su ponencia “No he sido yo Sr. Juez. ha sido un virus” sobre malware en general y  como este puede invalidar evidencias electrónicas.
  • Doña María Luisa Maroto López (Perito Judicial Titular de Bienes Muebles y Delitos contra la Propiedad Industrial e Intelectual y Coordinadora de la Oficina de Peritos Judiciales adscrita al Decanato de Madrid) con su ponencia “Como actuar en la defensa de nuestra pericial en Sala”. Que buena fue esta, además de ilustrativa es que fue muy amena, hay gente que nace con un don para comunicar.
  • D. José Díaz Cappa (Fiscal Coordinador CCAA Islas Baleares – @josediazcappa) con la ponencia “Periciales informática y menores: Aspectos jurídico – técnicos básicos“.
  • D. Francisco Javier Marques Pons @javimarquespons ) con “Seguridad en redes telemáticas y redes sociales con ejemplos periciales reales”.

 

Gracias a todos, resto de ponentes  y asistentes.


 

 

Programación IOS… ¿que es Swift?¿y ahora que? Pros y contras

Hace unas semanas Apple nos sorprendió a todos anunciando el lanzamiento/adopción de SWIFT,  un nuevo lenguaje para los desarrollos que se hagan  a partir de IOS 8.  La idea de Apple detrás de este lanzamiento es la de proporcionar a su comunidad  un lenguaje de programación mas potente, flexible, seguro y sencillo de codificar. Para apoyar el anuncio pusieron a disposición de todos un documento de más de 500 paginas ( “The Swift Programming Language” ) descargable gratuitamente  a través de iTunes para que nos pudiéramos ilustrarnos e inicianosr en el mismo.  Además han lanzado un blog para ayudarnos paso a paso a aprender a programarlo.

Después de mucho leer sobre el tema y de empezar a trastear con el, y ya que estamos con una serie de entradas sobre desarrollo IOS,  no quería dejar pasar la ocasión  de comentar mis primeras (primerísimas) impresiones. Sobre todo intentaré poner el foco en las ventajas y desventajas que le veo respecto a lo que la comunidad de desarrolladores IOS estábamos utilizando hasta el momento.

 

Objetive C Vs Swift

 

¿Por que SWIFT?

Con la introducción en los últimos años de novedades como “Automatic Reference Counting”  (bendito ARC), el uso de Storyboards (en vez de .xib) y el uso de Autolayaouts, a mi humilde entender,  Apple ya había simplificado bastante el proceso de desarrollo en aquellas cosas que eran realmente tediosas. ¿Por que ahora esto? Sinceramente creo que Apple pretende simplificar el proceso al máximo, acercándolo a mas y mas gente a base de eliminar la necesidad de manejar elementos y patrones complejos como pudieran ser los punteros, referencias, etc.

 

Compatibilidad

Lo primero que me vino a la cabeza cuando lo estaba leyendo era la compatibilidad. ¿Será compatible con Objetive C? ¿Podrán convivir juntos? Según Apple la respuesta es sí, usará el compilador LLVM de Apple así que su idea es que ambos sean compatibles y convivan de manera que nuestra adaptación se pueda ir haciendo paulatinamente a la vez que los nuevos desarrolladores empiezan a programar IOS con las ventajas de Swift y sin conocimientos de Objetive C. Los desarrolladores que tenemos ya cierta experiencia en una tecnología solemos tener alergia a estos cambios, no por no reciclarnos (eso forma parte de la belleza de esta profesión) sino porque nos horroriza la posibilidad de tener que tirar a la basura nuestras librerías de código. Es por esto que le auguro un lento aterrizaje, por ejemplo yo mismo no me voy a lanzar como un loco a programar en Swift a menos que sea necesario, iré probándolo, usándolo en algunos desarrollos  y adaptando mis librerías poco a poco, sin traumas.

 

Novedades interesantes

Así a primera vista lo que mas me ha llamado la atención es el Developer Playground. Viene a ser un entorno de desarrollo interactivo en el que según vas desarrollando puedes ir viendo los estados de las variables, la salida del programa, un timeline y resultados en tiempo real, sin la necesidad de hacer “debug”. La verdad es que suena bien y esto si que me tienta…

 

Developer Playground

 

¿Diferencias?

Pues todas. La verdad es que con un primer vistazo ya se aprecian diferencias muy notables, Swift a primera vista se me parece mucho mas a lenguajes tipo scripting  como Python o Ruby que a Objetive C con lo que podéis imaginar que las diferencias darían para un montón de posts.  Partiendo de esa base y de que sintácticamente no se van a parecer demasiado, en este post simplemente los enfrentaré en líneas generales.

 

    • Potencia y rendimiento: Sin duda aquí Swift se lleva la palma, posee un nivel de abstracción mayor que Objetive C y, por lo tanto, el rendimiento es mejor.

  • Seguridad: Según Apple Swift es más seguro que Objetive C. Es bastante razonable pensar que pueda ser así, al ser mas estricto e interactivo, igualmente Objetive C viene derivado de Small (años 70) con lo que la afirmación de Apple es bastante verosímil.
  • Sencillez y curva de aprendizaje: En este punto voy a llevar la contraria a Apple. Después de un primer vistazo, por lo menos a mi,  no me parece que sea mas sencillo de aprender ni mucho mas intuitivo que Objetive C, más bien al revés.

 

swift-objective-c

 

En cualquier caso esto es solo una primerísima aproximación. De momento Swift es una sombra en la lejanía que llegará en los próximos meses pero, si Apple cumple con su promesa de compatibilidad y coexistencia pacifica con Objetive C,  supongo que su adopción por parte de la comunidad de desarrollo será lenta y gradual. Al menos yo intentaré aterrizar en Swift pasito a pasito e iré adaptándome y adaptando mis librerías de código poco a poco, sin traumas.

Revive tu Smartphone o Tablet Android. ¡Custom ROM y actualiza a última versión!

¿No os habéis preguntado porque vuestra marca de smartphone o tablet de repente deja de enviar actualizaciones de la versión de android? Suele curiosamente coincidir con que sale una nueva serie de móviles o tablets de la marca. De repente las nuevas revisiones de Android dejan de ser “soportadas” por vuestro ex-flamante smartphone pero…¿como puede ser eso si tiene “solo” un año y pico,  me costó trochocientos euros y 3 cadenas perpetuas de permanencia? Los mas bien pensados argumentan que el hardware se queda antiguo y ya no soporta el sistema, que este es muy pesado y la CPU no va a “tirar” con el etc…eso los bien pensados…

Android, hasta el día de hoy, se basa en Linux y cualquiera que conozca un poco Linux sabe que esa afirmación es cuanto menos improbable y cuanto más hilarante.

Los mal pensados creemos que la marca decide dejar de actualizar nuestros terminales para que nos vayamos poco a poco quedando obsoletos, dejemos de recibir mejoras y, hartos, compremos el nuevo terminal de la marca que nos costara otros trochocientosmil euros y otras cuantas cadenas perpetuas de permanencia con la operadora de turno. Siendo mejor pensados podríamos concluir que ha salido un nuevo terminal y el fabricante centra todos sus recursos en el desarrollo para el mismo…en cualquier caso el resultado es que tenemos un dispositivo casi nuevo y la marca no me lo actualiza. Empieza a funcionar peor, las apps dejan de ser compatibles, en fin…un desastre.

Reconozco que yo soy de estos segundos y, por supuesto, como conocedor de Linux en profundidad no me creía la milonga de que el hardware de mi móvil y tablet no fueran a mover fluidamente las ultimas versiones de Android. Por supuesto no me podía creer que, ni mucho menos, fuera a ser imposible encontrar una distribución compatible con mi hardware. Por ello me puse a buscar y tarde aproximadamente 5 minutos en encontrar soluciones.

La solución es pasar de la “Stock ROM” que proporciona la marca de turno a cualquiera de los proyectos de  Android “Custom ROM” que existen. Aquí os dejo un ejemplo de una Transformer como la mía corriendo KitKat con mucha fluidez.

 

¿Que beneficios me aportara?

Pues múltiples, empezando por mayor fluidez, mayor duración de la batería, compatibilidad con las nuevas funciones del sistema operativo, mejor aspecto visual, compatibilidad con las nuevas apps, seguir teniendo acceso a las actualizaciones de Android, etc. Resumiendo….aumentara el rendimiento general de tu móvil ya que por un lado quitaremos aplicaciones y personalizaciones inútiles de fabricante y operador y por otro tendremos actualizado el sistema a la última versión con acceso a todas las mejoras del mismo.

 

¿Qué opciones de Custom ROM existen?

Existen varios proyectos serios y estables de desarrollo de ROMS Android, la oferta es variada y la decisión que tomes vendrá dada por tu análisis sobre lo que ofrecen para tu terminal/tablet, la dificultad de instalación, etc. Los mas relevantes son CyanogenMod (esta fue mi elección para mi Samsung Galaxy S2), AOKPOmniROM y Paranoid Android, todas ellas trabajan sobre Android KitKat (4.4).

Captura de mi Galaxy S2 con ROM Kit Kat 4.4.4 de Cyanogenmod 11

Captura de mi Galaxy S2 con ROM Kit Kat 4.4.4 de Cyanogenmod 11




Vale, muy bonito pero…¿donde esta el truco?

El truco es que, en la mayoría de las ocasiones no es un proceso sencillo y, como todos los procesos de flasheo ROM de cualquier dispositivo conlleva sus riesgos. Yo decidí  hacerlo y asumir el riesgo de quedarme sin terminal y tablet cuando mi fabricante dejo de ofrecerme garantía y el rendimiento de los equipos era, simplemente, inaceptable. La idea era ya que tengo que cambiar si o si, por lo menos pruebo esto antes.   Mi experiencia personal, con un Samsung Galaxy S2 y una tablet de ASUS (TF-101) es que, con CyanogenMod para el Galaxy y KatKiss ROM para la TF-101 y un procedimiento de dificultad media, haciendo las cosas con cuidado en un rato puedes tener cualquier smartphone actualizado a las ultimas versiones de Android.

 

¿Como lo hago?

Antes de lanzaros os recomiendo que valoréis muy seriamente la Custom ROM de Cyanogenmod, si vuestro terminal es compatible yo no dudaría, para mi gusto es el proyecto mas estable, super sencillo de instalar y muy compatible. Podéis consultar si vuestro dispositivo es compatible con Cyanogenmod aquí.

De ser compatible (buenas noticias)  podéis descargar la ultima ROM para vuestro dispositivo aquí.

La mejor noticia de todas es que acaban de sacar Cyanogenmod Installer, que no es mas una app que hara todo el trabajo por ti, olvídate de rootear, recoverys y demas gaitas, la app hará todo el proceso por ti. Esta en fase beta pero si tienes suerte y tu terminal es soportado por el Cyanogenmod installer el proceso sera sencillisimo.

Si no tenéis esa suerte o habéis elegido el camino del dolor o de otra ROM, dependiendo del terminal que tengas y la ROM que elijas será mas sencillo, más complicado o directamente imposible. Hay unos pasos generales  a seguir que os detallo a continuación:

  • Lo primero es conseguir acceso de “root” al terminal. Esto se llama “rootear” el dispositivo. Según la ROM elegida puede llegar a ser muy sencillo, tanto como instalar y ejecutar una app. En el caso de CyanogenMod  así es.
  • A continuación  hacer una copia de todo el terminal por si acaso. Recomiendo Titanium Backup. Aquí os dejo un tutorial estupendo que ha hecho la gente de Fandroides.
  • Posteriormente tenéis que instalar un recovery. En función de la versión a instalar y vuestro hardware será diferente. Esta es la parte quizás más delicada ya que deberéis poner mucho cuidado en elegir el adecuado para vuestro modelo exacto. Aquí debéis poner mucho cuidado y no fallar.
  • Una vez instalado hay que reiniciar el terminal en modo “recovery”. Como siempre, os dejo un enlace a como entrar en modo recovery.
  • En recovery tenemos que hacer un “wipe” del sistema, cache y davik cache.
  • Una vez hecho esto cruzar los dedos e instalar la ROM.
Asus TF-101 Transformer con Rom KitKat 4.4.4 de KatKiss

Captura de mi Asus TF-101 Transformer con Rom KitKat 4.4.4 de KatKiss

Yo lo hice todo hace unos meses, antes de que existiera el Installer de Cyanogenmod, os dejo tutoriales muy completos que son los que yo en su día seguí:

Resumiendo, os lo aconsejo a todos,  yo pasé de estar planteándome cambiar ambos dispositivos a estar encantado de conservarlos. Ahora van muchísimo mas fluidos que antes, tienen casi 3 años y mueven la ultima versión de Android (4.4 en mi caso) sin problema alguno y con bastante mas fluidez que las que proporciona la marca, la sensación en rendimiento y visual es que tengo móvil y tablet “nuevos”.