• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 296
  • 59
  • 1
  • Tagged with
  • 356
  • 192
  • 159
  • 115
  • 99
  • 34
  • 30
  • 29
  • 28
  • 28
  • 28
  • 27
  • 26
  • 26
  • 24
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
41

Um Middleware reflexivo para apoiar o desenvolvimento de aplicações com requisitos de segurança

Siqueira, Torgan Flores de January 2004 (has links)
Muitos aplicativos atuais, envolvendo diversos domínios de conhecimento, são estruturados como arquiteturas de software que incorporam, além dos requisitos funcionais, requisitos não funcionais, como segurança, por exemplo. Tais requisitos podem constituir um domínio próprio, e, portanto, serem comuns a várias outras arquiteturas de software. Tecnologias como Programação Orientada a Aspectos, Reflexão Computacional e Padrões de Projeto colaboram no desenvolvimento de arquiteturas que provêem a separação de requisitos não funcionais. Porém, sua experimentação e adoção no domínio da segurança computacional ainda é incipiente. O foco deste trabalho é a elaboração de um padrão de projeto voltado à segurança, utilizando como arquitetura conceitual programação orientada a aspectos, e como arquitetura de implementação, reflexão computacional. A composição destas tecnologias resulta em um middleware orientado à segurança, voltado a aplicações desenvolvidas em Java. Estuda-se as tecnologias, seus relacionamentos com a área de segurança, seguido da proposta de uma arquitetura de referência, a partir da qual é extraído um protótipo do middleware de segurança. Este, por sua vez, provê mecanismos de segurança tão transparentes quanto possível para as aplicações que suporta. Com o objetivo de realizar a implementação do middleware de segurança, também são estudadas os mecanismos de segurança da plataforma Java, porém limitado ao escopo deste trabalho. Segue-se o estudo da base conceitual das tecnologias de Reflexão Computacional, o modelo de implementação, seguido de Programação Orientada a Aspectos, o modelo conceitual, e, por fim, têm-se os Padrões de Projeto, a arquitetura de referência. Integrando as três tecnologias apresentadas, propõe-se um modelo, que estabelece a composição de um Padrão Proxy, estruturado de acordo com a arquitetura reflexiva. Este modelo de arquitetura objetiva implementar o aspecto de segurança de acesso a componentes Java, de forma não intrusiva,. Baseado no modelo, descreve-se a implementação dos diversos elementos do middleware, estruturados de forma a ilustrar os conceitos propostos. Ao final, apresenta-se resultados obtidos durante a elaboração deste trabalho, bem como críticas e sugestões de trabalhos futuros.
42

Validação experimental de sistemas de arquivos baseados em journaling para o sistema operacional Linux

Mello, Leonardo Garcia de January 2004 (has links)
Alta disponibilidade (muitas vezes referenciada como HA, de High Availability) é uma característica de sistemas computacionais que são projetados para evitar ao máximo as interrupções, planejadas ou não, na prestação de serviços. Em alta disponibilidade, o ideal é haver poucas falhas e, mesmo quando estas acontecerem, que o seu tempo médio de reparo (ou MTTR, de Mean Time To Repair) seja tão pequeno quanto possível. Sistemas operacionais têm um papel importante em alta disponibilidade, sendo preferível o uso daqueles que possuam sistemas de arquivos seguros e relativamente independentes de ações por agentes humanos para a recuperação. Uma das abordagens para auxiliar a obter-se uma alta disponibilidade em sistemas de arquivos é a do tipo journaling, ou meta-data logging. Existe uma série de sistemas de arquivos para o sistema operacional Linux baseando-se nela, tais como ext3, JFS, ReiserFS e XFS. Este trabalho tem por objetivo propor uma metodologia de validação experimental para avaliar a eficiência do mecanismo para recuperação de sistemas de arquivos baseados em journaling, na ocorrência de falhas. Para isso, a técnica de validação empregada é a da injeção de falhas e o sistema sob teste é uma implementação do XFS. Foram utilizados os recursos de depuração do sistema operacional Linux (que permitem a utilização de métodos para interceptação e manipulação de chamadas de sistema) para a implementação de um injetor de falhas específico para sistemas de arquivos baseados em journaling, o qual foi chamado de FIJI (Fault Injector for Journaling fIlesystems). Manipular os parâmetros de chamadas de sistema (ou system calls) através do FIJI equivale a alterar as requisições feitas ao sistema operacional. A eficiência do mecanismo de journaling é medida injetando-se falhas e medindose o MTTR e a cobertura de falhas. Basicamente, o que procura-se fazer através do injetor de falhas FIJI é ignorar os logs do journaling e manipular uma quantidade de informações diferente daquela que foi solicitada originalmente.
43

