US10666443B2 - Continued verification and monitoring of application code in containerized execution environment - Google Patents

Continued verification and monitoring of application code in containerized execution environment Download PDF

Info

Publication number
US10666443B2
US10666443B2 US15/296,288 US201615296288A US10666443B2 US 10666443 B2 US10666443 B2 US 10666443B2 US 201615296288 A US201615296288 A US 201615296288A US 10666443 B2 US10666443 B2 US 10666443B2
Authority
US
United States
Prior art keywords
validation
instance
container
status
code
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, expires
Application number
US15/296,288
Other versions
US20180109387A1 (en
Inventor
Jay Vyas
Suneel Marthi
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.)
Red Hat Inc
Original Assignee
Red Hat Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Red Hat Inc filed Critical Red Hat Inc
Priority to US15/296,288 priority Critical patent/US10666443B2/en
Assigned to RED HAT, INC. reassignment RED HAT, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARTHI, SUNEEL, VYAS, JAY
Publication of US20180109387A1 publication Critical patent/US20180109387A1/en
Application granted granted Critical
Publication of US10666443B2 publication Critical patent/US10666443B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Definitions

  • the present disclosure generally relates to software product release and monitor, and more specifically relates to verification and monitor of application code released in a containerized execution environment.
  • the process of software release typically includes the steps of compiling the source code into executable code, bundling the source code, executable code, and associated metadata into an archive of files, proscribing a set of rules for accepting and upgrading the released software, and enforcing these rules on the end users of the released software.
  • FIG. 1 illustrates an application code management system according to an implementation of the present disclosure
  • FIG. 2 illustrates an enterprise system that provides an application code management server and a code validation service according to an implementation of the present disclosure
  • FIG. 3 depicts a flow diagram of a method for validating source code according to an implementation of the present disclosure
  • FIG. 4 is a system for validating code according to an implementation of the present disclosure.
  • FIG. 5 depicts a block diagram of a computer system operating in accordance with one or more aspects of the present disclosure.
  • a software application can be developed by multiple entities (e.g., different developers).
  • a container is an execution environment represented by an isolated virtualized user-space instance of an operating system, such that the user-space instance is associated with a kernel instance which may be shared with other containers.
  • the containers may be employed to store the software application code and microservices (e.g., a utility program such as a compiler) for performing operations on the software code.
  • a microservice is an independently-deployable modular service that communicates with other services through a lightweight interface.
  • the code of the software application may be stored along with microservices in containers to create containerized applications.
  • the containerized application may be released as software product that can be executed as a self-contained application on nodes in a cloud.
  • a node that can be a host computer or a virtual machine
  • a container execution environment e.g., Docker environment.
  • containers may facilitate agile releases of software application code developed by different entities, code releases may be slowed down by the need for continuous human interventions (e.g., proscribing the rules and enforcing these rules).
  • microservices created by the developers may perform inappropriate actions that may adversely affect the integrity of a container. Such inappropriate actions may include mounting source code into the container at runtime, binding to restricted ports, starting multiple daemon processes (which is not recommended for container execution environments), using insecure building tools, or obtaining source code from unsecured sources (e.g., the Internet).
  • Implementations of the present disclosure provide enterprises with a release bot for performing actions associated with releasing code in the form of containerized applications.
  • the release bot can be a software application running in the enterprise network.
  • the actions performed by the release bot may include creating a union container object (referred to as a pod).
  • the pod may contain a collection of containers that share a storage and contexts about how to run the containers within the pod.
  • the pod created by the release bot may include a first container to store source code and a second container containing a publication microservice for providing validation information about the source code to a validation service.
  • the microservice in the second container may have been provided by the enterprise and certified to be reliable.
  • the publication microservice when executed in a containerized execution environment, may generate validation data based on certain attributes of the source code that is stored in the pod.
  • the publication microservice may then transmit the validation data to the validation service running either within the enterprise network or as a third-party independent service.
  • the validation service may determine a validation status (either valid or invalid) of the software code in the pod in view of the validation data and notify the enterprise of the validation status.
  • Implementation of the present disclosure provides a technical solution that improves the computer technology of releasing and executing computer code in a cloud computing environment. Implementations provide the release bot that may incorporate an enterprise-certified microservice in the containerized application and provide a validation service for the enterprise. The enterprise-certified microservice may transmit validation data to the validation service during execution of the code, and the validation service may detect anomaly in the code based on the validation data.
  • FIG. 1 illustrates an application code management system 100 according to an implementation of the present disclosure.
  • the application code management system 100 can be a computer system (e.g., a server acting as a code depot) implementing an certain application programming interface (e.g., Kubernetes API) to facilitate deployment, scaling, and management of containerized software applications.
  • an application programming interface e.g., Kubernetes API
  • Application code management system 100 may include a processing device 102 such as, for example, a central processing unit (CPU) that may execute the program code of software applications.
  • Application code management system 100 may also include storage devices such as, for example, a memory 103 and/or hard disks that may store the program code of these containerized software applications.
  • Application code management system 100 may, via a network (e.g., a HTTP network), connect to nodes in a cloud computing environment, whereas a node can be a physical machine or a virtual machine that provides a containerized application execution environment (e.g., the Docker environment) for executing the containerized application.
  • Software developers may submit application code to the application code management system 100 .
  • the software application code is stored as a component along with microservices (e.g., utility applications) associated with the code in a container and is to be released as part of a containerized application that can be executed in a container execution environment (e.g., Docker system)
  • microservices e.g., utility applications
  • container execution environment e.g., Docker system
  • processing device 102 may run a release bot 104 to release the software application in a secure manner.
  • Release bot 104 can be a dedicated program running on processing device 102 .
  • release bot 104 can run as a daemon in the background.
  • processing device 102 may execute release bot 104 to create a pod 106 which may contain a collection of containers.
  • the containers in pod 106 may share storage and contexts about how to run the containers within the pod.
  • the created pod 106 may be assigned a unique identifier (UID).
  • UID unique identifier
  • the shared context in the pod may include a set of namespaces, control groups, and other attributes associated with the containers in the pod for achieving container isolation (e.g., as isolated instances in the shared kernel).
  • Containers associated with pod 106 may share an Internet protocol (IP) address and port space, and may communicate with each other using inter-process communications (e.g., semaphores and/or shared memory).
  • IP Internet protocol
  • the storage shared by containers in pod 106 is referred to as shared volumes which are defined as part of the pod and are made available to be mounted into each application's file system.
  • pod 106 may be specified using a pod configuration file that includes fields to store attribute values of pod 106 .
  • the attributes stored in pod 106 may include the unique identifier associated with pod 106 , an optional label (e.g., an arbitrary key value) that can be used for grouping pods having the same key value, and a specification field to store container attributes for containers in pod 106 .
  • the specification field may include sub-fields to specify a container name attribute which is unique within pod 106 , a default image entry point attribute (if not otherwise provided) and image pull policy attribute (e.g., Always, Never etc.), and an optional command attribute to specify a start-up command for the image.
  • the attributes stored in pod 106 may further include an environment attribute including pairs of an environment variable and its corresponding value, a list of port attributes that are exposed by the container, and a volume attribute to specify the storage devices (i.e., volumes) that can be mounted by the container.
  • Each port attribute may include a port number, a port name that can be referred to by microservices, a protocol associated with the port, a resource attribute to specify the computer resources (e.g., CPU, memory) used by the container.
  • the volume attribute may specify a temporary directory that is shared by containers during the pod lifetime.
  • the specification field can also be used to specify a microservice in a container.
  • the specification field may include a selector attribute to specify the microservice that may generate validation data associated with the code stored in the container and post the validation data to an exposed port.
  • the specification field may also include a port attribute to specify an exposed port number, a protocol used by the port (e.g., TCP), and a target port to specify the port name associated with a validation service that can receive the data from the exposed port.
  • TCP protocol used by the port
  • release bot 104 may create pod 106 that may include a first container 108 and a second container 110 .
  • Container 108 may be an application source container that stores the source code 112 to be released as a containerized application.
  • container 108 may contain an archive (e.g., a tarball) of source code 112 .
  • container 108 may store links (e.g., a reference pointer) to source code 112 that is stored in file directories in the storage (referred to as a volume) associated with pod 106 .
  • Container 108 may also include a suit of microservices that can be employed to perform operations on source code 112 . The microservices in the suit may be independently deployable.
  • microservices associated with source code 112 may include compiler microservices (e.g., gcc), software building microservices (e.g., maven, gradle), and code execution microservices (e.g., sbt run).
  • compiler microservices e.g., gcc
  • software building microservices e.g., maven, gradle
  • code execution microservices e.g., sbt run.
  • code 112 along with these microservices may be packaged in container 108 to form an application that may run in a container execution environment (e.g., the Docker environment).
  • the created pod 106 may also include a second container 110 for running a publication microservice 114 that computes and publishes verification data associated with code 112 in the first container 108 .
  • container 110 may define microservice 114 (referred to as publication microservice) in the selector attribute field.
  • publication microservice 114 is an enterprise-certified microservice that, by virtue of executing in a separate container, is isolated from microservices in container 108 .
  • the second container is not accessible to developers that contribute to the code. For example, the second container is assigned with an access right that excludes contributions from entities other than the enterprise. Thus, container 110 and publication microservice 114 cannot be tampered with by a developer that submits code 112 to application code management system 100 .
  • Publication microservice 114 may generate validation data 116 and publish the validation data to a target port according to a transmission protocol (e.g., TCP).
  • the target port may specify the validation server that receives the validation data.
  • publication microservice 114 may calculate a first hash value of the code 112 and generate a digital signature of first hash value using a private key of an encryption key pair.
  • the key pair may include the private key and a corresponding public key for decryption.
  • the encryption scheme can be a suitable encryption method such as, for example, the Pretty Good Privacy (PGP) encryption method.
  • Publication microservice 114 may publish the digital signature as validation data 116 to a validation service (not shown) at the target port using the specified protocol.
  • PGP Pretty Good Privacy
  • the validation service may use the public key to decrypt the digital signature and restore a first hash value associate with the code. Further, validation service may retrieve a second hash value that had been provided to the validation service as known hash of the code 112 . Validation service may then compare the first hash value with the second hash value to determine whether the code is altered or tempered. In one implementation, the comparison may include comparing the checksum of the first hash value with the checksum of the second hash value. In another implementation, publication microservice 114 may take a snapshot of the directory storing code 112 .
  • the snapshot can be a file (e.g., an XML file, a tarball, or zip file) that contains information stored in the directory, including part of code 112 and metadata information associated with code 112 .
  • Publication microservice 114 may calculate a digital signature of the snapshot and publish the digital signature of the snapshot as validation data 116 to a validation service.
  • an enterprise system may provide the validation service to check the integrity of a containerized application released to the public. The integrity of the code can be checked in view of the validation data published the publication microservice associated with the code.
  • FIG. 2 illustrates an enterprise system 200 that provides application code management server 100 and a code validation servicer server 202 according to an implementation of the present disclosure.
  • code validation server 202 is part of enterprise system 200
  • code validation server 202 can be an independent server dedicated for performing validation services for multiple enterprise systems.
  • code validation server 202 may be communicatively connected to enterprise 200 via a public network.
  • code validation server 202 may run on processing device 102 that may execute the validation service 204 .
  • Validation service 204 may receive validation data 116 published by publication microservice 114 associated with released code 112 , where validation service 204 may have been specified as the target port for publication microservice 114 .
  • containerized application released in pod 106 may have been replicated by a replication controller associated with application code management server 100 .
  • Pod 106 may then be released to a node in container execution environment 210 (e.g., a Docker environment).
  • the code 112 in container 108 may run on the node.
  • the pod 106 in container execution environment 210 may include enterprise-certified publication microservice 114 that, when executed, may publish validation data 116 designated to validation service 204 according to a schedule (e.g., periodically or on demand at the request of the container execution environment 210 ).
  • Validation service 204 may check the integrity of code 112 in view of the received validation data 116 .
  • validation service 204 may perform the code integrity check according to pre-specified enterprise validation rules 206 stored in a database associated with code validation server.
  • validation rules 206 may include a first rule to prohibit the code from referencing non-licensed libraries, a second rule to prohibit importing any package from uncertified sources, and a third rule to require the code conforming with proper format and documentation.
  • validation service 204 may acquire a public key from release bot 104 and receive validation data 116 including a digital signature of code 112 , the digital signature being created using a private key matching to the public key in a key pair.
  • the digital signature may contain a first cryptographic hash of the code generated using a set of hash function by the publication microservice.
  • Validation service 204 may decrypt the digital signature to restore the first hash value using the public key. Further, validation service 204 may retrieve a second hash value that had been provided to the validation service 204 as known hash of the code. Validation service may then compare the first hash value with a second hash value to determine whether the code is altered or tempered.
  • validation service 204 may have access to a copy of a snapshot of a directory storing code 112 . Validation service 204 may then receive validation data 116 including a first digital signature of the snapshot from publication microservice 114 .
  • validation service 204 may generate a second digital signature for the copy of snapshot that is accessible by validation service 204 , and then compare the first digital signature with the second digital signature. If these two digital signatures are different, validation service 204 may determine that code 112 may have been altered or tempered with.
  • validation service 204 may issue instruction to destruct the container 108 that contains code 112 .
  • validation service may send a message to container execution environment 210 to warn about the violating code 112 .
  • Validation service 204 may inform application code management server 100 which may then determine the cause of the violation (e.g., malicious code was mounted from a volume into code 112 ).
  • FIG. 3 depicts a flow diagram of a method 300 for validating source code according to an implementation of the present disclosure.
  • Method 300 may be performed by processing devices that may comprise hardware (e.g., circuitry, dedicated logic), computer readable instructions (e.g., run on a general purpose computer system or a dedicated machine), or a combination of both.
  • Method 300 and each of its individual functions, routines, subroutines, or operations may be performed by one or more processors of the computer device executing the method.
  • method 300 may be performed by a single processing thread.
  • method 300 may be performed by two or more processing threads, each thread executing one or more individual functions, routines, subroutines, or operations of the method.
  • method 300 may be performed by processing device executing a code validation service as shown in FIG. 2 .
  • method 300 may be performed by processing devices of a computing device and may begin at block 302 .
  • a processing device may execute a validation service to receive a validation data associated with a first instance of an execution environment, the validation data being provided by a publication service associated with a second instance of the execution environment.
  • the processing device may acquire a decryption key from a release server associated with the execution environment.
  • the processing device may determine, using the decryption key, a validation status associated with the first instance in view of the validation data.
  • the processing device may notify the release server of the validation status.
  • FIG. 4 is a system 400 for validating code according to an implementation of the present disclosure.
  • System 400 may include a memory 402 and a processing device 404 communicatively coupled to memory 402 .
  • the processing device 404 may execute a validation service 406 to receive a validation data associated with a first instance of an execution environment, the validation data being provided by a publication service contained in a second instance of the execution environment, acquire a decryption key from a release server that releases the first instance and the second instance of the execution environment, determine a validation status associated with the first instance in view of the validation data using the decryption key, and notify the release server of the validation status.
  • FIG. 5 depicts a block diagram of a computer system operating in accordance with one or more aspects of the present disclosure.
  • computer system 400 may correspond to a computing device within system architecture 100 of FIG. 1 .
  • computer system 500 may be connected (e.g., via a network, such as a Local Area Network (LAN), an intranet, an extranet, or the Internet) to other computer systems.
  • Computer system 500 may operate in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment.
  • Computer system 500 may be provided by a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • web appliance a web appliance
  • server a server
  • network router switch or bridge
  • any device capable of executing a set of instructions that specify actions to be taken by that device.
  • the computer system 500 may include a processing device 502 , a volatile memory 504 (e.g., random access memory (RAM)), a non-volatile memory 506 (e.g., read-only memory (ROM) or electrically-erasable programmable ROM (EEPROM)), and a data storage device 516 , which may communicate with each other via a bus 508 .
  • a volatile memory 504 e.g., random access memory (RAM)
  • non-volatile memory 506 e.g., read-only memory (ROM) or electrically-erasable programmable ROM (EEPROM)
  • EEPROM electrically-erasable programmable ROM
  • Processing device 502 may be provided by one or more processors such as a general purpose processor (such as, for example, a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a microprocessor implementing other types of instruction sets, or a microprocessor implementing a combination of types of instruction sets) or a specialized processor (such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).
  • CISC complex instruction set computing
  • RISC reduced instruction set computing
  • VLIW very long instruction word
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • DSP digital signal processor
  • Computer system 500 may further include a network interface device 522 .
  • Computer system 500 also may include a video display unit 510 (e.g., an LCD), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generation device 520 .
  • a video display unit 510 e.g., an LCD
  • an alphanumeric input device 512 e.g., a keyboard
  • a cursor control device 514 e.g., a mouse
  • signal generation device 520 e.g., a signal generation device 520 .
  • Data storage device 516 may include a non-transitory computer-readable storage medium 524 on which may store instructions 526 encoding any one or more of the methods or functions described herein, including instructions encoding output volume control of FIG. 1 for implementing method 300 .
  • Instructions 526 may also reside, completely or partially, within volatile memory 504 and/or within processing device 502 during execution thereof by computer system 500 , hence, volatile memory 504 and processing device 502 may also constitute machine-readable storage media.
  • While computer-readable storage medium 524 is shown in the illustrative examples as a single medium, the term “computer-readable storage medium” shall include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of executable instructions.
  • the term “computer-readable storage medium” shall also include any tangible medium that is capable of storing or encoding a set of instructions for execution by a computer that cause the computer to perform any one or more of the methods described herein.
  • the term “computer-readable storage medium” shall include, but not be limited to, solid-state memories, optical media, and magnetic media.
  • the methods, components, and features described herein may be implemented by discrete hardware components or may be integrated in the functionality of other hardware components such as ASICS, FPGAs, DSPs or similar devices.
  • the methods, components, and features may be implemented by firmware modules or functional circuitry within hardware devices.
  • the methods, components, and features may be implemented in any combination of hardware devices and computer program components, or in computer programs.
  • terms such as “receiving,” “associating,” “deleting,” “initiating,” “marking,” “generating,” “recovering,” “completing,” or the like refer to actions and processes performed or implemented by computer systems that manipulates and transforms data represented as physical (electronic) quantities within the computer system registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • the terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not have an ordinal meaning according to their numerical designation.
  • Examples described herein also relate to an apparatus for performing the methods described herein.
  • This apparatus may be specially constructed for performing the methods described herein, or it may comprise a general purpose computer system selectively programmed by a computer program stored in the computer system.
  • a computer program may be stored in a computer-readable tangible storage medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Power Engineering (AREA)

