math

Rust para Windows

Hace un tiempo he estado trabajando con Rust, un potente lenguaje de programación que tiene la promesa de reemplazar el uso de C++, pero al parecer tiene pinta de, además, ser un serio competidor de C#, de hecho, Microsoft recientemente puso a disposición Rust for Windows, que permite a los desarrolladores Rust tener acceso a toda la superficie API de Windows, lo que permite aprovechar fácilmente la potencia y la amplitud del desarrollo Window.
Me gusta mucho desarrollar en Unix, pero debo reconocer que la mayor parte del tiempo debo trabajar con Windows y es bueno tener un ambiente de desarrollo en este sistema también, además, es la plataforma en la que aprendí a programar hace varios años ya.
Microsoft ha dispuesto varios Documentos sobre el desarrollo con Rust en Windows. ¡También hay un nuevo video de introducción para aquellos que quieran sumergirse! Para obtener más información sobre el proyecto, consulte el repositorio de Github de Rust paraWindows, además hay un curso para iniciantes en Microsoft Learn.

‎La Comisión Europea adopta nuevas herramientas para el intercambio seguro de datos personales‎

Me gusta mucho el trabajo que ha hecho hasta ahora la UE y refleja fielmente los estándares de privacidad y protección de datos que necesitamos en Chile.
Estas nuevas cláusulas vienen a complementar y fortalecer el Reglamento General de Protección de Datos (RGPD) que de manera indirecta debemos considerar y cumplir muchas veces en el compliance corporativo aunque estemos fuera de Europa, pero que sin embargo, la certeza jurídica ayuda mucho al momento de tomar decisiones complejas al interior de las empresas.
Otro tema importante es que estas nuevas herramientas ofrecen, especialmente a las PYMES, una forma clara para dar cumplimiento de los requisitos para las transferencias seguras de datos seguras porque normalmente la ciberseguridad es tratada solo como un problema de grandes corporaciones y se deja o se olvida la complejidad de las pequeñas y medianas empresas para poder elevar sus estándares de seguridad. Es una gran noticia.
Más información aquí, aquí y aquí.

Liderazgo ejecutivo



El liderazgo ejecutivo en ciberseguridad no dista mucho del liderazgo ejecutivo de cualquier actividad, ya sea esta en una empresa o una organización sin fines de lucro, una gran corporación o incluso la dirección académica. Cuando se comienza en ciberseguridad (o en cualquier otra área, ya lo dije) normalmente se parte desde cuestiones técnicas y operacionales, bien específicas y con destrezas adquiridas en un curso universitario o en un curso de certificación, sin embargo, el liderazgo ejecutivo es un arte que es un poco más complejo de adquirir y formar, porque más que resultados tangibles, por ejemplo, con un teclado en mano, los resultados son de más de alto impacto y establecer los objetivos que debe alcanzar una organización o una gerencia en particular conlleva la combinación de experiencia técnica, de gestión, operacional y que se mezcla con la experiencia, los aciertos y fracasos en el desarrollo profesional, la cultura organizacional, la toma de decisiones y la capacidad de negociación, por lo tanto, no es un conocimiento que se adquiere así nada más, en un MBA o en un curso de certificación, es más bien, el resultado de las batallas que se han librado en la vida particular y profesional, una mezcla de conocimiento, experiencia e intuición que deben estar equilibradamente combinado.


En el libro El Arte de Dirigir de Carla Curina Cucchi y Maurizio Grassi se trata varios estos temas. Leer el libro no te transformará en un líder nato, pero si te ayudará a identificar bajo tu experiencia, valores y cultura personal y organizacional algunos puntos de interés que te pueden ayudar a separar lo importante, de los menos importante y a dar, en cierta medida, el impulso que necesitas para llegar a tu siguiente nivel.

Referencia:
Curina, Cucchi, Carla, and Maurizio Grassi. El arte de dirigir, De Vecchi Ediciones, 2016.
Amazon: https://www.amazon.com/dp/1683257960/ref=cm_sw_r_tw_dp_62AC4XQKD46RHWB0X8NR

ROP sin retorno

