BRPI1014870B1 - método e aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede - Google Patents

método e aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede Download PDF

Info

Publication number
BRPI1014870B1
BRPI1014870B1 BRPI1014870-1A BRPI1014870A BRPI1014870B1 BR PI1014870 B1 BRPI1014870 B1 BR PI1014870B1 BR PI1014870 A BRPI1014870 A BR PI1014870A BR PI1014870 B1 BRPI1014870 B1 BR PI1014870B1
Authority
BR
Brazil
Prior art keywords
executable program
user platform
end user
policies
download
Prior art date
Application number
BRPI1014870-1A
Other languages
English (en)
Inventor
Diptikalyan Saha
Morris A. Moore
Subir Saha
Original Assignee
Google Technology Holdings LLC
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 Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of BRPI1014870A2 publication Critical patent/BRPI1014870A2/pt
Publication of BRPI1014870B1 publication Critical patent/BRPI1014870B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

MÉTODO E APARELHO PARA EXAMINAR UM PROGRAMA EXECUTÁVEL USANDO UM MODELO Um elemento de infraestrutura de rede (300), pela determinação (101) que uma plataforma de usuário final (305) procura baixar um programa executável, executa (103) o programa para desenvolver um modelo correspondente que representa o correspondente comportamento de sistema operacional baseado em chamada. O elemento de infraestrutura de rede (300) usa (104) este modelo para examinar o comportamento do sistema operacional baseado em chamada do programa no que diz respeito às políticas de plataforma de usuário final (305). Quando o o comportamento do sistema operacional baseado em chamada examina aceitavelmente no que diz respeito a estas políticas, a plataforma de usuário final (305) recebe, então, permissão para baixar (106) o programa executável. Se desejar, o elemento de infraestrutura de rede (300) pode fornecer (107) o modelo para a plataforma de usuário final (305) para permitir a habilitação do comportamento modelado com relação às políticas localmente mantidas. O modelo fornecido para a plataforma de usuário final (305) pode incluir um modelo de tamanho reduzido em pedaços.

Description