Abstract

A method includes receiving, by a processing device executing a validation service, a validation data associated with a first instance of an execution environment, the validation data provided by a publication service associated with a second instance of the execution environment, acquiring a decryption key from a release server associated with the execution environment, determining, using the decryption key, a validation status associated with the first instance in view of the validation data, and notifying the release server of the validation status.

Description

TECHNICAL FIELD
The present disclosure generally relates to software product release and monitor, and more specifically relates to verification and monitor of application code released in a containerized execution environment.
BACKGROUND
The process of software release (e.g., by an organization) typically includes the steps of compiling the source code into executable code, bundling the source code, executable code, and associated metadata into an archive of files, proscribing a set of rules for accepting and upgrading the released software, and enforcing these rules on the end users of the released software.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is illustrated by way of examples, and not by way of limitation, and may be more fully understood with references to the following detailed description when considered in connection with the figures, in which:
FIG. 1 illustrates an application code management system according to an implementation of the present disclosure;
FIG. 2 illustrates an enterprise system that provides an application code management server and a code validation service according to an implementation of the present disclosure;
FIG. 3 depicts a flow diagram of a method for validating source code according to an implementation of the present disclosure;
FIG. 4 is a system for validating code according to an implementation of the present disclosure; and
FIG. 5 depicts a block diagram of a computer system operating in accordance with one or more aspects of the present disclosure.
DETAILED DESCRIPTION
In a containerized software development environment, a software application can be developed by multiple entities (e.g., different developers). A container is an execution environment represented by an isolated virtualized user-space instance of an operating system, such that the user-space instance is associated with a kernel instance which may be shared with other containers. The containers may be employed to store the software application code and microservices (e.g., a utility program such as a compiler) for performing operations on the software code. A microservice is an independently-deployable modular service that communicates with other services through a lightweight interface. The code of the software application may be stored along with microservices in containers to create containerized applications.
The containerized application may be released as software product that can be executed as a self-contained application on nodes in a cloud. A node (that can be a host computer or a virtual machine) may support a container execution environment (e.g., Docker environment). Although containers may facilitate agile releases of software application code developed by different entities, code releases may be slowed down by the need for continuous human interventions (e.g., proscribing the rules and enforcing these rules). Further, microservices created by the developers may perform inappropriate actions that may adversely affect the integrity of a container. Such inappropriate actions may include mounting source code into the container at runtime, binding to restricted ports, starting multiple daemon processes (which is not recommended for container execution environments), using insecure building tools, or obtaining source code from unsecured sources (e.g., the Internet).
Implementations of the present disclosure provide enterprises with a release bot for performing actions associated with releasing code in the form of containerized applications. The release bot can be a software application running in the enterprise network. The actions performed by the release bot may include creating a union container object (referred to as a pod). The pod may contain a collection of containers that share a storage and contexts about how to run the containers within the pod. The pod created by the release bot may include a first container to store source code and a second container containing a publication microservice for providing validation information about the source code to a validation service. The microservice in the second container may have been provided by the enterprise and certified to be reliable. The publication microservice, when executed in a containerized execution environment, may generate validation data based on certain attributes of the source code that is stored in the pod. The publication microservice may then transmit the validation data to the validation service running either within the enterprise network or as a third-party independent service. The validation service may determine a validation status (either valid or invalid) of the software code in the pod in view of the validation data and notify the enterprise of the validation status.
Conventional approaches to releasing code of software application through containers involve manual customization by the releasing entity. Further, the code released by the conventional approach is vulnerable to attacks by malicious microservices contributed by developers. Implementation of the present disclosure provides a technical solution that improves the computer technology of releasing and executing computer code in a cloud computing environment. Implementations provide the release bot that may incorporate an enterprise-certified microservice in the containerized application and provide a validation service for the enterprise. The enterprise-certified microservice may transmit validation data to the validation service during execution of the code, and the validation service may detect anomaly in the code based on the validation data.
FIG. 1 illustrates an application code management system 100 according to an implementation of the present disclosure. The application code management system 100 can be a computer system (e.g., a server acting as a code depot) implementing an certain application programming interface (e.g., Kubernetes API) to facilitate deployment, scaling, and management of containerized software applications.
Application code management system 100 may include a processing device 102 such as, for example, a central processing unit (CPU) that may execute the program code of software applications. Application code management system 100 may also include storage devices such as, for example, a memory 103 and/or hard disks that may store the program code of these containerized software applications. In one implementation, Application code management system 100 may, via a network (e.g., a HTTP network), connect to nodes in a cloud computing environment, whereas a node can be a physical machine or a virtual machine that provides a containerized application execution environment (e.g., the Docker environment) for executing the containerized application. Software developers may submit application code to the application code management system 100. The software application code is stored as a component along with microservices (e.g., utility applications) associated with the code in a container and is to be released as part of a containerized application that can be executed in a container execution environment (e.g., Docker system)
In one implementation, processing device 102 may run a release bot 104 to release the software application in a secure manner. Release bot 104 can be a dedicated program running on processing device 102. For example, release bot 104 can run as a daemon in the background. Responsive to receiving a request (e.g., via a user interface or via an API call) to release a software application, processing device 102 may execute release bot 104 to create a pod 106 which may contain a collection of containers. The containers in pod 106 may share storage and contexts about how to run the containers within the pod. The created pod 106 may be assigned a unique identifier (UID). The shared context in the pod may include a set of namespaces, control groups, and other attributes associated with the containers in the pod for achieving container isolation (e.g., as isolated instances in the shared kernel). Containers associated with pod 106 may share an Internet protocol (IP) address and port space, and may communicate with each other using inter-process communications (e.g., semaphores and/or shared memory). The storage shared by containers in pod 106 is referred to as shared volumes which are defined as part of the pod and are made available to be mounted into each application's file system.
In one implementation, pod 106 may be specified using a pod configuration file that includes fields to store attribute values of pod 106. The attributes stored in pod 106 may include the unique identifier associated with pod 106, an optional label (e.g., an arbitrary key value) that can be used for grouping pods having the same key value, and a specification field to store container attributes for containers in pod 106. For each container in pod 106, the specification field may include sub-fields to specify a container name attribute which is unique within pod 106, a default image entry point attribute (if not otherwise provided) and image pull policy attribute (e.g., Always, Never etc.), and an optional command attribute to specify a start-up command for the image. The attributes stored in pod 106 may further include an environment attribute including pairs of an environment variable and its corresponding value, a list of port attributes that are exposed by the container, and a volume attribute to specify the storage devices (i.e., volumes) that can be mounted by the container. Each port attribute may include a port number, a port name that can be referred to by microservices, a protocol associated with the port, a resource attribute to specify the computer resources (e.g., CPU, memory) used by the container. The volume attribute may specify a temporary directory that is shared by containers during the pod lifetime.
The specification field can also be used to specify a microservice in a container. The specification field may include a selector attribute to specify the microservice that may generate validation data associated with the code stored in the container and post the validation data to an exposed port. The specification field may also include a port attribute to specify an exposed port number, a protocol used by the port (e.g., TCP), and a target port to specify the port name associated with a validation service that can receive the data from the exposed port.
As shown in FIG. 1, release bot 104 may create pod 106 that may include a first container 108 and a second container 110. Container 108 may be an application source container that stores the source code 112 to be released as a containerized application. In one implementation, container 108 may contain an archive (e.g., a tarball) of source code 112. In another implementation, container 108 may store links (e.g., a reference pointer) to source code 112 that is stored in file directories in the storage (referred to as a volume) associated with pod 106. Container 108 may also include a suit of microservices that can be employed to perform operations on source code 112. The microservices in the suit may be independently deployable. Examples of microservices associated with source code 112 may include compiler microservices (e.g., gcc), software building microservices (e.g., maven, gradle), and code execution microservices (e.g., sbt run). Thus, code 112 along with these microservices may be packaged in container 108 to form an application that may run in a container execution environment (e.g., the Docker environment).
The created pod 106 may also include a second container 110 for running a publication microservice 114 that computes and publishes verification data associated with code 112 in the first container 108. In one implementation, container 110 may define microservice 114 (referred to as publication microservice) in the selector attribute field. In one implementation, publication microservice 114 is an enterprise-certified microservice that, by virtue of executing in a separate container, is isolated from microservices in container 108. The second container is not accessible to developers that contribute to the code. For example, the second container is assigned with an access right that excludes contributions from entities other than the enterprise. Thus, container 110 and publication microservice 114 cannot be tampered with by a developer that submits code 112 to application code management system 100.
Publication microservice 114 may generate validation data 116 and publish the validation data to a target port according to a transmission protocol (e.g., TCP). The target port may specify the validation server that receives the validation data. In one implementation, publication microservice 114 may calculate a first hash value of the code 112 and generate a digital signature of first hash value using a private key of an encryption key pair. The key pair may include the private key and a corresponding public key for decryption. The encryption scheme can be a suitable encryption method such as, for example, the Pretty Good Privacy (PGP) encryption method. Publication microservice 114 may publish the digital signature as validation data 116 to a validation service (not shown) at the target port using the specified protocol. The validation service may use the public key to decrypt the digital signature and restore a first hash value associate with the code. Further, validation service may retrieve a second hash value that had been provided to the validation service as known hash of the code 112. Validation service may then compare the first hash value with the second hash value to determine whether the code is altered or tempered. In one implementation, the comparison may include comparing the checksum of the first hash value with the checksum of the second hash value. In another implementation, publication microservice 114 may take a snapshot of the directory storing code 112. The snapshot can be a file (e.g., an XML file, a tarball, or zip file) that contains information stored in the directory, including part of code 112 and metadata information associated with code 112. Publication microservice 114 may calculate a digital signature of the snapshot and publish the digital signature of the snapshot as validation data 116 to a validation service.
In one implementation, an enterprise system may provide the validation service to check the integrity of a containerized application released to the public. The integrity of the code can be checked in view of the validation data published the publication microservice associated with the code. FIG. 2 illustrates an enterprise system 200 that provides application code management server 100 and a code validation servicer server 202 according to an implementation of the present disclosure. Although code validation server 202, as shown in FIG. 2, is part of enterprise system 200, code validation server 202 can be an independent server dedicated for performing validation services for multiple enterprise systems. For example, code validation server 202 may be communicatively connected to enterprise 200 via a public network.
In one implementation, code validation server 202 may run on processing device 102 that may execute the validation service 204. Validation service 204 may receive validation data 116 published by publication microservice 114 associated with released code 112, where validation service 204 may have been specified as the target port for publication microservice 114. For example, as shown in FIG. 2, containerized application released in pod 106 may have been replicated by a replication controller associated with application code management server 100. Pod 106 may then be released to a node in container execution environment 210 (e.g., a Docker environment). The code 112 in container 108 may run on the node. The pod 106 in container execution environment 210, as discussed above, may include enterprise-certified publication microservice 114 that, when executed, may publish validation data 116 designated to validation service 204 according to a schedule (e.g., periodically or on demand at the request of the container execution environment 210).
Validation service 204 may check the integrity of code 112 in view of the received validation data 116. In one implementation, validation service 204 may perform the code integrity check according to pre-specified enterprise validation rules 206 stored in a database associated with code validation server. For example, validation rules 206 may include a first rule to prohibit the code from referencing non-licensed libraries, a second rule to prohibit importing any package from uncertified sources, and a third rule to require the code conforming with proper format and documentation. In one implementation, validation service 204 may acquire a public key from release bot 104 and receive validation data 116 including a digital signature of code 112, the digital signature being created using a private key matching to the public key in a key pair. In one implementation, the digital signature may contain a first cryptographic hash of the code generated using a set of hash function by the publication microservice. Validation service 204 may decrypt the digital signature to restore the first hash value using the public key. Further, validation service 204 may retrieve a second hash value that had been provided to the validation service 204 as known hash of the code. Validation service may then compare the first hash value with a second hash value to determine whether the code is altered or tempered. In another implementation, validation service 204 may have access to a copy of a snapshot of a directory storing code 112. Validation service 204 may then receive validation data 116 including a first digital signature of the snapshot from publication microservice 114. Responsive to receiving the validation data 116, validation service 204 may generate a second digital signature for the copy of snapshot that is accessible by validation service 204, and then compare the first digital signature with the second digital signature. If these two digital signatures are different, validation service 204 may determine that code 112 may have been altered or tempered with.
Responsive to determining that the integrity of code 112 may have been compromised, validation service 204 may issue instruction to destruct the container 108 that contains code 112. In another implementation, validation service may send a message to container execution environment 210 to warn about the violating code 112. Validation service 204 may inform application code management server 100 which may then determine the cause of the violation (e.g., malicious code was mounted from a volume into code 112).
FIG. 3 depicts a flow diagram of a method 300 for validating source code according to an implementation of the present disclosure. Method 300 may be performed by processing devices that may comprise hardware (e.g., circuitry, dedicated logic), computer readable instructions (e.g., run on a general purpose computer system or a dedicated machine), or a combination of both. Method 300 and each of its individual functions, routines, subroutines, or operations may be performed by one or more processors of the computer device executing the method. In certain implementations, method 300 may be performed by a single processing thread. Alternatively, method 300 may be performed by two or more processing threads, each thread executing one or more individual functions, routines, subroutines, or operations of the method.
For simplicity of explanation, the methods of this disclosure are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts may be needed to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term “article of manufacture,” as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media. In one implementation, method 300 may be performed by processing device executing a code validation service as shown in FIG. 2.
Referring to FIG. 3, method 300 may be performed by processing devices of a computing device and may begin at block 302. At block 302, a processing device may execute a validation service to receive a validation data associated with a first instance of an execution environment, the validation data being provided by a publication service associated with a second instance of the execution environment.
At block 304, the processing device may acquire a decryption key from a release server associated with the execution environment.
At block 306, the processing device may determine, using the decryption key, a validation status associated with the first instance in view of the validation data.
At block 308, the processing device may notify the release server of the validation status.
FIG. 4 is a system 400 for validating code according to an implementation of the present disclosure. System 400 may include a memory 402 and a processing device 404 communicatively coupled to memory 402. The processing device 404 may execute a validation service 406 to receive a validation data associated with a first instance of an execution environment, the validation data being provided by a publication service contained in a second instance of the execution environment, acquire a decryption key from a release server that releases the first instance and the second instance of the execution environment, determine a validation status associated with the first instance in view of the validation data using the decryption key, and notify the release server of the validation status.
FIG. 5 depicts a block diagram of a computer system operating in accordance with one or more aspects of the present disclosure. In various illustrative examples, computer system 400 may correspond to a computing device within system architecture 100 of FIG. 1.
In certain implementations, computer system 500 may be connected (e.g., via a network, such as a Local Area Network (LAN), an intranet, an extranet, or the Internet) to other computer systems. Computer system 500 may operate in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. Computer system 500 may be provided by a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, the term “computer” shall include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods described herein.
In a further aspect, the computer system 500 may include a processing device 502, a volatile memory 504 (e.g., random access memory (RAM)), a non-volatile memory 506 (e.g., read-only memory (ROM) or electrically-erasable programmable ROM (EEPROM)), and a data storage device 516, which may communicate with each other via a bus 508.
Processing device 502 may be provided by one or more processors such as a general purpose processor (such as, for example, a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a microprocessor implementing other types of instruction sets, or a microprocessor implementing a combination of types of instruction sets) or a specialized processor (such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).
Computer system 500 may further include a network interface device 522. Computer system 500 also may include a video display unit 510 (e.g., an LCD), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generation device 520.
Data storage device 516 may include a non-transitory computer-readable storage medium 524 on which may store instructions 526 encoding any one or more of the methods or functions described herein, including instructions encoding output volume control of FIG. 1 for implementing method 300.
Instructions 526 may also reside, completely or partially, within volatile memory 504 and/or within processing device 502 during execution thereof by computer system 500, hence, volatile memory 504 and processing device 502 may also constitute machine-readable storage media.
While computer-readable storage medium 524 is shown in the illustrative examples as a single medium, the term “computer-readable storage medium” shall include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of executable instructions. The term “computer-readable storage medium” shall also include any tangible medium that is capable of storing or encoding a set of instructions for execution by a computer that cause the computer to perform any one or more of the methods described herein. The term “computer-readable storage medium” shall include, but not be limited to, solid-state memories, optical media, and magnetic media.
The methods, components, and features described herein may be implemented by discrete hardware components or may be integrated in the functionality of other hardware components such as ASICS, FPGAs, DSPs or similar devices. In addition, the methods, components, and features may be implemented by firmware modules or functional circuitry within hardware devices. Further, the methods, components, and features may be implemented in any combination of hardware devices and computer program components, or in computer programs.
Unless specifically stated otherwise, terms such as “receiving,” “associating,” “deleting,” “initiating,” “marking,” “generating,” “recovering,” “completing,” or the like, refer to actions and processes performed or implemented by computer systems that manipulates and transforms data represented as physical (electronic) quantities within the computer system registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. Also, the terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not have an ordinal meaning according to their numerical designation.
Examples described herein also relate to an apparatus for performing the methods described herein. This apparatus may be specially constructed for performing the methods described herein, or it may comprise a general purpose computer system selectively programmed by a computer program stored in the computer system. Such a computer program may be stored in a computer-readable tangible storage medium.
The methods and illustrative examples described herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used in accordance with the teachings described herein, or it may prove convenient to construct more specialized apparatus to perform method 300 and/or each of its individual functions, routines, subroutines, or operations. Examples of the structure for a variety of these systems are set forth in the description above.
The above description is intended to be illustrative, and not restrictive. Although the present disclosure has been described with references to specific illustrative examples and implementations, it will be recognized that the present disclosure is not limited to the examples and implementations described. The scope of the disclosure should be determined with reference to the following claims, along with the full scope of equivalents to which the claims are entitled.

