600 research outputs found

    Invalidating web applications attacks by employing the right secure code

    Get PDF
    Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2019Desde o seu aparecimento, as aplicações web têm vindo a tornar-se cada vez mais populares e tornaram-se numa parte essencial das nossas vidas. Usamo-las todos os dias para fazer diversas tarefas tais como fazer compras, consultar o saldo da nossa conta bancária e entrar em contacto com os nossos familiares e amigos. Atualmente, as aplicações web são a forma mais utilizada para aceder aos serviços e recursos das organizações. No entanto, são conhecidas por conter vulnerabilidades no seu código-fonte. Estas vulnerabilidades, quando exploradas, podem causar danos severos às organizações como, por exemplo, o roubo de milhões de credenciais dos utilizadores e o acesso a informação confidencial, o que as torna num alvo apetecível para utilizadores mal intencionados. Por esta razão, é essencial que o acesso a serviços críticos tais como serviços de saúde e financeiros, seja feito através de aplicações web seguras. A utilização de código seguro nas aplicações é de uma importância extrema para obter aplicações seguras e garantir a segurança dos seus utilizadores. As vulnerabilidades são deixadas inadvertidamente no código-fonte por programadores porque estes não têm o conhecimento necessário para escrever código seguro ou porque os testes de software não dedicam tempo suficiente à segurança. Por outro lado, os programadores que utilizam nas suas aplicações funções seguras da linguagem de programação acreditam que as suas aplicações estão protegidas. No entanto, algumas destas funções não invalidam todos os ataques e deixam as aplicações vulneráveis. Este trabalho é focado na linguagem PHP porque esta é atualmente a linguagem de programação mais utilizada para o desenvolvimento de aplicações web. A linguagem PHP permite aos programadores realizarem ações que não seriam possíveis noutras linguagens, o que torna mais fácil aos programadores cometer erros. A linguagem PHP contém um grande número de funções seguras que podem ser utilizadas para remover vulnerabilidades dos diversos tipos. No entanto, uma grande maioria destas funções não é segura em todos os contextos ou é específica para um tipo de vulnerabilidade, o que cria a possibilidade de serem utilizadas incorretamente. Este problema torna mais fácil o aparecimento de vulnerabilidades se for tido em consideração o facto de uma grande parte dos cursos de programação existentes atualmente não dar ênfase suficiente à segurança. Por último, um outro fator que contribui para o aparecimento de vulnerabilidades é a complexidade das aplicações web atuais. Tal complexidade deve-se ao facto de as tecnologias disponíveis na web terem sofrido uma evolução significativa nos últimos anos, o que leva ao aumento da quantidade de linguagens de programação e funcionalidades que os programadores têm de conhecer. Atualmente, existe um grande número de ferramentas de análise estática destinadas a analisar código-fonte PHP e encontrar potenciais vulnerabilidades. Algumas destas ferramentas são baseadas em taint analysis e outras baseadas em análise dinâmica, execução simbólica, entre outras técnicas. Um problema conhecido destas ferramentas é o facto de, por vezes, reportarem vulnerabilidades que não são reais (falsos positivos), o que pode levar o programador a perder tempo à procura de problemas que não existem. Este tipo de ferramentas dá aos programadores relatórios em formatos variados e a esmagadora maioria delas deixa para o programador a tarefa de verificar se as vulnerabilidades reportadas são reais e removê-las caso o sejam. No entanto, muitas delas não dão informação sobre como remover as vulnerabilidades. Dado que muitos programadores estão mal informado acerca da escrita de código seguro, este processo nem sempre elimina as vulnerabilidades por completo. Apenas um pequeno número de ferramentas de análise estática realiza a correção automática do código-fonte das aplicações e as que o fazem muitas vezes têm limitações. Destas limitações, destaca-se o facto de inserirem código sintaticamente inválido que impede o funcionamento correto das aplicações, o que permite a introdução de melhorias nesta área. De entre os vários tipos de vulnerabilidades que podem ocorrer em aplicações web, os dois mais conhecidos são a injeção de SQL e o Cross-Site Scripting, que serão estudados em detalhe nesta dissertação. Esta dissertação tem dois objetivos principais: em primeiro lugar, estudar estes dois tipos de vulnerabilidades em aplicações web PHP, os diferentes ataques que as exploram e as diferentes formas de escrever código seguro para invalidar esses ataques através da utilização correta de funções seguras; em segundo lugar, desenvolver uma ferramenta capaz de inserir pequenas correções no código-fonte de uma aplicação web PHP de modo a remover vulnerabilidades sem alterar o comportamento original da mesma. As principais contribuições desta dissertação são as seguintes: um estudo dos diferentes tipos de ataques de injeção de SQL e Cross-Site Scripting contra aplicações web escritas em PHP; um estudo dos diferentes métodos de proteger aplicações web escritas em PHP e as situações em que os mesmos devem ser usados; o desenvolvimento de uma ferramenta capaz de remover vulnerabilidades de aplicações web escritas em PHP sem prejudicar o seu comportamento original; uma avaliação experimental da ferramenta desenvolvida com código PHP artificial gerado automaticamente e código PHP real. A solução proposta consiste no desenvolvimento de uma ferramenta de análise estática baseada em taint analysis que seja capaz de analisar programas PHP simplificados e, caso estejam vulneráveis, inserir linhas de código com correções simples que removam tais vulnerabilidades. Tudo isto sem alterar o comportamento original dos programas. A ferramenta desenvolvida limita-se exclusivamente à inserção de novas linhas de código, sem modificar as já existentes, para minimizar a probabilidade de tornar um programa sintaticamente inválido. Isto permite remover vulnerabilidades de aplicações web e, ao mesmo tempo, ensinar aos programadores como escrever código seguro. Os programas PHP simplificados que a ferramenta analisa consistem em ficheiros PHP contendo um único caminho do fluxo de controlo do programa original a que correspondem. Este programa simplificado não pode conter estruturas de decisão nem ciclos. A decisão de analisar programas simplificados foi tomada para permitir manter o foco desta dissertação na inserção de correções seguras, algo que atualmente apenas é feito por um pequeno número de ferramentas. Para avaliar a ferramenta desenvolvida, utilizámos cerca de 1700 casos de teste contendo código PHP artificial gerado automaticamente com vulnerabilidades de Cross-Site Scripting e seis aplicações web reais, escritas em PHP, contendo o mesmo tipo de vulnerabilidade. Foram também utilizados 100 casos de teste contendo código PHP artificial com vulnerabilidades de injeção de SQL. A ferramenta conseguiu analisar todos os ficheiros PHP. Relativamente à capacidade de a ferramenta inserir correções no código-fonte das aplicações, obtivemos resultados encorajadores: todos os ficheiros que foram corrigidos continham código PHP sintaticamente válido e apenas um ficheiro viu o seu comportamento original alterado. O ficheiro cujo comportamento foi alterado apresenta uma estrutura mais complexa do que a esperada para um programa simplificado, o que influenciou a execuc¸ ˜ao da nossa ferramenta neste caso. Relativamente à capacidade de a ferramenta detetar vulnerabilidades, verificámos que a mesma reportou algumas vulnerabilidades que não são reais. Tal situação aconteceu em parte devido ao uso de expressões regulares nas aplicações web, algo que causa muitas dificuldades a ferramentas de análise estática. Verificámos também que muitos dos falsos negativos (vulnerabilidades reais que não foram reportadas) se deveram ao contexto em que determinadas funções seguras são utilizadas, algo que, mais uma vez, causa muitas dificuldades a ferramentas deste tipo. As situações referidas aconteceram principalmente no código artificial, que não deve ser visto como representativo de aplicações web reais. Assim, podemos afirmar que a nossa ferramenta lida eficazmente com código PHP real, o que abre a porta à possibilidade de a mesma ser utilizada para corrigir vulnerabilidades em aplicações disponíveis ao público. Após esta avaliação experimental, concluímos que a solução desenvolvida cumpriu os objetivos principais para os quais foi concebida, ao ser capaz de remover vulnerabilidades sem prejudicar o comportamento original dos programas. A solução desenvolvida constitui uma melhoria nas capacidades das ferramentas de análise estática existentes atualmente, em especial das que realizam correção automática de código. O estudo realizado acerca destes dois tipos de vulnerabilidades permitiu também obter uma fonte de informação correta e confiável acerca das formas de escrever código seguro para prevenir os dois tipos de vulnerabilidades estudados em aplicações web escritas em PHP.Currently, web applications are the most common way to access companies’ services and resources. However, since their appearance, they are known to contain vulnerabilities in their source code. These vulnerabilities, when exploited, can cause serious damage to organizations, such as the theft of millions of user credentials and access to confidential data. For this reason, accessing critical services, such as health care and financial services, with safe web applications is crucial to its well-functioning. Often, vulnerabilities are left in the source code unintentionally by programmers because they do not have the necessary knowledge about how to write secure code. On the other hand, programmers that use secure functions from the programming language in their applications, employing thus secure code, believe that their applications are protected. However, some of those functions do not invalidate all attacks, leaving applications vulnerable. This dissertation has two main objectives: to study the diverse types of web application vulnerabilities, namely different attacks that exploit them, and different forms to build secure code for invalidating such attacks, and to develop a tool capable of protecting PHP web applications by inserting small corrections in their source code. The proposed solution was evaluated with both artificial and real code and the results showed that it can insert safe corrections while maintaining the original behavior of the web applications in the vast majority of the cases, which is very encouraging

    interviews with five key players

    Get PDF
    UIDB/00693/2020 UIDP/00693/2020"Background: Community Music (CM) practices have seen a rise in the last decade. Investigating these types of practices carries steep time and financial investment. As such, holistic studies of the practice are rare (Anderson & Willingham, 2020), with most being focused on specific projects (case studies) or spaces of action (Faria, 2013). A study about the International Journal of Community Music attested to this higher frequency of case-studies in the CM field (Rohwer, 2018). At the time of writing, no in-depth study about CM in Portugal has been published. There is a need to understand what constitutes MC in Portugal. Aims: The aim of this study is to understand the different manifestations of CM in Portugal, namely about key issues such as: i) its definition, identity and field of practice; ii) the career paths of those who study, teach and practice it, iii) examples of good practices. Method: Five interviewees were selected considering their relevance as researchers, practitioners, and teachers of CM and Community Arts (CA) in Portugal. The interviews were semi-structured and followed a script, which is divided into 4 sections: biographical questions; experiences as practitioner; experiences as observer; examples of good practices and relevant agents of CM in Portugal. The interview ends by subjecting the interviewees to a thought experiment on the creation of an ideal call for funding. The interviews’ contents underwent a content and thematic analysis (Neuendorf, 2002) using MaxQDA. The transcripts were coded for references to funding, characterizations of practitioners, characterizations of projects, strengths and weaknesses of projects, terms for (and definitions of) CM/CA, descriptions of good practices, references to specific agents/projects. Results: All interviewees assured the need for a more contextual definitions of CM, and the problems in designing one (e.g. the way adaptation to a term can homogenize a wide and varied field of practice). Most interviewees agreed that CM practices in Portugal show the signs of the lack of funding, being apparently more diverse (less constrained by expectations of funding bodies) and focalized (less ability to enlarge scope); contrasting (for example) with practices in the UK, where public funding is more common. Most of the interviewees reflected at length about the impact a badly designed project may have on the community it’s aimed at, specifically when the practitioner underrates how hard the process of “inclusion” can be. For the interviewees, these problems tend to compound when practitioners have neither experience nor “vocation” in CM. Conclusion: The study suggests that CM in Portugal has characteristics that set it apart from other contexts, such as the heterogeneity of backgrounds of its practitioners, as well as the somewhat narrow scope of many of the projects due to a lack of funding. The relative newness of the practice and it not being constrained by funding-bodies expectations may lead to greater diversity of projects. These results can deepen the understanding of CM in Portugal, opening new paths of inquiry into its identity, and of those who interact with it. "publishersversionpublishe

    Food Fortification – a contribute for the new PECS-CPLP

    Get PDF
    Poster presented at the Nutrition 2014: III World Congress of Public Health Nutrition = III Congresso Mundial de Nutrição e Saúde Pública. Las Palmas de Gran Canaria, Spain, 9-12 November 2014

    Improving visual attractiveness to enhance city-river integration - a methodological approach for ongoing evaluation

    Get PDF
    The relationship between rivers and cities has evolved from a natural coexistence and interdependence to a progressive relationship of segregation and disintegration. This article uses a planning experiment to explore and discuss some concerns about visual attractiveness of city–river landscapes in promoting spatial integration of cities and rivers. It presents a methodological approach integrating expert opinions and public perception questionnaires. This is a contribution to making operational an ongoing aesthetic assessment of different dimensions and viewpoints at the city scale. This approach is illustrated with a case-study in the Lisbon metropolitan area and its main assessment results are integrated in a city–river profile that can be useful in ongoing evaluation processes of river landscapes and urban planning practice

    Full-scale experimental testing of retrofitting techniques in Portuguese “Pombalino” traditional timber frame walls

    Get PDF
    Traditional timber frame walls are constructive elements representative of different timber frame buildings that are well known as one of the most efficient seismic resistant structures in the world. Timber frame walls were also used in the reconstruction of buildings of the old town of Lisbon after the earthquake of 1755 aiming at improving their seismic global behaviour. As it is important to preserve these structures, a better knowledge about their behaviour under seismic actions is important and can give some indications about possible retrofitting techniques to be used to improve the seismic performance. Due to the great rehabilitation effort currently carried out in many countries, a better understanding of retrofitting techniques is also needed. Therefore, this paper aims at providing a study on possible retrofitting techniques adopting traditional solutions such as bolts and steel plates. Static cyclic tests have been performed on retrofitted traditional timber frame walls in order to study their seismic performance. The experimental results showed the overall good seismic performance of steel plates and the more ductile behaviour of retrofitted timber frame walls with bolts.Fundação para a Ciência e a Tecnologia (FCT

    The effects of relational psychomotricity on pre-school children

    Get PDF
    Esta presentación se centra en la discusión sobre la aplicación de la psicomotricidad relacional como parte de un estudio realizado sobre niños en edad preescolar. La literatura nos muestra que la psicomotricidad es una práctica testigo de la implantación de lo simbólico en el cuerpo y que sus efectos placenteros son una invitación a entender nuestro mundo interno a través de la motricidad. Es un método que utiliza la unidad de cuerpo y mente integrando las interacciones cognitivas, emocionales-afectivas, simbólicas y físicas en la capacidad del individuo para ser y actuar en un contexto psico-socio-cultural. Los conceptos discutidos en este documento se basan en el trabajo de pioneros Bernard Aucouturier y André Lapierre que desarrollaron una práctica basada en la externalización de la expresión de las dificultades psicoafectivas a través de actividades lúdicas acentuadas en una relación entre el sujeto y su entorno. Discutimos las observaciones de la interacción entre los niños y cuatro objetos utilizados durante las sesiones de psicomotricidad relacional. Las representaciones simbólicas de las actividades lúdicas son también objeto de reflexión como el papel de la figura adulta, actuando como un instrumento favorable a la transformación del placer de actuar en el placer de pensar.This presentation will focus on the discussion regarding the application of relational psychomotricity as part of a study involving preschool children. The literature shows that psychomotricity is a practice that witnesses the implantation of the symbolic in the body and it´s pleasurable affects through an invitation to understand our internal world through motricity. It is a method that utilizes the unity of body and mind integrating the cognitive, emotional-affective, symbolical and physical interactions in the individual’s capacity to be and to act in a psycho-socio-cultural context. The concepts discussed in this paper are based on the work of pioneers Bernard Aucouturier and André Lapierre who developed a practice based on the externalization of expression of psychoaffective difficulties through ludic activities accentuated in a relationship between the subject and his environment. We discuss the observations of the interaction between the children and four objects utilized during relational psychomotricity sessions. The symbolic representations of the ludic activities are also subject of reflection as is the role of the adult figure working as an instrument favorable to transform the pleasure of acting into the pleasure of thinking.peerReviewe

    Computability, noncomputability and undecidability of maximal intervals of IVPs

    Get PDF
    Let (α, β) ⊆ R denote the maximal interval of existence of solution for the initial-value problem dx dt = f(t, x) x(t0) = x0, where E is an open subset of Rm+1, f is continuous in E and (t0, x0) ∈ E. We show that, under the natural definition of computability from the point of view of applications, there exist initial-value problems with computable f and (t0, x0) whose maximal interval of existence (α, β) is noncomputable. The fact that f may be taken to be analytic shows that this is not a lack of regularity phenomenon. Moreover, we get upper bounds for the “degree of noncomputability” by showing that (α, β) is r.e. (recursively enumerable) open under very mild hypotheses. We also show that the problem of determining whether the maximal interval is bounded or unbounded is in general undecidable

    Robust simulations of Turing machines with analytic maps and flows

    Get PDF
    In this paper, we show that closed-form analytic maps and ows can simulate Turing machines in an error-robust manner. The maps and ODEs de ning the ows are explicitly obtained and the simulation is performed in real time
    corecore