MÉTODO E APARELHO PARA SUPORTAR O DOWNLOAD DE UM PROGRAMA EXECUTÁVEL PARA UM USUÁRIO FINAL USANDO UM ELEMENTO DE INFRAESTRUTURA DE REDE CAMPO TÉCNICO
Esta invenção refere-se geralmente ao exame de um programa executável com relação a comportamentos indesejados.
FUNDAMENTOS
Plataformas de usuário final que executam programas de computador são conhecidas na arte. Isto cada vez mais inclui plataformas pequenas e portáteis, como telefones celulares, assistentes digitais pessoais, e assim por diante. Cada vez mais, tais plataformas de usuário final têm capacidade de processamento considerável. Isso, juntamente com a pronta capacidade para comunicativamente acoplar como uma plataforma para fontes remotas de programas executáveis, está levando a uma demanda crescente por uma correspondente capacidade de download de programas executáveis para dispositivos tais como um telefone celular.
Infelizmente, os programas prejudiciais também são conhecidos na arte. Se de má intenção (tal como um virus, "worm", ou os chamados "malware" de outros tipos) ou por negligência ou meramente pensamento equivocado, um programa nocivo transferido para uma plataforma suscetível pode levar a temporária ou permanentemente interrupção operacional, dados perdidos, funcionalidade cooptadas, e assim por diante. Várias soluções antivírus são conhecidas na arte para combater essas circunstâncias. Infelizmente, os requisitos de armazenamento e computacionais de tais abordagens tendem a torná-las completamente inadequadas para uso no ambiente limitado de recursos que caracteriza um grande número e variedade de plataformas de usuário final.
Como resultado, muitos usuários finais são relegados para fazer o download de conteúdo a partir de apenas algumas fontes confiáveis. Isso, no entanto, impede os usuários finais de recorrer-se do beneficio de um grande número e variedade de programas executáveis que podem se estender em várias maneiras desejáveis a funcionalidade de suas plataformas. Isso pode e vai levar a insatisfação do usuário final, frustração e comportamentos potencialmente indesejáveis envolvendo tentativas não autorizadas (e normalmente mal aconselhadas) de modificar suas plataformas de alguma maneira, a fim de permitir o download de outra forma indisponível.
DESCRIÇÃO BREVE DOS DESENHOS
As necessidades acima são pelo menos parcialmente atendidas através do fornecimento de método e aparelho para exame de um programa executável através de um modelo descrito na seguinte descrição detalhada, principalmente quando estudada em conjunto com os desenhos, em que:
A Figura 1 é um diagrama de fluxo como configurado de acordo com várias modalidades da invenção;
A Figura 2 é um diagrama de fluxo como configurado de acordo com várias modalidades da invenção;
A Figura 3 é um diagrama de blocos como configurado de acordo com várias modalidades da invenção, e
A Figura 4 é um diagrama de fluxo de chamadas como configurado de acordo com várias modalidades da invenção.
Artesãos qualificados irão apreciar que elementos nas figuras são ilustrados para simplicidade e clareza e não necessariamente foram desenhadas em escala. Por exemplo, as dimensões e posicionamento relativo de alguns dos elementos em que os números podem ser exagerados em relação a outros elementos para ajudar a melhorar a compreensão das várias modalidades da presente invenção. Além disso, elementos comuns, mas bem entendido que são úteis ou necessários numa encarnação comercialmente viável, muitas vezes não são descritos de modo a facilitar uma visão menos obstruída dessas modalidades diversas da presente invenção. Será ainda apreciado que certas ações e etapas podem ser descritas ou representadas em uma determinada ordem de ocorrência, enquanto aqueles hábeis na arte irão entender que tal especificidade no que diz respeito à sequência não é realmente necessária. Também será entendido que os termos e expressões usados aqui têm o sentido comum técnico como concedido a tais termos e expressões por pessoas qualificadas no campo técnico, conforme estabelecido acima, exceto onde diferentes significados específicos de outra maneira tenham sido aqui estabelecidos.
DESCRIÇÃO DETALHADA
De um modo geral, em conformidade com estas modalidades diversas, um elemento de infraestrutura de rede pode ser configurado para, ao determinar que uma plataforma de usuário final procura fazer o download de um programa executável, executar automaticamente o programa executável para desenvolver um modelo correspondente do programa executável que representa o comportamento baseado em chamada ao sistema operacional do programa executável. O elemento de infraestrutura de rede pode então usar este modelo para examinar o comportamento baseado em chamada ao sistema operacional do programa executável que diz respeito às políticas correspondentes para a plataforma de usuário final. Quando o comportamento baseado em chamada ao sistema operacional examina aceitavelmente no que diz respeito a estas políticas, a plataforma de usuário final pode então ser permitida o download do programa executável.
Em uma abordagem, os elementos de infraestrutura de rede examinam o comportamento do programa executável com relação a algumas, mas não todas, políticas relacionadas com a plataforma de usuário final. Isto pode ser necessário, por exemplo, quando uma ou mais das políticas da plataforma de usuário final contém ou aludem a conteúdo confidencial. Para acomodar esta circunstância, o elemento de infraestrutura de rede pode fornecer o modelo acima para a plataforma de usuário final para assim que o posterior saiba examinar o comportamento do programa executável (como representado pelo modelo) contra as políticas que a plataforma de usuário final retém apenas localmente e com confiança. Para minimizar os requisitos de largura de banda, os requisitos de armazenamento e requisitos computacionais, o modelo como comunicado para a plataforma de usuário final pode ser uma versão resumida do modelo. Por exemplo, em uma abordagem, o elemento de infraestrutura de rede pode dividir o modelo para fornecer um modelo cortado como a versão abreviada para ser fornecida para a plataforma de usuário final.
Esses ensinamentos também irão acomodar, se desejado, a computação de uma função de assimilação de mensagem com relação ao programa executável para, assim, criar uma versão assinada do programa executável, em que a versão assinada compreende, em parte, pelo menos, uma das políticas acima referidas. Neste caso, quando outra plataforma de usuário final, posteriormente procura envolver o elemento de infraestrutura de rede em uma atividade semelhante, esta última não precisa repetir a atividade inicial de formar o modelo e, em seguida, examinar o programa executável com esse modelo. Em vez disso, esta versão assinada do programa executável pode ser fornecida para a plataforma de usuário final subsequente. O último pode então usar as informações de política fornecidas para avaliar a relevância da aprovação prévia do programa executável e por si próprio tomar uma decisão correspondente sobre o download do programa executável.
Assim configurado, pelo menos uma parte considerável do processo de seleção ocorre remotamente com relação à plataforma de usuário final, evitando assim um desafio indevido às limitações de recursos deste último. A abordagem de exame particular aqui descrita oferece inúmeros benefícios também. Estes incluem a capacidade de examinar um determinado programa, mesmo na ausência das chamadas assinaturas que são de outra maneira tipicamente pré-requisitos para identificação de comportamentos indesejados de um determinado programa. Estes benefícios também incluem a capacidade de examinar um determinado programa em vista dos requisitos de política baseado em chamada ao sistema operacional. Aqueles hábeis na arte vão apreciar que esses ensinamentos são altamente escaláveis e podem ser usados com toda maneira, tamanho e tipo de programas executáveis. Deve ainda ser entendido que estes ensinamentos podem ser facilmente empregados em conjunto com arquiteturas de rede existentes, protocolos de comunicação, e plataformas de usuário final de vários tipos e projetos.
Estes e outros benefícios podem se tornar mais claros ao se fazer uma revisão completa e estudo da seguinte descrição detalhada. Referindo-se agora aos desenhos, e em particular à figura 1, um processo ilustrativo que é compatível com muitos desses ensinamentos será agora apresentado. Será compreendido por aqueles hábeis na arte de que este processo 100 pode ser realizado por um correspondente elemento de infraestrutura de rede, tal como, mas não limitado a, um servidor ou coisa parecida. Aqueles hábeis na arte entenderão que essa referência a "infraestrutura" inclui uma referência às estruturas técnicas básicas que compreendem uma determinada rede de comunicações e que oferecem uma capacidade que permite intervir para facilitar as comunicações dentro e entre uma pluralidade de plataformas de usuários finais nas bordas de tais redes.
Este processo 100 fornece o passo 101 de determinar que uma determinada plataforma de usuário final procura fazer o download de um programa executável. Por uma abordagem, por exemplo, isso pode incluir receber uma solicitação de download obtida pela plataforma de usuário final. Por uma abordagem, tal pedido pode ser dirigido inicialmente para o elemento de infraestrutura de rede. Por outra abordagem, esses ensinamentos podem ser empregados de forma um pouco mais transparente. Por exemplo, o pedido de transferência pode ser de outra forma dirigido ou percebido e, em seguida, encaminhado de forma inteligente através de um elemento de rede de intervenção para o elemento de infraestrutura de rede que facilita esse processo 100. De modo geral, essa determinação pode incluir determinar a identidade do programa executável em si (incluindo, por exemplo, e conforme o caso, uma versão especifica desse programa executável), uma fonte particular (ou fontes) deste programa executável, ou alguma combinação disso. Por uma abordagem, essas informações podem compreender uma parte do pedido de fazer um download acima mencionado da plataforma de usuário final.
Como vai ficar claro a seguir, esse processo 100 faz uso de políticas relativas à plataforma de usuário final. Por uma abordagem, algumas ou todas essas políticas podem estar disponíveis para o elemento de infraestrutura de rede através de algum recurso como um servidor de perfil. Esses ensinamentos também irão acomodar, no entanto, o passo 102 opcional de receber algumas ou todas essas informações de política a partir da plataforma de usuário final em si. Por uma abordagem isto pode compreender incluir tais informações de política em ou com a solicitação de download acima mencionada. Nesse caso, a informação de política pode ser diretamente prestada em sua totalidade, ou, se desejado, pode ser identificada de forma codificada. Por exemplo, um número de tais políticas que tende a ser bastante comum entre uma população de usuários relevantes podem ter, cada, um correspondente código de identificação. Nesse caso, então, a plataforma de usuário final só precisa fornecer os códigos de identificação para, assim, informar o elemento de infraestrutura de rede das políticas a serem consideradas.
De um modo geral, essas políticas podem ser classificadas em diferentes classes, tais como uma classe de controle de acesso (que trata das políticas que restringem as operações que podem ser executadas em objetos), uma classe de fluxo de informações (que trata com qual um principal pode inferir sobre objetos de observação do comportamento de um sistema), uma classe de disponibilidade (que trata com restrições em principais negando outros o usuário de um recurso), uma classe de disponibilidade limitada (que trata com recursos que devem ser liberados depois, por exemplo, de um determinado número de passos, posse invariante de sistema, e assim por diante), e assim por diante. Alguns exemplos ilustrativos da política, mas não limitantes, nesse respeito são:
Não envie mensagens após os arquivos terem sido lidos.
Não escreva para alguns / todos arquivos.
Não escreva a arquivos outros que stdout.
Não tente criar um diretório.
Não leia a partir do arquivo X.
Não abra mais que arquivos X.
Apenas apagar arquivos que são criados pela própria aplicação.
Não ramifique o "shell".
Não execute outro programa (ou um particular).
Não crie arquivos outros que /tmp.dir.
Não acesse um diretório especificado pelo usuário.
Como será apreciado por aqueles hábeis na arte, esses ensinamentos podem ter aplicação particularmente útil em conjunto com dispositivos portáteis / móveis (onde dispositivos "portátil" são entendidos como incluindo os dispositivos que são pessoalmente portáteis por uma pessoa ao mesmo tempo dispositivos "móveis" são entendidos como incluindo os dispositivos que são instalados em um veículo como um automóvel e assim por diante). Alguns exemplos ilustrativos (mas novamente não limitantes) de políticas que são talvez mais específicas para tal paradigma de usuário final deve incluir:
Não acessar serviço de Short Message Service (SMS).
Não acessar serviço de Multimedia Service (MMS).
Não acessar serviço DIAL.
Não acessar recursos consumindo bateria além de um limite especial especificado.
Não acessar um diretório que contém os dados de livro de endereço.
Não acessar serviço Bluetooth.
Não alocar uma quantidade de memória em excesso de X.
Em qualquer evento, este processo 100, em seguida, fornece o passo 103 de executar automaticamente o código executável para desenvolver um modelo correspondente do programa executável que representa o comportamento baseado em chamada ao sistema operacional do programa executável (como versus, por exemplo, um modelo que representa um comportamento de chamada de biblioteca ou coisa parecida). (Aqueles hábeis na arte vão entender que uma "chamada ao sistema operacional" inclui o mecanismo usado por um programa aplicativo para solicitação de serviço do sistema operacional sendo usado por uma plataforma de processamento.) Aqueles hábeis na arte irão reconhecer e apreciar que tal abordagem baseia-se no uso da versão binária do programa executável e, portanto, evita a necessidade de acessar o código fonte do programa.
Em uma abordagem, isto pode incluir a execução do código executável usando o conteúdo de entrada aleatória (onde "aleatório" será entendido como incluindo tanto o conteúdo verdadeiramente aleatório bem como o conteúdo pseudoaleatório). Por exemplo, quando uma determinada etapa do programa executável requer entrada como um nome, alguma sequência alfanumérica aleatória (limitado, talvez, a não mais do que um determinado número de caracteres) pode ser fornecida como resposta. Como isso ocorre, as chamadas ao sistema operacional que estão sendo executadas pelo programa podem ser monitoradas e registradas para assim construir a substância do modelo acima mencionado.
Em uma abordagem, esta técnica de avaliação pode ser repetida uma, duas, ou qualquer número de vezes (usando os conteúdos de entrada iguais ou diferentes) para, assim, testar o comportamento do programa em várias formas e explorar caminhos diferentes através de seu projeto de execução. (Como usado aqui, esta referência a "caminhos" será entendida para se referir a uma sequência de chamadas ao sistema operacional.) O número de ciclos de execução observado em uma determinada instância pode ser fixo ou, se desejado, pode variar. Por exemplo, o número de ciclos de execução pode variar aleatoriamente dentro de algum intervalo predeterminado que representa um número mínimo de ciclos (como, por exemplo, 10) e um número máximo de ciclos (como, por exemplo, 1.000.000). Como outra abordagem neste respeito, prazos podem ser utilizados para regular esta atividade. Por exemplo, um limite de tempo pode ser imposto para cada ciclo de execução, e outro limite de tempo (como, por exemplo, cinco minutos) pode ser aplicado no que diz respeito ao processo completo. Tal abordagem pode servir para evitar complicações que podem surgir se um ciclo de execução dado inserir um "loop" infinito. Novamente, as chamadas ao sistema operacional correspondentes podem ser monitoradas e gravadas para desenvolver e enriquecer o modelo do programa executável.
Há várias maneiras de capturar o comportamento do programa executável para desenvolver este modelo. Por uma abordagem, por exemplo, esse processo 100 vai acomodar a execução do programa em um ambiente virtual (utilizando, por exemplo, um programa de virtualização de ambiente, como o QEMU) e capturando as instruções que são executadas usando um programa como o PTRACE ("Traçado de Processo"). Usando essa abordagem, o modelo pode abranger essencialmente um gráfico cujos nós correspondem às chamadas ao sistema operacional executadas pelo programa e cujas arestas correspondem ao fluxo de controle entre as chamadas ao sistema. Como um gráfico pode ser construído através da agregação das chamadas ao sistema operacional capturadas quando elas são executadas em vários caminhos do programa.
Como mencionado acima, o desenvolvimento do modelo pode contar com entrada dinâmica e automaticamente para o programa que é executado. Uma técnica como a execução "concolic" pode ser utilizada para apoiar esta abordagem. Execução "'concolic", aqui, usa um solucionador de restrição tal como STP de Stanford para gerar valores para fornecer como variáveis de entrada do programa (que, como mencionado acima, podem incluir entradas aleatórias) para, assim, explorar vários caminhos de programas.
Este processo 100 fornece então o passo 104 de usar este modelo do programa executável para examinar o comportamento baseado em chamada ao sistema operacional do programa executável que diz respeito às políticas correspondentes para a plataforma de usuário final. Quando as próprias políticas são expressas em termos de chamadas ao sistema operacional proibidas, este exame pode incluir a busca no modelo por exemplos de uma chamada proibida ao sistema operacional. Quando as políticas não são expressas em termos de chamadas ao sistema operacional proibidas, este processo pode incluir a conversão de cada política, na medida do possível, em uma expressão de uma ou mais chamadas ao sistema operacional correspondentes e, em seguida, com estes resultados derivados informar a avaliação do modelo.
Quando essa etapa 104 revela uma política (ou algum número limite de políticas) que o programa executável aparentemente viola, este processo 100 pode, essencialmente, ser concluído. Esta conclusão pode incluir quantas ações correspondentes que possa ser desejado. Por exemplo, um aviso pode ser fornecido para a plataforma de usuário final para negar a atividade de download ou para garantir pelo menos perceber que o programa executável parece representar uma ameaça para a integridade da plataforma de usuário final. Como outro exemplo, esses resultados podem ser salvos (ou fornecido a outro repositório para tais informações) para permitir a reutilização destes resultados, quando trabalhando com pedidos ou requisições de download relacionados subsequentes.
Quando o comportamento baseado em chamada ao sistema operacional do programa executável examina aceitavelmente, com respeito a essas políticas, esse processo 100 pode então fornecer o passo 105 opcional de cercear o modelo para fornecer uma versão resumida do modelo. Por uma abordagem que pode incluir, por exemplo, cortar o modelo para fornecer um modelo cortado. Corte é uma prática conhecida na arte e será entendido para compreender, pelo menos, excluir informações no modelo referentes a caminhos que não são dependentes da chamada ao sistema operacional de interesse. Por uma abordagem, este corte pode ser baseado em um conjunto de chamadas ao sistema operacional que são conhecidas por serem de interesse, quer com base nas políticas que possam ter sido previamente fornecidas pela plataforma de usuário final ou com base em uma ou mais chamadas ao sistema operacional real que a plataforma de usuário final pode ter fornecido ao elemento de infraestrutura de rede como uma parte desta etapa 105 ou como parte de alguma etapa anterior.
Como cortar compreende uma técnica conhecida, elaboração posterior a esse respeito não será fornecida aqui. Como um moderno, não atípico, sistema operacional de telefones celulares pode suportar mais de 300, ou perto disso, chamadas ao sistema operacional, eliminar caminhos desinteressantes pode resultar em uma redução de tamanho considerável.
Em qualquer caso, este processo 100, em seguida, fornece o passo 106 de permitir que a plataforma de usuário final faça o download do programa executável. De um modo geral, esta etapa de "permitir" pressupõe que a plataforma de usuário final requer a correspondente permissão para fazer o download do programa executável e que, na ausência de tal autorização a plataforma de usuário final não pode realizar a atividade de download. Esta "permissão" pode incluir, por uma abordagem, notificar o programa do usuário final dos resultados acima mencionados. Isto pode também incluir, no lugar do anterior, ou em combinação com o mesmo, notificar a fonte do programa executável que o download do programa pode ser feito para a plataforma de usuário final. Por outra abordagem, o elemento de infraestrutura de rede pode servir como uma fonte para o programa executável.
Como mencionado anteriormente, as políticas vetadas pelo elemento de infraestrutura de rede, como descrito acima podem, ou não, incluir todas as políticas que podem ser motivo de preocupação para a plataforma de usuário final. Em muitos casos, de fato, espera-se que a plataforma de usuário final possa ter algumas políticas que são mantidas em sigilo, a fim de evitar comprometer informações confidenciais. Nesse caso, existe a possibilidade de que o processo de análise descrito encontrará um programa inaceitável sendo aceitável como o elemento de infraestrutura de rede não tem o necessário conteúdo de exame.
Para responder a esta necessidade, este processo 100 suportará também, se desejado, o passo 107 de comunicar o modelo para a plataforma de usuário final. Ao implementar esta abordagem, isto provavelmente vai ser útil em muitas configurações do aplicativo para fornecer o modelo referido em pedaços para a plataforma de usuário final em vez do modelo completo. O tamanho reduzido e a complexidade do modelo cortado apresentará um fardo menos pesado para as limitações de largura de banda que podem caracterizar a conexão de rede para a plataforma do usuário final. O modelo em pedaços pode também representar uma carga reduzida computacional que comporta melhor com o processamento limitado ou recursos de energia da plataforma de usuário final.
Não é improvável que outras plataformas de usuário final expressarão eventualmente um interesse semelhante no programa executável aprovado. Este processo 100 será entendido como acomodar facilmente retendo os resultados do processo de exame a fim de facilitar a reutilização desses resultados ao fornecer respostas subsequentes a outras plataformas de usuário final. Pode haver momentos, porém, que as plataformas de usuário final têm diferentes políticas. Uma plataforma de usuário final, por exemplo, pode ser particularmente sensível às chamadas que buscam utilizar a capacidade de Bluetooth nativa, enquanto outra plataforma de usuário final pode não ter essa capacidade e não ter qualquer preocupação com relação a esta política.
Para atender a essa contingência, este processo 100 também opcionalmente acomoda o passo 108 de computar uma função de assimilação de mensagem em relação ao programa executável para, assim, criar uma versão assinada do programa executável (usando, por exemplo, tecnologia HAB (inicialização de alta garantia)), onde a versão assinada também inclui, pelo menos em parte, uma ou mais das políticas usadas quando examinar o programa executável. A criação geral de versões assinadas compreende uma área bem entendida do esforço e não requer nenhuma elaboração adicional aqui.
Assim configurado, este processo 100, então, também, opcionalmente, suporta os passos 109 e 110, ao determinar que outra plataforma de usuário final procura fazer do download deste programa executável, fornecendo a essa plataforma de usuário final a versão assinada do programa executável. Esta plataforma de usuário final pode, então, avaliar o conteúdo de políticas de tal versão assinada para determinar uma extensão em que o estado verificado do programa executável é, de fato, relevante para seus próprios padrões de políticas. Quando, por exemplo, esta plataforma de usuário final conclui que o processo atual é insuficiente para as suas próprias exigências, esta plataforma de usuário final pode solicitar que o elemento de infraestrutura de rede compare o modelo contra uma ou mais políticas adicionais, tal como previsto ou identificado por esta plataforma de usuário final.
Referindo-se agora à Figura 2, um processo complementar 200 adequado para a execução por uma plataforma de usuário final tendo uma pluralidade de políticas sobre as chamadas ao sistema operacional será descrito.
Este processo 200 fornece o passo 201 de comunicar a um elemento de infraestrutura de rede de informação sobre fazer o download de um programa executável específico, como descrito acima. Como se observa, se desejado, esta informação pode incluir, pelo menos em parte, informações a respeito de algumas, embora nem todas se desejado, das políticas relativamente às chamadas ao sistema operacional que são de interesse para esta plataforma de usuário final.
Este processo 200 pode, então, também fornecer o passo 202 de receber a partir do elemento de infraestrutura de rede a aprovação em relação ao download do programa executável (quando for o resultado do exame do elemento infraestrutura de rede do programa executável como descrito acima). Esta aprovação pode ser tanto explícita / direta ou implícita / indireta quanto possa ser desejado e quanto possa atender às necessidades ou oportunidades que caracterizam uma dada definição de aplicativo. Este passo 202 também irá acomodar receber um modelo do programa executável como descrito acima, se desejado. Isso pode incluir, por exemplo, o modelo referido em pedaços.
Em tal caso, esse processo 200 pode então também fornecer o passo 203 de usar o modelo recebido para ele mesmo examinar o comportamento baseado em chamada ao sistema operacional do programa executável com relação a algumas, mas não todas, suas políticas. De um modo geral, a plataforma de usuário final só precisa examinar as políticas específicas que normalmente mantém em sigilo e que não foram partilhadas com, por exemplo, elemento de infraestrutura de rede. Isto, por sua vez, pode tender a usar apenas uma quantidade mínima de tempo e recursos "on-board" para completar a tarefa de exame.
Quando este processo de exame local atinge resultados aceitáveis relativos ao comportamento baseado me chamada ao sistema operacional de um programa executável, este processo 200 pode, então, (opcionalmente) fornecer para fazer o download do programa executável para a plataforma de usuário final. A fonte de download pode variar conforme mencionado acima. Também seria possível, se necessário, configurar a plataforma de usuário final para fazer o download de alguns ou todos os programas executáveis antes da conclusão do processo de exame em circunstâncias controladas que mantêm o conteúdo do qual foi feito o download em um estado isolado e não executado na pendência dos resultados do processo de exame local.
Os hábeis na arte vão apreciar que os processos acima descritos são facilmente ativados usando qualquer uma de uma grande variedade de plataformas disponíveis e facilmente configuradas, incluindo plataformas parcialmente ou totalmente programáveis como são conhecidas na arte ou plataformas de propósito dedicado como pode ser desejado para algumas aplicações. Referindo-se agora à Figura 3, uma abordagem ilustrativa de tais plataformas agora será fornecida.
Neste exemplo ilustrativo, o elemento de infraestrutura de rede 300 compreende um circuito de controle 301 que operativamente acopla tanto uma memória 302 quanto uma interface de rede 303. A memória 302 pode compreender, no todo ou em parte, um componente discreto físico ou pode ser parcial ou totalmente integrada com o circuito de controle 301. Também será entendido que esta memória 302 pode incluir uma pluralidade de elementos de memória ou pode compreender um único componente (como é sugerido, mas não mandatado pela ilustração). Esta memória 302 pode servir, por exemplo, para armazenar as políticas acima mencionadas, o programa executável, o modelo de desenvolvimento incipiente do programa executável, o modelo final do programa executável, a versão cortada do programa, ou os resultados do processo de exame como desejado.
A interface de rede 303, por sua vez, operativamente acopla uma ou mais redes 304 (tais como, mas não se limitando, a Internet através de uma via direta ou indireta). Assim configurado, o elemento de infraestrutura de rede 300 pode operativamente acoplar plataformas de usuário final 305 ou uma ou mais fontes de programa executável 306 através destas redes 304 para facilitar as várias comunicações e trocas aqui descritas. Várias redes e arranjos arquitetônicos são muito bem conhecidos na arte. Como estes ensinamentos não são extremamente sensíveis a qualquer seleção especial nesse respeito, pelo propósito de brevidade e a preservação da clareza, elaboração adicional a esse respeito não será apresentada aqui.
Os hábeis na arte irão reconhecer e apreciar que o circuito de controle 301 podem compreender uma plataforma de propósito fixo com fio ou pode incluir uma plataforma parcial ou totalmente programável. Todas estas opções arquitetônicas também são bem conhecidas e entendidas na arte e, novamente, não exigem nenhuma descrição detalhada adicional aqui.
Assim configurado, o circuito de controle 301 pode ser configurado (usando, por exemplo, a programação correspondente como vai ser bem entendido por aqueles hábeis na arte) para realizar uma ou mais das ações, passos, ou funcionalidades descritas neste documento. Isso pode incluir, por exemplo, a configuração do circuito de controle 301 para fazer a determinação descrita que a plataforma de usuário final 305 busca fazer o download um programa executável, executar automaticamente o programa executável para desenvolver o modelo correspondente do programa executável representando o comportamento baseado em chamada ao sistema operacional do programa executável, usar o modelo para examinar o comportamento baseado em chamada ao sistema operacional do programa executável no que diz respeito às políticas correspondentes para a plataforma de usuário final, e permitir que a plataforma de usuário final 305 faça o download do programa executável quando o comportamento baseado em chamada ao sistema operacional do programa executável examina aceitavelmente, com respeito a essas políticas.
De maneira similar, a plataforma de usuário final 305 pode ser configurada para realizar uma ou mais das ações do usuário final, passos, ou funcionalidades como estão aqui descritos.
Os hábeis na arte irão reconhecer e compreender que tal aparelho 300 pode incluir uma pluralidade de elementos fisicamente distintos, como sugerido pela ilustração mostrada na Figura 3. Também é possível, no entanto, ver esta ilustração como compreendendo uma visão lógica, caso em que um ou mais destes elementos podem ser habilitados e realizados através de uma plataforma compartilhada.
A título de ilustração e sem pretender quaisquer limitações a esse respeito, um caso de uso exemplar vai agora ser apresentado. Referindo-se à Figura 4, a primeira plataforma de usuário final gera uma mensagem 401 compreendendo uma requisição de download que identifica um programa executável em particular e que inclui ainda uma série de políticas de plataforma de usuário final referentes às chamadas ao sistema operacional. Esta mensagem 401 é fornecida a um elemento de infraestrutura de rede que, em seguida, acessa uma fonte do programa executável correspondente e faz o download 402 do programa identificado.
O elemento de infraestrutura de rede, então, desenvolve 403um modelo, como aqui descrito (usando o programa executável do qual foi feito o download) e examina 404 o modelo contra as políticas da plataforma de usuário final. Quando este exame leva a resultados inaceitáveis, o elemento de infraestrutura de rede pode ter uma ou mais ações (não mostrado) de negar ou desencorajar o download do programa pela plataforma de usuário final.
Quando o processo de exame 404 leva a resultados aceitáveis, neste exemplo ilustrativo o elemento de infraestrutura de rede desenvolve 405 uma versão cortada do modelo e, em seguida, fornece esse modelo em pedaços e correspondente mensagem de aprovação 406 para a primeira plataforma de usuário final. A primeira plataforma de usuário final, por sua vez, então usa 407 esse modelo em pedaços para examinar quaisquer políticas restantes que são de interesse para a plataforma de usuário final a respeito e que não foram já acessadas pelo elemento de infraestrutura de rede. Quando este segundo processo de exame produz resultados bem sucedidos, a primeira plataforma de usuário final, então, faz o download do programa executável 408, conforme a intenção e objetivo original.
Neste exemplo ilustrativo, em algum momento posterior (por exemplo, minutos ou dias depois), uma segunda plataforma de usuário final propõe uma mensagem de requisição de download semelhante 409 para o elemento de infraestrutura de rede. Neste caso, porém, em vez de repetir o desenvolvimento do modelo acima e atividade de exame, o elemento de infraestrutura de rede (mediante determinação de que esta segunda plataforma de usuário final está, de fato, procurando fazer o download do programa previamente examinado), simplesmente encaminha para a segunda plataforma de usuário final uma mensagem de aprovação 410 em conjunto com o modelo cortado. Por uma abordagem, se desejado, esta abordagem abreviada pode ser condicionada à determinação de que as políticas para a segunda plataforma de usuário final são suficientemente semelhantes às políticas contra as quais o modelo anteriormente desenvolvido foi examinado. O modelo cortado fornecido para a segunda plataforma de usuário final pode ser o mesmo que o modelo originalmente cortado fornecido 406 pelo elemento de infraestrutura de rede para a primeira plataforma de usuário final ou, se desejado, o modelo cortado fornecido para a segunda plataforma de usuário final pode ser diferente. Por exemplo, pode ser apropriado fornecer a segunda plataforma de usuário final com um modelo cortado diferente quando se sabe que o elemento de infraestrutura de rede que a segunda plataforma de usuário final tem uma ou mais chamadas ao sistema de interesse diferentes.
Assim configurado, as plataformas de usuário final podem expandir seu universo de fontes de programas executáveis disponíveis sem a necessidade de um aumento proporcional significativo nas capacidades de exame locais. Os processos aqui descritos não requerem acessar o código fonte e são particularmente úteis para examinar chamadas ao sistema operacional que compreendem, ou se relacionam, políticas de interesse para a plataforma de usuário final. Esses ensinamentos são altamente escaláveis, são capazes de alavancar facilmente técnicas atualmente disponíveis, arquitetura e capacidades de processamento, e são respeitosos das limitações de largura de banda caracterizando as muitas configurações de aplicativos de redes.
Os hábeis na arte irão reconhecer que uma grande variedade de modificações, alterações e combinações podem ser feitas com respeito às incorporações acima descritas, sem se afastar do espirito e escopo da invenção, e que tais modificações, alterações e combinações devem ser vistas como estando dentro do âmbito do conceito inventivo. Como um exemplo neste sentido, as primeiras políticas empregadas pelo elemento de infraestrutura de rede podem incluir um conjunto genérico de políticas que são presumidos ou conhecidos por serem relevantes para uma determinada classe ou grupo de plataformas de usuários finais. Tal conjunto genérico de políticas pode ser acessível, no todo ou em parte, através de um recurso nativo e locais relacionados com o elemento de infraestrutura de rede ou pode ser obtido, no todo ou em parte, a partir de um recurso remoto como um servidor de política que fornece tal serviço. Nesse caso, a plataforma de usuário final pode, ou não, ainda complementar aquele conjunto genérico de políticas com uma ou mais políticas adicionais (embora talvez excluindo, mais uma vez, as políticas que podem conter ou de outra forma representar informação confidencial) .

