Tipos para seguridad basada en flujo de información y computación auditada

Autores
Bavera, Francisco Pedro
Año de publicación
2012
Idioma
inglés
Tipo de recurso
tesis doctoral
Estado
versión publicada
Colaborador/a o director/a de tesis
Bonelli, Eduardo Augusto
Descripción
Garantizar la confidencialidad de la información restringiendo su acceso sólo a usuarios autorizados es uno de los pilares de la seguridad informática actual. Sin embargo, una vez otorgado dicho acceso no se conserva control alguno sobre cómo se utiliza. El Análisis del Flujo de Información (IFA) estudia cómo se transmite la información por diferentes mecanismos. Para ello se vale de políticas de flujo de información previamente establecidas. IFA vela por el cumplimiento de las mismas, a través de técnicas de análisis estático de programas o a través de monitores de ejecución. De esta manera se logra un control sobre el uso de los datos, que aplica más allá del momento en que se otorga el acceso a los mismos. Una alternativa a esta modalidad de control de uso de los datos es utilizar computación auditada. En este caso, las operaciones sobre los datos son permitidas pero también auditadas. Las contribuciones de esta tesis son dos. En primer lugar, presentamos un sistema de tipos para Bytecode JVM que garantiza que el flujo de la información sea seguro, incluso en el caso en que diferentes instancias de una clase puedan tener atributos cuyo nivel de seguridad varía de acuerdo al contexto en el cual han sido instanciados. La seguridad viene dada por la propiedad de no-interferencia: una formulación rigurosa de la ausencia de filtraciones de información sensible. Si bien esta propiedad es técnicamente viable, en la práctica hay muchos programas que permiten revelar intencionalmente cierta información sensible. Esto nos motiva a extender el Bytecode JVM con un mecanismo de "desclasificación" que permite liberar información sensible. El riesgo que introduce es que el mismo pueda ser abusado, permitiendo desclasificar más información sensible de la que originalmente se tenía prevista. Por tal motivo, extendemos el sistema de tipos para garantizar que estas situaciones no sucedan. Dicha extensión satisface "desclasificación robusta": un atacante no puede deducir ninguna información adicional a la permitida por la política de seguridad ni tampoco puede influir en los datos que serán desclasificados. En segundo lugar, presentamos un análisis teórico de un modelo computacional funcional que mantiene un registro de su historia de computación. A partir de un fragmento de la Lógica de Justificación (JL) de Artemov y el isomorfismo de Curry-de Bruijn-Howard obtenemos un cálculo lambda que modela unidades auditadas de computación. Reducción en estas unidades auditadas genera trazas que están confinadas a cada unidad auditada. Asimismo, estas unidades auditadas pueden consultar sus trazas para tomar decisiones en base a las mismas. Probamos seguridad de tipado y normalización fuerte para una restricción del mismo. Este cálculo lambda puede ser utilizado para definir programas que refuerzan una variedad de políticas de seguridad basadas en computación auditada.
One of the pillars of computer security is to ensure the confidentiality of information restricting its access to authorized users. Information Flow Analysis studies how information is transmitted by different mechanisms or channels. An attacker can obtain confidential information by observing the output (of any particular channel) of the system. However, while information flow policies are useful and important, there are other proposed mechanisms such as access control or stack inspection. We want a programming language that can enforce a wide range of policies while providing the assurance that programs enforce their policies correctly. An alternative is to use audited trails (logs). Informally, a program is auditable if, at any audit point, an impartial judge is satisfied with the evidence produced by the program. The contributions of this dissertation are twofold. Firstly, we present a type system for ensuring secure information flow in a JVM-like language that allows instances of a class to have fields with security levels depending on the context in which they are instantiated. We prove that the type system enforces noninterference. Although noninterference is an appealing formalisation for the absence of leaking of sensitive information, its applicability in practice is somewhat limited given that many systems require intensional release of secret information. This motivates our extension of a core JVM-like language with a mechanism for performing downgrading of confidential information. We discuss how the downgrading mechanism may be abused in our language and then extend our type system for ensuring it captures these situations. It is proved that the type system enforces robustness of the declassification mechanism: attackers may not affect what information is released or whether information is released at all. Secondly, we present a proof theoretical analysis of a functional computation model that keeps track of its computation history. A Curry-de Bruijn-Howard isomorphism of an affine fragment of Artemov's Justification Logic yields a lambda calculus λh which models audited units of computation. Reduction in these units generates audit trails that are confined within them. Moreover, these units may look-up these trails and make decisions based on them. We affirm that the computational interpretation of JL is a programming language that records its computation history. We prove type safety for λh and strong normalisation for a restriction of it. λh can be used for writing programs that enforce a variety of security policies based on audited trails.
Fil: Bavera, Francisco Pedro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
FLUJO DE INFORMACION
DESCLASIFICACION
NO INTERFERENCIA
ROBUSTES
BYTECODE
LOGICA DE JUSTIFICACION
COMPUTACIONES AUDITADAS
ISOMORFISMO DE CURRY-HOWARD
INFORMATION FLOW
DECLASSIFICATION
NONINTERFERENCE
ROBUSTNESS
BYTECODE
JUSTIFICATION LOGIC
AUDITED COMPUTATIONS
CURRY-HOWARD ISOMORPHISM
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
tesis:tesis_n5169_Bavera

