ES2336658T3 - Puesta en peligro automatizada de la seguridad de un sistema informatico. - Google Patents

Puesta en peligro automatizada de la seguridad de un sistema informatico. Download PDF

Info

Publication number
ES2336658T3
ES2336658T3 ES02768315T ES02768315T ES2336658T3 ES 2336658 T3 ES2336658 T3 ES 2336658T3 ES 02768315 T ES02768315 T ES 02768315T ES 02768315 T ES02768315 T ES 02768315T ES 2336658 T3 ES2336658 T3 ES 2336658T3
Authority
ES
Spain
Prior art keywords
agent
remote
quad
target
network
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
ES02768315T
Other languages
English (en)
Inventor
Maximiliano Gerardo Caceres
Gerardo Gabriel Richarte
Augustin Azubel Friedman
Ricardo Quesada
Luciano Notarfrancesco
Oliver Friedrichs
Javier Burroni
Gustavo Ajzenman
Gabriel Becedillas
Bruce Leidl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core SDI Inc
Original Assignee
Core SDI Inc
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 Core SDI Inc filed Critical Core SDI Inc
Application granted granted Critical
Publication of ES2336658T3 publication Critical patent/ES2336658T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Alarm Systems (AREA)
  • Burglar Alarm Systems (AREA)

Abstract

Un sistema para realizar pruebas de penetración de una red informática objetivo comprendiendo el sistema: medios para instalar un agente remoto en la red informática objetivo, en el que el agente remoto comprende un servidor proxy configurado para recibir y ejecutar llamadas de sistema; un agente local previsto en una consola y configurado para recibir y ejecutar órdenes; una interfaz de usuario prevista en la consola y configurada para enviar órdenes a y recibir información desde el agente local, procesar las informaciones, y presentar la información procesada; una base de datos configurada para almacenar la información recibida desde el agente local; una interfaz de red conectada al agente local y configurada para comunicarse a través de una red con el agente remoto instalado en la red informática objetivo; y medios para almacenar módulos de aprovechamiento de vulnerabilidades de seguridad para su ejecución por el agente local y/o el agente remoto, caracterizado porque el agente remoto está adaptado además para ejecutar módulos de aprovechamiento de vulnerabilidades de seguridad en una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos de alto nivel recibidas a través de la red.

Description

