Ejecución segura y con limitación de memoria de programas en Python

Impacto

Downloads

Downloads per month over past year



Sarnago Ojuel, David (2021) Ejecución segura y con limitación de memoria de programas en Python. [Trabajo Fin de Grado]

[thumbnail of SARNAGO OJUEL 69816_DAVID_SARNAGO_OJUEL_Memoria_TFG_David_Sarnago_Ojuel_784051_547081443.pdf]
Preview
PDF
Creative Commons Attribution Non-commercial.

1MB


Abstract

Los jueces en línea, como por ejemplo ¡Acepta el Reto! 1
(Gómez-Martín y Gómez-Martín, 2017), reciben programas enviados por los usuarios y los ejecutan para comprobar su corrección. Esta ejecución debe ser realizada bajo un entorno seguro, que no ponga en riesgo la máquina del juez, y bajo una restricción de memoria impuesta por cada problema. Desarrollar un sistema de ejecución seguro con limitación de memoria para programas en Python está, como el título indica, formado por dos puntos fundamentales.
La limitación de memoria de un programa permite al entorno restringir el uso total que este puede hacer ejecutándose en su interior. El objetivo no solo es evitar poner en riesgo el mismo entorno debido al alto uso de memoria, sino el de implementar una limitación mucho más restrictiva para los programas que permita, por ejemplo, discriminar soluciones con consumo lineal de memoria.
La ejecución segura permite al entorno ejecutar cualquier tipo de programa sin temer por la integridad de la máquina que lo está ejecutando. Esto se puede conseguir restringiendo las funciones que se pueden emplear dentro de un programa o realizando su ejecución en un entorno que por sí mismo no permita la ejecución de ciertas funciones.
Este trabajo consiste en un estudio e implementación de diferentes formas de abarcar los dos puntos anteriores y unirlos en un solo programa, capaz de ejecutar cualquier tipo de código Python de forma segura y con una limitación sobre la memoria máxima que puede utilizar.

Resumen (otros idiomas)

Online judges like ¡Acepta el Reto! 1 (Gómez-Martín y Gómez-Martín, 2017) receive small programs submitted by the users and run them to check their correctness. This execution must be carried out in a safe environment, which does not put the judge’s machine at risk, and under memory restriction imposed by each problem. Developing a memory-limited secure execution system for Python is, as the title says, made up of two essential points. Limiting the memory of a program allows the environment to restrict the maximum memory that can be used by them inside it. The goal is not only to avoid putting the environment at risk due to high memory usage, but to implement a more restrictive limitation for the programs to discriminate, for example, solutions with linear memory consumption. Safe execution allows the environment to run any kind of program without worrying about the integrity of the machine that is running it. This can be achieved by restricting the functions that can be used in the programs or by running them inside an environment that doesn’t allow the execution of those functions by default. Este trabajo consiste en un estudio de las diferentes formas de abarcar los dos puntos anteriores y unirlos en un solo programa, capaz de ejecutar cualquier tipo de código Python de forma segura y con una limitación sobre la memoria máxima que puede utilizar. This work consists then on a study and implementation of the different ways of dealing with the last two points and combining them on a single program, capable of executing any kind of Python code safely and memory limited.

Item Type:Trabajo Fin de Grado
Additional Information:

Trabajo Fin de Grado en Ingeniería Informática, Facultad de Informática UCM, Departamento de Ingeniería del Software e Inteligencia Artificial, curso 2020-2021

Directors:
Directors
Gómez Martín, Marco Antonio
Gómez Martín, Pedro Pablo
Uncontrolled Keywords:Python, Ejecución segura, Limitación de memoria, ¡Acep- ta el Reto!, Linux, Chroot, Juez en línea, Llamadas al sistema.
Palabras clave (otros idiomas):Python, Safe execution, Memory-limited, ¡Acepta el Reto!, Linux, Chroot, Online judges, System calls.
Subjects:Sciences > Computer science
Título de Grado:Grado en Ingeniería Informática
ID Code:66897
Deposited On:14 Jul 2021 14:25
Last Modified:14 Jul 2021 14:25

Origin of downloads

Repository Staff Only: item control page