BRPI0720666A2 - Detecção automática de vulnerabilidade e resposta - Google Patents

Detecção automática de vulnerabilidade e resposta Download PDF

Info

Publication number
BRPI0720666A2
BRPI0720666A2 BRPI0720666-6A BRPI0720666A BRPI0720666A2 BR PI0720666 A2 BRPI0720666 A2 BR PI0720666A2 BR PI0720666 A BRPI0720666 A BR PI0720666A BR PI0720666 A2 BRPI0720666 A2 BR PI0720666A2
Authority
BR
Brazil
Prior art keywords
malfunction
interface
function
user
program
Prior art date
Application number
BRPI0720666-6A
Other languages
English (en)
Inventor
Justin Rogers
Eric M Lawrence
Henry F Bridge
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0720666A2 publication Critical patent/BRPI0720666A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Description

“DETECÇÃO AUTOMÁTICA DE VULNERABILIDADE E RESPOSTA” Antecedentes
Vários métodos para abrandar as vulnerabilidades de software são reativos e muito demorados. Ou seja, uma vez que uma vulnerabilidade seja descoberta, as companhias de software tipicamente liberam uma correção algum tempo depois direcionada para impedir os atacantes de explorarem a vulnerabilidade. Ao mesmo tempo em que esta estratégia funcio- nou bem para proteger os usuários no passado, sua eficácia parcialmente requer (1) desco- bridores de vulnerabilidade para encontrar as vulnerabilidades antes dos hackers, (2) des- cobridores de vulnerabilidade para relatar os problemas para as companhias de software antes que eles sejam revelados publicamente, e (3) alta velocidade de adoção da correção, de modo que se uma exploração de falha for desenvolvida, os usuários que adotam a corre- ção fiquem protegidos da exploração de falha.
Infelizmente, as tendências recentes não dão uma boa previsão para estes reque- rimentos. Especificamente, a velocidade de exploração de falha de O dia (isto é, explorações de falha que foram liberadas para vulnerabilidade não reveladas com segurança não fixada) tem aumentado, e as velocidades de adoção de correção continuam a ser lentas. De modo a impedir o cenário da segurança de piorar de forma considerável, os fabricantes de softwa- re devem encontrar um meio para tanto descobrir como abrandar as vulnerabilidades de forma mais rápida.
Sumário
Várias concretizações detectam vulnerabilidades e de forma responsiva, podem modificar um programa afetado de modo que mesmo se uma exploração de falha acontecer, a integridade do programa pode ser mantida.
Em pelo menos algumas concretizações, um componente local de detecção auto- mática de vulnerabilidade e resposta (AVD/R) funciona em uma máquina local de um usuá- rio para detectar e abrandar vulnerabilidades potenciais através do uso de uma proteção; e um componente remoto de detecção automática de vulnerabilidade e resposta (AVD/R) fun- ciona para relatar as vulnerabilidades percebidas de modo que uma ou mais proteções pos- sam ser distribuídas e aplicadas localmente para abrandar as vulnerabilidades percebidas.
Breve Descrição dos Desenhos
A Fig. 1 ilustra um sistema de acordo com uma concretização.
A Fig. 2 é um fluxograma que descreve as etapas em um método de acordo com uma concretização.
A Fig. 3 ilustra um sistema de acordo com uma concretização.
A Fig. 4 é um fluxograma que descreve as etapas em um método de acordo com uma concretização.
A Fig. 5 ilustra um sistema de acordo com uma concretização. A Fig. 6 é um fluxograma que descreve as etapas em um método de acordo com uma concretização.
Descrição Detalhada
Vista Geral
Várias concretizações detectam vulnerabilidades de segurança e, de forma respon- siva, podem modificar um programa afetado de modo que mesmo se uma exploração de falha aconteça, a integridade do programa pode ser mantida.
Em pelo menos algumas concretizações, um componente local de detecção auto- mática de vulnerabilidade e resposta (AVD/R) funciona em uma máquina local de um usuá- rio para detectar e abrandar vulnerabilidades potenciais através do uso de uma proteção; e, um componente remoto de detecção automática de vulnerabilidade e resposta (AVD/R) fun- ciona para reportar as vulnerabilidades percebidas de modo que uma ou mais proteções possam ser distribuídas e aplicadas de forma local para abrandar as vulnerabilidades perce- bidas.
Na discussão a seguir, uma seção denominada “Vulnerabilidades de Segurança Em Geral” é proporcionada e descreve, muito geralmente, a noção de uma vulnerabilidade de segurança e como ela pode surgir. Depois disso, uma seção denominada “AVD/R Local” é proporcionada e discute soluções locais para a detecção de vulnerabilidade e resposta. De- pois disso, uma seção denominada “AVD/R Remota” é proporcionada e discute várias solu- ções remotas para a detecção de vulnerabilidade. Finalmente, uma seção denominada “Uti- lizando tanto AVD/R Local como Remota” é proporcionada e descreve como tanto a aborda- gem local como a remota podem ser aplicadas para proporcionar uma seqüência contínua de proteção.
Vulnerabilidades de Segurança em Geral
Várias vulnerabilidades de segurança emanam de erros de programação. Existem vários diferentes tipos de erros de programação que podem levar a uma vulnerabilidade. Por exemplo, um erro comum de programação é um que permite o transbordo de memória tem- porária. Em situações como esta, um programador pode ter alocado uma certa quantidade de espaço para manter dados. Um explorador pode descobrir que se você proporcionar para o programa mais dados do que ele espera, e se o programador não implantou as verifica- ções corretas para abrandar ou eliminar as possibilidades de um transbordo de memória temporária, então estes dados em excesso podem causar o transbordo. Utilizando a condi- ção de transbordo, o explorador pode anexar dados ou código no fim dos dados recebidos na memória temporária e causar um transbordo. Se os dados ou código que são anexados forem executados, isto pode alterar o programa ou modificar sua funcionalidade de algum modo. Por conseqüência, em virtude de um erro de programação, uma vulnerabilidade de segurança pode ser explorada. Entretanto, freqüentemente, as explorações de uma vulnerabilidade de segurança podem levar a funcionamentos errôneos do programa. No exemplo acima, a exploração de falha pode fazer o programa olhar para alguma parte aleatória da memória e começar a e- xecutar código que causa uma operação inválida e por conseqüência, causa que o progra- ma funcione incorretamente.
Por conseqüência, a partir de um erro de funcionamento de programa, pode-se de- duzir que existe um problema com o programa. Este problema pode ser associado com uma vulnerabilidade de segurança. Ou seja, as execuções errôneas do programa freqüentemente são um sinal de uma vulnerabilidade por que: (1) vários dos mesmos erros de programação que causam erros de funcionamento do programa são exploráveis; (2) o desenvolvimento da exploração de falha envolve uma boa quantidade de tentativa e erro - por conseqüência, durante estágios anteriores do desenvolvimento da exploração de falha, tentativas falhas irão causar que o programa funcione erroneamente; e (3) as explorações de falha freqüen- temente trabalham somente em relação a versões especificas de um programa, e algumas vezes irão causar o funcionamento errado de outra versões.
AVD/R Local
A Fig. 1 ilustra um sistema de acordo com uma concretização, geralmente designa- do por 100. O sistema 100 inclui um dispositivo de computação 102 possuindo um ou mais processadores 104, um ou mais meios legíveis por computador 106 e uma ou mais aplica- ções 108 que residem no meio legível por computador e que são executáveis pelos proces- sadores. Em adição, o dispositivo de computação 102 inclui um componente local de AVD/R 110 que, neste exemplo, é implementado em software.
Apesar do dispositivo de computação 102 ser ilustrado na forma de um computador de mesa, é para ser apreciado e entendido que outros dispositivos de computação podem ser utilizados sem se afastar do espírito e do escopo do assunto reivindicado. Por exemplo, outros dispositivos de computação podem incluir, a título de exemplo e não de limitação, computadores portáteis, computadores de mão, tal como assistentes pessoais digitais (PDAs), telefones celulares e assim por diante.
Neste exemplo, o componente AVD/R local 110 inclui um inspetor de registro de ocorrência 112, um componente de interface com o usuário 114 e um construtor de proteção 116. Em operação, quando um programa no dispositivo de computação local funciona de maneira incorreta, a informação associada com o funcionamento incorreto é informada para um registro de ocorrência de funcionamento incorreto, como será apreciado pelos versados na técnica. Tipicamente, o registro de ocorrência de funcionamento incorreto contém infor- mações que descrevem os parâmetros associados com um funcionamento incorreto particu- lar. Por exemplo, o registro de funcionamento incorreto pode conter informações que des- crevem o programa que funcionou incorretamente, as quais fazem interface ou funcionam dentro do programa que funcionou incorretamente, e / ou quaisquer parâmetros associados com a função ou com a interface que causou o funcionamento incorreto. O inspetor de regis- tro de ocorrência 112 do componente AVD/R local 110 pode monitorar funcionamentos in- corretos e, quando ocorre um funcionamento incorreto, pode automaticamente inspecionar o funcionamento incorreto em relação às informações associadas com o funcionamento incor- reto. Isto pode incluir verificar qual função ou interface está associada com o funcionamento incorreto. Uma vez que o inspetor de registro de ocorrência tenha verificado a causa do fun- cionamento incorreto, ele pode empregar o construtor de proteção 116 para construir uma proteção que efetivamente proporciona uma solução automática em tempo de execução que desativa a função ou a interface. Este fato pode então ser reportado para o usuário via a interface com o usuário 114.
Como um exemplo, considere o seguinte. Assuma que o usuário está utilizando sua aplicação de navegador e uma função Alert() funciona de forma incorreta. Em resposta ao funcionamento incorreto, o registro de funcionamento incorreto é atualizado com as informa- ções que pertencem ao funcionamento incorreto, tal como o nome da função que funcionou incorretamente e onde ela funcionou incorretamente. Utilizando estas informações, o inspe- tor de registro de ocorrência 112 pode empregar o construtor de proteção 116 para construir uma proteção que automaticamente desativa a função Alert (). Em uma ou mais concretiza- ções, o construtor de proteção pode manter uma tabela de vulnerabilidade / abrandamento, tal como a apresentada na figura. Aqui, a tabela de vulnerabilidade / abrandamento inclui uma coluna que lista os descritores de vulnerabilidade e uma coluna que lista as funções de abrandamento. Os descritores de vulnerabilidade descrevem a função ou a interface particu- lar que é o sujeito da função de abrandamento. As funções de abrandamento descrevem as funções de abrandamento particulares que estão sendo empregadas. No exemplo acima, quando ocorre um funcionamento incorreto, o construtor de proteção coloca uma entrada na tabela de vulnerabilidade / abrandamento e adiciona “Alert ()” na coluna de descritor de vul- nerabilidade. Em adição, o construtor de vulnerabilidade adiciona “Desativar” na fileira cor- respondente na coluna de função de abrandamento. Isto diz para a aplicação - neste caso, o navegador do usuário - que a função Alert() foi desativada.
Em adição, em pelo menos algumas concretizações, este fato é reportado para o usuário via o componente de interface com o usuário 114. Utilizando a interface com o usuá- rio correspondente, o usuário pode efetivamente selecionar ativar novamente esta função. Por conseqüência, nesta concretização, a presença potencial de uma vulnerabilidade é de- tectada e a função ou interface correspondente é seletivamente desativada, assim impedin- do futuras explorações de falha.
A Fig. 2 é um fluxograma que descreve as etapas em um método de acordo com uma concretização. O método pode ser implementado em conexão com qualquer hardware, software, firmware ou combinação adequada dos mesmos. Em uma ou mais concretizações, o método pode ser implementado em conexão com um sistema, tal como o sistema apre- sentado e descrito na Fog. 1. Outros sistemas podem ser utilizados sem se afastar do espíri- to e do escopo do assunto reivindicado.
A etapa 200 detecta um funcionamento incorreto local do programa. Exemplos de como pode ser feito isto, são dados abaixo. A etapa 202 inspeciona um registro de ocorrên- cia de funcionamento incorreto para verificar as circunstâncias envolvendo o funcionamento incorreto. A etapa 204 desativa uma função ou interface que foi o sujeito do funcionamento incorreto. Exemplos de como pode ser feito são proporcionados acima. A etapa 206 notifica um usuário sobre a função ou interface desativada.
AVD/R Remoto
Em uma ou mais concretizações, as informações associadas com um funcionamen- to incorreto do programa podem ser utilizadas remotamente. Especificamente, quando ocor- re um funcionamento incorreto, estas informações podem ser remotamente reportadas para análise adicional. Tal análise pode incluir, a título de exemplo e não de limitação, analisar a fonte do funcionamento incorreto e vários parâmetros associados, bem como avaliar tais funcionamentos incorretos através de vários usuários para verificar se existe um padrão as- sociado com o funcionamento incorreto. Se for detectada uma vulnerabilidade, uma prote- ção correspondente pode ser construído e proporcionado para os usuário para proteção contra explorações de falha que buscam explorar a vulnerabilidade.
Como um exemplo, considere a Fig. 3. Lá, é ilustrado um sistema de acordo com uma concretização, geralmente designado por 300. O sistema 300 inclui um dispositivo de computação 302 possuindo um ou mais processadores 304, um ou mais meios legíveis por computador 306 e uma ou mais aplicações 308 que residem no meio legível por computador e que são executáveis pelos processadores. Em adição, o dispositivo de computação 302 inclui um componente AVD/R remoto 310 que, neste exemplo, é implementado em software.
Apesar do dispositivo de computação 302 ser ilustrado na forma de um computa- dor de mesa, é para ser apreciado e entendido que outros dispositivos de computação po- dem ser utilizados sem se afastar do espírito e do escopo do assunto reivindicado. Por e- xemplo, outros dispositivos de computação podem incluir, a título de exemplo e não de limi- tação, computadores portáteis, computadores de mão tal como assistentes pessoais digitais (PDAs)1 telefones celulares e assim por diante.
Neste exemplo, o componente AVD/R remoto 310 inclui um inspetor de registro de ocorrência 312, um componente de interface com o usuário 314 e um componente de repor- tagem de funcionamento incorreto 316. Em operação, quando um programa no dispositivo de computação local funciona incorretamente, as informações associadas com o funciona- mento incorreto são informadas para o registro de ocorrência de funcionamento incorreto, como descrito acima. O inspetor de registro de ocorrência 312 do componente AVD/R remo- to 310 pode monitorar funcionamentos incorretos e, quando ocorre um funcionamento incor- reto, pode automaticamente inspecionar o registro de funcionamento incorreto em relação às informações associadas com o funcionamento incorreto. Isto pode incluir verificar qual função ou interface está associada com o funcionamento incorreto. Uma vez que o inspetor de registro de ocorrência tenha verificado a causa do funcionamento incorreto, o componen- te AVD/R remoto pode, via a interface com o usuário 314, perguntar ao usuário se o usuário deseja reportar o funcionamento incorreto para um servidor remoto para análise adicional. Se o usuário escolher reportar a informação de funcionamento incorreto, a informação é agregada e analisada pelo servidor. Em pelo menos algumas concretizações, a análise da informação de funcionamento incorreto pode incluir empregar peritos humanos para analisar e verificar se quaisquer explorações de falha foram empregadas.
Em um caso onde a análise do registro(s) de funcionamento incorreto indicar que uma vulnerabilidade foi explorada, uma ou mais proteções, tal como estas descritas acima, podem ser desenvolvidas e empregadas, como por serem transferidas e aplicadas local- mente. Em uma ou mais concretizações, a interface com o usuário 314 pode proporcionar ao usuário uma opção para reativar a função ou interface que foi ou é desativada.
A Fig. 4 é um fluxograma que descreve as etapas em um método de acordo com uma concretização. O método pode ser implementado em conexão com qualquer hardware, software, firmware ou combinação adequada dos mesmos. Em uma ou mais concretizações, o método pode ser implementado em conexão com um sistema, tal como o sistema apre- sentado e descrito na Fig. 3. Outros sistemas podem ser utilizados sem se afastar do espíri- to e do escopo do assunto reivindicado.
A etapa 400 detecta um funcionamento incorreto do programa local. Exemplos de como pode ser feito isto são dados abaixo. A etapa 402 inspeciona um registro de funcio- namento incorreto para verificar as circunstâncias envolvendo o funcionamento incorreto. A etapa 404 consulta um usuário para verificar se o funcionamento incorreto pode ser relata- do. A etapa 406 reporta o funcionamento incorreto para um servidor remoto no caso de o usuário ter dado autorização. A etapa 408 recebe e implementa uma proteção que efetiva- mente desativa uma função ou interface que foi o sujeito do funcionamento incorreto. A pro- teção pode ser recebida pela transferência da mesma através de uma rede, tal como a In- ternet. Como parte desta etapa, a interface com o usuário pode ser utilizada para fornecer ao usuário uma opção de desativar a função ou a interface, ou para reativar a função ou interface. Exemplos de como pode ser feito isto são proporcionados acima.
Utilizando tanto AVD/R Local como Remoto
Em uma ou mais concretizações, as informações associadas com um funcionamen- to incorreto de programa podem ser utilizadas localmente ou de forma remota. Especifica- mente, quando ocorre um funcionamento incorreto, esta informação pode ser utilizada de forma local para desativar a função ou interface afetada pela aplicação de uma proteção. Em adição, esta informação pode ser utilizada de forma remota para conduzir a análise co- mo descrita acima. Tal análise pode incluir, a título de exemplo e não de limitação, analisar a 5 fonte do funcionamento incorreto e vários parâmetros associados, bem como avaliar tais funcionamentos incorretos através de vários usuários para verificar se existe um padrão as- sociado com o funcionamento incorreto. Se uma vulnerabilidade for detectada, uma prote- ção correspondente pode ser construída e proporcionada para os usuários para proteção contra quaisquer explorações de falha que buscam explorar a vulnerabilidade.
Como um exemplo, considere a Fig. 5. Lá, é ilustrado um sistema de acordo com
uma concretização, geralmente designado por 500. O sistema 500 inclui um dispositivo de computação 502 possuindo um ou mais processadores 504, um ou mais meios legíveis por computador 506 e uma ou mais aplicações 508 que residem no meio legível por computador e que são executáveis pelos processadores. Em adição, o dispositivo de computação 502 15 inclui um componente AVD/R local / remoto 510 que, neste exemplo, é implementado em software.
Apesar do dispositivo de computação 502 ser ilustrado na forma de um computador de mesa, é para ser apreciado e entendido que outros dispositivos de computação podem ser utilizados sem se afastar do espírito e do escopo do assunto reivindicado. Por exemplo, 20 outros dispositivos de computação podem incluir, a título de exemplo e não de limitação, computadores portáteis, computadores de mão tal como assistentes pessoais digitais (PDAs), telefones celulares e assim por diante.
Neste exemplo, o componente AVD/R local / remoto 510 inclui um inspetor de regis- tro de ocorrência 512, um componente de interface com o usuário 514, um componente rela- tor 516 e um construtor de proteção 518. Em operação, quando um programa no dispositivo de computação local funciona incorretamente, as informações associadas com o funciona- mento incorreto são informadas para um registro de funcionamento incorreto, como descrito acima. O inspetor de registro de ocorrência 512 do componente AVD/R local / remoto 510 pode monitorar funcionamentos incorretos e, quando ocorre um funcionamento incorreto, pode automaticamente inspecionar o registro de ocorrência de funcionamento incorreto em relação à informação associada com o funcionamento incorreto. Isto pode incluir verificar qual função ou interface está associada com o funcionamento incorreto. Uma vez que o ins- petor de registro de ocorrência tenha verificado a causa do funcionamento incorreto, o com- ponente AVD/R local / remoto pode aplicar uma proteção de forma local, como descrito aci- ma, para desativar a função ou interface que está associada com o funcionamento incorreto. Isto também pode ser reportado para o usuário via o componente de interface com o usuário 514 que também pode permitir ao usuário reativar a função ou interface que foi desativada. Em adição, em uma ou mais concretizações, o componente AVD/R local / remoto pode, através da interface com o usuário 514, perguntar ao usuário se o usuário deseja re- portar o funcionamento incorreto para um servidor remoto para análise adicional. Se o usuá- rio escolher reportar a informação de funcionamento incorreto, a informação é agregada e analisada pelo servidor. Em pelo menos algumas concretizações, a análise da informação de funcionamento incorreto pode incluir empregar peritos humanos para analisar e verificar se quaisquer explorações de falha foram empregadas.
Em um caso no qual a análise do registro(s) de ocorrência de funcionamento incor- reto indicar que uma vulnerabilidade foi explorada, uma ou mais proteções, tal como estas descritas acima, podem ser desenvolvidas e empregadas, como por serem transferidas e aplicadas em uma máquina local. Em uma ou mais concretizações, a interface com o usuá- rio 514 pode proporcionar para o usuário uma opção de reativar a função ou a interface que foi ou está desativada.
A Fig. 6 é um fluxograma que descreve as etapas em um método de acordo com uma concretização. O método pode ser implementado em conexão com qualquer hardware, software, firmware ou combinação adequada dos mesmos. Em uma ou mais concretizações, o método pode ser implementado em conexão com um sistema, tal como o sistema apre- sentado e descrito na Fig. 6. Outros sistemas podem ser utilizados sem se afastar do espíri- to e do escopo do assunto reivindicado.
A etapa 600 detecta um funcionamento incorreto do programa local e a etapa 602 pergunta ao usuário se aprova o relato do funcionamento incorreto para um servidor remoto. Se a aprovação do usuário for concedida, na etapa 604, então a etapa 606 verifica a causa do funcionamento incorreto, reporta o funcionamento incorreto para o servidor remoto e veri- fica quaisquer soluções que possam estar disponíveis para o funcionamento incorreto. Por reportar o funcionamento incorreto para o servidor remoto, a análise do funcionamento in- correto e em relação a quaisquer padrões associados através de vários usuário, pode ser conduzida. A análise pode incluir tanto a análise automática, a análise por máquina e a aná- lise humana. A etapa 608 então transfere e aplica quaisquer proteções relevantes localmen- te e a etapa 610 notifica o usuário.
Se, por outro lado, a aprovação não for concedida na etapa 604, a etapa 612 identi- fica a função ou a interface funcionando incorretamente e a etapa 614 determina a elegibili- dade da proteção. Se a etapa 616 determinar que existe uma proteção local elegível para endereçar o problema, a etapa 618 aplica a proteção como descrito acima e a etapa 620 notifica o usuário. Se, por outro lado, não existir proteção elegível, a etapa 620 notifica o usuário.
As concretizações descritas acima podem ser implementadas em conexão com qualquer aplicação adequada, e podem compreender parte da aplicação, ou um componen- te separado que é utilizado pela aplicação. Por exemplo, em uma ou mais concretizações, a funcionalidade descrita acima pode ser implementada como parte de um navegador da rede, como uma aplicação de troca instantânea de mensagens ou como qualquer outra aplicação adequada ou componente de software ou sistema. Por exemplo, a funcionalidade pode ser implementada como parte de um sistema operacional.
Em uma ou mais concretizações, um ou mais assim chamados, serviços de reputa- ção, podem ser empregados para adicionalmente acentuar a segurança. Especificamente, um serviço de reputação ou serviço de terceira parte pode amplamente monitorar as explo- rações de falha de segurança e reportar qualquer vulnerabilidades percebidas ou reais para 10 as autoridades apropriadas. Por exemplo, um serviço de reputação pode detectar que existe uma vulnerabilidade de segurança associada com uma função particular associada com uma página da Rede particular. Uma vez detectada, o serviço de reputação pode então re- portar a vulnerabilidade para a companhia apropriada, tal como a Microsoft, e / ou causar que proteções sejam seletivamente transferidas ou de outro modo feitas disponíveis para 15 vários usuário para endereçar a vulnerabilidade percebida.
Conclusão
Várias concretizações detectam vulnerabilidades de segurança e em resposta, po- dem modificar um programa afetado de modo que mesmo se uma exploração de falha for executada, a integridade do programa pode ser mantida. Em pelo menos algumas concreti- 20 zações, um componente de detecção automática local de vulnerabilidade e de resposta (AVD/R) funciona na máquina local de um usuário para detectar e abrandar vulnerabilidades potenciais através do uso de uma proteção; e, um componente de detecção automática de vulnerabilidade e de resposta (AVD/R) executa para executar as vulnerabilidades percebi- das de modo que uma ou mais proteções possam ser distribuídas e aplicadas de forma local 25 para abrandar as vulnerabilidades percebidas.
Apesar de a invenção ter sido descrita em linguagem específica para os aspectos estruturais e / ou para as etapas metodológicas, é para ser entendido que a invenção defini- da nas reivindicações anexas não está necessariamente limitada aos aspectos específicos ou às etapas descritas. Ao invés disso, os aspectos específicos e as etapas são revelados como formas preferidas de implementar a invenção reivindicada.