Puesta en peligro automatizada de la seguridad de un sistema informático.
La presente solicitud reivindica el beneficio de la solicitud estadounidense provisional n.º 60/304,270, presentada el 10 de julio de 2001, y la solicitud estadounidense provisional n.º 60/313,793, presentada el 20 de agosto de 2001.
Antecedentes de la invención Campo de la invención
La presente invención se refiere en general a analizar la seguridad de un sistema informático poniendo en peligro la seguridad de manera sistemática.
Técnica relacionada
Los sistemas informáticos que están conectados a una red informática, tal como Internet, deben emplear medidas de seguridad para impedir que usuarios no autorizados accedan a estos sistemas. Las medidas de seguridad deben diseñarse e implementarse apropiadamente con el fin de impedir un acceso no autorizado. Sin embargo, es difícil evaluar la eficacia de tales medidas de seguridad, particularmente en vista de la sofisticación creciente de las técnicas usadas para obtener un acceso no autorizado a sistemas informáticos.
La eficacia de las medidas de seguridad de un sistema informático puede evaluarse realizando una auditoría de seguridad informática en la que se analizan y evalúan diversos aspectos de seguridad informática.
La auditoría de seguridad puede incluir una prueba de penetración, que es un procedimiento mediante el cual un auditor de seguridad intenta obtener el acceso no autorizado al sistema informático.
\vskip1.000000\baselineskip
De manera convencional, se realiza una prueba de penetración usando múltiples herramientas y procedimientos ad hoc, en vez de según una norma o procedimiento formalizado. Una prueba de penetración típica incluye las siguientes fases:
1. Recopilación de información: El auditor de seguridad recopila detalles técnicos acerca del sistema objetivo e información relativa al propietario del sistema objetivo.
2. Planificación y análisis de la información: El auditor analiza la información para planificar en planteamiento global mediante el que van a realizarse las pruebas de penetración. Esto tiende a ser una tarea difícil y que lleva tiempo y requiere personal experimentado y entendido que tenga una base de conocimientos altamente especializados.
3. Detección de vulnerabilidades: El auditor examina el sistema objetivo para determinar vulnerabilidades de seguridad basándose en el plan de máximo nivel desarrollado en la fase de planificación y análisis de la información. Las vulnerabilidades de seguridad incluyen, por ejemplo, configuraciones erróneas del sistema que habilitan a un usuario no autorizado para obtener el acceso usando una serie conocida de etapas.
La búsqueda de vulnerabilidades puede realizarse usando un escáner de vulnerabilidades automatizado, que es un paquete de software que determina si pueden usarse ciertos defectos conocidos para obtener un acceso no autorizado al objetivo. También puede realizarse una exploración manual de las vulnerabilidades para investigar vulnerabilidades comunes que, por diversos motivos, puede no haber detectado un escáner automatizado. Sin embargo, las técnicas de exploración de vulnerabilidades de este tipo únicamente enumeran las vulnerabilidades, en vez de tratar realmente de aprovecharlas.
Las búsquedas de vulnerabilidades automatizadas y manuales pueden complementarse con la investigación realizada por el auditor de seguridad para determinar vulnerabilidades desconocidas previamente. Una investigación de este tipo se realiza normalmente usando una copia (también denominada un espejo) de la aplicación de software que está investigándose y/o el hardware asociado.
4. Puesta en peligro y acceso al sistema objetivo: El auditor intenta poner en peligro el sistema objetivo basándose en los resultados de la fase de detección de vulnerabilidades usando programas que están disponibles para el público o desarrollados de manera personalizada.
Los programas disponibles para el público diseñados para aprovechar las vulnerabilidades del sistema tienden a ser poco fiables y requieren pruebas y personalización antes de su uso. En general, aprovechar las vulnerabilidades detectadas, independientemente de las herramientas que estén usándose, requiere personal experimentado y entendido que tenga una base de conocimientos altamente especializados. Además, puede requerirse una infraestructura de laboratorio considerable para desarrollar y someter a prueba las herramientas de aprovechamiento de las vulnerabilidades, particularmente cuando el sistema objetivo emplea diferentes plataformas de sistema operativo.
5. Análisis y notificación: Esta fase incluye consolidar y presentar la información obtenida durante las fases previas y desarrollar recomendaciones para remediar las vulnerabilidades de seguridad identificadas durante la prueba de penetración. Mantener manualmente un registro de todas las acciones emprendidas y de la información recopilada durante las pruebas lleva mucho tiempo y es propenso a error. Además, la preparación de registros completos y precisos está sujeta a la disciplina del personal que realiza la prueba.
6. Limpieza: la fase de puesta en peligro y acceso normalmente da como resultado que se realicen cambios significativos en el sistema objetivo. En la fase de limpieza, el auditor devuelve el sistema a su configuración original. Para realizar una limpieza satisfactoria, debe mantenerse una lista detallada y exacta de todas las acciones realizadas durante las pruebas, aunque sólo hay disponibles herramientas rudimentarias para mantener tal información.
En vista de las deficiencias comentadas anteriormente, existe la necesidad de un sistema y un procedimiento para realizar una prueba de penetración automatizada empleando la puesta en peligro del sistema informático que adopte un planteamiento completamente nuevo y supere los inconvenientes de las técnicas convencionales.
\vskip1.000000\baselineskip
Sumario de la invención
La presente invención proporciona generalmente un sistema, un procedimiento y un producto de programa informático para ejecutar el procedimiento novedosos para realizar pruebas de penetración automatizadas para analizar la seguridad de un sistema informático poniendo en peligro la seguridad de manera sistemática.
Un aspecto de la presente invención proporciona un sistema, un procedimiento y un producto de programa informático para ejecutar el procedimiento para realizar pruebas de penetración de una red informática objetivo. El sistema comprende medios para instalar un agente remoto en la red informática objetivo. El agente remoto comprende un servidor proxy configurado para recibir y ejecutar llamadas de sistema. Un agente local está previsto en una consola y configurado para recibir y ejecutar órdenes. Una interfaz de usuario prevista en la consola y configurada para enviar órdenes a y recibir información desde el agente local, procesar la información, y presentar la información procesada. Una base de datos está configurada para almacenar la información recibida desde el agente local. Una interfaz de red está conectada al agente local y configurada para comunicarse a través de una red con el agente remoto instalado en la red informática objetivo. Se prevén medios para almacenar módulos de aprovechamiento de vulnerabilidades de seguridad para su ejecución por el agente local y/o el agente remoto. El agente remoto está adaptado además para ejecutar módulos de aprovechamiento de vulnerabilidades de seguridad en una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos de alto nivel recibidas a través de la
red.
Las realizaciones de este aspecto pueden incluir una o más de las siguientes características. La interfaz de usuario puede habilitar a un usuario para seleccionar uno de los módulos e iniciar la ejecución del módulo seleccionado o bien en el agente local o bien en el agente remoto. La interfaz de usuario puede proporcionar una representación gráfica de la red informática objetivo.
Los medios para instalar un agente remoto pueden incluir además medios para almacenar un primer módulo configurado para ejecutarse en la consola para aprovechar una vulnerabilidad de seguridad en un primer ordenador central objetivo de la red objetivo. Medios para instalar un primer agente remoto en el primer ordenador central objetivo. El primer agente remoto está configurado para comunicarse con la consola y un segundo agente remoto. Medios para almacenar un segundo módulo configurado para ejecutarse en el primer agente remoto para aprovechar una vulnerabilidad de seguridad en un segundo ordenador central objetivo de la red objetivo.
Las realizaciones de este aspecto pueden incluir además la característica de instalar un segundo agente remoto en el segundo ordenador central objetivo de la red objetivo, estando configurado el segundo agente remoto para comunicarse con el primer agente remoto.
Las realizaciones de este aspecto pueden incluir además una llamada de sistema que se envía al primer agente remoto a través de una red. La llamada de sistema se ejecuta en el primer ordenador central objetivo usando un servidor proxycall del primer agente remoto para aprovechar una vulnerabilidad de seguridad de un segundo ordenador central objetivo.
Las realizaciones de este aspecto pueden incluir además un segundo módulo que genera una llamada de sistema que se ejecuta en el primer agente remoto. La llamada de sistema se ejecuta en el primer ordenador central objetivo para aprovechar una vulnerabilidad de seguridad de un segundo ordenador central objetivo.
Las realizaciones de este aspecto pueden incluir además un segundo módulo que se ejecuta en el primer agente remoto que genera una llamada de sistema. Un segundo agente remoto está instalado en el segundo ordenador central objetivo como resultado de aprovechar una vulnerabilidad de seguridad del segundo ordenador central objetivo. La llamada de sistema generada por el segundo módulo se envía al segundo agente remoto a través de una red. La llamada de sistema se ejecuta en el segundo ordenador central objetivo usando un servidor proxycall del segundo agente remoto.
Las realizaciones de este aspecto pueden incluir además un segundo agente remoto que está instalado en el segundo ordenador central objetivo como resultado de aprovechar una vulnerabilidad de seguridad del segundo ordenador central objetivo. Una llamada de sistema se envía al primer agente remoto y se envía desde el primer agente remoto al segundo agente remoto. La llamada de sistema se ejecuta en el segundo ordenador central objetivo usando un servidor proxycall del segundo agente remoto.
Un agente para su uso en un sistema para realizar pruebas de penetración de una red informática objetivo. El agente incluye un servidor proxy configurado para recibir y ejecutar llamadas de sistema recibidas a través de una red y una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos recibidas a través de la red.
El agente puede incluir un motor de ejecución configurado para controlar el servidor proxy y la máquina virtual. El motor de ejecución puede encaminar las llamadas de sistema y las instrucciones en lenguaje de secuencia de comandos al servidor proxy y la máquina virtual, respectivamente. El agente puede incluir un módulo de llamadas a procedimiento remoto configurado para recibir órdenes desde la red formateada en un protocolo de llamadas a procedimiento remoto y pasar las órdenes al motor de ejecución.
Un agente que incluye un servidor proxy configurado para recibir y ejecutar llamadas de sistema recibidas a través de una red y una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos recibidas a través de la red. El agente incluye además un módulo de comunicación segura configurado para proporcionar una comunicación segura entre la máquina virtual y la red. Un motor de ejecución está configurado para controlar el servidor proxy y la máquina virtual. El motor de ejecución encamina las llamadas de sistema y las instrucciones en lenguaje de secuencia de comandos al servidor proxy y la máquina virtual, respectivamente. Un módulo de llamadas a procedimiento remoto está configurado para recibir órdenes a través de la red formateada en un protocolo de llamadas a procedimiento remoto y pasar las órdenes al motor de ejecución. Un segundo módulo de comunicación segura está configurado para proporcionar una comunicación segura entre el módulo de llamadas a procedimiento remoto y la red.
Un primer agente remoto está instalado en el primer ordenador central objetivo. El primer agente remoto tiene un servidor proxy configurado para recibir y ejecutar llamadas de sistema. Una llamada de sistema recibida a través de una red se ejecuta en el primer agente remoto. Un segundo agente remoto está instalado en el primer ordenador central objetivo. El segundo agente remoto tiene un servidor proxy configurado para recibir y ejecutar llamadas de sistema y una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos. Una instrucción en lenguaje de secuencia de comandos o una llamada de sistema recibidas a través de la red se ejecuta en el segundo agente remoto.
Estos y otros objetos, características y ventajas resultarán evidentes a partir de la siguiente descripción de las realizaciones preferidas de la presente invención.
Breve descripción de los dibujos
La presente invención se entenderá más fácilmente a partir de una descripción detallada de las realizaciones preferidas tomada junto con las siguiente figuras.
La figura 1 es un diagrama de bloques de un sistema para realizar pruebas de penetración automatizadas de una red objetivo según la presente invención.
La figura 2 es un diagrama de bloques de una consola para pruebas de penetración automatizadas conectada a través de Internet a un primer ordenador central objetivo.
La figura 3 es un diagrama de bloques de la consola conectada a través de Internet a un primer ordenador central objetivo, que está conectada a través de una red objetivo a un segundo ordenador central objetivo.
La figura 4 es un diagrama de bloques que muestra los componentes de la consola.
La figura 5 es un diagrama de bloques de un agente de nivel 0.
La figura 6 es un diagrama de bloques de un agente de nivel 1.
La figura 7 es un diagrama de bloques de un agente de nivel 2 conectado a agentes aguas arriba y aguas abajo mediante dos redes diferentes.
La figura 8 es un diagrama de bloques de un agente de nivel 2 conectado a agentes aguas arriba y aguas abajo mediante una única red.
La figura 9 es un diagrama de bloques de un agente de nivel 3.
La figura 10 es un diagrama de bloques de una configuración en la que se ejecuta un módulo por el agente local en la consola y se ejecutan llamadas de sistema en el sistema operativo de la consola.
La figura 11 es un diagrama de bloques de una configuración en la que se ejecuta un módulo por el agente local en la consola y se ejecutan llamadas de sistema en el sistema operativo del primer ordenador central objetivo.
La figura 12 es un diagrama de bloques de una configuración en la que se ejecuta un módulo por el agente remoto en el primer ordenador central objetivo y se ejecutan llamadas de sistema en el sistema operativo del primer ordenador central objetivo.
La figura 13 es un diagrama de bloques de una configuración en la que se ejecuta un módulo por el agente remoto en el primer ordenador central objetivo y se ejecutan llamadas de sistema en el sistema operativo del segundo ordenador central objetivo.
La figura 14 es un diagrama de bloques de una configuración en la que se ejecuta un módulo por el agente local en la consola y se ejecutan llamadas de sistema en el sistema operativo del segundo ordenador central objetivo.
La figura 15 es una pantalla de visualización de interfaz gráfica de usuario básica presentada por la interfaz de usuario de la consola.
La figura 16 es una pantalla de visualización tras el funcionamiento de un módulo de descubrimiento de red.
La figura 17 es una pantalla de visualización tras la iniciación del módulo de descubrimiento de red por segunda vez.
La figura 18 es una pantalla de visualización que muestra los resultados del segundo funcionamiento del módulo de descubrimiento de red y el funcionamiento del módulo de mapeador de llamada a procedimiento remoto (RPC).
La figura 19 es una pantalla de visualización en la que las entidades en el modelo de la red objetivo pueden examinarse y modificarse usando un editor de entidades.
La figura 20 es una pantalla de visualización tras dos ejecuciones del módulo de aprovechamiento general y la instalación de un agente de nivel 0 en un ordenador central objetivo.
La figura 21 es una pantalla de visualización que muestra una ventana en la que está funcionando una consola Python usando el agente de nivel 0 como fuente.
La figura 22 es una pantalla de visualización tras la ejecución de un módulo de exploración de puertos usando el agente de nivel 0 como fuente.
Descripción detallada de las realizaciones preferidas
Según la presente invención, como se muestra en la figura 1, se realiza una prueba de penetración automatizada para identificar, analizar, aprovechar y documentar las vulnerabilidades de seguridad en una red 100 objetivo. La prueba de penetración la ejecuta una consola 105 que puede ser, por ejemplo, un ordenador personal que funciona con los sistemas operativos Microsoft Windows 2000 Professional, Server o Advanced Server. La red 100 objetivo puede estar conectada a una red, tal como por ejemplo Internet 110. En el caso de un ejemplo de este tipo, la consola también estaría conectada a Internet 110 y obtendría acceso a la red 100 objetivo a través de Internet 110.
La red 100 objetivo tiene un primer ordenador 115 central objetivo, por ejemplo, un cortafuegos. El cortafuegos es un dispositivo de seguridad que normalmente es el único ordenador central en la red objetivo que está conectado directamente a Internet. Gestiona tráfico de Internet hacia y desde la red objetivo y sirve para proteger la red objetivo frente a un acceso no autorizado. La red 100 objetivo tiene varios ordenadores centrales conectados a la misma, pudiendo ser todos ellos los objetivos eventuales de la prueba de penetración.
La consola 105, mostrada en la figura 2, pone en peligro las medidas de seguridad protegiendo el primer ordenador 115 central objetivo ejecutando una serie de módulos. Los módulos puede seleccionarlos e iniciarlos el usuario. Como alternativa, la consola puede ejecutar una secuencia predeterminada de módulos o puede determinar una secuencia de módulos que ha de ejecutarse basándose en la información recopilada durante las pruebas de penetración.
En la fase inicial, normalmente, se ejecutan módulos para recopilar información acerca del primer ordenador 115 central objetivo. Por ejemplo, la consola 105 puede ejecutar un escáner de puertos que analiza los puertos del primer ordenador 115 central objetivo y determina todos los servicios que están funcionando, tales como un servidor web de Internet, un servidor de correo electrónico, un servicio de identificación de usuarios, etc. Podría adquirirse más información haciendo funcionar módulos diseñados para aprovechar los servicios identificados por el escáner de puertos. Por ejemplo, si el primer ordenador 115 central objetivo está haciendo funcionar un servicio de identificación de usuarios, entonces ese servicio será el objetivo de un módulo para determinar la versión de software, los nombres de usuario, etc. Como otro ejemplo de un módulo de recopilación de información, puede usarse un módulo de descubrimiento de red para determinar el número de ordenadores centrales en la red 100 objetivo y la dirección del protocolo de Internet (IP) de cada ordenador central.
Tras la ejecución de los módulos de recopilación de información, la consola ejecuta módulos, denominados de aprovechamiento, para aprovechar las vulnerabilidades de seguridad en el primer ordenador 115 central objetivo basándose en la información que se ha recuperado. Por ejemplo, puede obtenerse información relativa a un sistema operativo de cortafuegos que está funcionando en el primer ordenador 115 central objetivo, tal como el número de revisión y la marca del software. Basándose en esta información, la consola 105 ejecuta un módulo de aprovechamiento que se ha escrito para sacar ventaja de las vulnerabilidades de seguridad para ese cortafuegos particular.
Una vez que se ha puesto en peligro un servicio que está funcionando en el primer ordenador 115 central objetivo, la consola 105 instala un agente 120 remoto en el primer ordenador central objetivo. El agente 120 remoto es un programa que opera en el primer ordenador 115 central objetivo para realizar varias funciones, tales como recibir y ejecutar módulos y órdenes de control procedentes de la consola 105 y enviar de vuelta información a la consola 105.
Como se muestra en la figura 3, una vez que se ha instalado el agente 120 remoto en el primer ordenador 115 central objetivo, lo utiliza la consola 105 para obtener acceso a la red 100 objetivo y poner en peligro la seguridad de los otros ordenadores centrales que componen la red 100 objetivo, tal como el segundo ordenador 125 central objetivo. Por ejemplo, el agente 120 remoto en el primer ordenador 115 central objetivo ejecuta módulos de aprovechamiento, tales como los comentados anteriormente, o llamadas de sistema recibidas desde la consola 105 para recopilar información y aprovechar otras vulnerabilidades de seguridad en la red 100 objetivo. Para ordenadores centrales conectados a la red 100 objetivo, tales órdenes o consultas parecen originarse desde el primer ordenador 115 central objetivo y por tanto pueden aceptarse más fácilmente. Esto es particularmente cierto para redes que emplean jerarquías de confianza, lo que significa que las órdenes procedentes de fuentes conocidas, es decir, en las que se confía, están sometidas a medidas de seguridad menos rigurosas que las órdenes procedentes de fuentes desconocidas.
Una vez que se ha puesto en peligro la seguridad del segundo ordenador 125 central objetivo, el agente 120 remoto en el primer ordenador 115 central objetivo instala un agente remoto 130 en el segundo ordenador 125 central objetivo. Cada uno de los agentes 120 y 130 instalados envía y recibe módulos, órdenes y datos desde otros agentes instalados, lo que se denomina encadenamiento. Por ejemplo, el agente 130 en el segundo ordenador 125 central objetivo recibe módulos y órdenes desde el agente 120 en el primer ordenador 115 central objetivo, que, a su vez, recibe los módulos y órdenes desde la consola. El agente 130 en el segundo ordenador 125 central objetivo también envía datos de vuelta al agente 120 en el primer ordenador 115 central objetivo, que, a su vez, envía los datos de vuelta a la consola 105.
El agente 130 en el segundo ordenador 125 central objetivo ejecuta los módulos recibidos desde los agentes aguas arriba para recopilar información de y aprovechar las vulnerabilidades de seguridad en un tercer ordenador central objetivo, de manera similar a la comentada anteriormente. Una vez que se han puesto en peligro las medidas de seguridad, el agente en el segundo ordenador central objetivo instala un agente en el tercer ordenador central objetivo. La penetración de la red objetivo puede continuar de esta manera hasta que se hayan puesto en peligro todos los ordenadores centrales objetivo o hasta que se haya puesto en peligro el objetivo final de las pruebas de penetración.
La expresión "aprovechar las vulnerabilidades de seguridad", según se usa en el presente documento, es un concepto amplio que incluye cualquier medio para obtener acceso a y/u obtener información de un ordenador central objetivo. El concepto incluye, sin limitación, la ejecución de módulos que están diseñados para sacar ventaja de vulnerabilidades de seguridad específicas que se han identificado en un ordenador central objetivo. Por ejemplo, el primer ordenador 115 central objetivo puede haberse configurado erróneamente por el propietario de manera que es detectable y permite la instalación de un agente 120 remoto. Este concepto también incluye, sin limitación, la ejecución de módulos de recopilación de información, tales como escáneres de puertos y módulos de descubrimiento de red. Este concepto incluye además, sin limitación, el aprovechamiento de las vulnerabilidades de seguridad de un ordenador central objetivo que resultan de la puesta en peligro de otros ordenadores centrales objetivo. Por ejemplo, una vez que se ha instalado un agente 120 remoto en el primer ordenador 115 central objetivo, puede ser posible recopilar información e instalar agentes remotos en otros ordenadores centrales objetivo debido a jerarquías de confianza dentro de la red objetivo. Este concepto incluye además, sin limitación, obtener acceso a un ordenador central objetivo en virtud de la ausencia de medidas o características de seguridad.
Como se muestra en la figura 4, un agente 135 local instalado en la consola 105 se comunica con y controla los agentes 120 y 130 remotos a través de una interfaz 140 de red, tal como una tarjeta de interfaz de red. La consola 105 proporciona un repositorio 145 de módulos para almacenar módulos que realizan diversas funciones relacionadas con la puesta en peligro y la penetración del sistema. Durante la prueba de penetración, estos módulos se envían al agente 135 local en la consola 105 o un agente 120 ó 130 remoto en un ordenador 115 ó 125 central objetivo que va a ejecutarse. Por ejemplo, un módulo que realiza un husmeo de paquetes puede enviarse a y ejecutarse en el agente 120 remoto con el fin de monitorizar paquetes de datos que pasan a través del primer ordenador 115 central objetivo.
La consola 105 también proporciona una interfaz 150 de usuario que habilita al usuario para controlar y monitorizar el rendimiento de la prueba de penetración. La interfaz 150 de usuario puede ser una interfaz gráfica de usuario que visualiza una representación de la red 100 objetivo. La interfaz 150 de usuario también notifica los resultados de las actividades realizadas por los agentes instalados en la red objetivo.
Una base 155 de datos en la consola 105 almacena información enviada de vuelta por los agentes 120 y 130 remotos. La base 155 de datos podría ser un archivo plano convencional, por ejemplo, un archivo de texto, aunque también puede ser una estructura más compleja, tal como una base de datos relacional. Además, pueden exportarse datos a una base de datos relacional externa. Cada elemento de información estructurado se representa como un objeto en la base 155 de datos. La base 155 de datos puede alojar múltiples instancias distribuidas del mismo objeto que pueden actualizarse independientemente. La base 155 de datos sincroniza las múltiples instancias de los objetos para permitir la revisión de las instancias con los datos más recientes.
La información que se almacena como objetos en base 155 de datos de consola incluye un registro de actividades de todas las acciones realizadas por los agentes 120 y 130 remotos, tales como ejecutar módulos, explorar puertos del ordenador central, pasar módulos a agentes remotos aguas abajo, e instalar agentes remotos en otros ordenadores centrales. La información también incluye datos de configuración relativos a la implementación de los agentes remotos, tales como identificación de los ordenadores centrales en los que se instalan los agentes remotos y los posibles canales de comunicación que podrían usarse para conectarlos. La información también incluye todos los datos generados por la ejecución de órdenes y módulos por los agentes remotos, tales como ordenadores centrales conocidos en la red objetivo, sistemas operativos, puertos abiertos, cuentas de usuario, contraseñas quebrantadas, etc. Los agentes remotos pueden almacenar un subconjunto de la base de datos para proporcionar el almacenamiento en caché de datos de módulos y hacer que tales datos estén disponibles para módulos aguas abajo. Los datos almacenados en caché se envían finalmente de vuelta a la base de datos de consola.
Otro tipo de objeto que puede gestionar la base 155 de datos se denomina entidad, que es un objeto que representa un componente físico en la red 100 objetivo, tal como un ordenador central. Las entidades contienen información similar a la comentada anteriormente, pero también pueden tener la capacidad para realizar ciertas funciones. Por ejemplo, una entidad puede serializarse y deserializarse a sí misma a y a partir de lenguaje de marcado XML para la transferencia dentro y fuera de la base de datos. Esto permite que la información producida por módulos ejecutados por agentes remotos se comparta entre los agentes y con la consola.
Los datos almacenados en la base 155 de datos de consola se usan para varios fines, tales como analizar las vulnerabilidades de seguridad de la red 100 objetivo y planificar el aprovechamiento de estas vulnerabilidades para penetrar adicionalmente en la red 100 objetivo. Los datos también permiten que la consola revierta cualquier cambio realizado a la red 100 objetivo durante las pruebas de penetración. Además, los datos permiten que el cliente para el que se realizan las pruebas de penetración tenga una imagen completa de las acciones realizadas durante las pruebas. Por ejemplo, los datos pueden exportarse a una base de datos relacional, como se mencionó anteriormente, o pueden usarse para generar informes usando XML.
En términos generales, un agente, tal como los agentes locales y remotos comentados anteriormente, es un programa que está controlado por o se usa como servidor proxy por otro programa. El programa de control puede ser residente en el mismo ordenador central que el agente, como en el caso de la interfaz de usuario que controla el agente local en la consola. Como alternativa, el programa de control puede estar en un ordenador central independiente, como en el caso del agente local en la consola que controla el agente remoto en el primer ordenador central objetivo. Así, en este ejemplo, el agente local en la consola sirve, tanto como agente como, como programa de control.
La figura 5 muestra un ejemplo de un agente básico, que se denomina agente 205 de nivel 0, que funciona en un ordenador 210 central que está conectado a una red 215. El agente 205 de nivel 0 se comunica a través de la red 215 con un programa de control que funciona en un agente aguas arriba, tal como el agente 135 local en la consola 105 o un agente intermedio situado entre la consola y el agente de nivel 0. El agente 205 de nivel 0 proporciona un servidor 220 proxy syscall que lo habilita para actuar como servidor proxy para el programa de control. Esta configuración se denomina configuración proxy de llamada de sistema o proxycall.
Por ejemplo, haciendo referencia de nuevo a la figura 4, un agente 205 de nivel 0 puede instalarse como el agente 120 remoto en el primer ordenador 115 central objetivo y puede estar controlado por un módulo ejecutado por el agente 135 local en la consola 105 tal como, por ejemplo, un módulo de aprovechamiento remoto. El módulo incluye órdenes que dan como resultado llamadas de sistema ("syscalls"), que son instrucciones que acceden al sistema operativo del ordenador central. En vez de ejecutar la syscall en la consola 105, las syscalls las envían un cliente proxy en el agente 135 local al servidor 220 proxy syscall en el agente 120 remoto. El servidor 220 proxy syscall ejecuta las syscalls en el primer ordenador 115 central objetivo. Por tanto, se ejecutan syscalls en el ordenador central del agente 120 remoto, por ejemplo, el primer ordenador 115 central objetivo, en vez del ordenador central del agente 135 local, por ejemplo, la consola 105.
Actuando como servidor proxy syscall, el agente 120 remoto permite que el agente 135 local ejecute órdenes como si el agente 135 local fuera residente en el primer ordenador 115 central objetivo. La configuración proxy syscall permite que grandes programas complejos, tales como el programa de pruebas de penetración automatizadas residente en la consola 105, ejecuten llamadas de sistema en un ordenador central objetivo sin ser realmente residentes en el
ordenador central objetivo. Sólo es necesario instalar el agente relativamente pequeño en el ordenador central objetivo.
El agente 205 de nivel 0 es un programa relativamente sencillo y puede ser de aproximadamente 100 bytes de tamaño o menor. Debido a su pequeño tamaño, el agente 205 de nivel 0 es normalmente el primer tipo de agente que va a instalarse en el ordenador central objetivo durante las pruebas de penetración. Puede usarse para recopilar información y/o aprovechar vulnerabilidades en el ordenador central objetivo para habilitar una penetración adicional del ordenador central objetivo. Por tanto, el agente de nivel 0 ayuda a abrir el camino para la instalación de agentes más complejos, como se comenta a continuación.
El agente de nivel 0 a menudo se instala directamente como resultado de aprovechar una vulnerabilidad de seguridad, por ejemplo, durante el aprovechamiento de una vulnerabilidad de cadena de formato suministrada por el usuario o desbordamiento de la memoria intermedia en una aplicación que funciona en el ordenador central objetivo. El agente instalado funciona en el espacio de proceso de la aplicación puesta en peligro, por ejemplo, un servidor web de Internet o servidor de correo electrónico, y abre una conexión para proporcionar un canal de comunicación no cifrada con la consola o agente aguas arriba. El servidor 220 proxy syscall en el agente 205 de nivel 0 puede ejecutar una syscall cada vez.
La figura 6 muestra un ejemplo de un agente más complejo, que se denomina agente 225 de nivel 1. El agente 225 de nivel 1, al igual que el agente 205 de nivel 0, proporciona un servidor 220 proxy syscall para ejecutar órdenes recibidas desde la consola 105 o un agente aguas arriba. El agente 225 de nivel 1 puede producir servidores 220 proxy syscall independientes para correspondientes syscalls recibidas desde el agente aguas arriba, de modo que pueden ejecutarse simultáneamente varias syscalls. El agente 225 de nivel 1 también puede asignar memoria y otros recursos dentro del ordenador central. Así, el agente 225 de nivel 1 puede funcionar en su propio espacio de proceso en vez de basarse únicamente en el espacio de proceso de una aplicación puesta en peligro. La capacidad para funcionar en su propio espacio de proceso proporciona al agente 225 de nivel 1 más autonomía y control sobre su propia duración y más control sobre los recursos del ordenador 210 central.
El agente 225 de nivel 1 también proporciona un canal 230 de comunicación segura con autenticación y cifrado de los datos. Se cifran los datos transmitidos por el agente 225 de nivel 1 de vuelta a la consola 105 o el agente aguas arriba para garantizar que la información acerca del sistema puesto en peligro no pueden detectarla terceros que pueden estar monitorizando comunicaciones de red. Los datos se autentican, por ejemplo, usando una firma digital, de modo que sólo la consola que creó el agente pueda comunicarse con éste.
Esto impide que diferentes usuarios que pueden tener funcionando el sistema de puesta en peligro de la seguridad se comuniquen con los agentes de otros usuarios.
La figura 7 muestra un ejemplo de un agente más complejo, que se denomina agente 305 de nivel 2. El agente 305 de nivel 2, al igual que el agente 225 de nivel 1, proporciona un servidor 220 proxy syscall y capacidad 230 de comunicación segura. El servidor 220 proxy syscall permite que el agente de nivel 2 ejecute syscalls recibidas desde un módulo que funciona en un agente aguas arriba de manera similar a los agentes de nivel 0 y nivel 1. Por ejemplo, un módulo que funciona en el agente 135 local en la consola 105 tal como, por ejemplo, un módulo de aprovechamiento remoto, puede generar llamadas de sistema destinadas a ejecutarse en el sistema operativo del ordenador central objetivo, en vez de la consola. Tales syscalls se envían al servidor 220 proxy syscall del agente remoto en el ordenador central objetivo para ejecutarse.
El agente 305 de nivel 2 también proporciona una máquina 310 virtual que puede ejecutar módulos escritos en lenguajes de secuencia de comandos, independientes de la plataforma, de alto nivel, tales como Python, Perl, Java, y Tcl. Un módulo, en general, es un elemento de código de programa que contiene una operación individual o grupo de operaciones que van a ejecutarse. La mayoría de los módulos usados en la prueba de penetración automatizada están diseñados para aprovechar las vulnerabilidades de seguridad en o recopilar información de un ordenador central objetivo. Pueden obtenerse módulos de este tipo de varias maneras. Por ejemplo, pueden realizarse pruebas de laboratorio en productos de software ampliamente usados para determinar posibles vulnerabilidades de seguridad y cómo aprovecharlas. Entonces se escribe un módulo para cada producto de software basándose en los resultados de estas pruebas. Como ejemplo adicional, tales módulos los escriben normalmente y hacen que estén disponibles en Internet miembros de la comunidad de investigación sobre seguridad en línea o intrusos o piratas informáticos, es decir, personas que intentan obtener un acceso no autorizado a sistemas informáticos.
Una ventaja de ejecutar módulos en una máquina 310 virtual es que permite que el agente 305 de nivel 2 realice operaciones intensivas desde el punto de vista computacional en el ordenador 210 central objetivo sin recibir un flujo continuo de instrucciones, como en el caso de conexiones con servidores proxy syscall. De hecho; pueden no ser factibles las conexiones con servidores proxy syscall para operaciones intensivas desde el punto de vista computacional por los retardos en la transmisión de instrucciones que resultan de la latencia de la red. Por tanto, la máquina 310 virtual del agente 305 de nivel 2 puede sacar una mayor ventaja del procesador y otros recursos del ordenador 210 central objetivo.
Otra ventaja de ejecutar módulos en una máquina 310 virtual es que no es necesario que los módulos estén incluidos como parte integral del agente, sino que en su lugar pueden transferirse al agente bajo demanda. Esto obvia la necesidad de transferir los módulos al sistema operativo del ordenador 210 central objetivo. Por tanto, los módulos pueden hacerse funcionar en una variedad de ordenadores centrales objetivo sin reescribirse para cada sistema operativo de ordenador central objetivo diferente. Además, se reduce sustancialmente el tamaño del agente. Además, debido a que existen muchos programas ampliamente disponibles y módulos escritos en lenguajes de secuencia de comandos convencionales, se reduce la cantidad de programación personalizada requerida para crear módulos para ejecutarse en el ordenador central objetivo.
La máquina 310 virtual puede comunicarse con, controlar e instalar módulos en agentes aguas abajo mediante la apertura de una conexión de red al ordenador 210 central objetivo para acceder a una red 315. La comunicación con los agentes aguas abajo puede establecerse mediante un módulo 230 de comunicación segura que forma un canal de comunicación segura con cifrado y autenticación de datos. La máquina 310 virtual también puede gestionar llamadas nativas, que son syscalls destinadas a ejecutarse en el sistema operativo del ordenador 210 central objetivo en el que la máquina 310 virtual está instalada. Por ejemplo, un módulo de recopilación de información puede ejecutar una syscall en el sistema operativo del ordenador 210 central objetivo en el que la máquina 310 virtual está instalada con el fin de acceder a Internet a través de una interfaz de red.
En el ejemplo mostrado en la figura 7, la red 315 a la que accede la máquina 310 virtual está separada de la red 215 usada para comunicarse con la consola 105 o agente aguas arriba. La red 315 a la que accede la máquina 310 virtual puede ser una red 100 objetivo, como se muestra en las figuras 1 y 3, a la que no puede llegarse desde un ordenador central exterior. Como alternativa, como se muestra en la figura 8, la red 320 a la que accede la máquina 310 virtual puede ser la misma red 320 usada para comunicarse con la consola 105 o agente aguas arriba. Por ejemplo, como se muestra en la figura 1, ambos ordenadores centrales objetivo segundo y tercero están conectados a la red objetivo, y una máquina virtual en un agente en el segundo ordenador central objetivo puede comunicarse con un agente instalado en el tercer ordenador central objetivo.
La máquina 310 virtual y el servidor 220 proxy syscall en el agente 305 de nivel 2 están controlados por un motor 325 de ejecución que determina qué módulos se ejecutan y cómo se ejecutan. Por ejemplo, el motor 325 de ejecución proporciona una capacidad de control de tareas para iniciar, pausar, reanudar y cancelar la ejecución de módulos. El motor 325 de ejecución también controla la ejecución de módulos 330 nativos, que son módulos escritos para ejecutarse directamente en el sistema operativo del ordenador 210 central objetivo.
El motor 325 de ejecución proporciona capacidades multitarea transparentes para sacar ventaja de capacidades o bien de multiejecución o bien de multiprocesamiento del sistema operativo subyacente para habilitar la ejecución simultánea de módulos y syscalls para producir nuevos hilos de ejecución o subprocesos según sea necesario. Se proporciona un almacenamiento específico de tareas para habilitar a un módulo de ejecución para acceder a información de contexto. Por ejemplo, con la inicialización, el motor de ejecución puede configurar objetos de sincronización (conocidos como mútex) y el almacenamiento específico de tareas para el contexto de módulo usando, por ejemplo, la rutina ThreadLocalStorage en Win32 o la rutina específica de hilo de ejecución en PTHREADS.
El motor 325 de ejecución está aislado en ciertos aspectos del resto de la arquitectura del sistema, aparte de los módulos que controla. Por ejemplo, el motor 325 de ejecución opera independientemente de la arquitectura de proxycall. Además, el contexto de módulo proporciona los parámetros necesarios para que se ejecuten los módulos en el agente, en vez de hacerlo el motor 325 de ejecución.
El contexto de módulo proporciona toda la información necesaria para una instancia de ejecución específica (siendo la instancia de ejecución, por ejemplo, una tarea o módulo de ejecución). La información de este tipo incluye los parámetros de módulo, la designación de ejecución remota o local, la descripción del par (para la ejecución remota), etc. El contexto de módulo está disponible a partir de cualquier subsistema del agente que esté implicado en la ejecución del módulo, por ejemplo, un cliente proxycall. El módulo accede al contexto de módulo desde el agente durante la ejecución del módulo.
El agente de nivel 2 recibe órdenes e instrucciones a través de un componente 327 de llamada a procedimiento remoto (RPC), que entonces pasa los datos recibidos al motor 325 de ejecución. El componente 327 de RPC emplea un protocolo convencional para controlar la comunicación con la consola o agente aguas arriba usando un formato de paquete de datos predefinido. Para implementar este protocolo, la consola utiliza una representación interna de todos los agentes implementados que incluye todas las propiedades y capacidades para establecer canales de comunicación con los agentes implementados.
Las comunicaciones entre la consola y los agentes de nivel 1 y nivel 2 implementados se establecen tal como sigue. En primer lugar, la consola establece una conexión interna con la representación interna del agente remoto con el que está intentado comunicarse. La representación interna del agente remoto usa su componente de comunicaciones para establecer un canal de comunicación a lo largo de la red con el agente remoto de nivel 1 o nivel 2. El canal de comunicación se crea entonces usando un componente del sistema que puede multiplexar las comunicaciones procedentes de varios módulos en uno o muchos canales de comunicaciones con un agente remoto.
El componente 327 de RPC implementa un mecanismo de comunicación bidireccional usando el canal de comunicaciones descrito anteriormente como mecanismo de transporte subyacente. El componente de RPC implementa y ejecuta órdenes que controlan la ejecución de módulos en los agentes remotos así como la transferencia de información entre agentes. Por ejemplo, se usa el componente de RPC para iniciar, pausar y detener la ejecución del módulo. También se usa el componente de RPC para transferir módulos a agentes remotos, recuperar resultados de ejecución de módulos desde agentes remotos, y controlar la configuración y el estatus de agentes remotos.
La figura 9 muestra un ejemplo de un agente 335 de nivel 3, que es similar al agente 305 de nivel 2 mostrado en la figura 8, pero que incluye una interfaz 340 de usuario a través de la que se controla el agente 335 de nivel 3. La interfaz 340 de usuario permite que el agente 335 de nivel 3 funcione como el componente de agente 135 local de la consola 105, como se muestra en la figura 2. El agente 335 de nivel 3, al igual que el agente 305 de nivel 2, incluye una capacidad 230 de comunicación segura, una máquina 310 virtual, un servidor 220 proxy syscall, una capacidad 330 de módulo nativo, un componente 327 de envío/distribución de RPC, y un motor 325 de ejecución.
Las capacidades de proxycall y máquina virtual comentadas anteriormente habilitan a los agentes para ejecutar módulos en varias configuraciones diferentes. La figura 10 muestra una configuración en la que un módulo 400 lo ejecuta el agente 135 local en la consola 105. Las llamadas de sistema generadas por el módulo 400 las gestiona el agente 135 local como syscalls nativas y se ejecutan en el sistema 405 operativo de la consola 105. Por ejemplo, cuando un módulo 400 ejecuta una orden para consultar el estatus de un puerto en un ordenador 115 central objetivo, se realiza una llamada de sistema al sistema 405 operativo de la consola 105 con el fin de acceder a la interfaz 140 de red y transmitir la petición al ordenador 115 central objetivo a través de Internet 110.
Otra configuración en la que un módulo lo ejecuta el agente 135 local en la consola 105 se muestra en la figura 11. En esta configuración, sin embargo, las llamadas de sistema generadas por el módulo 400 se transmiten a un agente 120 remoto instalado en el primer ordenador 115 central objetivo. Las llamadas de sistema las gestiona el servidor proxy syscall del agente 120 remoto y se ejecutan en el sistema 410 operativo del primer ordenador 115 central objetivo. Por ejemplo, cuando un módulo 400 ejecuta una orden para recuperar un archivo del segundo ordenador 125 central objetivo a través de la red 100 objetivo, las syscall generadas por esta orden se ejecutan en el sistema 410 operativo del primer ordenador 115 central objetivo. Desde la perspectiva del segundo ordenador 125 central objetivo, la orden parece haberse ejecutado en el primer ordenador 115 central objetivo y por tanto es más probable que se confíe en la misma y se implemente por el segundo ordenador 125 central objetivo.
La figura 12 muestra una configuración en la que un módulo 400 lo ejecuta un agente 120 remoto en un ordenador central objetivo, por ejemplo, el primer ordenador 115 central objetivo. Las llamadas de sistema generadas por el módulo 400 las gestiona el agente 120 remoto como syscalls nativas y se ejecutan en el sistema operativo del primer ordenador 410 central objetivo. Esta configuración permite al módulo 400 sacar ventaja de los recursos del primer ordenador 115 central objetivo. Además, habilita el módulo 400 para que funcione sin generar tráfico de red entre la consola 105 y la red 100 objetivo.
Otra configuración en la que un módulo lo ejecuta un agente remoto en un ordenador central objetivo se muestra en la figura 13. En esta configuración, sin embargo, las llamadas de sistema generadas por el módulo 400 se transmiten a un agente 130 remoto instalado en otro ordenador central objetivo, por ejemplo, el segundo ordenador 125 central objetivo.
Las llamadas de sistema generadas por el módulo 400 las gestiona el servidor proxy syscall del agente 130 remoto y se ejecutan en el sistema 415 operativo del segundo ordenador 125 central objetivo.
Como anteriormente, esta configuración permite al módulo sacar ventaja de los recursos del primer ordenador 115 central objetivo, y habilita el módulo para que funcione sin generar tráfico de red entre la consola 105 y la red 100 objetivo. Otra ventaja de esta configuración es que, desde la perspectiva de los otros ordenadores centrales en la red 100 objetivo, las órdenes del módulo 400 parecen originarse desde el segundo ordenador 125 central objetivo. Por consiguiente, es más probable que se confíe en tales órdenes y se implementen por los otros ordenadores centrales de la red objetivo. En otras palabras, usando el agente 130 remoto, el sistema asume de manera eficaz la identidad del ordenador central puesto en peligro y saca ventaja de los privilegios del ordenador central puesto en peligro dentro de la red objetivo.
La figura 14 muestra otra configuración en la que un módulo lo ejecuta el agente local en la consola. En esta configuración, sin embargo, las llamadas de sistema generadas por el módulo 400 se transmiten a un agente 120 remoto instalado en el primer ordenador 115 central objetivo, que a su vez pasa las llamadas de sistema a un agente 130 remoto instalado en el segundo ordenador 125 central objetivo. Las llamadas de sistema las gestiona el servidor proxy syscall del agente 130 remoto en el segundo ordenador 125 central objetivo y se ejecutan en el sistema 415 operativo del segundo ordenador 125 central objetivo. Como en el caso anterior, desde la perspectiva de los otros ordenadores centrales en la red objetivo, las órdenes del módulo parecen originarse desde el segundo ordenador central objetivo. Por consiguiente, es más probable que se confíe en tales órdenes y se implementen por los otros ordenadores centrales de la red objetivo.
Como se comentó anteriormente, el agente 135 local en la consola 105 proporciona una interfaz 150 de usuario. Como se muestra en la figura 15, la interfaz de usuario presenta al usuario una pantalla de interfaz gráfica de usuario (GUI) basada en Windows. La pantalla tiene varias ventanas componentes que presentan información en diversos formatos y permiten ejecutar el control sobre diversos aspectos de las pruebas de penetración. Naturalmente, los componentes de la pantalla pueden moverse y dimensionarse basándose en las preferencias del usuario.
La vista de visibilidad, en la parte central de la pantalla, presenta una representación gráfica, es decir, un modelo, de la red objetivo. En este ejemplo, la representación gráfica está en forma de un listado jerárquico de entidades, es decir, un listado en árbol. Cada entidad representa un componente físico de la red objetivo, por ejemplo, un ordenador central. Inicialmente, la vista de visibilidad muestra sólo dos entidades, el ordenador central local (por ejemplo, la consola) y el agente local que está funcionando en el ordenador central local. Como se comenta adicionalmente más adelante, a medida que se realiza cada fase de las pruebas de penetración, el modelo de la red objetivo se actualiza para reflejar la información recién obtenida.
Las etiquetas se disponen en el lado izquierdo de la pantalla para organizar las funciones, módulos y herramientas disponibles ofrecidos por el programa. Hacer clic en una etiqueta hace que se mueva hasta la parte superior de la ventana y visualice los módulos disponibles en esa categoría. Por ejemplo, la etiqueta módulos de aprovechamiento remotos proporciona diversos módulos que pueden funcionar en el agente local para aprovechar las vulnerabilidades de seguridad en una red objetivo sin estar ubicados en la red objetivo. Se prevé una ventana de módulos ejecutados en el lado superior derecho de la pantalla para visualizar un historial de los módulos que se han ejecutado durante las pruebas de penetración y su estatus. Se prevé una ventana de salida de módulos en el lado inferior derecho de la pantalla para visualizar la salida de los módulos.
La figura 16 muestra un ejemplo de cómo la pantalla de interfaz de usuario aparece después de ejecutar el módulo de descubrimiento de red. El módulo de descubrimiento de red, que se agrupa en la etiqueta recopilación de información, normalmente funciona de manera temprana en las pruebas de penetración para determinar la topología de la red objetivo. La ventana de módulos ejecutados muestra que el módulo de descubrimiento de red se ha ejecutado y proporciona los tiempos de inicio y finalización y el estatus actual, que en este caso indica que la ejecución del módulo se ha terminado. El ventana de salida de módulos proporciona una tabla de nombres de ordenadores centrales, direcciones de protocolo de Internet (IP), sistema operativo (OS), y otra información emitida por el módulo.
Tras la ejecución del módulo de descubrimiento de red, la vista de visibilidad visualiza una representación gráfica de la red objetivo en forma de un listado en árbol. El árbol muestra que el ordenador central local en la consola (ordenador central local) tiene un agente local que está conectado a un primer ordenador central objetivo que tiene la dirección IP 192.168.66.0/24. El primer ordenador central objetivo, a su vez, está conectado a otros ordenadores centrales dentro de la red objetivo. Las entidades en el listado en árbol pueden replegarse o expandirse según un nivel jerárquico haciendo clic en los símbolos de flecha en el lado izquierdo de las entidades. Como cada módulo funciona durante las pruebas de penetración, la vista de visibilidad se actualiza automáticamente para mostrar un modelo más completo de la red objetivo.
La figura 17 muestra un ejemplo de la visualización de la pantalla para iniciar la ejecución del módulo de descubrimiento de red por segunda vez. El usuario hace doble clic en la etiqueta módulo de descubrimiento de red, y la pantalla presenta una casilla de entrada de parámetros de módulo. Se induce al usuario a que introduzca la dirección IP de la red objetivo, que normalmente la conoce el usuario antes de realizar las pruebas de penetración. Por ejemplo, el usuario puede determinar la dirección IP a partir de una búsqueda en un servidor de nombres de dominio del nombre de dominio del ordenador central objetivo. En este ejemplo, el módulo de descubrimiento de red tiene como objetivo el ordenador central con dirección IF 192.168.22.0/24. En la vista de visibilidad, el ordenador central anteriormente objetivo (192.168.66.0/24) se ha replegado a una única entrada de nivel superior en el listado en árbol. Como alternativa a introducir la dirección IP del ordenador central objetivo, puede arrastrarse la etiqueta de módulo y colocarse sobre el ordenador central objetivo en el listado en árbol para el que va a recopilarse la información.
Como se comentó anteriormente, los módulos pueden funcionar en agentes locales o remotos en diversas configuraciones. Las llamadas de sistema generadas por los módulos se ejecutan en el ordenador central fuente por defecto, que en el ejemplo de la figura 17 es el agente local. La fuente por defecto es o bien la fuente usada más recientemente o una fuente seleccionada en la vista de visibilidad antes de la ejecución del módulo. Por ejemplo, si un módulo se ejecuta usando el agente local como ordenador central fuente, el agente local sigue siendo la fuente por defecto hasta que se selecciona una nueva fuente. Por tanto, hacer doble clic en la etiqueta descubrimiento de red da como resultado que el módulo funciona en el agente local y recopila información del ordenador central objetivo introducida en la casilla de entrada de parámetros de módulo.
Como se muestra en la figura 18, la salida del módulo de descubrimiento de red se presenta en la vista de visibilidad como una lista de ordenadores centrales conectados bajo el ordenador central objetivo (192.168.22.0/24). La ventana de módulos ejecutados indica que el módulo de descubrimiento de red se ha ejecutado por segunda vez.
Además, ha funcionado el módulo de mapeador de llamada a procedimiento remoto (RPC), que intenta identificar todos los puertos en el ordenador central objetivo que están disponibles para recibir órdenes RPC. El mapeador de RPC se inició arrastrándolo y colocándolo sobre el ordenador central objetivo, que en este caso es 192.168.22.2. La salida del mapeador de RPC se muestra en la ventana de salida de módulo en el formato registrar/depurar, que incluye información para habilitar al usuario para rastrear y rectificar errores en el módulo. La salida identifica los puertos RPC y sus protocolos asociados.
Como se muestra en la figura 19, las entidades en el modelo de la red objetivo pueden examinarse y modificarse usando un editor de entidades. Cada entidad tiene propiedades que reflejan aspectos de la información recopilada en el componente físico correspondiente en la red objetivo. Por ejemplo, una entidad ordenador central tiene propiedades tales como arquitectura de sistema (arch), sistema operativo, interfaces, puertos, etc. La entidad ordenador central también tiene una propiedad de agente que enumera los agentes que están funcionando en ese ordenador central.
Las propiedades de cada entidad se actualizan automáticamente como módulos y funcionan durante las pruebas de penetración. Por ejemplo, la entidad correspondiente al ordenador central 192.168.22.2 tiene un listado de puertos disponibles para servicio RPC. Este listado es el resultado de ejecutar el módulo de mapeador de RPC dirigido hacia este ordenador central, como se describió anteriormente. En ciertos casos, diferentes módulos pueden dar como resultado diferentes estados de propiedad, por ejemplo, dos resultados diferentes respecto al sistema operativo que está funcionando en un ordenador central particular. En tal caso, el programa inducirá al usuario a que resuelva el conflicto aparente basándose en su experiencia o conocimientos externos.
Incluso en ausencia de un conflicto, el estado de estas propiedades puede cambiarlo el usuario basándose en la experiencia y los conocimientos adquiridos de otras fuentes. Por ejemplo, el usuario puede conocer, basándose en la experiencia, que un ordenador central que tiene una arquitectura particular, por ejemplo, Sparc Version 8, puede funcionar con un sistema operativo particular, por ejemplo, Solaris. En tal caso, el usuario edita la entidad ordenador central y cambia la propiedad de sistema operativo de desconocido a Solaris. Esto permite al usuario construir un modelo más completo y preciso de la red objetivo.
Una vez que se ha recopilado suficiente información relativa a la red objetivo, los módulos pueden ejecutarse para aprovechar las vulnerabilidades de seguridad en la red objetivo. Como se muestra en la figura 20, tales módulos se agrupan en las etiquetas módulos de aprovechamiento locales y módulos de aprovechamiento remotos en la pantalla de interfaz de usuario dependiendo de si funcionan dentro del ordenador central objetivo (es decir, de manera local) o de manera remota. En este ejemplo, la ventana de módulos ejecutados muestra que un módulo denominado de "aprovechamiento general" ha funcionado dos veces. La primera ejecución del módulo no tuvo éxito, como indica el icono a la izquierda del nombre del módulo y por el término "abortado" en la columna de estatus. La segunda ejecución se completó con éxito. Además de los módulos agrupados en las etiquetas de aprovechamiento, hay una serie de módulos en la etiqueta agentes que se refieren a la instalación y ejecución de agentes remotos en la red objetivo. En este ejemplo, un agente de nivel 0 se ha instalado en el ordenador central con la dirección 192.168.22.6.
La instalación del agente de nivel 0 puede conseguirse haciendo clic en dos entradas en la etiqueta agentes. En primer lugar, se inicia un servicio de agente de nivel 0, que es un proceso que funciona en el ordenador central objetivo. Como se comentó anteriormente, el servicio de agente de nivel 0 puede compartir el espacio de proceso de un servicio existente en el ordenador central objetivo, tal como un servidor de correo electrónico. A continuación, un agente de nivel 0 se instala y ejecuta en el servicio de agente de nivel 0. Como alternativa, el programa puede presentar una única entrada en la etiqueta agentes que realiza todas las etapas requeridas para instalar y ejecutar el agente de nivel 0.
Una vez que se ha instalado el agente de nivel 0, el usuario puede comenzar a sacar ventaja del agente ejecutando módulos en el mismo. El usuario ajusta el agente de nivel 0 para que sea la fuente para la ejecución de módulos haciendo clic en el botón derecho sobre el agente y seleccionando "establecer como fuente". Como se muestra en la figura 21, el agente de nivel 0 puede visualizarse como destacado o marcado en la vista de visibilidad para indicar al usuario que es la fuente actual por defecto. Todos los módulos posteriores funcionan en la fuente de agente de nivel 0 hasta que se cambia la fuente por defecto.
En este ejemplo, se ha iniciado el módulo de consola Python. Como se comentó anteriormente, Python es un lenguaje de secuencia de comandos independiente de la plataforma, de alto nivel. La consola Python permite al usuario entrar y ejecutar órdenes Python y guardar las órdenes como un módulo. El intérprete de órdenes Python funciona en el agente local, sin embargo, las syscalls generadas por el intérprete de órdenes se ejecutan por el servidor proxy syscall del agente de nivel 0, que es la fuente seleccionada.
Por el contrario, un módulo puede funcionar en un agente remoto que tiene la capacidad para ejecutar módulos, tales como un agente de nivel 2. Como se comentó anteriormente, el agente de nivel 2 tiene una máquina virtual que le habilita para ejecutar módulos de lenguaje de secuencia de comandos. En tal caso, el módulo reside en y se ejecuta en el agente remoto. Las syscalls generadas por el módulo se ejecutan o bien como llamada nativa en el ordenador central remoto (véanse las figuras 7 y 8) o por un servidor proxy syscall en un agente aguas abajo. El módulo puede instalarse junto con el agente remoto, o puede descargarse tras haberse instalado el agente remoto. Esta capacidad para ejecución remota al 100% es ventajosa, porque permite al módulo funcionar sin recibir una serie continua de órdenes, evitando de ese modo la generación de tráfico de red excesivo. Además, un módulo para aprovechar una vulnerabilidad de seguridad puede tener ciertos requisitos de sincronismo que, debido a la latencia de la red, no pueden cumplirse si deben recibirse órdenes a través de la red.
Independientemente de si un módulo está funcionando en el agente local o en un agente remoto, las syscalls generadas por el módulo se ejecutarán en la fuente seleccionada, que en el ejemplo de la figura 21 es el agente de nivel 0 instalado en el ordenador central objetivo 192.168.22.6. Por tanto, las órdenes Python ejecutadas en la consola Python generan syscalls que se ejecutan en este ordenador central objetivo seleccionado. Por ejemplo, la orden Python "print socket.gethostname()", mostrada en la ventana de consola Python, genera una syscall para recuperar el nombre del ordenador central objetivo, "diavolo". Las órdenes restantes mostradas en la ventana generan syscalls para crear una conexión en el ordenador central objetivo, que puede usarse para recuperar información desde el ordenador central objetivo.
Se apreciará que cada una de estas realizaciones comentadas anteriormente proporciona un sistema y procedimiento novedosos para analizar la seguridad de un sistema informático poniendo en peligro la seguridad de manera sistemática.
También se apreciará que debido a que el sistema proporciona una base de datos de módulos para aprovechar las vulnerabilidades de seguridad, el sistema descrito en el presente documento intenta realmente aprovechar las vulnerabilidades detectadas, en vez de simplemente enumerarlas.
\newpage
También se apreciará que debido a que el sistema proporciona una máquina virtual para ejecutar módulos en agentes instalados en ordenadores centrales objetivos, los módulos pueden funcionar en una variedad de plataformas y sistemas operativos sin personalización ni pruebas adicionales. Además, los programas disponibles para el público para aprovechar las vulnerabilidades de seguridad pueden usarse sin una infraestructura de laboratorio amplia para la reescritura y las pruebas.
También se apreciará que debido a que el sistema mantiene una base de datos de todas las operaciones realizadas durante las pruebas de penetración, el sistema objetivo puede devolverse de manera fiable a su configuración original.
Aunque la presente invención se ha descrito con respecto a lo que se considera en la actualidad que son las realizaciones preferidas, debe entenderse que la invención no se limita a las realizaciones dadas a conocer. Por el contrario, se pretende que la invención englobe diversas modificaciones y disposiciones equivalentes incluidas dentro del alcance de las reivindicaciones adjuntas.