Arquitetura distribuída e automatizada para mitigação de botnet baseada em análise dinâmica de malwares / An automated and distributed architecture for botnet mitigation based in dynamic malware analysis

Ceron, João Marcelo January 2010 (has links)
Atualmente, uma das mais sérias ameaças a segurança da Internet são as botnets. As botnets - rede de máquinas comprometidas e controladas remotamente por um atacante - caracterizam-se por serem muito dinâmicas. Frequentemente novas características são incorporadas as redes dificultando que ferramentas tradicionais tal como sistemas de antivírus e IDS sejam efetivas. Diante disso, faz-se necessário desenvolver novos mecanismos que possam complementar as atuais técnicas de defesa. Esta dissertação de mestrado apresenta uma proposta de arquitetura para uma ferramenta de mitigação e detecção de botnets baseada em assinatura de rede de máquinas comprometidas por bots. Essa arquitetura automatiza o processo de geração de assinaturas compilando informações de analisadores de malwares gratuitamente disponibilizados na Web. Além disso, utilizouse de monitoração de fluxos através da solução Netflow para identificar o comportamento de rede similar aos mapeados em arquivos maliciosos analisados. Esse comportamento mapeado sinaliza uma possível infecção de máquinas na rede monitorada. Essa identificação dispara eventos na ferramenta proposta que auxiliará o gerente a mitigar a máquina comprometida. Por fim, avaliou-se a solução proposta no contexto de uma grande rede acadêmica: da própria Universidade Federal do Rio Grande do Sul (UFRGS). Os resultados alcançados por essa solução permitiram concluir que 1,5% dos controladores ficam por um longo período (52 dias) realizando atividades maliciosas e, também, observouse um pequeno grupo de controladores responsáveis pela administração de uma grande quantidade de máquinas. / Currently, botnets are one of the most serious threats of Internet security. The botnets - network of compromissed machines remotely controlled by an attacker - are being very dynamic threats. Often new features are incorporated into thismalicious networksmaking hard for traditional tools, such as antivirus and IDS, to be effective. Therefore, it is necessary to develop new mechanisms that can complement the current defense techniques. This dissertation presents an architecture for a tool for botnet mitigation and detection. The tool is based in network signature obtained from bot compromissed machine’s. This architecture automates the process of signature generation compiling information from online malwares analyze tools. Furthermore, flows monitoring tools was used to identify similar behavior to those mapped in malware (bot) analyzed by the system. This mapped behavior in flows indicates possible compromissed machines, with this, the system triggers events to help the security manager to mitigate the compromissed machines. Finally, the proposed solution was evaluated in a academic network: in the Federal University of Rio Grande do Sul. The results achieved by this solution helped to observe that more than 1.5% of the botnet controllers’s remain active for a long period of time (52 days) performing malicious activities. Also, was observed a small group of controllers responsible for the adminstration of a large number of compromissed machines.
44

Validação experimental de sistemas de arquivos baseados em journaling para o sistema operacional Linux

Mello, Leonardo Garcia de January 2004 (has links)
Alta disponibilidade (muitas vezes referenciada como HA, de High Availability) é uma característica de sistemas computacionais que são projetados para evitar ao máximo as interrupções, planejadas ou não, na prestação de serviços. Em alta disponibilidade, o ideal é haver poucas falhas e, mesmo quando estas acontecerem, que o seu tempo médio de reparo (ou MTTR, de Mean Time To Repair) seja tão pequeno quanto possível. Sistemas operacionais têm um papel importante em alta disponibilidade, sendo preferível o uso daqueles que possuam sistemas de arquivos seguros e relativamente independentes de ações por agentes humanos para a recuperação. Uma das abordagens para auxiliar a obter-se uma alta disponibilidade em sistemas de arquivos é a do tipo journaling, ou meta-data logging. Existe uma série de sistemas de arquivos para o sistema operacional Linux baseando-se nela, tais como ext3, JFS, ReiserFS e XFS. Este trabalho tem por objetivo propor uma metodologia de validação experimental para avaliar a eficiência do mecanismo para recuperação de sistemas de arquivos baseados em journaling, na ocorrência de falhas. Para isso, a técnica de validação empregada é a da injeção de falhas e o sistema sob teste é uma implementação do XFS. Foram utilizados os recursos de depuração do sistema operacional Linux (que permitem a utilização de métodos para interceptação e manipulação de chamadas de sistema) para a implementação de um injetor de falhas específico para sistemas de arquivos baseados em journaling, o qual foi chamado de FIJI (Fault Injector for Journaling fIlesystems). Manipular os parâmetros de chamadas de sistema (ou system calls) através do FIJI equivale a alterar as requisições feitas ao sistema operacional. A eficiência do mecanismo de journaling é medida injetando-se falhas e medindose o MTTR e a cobertura de falhas. Basicamente, o que procura-se fazer através do injetor de falhas FIJI é ignorar os logs do journaling e manipular uma quantidade de informações diferente daquela que foi solicitada originalmente.
45

