MXPA04006784A - Deteccion y correccion automatica de programas de archivos vulnerables. - Google Patents

Deteccion y correccion automatica de programas de archivos vulnerables.

Info

Publication number
MXPA04006784A
MXPA04006784A MXPA04006784A MXPA04006784A MXPA04006784A MX PA04006784 A MXPA04006784 A MX PA04006784A MX PA04006784 A MXPA04006784 A MX PA04006784A MX PA04006784 A MXPA04006784 A MX PA04006784A MX PA04006784 A MXPA04006784 A MX PA04006784A
Authority
MX
Mexico
Prior art keywords
binary
security
file
computer
signature
Prior art date
Application number
MXPA04006784A
Other languages
English (en)
Inventor
Ivanov Sergei
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04006784A publication Critical patent/MXPA04006784A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Electrotherapy Devices (AREA)
  • Television Systems (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

Se describen sistemas y metodos que permiten corregir vulnerabilidades de seguridad en archivos binarios. La deteccion y la correccion de archivos binarios vulnerables es automatica, completa, confiable y libre de regresion a traves de redes en una escala no limitada. Estas ventajas pueden considerarse en diversas formas que incluyen, por ejemplo, apalancamiento de la infraestructura antivirus actual que se despliega ampliamente a traves de la Internet. Se logra el descubrimiento confiable de archivos binarios vulnerables (por ejemplo, en sistemas de operacion, programas de aplicacion, etc.) a traves del uso de firmas binarias que han sido asociadas con vulnerabilidades de seguridad descubiertas. Una divergencia de los parches de seguridad que no estan dentro de los paquetes de servicio convencionales, proporciona la posibilidad de producir correcciones libres de regresion de vulnerabilidades de seguridad en archivos binarios.

Description

DETECCIÓN Y CORRECCIÓN AUTOMÁTICA DE PROGRAMAS DE ARCHIVOS VULNERABLES Campo del Invento La presente descripción se refiere de manera general a la corrección de programas de archivos, y más particularmente, a una forma automática, completa, confiable y libre de regresión para proporcionar parches de seguridad a archivos de programas binarios vulnerables en ambientes de computación distribuidos, heterogéneos. Antecedentes del Invento El desarrollo de softwares es un proceso en curso mediante el cual un producto de software que será liberado inicialmente al público, puede ser actualizado en forma continua mediante revisiones por parte del desarrollador/vendedor del software. Las revisiones de los softwares normalmente son costeadas por el vendedor del software, en lo que denominan "paquete de servicios", las cuales pueden ser descargadas u ordenadas al vendedor para la instalación en la computadora de un usuario. Los paquetes de servicios normalmente contienen programas de corrección (por ejemplo, para un sistema de operación, programa de aplicación, etc), que reparan los problemas (es decir, "errores") encontrados en el código del programa después de la liberación inicial del producto o después de la liberación del último paquete de servicios.
Además de contener correcciones para los errores del programa, los paquetes de servicios también pueden contener parches de seguridad desarrollados en forma específica para reparar vulnerabilidades encontradas en los archivos del programa. Las vulnerabilidades del programa descubiertas después que el producto del software ha sido liberado, pueden poner en riesgo de un ataque significativo por parte de piratas y viruses que se encuentran a nivel mundial. Por consiguiente, una vez que se ha descubierto una vulnerabilidad, es de gran importancia la distribución e instalación rápida y amplia de parches de seguridad para computadoras que tienen un software vulnerable. Teóricamente, puede ser efectivo el uso de paquetes de servicios para lograr una pronta y amplia distribución de parches de seguridad. Por ejemplo, cuando un vendedor de softwares descubre una vulnerabilidad y posteriormente desarrolla " v; un parche de seguridad, el parche puede ser colocado en el últimd paquete de servicios en un sitio Web del vendedor para que los usuarios lo descarguen e instalen inmediatamente. Esto podría frustar a una gran parte de los piratas y viruses que pretenden explotar la vulnerabilidad descubierta. Sin embargo, los administradores del sistema y otros usuarios del producto de software, con frecuencia se enfrentan a diversos inconvenientes y/o dificultades relacionados con el acceso e instalación de parches de seguridad. Estas dificultades normalmente dan como resultado una distribución significativamente inferior de dichos parches, a la que pretende el vendedor que desarrolla el parche. El resultado es que las vulnerabilidades en muchas computadoras a nivel mundial se dejan sin corregir, exponiendo dichas computadoras a un riesgo significativo. Una dificultad con el acceso e instalación de parches de seguridad, es que los métodos normales para detectar si una computadora está corriendo un software con una vulnerabilidad conocida, requieren el uso e inclusión activa de la computadora. Por ejemplo, los métodos actualmente disponibles pueden determinar que versiones de los productos de software en particular que se encuentran en una computadora necesitan se actualizados (por ejemplo, con un parche de seguridad). Sin embargo, únicamente los productos de software que están corriendo en forma activa en la computadora se incluyen en esta determinación. No se consideran los sistemas y aplicaciones de operación secundarios que no están corriendo en forma activa en una computadora y por lo tanto, pueden tener una vulnerabilidad de seguridad que transcurre sin aviso y sin probabilidad de corrección. Para los productos que corren en forma activa en una computadora, un usuario puede revisar una lista de actualizaciones disponibles y seleccionar las actualizaciones para instalación. Algunas actualizaciones pueden ser actualizaciones críticas diseñadas para proteger a una computadora de vulnerabilidades de seguridad conocidas. Algunas actualizaciones requieren que un usuario reinicie la computadora antes de que se termine la instalación. Además, el usuario debe seleccionar en forma activa las actualizaciones e instalarlas. Por estas y otras razones, los métodos actuales para accesar e instalar parches de seguridad son menos efectivos. Otra dificultad en accesar e instalar parches de seguridad, es saber si una computadora necesita o no un parche de seguridad. Algunas ocasiones es difícil que los usuarios conozcan si sus computadoras están corriendo el software que es vulnerable. Además, los métodos actuales para detectar si una computadora está corriendo el software con una vulnerabilidad conocida, pueden no tener la capacidad de detectar ciertas configuraciones de un producto de software conocidas por ser vulnerables. Por ejemplo, las versiones compartidas de algunos productos de software pueden distribuirse como parte de otros productos, por lo tanto, aunque una versión compartida de un producto pueda contener la misma vulnerabilidad que la versión completa del producto, la versión compartida puede no ser reconocida como un producto que necesita una actualización de un parche de seguridad. Por lo tanto, las versiones compartidas de productos de software que se conocen por tener vulnerabilidades de seguridad, con frecuencia transcurren sin corrección. Otros problemas con respecto al acceso o instalación de parches de seguridad, se refieren al método de "paquete de servicios" convencional, a través del cual se suministran dichos parches. La descarga e instalación de paquetes de servicios es Tn proceso tardado y manual que muchos administradores de sistemas simplemente no tienen tiempo de llevar a cabo. Por consiguiente, incluso cuando los administradores pretenden instalar parches de seguridad, el tiempo entre la liberación de un parche de seguridad y su instalación en un sistema determinado puede ser de semanas, meses o años. Por lo tanto, el riesgo de ataque a través de una vulnerabilidad de seguridad puede no disminuir en dichos sistemas, hasta después de que el vendedor del software ha emitido un parche de seguridad. Además, los administradores de sistemas con frecuencia eligen no descargar e instalar paquetes de servicios que contienen parches de seguridad, incluso aunque comprenden los importantes riesgos de seguridad. La razón de esto es que la instalación de un paquete de servicios proporciona el riesgo de regresiones del sistema que pueden introducir cambios no deseados en el comportamiento del mismo. Los administradores, con frecuencia dedican gran tiempo y esfuerzo a corregir un sistema para que funcione como se desea. Sin embargo, tal como se mencionó anteriormente, los paquetes de servicios representan una evolución de una versión previa de un producto de software que incluye las actualizaciones más recientes para una base de código del producto (es decir, el alcance de los cambios no está restringido únicamente a los parches de seguridad). Además, de introducir comportamientos nuevos y proyectados en un sistema, Fas actualizaciones de códigos recientes en üñ paquete de servicios, pueden introducir errores no conocidos en un sistema que pueden originar que el sistema se comporte en forma inesperada, lo cual a su vez puede crear problemas significativos para un administrador de sistemas. Por lo tanto, con frecuencia los sistemas no están actualizados con parches de seguridad importantes proyectados para corregir archivos de programas vulnerables, debido a que los administradores no desean correr el riesgo de regresiones. Por consiguiente, existe la necesidad de una forma para implementar la corrección de vulnerabilidades de seguridad en archivos de programas en una forma automática, completa, confiable y libre de regresiones. Sumario del Invento En la presente invención se describe la creación de parches de seguridad automáticos, completos, confiables y libres de regresiones para archivos de programas binarios. De acuerdo con una implementación, se recibe una firma binaria de una vulnerabilidad y un parche de seguridad. Se identifica un archivo binario vulnerable en una computadora con base en la firma binaria de una vulnerabilidad. El archivo binario vulnerable en la computadora se actualiza con el parche de seguridad. De acuerdo con otra implementación, se recibe una firma binaria que identifica una vulnerabilidad de seguridad en un archivo binario. También se recibe un parche de seguridad configurado para corregir la vulnerabilidad de seguridad. La firma binaria y el parche de seguridad se distribuyen a una pluralidad de servidores. De acuerdo con otra implementación, se recibe una firma binaria desde un servidor y se utiliza para buscar archivos binarios. Se envía una solicitud de parche de seguridad al servidor, si se encuentra la firma binaria en un archivo binario. Posteriormente el archivo binario se actualiza con el parche de seguridad. Breve Descripción de los Dibujos Se utilizan los mismos números de referencia a lo largo de los dibujos, para indicar componentes y características similares.
La figura 1, ilustra un ambiente de red de ejemplo adecuado para ¡mplementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. La figura 2, ilustra una modalidad de ejemplo de un servidor de distribución, un servidor de parche-exploración y una computadora cliente adecuada para ¡mplementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. La figura 3, ilustra otra modalidad de ejemplo de un servidor de distribución, un servidor de parche-exploración y una computadora cliente adecuada para ¡mplementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. Las figuras de la 4 a la 6, ilustran diagramas de bloque de métodos de ejemplo para implementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios.
La figura 7, ilustra un ambiente de computación de ejemplo adecuado para implementar un servidor de distribución, un servidor de parche-exploración y una computadora cliente. Descripción Detallada del Invento Revisión general La descripción que se encuentra a continuación se dirige a sistemas y métodos que permiten la creación de parches para vulnerabilidades de seguridad en archivos binarios. La detección y corrección de archivos binarios vulnerables es automática, completa, confiable, y libre de regresiones a través de redes en una escala sin límite. Estas ventajas pueden considerarse en varias formas, incluyendo por ejemplo, el apalancamiento de la infraestructura antivirus actual que se despliega ampliamente a través de la Internet. Una divergencia de parches de seguridad de los paquetes de servicio convencionales, proporciona la posibilidad de producir correcciones de vulnerabilidades de seguridad en archivos binarios libres de regresión. El descubrimiento confiable de archivos binarios vulnerables (por ejemplo, en sistemas de operación, programas de aplicación, etc) se logra a través del uso de firmas binarias que han estado asociadas con vulnerabilidades de seguridad. Las firmas binarias asociadas con vulnerabilidades de seguridad en archivos binarios, junto con parches de seguridad desarrollados para corregir las vulnerabilidades de seguridad, se cargan a un servidor de distribución central. El servidor de distribución está configurado para distribuir las firmas binarias y parches de seguridad en una base amplia a través de diversas redes, tales como la Internet. El uso de un servidor de distribución central para actualizar los servidores de la red (por ejemplo, a través de la Internet), proporciona una cobertura de parche completa y automática en una escala sin límite. Los servidores de la red que reciben dichas actualizaciones, pueden explorar las computadoras cliente dentro de las redes subordinas para localizar archivos vulnerables de acuerdo con firmas binarias, y posteriormente actualizar las computadoras que se hayan encontrado con archivos vulnerables de seguridad, utilizando los parches de seguridad correspondientes que corregirán los archivos vulnerables. Los servidores de la red también pueden comunicarse con computadores cliente para transferir a las computadoras firmas binarias y parches de seguridad, de modo que la exploración y actualización pueda llevarse a cabo a través de las propias computadoras. También pueden existir múltiples niveles depositados en redes subordinadas. Ambiente de Ejemplo La figura 1, ilustra un ambiente de red de ejemplo 100, adecuado para implementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. En el ambiente de red de ejemplo 100, se acopla un servidor de distribución central 102 a múltiples servidores de exploración/parche 104 a través de una red 106(a). El servidor de exploración/parche 104 se acopla normalmente a través de una red 106(b) a una pluralidad de computadoras cliente 108(1 )-108(n). Se pretende que la red 106 represente cualquier variedad de topologías y tipos de red convencionales (incluyendo redes ópticas, cableadas y/o inalámbricas), empleando cualquier variedad de protocolos de red convencionales (incluyendo protocolos públicos y/o privados). La red 106 puede incluir, por ejemplo, la Internet, así como posiblemente al menos parte de una o más redes de área local (LANs) y/o redes de área amplia (WANs). Las redes 106(a) y 106(b) pueden ser la misma red que la Internet, o pueden ser redes aisladas entre si, tal como la Internet y una LAN corporativa. El servidor de distribución 102 y los servidores de exploración/parche 104 normalmente se implementan en la forma de servidores Web estándar, y cada uno pueden tener cualquiera de una variedad de aparatos de cómputo convencionales, incluyendo PCs de escritorio, computadoras de bolsillo o portátiles, estaciones de trabajo, computadoras de unidad central, aparatos de Internet, combinaciones de los mismos, etc. Uno o más de los servidores 102 y 104 pueden ser los mismos tipos de aparatos, o como alternativa, diferentes tipos de aparatos. Un ambiente de cómputo de ejemplo para implementar un servidor de distribución 102 y un servidor de exploración/parche 104 se describe con mayor detalle más adelante con referencia a la figura 7. Las computadoras cliente 108 funcionan en una relación típica de cliente/servidor con un servidor 104, en donde múltiples clientes 108 realizan solicitudes a un servidor 104 que atiende las solicitudes. Las computadoras cliente 108 pueden ser cualquiera de una variedad de aparatos de cómputo convencionales, incluyendo PCs de escritorio, computadoras de bolsillo o portátiles, estaciones de trabajo, computadoras de unidad central, consolas de juegos, PCs de bolsillo, teléfonos celulares, u otros aparatos de comunicación inalámbrica, asistentes digitales personales (PDAs), combinaciones de los mismos, etc. Una o más de las computadoras cliente 108 pueden ser el mismo tipo de aparatos, o como alternativa, diferentes tipos de aparatos. Un ambiente de cómputo de ejemplo para implementar una computadora cliente 108, se describe con mayor detalle más adelante con referencia a la figura 7. En general, la detección y corrección automática y completa de archivos binarios vulnerables en computadoras cliente 108, se logra a través de actualizaciones elaboradas a través del servidor de distribución 102 que incluyen firmas binarias para identificar archivos binarios vulnerables y parches de seguridad configurados para corregir archivos vulnerables. Tal como se describirá con mayor detalle más adelante con respecto a las siguientes modalidades de ejemplo, las firmas binarias y parches de seguridad se distribuyen a los servidores de exploración/parches 104, los cuales a su vez, ya sea que exploran en forma activa y actualizan archivos binarios vulnerables en computadoras cliente 108, o procesan las firmas binarias y parches de seguridad a las computadoras cliente 108, de modo que las computadoras cliente 108 pueden llevar a cabo la exploración y corrección de archivos binarios vulnerables. Modalidades de Ejemplo La figura 2, ilustra una modalidad de ejemplo de un servidor de distribución 102, un servidor de exploración-parche 104 y una computadora cliente 108 adecuada para implementar la detección y corrección automático de vulnerabilidades de seguridad en archivos binarios. El servidor de distribución 102 incluye un módulo de distribución 200 y una base de datos 202 para recibir y mantener firmas binarias y parches de seguridad. La base de datos 202 puede actualizarse con firmas binarias y parches de seguridad en una variedad de formas, incluyendo, por ejemplo, a través de un medio de almacenamiento portátil (no mostrado, pero que se puede observar en la figura 7) o a través de un aparato de cómputo (no mostrado) acoplado al servidor 102 y configurado para cargar firmas binarias y parches de seguridad a la base de datos 202. Un escenario típico en el cual una base de datos 202 puede actualizarse, comienza con una investigación del producto de software (por ejemplo un sistema de operación, programa de aplicación, etc) iniciada por el desarrollador del producto de software. Por ejemplo, un desarrollador puede contratar una firma de consultoría de seguridad para intentar encontrar vulnerabilidades de seguridad en un producto de software recientemente liberado. Si se descubre una vulnerabilidad de seguridad en un producto de software a través de piratería informáticad o de otros medios, se puede identificar un patrón de bit exacto de la función vulnerable dentro del producto. El patrón de bit representa una firma binaria de la sección vulnerable en el archivo binario, el cual es un componente de un producto de software. Una vez que se descubre una vulnerabilidad de seguridad y se analiza, se puede desarrollar una corrección que eliminará la vulnerabilidad. Dichas correcciones se denominan parches de seguridad y representan módulos de código revisados recopilados en binarios ejecutables. Los parches de seguridad se pueden instalar en computadoras que se identifican a través de la firma binaria, conforme está corriendo el software que tiene la vulnerabilidad de seguridad. La instalación del parche de seguridad corregirá la vulnerabilidad de seguridad. El servidor de distribución 102 habilita a los vendedores del producto de software y a otros a cargar firmas binarias de archivos binarios vulnerables junto con los parches de seguridad diseñados para corregir los archivos binarios vulnerables en la base de datos 202 para distribución.
El módulo de distribución 200 está configurado para distribuir a diversos servidores de exploración-parche 104 a través de una red 106, firmas binarias y parches de seguridad a partir de bases de datos 202. El módulo de distribución 200 normalmente funciona en forma automática para distribuir firmas binarias y parches de seguridad desde la base de datos 202, siempre que la base de datos 202 esté actualizada con firmas y parches adicionales. La distribución automática se puede lograr en una variedad de formas, que incluyen, por ejemplo, la comunicación del módulo de distribución 200 a los servidores de exploración-parche 104, que indica que las firmas binarias y parches de seguridad actualizados están disponibles y se esperan solicitudes para enviar las firmas binarias y parches de seguridad, o mediante el envío en forma automática de firmas binarias y parches de seguridad actualizados a los servidores de exploración-parche 104 configurados para aceptar las actualizaciones. En la modalidad de la figura 2, un servidor de exploración-parche 104 incluye un módulo de exploración-parche 204 y una base de datos 206 para recibir y mantener firmas binarias y parches de seguridad. La base de datos 206, se actualiza normalmente en forma automática con nuevas firmas binarias y parches de seguridad a través de comunicaciones entre un módulo de exploración-parche 204 y el módulo de distribución 200 que se encuentra en el servidor de distribución 102. Además de actualizar la base de datos 206 con firmas binarias y parches de seguridad, el módulo de exploración-parche 204 está configurado para accesar la computadora cliente 108 y explorar archivos binarios 208 para firmas binarias. La exploración de archivos binarios 208 puede incluir la búsqueda de una firma binaria en archivos binarios presentes en cualquier forma de medios que se encuentran en, o que son accesibles a través de, la computadora cliente 108. Los archivos binarios 208, normalmente incluyen un código recopilado, legible en computadora/procesador tal como un sistema de operación o un archivo de programa de aplicación. Sin embargo, se debe observar que los archivos binarios 208 pueden ser cualquier forma de información binaria, incluyendo instrucciones legibles en computadora/procesador, estructuras de datos, módulos de programa y otros datos de la computadora cliente 108. Tal como se observará más adelante en la descripción que se refiere al ambiente de computadora de ejemplo de la figura 7, dichos medios que se encuentran en la computadora cliente 108 pueden incluir cualesquiera medios disponibles que sean accesibles mediante la computadora cliente 108 tal como medios volátiles y no volátiles, así como medios removibles y no removibles. Dichos medios legibles en computadora/procesador pueden incluir memoria volátil, tal como memoria de acceso aleatorio (RAM) y/o memoria no volátil, tal como memoria únicamente de lectura (ROM). Los medios legibles en computadora/procesador también pueden incluir otros medios de almacenamiento en computadora removibles/no removibles, volátiles/no volátiles, tales como por ejemplo, una unidad de disco duro para leer y escribir en un medio magnético no removible, no volátil, una unidad de disco magnético para leer y escribir en un disco magnético removible, no volátil (por ejemplo, un "disco flexible") una unidad de disco óptico para leer y/o escribir en un disco óptico removible, no volátil, tal como CD-ROM, DVD-ROM, u otros medios ópticos, otros dispositivos de almacenamiento magnético, tarjetas de memoria flash, memoria únicamente de lectura programable eléctricamente borrable (EEPROM), almacenamiento adherido a la red, y similares. Todos los medios legibles en computadora/procesador que proporcionan almacenamiento tanto volátil como no volátil de cualquier forma de archivos binarios 208, incluyendo instrucciones legibles en computadora/procesador, estructuras de datos, módulos de programa y otros datos de la computadora cliente 108, son accesibles para la exploración mediante el servidor de exploración-parche 104 a través de un módulo de exploración-parche 204. El módulo de exploración-parche 204 busca de este modo archivos binarios 208 en la computadora cliente 108, para determinar si se encuentra una firma binaria que identifica una vulnerabilidad de seguridad en cualquier información binaria localizada en una computadora cliente 108. Si el patrón de bits de la firma binaria se encuentra en un archivo binario 208, el módulo de exploración-parche 204 opera para corregir la vulnerabilidad de seguridad en el archivo binario 208, instalando un parche de seguridad correspondiente en la computadora cliente 108. La instalación de un parche de seguridad en la computadora cliente 108, sobre escribe o elimina de otra forma el archivo binario o una parte del archivo binario que contiene la vulnerabilidad de seguridad. La figura 3, ilustra otra modalidad de ejemplo de un servidor de distribución 102, un servidor de exploración-parche 104 y una computadora cliente 108 adecuada para implementar la corrección de vulnerabilidades de seguridad en archivos binarios. En general, en la modalidad de la figura 3, las firmas binarias y parches de seguridad se bajan, o redistribuyen desde el servidor 104 hasta la computadora cliente 108, y la exploración de archivos vulnerables de seguridad y la corrección de archivos vulnerables de seguridad se lleva a cabo mediante la computadora cliente 108, en lugar de mediante el servidor de parches de seguridad 104. En la modalidad de la figura 3, el servidor de distribución 102 está configurado en la misma forma que se describió anteriormente con respecto a la modalidad de la figura 2. Por lo tanto, la base de datos 202 puede ser actualizada para incluir firmas binarias recientemente descubiertas que identifican vulnerabilidades de seguridad en archivos binarios. La base de datos 202 también puede ser actualizada con parches de seguridad correspondientes que han sido desarrollados para corregir dichas vulnerabilidades de seguridad.
El servidor de exploración-parche 102 de la figura 3, está configurado en cierto modo de la misma forma que la descrita anteriormente con respecto a la figura 2. Por lo tanto, el servidor de exploración-parche 102 de la figura 3 incluye una base de datos 206 para recibir y mantener firmas binarias y parches de seguridad. La base de datos 206 normalmente se actualiza en forma automática con firmas binarias y parches de seguridad nuevos mediante comunicaciones entre el servidor de exploración-parche 104 y el servidor de distribución 102. Sin embargo, la comunicación entre el servidor de exploración-parche 104 y el servidor de distribución 102 se lleva a cabo a través de un módulo de redistribución 300, en lugar de un módulo de exploración-parche 204, tal como se describe con respecto a la modalidad de la figura 2. El módulo de redistribución 300, además de actualizar la base de datos 206 con firmas binarias y parches de seguridad, está configurado para comunicarse con el módulo de exploración-: parche 302 en la computadora cliente 108 y transferir una firma binaria a la computadora cliente 108. El módulo de exploración-parche 302, está configurado para recibir la firma binaria y explorar archivos binarios 208 para determinar si la firma binaria se encuentra en cualquier información binaria localizada en la computadora cliente 108. Por lo tanto, el módulo de exploración-parche 302 de la figura 3, funciona en una forma similar al módulo de exploración-parche 204 descrito anteriormente con referencia a la figura 2. Si el patrón de bits de la firma binaria se encuentra en un archivo binario 208 en la computadora cliente 108, el módulo de exploración-parche 302 envía una solicitud al módulo de redistribución 300 que se encuentra en el servidor 102. La solicitud es que el módulo de redistribución 300 envíe el parche de seguridad correspondiente con la firma binaria bajada a la computadora cliente 108. El módulo de redistribución 300 responde a la solicitud, enviando el parche de seguridad adecuado a la computadora cliente 108. El módulo de exploración-parche 302 recibe el parche de seguridad y opera para corregir la vulnerabilidad de seguridad en el archivo binario 208, instalando el parche de seguridad en la computadora cliente 108. Tal como en la modalidad de la figura 2, la instalación de un parche de seguridad en la computadora cliente 108 sobreescribe o elimina de otra forma el archivo binario o una parte del archivo binario que contiene la vulnerabilidad de seguridad descubierta. Métodos de Ejemplo Los métodos de ejemplo para implementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios, se describirá a continuación con referencia principalmente a los diagramas de flujo de las figuras de la 4 a la 6. Los métodos aplican generalmente para las modalidades de ejemplo descritas anteriormente con respecto a las figuras de la 1 a la 3. Los elementos de los métodos descritos pueden llevarse a cabo a través de cualesquiera medios adecuados, que incluyen por ejemplo, bloques de lógica de hardware en un ASIC o mediante la ejecución de instrucciones legibles en un procesador definidas en un medio legible en un procesador. Un "medio legible en un procesador", tal como se utiliza en la presente invención, puede ser cualquier medio que pueda contener, almacenar, comunicar, propagar o transportar instrucciones para ser utilizadas por o ejecutarse mediante un procesador. Un medio legible en un procesador, puede ser, sin limitación, un sistema, aparato, dispositivo o medio de propagación electrónico, magnético, óptico, electromagnético, infrarrojo o semiconductor. Los ejemplos más específicos de un medio legible en un procesador, incluyen entre otros, una conexión eléctrica (electrónica) que tienen uno o más cables, un disquete de computadora portátil (magnético), una memoria de acceso aleatorio (RAM) (magnética), una memoria únicamente de lectura (ROM) (magnética), una memoria únicamente de lectura programable borrable (EPROM o memoria Flash) una fibra óptica (óptica), un disco compacto de reescritura (CD-RW) (óptico) y una memoria únicamente de lectura de disco compacto portátil (CDROM) (óptico). La figura 4 muestra un método de ejemplo 400 para implementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. Los archivos binarios normalmente se localizan o almacenan en una computadora cliente que esta siendo servida por una computadora servidor, aunque también pueden localizarse en la propia computadora servidor, o cualquier otro aparato de cómputo accesible mediante la computadora servidor. En el bloque 402 del método 400, se recibe una firma binaria. La firma binaria es un patrón de bit que ha estado asociado con una vulnerabilidad de seguridad en un archivo binario en particular, tal como un programa de aplicación ejecutable o un sistema de operación que corre en una computadora cliente. La firma binaria se recibe desde un servidor de distribución central 102 a través de un servidor subordinado 104. En el bloque 404, se recibe un parche de seguridad. El parche de seguridad normalmente es un código ejecutable recopilado que ha sido desarrollado como una corrección para vulnerabilidad de seguridad del archivo binario en particular. El parche de seguridad también se recibe del servidor de distribución central 102 a través del servidor subordinado 104. En el bloque 406, se identifica un archivo binario vulnerable con base en la firma binaria. La identificación del archivo binario vulnerable normalmente se logra explorando la información binaria almacenada en diversos medios de una computadora, tal como una computadora cliente 108, y posteriormente comparando el patrón(s) en la firma binaria con la información binaria encontrada en el medio. La identificación puede ocurrir en diversas formas, que incluyen, por ejemplo, mediante la exploración y comparación por parte del servidor 104 de toda la información binaria presente en la computadora cliente. La identificación de un archivo binario vulnerable también puede lograrse teniendo el servidor 104 la firma binaria bajada a la computadora cliente, de modo que la computadora cliente pueda llevar a cabo la exploración y comparación. En el bloque 408 del método 400, se utiliza el parche de seguridad para actualizar el archivo binario vulnerable. La actualización puede lograrse en diversas formas, que incluyen por ejemplo, a través de la instalación por parte del servidor 104 del parche de seguridad en la computadora cliente 108. Si la computadora cliente 108 ha llevado a cabo la exploración y ha identificado el archivo binario vulnerable, la computadora cliente 108 puede solicitar que el servidor 104 envíe el parche de seguridad a la computadora 108, en cuyo caso la computadora 108 puede instalar el parche de seguridad para corregir el archivo binario vulnerable. La figura 5 muestra otro método de ejemplo 500 para implementar la detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. El método 500 ilustra en forma general la distribución de firmas binarias de vulnerabilidades de seguridad y los parches de seguridad desarrollados para corregir dichas vulnerabilidades de seguridad. En el bloque 502 del método 500, se recibe una firma binaria que identifica una vulnerabilidad de seguridad de un archivo binario.
La firma binaria normalmente se carga a un servidor de distribución 102, en la forma de un patrón de bits recientemente descubierto que identifica una vulnerabilidad en un archivo binario de un producto de software que puede ser distribuido ampliamente a través de muchas computadoras que se encuentran en una red, tal como la Internet. La carga, se logra normalmente desde una computadora acoplada al servidor de distribución 102 o desde un medio de almacenamiento portátil insertado en el servidor de distribución 102. En el bloque 504, se recibe un parche de seguridad configurado para corregir la vulnerabilidad de seguridad, mediante el servidor de distribución 102 en una forma similar a la firma binaria. En el bloque 506, la firma binaria y el parche de seguridad son distribuidos a una pluralidad de servidores subordinados 104 desde el servidor de distribución 102. Esta distribución ocurre en forma automática y se puede lograr en diversas formas. Por ejemplo, al recibir una firma binaria y un parche de seguridad cargados, el servidor de distribución 102 puede enviar en forma automática la firma binaria y el parche de seguridad a través de la red a todos los servidores subordinados 104 configurados para recibir las firmas binarias y parches de seguridad actualizados. El servidor de distribución 102, también debe enviar un aviso a los servidores 104 que indica que se ha descubierto una vulnerabilidad de seguridad y que está disponible un parche de seguridad para corregir la vulnerabilidad. Posteriormente los servidores subordinados 104 pueden solicitar que el servidor de distribución 102 envíe la firma binaria que identifica la vulnerabilidad de seguridad y el parche de seguridad. Al recibir una solicitud, el servidor de distribución 102 puede enviar la firma binaria y el parche de seguridad para solicitarlos a los servidores 102. La figura 6, muestra otro método de ejemplo 600 para implementar una detección y corrección automática de vulnerabilidades de seguridad en archivos binarios. En el bloque 602 del método 600, una computadora cliente 108 recibe una firma binaria desde un servidor 104. La firma binaria está asociada con una vulnerabilidad de seguridad en un archivo binario que puede estar presente en la computadora cliente 108. En el bloque 604, la computadora cliente 108 explora toda la información binaria actualmente disponible para ésta y compara el patrón(s) en la firma binaria con la información binaria. La información binaria explorada mediante la computadora cliente 108, normalmente está en la forma de instrucciones legibles y/o ejecutables en computadora/procesador, estructuras de datos, módulos de programa y otros datos útiles para la computadora cliente 108 y puede residir en medios de almacenamiento, tanto volátiles como no volátiles de diversos tipos. En el bloque 606, si la computadora cliente 108 encuentra un archivo binario que contiene la firma binaria, envía una solicitud al servidor 104 para que se tranfiera el parche de seguridad. En el bloque 608, la computadora cliente 108 recibe el parche de seguridad, y en el bloque 610, la computadora cliente 108 instala el parche de seguridad con el objeto de corregir la vulnerabilidad de seguridad en el archivo binario que contiene la información binaria que coincide con el patrón(s) que se encuentra en la firma binaria. Aunque se han descrito uno o más métodos por medio de diagramas de flujo y texto asociado con los bloques de los diagramas de flujo, quedará entendido que los bloques no tienen que realizarse necesariamente en el orden en el cual se presentaron, y que se pueden obtener ventajas similares en un orden alternativo. Además, los métodos no son exclusivos y se pueden llevar a cabo solos, o en combinación con otros. Computadora de Ejemplo La figura 7, ilustra un ambiente de cómputo de ejemplo adecuado para implementar un servidor de distribución 102, un servidor de exploración-parche 104 y una computadora cliente 108, tal como se describió anteriormente con referencia a las figuras de la 1 a la 3. Aunque en la figura 7 se muestra una configuración específica, el servidor de distribución 108, el servidor de exploración-parche 104 y la computadora cliente 108 puede implementarse en otras configuraciones de cómputo. El ambiente de cómputo 700 incluye un sistema de cómputo para propósitos generales en la forma de una computadora 702. Los componentes de la computadora 702 pueden incluir, pero no se limitan a, uno o más procesadores o unidades de procesamiento 704, una memoria del sistema 706 y un bus del sistema 708 que acopla diversos componentes del sistema incluyendo el procesador 704 a la memoria del sistema 706. El bus del sistema 708, representa uno o más de cualesquiera de diversos tipos de estructuras de bus, incluyéndo un bus de memoria o controlador de memoria, un bus periférico, un puerto de gráficos acelerado y un procesador o bus local que utiliza cualquiera de una variedad de arquitecturas de bus. Un ejemplo de un bus del sistema 708, podría ser un bus de Interconexión de Componentes Periféricos (PCI), también conocido como bus Mezzanine. La computadora 702 normalmente incluye una variedad de medios legibles en computadora. Dichos medios pueden ser cualquier medio disponible que sea accesible mediante la computadora 702 e incluye medios tanto volátiles como no volátiles, medios removibles y no removibles. La memoria del sistema 706 incluye medios legibles en computadora en la forma de memoria volátil, tal como memoria de acceso aleatorio (RAM) 710 y/o memoria no volátil, tal como memoria únicamente de lectura (ROM) 712. En la ROM 712, se almacena un sistema de entrada/salida básico (BIOS) 714, que contiene rutinas básicas que ayudan a la transferencia de información entre elementos dentro de la computadora 702, tal como durante el inicio. La RAM 710 normalmente contiene módulos de datos y/o programas que son inmediatamente accesibles para y/o que se operan mediante la unidad de procesamiento 704. La computadora 702 también puede incluir otros medios de almacenamiento en computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo, la figura 7 ilustra una unidad de disco duro 716 para leer y escribir en un medio magnético no removible, no volátil (no mostrado), una unidad de disco magnético 718 para leer y escribir en un disco magnético removible, no volátil 720 (por ejemplo, un "disco flexible") y una unidad de disco óptico 722 para leer y escribir en un disco óptico removible, no volátil 724, tal como un CD-ROM, DVD-ROM, u otros medios ópticos. La unidad de disco duro 716, la unidad de disco magnético 718 y la unidad de disco óptico 722 están conectadas cada una al bus del sistema 708 a través de una o más interfases de medios de datos 726. Como alternativa, la unidad de disco duro 716, la unidad de disco magnético 718 y la unidad de disco óptico 722 pueden estar conectadas al bus del sistema 708 a través de una interfase SCSI (no mostrada). Las unidades de disco y sus medios legibles en computadora asociados proporcionan almacenamiento no volátil de las instrucciones legibles en computadora, estructuras de datos, módulos de programa y otros datos de la computadora 702. Aunque el ejemplo ilustra un disco duro 716, un disco magnético removible 720 y un disco óptico removible 724, se puede apreciar que también se pueden utilizar otros tipos de medios legibles en computadora para impiementar el sistema y ambiente de cómputo de ejemplo, los cuales pueden almacenar datos que son accesibles mediante una computadora, tal como cintas magnéticas u otros dispositivos de almacenamiento magnético, tarjetas de memoria flash, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, memorias de acceso aleatorio (RAM), memorias únicamente de lectura (ROM), memoria únicamente de lectura programable eléctricamente borrable (EEPROM) y similares. Se puede almacenar cualquier número de módulos del programa en el disco duro 716, en el disco magnético 720, en el disco óptico 724, en la ROM 712 y/o RAM 710, incluyendo a manera de ejemplo, un sistema de operación 26, uno o más programas de aplicación 728, otros módulos del programa 730 y datos del programa 732. Cada uno de dichos sistemas de operación 726, uno o más programas de aplicación 728, otros módulos de programa 730 y datos del programa 723 (o alguna combinación de los mismos) pueden incluir una modalidad de un esquema de almacenamiento en memoria instantánea para la información de acceso a la red del usuario. La computadora 702 puede incluir una variedad de medios legibles en computadora/procesador identificados como medios de comunicación. Los medios de comunicación normalmente representan instrucciones legibles en computadora, estructuras de datos, módulos de programas y otros datos que se encuentran en una señal de datos modulada, tal como una onda transportadora u otro mecanismo de transporte e incluye medios de suministro de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características ajustadas o cargadas de tal forma que se codifique la información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados, tales como red cableada o conexión cableada-directa y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualesquiera de los anteriores, también están incluidas dentro del alcance del medio legible en computadora. Un usuario puede ingresar comandos e información en el sistema de computadora 702 a través de aparatos de ingreso tales como un teclado 734 y un aparato de señalización (por ejemplo, un "ratón"). Otros aparatos de ingreso 738 (no mostrados en forma específica) puede incluir un micrófono, joystick, almohadilla de juego, disco satelital, puerto de serie, escáner y/o similares. Estos y otros aparatos de ingreso están conectados a la unidad de procesamiento 704 mediante interfases de entrada/salida 714 que están acopladas al bus del sistema 708, pero pueden estar conectadas mediante otras estructuras de interfase y de bus, tal como un puerto paralelo, puerto de juegos o bus de serie universal (USB). También se puede conectar al bus del sistema 708 a través de una interfase, tal como un adaptador de video 744, un monitor 742 u otro tipo de aparato de despliegue. Además del monitor 742, otros aparatos periféricos de salida pueden incluir componentes tales como altavoces (no mostrados) y una impresora 746 la cual puede estar conectada a la computadora 702 a través de las interfases de entrada/salida 740. La computadora 702 puede operar en una ambiente en red utilizando conexiones lógicas hacia una o más computadoras remotas, tales como un aparato de cómputo remoto 748. A manera de ejemplo, el aparato de cómputo remoto 748 puede ser una computadora personal, computadora portátil, un servidor, un enrutador, una computadora en red, un aparato para escudriñar u otro nodo de red común, y similares. El aparato de cómputo remoto 748 se ilustra como una computadora portátil que puede incluir muchos o todos los elementos y características descritos en la presente invención, con relación al sistema de cómputo 702. La conexiones lógicas entre la computadora 702 y la computadora remota 748 se ilustran en la forma de una red de área local (LAN) 750 y una red de área amplia (WAN) 752. Tales ambientes de red son comunes en lugares como oficinas, redes de cómputo a nivel empresarial, intranets y la Internet. Cuando se implementan en un ambiente de red LAN, la computadora 702 se conecta a una red local 750 a través de una interfase de red o adaptador 754. Cuando se implementa en un ambiente de red WAN, la computadora 702 normalmente incluye un módem 756 u otros medios para establecer comunicaciones a través de la red amplia 752. El módem 756, el cual puede ser interno o externo a la computadora 702, puede conectarse al bus del sistema 708 a través de las interfases de entrada/salida 740 u otros mecanismos adecuados. Se podrá apreciar que las conexiones de red ilustradas son de ejemplo y que se pueden emplear otros medios para establecer enlaces de comunicación entre las computadoras 702 y 748. En un ambiente en red, tal como el que se ilustra con el ambiente de cómputo 700, los módulos de programa ilustrados con relación a la computadora 702 o parte de los mismos, se pueden almacenar en un dispositivo de almacenamiento de memoria remota. A manera de ejemplo, los programas de aplicación remota 758 residen en un dispositivo de memoria de la computadora remota 748. Para propósitos de ilustración, en la presente invención se ilustran los programas de aplicación y otros componentes del programa ejecutables, tales como el sistema de operación en la forma de bloques independientes, aunque se reconoce que dichos programas y componentes residen en diferentes tiempos en diferentes componentes de almacenamiento del sistema de cómputo 702, y son ejecutados a través del procesador(s) de datos de la computadora. Conclusión Aunque la presente invención ha sido descrita en un lenguaje específico de las características estructurales y/o acciones metodológicas, quedará entendido que la misma se define en las reivindicaciones adjuntas, y no está limitada necesariamente a las características o acciones específicas descritas. Más bien, las características y acciones específicas se describen como formas de ejemplo para implementar la invención reclamada.

Claims (1)

  1. R E I V I N D I C A C I O N E S 1.- Un medio legible en procesador que comprende instrucciones ejecutables en procesador configuradas para: recibir una firma binaria; recibir un parche de seguridad; identificar un archivo binario vulnerable en una computadora con base en la firma binaria; actualizar el archivo binario vulnerable en la computadora con el parche de seguridad. 2.- Un medio legible en procesador de conformidad con la reivindicación 1, caracterizado porque la identificación de un archivo binario vulnerable en una computadora incluye comparar un patrón de bits de la firma binaria contra archivos binarios localizados en la computadora, estando el patrón de bits asociado con una vulnerabilidad de seguridad. 3.- Un medio legible en procesador de conformidad con la reivindicación 1, caracterizado porque la actualización del archivo binario vulnerable en la computadora incluye la instalación del parche de seguridad en la computadora. 4.- Un medio legible en procesador de conformidad con la reivindicación 1, caracterizado porque la identificación de un archivo binario vulnerable en una computadora, incluye enviar la firma binaria a la computadora. 5.- Un medio legible en procesador de conformidad con la reivindicación 4, caracterizado porque la actualización del archivo binario vulnerable en la computadora incluye: recibir una solicitud de la computadora para enviar el archivo de seguridad; y enviar el archivo de seguridad a la computadora. 6.- Un medio legible en procesador de conformidad con la reivindicación 1, caracterizado porque la computadora es una computadora cliente y la recepción incluye recibir la firma binaria y el parche de seguridad desde un servidor de distribución configurado para distribuir a la computadora cliente, firmas binarias que identifican archivos vulnerables y parches de seguridad configurados para corregir los archivos vulnerables. 7. - Un servidor que comprende un medio legible en computadora de conformidad con la reivindicación 1. 8. - Un medio legible en procesador que comprende instrucciones ejecutables en procesador configuradas para: recibir una firma binaria que identifica una vulnerabilidad de seguridad en un archivo binario; recibir un parche de seguridad configurado para corregir la vulnerabilidad de seguridad en el archivo binario; y distribuir la firma binaria y el parche de seguridad a una pluralidad de servidores. 9. - Un medio legible en procesador de conformidad con la reivindicación 8, caracterizado porque la distribución incluye: enviar una noticia para cada pluralidad de servidores con respecto a la vulnerabilidad y seguridad del parche disponible; recibir una solicitud para enviar la firma binaria y el parche de seguridad; y enviar la firma binaria y el parche de seguridad en respuesta a la solicitud. 10. - Un servidor de distribución que comprende el medio legible en procesador, de conformidad con la reivindicación 8. 11. - Un medio legible en procesador que comprende instrucciones legibles en procesador configuradas para: recibir una firma binaria de un servidor; buscar la firma binaria en archivos binarios; enviar una solicitud al servidor de un parche de seguridad si se descubre que un archivo binario incluye la firma binaria; recibir el parche binario del servidor; y actualizar el archivo binario con el parche de seguridad. 12. - Una computadora cliente que comprende el medio legible en procesador de conformidad con la reivindicación 11. 13. - Un método que comprende: recibir una firma binaria; buscar un archivo vulnerable con base en la firma binaria; si se encuentra un archivo vulnerable, solicitar un parche de seguridad; y corregir el archivo vulnerable con el parche de seguridad. 14. - Un método de conformidad con la reivindicación 13, caracterizado porque el proceso de solicitud incluye enviar una solicitud a un servidor para el parche de seguridad, en donde el método comprende además recibir el parche de seguridad desde el servidor en respuesta a la solicitud. 15. - Un método de conformidad con la reivindicación 14, caracterizado porque el proceso de recepción incluye recibir la firma binaria del servidor. 16. - Un método de conformidad con la reivindicación 13, caracterizado porque el proceso de corrección incluye instalar el parche de seguridad en una computadora. 17. - Un método de conformidad con la reivindicación 13, caracterizado porque la búsqueda incluye comparar la firma binaria con una información binaria que se encuentra en un medio de almacenamiento de una computadora. 18. - Un método de conformidad con la reivindicación 17, caracterizado porque la información binaria se selecciona del grupo que comprende: un sistema de operación; un archivo de programas de aplicación; y un archivo de datos. 19. - Un método de conformidad con la reivindicación 17, caracterizado porque el medio de almacenamiento se selecciona del grupo que comprende: un disco duro; un disco flexible magnético; un disco óptico; una tarjeta de memoria flash; una memoria únicamente de lectura programable eléctricamente borrable; y un almacenamiento adherido a una red. 20. - Un método que comprende: recibir una firma binaria y un parche de seguridad desde un servidor de distribución; buscar en una computadora cliente un archivo vulnerable asociado con la firma binaria; y si se descubre un archivo vulnerable, corregir el archivo vulnerable con el parche de seguridad. 21. - Un método de conformidad con la reivindicación 20, caracterizado porque la búsqueda incluye transferir la firma binaria a la computadora cliente, estando configurada la computadora cliente para buscar un archivo vulnerable asociado con la firma binaria. 22. - Un método de conformidad con la reivindicación 21, caracterizado porque el proceso de arreglo incluye: recibir una solicitud de una computadora cliente para transferir el parche de seguridad, teniendo la computadora cliente localizado un archivo vulnerable; y transferir el parche de seguridad a la computadora cliente en respuesta a la solicitud. 23. - Una computadora que comprende: medios para recibir una firma binaria; medios para buscar un archivo vulnerable con base en la firma binaria; medios para solicitar un parche de seguridad que descubre un archivo vulnerable; y medios par corregir el archivo vulnerable con el parche de seguridad. 24. - Un servidor que comprende: medios para recibir una firma binaria y un parche de seguridad desde un servidor de distribución; medios para explorar una computadora cliente con respecto a un archivo vulnerable asociado con la firma binaria; y medios para corregir el archivo vulnerable con el parche de seguridad si se descubre un archivo vulnerable. 25. - Una computadora que comprende; información binaria; un módulo de exploración configurado para recibir una firma binaria y explorar la información binaria con respecto a la firma binaria; y un módulo de parche configurado para solicitar un parche de seguridad e instalar el mismo si se encuentra la firma binaria en la información binaria. 26 - Una computadora de conformidad con la reivindicación 25, caracterizada porque comprende además un medio de almacenamiento configurado para retener la información binaria. 27.- Una computadora de conformidad con la reivindicación 25, caracterizada porque la información binaria es seleccionada del grupo que comprende: un sistema de operación; un archivo de programa de aplicación; y un archivo de datos. 28 - Una computadora que comprende: archivos binarios; una firma binaria; y un módulo de parche de seguridad configurado para recibir la firma binaria de un servidor y para explorar los archivos binarios en la búsqueda de la firma binaria. 29 - Una computadora de conformidad con la reivindicación 28, caracterizada porque comprende además: un archivo binario que incluye la firma binaria; y un parche de seguridad; en donde el módulo del parche de seguridad está configurado en forma adicional para solicitar el parche de seguridad del servidor al localizar la firma binaria dentro del archivo binario, y aplicar el parche de seguridad al archivo binario. 30 - Un servidor de distribución que comprende: una base de datos; y un módulo de distribución configurado para recibir una firma binaria y un parche de seguridad, almacenar la firma binaria y el parche de seguridad en la base de datos y distribuir la firma binaria y el parche de seguridad en una pluralidad de servidores. 31.- Un servidor de distribución de conformidad con la reivindicación 30, caracterizado porque el módulo de distribución está configurado en forma adicional para recibir una solicitud de un servidor de la firma binaria y el parche de seguridad, y distribuir la firma binaria del parche de seguridad al servidor en respuesta a la solicitud. 32 - Un servidor que comprende: una firma binaria asociada con una vulnerabilidad de seguridad en un archivo binario; un parche de seguridad configurado para corregir la vulnerabilidad de seguridad en el archivo binario; y un módulo de exploración configurado para explorar archivos binarios en una computadora cliente con respecto a la firma binaria y actualizar el archivo binario con el parche de seguridad, si se encuentra la firma binaria. 33.- Un servidor de conformidad con la reivindicación 32, caracterizado porque comprende además: una base de datos; estando configurado en forma adicional el módulo de exploración, para recibir la firma binaria y el parche de seguridad de un servidor de distribución y para almacenar la firma binaria y el parche de seguridad en la base de datos. R E S U M EN Se describen sistemas y métodos que permiten corregir vulnerabilidades de seguridad en archivos binarios. La detección y la corrección de archivos binarios vulnerables es automática, completa, confiable y libre de regresión a través de redes en una escala no limitada. Estas ventajas pueden considerarse en diversas formas que incluyen, por ejemplo, apalancamiento de la infraestructura antivirus actual que se despliega ampliamente a través de la Internet. Se logra el descubrimiento confiable de archivos binarios vulnerables (por ejemplo, en sistemas de operación, programas de aplicación, etc.) a través del uso de firmas binarias que han sido asociadas con vulnerabilidades de seguridad descubiertas. Una divergencia de los parches de seguridad que no están dentro de los paquetes de servicio convencionales, proporciona la posibilidad de producir correcciones libres de regresión de vulnerabilidades de seguridad en archivos binarios.
MXPA04006784A 2003-07-16 2004-07-13 Deteccion y correccion automatica de programas de archivos vulnerables. MXPA04006784A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/621,148 US7424706B2 (en) 2003-07-16 2003-07-16 Automatic detection and patching of vulnerable files

Publications (1)

Publication Number Publication Date
MXPA04006784A true MXPA04006784A (es) 2005-03-23

Family

ID=33552851

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04006784A MXPA04006784A (es) 2003-07-16 2004-07-13 Deteccion y correccion automatica de programas de archivos vulnerables.

Country Status (18)

Country Link
US (1) US7424706B2 (es)
EP (1) EP1505499A1 (es)
JP (1) JP4652736B2 (es)
KR (1) KR101231410B1 (es)
CN (1) CN1577272B (es)
AU (1) AU2004202974B2 (es)
BR (1) BRPI0402767A (es)
CA (1) CA2471998A1 (es)
CO (1) CO5600216A1 (es)
IL (1) IL162642A (es)
MX (1) MXPA04006784A (es)
MY (1) MY150114A (es)
NO (1) NO337222B1 (es)
NZ (1) NZ533661A (es)
RU (1) RU2358313C2 (es)
SG (1) SG139545A1 (es)
TW (1) TWI354887B (es)
ZA (1) ZA200405076B (es)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
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
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9350752B2 (en) 2003-07-01 2016-05-24 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
US8266699B2 (en) * 2003-07-01 2012-09-11 SecurityProfiling Inc. Multiple-path remediation
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
US7386883B2 (en) * 2003-07-22 2008-06-10 International Business Machines Corporation Systems, methods and computer program products for administration of computer security threat countermeasures to a computer system
US20050097199A1 (en) * 2003-10-10 2005-05-05 Keith Woodard Method and system for scanning network devices
US8990366B2 (en) * 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US20050223292A1 (en) * 2004-02-17 2005-10-06 Lee Chee S Single instruction type based hardware patch controller
US8051483B2 (en) 2004-03-12 2011-11-01 Fortinet, Inc. Systems and methods for updating content detection devices and systems
US7761920B2 (en) * 2004-09-03 2010-07-20 Fortinet, Inc. Data structure for policy-based remediation selection
US7665119B2 (en) 2004-09-03 2010-02-16 Secure Elements, Inc. Policy-based selection of remediation
US7774848B2 (en) * 2004-07-23 2010-08-10 Fortinet, Inc. Mapping remediation to plurality of vulnerabilities
US8171555B2 (en) 2004-07-23 2012-05-01 Fortinet, Inc. Determining technology-appropriate remediation for vulnerability
US7703137B2 (en) * 2004-09-03 2010-04-20 Fortinet, Inc. Centralized data transformation
US7672948B2 (en) * 2004-09-03 2010-03-02 Fortinet, Inc. Centralized data transformation
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
US7343599B2 (en) * 2005-01-03 2008-03-11 Blue Lane Technologies Inc. Network-based patching machine
US20060185018A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Systems and methods for shielding an identified vulnerability
DE102005030590B4 (de) * 2005-06-30 2011-03-24 Advanced Micro Devices, Inc., Sunnyvale Sicheres Patchsystem
JP4770306B2 (ja) * 2005-07-12 2011-09-14 日本電気株式会社 端末セキュリティチェックサービス提供方法及びそのシステム
US8272058B2 (en) * 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) * 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8984636B2 (en) * 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US20070028291A1 (en) * 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
US8132164B1 (en) * 2005-08-01 2012-03-06 Mcafee, Inc. System, method and computer program product for virtual patching
US8245216B2 (en) * 2005-10-11 2012-08-14 Oracle International Corporation Patch management system
US8484725B1 (en) * 2005-10-26 2013-07-09 Mcafee, Inc. System, method and computer program product for utilizing a threat scanner for performing non-threat-related processing
US7784034B1 (en) 2005-12-21 2010-08-24 Mcafee, Inc. System, method and computer program product for hooking a COM interface
US8739288B2 (en) * 2007-07-31 2014-05-27 Hewlett-Packard Development Company, L.P. Automatic detection of vulnerability exploits
US8347277B2 (en) * 2007-08-17 2013-01-01 International Business Machines Corporation Verifying that binary object file has been generated from source files
US8181173B2 (en) * 2007-10-12 2012-05-15 International Business Machines Corporation Determining priority for installing a patch into multiple patch recipients of a network
US20090144828A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Rapid signatures for protecting vulnerable browser configurations
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US8990360B2 (en) 2008-02-22 2015-03-24 Sonos, Inc. System, method, and computer program for remotely managing a digital device
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US20100007489A1 (en) * 2008-07-10 2010-01-14 Janardan Misra Adaptive learning for enterprise threat managment
US20100153942A1 (en) * 2008-12-12 2010-06-17 Lazar Borissov Method and a system for delivering latest hotfixes with a support package stack
KR101052734B1 (ko) * 2009-02-03 2011-07-29 주식회사 안철수연구소 응용 프로그램 패치 장치 및 방법
CN101551773B (zh) * 2009-03-12 2012-04-25 南京大学 符号错误和赋值截断的二进制漏洞检测定位装置
CN101526984B (zh) * 2009-03-16 2012-05-30 腾讯科技(北京)有限公司 一种修复漏洞的方法及装置
RU2422877C1 (ru) * 2009-11-16 2011-06-27 Виталий Евгеньевич Пилкин Способ обозначения инфицированных электронных файлов
US8484753B2 (en) 2009-12-02 2013-07-09 Mcafee, Inc. Hooking nonexported functions by the offset of the function
EP2362314A1 (en) * 2010-02-18 2011-08-31 Thomson Licensing Method and apparatus for verifying the integrity of software code during execution and apparatus for generating such software code
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US9268945B2 (en) 2010-03-19 2016-02-23 Contrast Security, Llc Detection of vulnerabilities in computer systems
US8479188B2 (en) 2010-07-08 2013-07-02 Microsoft Corporation Binary code change vulnerability prioritization
EP2413257B1 (en) 2010-07-26 2017-04-26 Sony DADC Austria AG Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
US8726388B2 (en) * 2011-05-16 2014-05-13 F-Secure Corporation Look ahead malware scanning
US8931102B2 (en) * 2011-06-01 2015-01-06 International Business Machines Corporation Testing web applications for file upload vulnerabilities
US20130104119A1 (en) * 2011-10-24 2013-04-25 Brian Matsuo Streaming packetized binary patching system and method
CN103930898B (zh) 2011-11-15 2016-10-12 国立研究开发法人科学技术振兴机构 程序分析/验证服务提供系统及其控制方法、程序分析/验证装置、程序分析/验证工具管理装置
US20140366084A1 (en) * 2012-01-25 2014-12-11 Nec Corporation Management system, management method, and non-transitory storage medium
CN103049701A (zh) * 2012-11-30 2013-04-17 南京翰海源信息技术有限公司 基于内存搜索的shellcode的检测系统及方法
US8997082B1 (en) * 2013-07-16 2015-03-31 Amazon Technologies, Inc. Differential patch of content
RU2568295C2 (ru) * 2013-08-07 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ временной защиты операционной системы программно-аппаратных устройств от приложений, содержащих уязвимости
WO2015048282A1 (en) * 2013-09-25 2015-04-02 Veracode, Inc. A system and method for automated remedying of security vulnerabilities
US10296884B2 (en) 2013-09-30 2019-05-21 Sonos, Inc. Personalized media playback at a discovered point-of-sale display
US9241355B2 (en) 2013-09-30 2016-01-19 Sonos, Inc. Media system access via cellular network
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9075990B1 (en) * 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
KR101695639B1 (ko) * 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9767290B2 (en) * 2015-03-05 2017-09-19 Fujitsu Limited Autonomous reasoning system for vulnerability analysis
US11522901B2 (en) 2016-09-23 2022-12-06 OPSWAT, Inc. Computer security vulnerability assessment
US9749349B1 (en) * 2016-09-23 2017-08-29 OPSWAT, Inc. Computer security vulnerability assessment
TWI622894B (zh) 2016-12-13 2018-05-01 宏碁股份有限公司 電子裝置及偵測惡意檔案的方法
GB2563618B (en) * 2017-06-20 2020-09-16 Arm Ip Ltd Electronic system vulnerability assessment
US10540496B2 (en) 2017-09-29 2020-01-21 International Business Machines Corporation Dynamic re-composition of patch groups using stream clustering
KR102424357B1 (ko) 2017-10-24 2022-07-25 삼성전자주식회사 부채널 공격으로부터 정보를 보호하는 방법 및 디바이스
US20190138293A1 (en) * 2017-11-09 2019-05-09 Venuetize LLC Pattern recognition platform
KR101955356B1 (ko) 2017-12-08 2019-03-07 한국인터넷진흥원 취약 함수 사용에 의한 취약점을 보완하기 위한 바이너리 패치 장치 및 그 방법
US10984110B2 (en) 2018-03-20 2021-04-20 ReFirm Labs, Inc. Evaluation of security of firmware
US10943015B2 (en) * 2018-03-22 2021-03-09 ReFirm Labs, Inc. Continuous monitoring for detecting firmware threats
WO2019216926A1 (en) 2018-05-07 2019-11-14 Google Llc System for adjusting application performance based on platform level benchmarking
US10846080B2 (en) 2018-09-06 2020-11-24 International Business Machines Corporation Cooperative updating of software
KR101995285B1 (ko) 2018-10-31 2019-07-02 한국인터넷진흥원 취약점이 존재하는 바이너리 패치 방법 및 그 장치
CN109828772B (zh) * 2019-02-19 2022-03-11 百度在线网络技术(北京)有限公司 热更新方法、操作系统、终端设备和存储介质
KR102070010B1 (ko) 2019-02-28 2020-01-29 한국인터넷진흥원 취약 함수 사용에 의한 취약점을 보완하기 위한 바이너리 패치 장치 및 그 방법
EP3745291B1 (en) * 2019-05-29 2024-05-08 F. Hoffmann-La Roche AG Interface proxy device for cyber security
WO2020249572A1 (en) * 2019-06-12 2020-12-17 NEC Laboratories Europe GmbH Method and contract rewriting framework system for supporting smart contracts in a blockchain network
US11100233B2 (en) 2019-06-26 2021-08-24 International Business Machines Corporation Optimizing operating system vulnerability analysis
CN113672929A (zh) * 2020-05-14 2021-11-19 阿波罗智联(北京)科技有限公司 漏洞特征获取方法、装置及电子设备
US11777984B1 (en) * 2020-09-04 2023-10-03 Wells Fargo Bank, N.A. Automatic threat detection and remediation
US11556330B2 (en) 2020-11-24 2023-01-17 Kyndryl, Inc. Analysis and implementation of security updates
CN113852602B (zh) * 2021-08-11 2023-12-08 奇安信科技集团股份有限公司 文件重建方法、装置,传输设备,电子设备及介质
US20230315438A1 (en) * 2022-03-30 2023-10-05 Kyndryl, Inc. Contextually cognitive edge server manager

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
US5675711A (en) * 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US5930504A (en) * 1996-07-22 1999-07-27 Intel Corporation Dynamic nonvolatile memory update in a computer system
US6016546A (en) * 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
AU3781399A (en) 1998-04-30 1999-11-16 Bindview Development Corporation Computer security
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
EP1337917A4 (en) * 2000-11-17 2009-04-08 Hewlett Packard Development Co SYSTEM AND METHOD FOR UPDATING AND DISTRIBUTING INFORMATION
KR20030035142A (ko) * 2001-10-30 2003-05-09 주식회사 이글루시큐리티 통합보안관리 서비스 방법
GB2381721B (en) 2001-10-31 2005-02-23 Hewlett Packard Co System and method of defining unauthorized intrusions on a computer system
WO2003058457A1 (en) * 2001-12-31 2003-07-17 Citadel Security Software Inc. Automated computer vulnerability resolution system
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files

