4 research outputs found

    Improving Quality of Software with Foreign Function Interfaces using Static Analysis

    Get PDF
    A Foreign Function Interface (FFI) is a mechanism that allows software written in one host programming language to directly use another foreign programming language by invoking function calls across language boundaries. Today\u27s software development often utilizes FFIs to reuse software components. Examples of such systems are the Java Development Kit (JDK), Android mobile OS, and Python packages in the Fedora LINUX operating systems. The use of FFIs, however, requires extreme care and can introduce undesired side effects that degrade software quality. In this thesis, we aim to improve several quality aspects of software composed of FFIs by applying static analysis. The thesis investigates several particular characteristics of FFIs and studies software bugs caused by the misuse of FFIs. We choose two FFIs, the Java Native Interface (JNI) and the Python/C interface, as the main subjects of this dissertation. To reduce software security vulnerabilities introduced by the JNI, we first propose definitions of new patterns of bugs caused by the improper exception handlings between Java and C. We then present the design and implement a bug finding system to uncover these bugs. To ensure software safety and reliability in multithreaded environment, we present a novel and efficient system that ensures atomicity in the JNI. Finally, to improve software performance and reliability, we design and develop a framework for finding errors in memory management in programs written with the Python/C interface. The framework is built by applying affine abstraction and affine analysis of reference-counts of Python objects. This dissertation offers a comprehensive study of FFIs and software composed of FFIs. The research findings make several contributions to the studies of static analysis and to the improvement of software quality

    Implementando diversidade em Replicação Máquina de Estados

    Get PDF
    Monografia (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2016.Vulnerabilidades podem comprometer as propriedades de segurança de um sistema quando adequadamente exploradas por um adversário. Uma alternativa para mitigar este risco é a implementação de sistemas tolerantes a intrusões. Uma abordagem muito utilizada para estas implementações é a Replicação Máquina de Estados (RME). Porém, as soluções existentes não suportam diversidade na implementação das réplicas, de forma que um mesmo ataque pode comprometer todo o sistema. Neste sentido, este trabalho propõe uma arquitetura para fornecer suporte a diversidade de implementação em RMEs, através da utilização de múltiplas linguagens de programação, integradas ao Bft-SMaRt, que é uma biblioteca para implentar RME, por meio de uma camada intermediária em linguagem C. Um conjunto de experimentos mostra a viabilidade prática das soluções propostas, avaliando a performance e a segurança, através da implementação de uma aplicação que utiliza as funcionalidades desenvolvidas, além de explorar outros eixos de diversidade como: sistema operacional, hardware, compiladores e ambientes de execução.The security properties of a system could be impaired by an attacker that exploits its vulnerabilities. An alternative to mitigate this risk is the implementation of intrusion-tolerant systems. State Machine Replication (SMR) is widely used in these implementations. However, the proposed solutions do not allow diversity in replica implementations and consequently, the same attack can compromise the entirety of the system. In that context, this work proposes an architecture to allow diversity in replica implementations of a SMR, by employing multiple programming languages integrated into Bft-SMaRt, a library to implement SMR, by means of an intermediate layer written in C. A set of experiments shows the practical viability of the proposed solutions, evaluating performance and security, by implementing an application that uses the developed functionalities, while also exploring other diversity aspects like: operating system, hardware, compilers and runtime environments

    Diversidade em Replicação Máquina de Estados

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.A dependabilidade e as propriedades de segurança de um sistema podem ser comprometidas por uma falha ou por um atacante que explora suas vulnerabilidades, respectivamente. Uma alternativa para mitigar este risco é a implementação de sistemas tolerantes a falhas e tolerantes a intrusões, em que as propriedades do sistema são preservadas mesmo se alguns de seus componentes falharem (e.g., por uma falha de software ou uma falha do ambiente de execução) ou se forem comprometidos por um ataque bem-sucedido. A Replicação Máquina de Estados (RME) é amplamente utilizada para implementar esses sistemas. Na RME, servidores são replicados e requisições de clientes são executadas de maneira determinística e na mesma ordem por todas as réplicas de maneira que o comportamento do sistema mantém-se correto mesmo se algumas delas estiverem comprometidas, já que as réplicas corretas mascaram o mal-comportamento das réplicas com falha. Infelizmente, as soluções propostas para RME não consideram diversidade na implementação e todas as réplicas executam o mesmo software. Consequentemente, o mesmo ataque ou bug de software pode comprometer todo o sistema. Tentando contornar este problema, este trabalho propõe uma arquitetura para fornecer suporte à diversidade na implementação de serviços seguros utilizando a abordagem RME. Nosso objetivo não é implementar diferentes versões de uma biblioteca RME para diferentes linguagens de programação, o que demandaria muitos recursos. Ao invés disso, a arquitetura proposta usa com base uma biblioteca RME e provê meios de implementar e executar réplicas (aplicações) em diferentes linguagens de programação. Os principais problemas atacados pela arquitetura proposta são dois: (1) comunicação entre diferentes linguagens; e (2) representação de dados. A arquitetura proposta foi integrada à biblioteca RME Bft-SMaRt e um conjunto de experimentos mostra sua viabilidade prática.The dependability and security properties of a system could be impaired by a system failure or by an opponent that exploits its vulnerabilities, respectively. An alternative to mitigate this risk is the implementation of fault- and intrusion-tolerant systems, in which the system properties are ensured even if some of its components fail (e.g., because a software bug or a failure in the runtime environment) or are compromised by a successful attack. State Machine Replication (SMR) is widely used to implement these systems. In SMR, servers are replicated and client requests are deterministically executed in the same order by all replicas in a way that the system behavior remains correct even if some of them are compromised since the correct replicas mask the misbehavior of the faulty ones. Unfortunately, the proposed solutions for SMR do not consider diversity in the implementation and all replicas execute the same software. Consequently, the same attack or software bug could compromise all the system. In order to circumvent this problem, this work proposes an architecture to allow diversity in the implementation of dependable and secure services using the SMR approach. The goal is not to implement different versions of a SMR library for different programming languages, which demands a lot of resources and is very expensive. Instead, the proposed architecture uses an underlying SMR library and provides means to implement and execute service replicas (the application code) in different programming languages. The main problems addressed by the proposed architecture are twofold: (1) communication among different languages; and (2) data representation. The proposed architecture was integrated in the SMR library Bft-SMaRt and a set of experiments showed its practical feasibility

    Compartilhamento e colaboração de práticas educacionais abertas : recuperação de conteúdo informacional fílmico

    Get PDF
    Orientadora : Profª. Drª. Maria do Carmo Duarte FreitasDissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Sociais Aplicadas, Programa de Pós-Graduação em Ciência, Gestão e Tecnologia da Informação. Defesa: Curitiba, 10/12/2014Inclui referênciasÁrea de concentração: Informação, conhecimento e estratégiaResumo: As Tecnologias da Informação e da Comunicação - TICs - provocaram uma revolução nos modelos educativos e de ensino-aprendizagem, influindo diretamente nas Práticas de Educacionais Abertas (PEAs). No entanto, o uso adequado das mídias carece de espaços virtuais que orientem e ajudem aos profissionais a usarem corretamente esses recursos em sala de aula. O desenvolvimento de Objetos de Aprendizagem (OAs) e dos Recursos Educacionais Abertos (REAs) baseados nas TICs tem crescido. O objetivo desta investigação é apresentar um modelo de Compartilhamento e Colaboração de PEAs com foco no vídeo como recurso didático, com o propósito do fomento e criação de conhecimento entre os profissionais no processo ensino-aprendizagem. Para a avaliação deste modelo, é desenvolvido um repositório digital, o Projeto de Recuperação de Conteúdo Informacional em Filmes (RECIF). A metodologia utilizada consiste em uma pesquisa aplicada antecedida de uma pesquisa exploratória. A utilização do vídeo como recurso didático que requer o reconhecimento da possibilidade de uso como REA, como estratégia facilitadora para o compartilhamento como um PEA. Cabe ainda na etapa seguinte a disseminação (online) de modo a possibilitar a colaboração de experiências de uso e ainda permitir iniciar outro ciclo de compartilhamento-colaboração. A validação da interface proposta como repositório foi por meio de oferta de oficinas de aprendizagem baseada em tecnologia para professores ou estudantes de pedagogia. Como resultado desta pesquisa foi criada a Plataforma RECIF, um repositório digital, onde se realiza entre profissionais da educação o compartilhamento e colaboração de PEAs, criando uma troca de experiências e ideais, realizada com o propósito da avaliação do modelo proposto. Conclui de acordo que o modelo proposto pode ser aplicado para qualquer prática educacional que tenha o vídeo como recurso didático, facilitando o desenvolvimento de processos e serviços inovadores, que estimulam a criação de espaços virtuais e presenciais que são motivadores. Possibilita ainda que se converta o processo de ensino-aprendizagem em interativo e colaborativo e além de estimular a criatividade e o dinamismo no educando. Palavras-chave: Tecnologia Inovadora. Educação. Repositórios Digitais. Conteúdo Informacional. Práticas Educacionais Abertas. Recursos Educacionais Abertos.Abstract: Information and Communication Technologies - ICTs - caused a revolution in educational models and teaching-learning, influencing directly on the Open Educational Practices (PEAs). However, the proper use of the media lacks virtual spaces to guide and help professionals to properly use these classroom resources. The Learning Object development (LOs) and Open Educational Resources (REAs) based on ICTs has grown. The purpose of this research is to present a model of Sharing and Collaboration AEP focusing on video as a teaching resource for the purpose of promotion and creation of knowledge among professionals in the teaching-learning process. For the evaluation of this model, a digital repository is developed, the Informational Content Recovery Project in Movies (RECIF). The methodology consists of an applied research preceded by an exploratory research. The use of video as a teaching resource which requires the recognition of the possibility of use as REA, as a facilitator strategy for sharing as a PEA. It is also the spread in the next step (online) to enable the use of collaborative experience and still allow the other initiate collaboration-sharing cycle. The validation of the proposed interface as a repository was by providing learning workshops based on technology for teachers and pedagogy students. As a result of this research was created RECIF platform, a digital repository, which takes place between education professionals sharing and AEP collaboration, creating an exchange of experiences and ideas, carried out with the purpose of the evaluation of the proposed model. Concludes agreement that the proposed model can be applied to any educational practice that has the video as a teaching resource, facilitating the development of innovative processes and services, which stimulate the creation of virtual and actual spaces that are motivating. It also allows you to convert the process of teaching and learning in interactive and collaborative, as well as stimulate creativity and dynamism in the student. Keywords: Innovative Technology. Education. Digital Repositories. Informational content. Open Educational Practices. Open Educational Resources
    corecore