Arquitetura distribuída e automatizada para mitigação de botnet baseada em análise dinâmica de malwares / An automated and distributed architecture for botnet mitigation based in dynamic malware analysis

Ceron, João Marcelo January 2010 (has links)
Atualmente, uma das mais sérias ameaças a segurança da Internet são as botnets. As botnets - rede de máquinas comprometidas e controladas remotamente por um atacante - caracterizam-se por serem muito dinâmicas. Frequentemente novas características são incorporadas as redes dificultando que ferramentas tradicionais tal como sistemas de antivírus e IDS sejam efetivas. Diante disso, faz-se necessário desenvolver novos mecanismos que possam complementar as atuais técnicas de defesa. Esta dissertação de mestrado apresenta uma proposta de arquitetura para uma ferramenta de mitigação e detecção de botnets baseada em assinatura de rede de máquinas comprometidas por bots. Essa arquitetura automatiza o processo de geração de assinaturas compilando informações de analisadores de malwares gratuitamente disponibilizados na Web. Além disso, utilizouse de monitoração de fluxos através da solução Netflow para identificar o comportamento de rede similar aos mapeados em arquivos maliciosos analisados. Esse comportamento mapeado sinaliza uma possível infecção de máquinas na rede monitorada. Essa identificação dispara eventos na ferramenta proposta que auxiliará o gerente a mitigar a máquina comprometida. Por fim, avaliou-se a solução proposta no contexto de uma grande rede acadêmica: da própria Universidade Federal do Rio Grande do Sul (UFRGS). Os resultados alcançados por essa solução permitiram concluir que 1,5% dos controladores ficam por um longo período (52 dias) realizando atividades maliciosas e, também, observouse um pequeno grupo de controladores responsáveis pela administração de uma grande quantidade de máquinas. / Currently, botnets are one of the most serious threats of Internet security. The botnets - network of compromissed machines remotely controlled by an attacker - are being very dynamic threats. Often new features are incorporated into thismalicious networksmaking hard for traditional tools, such as antivirus and IDS, to be effective. Therefore, it is necessary to develop new mechanisms that can complement the current defense techniques. This dissertation presents an architecture for a tool for botnet mitigation and detection. The tool is based in network signature obtained from bot compromissed machine’s. This architecture automates the process of signature generation compiling information from online malwares analyze tools. Furthermore, flows monitoring tools was used to identify similar behavior to those mapped in malware (bot) analyzed by the system. This mapped behavior in flows indicates possible compromissed machines, with this, the system triggers events to help the security manager to mitigate the compromissed machines. Finally, the proposed solution was evaluated in a academic network: in the Federal University of Rio Grande do Sul. The results achieved by this solution helped to observe that more than 1.5% of the botnet controllers’s remain active for a long period of time (52 days) performing malicious activities. Also, was observed a small group of controllers responsible for the adminstration of a large number of compromissed machines.
46

Técnicas de detecção de Sniffers / Sniffer detection techniques