Claims (16)

1. Un sistema para realizar pruebas de penetración de una red informática objetivo comprendiendo el sistema:
\quad
medios para instalar un agente remoto en la red informática objetivo, en el que el agente remoto comprende un servidor proxy configurado para recibir y ejecutar llamadas de sistema;
\quad
un agente local previsto en una consola y configurado para recibir y ejecutar órdenes;
\quad
una interfaz de usuario prevista en la consola y configurada para enviar órdenes a y recibir información desde el agente local, procesar las informaciones, y presentar la información procesada;
\quad
una base de datos configurada para almacenar la información recibida desde el agente local;
\quad
una interfaz de red conectada al agente local y configurada para comunicarse a través de una red con el agente remoto instalado en la red informática objetivo; y
\quad
medios para almacenar módulos de aprovechamiento de vulnerabilidades de seguridad para su ejecución por el agente local y/o el agente remoto,
\quad
caracterizado porque
\quad
el agente remoto está adaptado además para ejecutar módulos de aprovechamiento de vulnerabilidades de seguridad en una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos de alto nivel recibidas a través de la red.
\vskip1.000000\baselineskip
2. El sistema según la reivindicación 1, en el que la interfaz de usuario permite que un usuario seleccione uno de los módulos e inicie la ejecución del módulo seleccionado o bien en el agente local o bien en el agente remoto.
3. El sistema según la reivindicación 1 ó 2, en el que la interfaz de usuario proporciona una representación gráfica de la red informática objetivo.
\vskip1.000000\baselineskip
4. El sistema según la reivindicación 1, en el que los medios para instalar un agente remoto incluyen
\quad
medios para almacenar un primer módulo configurado para ejecutarse en la consola para aprovechar una vulnerabilidad de seguridad en un primer ordenador central objetivo de la red objetivo;
\quad
medios para instalar un primer agente remoto en el primer ordenador central objetivo, estando configurado el primer agente remoto para comunicarse con la consola y comprendiendo una máquina virtual que está configurada para ejecutar instrucciones en lenguaje de secuencia de comandos de alto nivel y un segundo agente remoto; y
\quad
medios para almacenar un segundo módulo configurado para ejecutarse en el primer agente remoto para aprovechar una vulnerabilidad de seguridad en un segundo ordenador central objetivo de la red objetivo.
\vskip1.000000\baselineskip
5. El sistema según la reivindicación 4, que comprende además un segundo agente remoto instalado en el segundo ordenador central objetivo de la red objetivo, estando configurado el segundo agente remoto para comunicarse con el primer agente remoto.
6. Un procedimiento para realizar pruebas de penetración de una red informática objetivo, que comprende:
\quad
instalar un agente remoto en la red informática objetivo, en el que el agente remoto comprende un servidor proxy configurado para recibir y ejecutar llamadas de sistema; ejecutar una orden usando un agente local previsto en una consola;
\quad
recibir información desde el agente local en una interfaz de usuario prevista en la consola;
\quad
presentar la información recibida desde el agente local a un usuario;
\quad
almacenar la información recibida desde el agente local en una base de datos;
\quad
comunicarse a través de una red con el agente remoto instalado en la red informática objetivo;
\quad
proporcionar módulos de aprovechamiento de vulnerabilidades de seguridad para su ejecución por el agente local y/o el agente remoto, en el que los módulos de aprovechamiento de vulnerabilidades de seguridad se escriben en un lenguaje de secuencia de comandos de alto nivel,
\quad
caracterizado porque el procedimiento comprende además
\quad
ejecutar en el agente remoto módulos de aprovechamiento de vulnerabilidades de seguridad recibidos a través de la red en una máquina virtual configurada para ejecutar instrucciones en lenguaje de secuencia de comandos de alto nivel.
\vskip1.000000\baselineskip
7. El procedimiento según la reivindicación 6, que comprende además:
\quad
seleccionar, usando la interfaz de usuario, uno de los módulos; e
\quad
iniciar la ejecución del módulo seleccionado o bien en el agente local o bien en el agente remoto.
\vskip1.000000\baselineskip
8. El procedimiento según la reivindicación 6 ó 7, que comprende además proporcionar una representación gráfica de la red informática objetivo usando la interfaz de usuario.
\vskip1.000000\baselineskip
9. El procedimiento según la reivindicación 8, comprendiendo la etapa de instalar un agente remoto en la red informática objetivo:
\quad
ejecutar un primer módulo en una consola que tiene una interfaz de usuario, estando configurado el primer módulo para aprovechar una vulnerabilidad de seguridad en un primer ordenador central objetivo de la red objetivo;
\quad
instalar un primer agente remoto en el primer ordenador central objetivo, estando configurado el primer agente remoto para comunicarse con la consola y un segundo agente remoto.
\vskip1.000000\baselineskip
10. El procedimiento según la reivindicación 9, que comprende además:
\quad
ejecutar un segundo módulo en el primer agente remoto, estando configurado el segundo módulo para aprovechar una vulnerabilidad de seguridad en un segundo ordenador central objetivo de la red objetivo.
\vskip1.000000\baselineskip
11. El procedimiento según la reivindicación 9, que comprende además instalar un segundo agente remoto en el segundo ordenador central objetivo de la red objetivo como resultado de aprovechar una vulnerabilidad de seguridad del segundo ordenador central objetivo, estando configurado el segundo agente remoto para comunicarse con el primer agente remoto.
\vskip1.000000\baselineskip
12. El procedimiento según la reivindicación 10, que comprende además las etapas de:
\quad
enviar una llamada de sistema al primer agente remoto a través de una red; y ejecutar la llamada de sistema en el primer ordenador central objetivo usando un servidor proxycall del primer agente remoto para aprovechar una vulnerabilidad de seguridad de un segundo ordenador central objetivo.
\vskip1.000000\baselineskip
13. El procedimiento según la reivindicación 9, que comprende además las etapas de:
\quad
ejecutar en el primer agente remoto un segundo módulo que genera una llamada de sistema; y
\quad
ejecutar la llamada de sistema en el primer ordenador central objetivo para aprovechar una vulnerabilidad de seguridad de un segundo ordenador central objetivo.
\vskip1.000000\baselineskip
14. El procedimiento según la reivindicación 9, que comprende además las etapas de:
\quad
ejecutar un segundo módulo en el primer agente remoto que genera una llamada de sistema;
\quad
instalar un segundo agente remoto en el segundo ordenador central objetivo como resultado de aprovechar una vulnerabilidad de seguridad del segundo ordenador central objetivo;
\quad
enviar la llamada de sistema generada por el segundo módulo al segundo agente remoto a través de una red; y
\quad
ejecutar la llamada de sistema en el segundo ordenador central objetivo usando un servidor proxycall del segundo agente remoto.
\newpage
15. El procedimiento según la reivindicación 9, que comprende además las etapas de:
\quad
instalar un segundo agente remoto en el segundo ordenador central objetivo como resultado de aprovechar una vulnerabilidad de seguridad del segundo ordenador central objetivo;
\quad
enviar una llamada de sistema al primer agente remoto;
\quad
enviar la llamada de sistema desde el primer agente remoto al segundo agente remoto; y
\quad
ejecutar la llamada de sistema en el segundo ordenador central objetivo usando un servidor proxycall del segundo agente remoto.
\vskip1.000000\baselineskip
16. Un producto de programa informático para ejecutar un procedimiento según cualquiera de las reivindicaciones 6 a 15.
ES02768315T 2001-07-10 2002-07-10 Puesta en peligro automatizada de la seguridad de un sistema informatico. Expired - Lifetime ES2336658T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US30427001P 2001-07-10 2001-07-10
US304270P 2001-07-10
US31379301P 2001-08-20 2001-08-20
US313793P 2001-08-20
US10/054,307 US7228566B2 (en) 2001-07-10 2002-01-22 Automated computer system security compromise
US54307 2005-02-08

