ES2907777T3 - Dispositivo de almacenamiento seguro - Google Patents

Dispositivo de almacenamiento seguro Download PDF

Info

Publication number
ES2907777T3
ES2907777T3 ES18749348T ES18749348T ES2907777T3 ES 2907777 T3 ES2907777 T3 ES 2907777T3 ES 18749348 T ES18749348 T ES 18749348T ES 18749348 T ES18749348 T ES 18749348T ES 2907777 T3 ES2907777 T3 ES 2907777T3
Authority
ES
Spain
Prior art keywords
storage
hardware processor
access request
response
data packet
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.)
Active
Application number
ES18749348T
Other languages
English (en)
Inventor
Sandor Lukacs
Dan-Cristian Turicu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bitdefender IPR Management Ltd
Original Assignee
Bitdefender IPR Management Ltd
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 Bitdefender IPR Management Ltd filed Critical Bitdefender IPR Management Ltd
Application granted granted Critical
Publication of ES2907777T3 publication Critical patent/ES2907777T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Refuse Collection And Transfer (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un sistema informático que comprende un primer procesador de hardware [16] y un dispositivo de almacenamiento seguro [24], el dispositivo de almacenamiento seguro [24] conectado al primer procesador de hardware [16] a través de una interfaz de almacenamiento [36] configurada para recibir solicitudes de acceso al almacenamiento formateadas según un protocolo de transmisión de almacenamiento, en donde el dispositivo de almacenamiento seguro [24] comprende un segundo procesador de hardware [116] y una unidad de almacenamiento no volátil [30], y en donde: el primer procesador de hardware [16] está configurado para: en respuesta a la detección de una solicitud por el software que se ejecuta en el primer procesador de hardware [16] para almacenar un paquete de datos en la unidad de almacenamiento [30], cifrar el paquete de datos, en respuesta al cifrado del paquete de datos, transmitir una solicitud de acceso al almacenamiento real a la interfaz de almacenamiento [36], la solicitud de acceso al almacenamiento real que comprende el paquete de datos cifrado, generar una solicitud de acceso al almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso al almacenamiento ficticia que comprende al menos una parte de una clave criptográfica, y transmitir la solicitud de acceso al almacenamiento ficticio a la interfaz de almacenamiento [36]; y el segundo procesador de hardware [116] está configurado para: en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento [36], determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia; en respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, determinar la clave criptográfica según la solicitud de acceso al almacenamiento ficticia, en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, emplear la clave criptográfica para descifrar el paquete de datos, y determinar si el paquete de datos descifrado incluye software malicioso.

Description

DESCRIPCIÓN
Dispositivo de almacenamiento seguro
Solicitudes relacionadas
Esta solicitud reivindica el beneficio de la fecha de presentación de la solicitud de patente provisional de EE.UU. N° 62541 505, presentada el 08/04/2017, titulada "Secure Storage Device".
Antecedentes
La invención se refiere a la seguridad informática y, en particular, a la protección de un ordenador frente a software malicioso (malware).
El software malicioso afecta a un gran número de sistemas informáticos en todo el mundo. En sus muchas formas, tales como virus informáticos, gusanos, herramientas de sustitución de ficheros del sistema raíz y software espía, el malware presenta un grave riesgo para millones de usuarios de ordenadores, haciéndolos vulnerables a la pérdida de datos e información confidencial, robo de identidad y pérdida de productividad, entre otros. El software de secuestro es un tipo de malware particularmente peligroso que cifra un conjunto de archivos encontrados en un medio de almacenamiento, tal como el disco duro de un ordenador, y luego le pide al propietario de los archivos que pague para recuperar los datos respectivos.
El software antimalware se puede usar para detectar y/o desactivar software malicioso. Sin embargo, el malware emplea varias estrategias para evadir la detección. Una de estas estrategias implica la ofuscación, por ejemplo, cifrar el código malicioso o usar versiones de código ligeramente diferentes en cada ordenador infectado (una característica comúnmente conocida como polimorfismo). Otro método ejemplar para evitar la detección divide las actividades maliciosas entre una pluralidad de agentes, en donde cada agente realiza un conjunto separado de acciones, que no se pueden considerar indicativas de malware cuando se toman de forma aislada.
Algunas estrategias antimalware están dirigidas a proteger los dispositivos de almacenamiento de hardware en sí mismos. En un ejemplo tal descrito en la solicitud de patente de EE.UU. N° 2013/0340088 A1 de Thadikaran et al., se puede establecer una conexión fiable entre un ordenador central y un controlador de múltiples dispositivos de almacenamiento. La solución descrita utiliza además comunicaciones cifradas a través de la conexión de confianza para socavar los intentos del malware de preservar ubicaciones infectadas en los dispositivos de almacenamiento. En otro ejemplo descrito en la solicitud de patente de EE.UU. N° 2014/0188803 A1 de James et al., un dispositivo puede identificar archivos recientemente utilizados almacenados en el dispositivo respectivo, y un motor de sincronización puede sincronizar automáticamente estos archivos con uno o más dispositivos adicionales. Otra estrategia antimalware descrita en la patente europea N° 2596596 de Kalan et al. comprende el aprovisionamiento automático de un aparato para proporcionar servicios de seguridad tales como el cifrado de correo electrónico y otros mensajes electrónicos.
Por lo tanto, existe un gran interés en desarrollar sistemas y métodos robustos para proteger los datos almacenados digitalmente contra robos y modificaciones no autorizadas, incluyendo por software malicioso.
Compendio
Según un aspecto, un sistema informático comprende un primer procesador de hardware y un dispositivo de almacenamiento seguro, el dispositivo de almacenamiento seguro conectado al primer procesador de hardware a través de una interfaz de almacenamiento configurada para recibir solicitudes de acceso de almacenamiento formateadas según un protocolo de transmisión de almacenamiento. El dispositivo de almacenamiento seguro comprende un segundo procesador de hardware y una unidad de almacenamiento no volátil. El primer procesador de hardware está configurado, en respuesta a la detección de una solicitud por parte del software que se ejecuta en el primer procesador de hardware para almacenar un paquete de datos en la unidad de almacenamiento, para cifrar el paquete de datos. El primer procesador de hardware está configurado además, en respuesta al cifrado del paquete de datos, para transmitir una verdadera solicitud de acceso al almacenamiento a la interfaz de almacenamiento, la verdadera solicitud de acceso al almacenamiento que comprende el paquete de datos cifrado. El primer procesador de hardware está configurado además para generar una solicitud de acceso al almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso al almacenamiento ficticia que comprende al menos una parte de una clave criptográfica, y para transmitir la solicitud de acceso al almacenamiento ficticia a la interfaz de almacenamiento. El segundo procesador de hardware está configurado, en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento, para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia. En respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, el segundo procesador de hardware se configura para determinar la clave criptográfica según la solicitud de acceso al almacenamiento ficticia. El segundo procesador de hardware está configurado además, en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, para emplear la clave criptográfica para descifrar el paquete de datos y para determinar si el paquete de datos descifrado comprende software malicioso.
Según otro aspecto, un dispositivo de almacenamiento seguro comprende un primer procesador de hardware y una unidad de almacenamiento no volátil, el dispositivo de almacenamiento seguro configurado para conectarse a un segundo procesador de hardware a través de una interfaz de almacenamiento configurada para recibir solicitudes de acceso al almacenamiento formateadas según un protocolo de transmisión de almacenamiento. El segundo procesador de hardware está configurado, en respuesta a la detección de una solicitud por parte del software que se ejecuta en el segundo procesador de hardware para almacenar un paquete de datos en la unidad de almacenamiento, para cifrar el paquete de datos. El segundo procesador de hardware está configurado además, en respuesta al cifrado del paquete de datos, para transmitir una verdadera solicitud de acceso al almacenamiento a la interfaz de almacenamiento, la verdadera solicitud de acceso al almacenamiento que comprende el paquete de datos cifrado. El segundo procesador de hardware está configurado además para generar una solicitud de acceso al almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso al almacenamiento ficticia que comprende al menos una parte de una clave criptográfica, y para transmitir la solicitud de acceso al almacenamiento ficticia a la interfaz de almacenamiento. El primer procesador de hardware está configurado, en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento, para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia. En respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, el primer procesador de hardware está configurado para determinar la clave criptográfica según la solicitud de acceso al almacenamiento ficticia. El primer procesador de hardware está configurado además, en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, para emplear la clave criptográfica para descifrar el paquete de datos y determinar si el paquete de datos descifrado comprende software malicioso.
Según otro aspecto, un método de seguridad informática comprende conectar un dispositivo de almacenamiento seguro a un primer procesador de hardware a través de una interfaz de almacenamiento configurada para recibir solicitudes de acceso al almacenamiento formateadas según un protocolo de transmisión de almacenamiento, en donde el dispositivo de almacenamiento seguro comprende un segundo procesador de hardware y un unidad de almacenamiento no volátil. El método comprende además, en respuesta a la detección de una solicitud por parte del software que se ejecuta en el primer procesador de hardware para almacenar un paquete de datos en la unidad de almacenamiento, emplear el primer procesador de hardware para cifrar el paquete de datos. El método comprende además, en respuesta al cifrado del paquete de datos, emplear el primer procesador de hardware para transmitir una verdadera solicitud de acceso al almacenamiento a la interfaz de almacenamiento, la verdadera solicitud de acceso al almacenamiento que comprende el paquete de datos cifrado. El método comprende además emplear el primer procesador de hardware para generar una solicitud de acceso al almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso al almacenamiento ficticia que comprende al menos una parte de una clave criptográfica, y emplear el primer procesador de hardware para transmitir la solicitud de acceso al almacenamiento ficticia a la interfaz de almacenamiento. El método comprende además, en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento, emplear el segundo procesador de hardware para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia. En respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, el método comprende además emplear el segundo procesador de hardware para emplear la clave criptográfica para descifrar el paquete de datos; y emplear el segundo procesador de hardware para determinar si el paquete de datos descifrado comprende software malicioso.
Breve descripción de los dibujos
Los aspectos y ventajas anteriores de la presente invención llegarán a ser entendidos mejor tras la lectura de la siguiente descripción detallada y tras la referencia a los dibujos donde:
La Figura 1 ilustra una configuración de hardware ejemplar de un sistema de ordenador central protegido contra amenazas a la seguridad informática según algunas realizaciones de la presente invención.
La Figura 2 muestra una configuración de hardware ejemplar de un dispositivo de almacenamiento seguro según algunas realizaciones de la presente invención.
La Figura 3-A muestra componentes de software ejemplares que se ejecutan en un sistema de ordenador central protegido según algunas realizaciones de la presente invención.
La Figura 3-B ilustra un conjunto alternativo de componentes de software según algunas realizaciones de la presente invención.
La Figura 4 muestra componentes de software ejemplares que se ejecutan dentro del dispositivo de almacenamiento seguro según algunas realizaciones de la presente invención.
La Figura 5 muestra un conjunto ejemplar de pasos llevados a cabo por el módulo de seguridad informática (CSM) de las Figuras 3-A-B según algunas realizaciones de la presente invención.
La Figura 6 muestra una secuencia ejemplar de pasos llevados a cabo por el software que se ejecuta dentro del dispositivo de almacenamiento seguro, según algunas realizaciones de la presente invención.
La Figura 7 ilustra una secuencia ejemplar de pasos realizados por el software que se ejecuta dentro del dispositivo de almacenamiento seguro para mantener un mapa semántico de almacenamiento según algunas realizaciones de la presente invención.
Descripción detallada de realizaciones preferidas
En la siguiente descripción, se entiende que todas las conexiones mencionadas entre estructuras pueden ser conexiones operativas directas o conexiones operativas indirectas a través de estructuras intermedias. Un conjunto de elementos incluye uno o más elementos. Cualquier recitación de un elemento se entiende que se refiere a al menos un elemento. Una pluralidad de elementos incluye al menos dos elementos. A menos que se requiera lo contrario, no es necesario que los pasos del método descritos se realicen necesariamente en un orden ilustrado particular. Un primer elemento (por ejemplo, datos) derivado de un segundo elemento abarca un primer elemento igual al segundo elemento, así como un primer elemento generado procesando el segundo elemento y, opcionalmente, otros datos. Tomar una determinación o decisión según un parámetro abarca tomar la determinación o decisión según el parámetro y opcionalmente según otros datos. A menos que se especifique lo contrario, un indicador de alguna cantidad/dato puede ser la cantidad/dato en sí mismo, o un indicador diferente de la cantidad/dato en sí mismo. Un programa informático es una secuencia de instrucciones del procesador que llevan a cabo una tarea. Los programas informáticos descritos en algunas realizaciones de la presente invención pueden ser entidades o subentidades de software independientes (por ejemplo, subrutinas, bibliotecas) de otros programas informáticos. Los medios legibles por ordenador abarcan medios no transitorios tales como medios de almacenamiento magnéticos, ópticos y de semiconductores (por ejemplo, discos duros, discos ópticos, memoria flash, DRAM), así como enlaces de comunicación tales como cables conductores y enlaces de fibra óptica. Según algunas realizaciones, la presente invención proporciona, entre otros, sistemas informáticos que comprenden hardware (por ejemplo, uno o más procesadores) programados para realizar los métodos descritos en la presente memoria, así como instrucciones de codificación de medios legibles por ordenador para realizar los métodos descritos en la presente memoria.
La siguiente descripción ilustra realizaciones de la invención a modo de ejemplo y no necesariamente a modo de limitación.
La Figura 1 muestra una configuración de hardware ejemplar de un sistema de ordenador central 10 protegido contra amenazas de seguridad informática según algunas realizaciones de la presente invención. Los sistemas de ordenador central 10 ejemplares incluyen ordenadores (por ejemplo, un ordenador personal, un servidor corporativo, etc.), dispositivos informáticos móviles (por ejemplo, ordenadores portátiles, tabletas), dispositivos de telecomunicaciones (por ejemplo, teléfonos inteligentes), aparatos digitales (TV, consolas de juegos, etc.), dispositivos informáticos que se pueden llevar puestos (por ejemplo, relojes inteligentes), o cualquier otro dispositivo electrónico que tenga un procesador y una memoria, y que requiera protección de seguridad informática. Para simplificar, el sistema de ordenador central ilustrado es un sistema informático; la configuración de hardware de otros sistemas de ordenador central, tales como teléfonos móviles, relojes inteligentes, etc., puede diferir un poco de la configuración ilustrada.
El sistema de ordenador central 10 comprende un conjunto de dispositivos físicos, incluyendo un procesador de hardware 16 y una unidad de memoria 18. En algunas realizaciones, el procesador 16 comprende un dispositivo físico (por ejemplo, un microprocesador, un circuito integrado multinúcleo formado sobre un sustrato semiconductor, etc.) configurado para ejecutar operaciones computacionales y/o lógicas con un conjunto de señales y/o datos. En algunas realizaciones, tales operaciones se entregan al procesador 16 en forma de una secuencia de instrucciones del procesador (por ejemplo, código máquina u otro tipo de codificación). La unidad de memoria 18 puede comprender medios legibles por ordenador volátiles (por ejemplo, DRAM, SRAM) que almacenan instrucciones y/o datos a los que se accede o genera por el procesador 16.
Los dispositivos de entrada 20 pueden incluir dispositivos que permiten a un usuario introducir datos y/o instrucciones en el sistema de ordenador central 10, junto con las respectivas interfaces de hardware y/o adaptadores que hacen posible tal introducción. Los dispositivos de entrada ejemplares incluyen, entre otros, un botón, un teclado, un ratón, una palanca de mando, una pantalla táctil, un micrófono, una cámara, un controlador de juego, un sistema de detección de gestos y un sensor de detección de movimiento. Los dispositivos de salida 22 pueden incluir dispositivos de visualización, tales como monitores y altavoces, entre otros, así como interfaces/adaptadores de hardware, tales como tarjetas gráficas, permitiendo que el sistema de ordenador central 10 comunique datos a un usuario. En algunas realizaciones, los dispositivos de entrada 20 y dispositivos de salida 22 pueden compartir una pieza común de hardware, como en el caso de dispositivos de pantalla táctil. El adaptador o adaptadores de red 26 habilitan el sistema de ordenador central 10 para conectarse a una red de comunicación, tal como una red de área local (LAN) y/o a otros dispositivos/sistemas informáticos.
Un dispositivo de almacenamiento seguro 24 incluye medios legibles por ordenador que permiten el almacenamiento, la lectura y la escritura no volátiles de instrucciones de software y/u otros datos. Los dispositivos de almacenamiento 24 ejemplares incluyen dispositivos magnéticos, ópticos y de memoria flash, así como medios extraíbles tales como discos y unidades de CD y/o DVD. En algunas realizaciones, el dispositivo de almacenamiento seguro 24 está dotado de otros componentes de hardware y software configurados específicamente para mejorar la seguridad de los datos almacenados, como se muestra en detalle a continuación.
En algunas realizaciones, el concentrador del controlador 28 incluye la pluralidad de buses de sistema, periféricos y/o chipset, y/o toda la demás circuitería que permite la comunicación entre el procesador 16 y los dispositivos 18, 20, 22, 24, y 26. Componentes ejemplares del concentrador del controlador 28 incluyen un controlador de memoria, un controlador de entrada/salida (I/O) y un controlador de interrupción. Dependiendo del fabricante de hardware y el dispositivo, algunos o todos de tales controladores se pueden incorporar en un solo circuito integrado y/o se pueden integrar con el procesador 16. En algunas realizaciones, algunos otros dispositivos, tales como adaptadores de gráficos que forman parte de los dispositivos de salida 22, también se puede integrar con el procesador 16.
La Figura 2 muestra una configuración de hardware ejemplar de un dispositivo de almacenamiento seguro 24 según algunas realizaciones de la presente invención. Algunas realizaciones mitigan el riesgo que representa el software malicioso emparejando un dispositivo de almacenamiento convencional - un dispositivo de almacenamiento principal 30 (por ejemplo, unidad magnética o de estado sólido) con un procesador de seguridad dedicado 116 separado del procesador principal del ordenador central 10. Este procesador auxiliar se puede integrar con la unidad de almacenamiento y/o hardware adicional en una placa de circuito impreso común que asume un factor de forma de disco duro convencional. En otra realización ejemplar, el dispositivo de almacenamiento seguro 24 puede estar empaquetado como un dispositivo de almacenamiento masivo externo (por ejemplo, una unidad flash, un disco duro externo), que puede conectarse al sistema de ordenador central a través de una interfaz convencional, como un bus serie universal (USB) o una interfaz/conector Thunderbolt®.
El almacenamiento principal 30 puede actuar como el dispositivo de almacenamiento de facto para el sistema de ordenador central 10. Como tal, el almacenamiento principal 30 puede almacenar código y/o datos que pertenecen a un sistema operativo y/u otras aplicaciones de software que se ejecutan en el procesador de ordenador central 16, así como los datos de un usuario como documentos, imágenes, archivos de sonido, etc.
El procesador de seguridad 116 comprende un circuito electrónico físico (por ejemplo, un circuito integrado formado sobre un sustrato semiconductor) configurado para realizar operaciones matemáticas y/o lógicas con un conjunto de señales y/o datos. En algunas realizaciones, el procesador 116 es un microprocesador genérico multipropósito del tipo utilizado como unidad central de procesamiento (CPU) en ordenadores personales y/o teléfonos móviles. Ejemplos de tales procesadores son los procesadores convencionales de fabricantes tales como Intel®, AMD® y ARM®. En una realización alternativa, el procesador 116 comprende un circuito electrónico personalizado, tal como un circuito integrado de aplicaciones específicas (ASIC) o una agrupación de puertas programables en campo (FPGA). Otras realizaciones de procesador 116 incluyen una unidad de procesamiento de gráficos (GPU) o una combinación de las anteriores. El uso de tales procesadores especializados puede ser ventajoso en el sentido de que su arquitectura se puede hacer y optimizar especialmente para computación paralela y ciertas tareas especializadas. Una arquitectura especializada paralela puede beneficiar aplicaciones tales como cifrado/descifrado, como se describe más adelante.
Componentes de hardware adicionales del dispositivo de almacenamiento seguro 24 pueden incluir una memoria de seguridad 118 que proporciona medios legibles por ordenador volátiles (por ejemplo, DRAM, SRAM) para almacenar instrucciones y/o datos a los que se accede o genera por el procesador 116. El dispositivo 24 puede comprender además un controlador de seguridad 34 representando genéricamente buses y/o toda la demás circuitería que interconecta los componentes de hardware del dispositivo 24. El dispositivo de almacenamiento seguro 24 puede conectarse además al concentrador del controlador 28 del sistema de ordenador central 10 por medio de una interfaz de almacenamiento 36 (por ejemplo, una interfaz y/o conector de Accesorio de AT en Serie - SATA o PCI Express).
En algunas realizaciones, el dispositivo de almacenamiento seguro 24 puede incluir además un dispositivo de almacenamiento secundario 32 que comprende medios legibles por ordenador no volátiles. En algunas realizaciones, el almacenamiento principal 30 y el almacenamiento secundario 32 se implementan como particiones lógicas distintas de un solo dispositivo físico de almacenamiento masivo - unidad magnética, óptica o de estado sólido. El almacenamiento secundario 32 puede ser invisible para el software que se ejecuta en el procesador 16, y solo puede ser accesible para el software que se ejecuta en el procesador de seguridad auxiliar 116. Tal aislamiento se puede lograr utilizando lógica de hardware (circuitería del controlador de seguridad 34) configurada para exponer un rango limitado de direcciones de almacenamiento al procesador de ordenador central 16.
El almacenamiento secundario 32 se puede usar para almacenar código de seguridad y datos tales como firmas indicativas de malware, entre otros. El almacenamiento secundario 32 puede almacenar además código para ser ejecutado por el procesador 116 al inicio (arranque). Algunas realizaciones del dispositivo de almacenamiento seguro 24 usan el almacenamiento secundario 32 para almacenar una codificación de un mapa semántico del sistema de archivos, como se muestra con más detalle a continuación. Otras realizaciones del almacenamiento 32 pueden almacenar copias parciales (por ejemplo, copias de seguridad) de datos almacenados en el almacenamiento principal 30.
En algunas realizaciones, el almacenamiento principal 30 y almacenamiento secundario 32 son direccionables a través de un conjunto de indicadores de ubicación (direcciones). Dependiendo de la implementación, el almacenamiento 30, 32 se puede dividir en unidades direccionables individuales, por ejemplo, sectores, bloques y/o grupos.
La Figura 3-A muestra componentes de software ejemplares que se ejecutan en el procesador de ordenador central 16 según algunas realizaciones de la presente invención. Un sistema operativo (OS) 40 comprende un conjunto de programas informáticos que proporcionan una interfaz entre el hardware del sistema de ordenador central 10 y otro software tal como las aplicaciones 41a-b. El OS 40 puede comprender cualquier sistema operativo ampliamente disponible, tal como Windows®, MacOS®, linux®, iOS® o Android®, entre otros. Las aplicaciones 41a-b representan genéricamente cualquier programa informático, incluyendo procesadores de texto, aplicaciones de hojas de cálculo, aplicaciones de imágenes, juegos, navegadores y aplicaciones de comunicación electrónica, entre otros.
Algunas realizaciones de la presente invención incluyen además un módulo de seguridad informática (CSM) 44 que comprende software que protege el sistema de ordenador central 10 contra malware. El CSM 44 puede incluir, por ejemplo, programas informáticos para detectar software malicioso y/o programas informáticos para incapacitar tal software. Tales componentes pueden emplear cualquier método conocido en la técnica de la seguridad informática. En algunas realizaciones, el CSM 44 comprende además un componente mediador de almacenamiento 42 que opera como una interfaz entre el OS 40 y el dispositivo de almacenamiento seguro 24. Un mediador de almacenamiento 42 ejemplar puede funcionar como un controlador de almacenamiento que permite la lectura y escritura de datos desde/hacia el almacenamiento principal 30. El mediador de almacenamiento 42 se puede configurar además para intercambiar mensajes y/o datos con el software que se ejecuta en el procesador de seguridad 116, como se muestra con más detalle a continuación.
La Figura 3-B muestra una realización alternativa que opera en un entorno de virtualización de hardware, por ejemplo, en una aplicación informática en la nube. Una máquina virtual (VM) es un término utilizado en la técnica para describir una emulación de un sistema informático/máquina física real, la VM capaz de ejecutar un sistema operativo y otras aplicaciones. Un hipervisor incluye software configurado para crear o habilitar una pluralidad de dispositivos virtualizados, tales como un procesador virtual y una MMU virtual, y para presentar tales dispositivos virtualizados al software en lugar de los dispositivos físicos reales del sistema de ordenador central 10. Tales operaciones se conocen comúnmente como exponer una máquina virtual. Los hipervisores pueden permitir la compartición de los recursos de hardware del sistema de ordenador central 10 por múltiples máquinas virtuales, y puede gestionar además tal multiplexación de modo que cada VM funcione de forma independiente y no sea consciente de que otras VM se ejecutan simultáneamente en el ordenador central respectivo. Ejemplos de hipervisores populares incluyen VMware vSphere™ de VMware Inc. y el hipervisor Xen de código abierto, entre otros. En la presente descripción, se dice que el software se ejecuta dentro de una máquina virtual cuando se ejecuta en un procesador virtual de la máquina virtual respectiva.
En la configuración ejemplar ilustrada en la Figura 3-B, un hipervisor 46 expone una VM invitada 48a. Un sistema operativo y un conjunto de aplicaciones de usuario se ejecutan dentro de una máquina virtual invitada 48a, mientras el CSM 44 se ejecuta dentro de una máquina virtual de seguridad dedicada 48b separado de la VM invitada 48a. En una realización alternativa a la Figura 3-B, el CSM 44 y/o mediador de almacenamiento 42 pueden comprender un conjunto de bibliotecas cargadas/llamadas por el hipervisor 46. Como tal, el CSM 44 y/o el mediador de almacenamiento 42 pueden ejecutar debajo de la VM invitada 48a, en un nivel de privilegio de procesador del hipervisor 46 (por ejemplo, anillo -1 o VMXroot en plataformas de Intel®). Configuraciones tales como las ilustradas en la Figura 3-B pueden ser preferibles a la ilustrada en la Figura 3-A debido a una mayor seguridad. Los entornos virtuales de la VM invitada 48a y la VM de seguridad 48b pueden estar relativamente bien aislados unos de otros, de modo que el software malicioso que se ejecuta dentro de la VM invitada 48a no pueda infectar ni interferir de otro modo con el software que se ejecuta dentro de la VM de seguridad 48b.
La Figura 4 muestra un conjunto ejemplar de componentes de software que se ejecutan dentro de un dispositivo de almacenamiento seguro 24 (es decir, en el procesador 116) según algunas realizaciones de la presente invención. El software ilustrado incluye un agente de seguridad de almacenamiento 50 y un motor criptográfico 52. El agente 50 se puede configurar para mantener un mapa semántico de sistema de archivos del almacenamiento principal 30 y aplicar un conjunto de heurísticas (por ejemplo, reglas de decisión) para determinar si una solicitud del software que se ejecuta en el procesador de ordenador central 16 para acceder al almacenamiento principal 30 es indicativo de una amenaza de seguridad informática. El motor 52 se puede configurar para realizar operaciones de cifrado y/o descifrado en paquetes de datos que llegan y/o proceden del almacenamiento principal 30. El funcionamiento de los componentes 50 y 52 se detallará a continuación.
En algunas realizaciones, el CSM 44 colabora con el software que se ejecuta dentro de un dispositivo de almacenamiento seguro 24 (por ejemplo, el agente de seguridad 50), por ejemplo, mediante el intercambio de notificaciones/señales a través de un canal de comunicación gestionado por un mediador de almacenamiento 42. Notificaciones ejemplares del procesador 16 al dispositivo de almacenamiento seguro 24 (a las que se hace referencia en la presente memoria como notificaciones de enlace descendente) incluyen un indicador de una operación a ser realizada por el procesador 116, y otros datos tales como un nombre de archivo, una clave de cifrado, un conjunto de banderas, etc. El CSM 44 también puede enviar notificaciones de enlace descendente en respuesta a ciertos eventos relevantes para la seguridad, como se detalla más adelante.
Un canal de comunicación ejemplar puede usar los medios regulares de transporte de datos entre un procesador y una unidad de almacenamiento masivo. Por ejemplo, el CSM 44 y el agente de seguridad 50 pueden intercambiar mensajes según un protocolo de transmisión de almacenamiento, tal como los protocolos de ATA en Serie o interfaz de sistemas informáticos pequeños (SCSI). El protocolo de transmisión de almacenamiento establece un formato de una comunicación a través de la interfaz de almacenamiento, el tamaño y el contenido de una trama/paquete, el recuento, el tamaño, el orden y/o el formato de las cabeceras y/o la carga útil, el significado de varios bits de control y campos de datos, la codificación de comandos, etc.
En algunas realizaciones, una notificación de enlace descendente se disfraza como una solicitud de acceso ficticia. Las solicitudes de acceso ficticias en la presente memoria se refieren a solicitudes de acceso al almacenamiento que están formateadas correctamente según el protocolo de comunicación (por ejemplo, comandos de SATA bien formados), pero no se supone que se lleven a cabo como tales, sino que se interpretan como notificaciones. El término "ficticio" se utiliza para distinguir tales solicitudes de las solicitudes de acceso al almacenamiento "verdaderas" o "genuinas" que representan operaciones de acceso al almacenamiento destinadas a ser llevadas a cabo como tales.
En algunas realizaciones, las solicitudes ficticias son solicitudes de acceso al almacenamiento no válidas, en el sentido de que la ejecución de una solicitud ficticia tal causa una excepción/fallo. En tales casos, un manejador de fallos puede interceptar el fallo respectivo y determinar la solicitud que causa el fallo respectivo como una notificación de enlace descendente. En otras realizaciones, las solicitudes ficticias no son defectuosas por sí mismas, sino que pueden comprender combinaciones específicas, inusuales o contradictorias de valores de parámetros (banderas). En aún otras realizaciones, las solicitudes ficticias pueden comprender solicitudes regulares válidas; tales solicitudes ficticias se pueden identificar como tales, por ejemplo, según el contenido de la carga útil o de otros campos de datos definidos por el protocolo de comunicación de almacenamiento.
Un ejemplo de solicitud de acceso ficticio comprende una solicitud para acceder a una dirección fuera de rango, es decir, una dirección fuera del rango direccionable normal del almacenamiento principal 30. Los ejemplos incluyen 'leer bloque B’, o 'escribir carga útil P en la dirección A', donde la dirección del bloque B y la dirección A están fuera del rango direccionable normal de almacenamiento principal 30. Cada una de tales direcciones (valor específico de A y/o B) puede corresponder a una instrucción o evento específico comunicado al software que se ejecuta dentro de un dispositivo de almacenamiento seguro 24. En otro ejemplo, las notificaciones de enlace descendente se pueden disfrazar como solicitudes para acceder al almacenamiento en una dirección a la que, aunque dentro del rango direccionable normal, no se accede comúnmente durante el funcionamiento normal. Por ejemplo, una solicitud para escribir en una ubicación de almacenamiento que contiene actualmente un registro de arranque maestro (MBR) o un componente crítico del OS (por ejemplo, NTOSKRNL.EXE en Windows®) se puede interceptar por un dispositivo de almacenamiento seguro 24 e interpretado como notificación de enlace descendente del CSM 44.
En otro ejemplo más, las solicitudes de acceso ficticias se pueden identificar según contenidos de carga útil específicos (por ejemplo, un patrón de bits o una firma en particular). En tales realizaciones, un componente de software que se ejecuta en el procesador de seguridad 116 puede analizar el contenido de la carga útil para detectar solicitudes de acceso ficticias. Varias cargas útiles P puede corresponder a varias notificaciones/instrucciones para el dispositivo de almacenamiento seguro 24.
En otro ejemplo más, las solicitudes de acceso ficticias se pueden identificar como tales según un contenido de otro campo de datos definido por el protocolo de comunicación de almacenamiento, por ejemplo, según el contenido de los campos 'Comando' y/o 'Auxiliar' especificados en el Protocolo de ATA en Serie. En un ejemplo tal, un comando para actualizar las firmas de malware se puede codificar en el campo "Comando" de una solicitud de acceso ficticia emitida por el CSM 44. Las firmas reales se pueden transmitir como la carga útil de otra solicitud de acceso ficticia. Algunos otros ejemplos de notificaciones de enlace descendente incluyen una instrucción para escanear datos almacenados en una ubicación de almacenamiento particular: la ubicación respectiva se puede codificar en la carga útil de una solicitud de acceso ficticia. En otro ejemplo más, las solicitudes de escritura ficticias que comprenden distintas direcciones A pueden indicar métodos o parámetros antimalware distintos. Cada dirección o rango de direcciones A puede indicar una heurística distinta o un grupo distinto de firmas indicativas de malware.
A su vez, mediador de almacenamiento 42 puede recibir notificaciones/señales del dispositivo 24 (al que se hace referencia en la presente memoria como notificaciones de enlace ascendente) a través de un reconocimiento y/u otra forma de respuesta a una notificación de enlace descendente, por ejemplo, a través de interrupciones de hardware - IRQ o notificaciones de SATA asíncronas enviadas por el dispositivo 24 y manejadas por el mediador de almacenamiento 42 y/o por otro manejador de eventos del OS 40. Las notificaciones de enlace ascendente ejemplares incluyen, entre otras, una alerta de seguridad, por ejemplo, un indicador de un probable ataque de software de secuestro y un indicador de un intento de actualizar el microprograma de un dispositivo de almacenamiento 24.
Todavía otra notificación de enlace ascendente ejemplar comprende una solicitud de una clave criptográfica. En un ejemplo tal, el agente de seguridad 50 puede detectar un intento de escribir un paquete de datos cifrado. Tal intento puede indicar que el cifrado automático de los datos del disco está activado (por ejemplo, tecnología Bitlocker® de Microsoft®). En respuesta, algunas realizaciones pueden solicitar una clave criptográfica del CSM 44. Más detalles de este método se dan más adelante.
Algunas realizaciones implementan una versión de detección iterativa de malware utilizando una secuencia de notificaciones de enlace descendente-enlace ascendente. En un ejemplo tal, una notificación de enlace descendente da instrucciones al agente de seguridad de almacenamiento 50 para escanear un archivo en particular en busca de malware. El agente 50 luego puede comunicar un resultado del escaneo al CSM 44, que puede seleccionar otro archivo o carpeta según el resultado del primer escaneo y comunicar el nuevo objetivo del escaneo al agente de seguridad 50 a través de una nueva notificación de enlace descendente, etc. Tales esquemas iterativos pueden permitir procedimientos de detección de malware bastante complejos que tienen que instalar software complejo en un dispositivo de almacenamiento seguro 24.
La Figura 5 muestra una secuencia ejemplar de pasos realizados por el CSM 44 según algunas realizaciones de la presente invención. El CSM 44 puede agregar datos relacionados con la seguridad de una pluralidad de fuentes dentro del sistema de ordenador central 10, y puede recibir notificaciones sobre la ocurrencia de ciertos eventos durante la ejecución del software. Una fuente ejemplar es una función de llamada al sistema del OS 40, que se modifica enlazando para señalar al CSM 44 cada vez que ocurre la llamada al sistema respectiva. Otras fuentes ejemplares de información y notificaciones de seguridad incluyen minifiltros de OS. En algunas realizaciones, el CSM 44 puede recibir además notificaciones de enlace ascendente desde un dispositivo de almacenamiento seguro 24. En respuesta a la detección de la ocurrencia de un evento, en un paso 206 el CSM 44 puede aplicar un conjunto de heurísticas para determinar si el sistema de ordenador central 10 actualmente está bajo ataque. Cuando el análisis revela una sospecha de malware, el CSM 44 puede tomar las medidas antimalware apropiadas (pasos 212­ 214), por ejemplo, bloquear o prevenir de otro modo la ejecución de un proceso malicioso y alertar a un usuario o administrador del sistema de ordenador central 10. Algunos eventos detectados justifican una notificación de enlace descendente al dispositivo de almacenamiento seguro 24. En un ejemplo tal, el CSM 44 puede dirigir el agente de seguridad 50 para realizar una investigación de un intento de acceso al almacenamiento. Las notificaciones de enlace descendente se ilustran como los pasos 208-210 en la Figura 5.
En algunas realizaciones, el agente de seguridad de almacenamiento 50 recrea la semántica del sistema de archivos utilizado por el OS 40 de los metadatos almacenados en el almacenamiento 30, de una manera que es independiente del sistema de archivos del OS 40. Dicho de otra manera, el agente 50 mantiene una base de conocimiento semántica del sistema de archivos que equivale a una alternativa o sombra del sistema de archivos del OS 40. En los sistemas informáticos convencionales, a nivel de hardware, los datos se almacenan como bloques que carecen de información semántica. Por ejemplo, no está claro qué fragmento de datos pertenece a qué archivo/carpeta. Una complicación adicional es la fragmentación, en donde los datos de un único archivo no se almacenan de forma contigua, sino que se dispersan en varios lugares por todo el medio de almacenamiento. La tarea de contabilidad de asociar los activos con las ubicaciones de almacenamiento y transformar la información a nivel de hardware en datos significativos normalmente se realiza por el OS. El OS gestiona tales tareas manteniendo una estructura de datos especializada conocida como sistema de archivos, codificada como metadatos y almacenada dentro de una sección particular del medio de almacenamiento. Los sistemas de archivos ejemplares incluyen FAT, FAT32 y NTFS, entre otros.
En algunas realizaciones, el mapa semántico del sistema de archivos comprende una codificación de un mapeo entre una sección de almacenamiento principal 30 y un elemento de un sistema de archivos del OS 40. Los elementos del sistema de archivos ejemplares incluyen un directorio y un archivo. Un elemento de mapa semántico ejemplar asocia un rango de direcciones [A1 A2] con un archivo F (donde F se puede representar como una ruta, por ejemplo, C:\user\docs\Letter.txt o /home/user/docs/Letter.txt). Tal asociación indica efectivamente que los datos almacenados en el rango respectivo de direcciones forman parte del archivo F. Otro elemento de mapa semántico del sistema de archivos ejemplar especifica que el rango de direcciones [A3 A4] almacena metadatos del sistema de archivos. Otro elemento más de mapa semántico de sistema de archivos ejemplar asocia una unidad direccionable individual (por ejemplo, bloque o sector de almacenamiento, en oposición al rango de direcciones) con un elemento de sistema de archivos. Los datos del mapa semántico se pueden codificar utilizando cualquier método conocido en la técnica, por ejemplo, como un mapa de bits, una lista enlazada, etc.
La Figura 6 muestra una secuencia ejemplar de pasos realizados por el agente de seguridad de almacenamiento 50 según algunas realizaciones de la presente invención. El agente 50 recibe solicitudes de acceso al almacenamiento del OS 40 a través de la interfaz de almacenamiento 36. Una solicitud típica incluye un indicador de una operación (lectura, escritura), un indicador de una dirección y una carga útil. Las solicitudes de acceso al almacenamiento ejemplares tienen la semántica de "leer un bloque de N bytes en la dirección A" y "escribir la carga útil P en la dirección A". Las solicitudes de acceso pueden comprender además un conjunto de valores de parámetros (por ejemplo, banderas, atributos) de la solicitud respectiva. El formato y la codificación reales de las solicitudes de acceso al almacenamiento pueden variar entre las implementaciones de hardware y software.
Cuando llega una solicitud de acceso al dispositivo 24, el agente 50 puede determinar según los parámetros de la solicitud si la solicitud respectiva indica un acceso al almacenamiento real o un acceso al almacenamiento ficticio (es decir, una notificación del CSM 44). En una realización ejemplar, una solicitud para acceder a una dirección fuera de rango puede indicar tal notificación. Cuando la solicitud de acceso respectiva comprende una notificación de enlace descendente, un paso 236 puede seleccionar y realizar una acción específica según los parámetros de la solicitud respectiva (véanse algunos ejemplos a continuación).
En una secuencia de pasos 228-230, el agente de seguridad 50 puede decodificar además la semántica de la respectiva solicitud de acceso al almacenamiento según el mapa semántico. Por ejemplo, el agente 50 puede determinar si lo que se está escribiendo son metadatos o un archivo real, si se está creando un nuevo archivo, qué archivo en particular se está escribiendo o leyendo actualmente, etc. Un paso 232 adicional puede aplicar un conjunto de heurísticas de acceso para determinar si el acceso solicitado es indicativo de una amenaza a la seguridad informática. Cuando no lo es, el agente 50 puede permitir que proceda el respectivo acceso. Cuando las heurísticas indican que la solicitud de acceso solicitada justifica notificar al módulo de seguridad informática 44, el agente 50 puede realizar una notificación de enlace ascendente equivalente a una alerta de seguridad.
La Figura 7 muestra una secuencia ejemplar de pasos llevados a cabo por el agente de seguridad de almacenamiento 50 para mantener el mapa semántico del sistema de archivos. La creación del mapa se puede iniciar, por ejemplo, en el arranque. En algunas realizaciones, el agente 50 puede determinar una ubicación en el almacenamiento principal 30 donde están almacenados los metadatos del sistema de archivos utilizados por el OS 40. En la técnica de la informática forense se conocen varios métodos para lograr esto. Algunas realizaciones usan un componente de software que se ejecuta en el ordenador central (por ejemplo, el CSM 44) para determinar la ubicación de los datos del sistema de archivos. El CSM 44 puede comunicar entonces la ubicación respectiva al agente de seguridad 50 usando notificaciones de enlace descendente.
En una secuencia de pasos 254-256, el agente 50 analiza los metadatos del sistema de archivos almacenados en el almacenamiento principal 30 y ensambla el mapa semántico según los respectivos metadatos. Algunas realizaciones almacenan los datos del mapa semántico determinados (es decir, el sistema de archivos en la sombra) en la memoria de seguridad 118 y/o el almacenamiento secundario 32. Luego, durante la ejecución del software en el procesador 16, el agente 50 puede escuchar solicitudes de acceso al almacenamiento y determinar si tales solicitudes indican un cambio en los metadatos (por ejemplo, creación o eliminación de archivos/directorios). Cuando es sí, el agente 50 puede actualizar el mapa semántico en consecuencia (pasos 260-262-264 en la Figura 7).
El sistema ilustrado de notificaciones y heurísticas se puede usar para una variedad de aplicaciones, algunos ejemplos de los cuales se dan a continuación.
Filtrado de comandos para proteger el hardware
El software malicioso cuidadosamente diseñado puede explotar ciertas características del conjunto de comandos de ATA (por ejemplo, el comando DESCARGAR MICROCÓDIGO) para actualizar subrepticiamente el microprograma de un dispositivo de almacenamiento, introduciendo así malware a nivel de hardware en el dispositivo en sí mismo. Un malware ejemplar tal es una puerta trasera que puede ser utilizada por el software que se ejecuta en el ordenador central para alterar el comportamiento y/o controlar el dispositivo de almacenamiento respectivo.
Para evitar tales ataques avanzados, en algunas realizaciones, el agente de seguridad de almacenamiento 50 está configurado para filtrar las solicitudes de acceso al almacenamiento recibidas a través de la interfaz de almacenamiento 36. Las reglas de filtrado pueden ser básicas, por ejemplo, solo permiten la ejecución de las solicitudes de acceso más comunes (por ejemplo, comandos para leer, escribir, identificar un dispositivo, etc.) y bloquear todos los demás comandos/solicitudes. Otras realizaciones pueden implementar heurísticas de filtrado más sofisticadas, por ejemplo, reglas de filtrado adaptadas al contexto actual. En otro ejemplo, el agente de seguridad 50 puede condicionar la ejecución de ciertos comandos de ATA/solicitudes de acceso a una confirmación explícita de un administrador del sistema de ordenador central 10.
En algunas realizaciones, ciertos comandos/solicitudes no se bloquean, sino que se emulan y analizan aún más mediante el software que se ejecuta en el procesador de seguridad 116 (por ejemplo, por el agente de seguridad 50). En respuesta a la recepción de tal comando, el software de seguridad puede devolver una respuesta artificial para engañar al software que se ejecuta en el procesador del ordenador central 16 haciéndole creer que el respectivo comando/solicitud de acceso se llevó a cabo con éxito. El agente de seguridad 50 puede registrar además tales comandos para ayudar en la investigación antimalware.
Intercepción e interpretación de eventos a nivel de hardware
El mantenimiento del mapa semántico (sistema de archivos en la sombra) permite que el agente de seguridad de almacenamiento 50, en respuesta a la recepción de una solicitud de acceso, para detectar eventos relevantes para la seguridad que ocurren durante la ejecución del software en el procesador 16. Por ejemplo, en respuesta a una solicitud de escritura, el agente 50 puede determinar si lo que se está escribiendo son metadatos o contenido real de un archivo, si la escritura respectiva se dirige a una sección de almacenamiento vacía o está sobrescribiendo información existente, si la escritura respectiva es una escritura genuina o una notificación de enlace descendente del procesador 16, etc.
Los eventos del sistema de archivos, tales como la creación de archivos, la eliminación de archivos y la reescritura de archivos, se llevan a cabo según secuencias de operaciones específicas del evento. Un patrón ejemplar puede incluir una lectura de metadatos, seguida de una escritura de metadatos, seguida de una escritura de carga útil. El agente 50 puede usar un conjunto de heurísticas que codifican tales patrones para identificar un tipo de cada evento del sistema de archivos. Además, el agente 50 puede identificar el objetivo de cada operación de lectura/escritura, por ejemplo, en qué archivo se está escribiendo, qué archivo se está leyendo.
A diferencia de los sistemas/métodos de seguridad informática convencionales, tal interceptación de eventos ocurre prácticamente sin el conocimiento del software que se ejecuta en el procesador 16. Por lo tanto, es posible que el software malicioso no impida ni interfiera de ningún otro modo con la detección de eventos. Un software de seguridad tal como el agente 50 puede notificar entonces la ocurrencia de ciertos eventos considerados relevantes para la seguridad al CSM 44 utilizando notificaciones de enlace ascendente.
Escaneo de malware en acceso
El agente de seguridad 50 puede detectar un intento de abrir un archivo y/o un intento de ejecutar un archivo ejecutable. Otras operaciones que se pueden detectar de esta manera incluyen adjuntar un archivo y una asignación de almacenamiento para escrituras posteriores. Cada uno de estos eventos se puede usar como desencadenante para iniciar un escaneo del archivo respectivo, o un escaneo de un recurso (ejecutable principal, biblioteca, etc.) perteneciente al proceso que ordenó el acceso al almacenamiento respectivo. El escaneo se puede llevar a cabo mientras que el proceso que emitió la solicitud de acceso al almacenamiento está suspendido, o fuera de línea mientras que el proceso respectivo está permitiendo continuar con la ejecución.
El escaneo se puede realizar según cualquier método conocido en la técnica de la seguridad informática, por ejemplo, haciendo coincidir un contenido del archivo respectivo con una biblioteca de patrones de código o firmas indicativas de malware. Se puede almacenar una biblioteca de firmas indicativas de malware en el almacenamiento secundario 32 para este propósito. La biblioteca se puede mantener actualizada a través de actualizaciones periódicas o bajo demanda. Algunas realizaciones actualizan la biblioteca de firmas y/u otro software que se ejecuta en un dispositivo de almacenamiento seguro 24 a través de un conjunto de notificaciones de enlace descendente (por ejemplo, solicitudes de acceso al almacenamiento ficticias).
En una variante del escaneo en acceso, el agente 50 puede usar un conjunto de heurísticas para detectar una secuencia de arranque del sistema de ordenador central 10 y/u OS 40. Dicho de otra manera, analizando una secuencia de solicitudes de acceso al almacenamiento, el agente 50 puede determinar que el sistema de ordenador central 10 está actualmente en proceso de arranque (es decir, inicialización de hardware y/o software). Una secuencia de arranque ejemplar típicamente comienza con una secuencia de solicitudes de lectura desde una ubicación que almacena una estructura de datos conocida como el registro de arranque maestro (MBR) o tabla de particiones GUID (GPT).
Identificar dispositivo
Leer extensión DMA A :00000000 C :0001
Leer extensión DMA A :00000000 C :0001
Leer extensión DMA A :00000001 C :0001
Leer extensión DMA R: E8E088AF C :0001
Leer extensión DMA A :00000002 C :0020
Leer extensión DMA R: E8E0888F C :0020
Leer extensión DMA A :00000002 C :0020
Una secuencia ejemplar de solicitudes de acceso al almacenamiento que indica que el OS 40 ha comenzado a cargarse se ilustra a continuación:
Identificar dispositivo
Leer FPDMA en cola A: 00000000 C: 0001 T: 04
Leer FPDMA en cola A: 00000001 C: 0001 T: 05
Leer FPDMA en cola A: 00000002 C: 0020 T: 06
Leer FPDMA en cola A :00000000 C: 0001 T: 07
Otra característica típica de una secuencia de arranque de solicitudes de acceso comprende secuencias muy largas de solicitudes de lectura (por ejemplo, de 2 a 3000 solicitudes de lectura consecutivas) interrumpidas por secuencias cortas de 2 a 5 solicitudes de escritura. Tales patrones pueden ser específicos del OS. El análisis de patrones puede combinar un recuento de solicitudes de lectura/escritura consecutivas con un análisis de la información de la dirección y/o de otros valores de parámetros para inferir varias etapas del proceso de arranque.
Algunas realizaciones pueden combinar la coincidencia de patrones de solicitud de acceso con información de mapa semántico, para detectar una inicialización del OS 40. En un ejemplo tal, el agente de seguridad 50 puede llevar un procedimiento iterativo para recopilar información sobre el tipo y/o la ubicación del software que se ejecuta en el procesador de ordenador central 16, directamente a partir de los eventos de acceso al almacenamiento. Detectando el acceso al registro de arranque maestro, el agente 50 puede determinar la información de la partición. Luego, una serie de solicitudes de lectura se dirigen a las cabeceras de volumen. A partir de tales solicitudes, el agente 50 puede determinar y validar información sobre los respectivos volúmenes. A continuación, el agente 50 puede identificar automáticamente una ubicación de almacenamiento de un conjunto de archivos importantes del OS (por ejemplo, recursos que el OS 40 carga tras la inicialización, tal como NTOSKRNL.EXE en Windows®), siguiendo la secuencia de lecturas y/o escrituras que acompaña al arranque. La secuencia de arranque respectiva también puede revelar un tipo de sistema operativo (por ejemplo, marca, versión, etc. del OS 40).
Algunas realizaciones pueden escanear entonces cada archivo que se abre durante un período de tiempo (por ejemplo, varios segundos) después de la fase de arranque/inicialización detectada. El escaneo puede incluir la verificación de integridad, es decir, determinar si el contenido de un archivo ha sido dañado, por ejemplo, por software malicioso. La verificación de integridad puede comprender comparar un hash del contenido actual del archivo respectivo con un hash de referencia almacenado en el almacenamiento secundario 32.
En otra aplicación ejemplar más relacionada con las secuencias de arranque, algunas realizaciones pueden usar un dispositivo de almacenamiento seguro 24 como agente que se ejecuta fuera del OS 40 y configurado para probar la integridad y/o confiabilidad del OS 40. Por ejemplo, el agente 50 puede detectar automáticamente una solicitud para reiniciar el sistema de ordenador central 10. Luego, en respuesta a la detección de que el reinicio está realmente en marcha (por ejemplo, a partir de operaciones de inicialización y detección de dispositivos, o en respuesta a una notificación de enlace descendente por el CSM 44), el agente 50 puede suspender la secuencia de arranque normal y exponer un OS alternativo o un agente de seguridad configurado para escanear estructuras de datos del OS 40 y/o el área de arranque del almacenamiento principal 30. Cuando se completa el escaneo y el sistema se considera seguro, el agente 50 puede reanudar el arranque del OS 40.
Protección de los activos almacenados
El área de arranque del almacenamiento principal 30 típicamente almacena recursos que se leen antes de que se cargue el OS. Manteniendo el mapa semántico, el agente 50 puede determinar si una solicitud de escritura apunta al área de arranque respectiva y, en respuesta, puede bloquear la escritura respectiva y/o notificar al CSM 44. Se puede usar una estrategia similar para proteger los activos valiosos del OS 40 u otras aplicaciones, tales como ciertos archivos, bibliotecas, etc.
Operar con datos encriptados
Algunas versiones del OS 40 tienen la opción de mantener los datos en forma encriptada en el almacenamiento principal 30. Un ejemplo tal es la característica Bitlocker® de Microsoft® Windows®. Cuando los datos almacenados están cifrados, una entidad que se ejecuta fuera del OS 40 (incluyendo el agente de seguridad de almacenamiento 50) puede no tener acceso a los datos respectivos, o a los metadatos del sistema que permiten la construcción del mapa semántico del sistema de archivos.
Sin embargo, el agente 50 puede colaborar con el CSM 44 para obtener una clave de cifrado, o información que conduzca a derivar la clave respectiva. Tal información puede incluir, por ejemplo, una contraseña, un secreto, un número aleatorio de un solo uso, etc., y por la presente se denomina material de clave de cifrado. El CSM 44 puede exponer una interfaz de usuario solicitando una contraseña de usuario u otro secreto utilizado en relación con la clave respectiva, y comunicar la contraseña/secreto al agente 50. En otra realización, el CSM 44 puede interactuar directamente con el agente de cifrado del OS (por ejemplo, módulos de Bitlocker®) para obtener material clave. En respuesta a la obtención de material clave, el CSM 44 puede comunicar el material clave en sí mismo, o una ubicación de almacenamiento de dicho material clave, al agente 50 a través de una notificación de enlace descendente (por ejemplo, una solicitud de acceso al almacenamiento ficticia).
Una vez en posesión de la clave de cifrado, el agente 50 puede usar el motor criptográfico 52 para descifrar los datos almacenados con el fin de construir y/o mantener el mapa semántico del sistema de archivos. En algunas realizaciones, el agente 50 puede utilizar además la clave de cifrado para realizar escaneos/análisis en línea del tráfico de datos hacia y/o desde el almacenamiento principal 30, prácticamente sin conocimiento del OS 40 o de otro software que se ejecuta en el procesador de ordenador central 16. En un ejemplo, en respuesta a la interceptación de una solicitud de escritura, el agente de seguridad 50 puede descifrar y analizar la carga útil respectiva, antes de escribir la carga útil original (cifrada) en la dirección prevista. En algunas realizaciones, en respuesta al descifrado de la carga útil respectiva, el agente 50 puede guardar una versión sin cifrar de la carga útil en un almacenamiento secundario 32.
Detección de cifrado genérico
Algunas realizaciones del agente de seguridad de almacenamiento 50 pueden determinar automáticamente si los datos almacenados dentro de una sección (por ejemplo, bloque, sector, etc.) de almacenamiento 30 están cifrados o no. Tales determinaciones pueden utilizar medidas de complejidad de la información tales como la entropía u otros métodos conocidos en la técnica. Para evitar falsos positivos, algunas realizaciones pueden usar metadatos disponibles para el archivo respectivo para determinar si es probable que el archivo respectivo tenga una entropía alta sin estar necesariamente cifrado. Tales ejemplos incluyen datos comprimidos según formatos tales como MP3, JPG, MPG, ZIP, etc. Para determinar si el archivo respectivo cae en una de estas categorías, algunas realizaciones pueden ubicar la sección de cabecera del archivo respectivo según los metadatos y buscar información del tipo de archivo en la cabecera respectiva.
En algunas realizaciones, cada entrada del mapa semántico del sistema de archivos se puede aumentar con un conjunto de banderas, que indican, por ejemplo, si el elemento del sistema de archivos respectivo (archivo, carpeta, etc.) está cifrado o no, si el elemento del sistema de archivos respectivo está comprimido o no, etc. Las banderas se pueden mantener por el agente 50 junto con el resto de los datos del mapa semántico.
Detección de software de secuestro avanzado
Los sistemas y métodos descritos en la presente memoria permiten detectar automáticamente un intento de cifrar los datos almacenados. La detección se realiza independientemente del, y es prácticamente indetectable por, software que se ejecuta en el procesador 16. Una aplicación útil de tal detección automática de cifrado comprende la detección de software de secuestro y otro tipo de software malicioso cuyas acciones incluyen el cifrado no autorizado o no intencionado de datos de usuario.
Una heurística de detección ejemplar comprende la detección de un intento de sobrescribir contenido no cifrado con contenido cifrado. Otro conjunto de heurísticas de detección emplea estadísticas para comparar el flujo actual de solicitudes de acceso al almacenamiento con un patrón "normal" correspondiente a un usuario específico y/o una aplicación en ejecución. Para lograr la detección, algunas realizaciones determinan un conjunto de perfiles de usuario y/o perfiles de aplicación que indican, por ejemplo, qué aplicaciones/procesos es probable que se inicien por un usuario en particular, a qué ubicaciones de almacenamiento se accede normalmente por el usuario respectivo, cuál es el patrón típico de solicitudes de almacenamiento asociado con cada proceso/aplicación, etc. Cuando una secuencia actual de solicitudes de acceso al almacenamiento deja el patrón de "normalidad", por ejemplo cuando el agente 50 detecta un aumento inusual en la actividad de creación de archivos, en donde el contenido de los archivos respectivos está cifrado, el agente 50 puede determinar que se está produciendo un ataque de software de secuestro.
Cuando el agente 50 detecta actividad de cifrado sospechosa, el agente 50 puede suspender la actividad respectiva (por ejemplo, bloquear un conjunto de escrituras sospechosas) y/o enviar una señal al CSM 44 utilizando el mecanismo de notificación de enlace ascendente. A su vez, el CSM 44 puede usar la notificación como una advertencia de un posible ataque, o puede aplicar una heurística adicional, por ejemplo, para correlacionar eventos notificados por el agente 50 con otros eventos indicativos de malware que ocurren en el sistema de ordenador central 10 o en otros ordenadores conectados al sistema de ordenador central 10 a través de una red de comunicación.
Vigilancia de activos para aplicaciones tales como creación de versiones de software y copia de seguridad
En algunas realizaciones, el agente de seguridad de almacenamiento 50 detecta automáticamente un intento de eliminar o sobrescribir un archivo y, en respuesta, guarda una copia de los datos eliminados/sobrescritos en una ubicación separada, ya sea en el almacenamiento principal 30 o en el almacenamiento secundario 32. De este modo, se conserva una copia en la sombra del archivo que se elimina o se sobrescribe junto con los datos recién escritos. Algunas realizaciones guardan más de dos versiones consecutivas del mismo archivo, en donde al menos una de las respectivas versiones no está cifrada. Este mecanismo puede permitir una recuperación segura de datos, restaurando potencialmente el archivo respectivo a cualquiera de las versiones guardadas.
Las posibles aplicaciones de tal vigilancia de activos incluyen seguridad, copia de seguridad y control de versiones de software, entre otras. En una realización de seguridad informática, el agente 50 puede detectar, por ejemplo, que un archivo en particular se sobrescribe repetidamente en un intervalo de tiempo relativamente corto. Tal actividad de archivo puede ser indicativa de malware. Algunas realizaciones pueden comparar versiones sucesivas del mismo archivo, para determinar, por ejemplo, si una versión más nueva está cifrada mientras que una más antigua no lo está. Como se mencionó anteriormente, tales cambios en el cifrado pueden indicar un ataque de software de secuestro. En términos más generales, mantener una copia de seguridad de un archivo puede evitar potencialmente que el software malicioso modifique activos importantes del OS, evitando así, por ejemplo, el enganche malicioso de las funciones del OS. Cuando se detecta tal modificación, el agente 50 puede notificar al CSM 44. A su vez, el CSM 44 puede instruir al agente 50 para revertir los cambios a un archivo en particular.
Optimización
Algunas realizaciones se pueden optimizar aún más para reducir la sobrecarga computacional de descifrar la semántica del sistema de archivos desde el nivel del dispositivo de almacenamiento seguro 24. En una realización híbrida, los indicadores semánticos se entregan desde el CSM 44 al agente de seguridad 50, mientras que el agente 50 puede interceptar y contrarrestar eventos de almacenamiento maliciosos, tales como la eliminación de archivos, la sobrescritura de archivos, el cifrado de datos no autorizado, etc. En tales realizaciones, el CSM 44 puede comprender un filtro de acceso al almacenamiento ligero que tiene una funcionalidad similar a la de un minifiltro del sistema de archivos en Windows®. El filtro de acceso al almacenamiento puede determinar, por ejemplo, un intento de escritura en un archivo, un nombre y/o ubicación en disco de los datos/archivos respectivos y una identidad de un proceso que lleva a cabo la operación de escritura, entre otras. Luego, el filtro de acceso al almacenamiento puede transmitir tal información semántica al agente de seguridad de almacenamiento 50 a través de una notificación de enlace descendente. El agente 50 puede acusar recibo usando un paquete de acuse de recibo o una notificación de enlace ascendente. En algunas realizaciones, las notificaciones de enlace descendente se añaden a una cola de notificaciones.
A nivel de dispositivo de almacenamiento seguro 24, el agente 50 puede identificar un intento de escribir e intentar hacer coincidir el intento respectivo con datos de la cola de notificación de enlace descendente. Una coincidencia exitosa permite que el agente 50 determine la semántica del intento de escritura respectivo, lo que puede permitir que el agente 50 aplique heurísticas más sofisticadas para determinar si el intento de escritura respectivo es sospechoso, necesita ser evitado, etc. Un fallo en la coincidencia de un intento de escritura detectado a nivel de hardware (es decir, de cambios de metadatos específicos) con un intento de escritura transmitido a través de una notificación de enlace descendente puede indicar software malicioso capaz de evitar la detección por el minifiltro de acceso al almacenamiento del OS 40. En tales casos, el agente de seguridad 50 puede bloquear el intento de escritura respectivo y/o notificar al CSM 44 a través de una notificación de enlace ascendente.
La presente invención se refiere a sistemas y métodos para proteger un sistema de ordenador central contra amenazas a la seguridad informática tales como software malicioso, entre otros. Los sistemas y métodos descritos son particularmente adecuados para proteger los sistemas de ordenador central (por ejemplo, ordenadores, dispositivos de comunicación móvil, etc.) contra malware sofisticado que es capaz de socavar las defensas convencionales. Las aplicaciones ejemplares incluyen protección contra software de secuestro y el robo de datos confidenciales, privados y propietarios.
Algunas realizaciones de la presente invención se basan en la observación de que el software malicioso puede interferir con éxito en el tráfico de datos entre el procesador del sistema de ordenador central y el almacenamiento no volátil (por ejemplo, unidad magnética, óptica o de estado sólido). El software de seguridad que se ejecuta en el procesador respectivo puede ser incapaz de bloquear o evitar todas de tales interferencias, dando como resultado un riesgo sustancial de robo o pérdida de datos. Para abordar este problema, las realizaciones ejemplares de la presente invención desplazan partes del software de seguridad a un procesador separado configurado para interceptar, analizar y/o bloquear selectivamente el tráfico de datos entre el procesador principal del sistema de ordenador central y el dispositivo de almacenamiento. El procesador de seguridad auxiliar puede integrarse con el dispositivo de almacenamiento y/o hardware adicional, por ejemplo, en una placa de circuito impreso común, para formar un dispositivo de almacenamiento seguro mejorado. Dicho dispositivo de almacenamiento seguro puede asumir un factor de forma convencional de un disco duro u otro almacenamiento no volátil, y puede conectarse al resto del hardware del sistema de ordenador central a través de una interfaz/conector de almacenamiento convencional, tal como una interfaz/conector de accesorio de AT en serie (SATA) o de interconexión de componentes periféricos (PCI) Express. En una realización alternativa, el dispositivo de almacenamiento seguro (es decir, almacenamiento procesador auxiliar) se puede empaquetar como una unidad externa, conectada al sistema de ordenador central, por ejemplo, por medio de un bus serie universal (USB) u otra interfaz/conector convencional.
En los sistemas antimalware convencionales, la prevención, la detección y las contramedidas se implementan en software que se ejecuta en el mismo procesador físico que también ejecuta el código malicioso. Además, en los sistemas convencionales, tanto el malware como el software legítimo pueden acceder al mismo dispositivo de almacenamiento físico (por ejemplo, el disco duro). Tales configuraciones permiten potencialmente que un código malicioso cuidadosamente diseñado socave el software de seguridad. Por el contrario, en algunas realizaciones de la presente invención, el acceso al almacenamiento físico está controlado por un procesador auxiliar, distinto del procesador principal que ejecuta las aplicaciones del usuario (y, potencialmente, el código malicioso). Por lo tanto, el software de seguridad que se ejecuta en el procesador auxiliar está fuera del alcance del malware.
Estará claro para un experto en la técnica que las realizaciones anteriores se pueden alterar de muchas maneras sin apartarse del alcance de la invención. En consecuencia, el alcance de la invención debería estar determinado por las siguientes reivindicaciones.

Claims (20)

REIVINDICACIONES
1. Un sistema informático que comprende un primer procesador de hardware [16] y un dispositivo de almacenamiento seguro [24], el dispositivo de almacenamiento seguro [24] conectado al primer procesador de hardware [16] a través de una interfaz de almacenamiento [36] configurada para recibir solicitudes de acceso al almacenamiento formateadas según un protocolo de transmisión de almacenamiento, en donde el dispositivo de almacenamiento seguro [24] comprende un segundo procesador de hardware [116] y una unidad de almacenamiento no volátil [30], y en donde:
el primer procesador de hardware [16] está configurado para:
en respuesta a la detección de una solicitud por el software que se ejecuta en el primer procesador de hardware [16] para almacenar un paquete de datos en la unidad de almacenamiento [30], cifrar el paquete de datos, en respuesta al cifrado del paquete de datos, transmitir una solicitud de acceso al almacenamiento real a la interfaz de almacenamiento [36], la solicitud de acceso al almacenamiento real que comprende el paquete de datos cifrado,
generar una solicitud de acceso al almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso al almacenamiento ficticia que comprende al menos una parte de una clave criptográfica, y transmitir la solicitud de acceso al almacenamiento ficticio a la interfaz de almacenamiento [36]; y
el segundo procesador de hardware [116] está configurado para:
en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento [36], determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia;
en respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, determinar la clave criptográfica según la solicitud de acceso al almacenamiento ficticia,
en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, emplear la clave criptográfica para descifrar el paquete de datos, y
determinar si el paquete de datos descifrado incluye software malicioso.
2. El sistema de ordenador central de la reivindicación 1, en donde el segundo procesador de hardware [116] está configurado además, en respuesta a determinar si el paquete de datos descifrado comprende software malicioso, cuando el paquete de datos descifrado comprende software malicioso, para transmitir una notificación formateada según el protocolo de transmisión de almacenamiento a la interfaz de almacenamiento [36], la notificación configurada para hacer que el primer procesador de hardware [16] interprete el mensaje de notificación como una alerta de seguridad.
3. El sistema de ordenador central de la reivindicación 2, en donde la notificación está configurada para causar una interrupción de hardware en el primer procesador de hardware [16].
4. El sistema de ordenador central de la reivindicación 1, en donde la comunicación comprende una dirección indicativa de una ubicación en la unidad de almacenamiento [30], y en donde el segundo procesador de hardware [116] está configurado para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia según la dirección.
5. El sistema de ordenador central de la reivindicación 4, en donde determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia comprende:
comparar la dirección con una dirección predeterminada; y
en respuesta, determinar que la comunicación comprende la solicitud de acceso al almacenamiento ficticia según un resultado de la comparación.
6. El sistema de ordenador central de la reivindicación 1, en donde la comunicación comprende una solicitud para escribir una carga útil en la unidad de almacenamiento [30], y en donde el segundo procesador de hardware [116] está configurado para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia según la carga útil.
7. El sistema de ordenador central de la reivindicación 1, en donde el segundo procesador de hardware [116] está configurado además para:
mantener un sistema de archivos en la sombra que comprende un mapeo entre una pluralidad de paquetes de datos almacenados en la unidad de almacenamiento [30] y una pluralidad de archivos de un sistema de archivos principal mantenido por un sistema operativo [40] que se ejecuta en el primer procesador de hardware [16];
en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, identificar según el sistema de archivos en la sombra un archivo de la pluralidad de archivos, de modo que el paquete de datos forme parte del archivo; y
en respuesta a la identificación del archivo, determine si el archivo contiene software malintencionado.
8. El sistema de ordenador central de la reivindicación 1, en donde el segundo procesador de hardware [116] está configurado además para:
determinar según el sistema de archivos en la sombra si otra comunicación recibida desde el primer procesador de hardware [16] a través de la interfaz de almacenamiento [36] indica la creación de un nuevo archivo; y
en respuesta, cuando la otra comunicación indique la creación del nuevo archivo, actualizar el sistema de archivos en la sombra para indicar la creación del nuevo archivo.
9. El sistema de ordenador central de la reivindicación 1, en donde el segundo procesador de hardware [116] está configurado además, en respuesta al descifrado del paquete de datos, para escribir el paquete de datos descifrado en la unidad de almacenamiento [30].
10. El sistema de ordenador central de la reivindicación 1, en donde la interfaz de almacenamiento [36] comprende un elemento seleccionado de un grupo que consta de una interfaz de ATA en serie y una interfaz de bus serie universal (USB).
11. Un método de seguridad informática que comprende:
conectar un dispositivo de almacenamiento seguro [24] a un primer procesador de hardware [16] a través de una interfaz de almacenamiento [36] configurada para recibir solicitudes de acceso al almacenamiento formateadas según un protocolo de transmisión de almacenamiento, en donde el dispositivo de almacenamiento seguro [24] comprende un segundo procesador de hardware [116] y una unidad de almacenamiento no volátil [30];
en respuesta a la detección de una solicitud por el software que se ejecuta en el primer procesador de hardware [16] para almacenar un paquete de datos en la unidad de almacenamiento [30], emplear el primer procesador de hardware [16] para cifrar el paquete de datos;
en respuesta al cifrado del paquete de datos, emplear el primer procesador de hardware [16] para transmitir una verdadera solicitud de acceso al almacenamiento a la interfaz de almacenamiento [36], la verdadera solicitud de acceso al almacenamiento que comprende el paquete de datos cifrado;
emplear el primer procesador de hardware [16] para generar una solicitud de acceso de almacenamiento ficticia según el protocolo de transmisión de almacenamiento, la solicitud de acceso de almacenamiento ficticia que comprende al menos una parte de una clave criptográfica;
emplear el primer procesador de hardware [16] para transmitir la solicitud de acceso al almacenamiento ficticia a la interfaz de almacenamiento [36];
en respuesta a la recepción de una comunicación a través de la interfaz de almacenamiento [36], emplear el segundo procesador de hardware [116] para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia;
en respuesta, cuando la comunicación comprende la solicitud de acceso al almacenamiento ficticia, emplear el segundo procesador de hardware [116] para emplear la clave criptográfica para descifrar el paquete de datos; y en respuesta a descifrar el paquete de datos, emplear el segundo procesador de hardware [116] para determinar si el paquete de datos descifrado comprende software malicioso.
12. El método de la reivindicación 11, que comprende además, en respuesta a determinar si el paquete de datos descifrado comprende software malicioso, cuando el paquete de datos descifrado comprende software malicioso, emplear el segundo procesador de hardware [116] para transmitir una notificación formateada según el protocolo de transmisión de almacenamiento a la interfaz de almacenamiento [36], la notificación configurada para hacer que el primer procesador de hardware [16] interprete el mensaje de notificación como una alerta de seguridad.
13. El método de la reivindicación 12, en donde la notificación está configurada para causar una interrupción de hardware en el primer procesador de hardware [16].
14. El método de la reivindicación 11, en donde la comunicación comprende una dirección indicativa de una ubicación en la unidad de almacenamiento [30], y en donde el segundo procesador de hardware [116] está configurado para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia según la dirección.
15. El método de la reivindicación 14, en donde determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia comprende:
emplear el segundo procesador de hardware [116] para comparar la dirección con una dirección predeterminada; y en respuesta, determinar que la comunicación comprende la solicitud de acceso al almacenamiento ficticia según un resultado de la comparación.
16. El método de la reivindicación 11, en donde la comunicación comprende una solicitud para escribir una carga útil en la unidad de almacenamiento [30], y en donde el segundo procesador de hardware [116] está configurado para determinar si la comunicación comprende la solicitud de acceso al almacenamiento ficticia según la carga útil.
17. El método de la reivindicación 11, que comprende además:
emplear el segundo procesador de hardware [116] para mantener un sistema de archivos en la sombra que comprende un mapeo entre una pluralidad de paquetes de datos almacenados en la unidad de almacenamiento [30] y una pluralidad de archivos de un sistema de archivos principal mantenido por un sistema operativo [40] que se ejecuta en el primer procesador de hardware [16];
en respuesta a la recepción de la verdadera solicitud de acceso al almacenamiento, emplear el segundo procesador de hardware [116] para identificar según el sistema de archivos en la sombra un archivo de la pluralidad de archivos, de modo que el paquete de datos forme parte del archivo; y
en respuesta a la identificación del archivo, emplear el segundo procesador de hardware [116] para determinar si el archivo comprende software malicioso.
18. El método de la reivindicación 11, que comprende además:
emplear el segundo procesador de hardware [116] para determinar según el sistema de archivos en la sombra si otra comunicación recibida desde el primer procesador de hardware [16] a través de la interfaz de almacenamiento indica la creación de un nuevo archivo; y
en respuesta, cuando la otra comunicación indica la creación del nuevo archivo, emplear el segundo procesador de hardware [116] para actualizar el sistema de archivos en la sombra para indicar la creación del nuevo archivo.
19. El método de la reivindicación 11, que comprende además, en respuesta a descifrar el paquete de datos, emplear el segundo procesador de hardware [116] para escribir el paquete de datos descifrado en la unidad de almacenamiento [30].
20. El método de la reivindicación 11, en donde la interfaz de almacenamiento [36] comprende un elemento seleccionado de un grupo que consta de una interfaz ATA en serie y una interfaz de bus serie universal (USB).
ES18749348T 2017-08-04 2018-07-31 Dispositivo de almacenamiento seguro Active ES2907777T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762541505P 2017-08-04 2017-08-04
US16/045,115 US20190042781A1 (en) 2017-08-04 2018-07-25 Secure Storage Device
PCT/EP2018/070692 WO2019025423A1 (en) 2017-08-04 2018-07-31 SECURE STORAGE DEVICE

Publications (1)

Publication Number Publication Date
ES2907777T3 true ES2907777T3 (es) 2022-04-26

Family

ID=65229581

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18749348T Active ES2907777T3 (es) 2017-08-04 2018-07-31 Dispositivo de almacenamiento seguro

Country Status (11)

Country Link
US (1) US20190042781A1 (es)
EP (1) EP3662385B1 (es)
JP (1) JP7121112B2 (es)
KR (1) KR102296754B1 (es)
CN (1) CN110998582B (es)
AU (1) AU2018311120B2 (es)
CA (1) CA3069053A1 (es)
ES (1) ES2907777T3 (es)
IL (1) IL272150B2 (es)
SG (1) SG11202000097TA (es)
WO (1) WO2019025423A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733290B2 (en) * 2017-10-26 2020-08-04 Western Digital Technologies, Inc. Device-based anti-malware
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
US11216391B1 (en) * 2018-06-21 2022-01-04 Amazon Technologies, Inc. Using an I/O proxy device to filter I/O messages in a computer system
US11132437B2 (en) * 2018-06-26 2021-09-28 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Secure computer operating system through interpreted user applications
US10892895B2 (en) * 2018-09-10 2021-01-12 Atense, Inc. Storing and using multipurpose secret data
US10614232B2 (en) * 2018-09-10 2020-04-07 John Almeida Storing and using multipurpose secret data
US11036856B2 (en) 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud
US11403394B2 (en) 2019-09-17 2022-08-02 International Business Machines Corporation Preventing selective events of a computing environment
JP7352158B2 (ja) * 2019-09-27 2023-09-28 大日本印刷株式会社 デバイス、コンピュータプログラム及び監視方法
US11271933B1 (en) * 2020-01-15 2022-03-08 Worldpay Limited Systems and methods for hosted authentication service
JP6820076B1 (ja) * 2020-02-03 2021-01-27 Necプラットフォームズ株式会社 記憶装置、記憶方法、及びプログラム
US11586734B2 (en) * 2020-02-28 2023-02-21 Kioxia Corporation Systems and methods for protecting SSDs against threats
CN113392062B (zh) * 2020-03-12 2023-04-07 Oppo广东移动通信有限公司 数据存储方法、装置、电子设备和计算机可读存储介质
KR102323732B1 (ko) * 2020-04-02 2021-11-11 주식회사 수산아이앤티 해쉬 관리를 통해 파일을 보호하는 장치 및 방법
CN111428272B (zh) * 2020-04-21 2023-06-06 深圳融安网络科技有限公司 移动存储设备的安全访问方法、设备及存储介质
US11526633B2 (en) 2020-08-27 2022-12-13 Kyndryl, Inc. Media exfiltration prevention system
US20220123932A1 (en) * 2020-10-19 2022-04-21 Western Digital Technologies, Inc. Data storage device encryption
US11995223B2 (en) 2020-10-19 2024-05-28 Western Digital Technologies, Inc. Data storage device encryption
FR3131020A1 (fr) * 2021-12-22 2023-06-23 Orange Module et procédé de sécurisation d’un équipement informatique
CN115186300B (zh) * 2022-09-08 2023-01-06 粤港澳大湾区数字经济研究院(福田) 文件安全处理系统及文件安全处理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328962A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 端末機と、当該端末機に接続されるメモリカードからなるシステム
JP2000089992A (ja) 1998-09-11 2000-03-31 Fujitsu Ltd 記憶装置
WO2004046934A2 (en) * 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
JP4119882B2 (ja) 2004-11-19 2008-07-16 株式会社メガチップス メモリ情報保護システム、メモリ情報の保護方法、および半導体メモリ
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
JP4396737B2 (ja) * 2007-07-17 2010-01-13 ソニー株式会社 情報処理装置、コンテンツ提供システム、および情報処理方法、並びにコンピュータ・プログラム
JP4538027B2 (ja) 2007-08-22 2010-09-08 株式会社東芝 半導体装置
US8341751B2 (en) * 2007-12-26 2012-12-25 Wilson Kelce S Software license management
JP5564197B2 (ja) 2009-04-23 2014-07-30 株式会社メガチップス メモリ制御装置、半導体メモリ装置、メモリシステム及びメモリ制御方法
US9363088B2 (en) * 2010-07-22 2016-06-07 Zixcorp Systems, Inc. Automated provisioning of a network appliance
WO2013141838A1 (en) * 2012-03-19 2013-09-26 Intel Corporation Anti-malware protection operation with instruction included in an operand
US9678978B2 (en) * 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
CA2900504A1 (en) * 2013-02-13 2014-08-21 Security First Corp. Systems and methods for a cryptographic file system layer
WO2014154280A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Obfuscating access to a data store by a software application
US9819563B2 (en) * 2014-12-19 2017-11-14 Verizon Patent And Licensing Inc. Failure management for electronic transactions
US10057282B2 (en) * 2015-05-07 2018-08-21 Cyberark Software Ltd. Detecting and reacting to malicious activity in decrypted application data
US9864879B2 (en) * 2015-10-06 2018-01-09 Micron Technology, Inc. Secure subsystem

Also Published As

Publication number Publication date
JP2020529681A (ja) 2020-10-08
KR102296754B1 (ko) 2021-09-03
RU2020103936A3 (es) 2022-03-01
IL272150B2 (en) 2023-12-01
IL272150A (en) 2020-03-31
AU2018311120A1 (en) 2020-01-30
JP7121112B2 (ja) 2022-08-17
KR20200035016A (ko) 2020-04-01
CA3069053A1 (en) 2019-02-07
US20190042781A1 (en) 2019-02-07
EP3662385B1 (en) 2022-01-19
CN110998582B (zh) 2024-02-02
SG11202000097TA (en) 2020-02-27
IL272150B1 (en) 2023-08-01
AU2018311120B2 (en) 2023-03-16
RU2020103936A (ru) 2021-09-06
CN110998582A (zh) 2020-04-10
RU2768196C2 (ru) 2022-03-23
WO2019025423A1 (en) 2019-02-07
EP3662385A1 (en) 2020-06-10

Similar Documents

Publication Publication Date Title
ES2907777T3 (es) Dispositivo de almacenamiento seguro
US10516533B2 (en) Password triggered trusted encryption key deletion
US9747443B2 (en) System and method for firmware based anti-malware security
US9087199B2 (en) System and method for providing a secured operating system execution environment
KR101626424B1 (ko) 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
US8621620B2 (en) System and method for protecting and securing storage devices using below-operating system trapping
US8966624B2 (en) System and method for securing an input/output path of an application against malware with a below-operating system security agent
Zaddach et al. Implementation and implications of a stealth hard-drive backdoor
ES2794624T3 (es) Sistemas y métodos para rastrear comportamiento malicioso a través de múltiples entidades de software
ES2785350T3 (es) Evaluación de procesos para la detección de programas malignos en máquinas virtuales
US8549648B2 (en) Systems and methods for identifying hidden processes
US20120254993A1 (en) System and method for virtual machine monitor based anti-malware security
US20120254994A1 (en) System and method for microcode based anti-malware security
Zaidenberg Hardware rooted security in industry 4.0 systems
Neugschwandtner et al. A transparent defense against USB eavesdropping attacks
RU2768196C9 (ru) Защищённое запоминающее устройство
Wang et al. Coprocessor-based hierarchical trust management for software integrity and digital identity protection
Zhao Authentication and Data Protection under Strong Adversarial Model
King Attacking computer security using peripheral device drivers