Hovav Shacham introdujo return-oriented programming (ROP) en 2007 para la arquitectura x86, luego ese trabajo se amplió a otras arquitecturas. En un ataque ROP tradicionalmente, las secuencias de instrucciones se eligen para que cada uno termine en una instrucción ret, que, si el atacante tiene el control del stack, transfiere el flujo de una secuencia a la siguiente. Basado en las técnicas de programación orientadas al retorno, Hund et al. propuso un rootkit ROP, que aprovecha el código existente en el kernel de Windows, de esta manera, puede eludir los mecanismos de protección de integridad del kernel, por ejemplo, NICKLE y SecVisor.
Los ataques de return-oriented programming (ROP), utilizan muchas instrucciones de retorno en las secuencias de instrucciones; por otra parte, ejecuta las instrucciones ret pero sin la llamada correspondiente; y por último, los programas ROP están totalmente instalados en la stack, en función de la cual controlan el flujo.
Hay tres mecanismos propuestos por los investigadores para detectar y contener ataques orientados al retorno (ROP).
El primer método sugiere una defensa que busca flujos de instrucciones con retornos frecuentes. Estas técnicas detectan ROP basados en la presunción de que ROP aprovecha el gadget que contiene no más de 5 instrucciones, y el número de gadgets contiguos no es menor que 3.
Otro enfoque propone una defensa que se basa en el hecho de que las instrucciones orientadas al retorno producen un desequilibrio en la relación de instrucciones call y ret ejecutadas. Aquí también se propone un método basado en hardware mediante el uso de un shadow stack de direcciones de retorno para detectar ROP. Con la misma idea, ROPdefender utiliza un método basado en software.
Un tercer mecanismo propone un retorno sin kernel (return less kernel). E igualmente existen otras propuestas basadas en compilador, que elimina la instrucción ret durante la compilación del programa.
Alternativamente, Ping Chen y otros señalan que es posible realizar rootkit de programación orientado al retorno con las secuencias de instrucciones que terminan en jmp y que para ciertas clases de errores de memoria, es posible que un atacante pueda controlar el flujo de control del kernel sin ejecutar ni un solo retorno. Además, debido a que es posible lanzar un ataque sin retorno, las defensas que monitorean el desequilibrio en la relación de instrucciones ret y call que sin ser efectivas y no detectan los ataques.
Además, el kernel sin retorno no elimina el gadget que termina en instrucción jmp, que puede ser aprovechado para construir el rootkit ROP sin retornos. El trabajo de Ping Chen, Xiao Xing, Bing Mao, y Li Xie hace las siguientes tres mayores contribuciones:
–             Propone un root basado en return-oriented programming sin retornos: en vez de encadenar los gadgets ROP juntos por la instrucción ret, el control se pasa alternativamente al siguiente gadget por la instrucción jmp. A diferencia de las propuestas ROP originales, este método evita ejecutar rets que no coinciden con call, por lo tanto, elude IDSes que se basan en este comportamiento.
–             Busca en el código binario de linux-2.6.15, y extrae los gadgets que terminan en "jmp". El conjunto de gadgets se puede utilizar para hacer cualquier cosa posible con código x86, y haciendo referencia a Turing-complete Language Brainfuck, de esta manera demuestran que la programación orientada al retorno sin retorno es Turing completa.
–             Construyen ROP rootkit mediante el uso de los gadgets sin retornos, y el rootkit se puede aprovechar para eludir no sólo los mecanismos de comprobación de integridad del kernel más sofisticados (por ejemplo, NICKLE o SecVisor), sino también, los mecanismos de defensa ROP recientemente propuestos (por ejemplo, kernel sin retorno).
Este paper es muy bueno respecto de la técnica presentada, pero los mismos autores señalan la solución a este problema. Las herramientas de defensa ROP existentes se pueden modificar un poco para detectar el shell JOP con instrucciones "call" independientes mediante el monitoreo del desequilibrio del stack "call-ret". En este trabajo usan el gadget que termina en "jmp" para eliminar "call" o "ret" independiente. Además, demuestran que este tipo de ataque son Turing-completo.
¿Esto deja espacio para que JOP attack siga siendo interesante?, no lo sé, esto lo sabré cuando lea el artículo de Bletsch et al.
Referencias:
[1]P. Chen, X. Xing, B. Mao, L. Xie, X. Shen, y X. Yin, «Automatic Construction of Jump-Oriented Programming Shellcode (on the X86)», en Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security, New York, NY, USA, 2011, pp. 20-29. doi: 10.1145/1966913.1966918.

Cuantificando los estudios