Publications (1)

Publication Number Publication Date
ES2336658T3 true ES2336658T3 (es) 2010-04-15

Family

ID=27368607

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02768315T Expired - Lifetime ES2336658T3 (es) 2001-07-10 2002-07-10 Puesta en peligro automatizada de la seguridad de un sistema informatico.

Country Status (8)

Country Link
US (2) US7228566B2 (es)
EP (1) EP1417603B1 (es)
AT (1) ATE449383T1 (es)
CA (1) CA2453550C (es)
DE (1) DE60234451D1 (es)
DK (1) DK1417603T3 (es)
ES (1) ES2336658T3 (es)
WO (1) WO2003007192A1 (es)

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6773769B1 (en) * 1999-05-18 2004-08-10 3M Innovative Properties Company Macroporous ink receiving media
US6779120B1 (en) * 2000-01-07 2004-08-17 Securify, Inc. Declarative language for specifying a security policy
US8074256B2 (en) * 2000-01-07 2011-12-06 Mcafee, Inc. Pdstudio design system and method
US7379857B2 (en) * 2002-05-10 2008-05-27 Lockheed Martin Corporation Method and system for simulating computer networks to facilitate testing of computer network security
US7711728B2 (en) * 2002-06-20 2010-05-04 Guidance Software, Inc. System and method for searching for static data in a computer investigation system
US20070011450A1 (en) * 2004-09-14 2007-01-11 Mccreight Shawn System and method for concurrent discovery and survey of networked devices
US6792545B2 (en) * 2002-06-20 2004-09-14 Guidance Software, Inc. Enterprise computer investigation system
US7277937B2 (en) * 2002-07-17 2007-10-02 Core Sdi, Incorporated Distributed computing using syscall proxying
US8046720B2 (en) * 2002-12-10 2011-10-25 Ixia Graphical system and method for editing multi-layer data packets
EP1614254A1 (en) * 2003-04-04 2006-01-11 Computer Associates Think, Inc. Method and system of alert notification
US8127359B2 (en) * 2003-04-11 2012-02-28 Samir Gurunath Kelekar Systems and methods for real-time network-based vulnerability assessment
US7451488B2 (en) * 2003-04-29 2008-11-11 Securify, Inc. Policy-based vulnerability assessment
US8024795B2 (en) * 2003-05-09 2011-09-20 Q1 Labs, Inc. Network intelligence system
US7389495B2 (en) * 2003-05-30 2008-06-17 Sun Microsystems, Inc. Framework to facilitate Java testing in a security constrained environment
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US8266699B2 (en) * 2003-07-01 2012-09-11 SecurityProfiling Inc. Multiple-path remediation
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US20070112941A2 (en) * 2003-07-01 2007-05-17 Securityprofiling, Inc. Client capture of vulnerability data
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US7310669B2 (en) * 2005-01-19 2007-12-18 Lockdown Networks, Inc. Network appliance for vulnerability assessment auditing over multiple networks
US9325728B1 (en) 2005-01-27 2016-04-26 Leidos, Inc. Systems and methods for implementing and scoring computer network defense exercises
US8266320B1 (en) * 2005-01-27 2012-09-11 Science Applications International Corporation Computer network defense
US7193872B2 (en) 2005-01-28 2007-03-20 Kasemsan Siri Solar array inverter with maximum power tracking
US8095982B1 (en) 2005-03-15 2012-01-10 Mu Dynamics, Inc. Analyzing the security of communication protocols and channels for a pass-through device
US8095983B2 (en) 2005-03-15 2012-01-10 Mu Dynamics, Inc. Platform for analyzing the security of communication protocols and channels
US20060288341A1 (en) * 2005-06-15 2006-12-21 Microsoft Corporation Patch-impact assessment through runtime insertion of code path instrumentation
US8161548B1 (en) 2005-08-15 2012-04-17 Trend Micro, Inc. Malware detection using pattern classification
US7809686B2 (en) * 2005-10-06 2010-10-05 Guidance Software, Inc. Electronic discovery system and method
US20070083644A1 (en) * 2005-10-12 2007-04-12 Microsoft Corporation Capturing, displaying, and re-creating network conversations and state information
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7840958B1 (en) * 2006-02-17 2010-11-23 Trend Micro, Inc. Preventing spyware installation
WO2007143226A2 (en) 2006-06-09 2007-12-13 Massachusetts Institute Of Technology Generating a multiple-prerequisite attack graph
US7958230B2 (en) 2008-09-19 2011-06-07 Mu Dynamics, Inc. Test driven deployment and monitoring of heterogeneous network systems
US8316447B2 (en) * 2006-09-01 2012-11-20 Mu Dynamics, Inc. Reconfigurable message-delivery preconditions for delivering attacks to analyze the security of networked systems
US7954161B1 (en) 2007-06-08 2011-05-31 Mu Dynamics, Inc. Mechanism for characterizing soft failures in systems under attack
US9172611B2 (en) * 2006-09-01 2015-10-27 Spirent Communications, Inc. System and method for discovering assets and functional relationships in a network
US8055797B2 (en) * 2006-09-19 2011-11-08 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US8601530B2 (en) * 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8607336B2 (en) * 2006-09-19 2013-12-10 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8627402B2 (en) * 2006-09-19 2014-01-07 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US20080068381A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Using network access port linkages for data structure update decisions
US9306975B2 (en) * 2006-09-19 2016-04-05 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US20080071793A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Using network access port linkages for data structure update decisions
US8281036B2 (en) * 2006-09-19 2012-10-02 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US8984579B2 (en) * 2006-09-19 2015-03-17 The Innovation Science Fund I, LLC Evaluation systems and methods for coordinating software agents
US8601104B2 (en) * 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US20080072032A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Configuring software agent security remotely
US7752255B2 (en) * 2006-09-19 2010-07-06 The Invention Science Fund I, Inc Configuring software agent security remotely
US8892735B2 (en) * 2006-09-28 2014-11-18 Guidance Software, Inc. Phone home servlet in a computer investigation system
KR100817799B1 (ko) * 2006-10-13 2008-03-31 한국정보보호진흥원 다중 취약점 점검 도구를 활용한 네트워크 취약점 통합분석 시스템 및 방법
US20080162687A1 (en) * 2006-12-28 2008-07-03 David Alan Scott Data acquisition system and method
US8127412B2 (en) * 2007-03-30 2012-03-06 Cisco Technology, Inc. Network context triggers for activating virtualized computer applications
US8601585B2 (en) * 2007-05-07 2013-12-03 Spirent Communications, Inc. Modification of messages for analyzing the security of communication protocols and channels
CN101682626A (zh) * 2007-05-24 2010-03-24 爱维技术解决方案私人有限公司 用于模拟对网络的黑客攻击的方法和系统
US8539570B2 (en) * 2007-06-22 2013-09-17 Red Hat, Inc. Method for managing a virtual machine
US9678803B2 (en) 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US9354960B2 (en) 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US8356353B2 (en) * 2007-06-26 2013-01-15 Core Sdi, Incorporated System and method for simulating computer network attacks
US7774637B1 (en) 2007-09-05 2010-08-10 Mu Dynamics, Inc. Meta-instrumentation for security analysis
US8286082B2 (en) * 2007-09-12 2012-10-09 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to a desk band associated with a resource executing on a local machine
US8250658B2 (en) * 2007-09-20 2012-08-21 Mu Dynamics, Inc. Syntax-based security analysis using dynamically generated test cases
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8560634B2 (en) * 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
TWI355824B (en) * 2007-12-11 2012-01-01 Inst Information Industry Method, network apparatus and computer readable me
FR2927490B1 (fr) * 2008-02-13 2010-08-13 Mobiquant Systeme et methode pour securiser le fonctionnement d'un terminal mobile
US9076342B2 (en) 2008-02-19 2015-07-07 Architecture Technology Corporation Automated execution and evaluation of network-based training exercises
US8261254B2 (en) * 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US8281363B1 (en) * 2008-03-31 2012-10-02 Symantec Corporation Methods and systems for enforcing network access control in a virtual environment
JP4609536B2 (ja) * 2008-06-18 2011-01-12 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置および画像処理システム
JP4582208B2 (ja) * 2008-06-19 2010-11-17 コニカミノルタビジネステクノロジーズ株式会社 画像処理システムおよび画像処理装置
US9112910B2 (en) * 2008-10-14 2015-08-18 International Business Machines Corporation Method and system for authentication
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US8060936B2 (en) 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US8051480B2 (en) 2008-10-21 2011-11-01 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8099472B2 (en) * 2008-10-21 2012-01-17 Lookout, Inc. System and method for a mobile cross-platform software system
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
KR101647144B1 (ko) * 2008-11-03 2016-08-23 삼성전자주식회사 원격 유저 인터페이스 서비스에서 리소스에 대한 제어 방법, 장치 및 그 저장 매체
US9405594B2 (en) * 2008-11-03 2016-08-02 Samsung Electronics Co., Ltd. Method and apparatus for controlling access to resources in remote user interface service
US8341748B2 (en) * 2008-12-18 2012-12-25 Caterpillar Inc. Method and system to detect breaks in a border of a computer network
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
EP2462716B1 (en) * 2009-08-05 2019-10-09 Help/Systems, LLC System and method for extending automated penetration testing to develop an intelligent and cost efficient security strategy
CA2773461C (en) 2009-09-08 2016-10-04 Core Sdi Incorporated System and method for probabilistic attack planning
US8397301B2 (en) 2009-11-18 2013-03-12 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US8463860B1 (en) 2010-05-05 2013-06-11 Spirent Communications, Inc. Scenario based scale testing
US8547974B1 (en) 2010-05-05 2013-10-01 Mu Dynamics Generating communication protocol test cases based on network traffic
US9077745B1 (en) * 2010-08-04 2015-07-07 Saint Corporation Method of resolving port binding conflicts, and system and method of remote vulnerability assessment
US9058323B2 (en) 2010-12-30 2015-06-16 Ss8 Networks, Inc. System for accessing a set of communication and transaction data associated with a user of interest sourced from multiple different network carriers and for enabling multiple analysts to independently and confidentially access the set of communication and transaction data
US9106514B1 (en) 2010-12-30 2015-08-11 Spirent Communications, Inc. Hybrid network software provision
US8938534B2 (en) 2010-12-30 2015-01-20 Ss8 Networks, Inc. Automatic provisioning of new users of interest for capture on a communication network
US8955110B1 (en) 2011-01-14 2015-02-10 Robert W. Twitchell, Jr. IP jamming systems utilizing virtual dispersive networking
US8941659B1 (en) 2011-01-28 2015-01-27 Rescon Ltd Medical symptoms tracking apparatus, methods and systems
US10057298B2 (en) * 2011-02-10 2018-08-21 Architecture Technology Corporation Configurable investigative tool
US10067787B2 (en) 2011-02-10 2018-09-04 Architecture Technology Corporation Configurable forensic investigative tool
US8875296B2 (en) * 2011-03-14 2014-10-28 Rapid7, Llc Methods and systems for providing a framework to test the security of computing system over a network
US8972612B2 (en) 2011-04-05 2015-03-03 SSB Networks, Inc. Collecting asymmetric data and proxy data on a communication network
US8464219B1 (en) 2011-04-27 2013-06-11 Spirent Communications, Inc. Scalable control system for test execution and monitoring utilizing multiple processors
WO2012170423A1 (en) * 2011-06-05 2012-12-13 Core Sdi Incorporated System and method for providing automated computer security compromise as a service
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US9460136B1 (en) * 2011-06-30 2016-10-04 Emc Corporation Managing databases in data storage systems
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
EP3522492A1 (en) 2012-03-22 2019-08-07 Triad National Security, LLC Path scanning for the detection of anomalous subgraphs, anomaly/change detection and network situational awareness
US8972543B1 (en) 2012-04-11 2015-03-03 Spirent Communications, Inc. Managing clients utilizing reverse transactions
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US8997230B1 (en) * 2012-06-15 2015-03-31 Square, Inc. Hierarchical data security measures for a mobile device
US9350762B2 (en) 2012-09-25 2016-05-24 Ss8 Networks, Inc. Intelligent feedback loop to iteratively reduce incoming network data for analysis
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US20140137190A1 (en) * 2012-11-09 2014-05-15 Rapid7, Inc. Methods and systems for passively detecting security levels in client devices
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US20140254372A1 (en) * 2013-03-08 2014-09-11 Tellabs Operations Inc. System, apparatus, procedure, and computer program product for provisioning a network
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9830593B2 (en) 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
US9917924B2 (en) 2015-03-16 2018-03-13 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for simplistic visual representation of complex interdependent network protocol fields for network protocol fuzzing and graphical framework for reporting instantaneous system level progress
US9432394B1 (en) 2015-03-16 2016-08-30 Ixia Methods, systems, and computer readable media for converging on network protocol stack vulnerabilities using fuzzing variables, vulnerability ratings and progressive convergence
CA2982463C (en) 2015-05-01 2019-03-05 Lookout, Inc. Determining source of side-loaded software
US10733594B1 (en) 2015-05-11 2020-08-04 Square, Inc. Data security measures for mobile devices
US10218735B2 (en) * 2015-06-30 2019-02-26 The Mitre Corporation Network attack simulation systems and methods
US20180189080A1 (en) * 2015-06-30 2018-07-05 Societal Innovations Ipco Limited System And Method For Reacquiring A Running Service After Restarting A Configurable Platform Instance
WO2017011603A1 (en) * 2015-07-13 2017-01-19 Narf Industries, Inc. System and method for identifying and preventing vulnerability exploitation using symbolic constraints
US10083624B2 (en) 2015-07-28 2018-09-25 Architecture Technology Corporation Real-time monitoring of network-based training exercises
US10803766B1 (en) 2015-07-28 2020-10-13 Architecture Technology Corporation Modular training of network-based training exercises
US10628764B1 (en) * 2015-09-15 2020-04-21 Synack, Inc. Method of automatically generating tasks using control computer
US10140108B1 (en) * 2015-12-15 2018-11-27 Dell Products L.P. Systems and methods of configuring managed resources
US10373167B2 (en) 2016-06-30 2019-08-06 Square, Inc. Logical validation of devices against fraud
US10546302B2 (en) 2016-06-30 2020-01-28 Square, Inc. Logical validation of devices against fraud and tampering
US10122750B2 (en) 2017-01-30 2018-11-06 XM Cyber Ltd Setting-up penetration testing campaigns
US10686822B2 (en) 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for selecting a lateral movement strategy for a penetration testing campaign
US10068095B1 (en) 2017-05-15 2018-09-04 XM Cyber Ltd Systems and methods for selecting a termination rule for a penetration testing campaign
US10257220B2 (en) 2017-01-30 2019-04-09 Xm Cyber Ltd. Verifying success of compromising a network node during penetration testing of a networked system
AU2018212708A1 (en) 2017-01-30 2019-08-08 Xm Cyber Ltd. Penetration testing of a networked system
US10496993B1 (en) 2017-02-15 2019-12-03 Square, Inc. DNS-based device geolocation
US10581802B2 (en) 2017-03-16 2020-03-03 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for advertising network security capabilities
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10534917B2 (en) 2017-06-20 2020-01-14 Xm Cyber Ltd. Testing for risk of macro vulnerability
US10552308B1 (en) 2017-06-23 2020-02-04 Square, Inc. Analyzing attributes of memory mappings to identify processes running on a device
US10574684B2 (en) 2017-07-09 2020-02-25 Xm Cyber Ltd. Locally detecting phishing weakness
US10412112B2 (en) 2017-08-31 2019-09-10 Xm Cyber Ltd. Time-tagged pre-defined scenarios for penetration testing
US10447721B2 (en) 2017-09-13 2019-10-15 Xm Cyber Ltd. Systems and methods for using multiple lateral movement strategies in penetration testing
WO2019079621A1 (en) * 2017-10-19 2019-04-25 Circadence Corporation METHOD AND SYSTEM FOR CLASSIFYING PENETRATION TESTS BASED ON CAPTURED LOG DATA
EP3711279A1 (en) 2017-11-15 2020-09-23 XM Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
US10715536B2 (en) 2017-12-29 2020-07-14 Square, Inc. Logical validation of devices against fraud and tampering
US11962610B2 (en) 2018-03-05 2024-04-16 EzoTech Inc. Automated security testing system and method
US10440044B1 (en) 2018-04-08 2019-10-08 Xm Cyber Ltd. Identifying communicating network nodes in the same local network
US11068305B2 (en) * 2018-05-07 2021-07-20 Micron Technology, Inc. System call management in a user-mode, multi-threaded, self-scheduling processor
US10817604B1 (en) 2018-06-19 2020-10-27 Architecture Technology Corporation Systems and methods for processing source codes to detect non-malicious faults
US10749890B1 (en) 2018-06-19 2020-08-18 Architecture Technology Corporation Systems and methods for improving the ranking and prioritization of attack-related events
US10382473B1 (en) 2018-09-12 2019-08-13 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11507958B1 (en) 2018-09-26 2022-11-22 Block, Inc. Trust-based security for transaction payments
US11494762B1 (en) 2018-09-26 2022-11-08 Block, Inc. Device driver for contactless payments
WO2020089698A1 (en) 2018-11-04 2020-05-07 Xm Cyber Ltd. Using information about exportable data in penetration testing
TWI742323B (zh) * 2018-12-05 2021-10-11 英業達股份有限公司 伺服器的檢測方法
WO2020121078A1 (en) 2018-12-13 2020-06-18 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
US11429713B1 (en) 2019-01-24 2022-08-30 Architecture Technology Corporation Artificial intelligence modeling for cyber-attack simulation protocols
US11128654B1 (en) 2019-02-04 2021-09-21 Architecture Technology Corporation Systems and methods for unified hierarchical cybersecurity
US10462177B1 (en) 2019-02-06 2019-10-29 Xm Cyber Ltd. Taking privilege escalation into account in penetration testing campaigns
CN109951455A (zh) * 2019-02-28 2019-06-28 中国人民解放军战略支援部队信息工程大学 一种自动化渗透测试方法及系统
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
CN110311886A (zh) * 2019-04-04 2019-10-08 平安科技(深圳)有限公司 服务器漏洞检测方法、装置、设备和存储介质
US11887505B1 (en) 2019-04-24 2024-01-30 Architecture Technology Corporation System for deploying and monitoring network-based training exercises
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
US11403405B1 (en) 2019-06-27 2022-08-02 Architecture Technology Corporation Portable vulnerability identification tool for embedded non-IP devices
US10637883B1 (en) 2019-07-04 2020-04-28 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
CN110505116A (zh) * 2019-07-30 2019-11-26 国网陕西省电力公司 用电信息采集系统及渗透测试方法、装置、可读存储介质
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11533329B2 (en) 2019-09-27 2022-12-20 Keysight Technologies, Inc. Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US11444974B1 (en) 2019-10-23 2022-09-13 Architecture Technology Corporation Systems and methods for cyber-physical threat modeling
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
CN111027074B (zh) * 2019-12-05 2022-03-15 国网浙江省电力有限公司电力科学研究院 一种漏洞自动化利用方法以及系统
US11503075B1 (en) 2020-01-14 2022-11-15 Architecture Technology Corporation Systems and methods for continuous compliance of nodes
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
US20210357507A1 (en) * 2020-05-15 2021-11-18 Twilio Inc. Framework for automated penetration testing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US149741A (en) * 1874-04-14 Improvement in separators for thrashing-machines
US5485409A (en) * 1992-04-30 1996-01-16 International Business Machines Corporation Automated penetration analysis system and method
AU2237995A (en) 1994-04-05 1995-10-23 Intel Corporation Method and appartus for monitoring and controlling programs in a network
US6108715A (en) 1994-12-13 2000-08-22 Microsoft Corporation Method and system for invoking remote procedure calls
US5600790A (en) 1995-02-10 1997-02-04 Research In Motion Limited Method and system for loading and confirming correct operation of an application program in a target system
US5892903A (en) * 1996-09-12 1999-04-06 Internet Security Systems, Inc. Method and apparatus for detecting and identifying security vulnerabilities in an open network computer communication system
US5812529A (en) 1996-11-12 1998-09-22 Lanquest Group Method and apparatus for network assessment
US6085243A (en) 1996-12-13 2000-07-04 3Com Corporation Distributed remote management (dRMON) for networks
US6009456A (en) 1997-07-30 1999-12-28 Lockheed Martin Corp. Information exchange by intelligent mobile agents in a network
US6202199B1 (en) 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US5961644A (en) 1997-09-19 1999-10-05 International Business Machines Corporation Method and apparatus for testing the integrity of computer security alarm systems
US6249886B1 (en) 1997-10-17 2001-06-19 Ramsesh S. Kalkunte Computer system and computer implemented process for performing user-defined tests of a client-server system with run time compilation of test results
US6070244A (en) 1997-11-10 2000-05-30 The Chase Manhattan Bank Computer network security management system
US6081665A (en) 1997-12-19 2000-06-27 Newmonics Inc. Method for efficient soft real-time execution of portable byte code computer programs
US6205551B1 (en) 1998-01-29 2001-03-20 Lucent Technologies Inc. Computer security using virus probing
US6298445B1 (en) 1998-04-30 2001-10-02 Netect, Ltd. Computer security
US6408391B1 (en) 1998-05-06 2002-06-18 Prc Inc. Dynamic system defense for information warfare
WO1999066383A2 (en) 1998-06-15 1999-12-23 Dmw Worldwide, Inc. Method and apparatus for assessing the security of a computer system
US6185689B1 (en) 1998-06-24 2001-02-06 Richard S. Carson & Assoc., Inc. Method for network self security assessment
US6205122B1 (en) 1998-07-21 2001-03-20 Mercury Interactive Corporation Automatic network topology analysis
US6286047B1 (en) 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6574737B1 (en) * 1998-12-23 2003-06-03 Symantec Corporation System for penetrating computer or computer network
US6301668B1 (en) 1998-12-29 2001-10-09 Cisco Technology, Inc. Method and system for adaptive network security using network vulnerability assessment
US6205552B1 (en) 1998-12-31 2001-03-20 Mci Worldcom, Inc. Method and apparatus for checking security vulnerability of networked devices
US6704873B1 (en) * 1999-07-30 2004-03-09 Accenture Llp Secure gateway interconnection in an e-commerce based environment
JP2003514275A (ja) 1999-11-03 2003-04-15 ビギランテ アクティーゼルスカブ データ通信ネットワーク上のコンピュータ・アクセス・セキュリティ・テスト方法
US7107347B1 (en) * 1999-11-15 2006-09-12 Fred Cohen Method and apparatus for network deception/emulation
US20030149741A1 (en) 2002-02-05 2003-08-07 Krooss Kevin William Methods for implementing remote operating system procedure calls