Claims (20)

What is claimed is:
1. A method comprising:
receiving, by a processing device executing a validation service provided by an enterprise system that manages integrity of release of code, a validation data associated with code being executed at a first instance of an execution environment, the validation data provided by a publication service associated with a second instance of the execution environment, wherein the publication service is certified by the enterprise system and wherein the first instance and the second instance are virtualized user-space instances isolated from each other;
acquiring a decryption key from a release server associated with the execution environment;
determining, using the decryption key, a validation status associated with the first instance in view of the validation data; and
notifying the release server of the validation status.
2. The method of claim 1, wherein the execution environment is containerized, and wherein the first instance is a first container and the second instance is a second container, and wherein the first container and the second container are associated with a union container object.
3. The method of claim 2, wherein the validation data comprises a digital signature associated with a first hash value of a code in the first container, and wherein determining the validation status comprises:
decrypting the digital signature using the decryption key to generate the first hash value; and
comparing the first hash value with a second hash value provided to the validation service to determine the validation status.
4. The method of claim 2, wherein the validation data comprises a first digital signature of a snapshot of a file folder referenced by a link in the first container, and wherein the file folder contains code stored in a storage device.
5. The method of claim 4, wherein determining the validation status comprises: receiving the validation data comprising the first digital signature;
calculating a second digital signature in view of a copy of the snapshot of a directory accessible by the validation service; and
determining the validation status in view of a difference between the first signature and the second signature.
6. The method of claim 1, wherein the validation status comprises an invalid status, and wherein the method further comprises: responsive to receiving the invalid status, issuing an instruction for the execution environment to destruct the first instance.
7. The method of claim 1, further comprising:
providing a release bot to generate the first instance and the second instance and to release the first instance and the second instance in a union container object as a software production.
8. The method of claim 2, wherein the publication service is a microservice insulated from the first container.
9. A system comprising:
a memory; and
a processing device, communicatively coupled to the memory, and executing a validation service provided by an enterprise system that manages integrity of release of code, to:
receive a validation data associated with code being executed at a first instance of an execution environment, the validation data provided by a publication service associated with a second instance of the execution environment, wherein the publication service is certified by the enterprise system and wherein the first instance and the second instance are virtualized user-space instances isolated from each other;
acquire a decryption key from a release server associated with the execution environment;
determine, using the decryption key, a validation status associated with the first instance in view of the validation data; and
notify the release server of the validation status.
10. The system of claim 9, wherein the execution environment is containerized, and wherein the first instance is a first container and the second instance is a second container, and wherein the first container and the second container are associated with a union container object.
11. The system of claim 10, wherein the validation data comprises a digital signature associated with a first hash value of a code in the first container, and wherein to determine the validation status, the processing device is to:
decrypt the digital signature using the decryption key to generate the first hash value; and comparing the first hash value with a second hash value provided to the validation service to determine the validation status.
12. The system of claim 11, wherein the validation data comprises a first signature of a snapshot of a file folder referenced by a link in the first container, and wherein the file folder contains code stored in a storage device.
13. The system of claim 12, wherein to determine the validation status, the processing device is to:
receive the validation data comprising the first signature;
calculate a second signature in view of a copy of the snapshot of the directory accessible by the validation service; and
determine the validation status in view of a difference between the first signature and the second signature.
14. The system of claim 10, wherein the validation status comprises an invalid status, and wherein responsive to receiving the invalid status, the processing device is to issue an instruction for the execution environment to destruct the first instance.
15. The system of claim 10, wherein the processing device is further to provide a release bot to generate the first instance and the second instance and to release the first instance and the second instance in a union container object as a software production.
16. The system of claim 10, wherein the publication service is a microservice insulated from the first container.
17. A computer-readable non-transitory medium with codes stored thereon that, when executed by a processing device, cause the processing device to:
receive, by the processing device executing a validation service provided by an enterprise system that manages integrity of release of code, a validation data associated with code being executed at a first instance of an execution environment, the validation data provided by a publication service associated with a second instance of the execution environment, wherein the publication service is certified by the enterprise system and wherein the first instance and the second instance are virtualized user-space instances isolated from each other;
acquire a decryption key from a release server associated with the execution environment;
determine, using the decryption key, a validation status associated with the first instance in view of the validation data; and
notify the release server of the validation status.
18. The computer-readable non-transitory medium of claim 17, wherein the execution environment is containerized, and wherein the first instance is a first container and the second instance is a second container, and wherein the first container and the second container are associated with a union container object.
19. The computer-readable non-transitory medium of claim 18, wherein the validation data comprises a digital signature associated with a first hash value of a code in the first container, and wherein to determine the validation status, the processing device is further to:
decrypt the digital signature using the decryption key to generate the first hash value; and compare the first hash value with a second hash value provided to the validation service to determine the validation status.
20. The computer-readable non-transitory medium of claim 17, wherein the validation status comprises an invalid status, and wherein responsive to receiving the invalid status, the processing device is to issue an instruction for the execution environment to destruct the first instance.
US15/296,288 2016-10-18 2016-10-18 Continued verification and monitoring of application code in containerized execution environment Active 2037-03-14 US10666443B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/296,288 US10666443B2 (en) 2016-10-18 2016-10-18 Continued verification and monitoring of application code in containerized execution environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/296,288 US10666443B2 (en) 2016-10-18 2016-10-18 Continued verification and monitoring of application code in containerized execution environment