Hace un ar de días comenté que estaba en un proyecto de quatified self, ahora ya estoy tomando registro de algunas actividades y también, como es lógico, leyendo respecto de actividades que hayan realizado otras personas en algún momento.
Ahora el leído un artículo titulado "Engineering education and quantified self: Utilizing a student-centered learning analytics tool to improve student success" en que algunos estudiantes reclutados cuantificaban sus horas de estudio en una universidad y con eso podían determinar el nivel de éxito en algunas asignaturas.
El método utilizado me pareció interesante, sin emabrgo, la investigación no resuelve temas completamente algunos temas que me parecerían impoprtantes. Por otra parte, presenta la herramienta Pettern dentro de su propuesta, sin embargo, al visitar el sitio web, esta ya no está dosponible en línea.

De todas maneras la investigación propone nuevos estudios a realizar para resolver temas inconclusos, por loq ue se puede seguir creciendo en el conocimiento respecto del rendimiento académico.

Referencia:

[1]
B. X. Karcher, B. M. Holloway, y B. Pierson, «Engineering education and quantified self: Utilizing a student-centered learning analytics tool to improve student success», 2019. [En línea]. Disponible en: https://www.scopus.com/inward/record.uri?eid=2-s2.0-85078733756&partnerID=40&md5=d9868308a866963c5d1e388cc0a858a2
math

Quantified Self

Hoy comienzo un proyecto personal en el que cuantificaré ciertos parámetros de mi vida con el único objetivo de saber más sobre la actividad diaria y si puedo mejorar algunos aspectos de salud.
Como buen nerd, me estoy documentando respecto de distintos dispotivos de cuantificado que me pueden ayudar y como es que estos pueden ser utilizados de mejor manera.
Personalmente pienso que la mayor barrera para mantenerse en esta actividad tiene que ver con las capacidades de los dispositivos, pues, para cuantificar algunas actividades se necesita más de un dispositivo, por lo tanto, hay que descargar y tratar los datos por separado, por lo tanto se pierde la automatización. Otro elemento al que me gustaría acceder alos datos es a Microsoft Insights, los datos de esa plataforma deben ser muy interesantes.
Para comenzar este trabajo está bien interesante respecto de la cuantificación y ciencia personal.

Dulaud, P.; Di Loreto, I.; Mottet, D. Self-Quantification Systems to Support Physical Activity: From Theory to Implementation Principles. Int. J. Environ. Res. Public Health 2020, 17, 9350. https://doi.org/10.3390/ijerph17249350
Resumen:
Desde la aparición del auto-movimiento cuantificado, los usuarios apuntan al cambio de comportamiento de salud, pero sólo aquellos que están suficientemente motivados y competentes con las herramientas tendrán éxito. Nuestra revisión de la literatura muestra que existen modelos teóricos para el yo cuantificado, pero son demasiado abstractos para guiar el diseño de sistemas de soporte al usuario eficaces. Aquí, proponemos principios que vinculen la teoría y la implementación para llegar a un modelo jerárquico para un sistema de auto-cuantificación adaptable y personalizado para el apoyo a la actividad física. Mostramos que este enfoque de modelado debe incluir un modelo de usuario multiconstimen (actividad, contexto, personalidad, motivación), una jerarquía de escalas de tiempo múltiples (semana, día, hora) y un análisis de decisiones multi-criterios (preferencia de actividad del usuario, actividad medida por el usuario, parámetros externos). Esta base teórica, que debería facilitar el diseño de soluciones más eficaces, ahora debe ser validada por una investigación empírica adicional.‎

‎Los nuevos defectos de Spectre en las CPU de Intel y AMD

En algunas ocasiones me preguntan cuales son mis hackers favoritos, mi respuesta común es que, mis hackers favoritos son los que inventan nuevas técnicas de explotación, así, el hacker es el que inventó el ataque y llegó primero a esta explotación, por ejemplo SQL Injection, los demás solo aprendimos la técnica y la replicamos.
Uno de mis ataques favoritos es Spectre, y Meltdown‎‎ por su puesto, cuyos investigadores hoy son reconocidos por la complejidad de su descubrimiento que hasta el día de hoy.
“La divulgación de ‎‎Spectre y Meltdown‎‎ abrió una especie de ‎‎compuertas,‎‎ lo que con ‎‎infinitas‎‎ ‎‎variantes‎‎ de los ‎‎ataques‎‎ que salen a la luz en los años intermedios, incluso cuando fabricantes de chips como Intel, ARM y AMD se han esforzado continuamente por incorporar defensas para aliviar las vulnerabilidades que permiten que el código malicioso lea contraseñas, claves de cifrado y otra información valiosa directamente desde la memoria del kernel de un ordenador”.‎
‎Ahora un equipo de académicos de la Universidad de Virginia y la Universidad de California en San Diego, Xida Ren, Logan Moody, Matthew Jordan, Dean M. Tullsen, Ashish Venkat, Mohammadkazem Taram han descubierto una ‎‎nueva línea de ataque‎‎ que evita todas las protecciones actuales de Spectre integradas en los chips, poniendo potencialmente casi todos los sistemas —computadoras de escritorio, computadoras portátiles, servidores en la nube y teléfonos inteligentes— una vez más en riesgo tal como estaban hace tres años., eso incluye la elusión de LFENCE, sistema de defensa propuesto por INTEL.
Aquí la noticia. New Spectre Flaws in Intel and AMD CPUs Affect Billions of Computers (thehackernews.com)
Aquí el paper https://www.cs.virginia.edu/~av6ds/papers/isca2021a.pdf