Claims (16)

  1. Método para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede caracterizado pelo fato de que compreende:
    determinação (101), pelo elemento de infraestrutura (300), que uma plataforma de usuário final (305) procura fazer o download de um programa executável;
    o recebimento, pelo elemento de infraestrutura, de informações sobre políticas associadas à plataforma do usuário final, as políticas sobre comportamento aceitável para a operação do programa executável na plataforma do usuário final;
    a execução (103), pelo elemento de infraestrutura, do programa executável para monitorar o comportamento baseado em chamadas ao sistema operacional do programa executável quando o programa executável faz chamadas para um sistema operacional em execução no elemento de infraestrutura de rede, o comportamento baseado em chamadas ao sistema operacional forma um modelo correspondente do programa executável;
    em que o modelo formado a partir do comportamento baseado em chamadas ao sistema operacional reflete as políticas associadas à plataforma do usuário final em relação à operação aceitável do programa executável quando o programa executável estaria em execução na plataforma do usuário final;
    usar (104), pelo elemento de infraestrutura, o modelo do programa executável para examinar o comportamento baseado em chamada ao sistema operacional do programa executável no que diz respeito às políticas correspondentes para a plataforma de usuário final (305) para determinar se o programa executável irá operar dentro do comportamento aceitável se for feito o download do mesmo e executado na plataforma do usuário final; e se o exame do programa executável for aceitável com relação às políticas; e
    se o exame do programa executável for aceitável em relação às políticas, permitir que, pelo elemento de infraestrutura, a plataforma de usuário final (305) faça o download (106) do programa executável.
  2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar que a plataforma do usuário final procura fazer o download de um programa executável compreende receber uma solicitação de download obtida pela plataforma do usuário final.
  3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que executar o programa executável para monitorar o comportamento baseado em chamadas ao sistema operacional do programa executável compreende a execução do programa executável usando o conteúdo de entrada aleatória.
  4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que executar o programa executável para monitorar o comportamento baseado em chamadas ao programa executável compreende a execução do programa executável uma pluralidade de vezes usando o conteúdo de entrada diferente automaticamente gerado.
  5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende:
    cortar o modelo para fornecer um modelo em pedaços; e em que permitir que a plataforma de usuário final faça o download do programa executável também inclui a comunicação do modelo em pedaços para a plataforma de usuário final.
  6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende, quando o comportamento baseado em chamada ao sistema operacional do programa executável examina aceitavelmente no que diz respeito às políticas:
    computar uma função mensagem de digestão em relação ao programa executável para, assim, criar uma versão assinada do programa executável, em que a versão assinada também inclui, em parte, pelo menos uma das políticas.
  7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de compreender ainda:
    determinar que outra plataforma de usuário final procura fazer o download do programa executável; e
    fornecer à outra plataforma do usuário final a versão assinada do programa executável.
  8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de compreender ainda, se o exame do programa executável não é aceitável em relação às políticas, não permitir que a plataforma do usuário final faça o download do programa executável.
  9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de compreender ainda, se o exame do programa executável não for aceitável em relação às políticas enviadas pelo usuário, emitindo uma indicação de que o programa executável não é aceitável para ser feito o download do mesmo.
  10. Aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede, caracterizado pelo fato de compreender:
    uma plataforma de usuário final tendo uma pluralidade de políticas em relação a comportamento aceitável para operação do programa executável na plataforma de usuário final; e
    um elemento de infraestrutura de rede (300) tendo uma memória (302), uma interface de rede (303); e um circuito de controle (301) operativamente acoplado à memória (302), sendo o circuito de controle configurado para:
    determinar (101) que uma plataforma de usuário final (305) procura fazer o download de um programa executável;
    receber informações sobre políticas associadas à plataforma do usuário final, políticas sobre comportamento aceitável para operação do programa executável na plataforma do usuário final;
    executar (103) o programa executável para monitorar o comportamento baseado em chamadas ao sistema operacional do programa executável quando o programa executável faz chamadas para um sistema operacional em execução no elemento de infraestrutura de rede, o comportamento baseado em chamadas ao sistema operacional formando um modelo correspondente do programa executável;
    usar (104) o modelo do programa executável para examinar o comportamento baseado em chamada ao sistema operacional do programa executável no que diz respeito às políticas correspondentes para a plataforma de usuário final (305) para determinar se o programa executável irá operar dentro do comportamento aceitável se for feito o download do mesmo e executado na plataforma do usuário final; e
    permitir que a plataforma de usuário final (305) faça o download (106) do programa executável se o exame do programa executável é aceitável no que diz respeito às políticas,
    em que o modelo formado a partir do comportamento baseado em chamadas ao sistema operacional reflete as políticas associadas à plataforma do usuário final em relação à operação aceitável do programa executável quando o programa executável estaria em execução na plataforma do usuário final.
  11. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para determinar que a plataforma do usuário final procura fazer o download do programa executável pelo recebimento, através da interface de rede, de uma solicitação de download obtida pela plataforma do usuário final.
  12. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para executar o programa executável para monitorar o comportamento baseado em chamada ao sistema operacional do programa executável pela execução do programa executável usando conteúdo de entrada aleatória.
  13. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para executar o programa executável para monitorar o comportamento baseado em chamada ao sistema operacional do programa executável pela execução do programa executável uma pluralidade de vezes usando o conteúdo de entrada diferente automaticamente gerado.
  14. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para cortar o modelo para fornecer um modelo cortado, e em que o circuito de controle é ainda configurado para permitir que a plataforma de usuário final faça o download do programa executável por também comunicar o modelo cortado à plataforma de usuário final.
  15. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para, se o exame do programa executável não for aceitável em relação às políticas, não permitir que a plataforma do usuário final faça o download do programa executável.
  16. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o circuito de controle é ainda configurado para, se o exame do programa executável não for aceitável em relação às políticas enviadas pelo usuário, emitir uma indicação de que o programa executável não é aceitável para ser feito o download do mesmo.