Also Published As

Publication number Publication date
CN1577272B (zh) 2011-01-12
JP2005038428A (ja) 2005-02-10
IL162642A0 (en) 2005-11-20
TWI354887B (en) 2011-12-21
BRPI0402767A (pt) 2005-03-08
NZ533661A (en) 2005-05-27
US7424706B2 (en) 2008-09-09
AU2004202974B2 (en) 2009-12-03
KR101231410B1 (ko) 2013-02-07
US20050015760A1 (en) 2005-01-20
MY150114A (en) 2013-11-29
SG139545A1 (en) 2008-02-29
KR20050009198A (ko) 2005-01-24
TW200508849A (en) 2005-03-01
RU2358313C2 (ru) 2009-06-10
JP4652736B2 (ja) 2011-03-16
EP1505499A1 (en) 2005-02-09
NO20042970L (no) 2005-01-17
CO5600216A1 (es) 2006-01-31
CN1577272A (zh) 2005-02-09
ZA200405076B (en) 2005-06-03
IL162642A (en) 2010-12-30
CA2471998A1 (en) 2005-01-16
RU2004118827A (ru) 2006-01-10
NO337222B1 (no) 2016-02-15
AU2004202974A1 (en) 2005-02-03

Similar Documents

Publication Publication Date Title
MXPA04006784A (es) Deteccion y correccion automatica de programas de archivos vulnerables.
US10055576B2 (en) Detection of malicious software packages
US8505069B1 (en) System and method for updating authorized software
RU2568295C2 (ru) Система и способ временной защиты операционной системы программно-аппаратных устройств от приложений, содержащих уязвимости
EP2501100B1 (en) Quarantine network system
KR101137157B1 (ko) 효과적 패칭
KR101183305B1 (ko) 효과적 패칭
US8099378B2 (en) Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection
US8250569B1 (en) Systems and methods for selectively blocking application installation
US7904727B2 (en) Method to control access between network endpoints based on trust scores calculated from information system component analysis
US9727352B2 (en) Utilizing history of changes associated with software packages to manage computing systems
US20120071446A1 (en) Dosage regimen of an s1p receptor agonist
US8561180B1 (en) Systems and methods for aiding in the elimination of false-positive malware detections within enterprises
US20060117184A1 (en) Method to control access between network endpoints based on trust scores calculated from information system component analysis
US8898778B2 (en) System, method, and computer program product for identifying vulnerabilities associated with data loaded in memory
KR20060045810A (ko) 효과적 패칭
CN103329093A (zh) 更新软件
US8656494B2 (en) System and method for optimization of antivirus processing of disk files
CN111052117B (zh) 在没有多元化创作的情况下安全地定义操作系统组成
WO2006058313A2 (en) Method to control access between network endpoints based on trust scores calculated from information system component analysis
EP2754079B1 (en) Malware risk scanner
US8074205B2 (en) Binary verification service

Legal Events

Date Code Title Description
FG Grant or registration
HH Correction or change in general