Claims (20)

1. Método implementado por computador, CARACTERIZADO por compreender: Detectar uma funcionamento incorreto de um programa local; e Em resposta à dita detecção, desativar uma função ou interface que foi um sujeito do funcionamento incorreto do programa.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO por adicionalmen- te compreender após a dita detecção e antes da dita desativação, inspecionar um registro de ocorrência de funcionamento incorreto para verificar a função ou interface associada com o funcionamento incorreto do programa.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO por adicionalmen- te compreender notificar um usuário que uma função ou interface foi desativada.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o ato de desativação é executado pela construção e pela aplicação de uma proteção.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a proteção proporciona uma solução automática em tempo de execução.
6. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que os atos de construção e de aplicação são executados pela utilização de uma tabela de vul- nerabilidade / abrandamento que associa as vulnerabilidades e as funções de abrandamen- to.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os ditos atos de detecção e de desativação são executados por um navegador da Rede.
8. Um ou mais meios legíveis por computador, CARACTERIZADOS por possuírem instruções legíveis por computador que, quando executadas, implementam o método de acordo com a reivindicação 1.
9. Sistema de computador, CARACTERIZADO por incorporar o um ou mais meios legíveis por computador, de acordo com a reivindicação 8.
10. Método implementado por comutador, CARACTERIZADO por compreender: detectar um funcionamento incorreto de um programa local; em resposta à dita detecção, consultar um usuário para verificar se o funcionamen- to incorreto do programa pode ser reportado; reportar o funcionamento incorreto do programa local; e em reposta ao dito relato, receber e aplicar uma proteção efetiva para desativar uma função ou interface que foi o sujeito do funcionamento incorreto do programa.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO por adicional- mente compreender notificar a um usuário que uma função ou interface foi desativada.
12. Método, de acordo com a reivindicação 10, CARACTERIZADO por adicional- mente compreender proporcionar para o usuário, via uma interface com o usuário, uma op- ção de reativar a função ou a interface que foi desativada.
13. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o ato de aplicação é executado pela utilização de uma tabela de vulnerabilidade / abranda- mento que associa as vulnerabilidade e as funções de abrandamento.
14. Método, de acordo com a reivindicação 10, CARACTERIZADO por adicional- mente compreender, em resposta à dita detecção, inspecionar um registro de ocorrência de funcionamento incorreto para verificar a função ou a interface associada com o funciona- mento incorreto do programa.
15. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que os ditos atos de detecção, dé consulta, de reportagem, de recebimento e de aplicação são executados por um navegador da Rede.
16. Um ou mais meios legíveis por computador, CARACTERIZADOS por possuí- rem instruções legíveis por computador nos mesmos, as quais, quando executadas, imple- mentam o método de acordo com a reivindicação 10.
17. Sistema de computação, CARACTERIZADO por incorporar o um ou mais mei- os legíveis por computador de acordo com a reivindicação 16.
18. Método implementado por computador, CARACTERIZADO por compreender: detectar um funcionamento incorreto de programa local; solicitar a um usuário aprovação para relato do funcionamento incorreto para um servidor remoto; se a aprovação do usuário for concedida: reportar o funcionamento incorreto para o servidor remoto; em resposta ao dito relato, transferir uma ou mais proteções configuradas para desativar uma função ou interface associada com o funcionamento incorreto; aplicar a uma ou mais proteções para desativar a função ou interface; se a aprovação do usuário não for concedida, desativar uma função ou interface que foi um sujeito do funcionamento incorreto do programa.
19. Método, de acordo com a reivindicação 18, CARACTERIZADO por adicional- mente compreender proporcionar para o usuário, via uma interface com o usuário, uma op- ção de reativar a função ou interface que foi desativada.
20. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que os atos de detectar e solicitar são executados por um navegador da rede.
BRPI0720666-6A 2006-12-29 2007-12-31 Detecção automática de vulnerabilidade e resposta BRPI0720666A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/618,470 US8453245B2 (en) 2006-12-29 2006-12-29 Automatic vulnerability detection and response
US11/618.470 2006-12-29
PCT/US2007/089221 WO2008083382A1 (en) 2006-12-29 2007-12-31 Automatic vulnerability detection and response