Casagrande, Rogério Antônio January 2003 (has links)
A área de Detecção de Intrusão, apesar de muito pesquisada, não responde a alguns problemas reais como níveis de ataques, dim ensão e complexidade de redes, tolerância a falhas, autenticação e privacidade, interoperabilidade e padronização. Uma pesquisa no Instituto de Informática da UFRGS, mais especificamente no Grupo de Segurança (GSEG), visa desenvolver um Sistema de Detecção de Intrusão Distribuído e com características de tolerância a falhas. Este projeto, denominado Asgaard, é a idealização de um sistema cujo objetivo não se restringe apenas a ser mais uma ferramenta de Detecção de Intrusão, mas uma plataforma que possibilite agregar novos módulos e técnicas, sendo um avanço em relação a outros Sistemas de Detecção atualmente em desenvolvimento. Um tópico ainda não abordado neste projeto seria a detecção de sniffers na rede, vindo a ser uma forma de prevenir que um ataque prossiga em outras estações ou redes interconectadas, desde que um intruso normalmente instala um sniffer após um ataque bem sucedido. Este trabalho discute as técnicas de detecção de sniffers, seus cenários, bem como avalia o uso destas técnicas em uma rede local. As técnicas conhecidas são testadas em um ambiente com diferentes sistemas operacionais, como linux e windows, mapeando os resultados sobre a eficiência das mesmas em condições diversas. / The area of Intrusion Detection, although widely searched, does not answer to some real problems as the level of attacks, dimension and complexity of networks, fault tolerance, authentication and privacy, interoperability and standardization. A current research at the Institute of Computer Science of UFRGS, more specifically in the Security Group (GSEG), aims at developing a Distributed Intrusion Detection System with features of fault tolerance. This project, called Asgaard, is the accomplishment of a system whose objective is not only restricted to be another tool concerning Intrusion Detection, but also a platform that makes possible to add new modules and techniques, which is an advance with respect to other Intrusion Detection Systems in progress. A point which has not yet been investigated in this project would be the network sniffer detection, which is supposed to be a way to prevent that an attack proceeds to other hosts and interconnected networks, once a intruder usually installs a sniffer after a well-performed attack. This work explores the sniffers detection techniques, their sets, as well as verifies these techniques in a local area network. The known techniques are tested in an environment with different operating systems, as linux and windows, explaining the results on the efficiency of these systems in several conditions.
47

Uma Proposta de uso da Arquitetura Trace como um sistema de detecção de intrusão