id BDUBAFCEN_ae18c974281092c95c4076720c59ee41
oai_identifier_str tesis:tesis_n5169_Bavera
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Tipos para seguridad basada en flujo de información y computación auditadaTypes for security based-on information flow and audited computationBavera, Francisco PedroFLUJO DE INFORMACIONDESCLASIFICACIONNO INTERFERENCIAROBUSTESBYTECODELOGICA DE JUSTIFICACIONCOMPUTACIONES AUDITADASISOMORFISMO DE CURRY-HOWARDINFORMATION FLOWDECLASSIFICATIONNONINTERFERENCEROBUSTNESSBYTECODEJUSTIFICATION LOGICAUDITED COMPUTATIONSCURRY-HOWARD ISOMORPHISMGarantizar la confidencialidad de la información restringiendo su acceso sólo a usuarios autorizados es uno de los pilares de la seguridad informática actual. Sin embargo, una vez otorgado dicho acceso no se conserva control alguno sobre cómo se utiliza. El Análisis del Flujo de Información (IFA) estudia cómo se transmite la información por diferentes mecanismos. Para ello se vale de políticas de flujo de información previamente establecidas. IFA vela por el cumplimiento de las mismas, a través de técnicas de análisis estático de programas o a través de monitores de ejecución. De esta manera se logra un control sobre el uso de los datos, que aplica más allá del momento en que se otorga el acceso a los mismos. Una alternativa a esta modalidad de control de uso de los datos es utilizar computación auditada. En este caso, las operaciones sobre los datos son permitidas pero también auditadas. Las contribuciones de esta tesis son dos. En primer lugar, presentamos un sistema de tipos para Bytecode JVM que garantiza que el flujo de la información sea seguro, incluso en el caso en que diferentes instancias de una clase puedan tener atributos cuyo nivel de seguridad varía de acuerdo al contexto en el cual han sido instanciados. La seguridad viene dada por la propiedad de no-interferencia: una formulación rigurosa de la ausencia de filtraciones de información sensible. Si bien esta propiedad es técnicamente viable, en la práctica hay muchos programas que permiten revelar intencionalmente cierta información sensible. Esto nos motiva a extender el Bytecode JVM con un mecanismo de "desclasificación" que permite liberar información sensible. El riesgo que introduce es que el mismo pueda ser abusado, permitiendo desclasificar más información sensible de la que originalmente se tenía prevista. Por tal motivo, extendemos el sistema de tipos para garantizar que estas situaciones no sucedan. Dicha extensión satisface "desclasificación robusta": un atacante no puede deducir ninguna información adicional a la permitida por la política de seguridad ni tampoco puede influir en los datos que serán desclasificados. En segundo lugar, presentamos un análisis teórico de un modelo computacional funcional que mantiene un registro de su historia de computación. A partir de un fragmento de la Lógica de Justificación (JL) de Artemov y el isomorfismo de Curry-de Bruijn-Howard obtenemos un cálculo lambda que modela unidades auditadas de computación. Reducción en estas unidades auditadas genera trazas que están confinadas a cada unidad auditada. Asimismo, estas unidades auditadas pueden consultar sus trazas para tomar decisiones en base a las mismas. Probamos seguridad de tipado y normalización fuerte para una restricción del mismo. Este cálculo lambda puede ser utilizado para definir programas que refuerzan una variedad de políticas de seguridad basadas en computación auditada.One of the pillars of computer security is to ensure the confidentiality of information restricting its access to authorized users. Information Flow Analysis studies how information is transmitted by different mechanisms or channels. An attacker can obtain confidential information by observing the output (of any particular channel) of the system. However, while information flow policies are useful and important, there are other proposed mechanisms such as access control or stack inspection. We want a programming language that can enforce a wide range of policies while providing the assurance that programs enforce their policies correctly. An alternative is to use audited trails (logs). Informally, a program is auditable if, at any audit point, an impartial judge is satisfied with the evidence produced by the program. The contributions of this dissertation are twofold. Firstly, we present a type system for ensuring secure information flow in a JVM-like language that allows instances of a class to have fields with security levels depending on the context in which they are instantiated. We prove that the type system enforces noninterference. Although noninterference is an appealing formalisation for the absence of leaking of sensitive information, its applicability in practice is somewhat limited given that many systems require intensional release of secret information. This motivates our extension of a core JVM-like language with a mechanism for performing downgrading of confidential information. We discuss how the downgrading mechanism may be abused in our language and then extend our type system for ensuring it captures these situations. It is proved that the type system enforces robustness of the declassification mechanism: attackers may not affect what information is released or whether information is released at all. Secondly, we present a proof theoretical analysis of a functional computation model that keeps track of its computation history. A Curry-de Bruijn-Howard isomorphism of an affine fragment of Artemov's Justification Logic yields a lambda calculus λh which models audited units of computation. Reduction in these units generates audit trails that are confined within them. Moreover, these units may look-up these trails and make decisions based on them. We affirm that the computational interpretation of JL is a programming language that records its computation history. We prove type safety for λh and strong normalisation for a restriction of it. λh can be used for writing programs that enforce a variety of security policies based on audited trails.Fil: Bavera, Francisco Pedro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesBonelli, Eduardo Augusto2012info:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_db06info:ar-repo/semantics/tesisDoctoralapplication/pdfhttps://hdl.handle.net/20.500.12110/tesis_n5169_Baveraenginfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-10-23T11:17:04Ztesis:tesis_n5169_BaveraInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-10-23 11:17:05.293Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Tipos para seguridad basada en flujo de información y computación auditada
Types for security based-on information flow and audited computation
title Tipos para seguridad basada en flujo de información y computación auditada
spellingShingle Tipos para seguridad basada en flujo de información y computación auditada
Bavera, Francisco Pedro
FLUJO DE INFORMACION
DESCLASIFICACION
NO INTERFERENCIA
ROBUSTES
BYTECODE
LOGICA DE JUSTIFICACION
COMPUTACIONES AUDITADAS
ISOMORFISMO DE CURRY-HOWARD
INFORMATION FLOW
DECLASSIFICATION
NONINTERFERENCE
ROBUSTNESS
BYTECODE
JUSTIFICATION LOGIC
AUDITED COMPUTATIONS
CURRY-HOWARD ISOMORPHISM
title_short Tipos para seguridad basada en flujo de información y computación auditada
title_full Tipos para seguridad basada en flujo de información y computación auditada
title_fullStr Tipos para seguridad basada en flujo de información y computación auditada
title_full_unstemmed Tipos para seguridad basada en flujo de información y computación auditada
title_sort Tipos para seguridad basada en flujo de información y computación auditada
dc.creator.none.fl_str_mv Bavera, Francisco Pedro
author Bavera, Francisco Pedro
author_facet Bavera, Francisco Pedro
author_role author
dc.contributor.none.fl_str_mv Bonelli, Eduardo Augusto
dc.subject.none.fl_str_mv FLUJO DE INFORMACION
DESCLASIFICACION
NO INTERFERENCIA
ROBUSTES
BYTECODE
LOGICA DE JUSTIFICACION
COMPUTACIONES AUDITADAS
ISOMORFISMO DE CURRY-HOWARD
INFORMATION FLOW
DECLASSIFICATION
NONINTERFERENCE
ROBUSTNESS
BYTECODE
JUSTIFICATION LOGIC
AUDITED COMPUTATIONS
CURRY-HOWARD ISOMORPHISM
topic FLUJO DE INFORMACION
DESCLASIFICACION
NO INTERFERENCIA
ROBUSTES
BYTECODE
LOGICA DE JUSTIFICACION
COMPUTACIONES AUDITADAS
ISOMORFISMO DE CURRY-HOWARD
INFORMATION FLOW
DECLASSIFICATION
NONINTERFERENCE
ROBUSTNESS
BYTECODE
JUSTIFICATION LOGIC
AUDITED COMPUTATIONS
CURRY-HOWARD ISOMORPHISM
dc.description.none.fl_txt_mv Garantizar la confidencialidad de la información restringiendo su acceso sólo a usuarios autorizados es uno de los pilares de la seguridad informática actual. Sin embargo, una vez otorgado dicho acceso no se conserva control alguno sobre cómo se utiliza. El Análisis del Flujo de Información (IFA) estudia cómo se transmite la información por diferentes mecanismos. Para ello se vale de políticas de flujo de información previamente establecidas. IFA vela por el cumplimiento de las mismas, a través de técnicas de análisis estático de programas o a través de monitores de ejecución. De esta manera se logra un control sobre el uso de los datos, que aplica más allá del momento en que se otorga el acceso a los mismos. Una alternativa a esta modalidad de control de uso de los datos es utilizar computación auditada. En este caso, las operaciones sobre los datos son permitidas pero también auditadas. Las contribuciones de esta tesis son dos. En primer lugar, presentamos un sistema de tipos para Bytecode JVM que garantiza que el flujo de la información sea seguro, incluso en el caso en que diferentes instancias de una clase puedan tener atributos cuyo nivel de seguridad varía de acuerdo al contexto en el cual han sido instanciados. La seguridad viene dada por la propiedad de no-interferencia: una formulación rigurosa de la ausencia de filtraciones de información sensible. Si bien esta propiedad es técnicamente viable, en la práctica hay muchos programas que permiten revelar intencionalmente cierta información sensible. Esto nos motiva a extender el Bytecode JVM con un mecanismo de "desclasificación" que permite liberar información sensible. El riesgo que introduce es que el mismo pueda ser abusado, permitiendo desclasificar más información sensible de la que originalmente se tenía prevista. Por tal motivo, extendemos el sistema de tipos para garantizar que estas situaciones no sucedan. Dicha extensión satisface "desclasificación robusta": un atacante no puede deducir ninguna información adicional a la permitida por la política de seguridad ni tampoco puede influir en los datos que serán desclasificados. En segundo lugar, presentamos un análisis teórico de un modelo computacional funcional que mantiene un registro de su historia de computación. A partir de un fragmento de la Lógica de Justificación (JL) de Artemov y el isomorfismo de Curry-de Bruijn-Howard obtenemos un cálculo lambda que modela unidades auditadas de computación. Reducción en estas unidades auditadas genera trazas que están confinadas a cada unidad auditada. Asimismo, estas unidades auditadas pueden consultar sus trazas para tomar decisiones en base a las mismas. Probamos seguridad de tipado y normalización fuerte para una restricción del mismo. Este cálculo lambda puede ser utilizado para definir programas que refuerzan una variedad de políticas de seguridad basadas en computación auditada.
One of the pillars of computer security is to ensure the confidentiality of information restricting its access to authorized users. Information Flow Analysis studies how information is transmitted by different mechanisms or channels. An attacker can obtain confidential information by observing the output (of any particular channel) of the system. However, while information flow policies are useful and important, there are other proposed mechanisms such as access control or stack inspection. We want a programming language that can enforce a wide range of policies while providing the assurance that programs enforce their policies correctly. An alternative is to use audited trails (logs). Informally, a program is auditable if, at any audit point, an impartial judge is satisfied with the evidence produced by the program. The contributions of this dissertation are twofold. Firstly, we present a type system for ensuring secure information flow in a JVM-like language that allows instances of a class to have fields with security levels depending on the context in which they are instantiated. We prove that the type system enforces noninterference. Although noninterference is an appealing formalisation for the absence of leaking of sensitive information, its applicability in practice is somewhat limited given that many systems require intensional release of secret information. This motivates our extension of a core JVM-like language with a mechanism for performing downgrading of confidential information. We discuss how the downgrading mechanism may be abused in our language and then extend our type system for ensuring it captures these situations. It is proved that the type system enforces robustness of the declassification mechanism: attackers may not affect what information is released or whether information is released at all. Secondly, we present a proof theoretical analysis of a functional computation model that keeps track of its computation history. A Curry-de Bruijn-Howard isomorphism of an affine fragment of Artemov's Justification Logic yields a lambda calculus λh which models audited units of computation. Reduction in these units generates audit trails that are confined within them. Moreover, these units may look-up these trails and make decisions based on them. We affirm that the computational interpretation of JL is a programming language that records its computation history. We prove type safety for λh and strong normalisation for a restriction of it. λh can be used for writing programs that enforce a variety of security policies based on audited trails.
Fil: Bavera, Francisco Pedro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description Garantizar la confidencialidad de la información restringiendo su acceso sólo a usuarios autorizados es uno de los pilares de la seguridad informática actual. Sin embargo, una vez otorgado dicho acceso no se conserva control alguno sobre cómo se utiliza. El Análisis del Flujo de Información (IFA) estudia cómo se transmite la información por diferentes mecanismos. Para ello se vale de políticas de flujo de información previamente establecidas. IFA vela por el cumplimiento de las mismas, a través de técnicas de análisis estático de programas o a través de monitores de ejecución. De esta manera se logra un control sobre el uso de los datos, que aplica más allá del momento en que se otorga el acceso a los mismos. Una alternativa a esta modalidad de control de uso de los datos es utilizar computación auditada. En este caso, las operaciones sobre los datos son permitidas pero también auditadas. Las contribuciones de esta tesis son dos. En primer lugar, presentamos un sistema de tipos para Bytecode JVM que garantiza que el flujo de la información sea seguro, incluso en el caso en que diferentes instancias de una clase puedan tener atributos cuyo nivel de seguridad varía de acuerdo al contexto en el cual han sido instanciados. La seguridad viene dada por la propiedad de no-interferencia: una formulación rigurosa de la ausencia de filtraciones de información sensible. Si bien esta propiedad es técnicamente viable, en la práctica hay muchos programas que permiten revelar intencionalmente cierta información sensible. Esto nos motiva a extender el Bytecode JVM con un mecanismo de "desclasificación" que permite liberar información sensible. El riesgo que introduce es que el mismo pueda ser abusado, permitiendo desclasificar más información sensible de la que originalmente se tenía prevista. Por tal motivo, extendemos el sistema de tipos para garantizar que estas situaciones no sucedan. Dicha extensión satisface "desclasificación robusta": un atacante no puede deducir ninguna información adicional a la permitida por la política de seguridad ni tampoco puede influir en los datos que serán desclasificados. En segundo lugar, presentamos un análisis teórico de un modelo computacional funcional que mantiene un registro de su historia de computación. A partir de un fragmento de la Lógica de Justificación (JL) de Artemov y el isomorfismo de Curry-de Bruijn-Howard obtenemos un cálculo lambda que modela unidades auditadas de computación. Reducción en estas unidades auditadas genera trazas que están confinadas a cada unidad auditada. Asimismo, estas unidades auditadas pueden consultar sus trazas para tomar decisiones en base a las mismas. Probamos seguridad de tipado y normalización fuerte para una restricción del mismo. Este cálculo lambda puede ser utilizado para definir programas que refuerzan una variedad de políticas de seguridad basadas en computación auditada.
publishDate 2012
dc.date.none.fl_str_mv 2012
dc.type.none.fl_str_mv info:eu-repo/semantics/doctoralThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_db06
info:ar-repo/semantics/tesisDoctoral
format doctoralThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv https://hdl.handle.net/20.500.12110/tesis_n5169_Bavera
url https://hdl.handle.net/20.500.12110/tesis_n5169_Bavera
dc.language.none.fl_str_mv eng
language eng
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
dc.source.none.fl_str_mv reponame:Biblioteca Digital (UBA-FCEN)
instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron:UBA-FCEN
reponame_str Biblioteca Digital (UBA-FCEN)
collection Biblioteca Digital (UBA-FCEN)
instname_str Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron_str UBA-FCEN
institution UBA-FCEN
repository.name.fl_str_mv Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
repository.mail.fl_str_mv ana@bl.fcen.uba.ar
_version_ 1846784853395111936
score 12.982451