Ricardo Medel - Academia.edu (original) (raw)
Papers by Ricardo Medel
Resumen Si bien el software libre es claramente beneficioso,útil y hasta necesario para la educac... more Resumen Si bien el software libre es claramente beneficioso,útil y hasta necesario para la educación universitaria en informática, algunas carreras no lo incluyen en sus asignaturas, ni en su práctica ni en su análisis teórico. En este artículo se describe una asignatura de remediación de este problema, cuya primera edición se desarrolló en el año 2015 en la Facultad
XVII Workshop de Investigadores en Ciencias de la Computación (Salta, 2015), May 28, 2015
VIII Congreso Argentino de Ciencias de la Computación, Oct 1, 2002
XVI Workshop de Investigadores en Ciencias de la Computación, May 1, 2014
En el presente trabajo se reportan los resultados preliminares de analizar la ocurrencia de error... more En el presente trabajo se reportan los resultados preliminares de analizar la ocurrencia de errores de programación en el paradigma funcional, cometidos por los alumnos de las carreras de Cs. de la Computación de la UNRC en los exámenes parciales de la asignatura "Programación Avanzada" durante los años 1996 y 1997. Se reconocen y clasifican los errores de programación en el paradigma funcional y se proponen mejoras en el dictado de la asignatura a fin de minimizar la aparición de dichos errores.
Proceedings del WICC
Resumen En elúltimo tiempo Proof-Carrying Code (PCC) ha despertado un gran interés surguiendo num... more Resumen En elúltimo tiempo Proof-Carrying Code (PCC) ha despertado un gran interés surguiendo numerosas líneas de trabajo. PCC establece una infraestructura que permite garantizar que los programas se ejecutarán de manera segura. En esta alternativa, el productor de código adjunta al código móvil una demostración, mediante la cual el consumidor del código puede verificar su seguridad antes de la ejecución del programa. Análisis estático es un técnica con un gran potencial para producir la evidencia necesaria para garantizar código móvil seguro. Basándonos en estas dos técnicas se presenta una arquitectura para garantizar la ejecución de código móvil de manera segura. Además se presenta el prototipo implementado que demuestra la factibilidad del uso de la técnica.
Resumen Si bien el software libre es claramente beneficioso, útil y hasta necesario para la educa... more Resumen Si bien el software libre es claramente beneficioso, útil y hasta necesario para la educación universitaria en informática, algunas carreras no lo incluyen en sus asignaturas, ni en su práctica ni en su análisis teórico. En este art́ıculo se describe una asignatura de remediación de este problema, cuya primera edición se desarrolló en el año 2015 en la Facultad Regional Córdoba de la Universidad Tecnológica Nacional (UTN FRC). Lo novedoso de esta asignatura es que los alumnos, como parte de su cursado, deben participar de una comunidad asociada a un proyecto de software libre previamente existente, analizar su dinámica y realizar una presentación sobre su experiencia.
En este trabajo se presentan las lineas del grupo de investigacion “Procesadores de Lenguajes” pe... more En este trabajo se presentan las lineas del grupo de investigacion “Procesadores de Lenguajes” perteneciente al Departamento de Computacion de la UNRC. Los aspectos fundamentales son la creacion de modelos y herramientas de ultima generacion para la generacion de procesadores de lenguajes incluyendo la generacion de Codigo Movil Seguro. Se resenan los trabajos del ultimo ano que han permitido: construir un generador de analizadores lexicos traductores, construir un generador de evaluadores concurrentes sin comunicacion de gramaticas de atributos, realizar un analisis comparativo de los generadores de procesadores de lenguajes mas usados y de Japlage y definir un lenguaje assembler tipado para la ejecucion segura de codigo movil no confiable. Ademas, se presentan los trabajos iniciados por el grupo destacando la obtencion de un prototipo de un compilador certificante y entorno de ejecucion para Proof-Carrying Code (PCC) – una tecnica para garantizar codigo movil seguro – .
Nowadays, most of web-based software includes heavy usage of external dependencies. However, the ... more Nowadays, most of web-based software includes heavy usage of external dependencies. However, the control over the security aspects of these dependencies is out of control of the developers, because dependency injectors do not check for the security or integrity. Thus, the software built on top of insecure dependencies become vulnerable too. We propose a novel solution by using the PumaScript meta-programming framework and browser capabilities to generate a safe JavaScript dependency injector that help in generation of software solutions less vulnerable.
In recent years, the expansion of the World Wide Web, and web runtimes in particular, to all kind... more In recent years, the expansion of the World Wide Web, and web runtimes in particular, to all kind of devices has rendered the JavaScript performance in a hot topic. Several approaches to improve the performance of JavaScript applications have been tried by the industrial and research communities. In this paper we review the most popular approaches and propose a novel solution based on meta-programming and source code rewriting. The preliminary results of our experiments are very promising, although more studies are required to know to what extent this approach can improve the performance of real-life JavaScript programs.
Debido al crecimiento de la complejidad de las aplicaciones tanto para dispositivos móviles como ... more Debido al crecimiento de la complejidad de las aplicaciones tanto para dispositivos móviles como para web, la eficiencia y seguridad de los programas JavaScript ha captado recientemente la atención de investigadores y desaroladores. Dentro de esta línea de I+D investigamos la reescritura de código en tiempo de compilación como heramienta para mejorar tanto la eficiencia como la seguridad de este tipo de programas. En este trabajo presentamos esta línea de I+D y en particular los resultados de utilizar una heramienta de introspección de código, desarolada por nuestro grupo y lamada PumaScript, para atacar el problema de seguridad web conocido como mXSS (Mutation-based Cross-Site-Scripting). Este tipo de ataque se vale de la inyección de código JavaScript malicioso, aprovechando las vulnerabilidades proporcionadas por la propiedad innerHTML y la función Eval. PumaScript reescribe los programas JavaScript donde se encuentren este código vulnerable, utilizando una función segura con una...
Typed assembly languages have the goal of providing security guarantees, for example, for the lim... more Typed assembly languages have the goal of providing security guarantees, for example, for the limited use of resources in a host machine or the detection of autoupdate code. This work presents a simple typed assembly language which allows us to perform various kinds of static analysis tasks with the purpose of detecting flaws in the code security. The security policy we use guarantees type and memory safety. Moreover, wa can ensure that non-initialized variables are not read, and that there is no out-of-bound array accesses. The language we present, called STALlion, was designed in order to interpret a particular kind of imperative programs, more specifically abstract syntax tree.
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analysis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analysis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level languages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with different types, but also with different security levels. Non-interference refers to the desirable property of systems of multilevel security architecture that states that information stored at a high security level does not affect computed low security level values. Our main contributions are a type system for c...
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analysis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analysis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level languages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with different types, but also with different security levels. Non-interference refers to the desirable property of systems of multilevel security architecture that states that information stored at a high security level does not affect computed low security level values. Our main contributions are a type system for checking that typed assembly language programs enjoy non-interference and its proof of soundness. Furthermore, SIFTAL is the first typed assembly language with security types for information flow analysis, and our proof is the first proof of non-interference for a MIPSstyle typed assembly language.
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analy-sis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analy-sis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level lan-guages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with dif-ferent types, but also with different security levels. Non-interference refers to the desirable property of sys-tems of multilevel security architecture that states that infor-mation stored at a high security level does not affect com-puted low security level values. Our main contributions are a type syste...
Resumen Si bien el software libre es claramente beneficioso,útil y hasta necesario para la educac... more Resumen Si bien el software libre es claramente beneficioso,útil y hasta necesario para la educación universitaria en informática, algunas carreras no lo incluyen en sus asignaturas, ni en su práctica ni en su análisis teórico. En este artículo se describe una asignatura de remediación de este problema, cuya primera edición se desarrolló en el año 2015 en la Facultad
XVII Workshop de Investigadores en Ciencias de la Computación (Salta, 2015), May 28, 2015
VIII Congreso Argentino de Ciencias de la Computación, Oct 1, 2002
XVI Workshop de Investigadores en Ciencias de la Computación, May 1, 2014
En el presente trabajo se reportan los resultados preliminares de analizar la ocurrencia de error... more En el presente trabajo se reportan los resultados preliminares de analizar la ocurrencia de errores de programación en el paradigma funcional, cometidos por los alumnos de las carreras de Cs. de la Computación de la UNRC en los exámenes parciales de la asignatura "Programación Avanzada" durante los años 1996 y 1997. Se reconocen y clasifican los errores de programación en el paradigma funcional y se proponen mejoras en el dictado de la asignatura a fin de minimizar la aparición de dichos errores.
Proceedings del WICC
Resumen En elúltimo tiempo Proof-Carrying Code (PCC) ha despertado un gran interés surguiendo num... more Resumen En elúltimo tiempo Proof-Carrying Code (PCC) ha despertado un gran interés surguiendo numerosas líneas de trabajo. PCC establece una infraestructura que permite garantizar que los programas se ejecutarán de manera segura. En esta alternativa, el productor de código adjunta al código móvil una demostración, mediante la cual el consumidor del código puede verificar su seguridad antes de la ejecución del programa. Análisis estático es un técnica con un gran potencial para producir la evidencia necesaria para garantizar código móvil seguro. Basándonos en estas dos técnicas se presenta una arquitectura para garantizar la ejecución de código móvil de manera segura. Además se presenta el prototipo implementado que demuestra la factibilidad del uso de la técnica.
Resumen Si bien el software libre es claramente beneficioso, útil y hasta necesario para la educa... more Resumen Si bien el software libre es claramente beneficioso, útil y hasta necesario para la educación universitaria en informática, algunas carreras no lo incluyen en sus asignaturas, ni en su práctica ni en su análisis teórico. En este art́ıculo se describe una asignatura de remediación de este problema, cuya primera edición se desarrolló en el año 2015 en la Facultad Regional Córdoba de la Universidad Tecnológica Nacional (UTN FRC). Lo novedoso de esta asignatura es que los alumnos, como parte de su cursado, deben participar de una comunidad asociada a un proyecto de software libre previamente existente, analizar su dinámica y realizar una presentación sobre su experiencia.
En este trabajo se presentan las lineas del grupo de investigacion “Procesadores de Lenguajes” pe... more En este trabajo se presentan las lineas del grupo de investigacion “Procesadores de Lenguajes” perteneciente al Departamento de Computacion de la UNRC. Los aspectos fundamentales son la creacion de modelos y herramientas de ultima generacion para la generacion de procesadores de lenguajes incluyendo la generacion de Codigo Movil Seguro. Se resenan los trabajos del ultimo ano que han permitido: construir un generador de analizadores lexicos traductores, construir un generador de evaluadores concurrentes sin comunicacion de gramaticas de atributos, realizar un analisis comparativo de los generadores de procesadores de lenguajes mas usados y de Japlage y definir un lenguaje assembler tipado para la ejecucion segura de codigo movil no confiable. Ademas, se presentan los trabajos iniciados por el grupo destacando la obtencion de un prototipo de un compilador certificante y entorno de ejecucion para Proof-Carrying Code (PCC) – una tecnica para garantizar codigo movil seguro – .
Nowadays, most of web-based software includes heavy usage of external dependencies. However, the ... more Nowadays, most of web-based software includes heavy usage of external dependencies. However, the control over the security aspects of these dependencies is out of control of the developers, because dependency injectors do not check for the security or integrity. Thus, the software built on top of insecure dependencies become vulnerable too. We propose a novel solution by using the PumaScript meta-programming framework and browser capabilities to generate a safe JavaScript dependency injector that help in generation of software solutions less vulnerable.
In recent years, the expansion of the World Wide Web, and web runtimes in particular, to all kind... more In recent years, the expansion of the World Wide Web, and web runtimes in particular, to all kind of devices has rendered the JavaScript performance in a hot topic. Several approaches to improve the performance of JavaScript applications have been tried by the industrial and research communities. In this paper we review the most popular approaches and propose a novel solution based on meta-programming and source code rewriting. The preliminary results of our experiments are very promising, although more studies are required to know to what extent this approach can improve the performance of real-life JavaScript programs.
Debido al crecimiento de la complejidad de las aplicaciones tanto para dispositivos móviles como ... more Debido al crecimiento de la complejidad de las aplicaciones tanto para dispositivos móviles como para web, la eficiencia y seguridad de los programas JavaScript ha captado recientemente la atención de investigadores y desaroladores. Dentro de esta línea de I+D investigamos la reescritura de código en tiempo de compilación como heramienta para mejorar tanto la eficiencia como la seguridad de este tipo de programas. En este trabajo presentamos esta línea de I+D y en particular los resultados de utilizar una heramienta de introspección de código, desarolada por nuestro grupo y lamada PumaScript, para atacar el problema de seguridad web conocido como mXSS (Mutation-based Cross-Site-Scripting). Este tipo de ataque se vale de la inyección de código JavaScript malicioso, aprovechando las vulnerabilidades proporcionadas por la propiedad innerHTML y la función Eval. PumaScript reescribe los programas JavaScript donde se encuentren este código vulnerable, utilizando una función segura con una...
Typed assembly languages have the goal of providing security guarantees, for example, for the lim... more Typed assembly languages have the goal of providing security guarantees, for example, for the limited use of resources in a host machine or the detection of autoupdate code. This work presents a simple typed assembly language which allows us to perform various kinds of static analysis tasks with the purpose of detecting flaws in the code security. The security policy we use guarantees type and memory safety. Moreover, wa can ensure that non-initialized variables are not read, and that there is no out-of-bound array accesses. The language we present, called STALlion, was designed in order to interpret a particular kind of imperative programs, more specifically abstract syntax tree.
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analysis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analysis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level languages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with different types, but also with different security levels. Non-interference refers to the desirable property of systems of multilevel security architecture that states that information stored at a high security level does not affect computed low security level values. Our main contributions are a type system for c...
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analysis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analysis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level languages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with different types, but also with different security levels. Non-interference refers to the desirable property of systems of multilevel security architecture that states that information stored at a high security level does not affect computed low security level values. Our main contributions are a type system for checking that typed assembly language programs enjoy non-interference and its proof of soundness. Furthermore, SIFTAL is the first typed assembly language with security types for information flow analysis, and our proof is the first proof of non-interference for a MIPSstyle typed assembly language.
We study information flow for a typed assembly language where security types restrict information... more We study information flow for a typed assembly language where security types restrict information flow. Inspired by recent work in continuation-based information flow analy-sis, our language, Secure Information Flow TAL (SIFTAL), uses low-level linear continuations in order to impose a stack discipline on the control flow of programs. The challenge posed by studying information flow analy-sis at the assembly language level is many-fold. On the one hand, the well behaved control constructs of high-level lan-guages are not available, and, on the other hand, the role of an unbounded number of variables is played by a finite number of registers that need to be reused not only with dif-ferent types, but also with different security levels. Non-interference refers to the desirable property of sys-tems of multilevel security architecture that states that infor-mation stored at a high security level does not affect com-puted low security level values. Our main contributions are a type syste...