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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability 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.
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.
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
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.
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.
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.
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.
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.
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)
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)
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 |
-
2002
- 2002-01-22 US US10/054,307 patent/US7228566B2/en not_active Expired - Lifetime
- 2002-07-10 ES ES02768315T patent/ES2336658T3/es not_active Expired - Lifetime
- 2002-07-10 WO PCT/US2002/022457 patent/WO2003007192A1/en not_active Application Discontinuation
- 2002-07-10 AT AT02768315T patent/ATE449383T1/de not_active IP Right Cessation
- 2002-07-10 CA CA2453550A patent/CA2453550C/en not_active Expired - Lifetime
- 2002-07-10 EP EP02768315A patent/EP1417603B1/en not_active Expired - Lifetime
- 2002-07-10 DK DK02768315.0T patent/DK1417603T3/da active
- 2002-07-10 DE DE60234451T patent/DE60234451D1/de not_active Expired - Fee Related
-
2007
- 2007-04-16 US US11/735,491 patent/US7757293B2/en not_active Expired - Lifetime
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 |