Publications (1)

Publication Number Publication Date
BRPI0720666A2 true BRPI0720666A2 (pt) 2014-01-14

Family

ID=39586025

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0720666-6A BRPI0720666A2 (pt) 2006-12-29 2007-12-31 Detecção automática de vulnerabilidade e resposta

Country Status (10)

Country Link
US (1) US8453245B2 (pt)
EP (1) EP2118802A4 (pt)
JP (1) JP2010515177A (pt)
KR (1) KR20090117705A (pt)
CN (1) CN101573712A (pt)
AU (1) AU2007341952B2 (pt)
BR (1) BRPI0720666A2 (pt)
MX (1) MX2009007064A (pt)
RU (1) RU2462754C2 (pt)
WO (1) WO2008083382A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response
US8627475B2 (en) * 2010-04-08 2014-01-07 Microsoft Corporation Early detection of potential malware
US20120311715A1 (en) * 2011-05-30 2012-12-06 Yaron Tal System and method for protecting a website from hacking attacks
CN103595708B (zh) * 2013-10-22 2017-08-25 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
CN106453509B (zh) * 2013-10-22 2019-06-04 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
US10445505B2 (en) 2014-09-22 2019-10-15 Mcafee, Llc Process vulnerability assessment
US10089473B2 (en) 2014-12-24 2018-10-02 Sap Se Software nomenclature system for security vulnerability management
KR101619691B1 (ko) 2015-01-22 2016-05-10 주식회사 엔씨소프트 프로그램 오류 분석 방법 및 시스템
US10176329B2 (en) * 2015-08-11 2019-01-08 Symantec Corporation Systems and methods for detecting unknown vulnerabilities in computing processes
EP3588423B1 (en) * 2017-02-24 2023-12-13 Fuji Corporation Failure information sharing system
CN110096873A (zh) 2018-01-31 2019-08-06 开利公司 通过补丁变换的自动诱饵推导
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
WO2021014326A2 (en) 2019-07-19 2021-01-28 JFrog Ltd. Software release verification
US11307920B2 (en) 2019-11-26 2022-04-19 Disney Enterprises, Inc. Automated crash recovery
RU2739831C1 (ru) * 2019-11-27 2020-12-28 Акционерное общество "Лаборатория Касперского" Способ устранения неполадки, возникшей при работе приложения
RU2739867C1 (ru) * 2019-11-27 2020-12-29 Акционерное общество "Лаборатория Касперского" Способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2693019B2 (ja) 1990-05-30 1997-12-17 株式会社東芝 プログラマブル・コントローラのプログラム監視装置
US6874084B1 (en) 2000-05-02 2005-03-29 International Business Machines Corporation Method and apparatus for establishing a secure communication connection between a java application and secure server
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
US6675295B1 (en) * 2000-06-19 2004-01-06 Microsoft Corporation Method and computer system for detecting and correcting a failure in a computer application program during startup
US6708333B1 (en) 2000-06-23 2004-03-16 Microsoft Corporation Method and system for reporting failures of a program module in a corporate environment
US20020124172A1 (en) 2001-03-05 2002-09-05 Brian Manahan Method and apparatus for signing and validating web pages
JP2002264455A (ja) * 2001-03-07 2002-09-18 Canon Inc 画像形成装置および画像形成装置管理装置および画像形成装置の制御方法および画像形成装置管理装置の制御方法および記憶媒体
US7313822B2 (en) 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
US7096362B2 (en) 2001-06-01 2006-08-22 International Business Machines Corporation Internet authentication with multiple independent certificate authorities
US7231659B2 (en) 2001-07-31 2007-06-12 Verisign, Inc. Entity authentication in a shared hosting computer network environment
US7562222B2 (en) 2002-05-10 2009-07-14 Rsa Security Inc. System and method for authenticating entities to users
KR100777938B1 (ko) 2003-09-04 2007-11-21 싸이언스 파크 가부시키가이샤 부정 코드 실행의 방지 방법, 및 부정 코드 실행의 방지용 프로그램의 기록매체
US7437764B1 (en) * 2003-11-14 2008-10-14 Symantec Corporation Vulnerability assessment of disk images
RU2261470C1 (ru) * 2004-03-01 2005-09-27 Федеральное государственное унитарное предприятие "Научно-производственное предприятие "Полет" Устройство программного управления
US7413085B2 (en) 2004-09-07 2008-08-19 Iconix, Inc. Techniques for displaying emails listed in an email inbox
JP2006094046A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 複合機および複合機の管理システム
JP4688472B2 (ja) 2004-11-01 2011-05-25 株式会社エヌ・ティ・ティ・ドコモ 端末制御装置及び端末制御方法
US7979889B2 (en) 2005-01-07 2011-07-12 Cisco Technology, Inc. Methods and apparatus providing security to computer systems and networks
US20060185018A1 (en) 2005-02-17 2006-08-17 Microsoft Corporation Systems and methods for shielding an identified vulnerability
US7743254B2 (en) 2005-03-23 2010-06-22 Microsoft Corporation Visualization of trust in an address bar
US7735136B2 (en) * 2005-04-18 2010-06-08 Vmware, Inc. 0-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response