Also Published As

Publication number Publication date
US20030014669A1 (en) 2003-01-16
DE60234451D1 (de) 2009-12-31
ATE449383T1 (de) 2009-12-15
US20070204347A1 (en) 2007-08-30
US7757293B2 (en) 2010-07-13
US7228566B2 (en) 2007-06-05
EP1417603B1 (en) 2009-11-18
CA2453550C (en) 2015-05-26
EP1417603A4 (en) 2006-04-05
WO2003007192A1 (en) 2003-01-23
CA2453550A1 (en) 2003-01-23
EP1417603A1 (en) 2004-05-12
DK1417603T3 (da) 2010-03-22

Similar Documents

Publication Publication Date Title
ES2336658T3 (es) Puesta en peligro automatizada de la seguridad de un sistema informatico.
US9697352B1 (en) Incident response management system and method
US7865938B2 (en) Enterprise-wide security system for computer devices
CN103999089B (zh) 用于在网络环境中扫描计算机漏洞的系统和方法
CN104871174B (zh) 用户便携设备及用于“自带”计算工作环境的系统和方法
CN108780485A (zh) 基于模式匹配的数据集提取
US11184374B2 (en) Endpoint inter-process activity extraction and pattern matching
US20080282335A1 (en) Software firewall control
US20050193043A1 (en) System and method for processing audit records
BRPI0616018A2 (pt) sistemas e métodos de segurança para redes de computador
US11303651B1 (en) Security appliance to monitor networked computing environment
AU2020305390B2 (en) Cryptographic key orchestration between trusted containers in a multi-node cluster
US20050114625A1 (en) Processing device security setting configuration system and user interface
CN110210214A (zh) 处理器核心隔离方法及装置
CN110210234A (zh) 转诊时医疗信息的迁移方法、装置、计算机设备和存储介质
US20050137908A1 (en) Methods and apparatus for externally controlling a software application to create new application behavior
US11425150B1 (en) Lateral movement visualization for intrusion detection and remediation
CN112837194A (zh) 一种智慧系统
EP3288233B1 (en) Non-transitory computer-readable recording medium storing control program, control method, and information processing device
CN106657159A (zh) 安全策略的生成方法及装置
US8069482B2 (en) Device, system and method of database security
US20050125689A1 (en) Processing device security management and configuration system and user interface
Findlay Techniques and methods for obtaining access to data protected by linux-based encryption–A reference guide for practitioners
Wirth To patch, or not to patch, that is the question
Wuyts et al. Hardening XDS-based architectures