Certificaciones y la generación de competencias


Figura N° 1. Niveles de especialización en ciberseguridad
En Chile como en todo el mundo ha surgido la necesidad de contar con profesionales de ciberseguridad capacitados y entrenados para asumir distintos roles y funciones, muchas veces, sobre todo los recien iniciados se ven en la necesidad de identificar que guía o punto de entrada asumir. Este paper creo que es clarificador respecto de las certificaciones, su rango de aplicación y hace mención además a los mecanimos académicos como formadores de competencias.
Antes de tomar una certificación, diplomado o carrera especialista en estos temas debe leer este trabajo.

Referencia
Steven Furnell, The cybersecurity workforce and skills, Computers & Security, Volume 100,
2021, 102080, ISSN 0167-4048,

Linux prohíbe a la Universidad de Minnesota seguir contribuyendo al kernel

Esta polémica está entretenida, Greg Kroah-Hartman, que es uno de los jefes del equipo de desarrollo y mantenimiento del kernel de Linux, ha prohibido a la Universidad de Minnesota (UMN) seguir contribuyendo al kernel de Linux, esto debido a que la Universidad había introducido parches cuestionables en el núcleo de Linux, lo interesante es que esos parches maliciosos son parte de una investigación en seguridad ofensiva de un grupo de estudiantes de doctorado de la Universidad, este trabajo de investigación denominado "Sobre la viabilidad de introducir sigilosamente vulnerabilidades en software de código abierto a través de confirmaciones hipócritas" en la que la universidad habría introducido una vulnerabilidad Use-After-Free (UAF) para probar la susceptibilidad de Linux causando el disgusto a Greg Kroah-Hartman y en respuesta  el ha decidido prohibir a la Universidad hacer más contribuciones.
Aquí un poco de la noticia farandulera.
Aquí un paper derivado de la investigación.
Y aquí un poco de los comentarios de la comunidad.

El Green IT

Hace mucho tiempo en una compañía eléctrica se propuso bajar la huella de carbono reemplazando muchos servidores físicos y ser reemplazados por servidores virtuales – En aquella época era recién una tendencia – resulta que hoy esta tendencia de la virtualización es la nueva norma, sin embargo, el Green IT se ha transformado en una necesidad, muchas empresas se dan cuenta de que el futuro y el verdadero crecimiento radican en ser responsables con el medio ambiente. El enorme potencial y el impacto de la sostenibilidad en áreas tan relevantes para la empresa han impulsado distintas prácticas de TI verde.
En este paper los autores han perfeccionado y mejorado el "Marco de ‎‎gobernanza y gestión para ti verde"‎‎ (GMGIT 1.0) que ellos mismos había desarrollado anteriormente y han sacado el modelo GMGIT 2.0, ‎‎a través de este framework  se establecen todas las características y componentes que las organizaciones deben considerar al implementar la TI verde, desde la gobernanza y la gestión de esta área. ‎‎
‎Los resultados obtenidos demuestran la aplicabilidad, utilidad y coherencia del GMGIT 2.0 al llevar a cabo la implementación, auditoría y mejora de la TI verde. Además, gracias a esta nueva versión del marco han conseguido resolver los problemas encontrados durante las validaciones realizadas con el GMGIT 1.0.
Creo que es un buen documento que facilita el desafiante proceso de bajar la huella de carbono en el área TI.‎
Referencias:
J. David Patón-Romero, Maria Teresa Baldassarre, Moisés Rodríguez, Per Runeson, Martin Höst, Mario Piattini,
Governance and Management of Green IT: A Multi-Case Study, Information and Software Technology, Volume 129,
2021, 106414, ISSN 0950-5849, https://doi.org/10.1016/j.infsof.2020.106414. https://www.sciencedirect.com/science/article/pii/S0950584920301749