Also Published As

Publication number Publication date
WO2008083382A1 (en) 2008-07-10
EP2118802A1 (en) 2009-11-18
KR20090117705A (ko) 2009-11-12
US20080163374A1 (en) 2008-07-03
RU2462754C2 (ru) 2012-09-27
JP2010515177A (ja) 2010-05-06
AU2007341952A1 (en) 2008-07-10
US8453245B2 (en) 2013-05-28
AU2007341952B2 (en) 2011-10-13
RU2009129132A (ru) 2011-02-10
MX2009007064A (es) 2009-07-09
CN101573712A (zh) 2009-11-04
EP2118802A4 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
BRPI0720666A2 (pt) Detecção automática de vulnerabilidade e resposta
US8701187B2 (en) Runtime integrity chain verification
US9218254B2 (en) Systems, methods, and media for recovering an application from a fault or attack
US8566944B2 (en) Malware investigation by analyzing computer memory
US9063836B2 (en) Methods and apparatus to protect segments of memory
Chen et al. Safestack: Automatically patching stack-based buffer overflow vulnerabilities
US9146833B2 (en) System and method for correct execution of software based on a variance between baseline and real time information
US8146150B2 (en) Security management in multi-node, multi-processor platforms
Lin et al. AutoPaG: towards automated software patch generation with source code root cause identification and repair
JP5965076B2 (ja) 訂正不能メモリエラー処理方法及びその可読媒体
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US20070266435A1 (en) System and method for intrusion detection in a computer system
WO2017133442A1 (zh) 一种实时度量方法及装置
US20170344746A1 (en) Utilizing likely invariants for runtime protection of web services
US20090144828A1 (en) Rapid signatures for protecting vulnerable browser configurations
JPH09171460A (ja) 計算機の診断システム
US9003236B2 (en) System and method for correct execution of software based on baseline and real time information
Rimsa et al. Efficient static checker for tainted variable attacks
EP3765965B1 (en) Static software analysis tool approach to determining breachable common weakness enumerations violations
US20230118160A1 (en) Apparatus, Device, Method, and Computer Program for Monitoring a Processing Device from a Trusted Domain
Bogdanas Dperm: Assisting the migration of android apps to runtime permissions
Tröger et al. WAP: What activates a bug? A refinement of the Laprie terminology model
Sultan et al. Nonintrusive remote healing using backdoors
Rigger et al. Context-aware failure-oblivious computing as a means of preventing buffer overflows
Dharsee et al. A software solution for hardware vulnerabilities

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 7A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2286 DE 29/10/2014.