Meneghetti, Edgar Athayde January 2002 (has links)
Este trabalho propõe a utilização da arquitetura Trace como um sistema de detecção de intrusão. A arquitetura Trace oferece suporte ao gerenciamento de protocolos de alto nível, serviços e aplicações através de uma abordagem baseada na observação passiva de interações de protocolos (traços) no tráfego de rede. Para descrever os cenários a serem monitorados, é utilizada uma linguagem baseada em máquinas de estado. Esta linguagem permite caracterizar aspectos observáveis do tráfego capturado com vistas a sua associação com formas de ataque. O trabalho mostra, através de exemplos, que esta linguagem é adequada para a modelagem de assinaturas de ataques e propõe extensões para permitir a especificação de um número maior de cenários ligados ao gerenciamento de segurançaa. Em seguida, é descrita a implementação do agente de monitoração, componente-chave da arquitetura Trace, e sua utilização para detectar intrusões. Esse agente (a) captura o tráfego da rede, (b) observa a ocorrência dos traços programados e (c) armazena estatísticas sobre a sua ocorrência em uma base de informações de gerenciamento (MIB { Management Information Base). O uso de SNMP permite a recuperação destas informações relativas µa ocorrências dos ataques. A solução apresentada mostrou ser apropriada para resolver duas classes de problemas dos sistemas de detecção de intrusão: o excesso de falsos positivos e a dificuldade em se modelar certos ataques.
48

Sistema de detecção de intrusão baseado em métodos estatísticos para análise de comportamento

Silva, Ana Cristina Benso da January 2003 (has links)
A segurança no ambiente de redes de computadores é um elemento essencial para a proteção dos recursos da rede, dos sistemas e das informações. Os mecanismos de segurança normalmente empregados são criptografia de dados, firewalls, mecanismos de controle de acesso e sistemas de detecção de intrusão. Os sistemas de detecção de intrusão têm sido alvo de várias pesquisas, pois é um mecanismo muito importante para monitoração e detecção de eventos suspeitos em um ambiente de redes de computadores. As pesquisas nessa área visam aprimorar os mecanismos de detecção de forma a aumentar a sua eficiência. Este trabalho está focado na área de detecção de anomalias baseada na utilização de métodos estatísticos para identificar desvios de comportamento e controlar o acesso aos recursos da rede. O principal objetivo é criar um mecanismo de controle de usuários da rede, de forma a reconhecer a legitimidade do usuário através de suas ações. O sistema proposto utilizou média e desvio padrão para detecção de desvios no comportamento dos usuários. Os resultados obtidos através da monitoração do comportamento dos usuários e aplicação das medidas estatísticas, permitiram verificar a sua validade para o reconhecimento dos desvios de comportamento dos usuários. Portanto, confirmou-se a hipótese de que estas medidas podem ser utilizadas para determinar a legitimidade de um usuário, bem como detectar anomalias de comportamento. As análises dos resultados de média e desvio padrão permitiram concluir que, além de observar os seus valores estanques, é necessário observar o seu comportamento, ou seja, verificar se os valores de média e desvio crescem ou decrescem. Além da média e do desvio padrão, identificou-se também a necessidade de utilização de outra medida para refletir o quanto não se sabe sobre o comportamento de um usuário. Esta medida é necessária, pois a média e o desvio padrão são calculados com base apenas nas informações conhecidas, ou seja, informações registradas no perfil do usuário. Quando o usuário faz acessos a hosts e serviços desconhecidos, ou seja, não registrados, eles não são representados através destas medidas. Assim sendo, este trabalho propõe a utilização de uma medida denominada de grau de desconhecimento, utilizada para medir quantos acessos diferentes do seu perfil o usuário está realizando. O sistema de detecção de anomalias necessita combinar as medidas acima descritas e decidir se deve tomar uma ação no sistema. Pra este fim, propõe-se a utilização de sistemas de regras de produção e lógica fuzzy, que permitem a análise das medidas resultantes e execução do processo de decisão que irá desencadear uma ação no sistema. O trabalho também discute a integração do sistema de detecção de intrusão proposto à aplicação de gerenciamento SNMP e ao gerenciamento baseado em políticas.
49

Um Middleware reflexivo para apoiar o desenvolvimento de aplicações com requisitos de segurança

Siqueira, Torgan Flores de January 2004 (has links)
Muitos aplicativos atuais, envolvendo diversos domínios de conhecimento, são estruturados como arquiteturas de software que incorporam, além dos requisitos funcionais, requisitos não funcionais, como segurança, por exemplo. Tais requisitos podem constituir um domínio próprio, e, portanto, serem comuns a várias outras arquiteturas de software. Tecnologias como Programação Orientada a Aspectos, Reflexão Computacional e Padrões de Projeto colaboram no desenvolvimento de arquiteturas que provêem a separação de requisitos não funcionais. Porém, sua experimentação e adoção no domínio da segurança computacional ainda é incipiente. O foco deste trabalho é a elaboração de um padrão de projeto voltado à segurança, utilizando como arquitetura conceitual programação orientada a aspectos, e como arquitetura de implementação, reflexão computacional. A composição destas tecnologias resulta em um middleware orientado à segurança, voltado a aplicações desenvolvidas em Java. Estuda-se as tecnologias, seus relacionamentos com a área de segurança, seguido da proposta de uma arquitetura de referência, a partir da qual é extraído um protótipo do middleware de segurança. Este, por sua vez, provê mecanismos de segurança tão transparentes quanto possível para as aplicações que suporta. Com o objetivo de realizar a implementação do middleware de segurança, também são estudadas os mecanismos de segurança da plataforma Java, porém limitado ao escopo deste trabalho. Segue-se o estudo da base conceitual das tecnologias de Reflexão Computacional, o modelo de implementação, seguido de Programação Orientada a Aspectos, o modelo conceitual, e, por fim, têm-se os Padrões de Projeto, a arquitetura de referência. Integrando as três tecnologias apresentadas, propõe-se um modelo, que estabelece a composição de um Padrão Proxy, estruturado de acordo com a arquitetura reflexiva. Este modelo de arquitetura objetiva implementar o aspecto de segurança de acesso a componentes Java, de forma não intrusiva,. Baseado no modelo, descreve-se a implementação dos diversos elementos do middleware, estruturados de forma a ilustrar os conceitos propostos. Ao final, apresenta-se resultados obtidos durante a elaboração deste trabalho, bem como críticas e sugestões de trabalhos futuros.
50

[pt] DETECÇÃO DE VULNERABILIDADES DE SEGURANÇA EM TEMPO DE PROGRAMAÇÃO COM O INTUITO DE DAR SUPORTE A PROGRAMAÇÃO SEGURA / [en] EARLY VULNERABILITY DETECTION FOR SUPPORTING SECURE PROGRAMMING

23 February 2016 (has links)
[pt] Programação segura é a prática de se escrever programas que são resistentes a ataques de pessoas ou programas mal-intencionados. Os programadores de software seguro precisam estar continuamente cientes de vulnerabilidades de segurança ao escrever as instruções de código de um programa. Eles precisam estar preparados para executar continuamente ações para prevenir ou removê-las de seus programas. Neste cenário, as técnicas de análise estática foram concebidas para encontrar vulnerabilidades no código-fonte. No entanto, a maioria das técnicas existentes são construídas de uma maneira a incentivar a detecção de vulnerabilidade tardiamente, apenas quando os desenvolvedores já tenham produzido (e compilado) por completo um ou mais módulos de uma aplicação. Portanto, esta abordagem, também conhecida como detecção tardia, não promove programação segura, mas apenas análise retrospectiva de segurança. O atraso na detecção de vulnerabilidades também é influenciado pela alta taxa de falsos positivos, gerados pelo casamento de padrões, mecanismo comumente usado por técnicas de análise estática. Esta dissertação tem dois objetivos. Em primeiro lugar, nós propomos promover detecção de vulnerabilidades, enquanto o desenvolvedor está editando cada instrução do programa, também conhecida como detecção antecipada. A detecção antecipada pode aproveitar o conhecimento do desenvolvedor sobre o contexto do código que está sendo desenvolvido, ao contrário da detecção tardia em que os desenvolvedores enfrentam dificuldades para lembrar detalhes do código vulnerável produzido a horas ou semanas atrás. Nosso detector de vulnerabilidades é incorporado ao editor de um ambiente integrado de desenvolvimento de software. Em segundo lugar, vamos explorar uma técnica criada e comumente utilizada para a implementação de otimizações em compiladores, chamada de análise de fluxo de dados, doravante denominada como DFA. DFA tem a capacidade de seguir os caminhos de um objeto, até a sua origem ou para caminhos onde o seu conteúdo tenha sido alterado. DFA pode ser adequado para encontrar se um objeto tem um ou mais caminhos vulneráveis. Para isso, implementamos um plugin Eclipse, como prova de conceito, para detecção antecipada de vulnerabilidades em programas Java. Depois disso, foram realizados dois estudos empíricos baseados em vários sistemas da indústria para avaliar se a segurança de um código fonte produzido pode ser melhorada através de DFA e detecção contínua de vulnerabilidades. Nossos estudos confirmaram que: (i) análise de fluxo de dados reduz significativamente a taxa de falsos positivos, quando comparada com técnicas existentes, sem prejudicar o desempenho do detector, e (ii) a detecção antecipada melhora a consciência entre os desenvolvedores e os incentiva a corrigir vulnerabilidades de segurança prontamente. / [en] Secure programming is the practice of writing programs that are resistant to attacks by malicious people or programs. Programmers of secure software have to be continuously aware of security vulnerabilities when writing their program statements. They also ought to continuously perform actions for preventing or removing vulnerabilities from their programs. In order to support these activities, static analysis techniques have been devised to find vulnerabilities in the source code. However, most of these techniques are built to encourage vulnerability detection a posteriori, only when developers have already fully produced (and compiled) one or more modules of a program. Therefore, this approach, also known as late detection, does not support secure programming but rather encourages posterior security analysis. The lateness of vulnerability detection is also influenced by the high rate of false positives, yielded by pattern matching, the underlying mechanism used by existing static analysis techniques. The goal of this dissertation is twofold. First, we propose to perform continuous detection of security vulnerabilities while the developer is editing each program statement, also known as early detection. Early detection can leverage his knowledge on the context of the code being created, contrary to late detection when developers struggle to recall and fix the intricacies of the vulnerable code they produced from hours to weeks ago. Our continuous vulnerability detector is incorporated into the editor of an integrated software development environment. Second, we explore a technique originally created and commonly used for implementing optimizations on compilers, called data flow analysis, hereinafter referred as DFA. DFA has the ability to follow the path of an object until its origins or to paths where it had its content changed. DFA might be suitable for finding if an object has a vulnerable path. To this end, we have implemented a proof-of-concept Eclipse plugin for continuous vulnerability detection in Java programs. We also performed two empirical studies based on several industry-strength systems to evaluate if the code security can be improved through DFA and early vulnerability detection. Our studies confirmed that: (i) the use of data flow analysis significantly reduces the rate of false positives when compared to existing techniques, without being detrimental to the detector performance, and (ii) early detection improves the awareness among developers and encourages programmers to fix security vulnerabilities promptly.

Page generated in 0.0344 seconds