BRPI1014870-1A 2009-04-01 2010-03-25 método e aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede BRPI1014870B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/416,657 US8484625B2 (en) 2009-04-01 2009-04-01 Method and apparatus to vet an executable program using a model
US12/416,657 2009-04-01
PCT/US2010/028563 WO2010120460A1 (en) 2009-04-01 2010-03-25 Method and apparatus to vet an executable program using a model

Publications (2)

Publication Number Publication Date
BRPI1014870A2 BRPI1014870A2 (pt) 2016-04-12
BRPI1014870B1 true BRPI1014870B1 (pt) 2020-11-24

Family

ID=42358395

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1014870-1A BRPI1014870B1 (pt) 2009-04-01 2010-03-25 método e aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede

Country Status (8)

Country Link
US (1) US8484625B2 (pt)
EP (1) EP2414935B1 (pt)
KR (1) KR101373986B1 (pt)
CN (1) CN102378963A (pt)
BR (1) BRPI1014870B1 (pt)
MX (1) MX2011010196A (pt)
RU (1) RU2575985C2 (pt)
WO (1) WO2010120460A1 (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652616B1 (en) * 2011-03-14 2017-05-16 Symantec Corporation Techniques for classifying non-process threats
US8438532B2 (en) 2011-04-19 2013-05-07 Sonatype, Inc. Method and system for scoring a software artifact for a user
US8627270B2 (en) 2011-09-13 2014-01-07 Sonatype, Inc. Method and system for monitoring a software artifact
US9141378B2 (en) 2011-09-15 2015-09-22 Sonatype, Inc. Method and system for evaluating a software artifact based on issue tracking and source control information
GB2497932A (en) * 2011-12-21 2013-07-03 Ibm Network device modelling of configuration commands to predict the effect of the commands on the device.
US8656343B2 (en) 2012-02-09 2014-02-18 Sonatype, Inc. System and method of providing real-time updates related to in-use artifacts in a software development environment
US8825689B2 (en) 2012-05-21 2014-09-02 Sonatype, Inc. Method and system for matching unknown software component to known software component
US9141408B2 (en) * 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
US9135263B2 (en) 2013-01-18 2015-09-15 Sonatype, Inc. Method and system that routes requests for electronic files
US9135324B1 (en) * 2013-03-15 2015-09-15 Ca, Inc. System and method for analysis of process data and discovery of situational and complex applications
US9069562B2 (en) * 2013-10-23 2015-06-30 International Business Machines Corporation Mobile computing program slicing and behavior
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US10630703B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for identifying relationships among infrastructure security-related events
US10574683B1 (en) * 2019-07-25 2020-02-25 Confluera, Inc. Methods and system for detecting behavioral indicators of compromise in infrastructure
US10630716B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for tracking security risks over infrastructure
US10630715B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for characterizing infrastructure security-related events
US10630704B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and systems for identifying infrastructure attack progressions
US10887337B1 (en) 2020-06-17 2021-01-05 Confluera, Inc. Detecting and trail-continuation for attacks through remote desktop protocol lateral movement
CN112732557B (zh) * 2020-12-30 2023-09-08 科来网络技术股份有限公司 数据偏移下载的接口测试脚本实现方法及自动化测试方法
US11397808B1 (en) 2021-09-02 2022-07-26 Confluera, Inc. Attack detection based on graph edge context
US20230367590A1 (en) * 2022-05-13 2023-11-16 Cisco Technology, Inc. Application portability metric measurement

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167520A (en) 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
DE19701166A1 (de) * 1997-01-15 1998-07-23 Siemens Ag Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6119165A (en) 1997-11-17 2000-09-12 Trend Micro, Inc. Controlled distribution of application programs in a computer network
US6088803A (en) 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US20020131404A1 (en) * 2000-11-28 2002-09-19 4Thpass Inc. Method and system for maintaining and distributing wireless applications
US6804709B2 (en) * 2001-02-20 2004-10-12 Microsoft Corporation System uses test controller to match different combination configuration capabilities of servers and clients and assign test cases for implementing distributed testing
US6988055B1 (en) * 2002-10-04 2006-01-17 American Megatrenos, Inc. Method, system, and apparatus for providing a single diagnostics module on-demand
US20040193703A1 (en) * 2003-01-10 2004-09-30 Guy Loewy System and method for conformance and governance in a service oriented architecture
US6882951B2 (en) * 2003-07-07 2005-04-19 Dell Products L.P. Method and system for information handling system automated and distributed test
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4732874B2 (ja) * 2005-11-28 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法
US20070240222A1 (en) 2006-04-06 2007-10-11 George Tuvell System and Method for Managing Malware Protection on Mobile Devices
US20080148298A1 (en) 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置
US9413825B2 (en) * 2007-10-31 2016-08-09 Emc Corporation Managing file objects in a data storage system
US8429002B2 (en) * 2009-03-31 2013-04-23 Oracle International Corporation Approaches for enforcing best practices and policies through computerized processes

Also Published As

Publication number Publication date
EP2414935A1 (en) 2012-02-08
CN102378963A (zh) 2012-03-14
MX2011010196A (es) 2011-11-18
US20100257253A1 (en) 2010-10-07
KR20110124342A (ko) 2011-11-16
KR101373986B1 (ko) 2014-03-12
BRPI1014870A2 (pt) 2016-04-12
EP2414935B1 (en) 2020-06-03
WO2010120460A1 (en) 2010-10-21
US8484625B2 (en) 2013-07-09
RU2575985C2 (ru) 2016-02-27
RU2011144144A (ru) 2013-05-10

Similar Documents

Publication Publication Date Title
BRPI1014870B1 (pt) método e aparelho para suportar o download de um programa executável para um usuário final usando um elemento de infraestrutura de rede
US10664592B2 (en) Method and system to securely run applications using containers
JP5398824B2 (ja) セキュア処理システムのアプリケーション空間において信頼性を実現するための一時的pcr利用
US8782792B1 (en) Systems and methods for detecting malware on mobile platforms
US10073966B2 (en) Operating system-independent integrity verification
US9219611B1 (en) Systems and methods for automating cloud-based code-signing services
US9824220B2 (en) Secure execution of software modules on a computer
JP6698056B2 (ja) 異常な事象を検出するシステム及び方法
US8869284B1 (en) Systems and methods for evaluating application trustworthiness
KR102134491B1 (ko) 보호된 데이터 세트의 네트워크 기반 관리 기법
Jayaram et al. Trustworthy geographically fenced hybrid clouds
JP2020501239A (ja) 不正なクライアント・アプリケーションからのウェブ・サーバの保護
US9519780B1 (en) Systems and methods for identifying malware
Wan et al. Practical and effective sandboxing for Linux containers
Kaczmarek et al. Operating system security by integrity checking and recovery using write‐protected storage
CN115244535A (zh) 用于保护文件夹免受未授权文件修改的系统和方法
US8881291B2 (en) System and method for inhibiting the processing of new code modules by an outdated runtime environment
CN116702126A (zh) 应用访问控制方法和装置、计算设备和可读存储介质
Shang et al. ICS software trust measurement method based on dynamic length trust chain
Chang et al. Towards a multilayered permission‐based access control for extending Android security
BR112014005052B1 (pt) Sistema e método para manipulação de conteúdo para aplicações
Xu et al. A symbolic model for systematically analyzing TEE-based protocols
Alam et al. Analysis of existing remote attestation techniques
Singh et al. Discovering persuaded risk of permission in android applications for malicious application detection
CN115134164B (zh) 一种上传行为检测方法、系统、设备及计算机存储介质

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: MOTOROLA MOBILITY LLC (US)

B25G Requested change of headquarter approved

Owner name: MOTOROLA MOBILITY LLC (US)

B25A Requested transfer of rights approved

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 24/11/2020, OBSERVADAS AS CONDICOES LEGAIS.