Publications (2)

Publication Number Publication Date
US20180109387A1 US20180109387A1 (en) 2018-04-19
US10666443B2 true US10666443B2 (en) 2020-05-26

Family

ID=61904235

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/296,288 Active 2037-03-14 US10666443B2 (en) 2016-10-18 2016-10-18 Continued verification and monitoring of application code in containerized execution environment

Country Status (1)

Country Link
US (1) US10666443B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11038678B2 (en) * 2018-11-09 2021-06-15 Microsoft Technology Licensing, Llc Trusted key diversity on cloud edge devices
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications
US11776090B2 (en) 2021-04-12 2023-10-03 Sas Institute Inc. Dynamic per-node pre-pulling in distributed computing

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102460416B1 (en) * 2016-10-24 2022-10-28 삼성에스디에스 주식회사 System and method for managing container-based distributed application
US10275329B2 (en) * 2017-02-09 2019-04-30 Red Hat, Inc. Fault isolation and identification in versioned microservices
US11165589B2 (en) * 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
US10705880B2 (en) * 2017-09-22 2020-07-07 Vmware, Inc. Cluster updating using temporary update-monitor pod
US10956563B2 (en) * 2017-11-22 2021-03-23 Aqua Security Software, Ltd. System for securing software containers with embedded agent
US10585745B2 (en) 2017-11-28 2020-03-10 International Business Machines Corporation Prevention of application container failure between replicated containers
US10997283B2 (en) * 2018-01-08 2021-05-04 Aqua Security Software, Ltd. System for securing software containers with encryption and embedded agent
US11249783B1 (en) * 2018-05-23 2022-02-15 Open Invention Network Llc Intra application container direct communication protocol
US11036876B2 (en) * 2018-08-20 2021-06-15 Cisco Technology, Inc. Attribute-based encryption for microservices
DE102018129354A1 (en) 2018-11-21 2020-05-28 Phoenix Contact Gmbh & Co. Kg Process for processing application programs on a distributed automation system
US20210266289A1 (en) * 2020-02-21 2021-08-26 Unisys Corporation Secured container management
US11595350B2 (en) * 2020-05-08 2023-02-28 Ribbon Communications Operating Company, Inc. Networking as a service
US11501026B2 (en) * 2020-07-13 2022-11-15 Avaya Management L.P. Method to encrypt the data at rest for data residing on Kubernetes persistent volumes
KR20220034483A (en) * 2020-09-11 2022-03-18 삼성전자주식회사 Electronic device and control method thereof
US11799857B2 (en) 2021-08-31 2023-10-24 Cisco Technology, Inc. Software posture for zero trust access
US20230266988A1 (en) * 2022-02-23 2023-08-24 Dell Products L.P. Management and utilization of network interface card resources for workload execution
US20240163306A1 (en) * 2022-11-16 2024-05-16 Dell Products L.P. Automated container security

