Dissertação

{en_GB=A JavaScript Information Flow Monitor for Symbolic Testing} {} EVALUATED

{pt=JavaScript é uma das linguagens mais relevantes para aplicações do lado do cliente, como pode ser visto pelo número de repositórios no github (http://githut.info). Antes limitado à validação de formulários e outras pequenas tarefas, hoje evoluiu para um componente importante da Web. O JavaScript é uma linguagem muito dinâmica, permitindo a criação de variáveis e funções em tempo de execução. No entanto, essa natureza dinâmica é uma faca de dois gumes, pois torna a análise uma tarefa complexa. As ferramentas atuais para análise de JavaScript são limitadas, principalmente devido à combinação do dinamismo mencionado acima (forçando as ferramentas a analisar pequenos subconjuntos da linguagem) e a heterogeneidade dos browsers (que interpretam o JavaScript de maneira diferente). Esta falta de ferramentas de análise torna o desenvolvimento de código JavaScript seguro um desafio não trivial. Propomos um monitor que visa manter a confidencialidade, capturando fugas de informações tanto explícitas como implícitas. Para isso, definimos formalmente a sintaxe e a semântica das regras que o monitor segue. De seguida implentamos essas mesmas regra. Finalmente, avaliamos a execução através de um conjunto de testes unitários para avaliar o monitor, provando que podemos detectar em JSIL todos os tipos de fuga de informação considerados., en=JavaScript is one of the most relevant languages for client side applications as can be seen by the number of repositories in github (http://githut.info). Once limited to form validation and other small tasks, today it has evolved into a major component of the Web. JavaScript is a very dynamic language, as it allows the creation of both variables and functions in runtime. However this dynamic nature is a double-edged sword as it makes it’s analysis a complex task. Current tools for JavaScript analysis are limited, mostly due to the combination of the aforementioned dynamism (forcing tools to analyse small subsets of the language) and the heterogeneity of browsers (which interpret JavaScript differently). This lack of analysis tools makes the development of secure JavaScript code a non-trivial challenge. We propose a monitor that aims to keep confidentiality by catching implicit information flow leaks. To do so we formally define the syntax and the semantics of the rules the monitor has to follow, as well as implement them. Finally we run the execution through a test suite of unitary tests to evaluate the monitor, proving we can catch all types of information flow leaks under consideration in JSIL.}
{pt=JavaScript Analysis, Information Flow, en=JavaScript Analysis, Information Flow}

Novembro 25, 2019, 14:0

Orientação

ORIENTADOR

José Faustino Fragoso Femenin dos Santos

Departamento de Engenharia Informática (DEI)

Professor Auxiliar

ORIENTADOR

Ana Gualdina Almeida Matos

Departamento de Engenharia Informática (DEI)

Professor Auxiliar