Citations (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010910A1 (en) * 2000-07-15 2002-01-24 International Business Machines Corporation Preferable modes of software package deployment
US20020027992A1 (en) * 2000-08-31 2002-03-07 Sony Corporation Content distribution system, content distribution method, information processing apparatus, and program providing medium
US20020198895A1 (en) * 1998-02-26 2002-12-26 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US20030074552A1 (en) * 2000-04-25 2003-04-17 Secure Data In Motion Security server system
US20040107416A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Patching of in-use functions on a running computer system
US20040123109A1 (en) * 2002-09-16 2004-06-24 Samsung Electronics Co., Ltd. Method of managing metadata
US20040148500A1 (en) * 2000-04-25 2004-07-29 Secure Data In Motion, Inc. System for implementing business processes using key server events
US20040151323A1 (en) * 2000-04-25 2004-08-05 Secure Data In Motion, Inc. Implementing nonrepudiation and audit using authentication assertions and key servers
US20040177260A1 (en) * 2003-03-06 2004-09-09 International Business Machines Corporation System and method for remote code integrity in distributed systems
US6813358B1 (en) * 1998-11-17 2004-11-02 Telcordia Technologies, Inc. Method and system for timed-release cryptosystems
US20040243807A1 (en) * 2003-05-30 2004-12-02 Microsoft Corporation Runtime digital signatures
US20040259633A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Remote authentication of gaming software in a gaming system environment
US20040259640A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Layered security methods and apparatus in a gaming system environment
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US20040266523A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Secured networks in a gaming system environment
US20050021962A1 (en) * 2003-06-16 2005-01-27 Microsoft Corporation System and method for securely delivering installation keys to a production facility
US20050071273A1 (en) * 2003-09-25 2005-03-31 Utstarcom, Inc. Method and Apparatus for Feature Rights Management in a Multilevel Hierarchy
US20060015720A1 (en) * 2000-03-14 2006-01-19 Sony Corporation Information providing apparatus and method, information processing apparatus and method, and program storage medium
US20060101443A1 (en) 2004-10-25 2006-05-11 Jim Nasr Source code management system and method
US7047241B1 (en) * 1995-10-13 2006-05-16 Digimarc Corporation System and methods for managing digital creative works
US20060161791A1 (en) * 2005-01-19 2006-07-20 Bennett Charles H Access-controlled encrypted recording system for site, interaction and process monitoring
US7082615B1 (en) * 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US20060259973A1 (en) * 2005-05-16 2006-11-16 S.P.I. Dynamics Incorporated Secure web application development environment
US20060282897A1 (en) * 2005-05-16 2006-12-14 Caleb Sima Secure web application development and execution environment
US20070011667A1 (en) * 2005-05-25 2007-01-11 Saravanan Subbiah Lock management for clustered virtual machines
US20070027934A1 (en) * 2005-07-29 2007-02-01 Burkhard Roehrle Software release validation
US20070288904A1 (en) * 2006-05-16 2007-12-13 International Business Machines Corporation Method, system and program product for validating a runtime environment
US20080046680A1 (en) * 2005-07-14 2008-02-21 Minehisa Nagata Verification Method, Verification Program, Recording Medium, Information Processor, and Integrated Circuit
US7353541B1 (en) * 1999-09-07 2008-04-01 Sony Corporation Systems and methods for content distribution using one or more distribution keys
US20080163383A1 (en) * 2006-12-29 2008-07-03 Kumar Mohan J Methods and apparatus for authenticating components of processing systems
US20080209556A1 (en) * 2007-01-19 2008-08-28 International Business Machines Corporation Method and device for verification of code module in virtual machine
US20090064114A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Systems, methods, and computer products for automated injection of java bytecode instructions for java load time optimization via runtime checking with upcasts
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
US7568114B1 (en) * 2002-10-17 2009-07-28 Roger Schlafly Secure transaction processor
US20090210874A1 (en) * 2008-02-20 2009-08-20 Peter William Harris Non-native program execution across multiple execution environments
US7627768B2 (en) * 2002-03-26 2009-12-01 Oberthur Card Systems Sa Method and device for automatic validation of computer program using cryptography functions
US20090307666A1 (en) * 2008-06-04 2009-12-10 Microsoft Corporation Real-time validation of interactive applications
US20100005028A1 (en) * 2008-07-07 2010-01-07 International Business Machines Corporation Method and apparatus for interconnecting a plurality of virtual world environments
US20100011446A1 (en) * 2008-07-11 2010-01-14 Microsoft Corporation Verification of un-trusted code for consumption on an insecure device
US20100107160A1 (en) * 2008-10-29 2010-04-29 Novell, Inc. Protecting computing assets with virtualization
US7730297B1 (en) * 2002-02-06 2010-06-01 Adobe Systems Incorporated Automated public key certificate transfer
US20100205164A1 (en) * 2009-02-06 2010-08-12 International Business Machines Corporation Maintaining Data Integrity
US20100262830A1 (en) * 2009-04-10 2010-10-14 Masafumi Kusakawa Authentication device, authentication method, and program background of the invention
US20110010712A1 (en) * 2009-06-18 2011-01-13 Thober Mark A Methods for Improving Atomicity of Runtime Inspections
US20110099362A1 (en) * 2008-06-23 2011-04-28 Tomoyuki Haga Information processing device, encryption key management method, computer program and integrated circuit
US20110173643A1 (en) * 2008-10-10 2011-07-14 Nicolson Kenneth Alexander USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US20110179412A1 (en) * 2007-05-23 2011-07-21 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US8087092B2 (en) * 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
US8108856B2 (en) * 2007-03-30 2012-01-31 Intel Corporation Method and apparatus for adaptive integrity measurement of computer software
US20120084567A1 (en) * 2010-10-04 2012-04-05 Electronics And Telecommunications Research Institute Group signature system and method providing controllable linkability
US20120110578A1 (en) * 2009-07-22 2012-05-03 Yu Yang Data processing system and method
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
US20120216045A1 (en) * 2007-10-07 2012-08-23 Jean-Marc Seguin Method and system for integrated securing and managing of virtual machines and virtual appliances
US20120250858A1 (en) * 2011-04-01 2012-10-04 Naveed Iqbal Application usage continuum across platforms
US8285999B1 (en) * 2008-12-05 2012-10-09 The Research Foundation Of State University Of New York System and method for authenticating remote execution
US20120290870A1 (en) * 2010-11-05 2012-11-15 Interdigital Patent Holdings, Inc. Device validation, distress indication, and remediation
US8327441B2 (en) * 2011-02-17 2012-12-04 Taasera, Inc. System and method for application attestation
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US20130007889A1 (en) * 2011-06-30 2013-01-03 International Business Machines Corporation Trusted computing source code escrow and optimization
US20130007465A1 (en) * 2011-06-30 2013-01-03 Advance Green Technology Group, Inc. Apparatus, Systems and Method for Virtual Desktop Access and Management
US20130065667A1 (en) * 2011-09-09 2013-03-14 Igt Virtual ticket-in and ticket-out on a gaming machine
US8438298B2 (en) * 2001-02-14 2013-05-07 Endeavors Technologies, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8464207B2 (en) 2007-10-12 2013-06-11 Novell Intellectual Property Holdings, Inc. System and method for tracking software changes
US8499151B2 (en) * 2005-06-30 2013-07-30 Intel Corporation Secure platform voucher service for software components within an execution environment
US20130215446A1 (en) * 2012-02-20 2013-08-22 Seiko Epson Corporation Function restriction release system of electronic apparatus, function restriction release method of electronic apparatus, and electronic apparatus
US8601583B1 (en) * 2011-04-14 2013-12-03 Trend Micro Incorporated Certification of virtual machine images in cloud computing environments
US20140053274A1 (en) * 2012-08-18 2014-02-20 Lume Systems, Inc. System and method for replacing software components with corresponding known-good software components without regard to whether the software components have been compromised or potentially compromised
US20140096135A1 (en) * 2012-10-01 2014-04-03 International Business Machines Corporation Method for authenticated distribution of virtual machine images
US20140101264A1 (en) * 2012-10-05 2014-04-10 Cvtrust Sprl Centralized method for certifying credentials
US8707050B1 (en) * 2011-12-23 2014-04-22 Emc Corporation Integrity self-check of secure code within a VM environment using native VM code
US20140230068A1 (en) * 2013-02-12 2014-08-14 Rajendra Rao Kundapur System and method for packaging and authenticating a software product
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US8826013B1 (en) * 2009-09-23 2014-09-02 Trend Micro Incorporated Protection of customer data in cloud virtual machines using a central management server
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US20150013015A1 (en) * 2013-03-14 2015-01-08 General Instrument Corporation Method and apparatus for group licensing of device features
US20150019852A1 (en) * 2013-07-12 2015-01-15 International Games System Co., Ltd. Verification method for system execution environment
US8938611B1 (en) * 2012-02-02 2015-01-20 Trend Micro, Inc. Enterprise cloud security gateway
US20150039891A1 (en) * 2013-08-02 2015-02-05 Ologn Technologies Ag Secure Server on a System with Virtual Machines
US20150046350A1 (en) * 2013-08-06 2015-02-12 Virtual Purple, Llc Ensuring software quality using a virtual appliance
US20150106904A1 (en) * 2013-10-10 2015-04-16 Fujitsu Limited Communication terminal and communication processing method
US20150163248A1 (en) * 2012-04-13 2015-06-11 Cisco Technology, Inc. Automatic curation and modification of virtualized computer programs
US9069782B2 (en) * 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20150199515A1 (en) * 2014-01-14 2015-07-16 Citrix Systems, Inc. Evaluating application integrity
US20150254451A1 (en) * 2014-03-04 2015-09-10 Amazon Technologies, Inc. Authentication of virtual machine images using digital certificates
US20150271679A1 (en) * 2014-03-19 2015-09-24 Electronics And Telecommunications Research Institute System and method of verifying integrity of software
US20150286821A1 (en) * 2012-09-14 2015-10-08 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US20150310427A1 (en) * 2014-04-24 2015-10-29 Xilix Llc Method, apparatus, and system for generating transaction-signing one-time password
CN105069353A (en) 2015-08-11 2015-11-18 武汉大学 Security reinforcement method for credible container based on Docker
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US20150347194A1 (en) * 2014-05-29 2015-12-03 International Business Machines Corporation Managing a Virtual Machine Instance
US20150358334A1 (en) * 2013-03-14 2015-12-10 Telefonaktiebolaget L M Ericsson (Publ) Method for authenticating a client program by a remote data processing system
US20150363192A1 (en) 2014-06-16 2015-12-17 Silverthread, Inc. Computer-implemented tools and methods for extracting information about the structure of a large computer software system, exploring its structure, discovering problems in its design, and enabling refactoring
US20160050272A1 (en) * 2014-08-12 2016-02-18 Eingot Llc Zero-knowledge environment based social networking engine
US9270663B2 (en) * 2010-04-30 2016-02-23 T-Central, Inc. System and method to enable PKI- and PMI-based distributed locking of content and distributed unlocking of protected content and/or scoring of users and/or scoring of end-entity access means—added
US20160099917A1 (en) * 2014-10-06 2016-04-07 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
CN105491039A (en) 2015-11-27 2016-04-13 国网信息通信产业集团有限公司 Distributed software sharing system
US20160117501A1 (en) * 2010-07-15 2016-04-28 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US20160170743A1 (en) 2014-12-10 2016-06-16 Salesforce.Com, Inc. Template based software container
US20160170788A1 (en) * 2014-12-15 2016-06-16 Vmware, Inc. Handling disk state inheritance for forked virtual machines
WO2016099346A1 (en) 2014-12-15 2016-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and deployment module for managing a container to be deployed on a software platform
US9397910B2 (en) 2009-07-31 2016-07-19 Hewlett Packard Enterprise Development Lp Marking program files as belonging to an application
US9400741B1 (en) * 2014-06-30 2016-07-26 Emc Corporation Reclaiming space from file system hosting many primary storage objects and their snapshots
US20160253670A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd. Electronic device providing electronic payment function and operating method thereof
US20160253651A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd. Electronic device including electronic payment system and operating method thereof
US9442752B1 (en) * 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US20160294888A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing system
US20160294889A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing system
US20160294887A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing on a mobile device
US20160294559A1 (en) * 2015-04-06 2016-10-06 Vmware, Inc. Host-based digital signature verification for guest components
US20160299851A1 (en) * 2015-04-09 2016-10-13 Vmware, Inc. Isolating guest code and data using multiple nested page tables
US20160300080A1 (en) * 2015-01-14 2016-10-13 Netapp, Inc, Methods and systems for securing stored information
US9575793B1 (en) * 2014-08-26 2017-02-21 Amazon Technologies, Inc. Identifying kernel data structures
US9577829B1 (en) * 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US20170063810A1 (en) * 2015-07-28 2017-03-02 Hewlett-Packard Development Company, L.P. Shared symmetric key encryption
US20170098092A1 (en) * 2015-10-06 2017-04-06 Symantec Corporation Techniques for generating a virtual private container
US20170116424A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation Establishing trust between containers
US20170169213A1 (en) * 2015-12-14 2017-06-15 Lenovo (Beijing) Limited Electronic device and method for running applications in different security environments
US9686278B1 (en) * 2014-05-07 2017-06-20 Skyport Systems, Inc. Method and system for configuring computing devices
US20170177877A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry inspection
US20170180346A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
US20170177860A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry container image deployment
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
US20170185771A1 (en) * 2015-12-24 2017-06-29 Mingqiu Sun Techniques for monitoring integrity of os security routine
US20170187540A1 (en) * 2015-10-15 2017-06-29 Twistlock, Ltd. Detection of vulnerable root certificates in software containers
US20170187694A1 (en) * 2015-12-24 2017-06-29 Ben-Zion Friedman Scalable techniques for data transfer between virtual machines
US9697371B1 (en) * 2015-06-30 2017-07-04 Google Inc. Remote authorization of usage of protected data in trusted execution environments
US9703965B1 (en) * 2014-06-30 2017-07-11 EMC IP Holding Company LLC Secure containers for flexible credential protection in devices
US20170208055A1 (en) * 2015-01-05 2017-07-20 Amazon Technologies, Inc. Native authentication experience with failover
US9760428B1 (en) * 2013-12-19 2017-09-12 Amdocs Software Systems Limited System, method, and computer program for performing preventative maintenance in a network function virtualization (NFV) based communication network
US9760395B2 (en) * 2014-12-05 2017-09-12 International Business Machines Corporation Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
US20170293570A1 (en) * 2016-04-12 2017-10-12 Vmware, Inc. System and methods of an efficient cache algorithm in a hierarchical storage system
US20170322868A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Testing Application Programs Using a Virtual Machine
US20170322934A1 (en) * 2016-05-09 2017-11-09 International Business Machines Corporation Software version control without affecting a deployed container
US20170322869A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Transferring Application Software Between Virtual Machines
US20170322870A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Transferring Application Software from a Physical to a Virtual Computer System
US9838361B2 (en) * 2015-07-01 2017-12-05 Ari Birger Secure migration of virtual machines from source to target and transfer of VM descriptor and keys between physical servers
US20170353318A1 (en) * 2016-06-03 2017-12-07 Cryptography Research, Inc. Providing access to a hardware resource based on a canary value
US20170353444A1 (en) * 2016-06-06 2017-12-07 Illumina, Inc. Tenant-aware distributed application authentication
US9842117B1 (en) * 2014-12-29 2017-12-12 EMC IP Holding Company LLC Managing replication of file systems
US20170357496A1 (en) * 2016-06-12 2017-12-14 Intel Corporation Technologies for secure software update using bundles and merkle signatures
US9846899B1 (en) * 2012-08-31 2017-12-19 Amazon Technologies, Inc. Dynamic software licensing
US9847990B1 (en) * 2014-07-18 2017-12-19 Google Inc. Determining, by a remote system, applications provided on a device based on association with a common identifier
US20170372073A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US20170372074A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US20180032734A1 (en) * 2016-07-29 2018-02-01 Vmware, Inc. Secure booting of computer system
US20180032383A1 (en) * 2016-07-28 2018-02-01 Cisco Technology, Inc. Performing Transactions Between Application Containers
US9892265B1 (en) * 2015-03-31 2018-02-13 Veritas Technologies Llc Protecting virtual machine data in cloud environments
US20180068118A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
US20180095955A1 (en) * 2016-09-30 2018-04-05 EMC IP Holding Company LLC Managing data inconsistencies in files of file systems
US9948616B2 (en) * 2015-02-10 2018-04-17 Electronics And Telecommunications Research Institute Apparatus and method for providing security service based on virtualization
US20180144125A1 (en) * 2016-11-18 2018-05-24 Vmware, Inc. Immutable file storage
US20180176244A1 (en) * 2016-12-21 2018-06-21 Threat Stack, Inc. System and Method for Cloud-Based Operating System Event and Data Access Monitoring
US20180181655A1 (en) * 2016-12-22 2018-06-28 Vmware, Inc. Handling Large Streaming File Formats in Web Browsers
US10044695B1 (en) * 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US20180232517A1 (en) * 2014-09-03 2018-08-16 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US20180351941A1 (en) * 2017-06-05 2018-12-06 Amazon Technologies, Inc. Secure device-to-device process for granting access to a physical space
US20180357183A1 (en) * 2015-12-02 2018-12-13 Cryptography Research, Inc. Device with multiple roots of trust
US20180357086A1 (en) * 2017-06-13 2018-12-13 Intel Corporation Container virtual switching
US20180373885A1 (en) * 2017-06-21 2018-12-27 Ca, Inc. Hybrid on-premises/software-as-service applications
US10248345B1 (en) * 2016-02-26 2019-04-02 Veritas Technologies Llc Persisting data as information
US10338969B2 (en) * 2005-12-19 2019-07-02 Vmware, Inc. Managing a virtualized application workspace on a managed computing device
US20190227882A1 (en) * 2018-01-24 2019-07-25 Nicira, Inc. Upgrade backup in virtualized computing environments
US20190253523A1 (en) * 2018-02-14 2019-08-15 Eingot Llc Zero-knowledge environment based networking engine
US10396991B2 (en) * 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
US10397255B1 (en) * 2015-09-23 2019-08-27 StackRox, Inc. System and method for providing security in a distributed computation system utilizing containers

Patent Citations (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047241B1 (en) * 1995-10-13 2006-05-16 Digimarc Corporation System and methods for managing digital creative works
US20020198895A1 (en) * 1998-02-26 2002-12-26 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6813358B1 (en) * 1998-11-17 2004-11-02 Telcordia Technologies, Inc. Method and system for timed-release cryptosystems
US7353541B1 (en) * 1999-09-07 2008-04-01 Sony Corporation Systems and methods for content distribution using one or more distribution keys
US20060015720A1 (en) * 2000-03-14 2006-01-19 Sony Corporation Information providing apparatus and method, information processing apparatus and method, and program storage medium
US7082615B1 (en) * 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US20040151323A1 (en) * 2000-04-25 2004-08-05 Secure Data In Motion, Inc. Implementing nonrepudiation and audit using authentication assertions and key servers
US20040148500A1 (en) * 2000-04-25 2004-07-29 Secure Data In Motion, Inc. System for implementing business processes using key server events
US20030074552A1 (en) * 2000-04-25 2003-04-17 Secure Data In Motion Security server system
US20020010910A1 (en) * 2000-07-15 2002-01-24 International Business Machines Corporation Preferable modes of software package deployment
US20020027992A1 (en) * 2000-08-31 2002-03-07 Sony Corporation Content distribution system, content distribution method, information processing apparatus, and program providing medium
US20150235015A1 (en) * 2000-11-06 2015-08-20 Numecent Holdings, Inc. Optimized Server for Streamed Applications
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US8438298B2 (en) * 2001-02-14 2013-05-07 Endeavors Technologies, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7730297B1 (en) * 2002-02-06 2010-06-01 Adobe Systems Incorporated Automated public key certificate transfer
US7627768B2 (en) * 2002-03-26 2009-12-01 Oberthur Card Systems Sa Method and device for automatic validation of computer program using cryptography functions
US20040123109A1 (en) * 2002-09-16 2004-06-24 Samsung Electronics Co., Ltd. Method of managing metadata
US7568114B1 (en) * 2002-10-17 2009-07-28 Roger Schlafly Secure transaction processor
US20040107416A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Patching of in-use functions on a running computer system
US20040177260A1 (en) * 2003-03-06 2004-09-09 International Business Machines Corporation System and method for remote code integrity in distributed systems
US20040266523A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Secured networks in a gaming system environment
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US20040259640A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Layered security methods and apparatus in a gaming system environment
US20040259633A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Remote authentication of gaming software in a gaming system environment
US20040243807A1 (en) * 2003-05-30 2004-12-02 Microsoft Corporation Runtime digital signatures
US20050021962A1 (en) * 2003-06-16 2005-01-27 Microsoft Corporation System and method for securely delivering installation keys to a production facility
US20050071273A1 (en) * 2003-09-25 2005-03-31 Utstarcom, Inc. Method and Apparatus for Feature Rights Management in a Multilevel Hierarchy
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US20060101443A1 (en) 2004-10-25 2006-05-11 Jim Nasr Source code management system and method
US20060161791A1 (en) * 2005-01-19 2006-07-20 Bennett Charles H Access-controlled encrypted recording system for site, interaction and process monitoring
US20060282897A1 (en) * 2005-05-16 2006-12-14 Caleb Sima Secure web application development and execution environment
US20060259973A1 (en) * 2005-05-16 2006-11-16 S.P.I. Dynamics Incorporated Secure web application development environment
US20070011667A1 (en) * 2005-05-25 2007-01-11 Saravanan Subbiah Lock management for clustered virtual machines
US8499151B2 (en) * 2005-06-30 2013-07-30 Intel Corporation Secure platform voucher service for software components within an execution environment
US20080046680A1 (en) * 2005-07-14 2008-02-21 Minehisa Nagata Verification Method, Verification Program, Recording Medium, Information Processor, and Integrated Circuit
US20070027934A1 (en) * 2005-07-29 2007-02-01 Burkhard Roehrle Software release validation
US8087092B2 (en) * 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
US10338969B2 (en) * 2005-12-19 2019-07-02 Vmware, Inc. Managing a virtualized application workspace on a managed computing device
US20070288904A1 (en) * 2006-05-16 2007-12-13 International Business Machines Corporation Method, system and program product for validating a runtime environment
US7739663B2 (en) * 2006-05-16 2010-06-15 International Business Machines Corporation Method, system and program product for validating a runtime environment
US20080163383A1 (en) * 2006-12-29 2008-07-03 Kumar Mohan J Methods and apparatus for authenticating components of processing systems
US20080209556A1 (en) * 2007-01-19 2008-08-28 International Business Machines Corporation Method and device for verification of code module in virtual machine
US8108856B2 (en) * 2007-03-30 2012-01-31 Intel Corporation Method and apparatus for adaptive integrity measurement of computer software
US9461819B2 (en) * 2007-05-23 2016-10-04 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US8700532B2 (en) * 2007-05-23 2014-04-15 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US20120246478A1 (en) * 2007-05-23 2012-09-27 Nec Corporation Information sharing system, computer, project managing server, and infomation sharing method used in them
US20110179412A1 (en) * 2007-05-23 2011-07-21 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US20090064114A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Systems, methods, and computer products for automated injection of java bytecode instructions for java load time optimization via runtime checking with upcasts
US20120216045A1 (en) * 2007-10-07 2012-08-23 Jean-Marc Seguin Method and system for integrated securing and managing of virtual machines and virtual appliances
US8464207B2 (en) 2007-10-12 2013-06-11 Novell Intellectual Property Holdings, Inc. System and method for tracking software changes
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
US20090210874A1 (en) * 2008-02-20 2009-08-20 Peter William Harris Non-native program execution across multiple execution environments
US20090307666A1 (en) * 2008-06-04 2009-12-10 Microsoft Corporation Real-time validation of interactive applications
US20110099362A1 (en) * 2008-06-23 2011-04-28 Tomoyuki Haga Information processing device, encryption key management method, computer program and integrated circuit
US20100005028A1 (en) * 2008-07-07 2010-01-07 International Business Machines Corporation Method and apparatus for interconnecting a plurality of virtual world environments
US20100011446A1 (en) * 2008-07-11 2010-01-14 Microsoft Corporation Verification of un-trusted code for consumption on an insecure device
US20110173643A1 (en) * 2008-10-10 2011-07-14 Nicolson Kenneth Alexander USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
US20100107160A1 (en) * 2008-10-29 2010-04-29 Novell, Inc. Protecting computing assets with virtualization
US8285999B1 (en) * 2008-12-05 2012-10-09 The Research Foundation Of State University Of New York System and method for authenticating remote execution
US20100205164A1 (en) * 2009-02-06 2010-08-12 International Business Machines Corporation Maintaining Data Integrity
US20100262830A1 (en) * 2009-04-10 2010-10-14 Masafumi Kusakawa Authentication device, authentication method, and program background of the invention
US20110010712A1 (en) * 2009-06-18 2011-01-13 Thober Mark A Methods for Improving Atomicity of Runtime Inspections
US20120110578A1 (en) * 2009-07-22 2012-05-03 Yu Yang Data processing system and method
US9397910B2 (en) 2009-07-31 2016-07-19 Hewlett Packard Enterprise Development Lp Marking program files as belonging to an application
US8826013B1 (en) * 2009-09-23 2014-09-02 Trend Micro Incorporated Protection of customer data in cloud virtual machines using a central management server
US9270663B2 (en) * 2010-04-30 2016-02-23 T-Central, Inc. System and method to enable PKI- and PMI-based distributed locking of content and distributed unlocking of protected content and/or scoring of users and/or scoring of end-entity access means—added
US20160117501A1 (en) * 2010-07-15 2016-04-28 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9767271B2 (en) * 2010-07-15 2017-09-19 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US20120084567A1 (en) * 2010-10-04 2012-04-05 Electronics And Telecommunications Research Institute Group signature system and method providing controllable linkability
US20120290870A1 (en) * 2010-11-05 2012-11-15 Interdigital Patent Holdings, Inc. Device validation, distress indication, and remediation
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
US8327441B2 (en) * 2011-02-17 2012-12-04 Taasera, Inc. System and method for application attestation
US20120250858A1 (en) * 2011-04-01 2012-10-04 Naveed Iqbal Application usage continuum across platforms
US8601583B1 (en) * 2011-04-14 2013-12-03 Trend Micro Incorporated Certification of virtual machine images in cloud computing environments
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US20130007465A1 (en) * 2011-06-30 2013-01-03 Advance Green Technology Group, Inc. Apparatus, Systems and Method for Virtual Desktop Access and Management
US20130007889A1 (en) * 2011-06-30 2013-01-03 International Business Machines Corporation Trusted computing source code escrow and optimization
US20130065667A1 (en) * 2011-09-09 2013-03-14 Igt Virtual ticket-in and ticket-out on a gaming machine
US8707050B1 (en) * 2011-12-23 2014-04-22 Emc Corporation Integrity self-check of secure code within a VM environment using native VM code
US8938611B1 (en) * 2012-02-02 2015-01-20 Trend Micro, Inc. Enterprise cloud security gateway
US20130215446A1 (en) * 2012-02-20 2013-08-22 Seiko Epson Corporation Function restriction release system of electronic apparatus, function restriction release method of electronic apparatus, and electronic apparatus
US20180068118A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
US20150163248A1 (en) * 2012-04-13 2015-06-11 Cisco Technology, Inc. Automatic curation and modification of virtualized computer programs
US9003372B2 (en) * 2012-08-18 2015-04-07 Luminal, Inc. System and method for replacing software components with corresponding known-good software components without regard to whether the software components have been compromised or potentially compromised
US20140053274A1 (en) * 2012-08-18 2014-02-20 Lume Systems, Inc. System and method for replacing software components with corresponding known-good software components without regard to whether the software components have been compromised or potentially compromised
US9846899B1 (en) * 2012-08-31 2017-12-19 Amazon Technologies, Inc. Dynamic software licensing
US9767284B2 (en) * 2012-09-14 2017-09-19 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US20150286821A1 (en) * 2012-09-14 2015-10-08 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US20140096135A1 (en) * 2012-10-01 2014-04-03 International Business Machines Corporation Method for authenticated distribution of virtual machine images
US9069782B2 (en) * 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20140101264A1 (en) * 2012-10-05 2014-04-10 Cvtrust Sprl Centralized method for certifying credentials
US20140230068A1 (en) * 2013-02-12 2014-08-14 Rajendra Rao Kundapur System and method for packaging and authenticating a software product
US20150358334A1 (en) * 2013-03-14 2015-12-10 Telefonaktiebolaget L M Ericsson (Publ) Method for authenticating a client program by a remote data processing system
US20150013015A1 (en) * 2013-03-14 2015-01-08 General Instrument Corporation Method and apparatus for group licensing of device features
US20150019852A1 (en) * 2013-07-12 2015-01-15 International Games System Co., Ltd. Verification method for system execution environment
US20150039891A1 (en) * 2013-08-02 2015-02-05 Ologn Technologies Ag Secure Server on a System with Virtual Machines
US20150046350A1 (en) * 2013-08-06 2015-02-12 Virtual Purple, Llc Ensuring software quality using a virtual appliance
US20150106904A1 (en) * 2013-10-10 2015-04-16 Fujitsu Limited Communication terminal and communication processing method
US9760428B1 (en) * 2013-12-19 2017-09-12 Amdocs Software Systems Limited System, method, and computer program for performing preventative maintenance in a network function virtualization (NFV) based communication network
US20150199515A1 (en) * 2014-01-14 2015-07-16 Citrix Systems, Inc. Evaluating application integrity
US20150254451A1 (en) * 2014-03-04 2015-09-10 Amazon Technologies, Inc. Authentication of virtual machine images using digital certificates
US20150271679A1 (en) * 2014-03-19 2015-09-24 Electronics And Telecommunications Research Institute System and method of verifying integrity of software
US20150310427A1 (en) * 2014-04-24 2015-10-29 Xilix Llc Method, apparatus, and system for generating transaction-signing one-time password
US9686278B1 (en) * 2014-05-07 2017-06-20 Skyport Systems, Inc. Method and system for configuring computing devices
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US20150347194A1 (en) * 2014-05-29 2015-12-03 International Business Machines Corporation Managing a Virtual Machine Instance
US20150363192A1 (en) 2014-06-16 2015-12-17 Silverthread, Inc. Computer-implemented tools and methods for extracting information about the structure of a large computer software system, exploring its structure, discovering problems in its design, and enabling refactoring
US9400741B1 (en) * 2014-06-30 2016-07-26 Emc Corporation Reclaiming space from file system hosting many primary storage objects and their snapshots
US9703965B1 (en) * 2014-06-30 2017-07-11 EMC IP Holding Company LLC Secure containers for flexible credential protection in devices
US9847990B1 (en) * 2014-07-18 2017-12-19 Google Inc. Determining, by a remote system, applications provided on a device based on association with a common identifier
US20160050272A1 (en) * 2014-08-12 2016-02-18 Eingot Llc Zero-knowledge environment based social networking engine
US9686356B2 (en) * 2014-08-12 2017-06-20 Eingot Llc Zero-knowledge environment based social networking engine
US9575793B1 (en) * 2014-08-26 2017-02-21 Amazon Technologies, Inc. Identifying kernel data structures
US10044695B1 (en) * 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9577829B1 (en) * 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US20180232517A1 (en) * 2014-09-03 2018-08-16 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US9442752B1 (en) * 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US10389686B2 (en) * 2014-10-06 2019-08-20 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US20160099917A1 (en) * 2014-10-06 2016-04-07 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US9760395B2 (en) * 2014-12-05 2017-09-12 International Business Machines Corporation Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
US20160170743A1 (en) 2014-12-10 2016-06-16 Salesforce.Com, Inc. Template based software container
US20160170788A1 (en) * 2014-12-15 2016-06-16 Vmware, Inc. Handling disk state inheritance for forked virtual machines
WO2016099346A1 (en) 2014-12-15 2016-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and deployment module for managing a container to be deployed on a software platform
US9842117B1 (en) * 2014-12-29 2017-12-12 EMC IP Holding Company LLC Managing replication of file systems
US20170208055A1 (en) * 2015-01-05 2017-07-20 Amazon Technologies, Inc. Native authentication experience with failover
US20160300080A1 (en) * 2015-01-14 2016-10-13 Netapp, Inc, Methods and systems for securing stored information
US9948616B2 (en) * 2015-02-10 2018-04-17 Electronics And Telecommunications Research Institute Apparatus and method for providing security service based on virtualization
US20160253670A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd. Electronic device providing electronic payment function and operating method thereof
US20160253651A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd. Electronic device including electronic payment system and operating method thereof
US9892265B1 (en) * 2015-03-31 2018-02-13 Veritas Technologies Llc Protecting virtual machine data in cloud environments
US20160294887A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing on a mobile device
US20160294889A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing system
US20160294888A1 (en) * 2015-03-31 2016-10-06 Vmware, Inc. Cloud-based conferencing system
US20160294559A1 (en) * 2015-04-06 2016-10-06 Vmware, Inc. Host-based digital signature verification for guest components
US20160299851A1 (en) * 2015-04-09 2016-10-13 Vmware, Inc. Isolating guest code and data using multiple nested page tables
US9697371B1 (en) * 2015-06-30 2017-07-04 Google Inc. Remote authorization of usage of protected data in trusted execution environments
US9838361B2 (en) * 2015-07-01 2017-12-05 Ari Birger Secure migration of virtual machines from source to target and transfer of VM descriptor and keys between physical servers
US20170063810A1 (en) * 2015-07-28 2017-03-02 Hewlett-Packard Development Company, L.P. Shared symmetric key encryption
CN105069353A (en) 2015-08-11 2015-11-18 武汉大学 Security reinforcement method for credible container based on Docker
US10397255B1 (en) * 2015-09-23 2019-08-27 StackRox, Inc. System and method for providing security in a distributed computation system utilizing containers
US20170098092A1 (en) * 2015-10-06 2017-04-06 Symantec Corporation Techniques for generating a virtual private container
US20170187540A1 (en) * 2015-10-15 2017-06-29 Twistlock, Ltd. Detection of vulnerable root certificates in software containers
US20170116424A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation Establishing trust between containers
CN105491039A (en) 2015-11-27 2016-04-13 国网信息通信产业集团有限公司 Distributed software sharing system
US20180357183A1 (en) * 2015-12-02 2018-12-13 Cryptography Research, Inc. Device with multiple roots of trust
US20170169213A1 (en) * 2015-12-14 2017-06-15 Lenovo (Beijing) Limited Electronic device and method for running applications in different security environments
US20170177877A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry inspection
US20170177860A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry container image deployment
US20170180346A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
US20170185771A1 (en) * 2015-12-24 2017-06-29 Mingqiu Sun Techniques for monitoring integrity of os security routine
US20170187694A1 (en) * 2015-12-24 2017-06-29 Ben-Zion Friedman Scalable techniques for data transfer between virtual machines
US10248345B1 (en) * 2016-02-26 2019-04-02 Veritas Technologies Llc Persisting data as information
US20170293570A1 (en) * 2016-04-12 2017-10-12 Vmware, Inc. System and methods of an efficient cache algorithm in a hierarchical storage system
US20170322870A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Transferring Application Software from a Physical to a Virtual Computer System
US20170322869A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Transferring Application Software Between Virtual Machines
US20170322868A1 (en) * 2016-05-03 2017-11-09 The Boeing Company Testing Application Programs Using a Virtual Machine
US20170322934A1 (en) * 2016-05-09 2017-11-09 International Business Machines Corporation Software version control without affecting a deployed container
US20170353318A1 (en) * 2016-06-03 2017-12-07 Cryptography Research, Inc. Providing access to a hardware resource based on a canary value
US20170353444A1 (en) * 2016-06-06 2017-12-07 Illumina, Inc. Tenant-aware distributed application authentication
US20170357496A1 (en) * 2016-06-12 2017-12-14 Intel Corporation Technologies for secure software update using bundles and merkle signatures
US20170372073A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US20170372074A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US10396991B2 (en) * 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
US20180032383A1 (en) * 2016-07-28 2018-02-01 Cisco Technology, Inc. Performing Transactions Between Application Containers
US20180032734A1 (en) * 2016-07-29 2018-02-01 Vmware, Inc. Secure booting of computer system
US20180095955A1 (en) * 2016-09-30 2018-04-05 EMC IP Holding Company LLC Managing data inconsistencies in files of file systems
US20180144125A1 (en) * 2016-11-18 2018-05-24 Vmware, Inc. Immutable file storage
US20180176244A1 (en) * 2016-12-21 2018-06-21 Threat Stack, Inc. System and Method for Cloud-Based Operating System Event and Data Access Monitoring
US20180181655A1 (en) * 2016-12-22 2018-06-28 Vmware, Inc. Handling Large Streaming File Formats in Web Browsers
US20180351941A1 (en) * 2017-06-05 2018-12-06 Amazon Technologies, Inc. Secure device-to-device process for granting access to a physical space
US20180357086A1 (en) * 2017-06-13 2018-12-13 Intel Corporation Container virtual switching
US20180373885A1 (en) * 2017-06-21 2018-12-27 Ca, Inc. Hybrid on-premises/software-as-service applications
US20190227882A1 (en) * 2018-01-24 2019-07-25 Nicira, Inc. Upgrade backup in virtualized computing environments
US20190253523A1 (en) * 2018-02-14 2019-08-15 Eingot Llc Zero-knowledge environment based networking engine

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Andrew Phillips, "8 Questions You Need to Ask About Microservices, Containers & Docker in 2015", XebiaLabs Blog (http://blog.xebialabs.com), Dec. 31, 2014, 4 pages.
Dmitry Savchenko and Gleb Radchenko, "Microservices Validation: Methodology and Implementation", South Ural State University, Chelyabinsk, Russia ([email protected]), 8 pages.
Kenneth Owens, "Programmable Microservices Infrastructure with Mantl Release 1", Cisco Blogs (http://blogs.cisco.com), Feb. 16, 2016, 11 pages.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11038678B2 (en) * 2018-11-09 2021-06-15 Microsoft Technology Licensing, Llc Trusted key diversity on cloud edge devices
US11776090B2 (en) 2021-04-12 2023-10-03 Sas Institute Inc. Dynamic per-node pre-pulling in distributed computing
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications
US12095923B2 (en) * 2021-10-21 2024-09-17 Nokia Solutions And Networks Oy Securing containerized applications

Also Published As

Publication number Publication date
US20180109387A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
US10666443B2 (en) Continued verification and monitoring of application code in containerized execution environment
US11429617B2 (en) System and method for blockchain-based data synchronization
AU2020261982B2 (en) Extracting data from a blockchain network
EP3522051B1 (en) Detection method, device and system for copyright protection
US11341121B2 (en) Peer partitioning
US11663348B2 (en) Dynamic entitlement for blockchain data
US9589153B2 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
CN114096966A (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
Zhang et al. LedgerGuard: Improving blockchain ledger dependability
Prusty Blockchain for Enterprise: Build scalable blockchain applications with privacy, interoperability, and permissioned features
KR20230034931A (en) Cryptographic Data Entry Blockchain Data Structure
US20230342437A1 (en) Blockchain-based system and method for publishing an operating system
US10834122B2 (en) Prevention of majority attacks
Rao et al. A new tool for detecting tampering of big data programs
Kurochkin et al. Ensuring Data Integrity Using Merkle Trees in Desktop Grid Systems
US20240346163A1 (en) Processing transactions using nested data objects
Cong Cop: broad-spectrum, dependable, and secure protocol enforcement mechanism for multi-agent systems
Martins Recoverable Token
Kouchaksaraei Vulnerability in cloud computing. Securing SOAP message using SESoap method

Legal Events

Date Code Title Description
AS Assignment

Owner name: RED HAT, INC., NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VYAS, JAY;MARTHI, SUNEEL;SIGNING DATES FROM 20161019 TO 20161020;REEL/FRAME:040078/0632

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

OSZAR »