Methods, systems, and programs for identifying abnormal containers.
Dynamic profiling of container runtime behavior in clusters addresses security risks and overhead by identifying and mitigating abnormal containers, enhancing availability and reliability.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2022-11-24
- Publication Date
- 2026-04-10
AI Technical Summary
The increased adoption of container technology has created new attack vectors for hackers due to the lack of reliable malicious image signatures and computational overhead in identifying container behavior, especially in third-party created containers, leading to security risks and slowed deployments.
Dynamic profiling of container runtime behavior to maintain a dynamic baseline and identify abnormal containers by clustering with peer containers, using a selective subset of clustered containers to improve security and mitigate irregular behavior.
Enhances container availability, reliability, and stability by dynamically profiling peer containers, reducing computational overhead and identifying anomalous containers for immediate mitigation, thus improving security and deployment efficiency.
Smart Images

Figure 0007843848000001 
Figure 0007843848000002 
Figure 0007843848000003
Abstract
Description
Technical Field
[0001] The present invention generally relates to the field of virtualization, and more particularly to cluster container protection.
Background Art
[0002] Operating system (OS) virtualization refers to an operating system paradigm in which the kernel allows for the existence of multiple isolated user-space instances. These instances, called containers, zones, virtual personal servers, partitions, virtual environments, virtual kernels, or jails, can appear like a real computer from the perspective of the programs they contain. While a computer program running on a normal operating system can access all of that computer's resources (connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities), a program running inside a container can only access the contents of the container and the devices assigned to it. Operating system-level virtualization is commonly used in virtual hosting environments to securely allocate finite hardware resources among a large number of independent users. System administrators can also virtualize server hardware to consolidate it by moving services located on separate hosts into containers on a single host (e.g., a server). Containers are commonly used for improved security, hardware independence, and added resource management capabilities. Operating system-level virtualization implementations with live migration capabilities can also be used to dynamically load balance containers across nodes in a cluster. Because programs within a virtual partition use the operating system's standard system call interface and do not need to be emulated or run on an intermediate virtual machine, as in full virtualization and paravirtualization, operating system-level virtualization typically has less overhead than full virtualization. This form of virtualization also does not require hardware support for efficient performance.
[0003] Operating system-level virtualization is less flexible than other virtualization approaches (e.g., containerization) because it cannot host a guest operating system or a guest kernel different from the host operating system. Several implementations offer a file-level copy-on-write (CoW) mechanism. The most common is sharing a standard file system between partitions, with partitions that modify files automatically creating copies. This is easier to back up, more space-efficient, and easier to cache than the block-level copy-on-write scheme common to system-wide virtualization. However, system-wide virtualization deals with non-native file systems, allowing for snapshots of the entire system state and rollbacks. [Overview of the Initiative]
[0004] Embodiments of the present invention disclose computer-implemented methods, computer program products, and systems. The computer-implemented method includes one or more computer processors determining a runtime feature set for a first container, the runtime feature set aggregates the temporally arranged container behaviors. One or more computer processors cluster the first container with one or more peer containers or peer pods based on shared container purposes, similar container behaviors, and similar container file structures. One or more computer processors determine an additional runtime feature set for each peer container. One or more computer processors calculate the difference between the first container and each peer container. One or more computer processors identify the first container as abnormal if the calculated difference exceeds a difference threshold. [Brief explanation of the drawing]
[0005] [Figure 1]This is a functional block diagram illustrating a distributed data processing environment based on one embodiment of the present invention. [Figure 2] This flowchart shows the program's operation steps on a server computer in the data processing environment of Figure 1 for container protection through dynamic profiling, according to one embodiment of the present invention. [Figure 3] This is a block diagram of the components of a computing device and server computer according to one embodiment of the present invention. [Modes for carrying out the invention]
[0006] Most modern businesses and organizations are containerizing critical enterprise applications to cope with rapidly changing environmental and system requirements. This increased adoption of container technology has created new attack vectors for hackers and malicious actors who exploit the lack of new container protection technologies and techniques. This problem is exacerbated by the lack of readily available, highly reliable malicious image signatures, allowing malicious actors to circumvent existing malicious image signatures by altering container hashes with minimal effort and cost. Furthermore, many containers are created by third parties or business partners within specific managed environments, making it difficult to build container reputation and behavioral profiles without identifying and determining the correct context. Third-party container creation also increases the computational cost of identifying baselines for reputation and behavioral container profiles. Current systems sample container behavior over fixed intervals, such as 24-hour periods, increasing security risks during these fixed intervals, while increasing computational overhead and slowing container deployments.
[0007] Embodiments of the present invention improve containers and container systems through dynamic profiling of container runtime behavior while maintaining a dynamic baseline from a selective subset of clustered containers. Embodiments of the present invention improve container availability, reliability, and stability by incorporating identified non-anomalous containers or pods into a replica set defined by a cluster of peer containers. Embodiments of the present invention improve container or pod security by identifying and mitigating irregular or anomalous containers or pods based on baseline deviations. Embodiments of the present invention mitigate the computational overhead of anomalous containers by profiling peer containers or pods solely for a shared, identified purpose. Implementations of embodiments of the present invention can take various forms, and details of exemplary implementations will be described later with reference to the figures.
[0008] Next, the present invention will be described in detail with reference to the figures.
[0009] Figure 1 is a functional block diagram showing a distributed data processing environment (generally indicated as 100) according to one embodiment of the present invention. In this specification, the term “distributed” refers to a computer system comprising multiple physically distinct devices operating together as a single computer system. Figure 1 is merely an illustrative example of one implementation and does not imply any limitation on the environment in which different embodiments may be implemented. Those skilled in the art can make many modifications to the depicted environment without departing from the scope of the invention as described in the claims.
[0010] The distributed data processing environment 100 includes containers 110 and server computers 120 connected on a network 102. The network 102 can be, for example, a communications network, a local area network (LAN), a wide area network (WAN), the internet, or a combination of these three, and can include wired, wireless, or fiber optic connections. The network 102 can include one or more wired, wireless, or both networks capable of receiving and transmitting data, voice, or video signals, or combinations thereof, including multimedia signals containing voice, data, and video information. Generally, the network 102 can be any combination of connections and protocols supporting communication between the containers 110, server computers 120, and other computing devices (not shown) within the distributed data processing environment 100. In various embodiments, the network 102 operates locally via wired, wireless, or optical connections and can be any combination of connections and protocols (e.g., personal area network (PAN), near-field communication (NFC), laser, infrared, ultrasound, etc.).
[0011] Container 110 represents a unit of software that packages code and dependencies. For example, container 110 hosts a packaged web server. In one embodiment, container 110 is one of several containers contained within a pod, each container working together to complete a task (i.e., a container purpose). For example, an exemplary pod consists of a container containing a web server that works in conjunction with another container containing a load balancer. In another embodiment, container 110 may reside on a server computer 120 or on another computing device (not shown) connected via a network 102.
[0012] The server computer 120 can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, transmitting, and processing data. In another embodiment, the server computer 120 can represent a server computing system that uses multiple computers as a server system, such as in a cloud computing environment. In yet another embodiment, the server computer 120 can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smartphone, or any programmable electronic device that can communicate via network 102 with other computing devices (not shown) within container 110 and the distributed data processing environment 100. In yet another embodiment, the server computer 120 can represent a computing system that utilizes clustered computers and components (e.g., a database server computer, an application server computer, etc.) that function as a single pool of seamless resources when accessed within the distributed data processing environment 100. In the embodiments depicted, the server computer 120 includes a profile 122 and a program 150. In other embodiments, the server computer 120 may include other applications, databases, programs, etc., not depicted in the distributed data processing environment 100. The server computer 120 may include internal and external hardware components, as further depicted and described with respect to Figure 3.
[0013] Profile 122 is a repository for data used by program 150. In the embodiment depicted, profile 122 resides on server computer 120. In another embodiment, profile 122 may reside elsewhere within the distributed data processing environment 100, provided that program 150 can access profile 122. The database is an organized collection of profile data. Profile 122 can be implemented on any type of storage device capable of storing data and configuration files that can be accessed and utilized by program 150, such as a database server, hard disk drive, or flash memory. In one embodiment, profile 122 stores data (i.e., runtime feature sets) collected by program 150 from one or more running containers, pods, clusters, or replica sets. In one embodiment, profile 122 may include, but is not limited to, a historical baseline and container behavior such as system calls, accessed files, running processes, and communicated network entities.
[0014] Program 150 is a program for container protection by dynamic profiling. In various embodiments, Program 150 can implement the following steps: determining the execution time feature set of a first container, where the execution time feature set includes aggregated temporally arranged container behaviors; clustering the first container with one or more peer containers or peer pods based on shared container purposes, similar container behaviors, and similar container file structures; determining an additional execution time feature set for each peer container; calculating the difference between the first container and each peer container; and identifying the first container as abnormal if the calculated difference exceeds a difference threshold. In the embodiments described, Program 150 is a standalone software program. In other embodiments, the functions of Program 150, or any combination thereof, can be incorporated into a single software program. In some embodiments, Program 150 may be located on another computing device (not shown) but can still communicate over the network 102. In various embodiments, the client version of the program 150 resides in the container 110, any other computing device (not shown) within the distributed data processing environment 100, or both. The program 150 is depicted and described in more detail with respect to Figure 2.
[0015] The present invention may include various available data sources, for example, profile 122. These data sources may include personal storage devices, data, content, or information that the user does not wish to be processed. Processing refers to any action or set of actions performed with respect to personal data, whether automated or not, such as collection, recording, organizing, structuring, storing, adapting, altering, retrieving, consulting, using, or disclosing by transmission, distribution, or otherwise making available, combining, restricting, erasing, or destruction. Program 150 provides informed consent, along with specific notes regarding the collection of personal data, so that the user can opt in or opt out of the processing of personal data. Consent can take several forms. Opt-in consent may require the user to take a positive action before personal data is processed. Alternatively, opt-out consent may require the user to take a positive action to prevent the processing of personal data before the data is processed. Program 150 enables authenticated and secure processing of personal data, such as user information, including tracking information, as well as personally identifiable information and sensitive personal information. Program 150 provides information about personal data and the characteristics of its processing (e.g., type, scope, purpose, duration, etc.). Program 150 provides users with copies of their stored personal data. Program 150 enables the correction or completion of incorrect or incomplete personal data. Program 150 enables the immediate deletion of personal data.
[0016] Figure 2 shows a flowchart 200 illustrating the operation steps of a program 150 for container protection by dynamic profiling, according to one embodiment of the present invention.
[0017] Program 150 determines the container's runtime feature set (step 202). In one embodiment, program 150 starts in response to the start of one or more containers (i.e., the first container) or the introduction of a replica group. In another embodiment, program 150 starts in response to an event or user request to protect a container, cluster, or replica set. Program 150 monitors the first container for system calls, accessed files, running processes, and communicated network entities. In one embodiment, program 150 encodes a representation of the container's activity into a compact form that records how the container interacts within its respective context (e.g., environment, configuration parameters, environment variables). In this embodiment, program 150 connects container behavior (e.g., file, network, process behavior) to network and file access activity while providing the container context. In a further embodiment, program 150 records the type and number of system calls, the number of files touched, the number of processes, the number of child processes, the number of open or listening ports, the number of inbound networks, and the number of outbound connections.
[0018] In one embodiment, program 150 aggregates time-sequential container operations as a single correlated element called a “flow.” For example, program 150 identifies file open-write-close operations completed within a 5-minute period and aggregates this operation with other file flows (e.g., file open, read / write / truncate, file close) and network flows (e.g., connection creation, send / receive, connection closing) within the same 5-minute period. In another embodiment, program 150 collects general container information such as the number of I / O (input / output) operations, access to / proc, and the number of user datagram protocol (UDP) packets sent. In one embodiment, program 150 collects pod operations if a monitor container is contained within a collaboration pod of an interworking pod container. In this embodiment, pod operations are aggregated, time-sequential container operations from each container within the pod. In another embodiment, program 150 collects container metadata such as container environment variables or settings, associated replica sets, or the names and tags of associated source images.
[0019] Program 150 clusters the containers using the determined runtime feature set (step 204). Program 150 matches the determined containers with similar (i.e., peer) containers or pods and clusters them. In one embodiment, the user provides the container or pod purpose. In another embodiment, Program 150 identifies the purpose of the first container or first pod using the determined runtime feature set, as described in step 202. For example, Program 150 records a significant amount of container network data being transferred on port 80 and, based on history or known containers, determines that the container is a web server (i.e., the purpose of the container is known). In another embodiment, Program 150 identifies all folders and files contained within the container and compares the identified file and folder information and metadata with information and metadata related to potential peer containers (e.g., historical containers, containers running in different environments or regions, publicly running containers, etc.). In this embodiment, program 150 can determine the purpose of a container by comparing any combination of attributes such as file name, folder name, parent folder, subfolder, associated permissions, creation date, modification date, symbol link, file size, folder size, and file type, when the container purpose is known for past containers. In one embodiment, program 150 uses the compared peer container file systems to calculate a similarity score, where a higher similarity score indicates a higher likelihood of shared purpose. In one embodiment, program 150 clusters the first container or first pod based on the identified container or pod purpose. In one embodiment, program 150 clusters the first container into multiple peer containers using one or more clustering algorithms.In a further embodiment, program 150 utilizes density-based spatial clustering of applications with noise (DBSCAN) to cluster containers or pods that behave similarly (e.g., exceeding a similarity threshold). In another embodiment, program 150 clusters containers or pods with peer containers or pods in a replica set.
[0020] Program 150 determines a second set of execution time features for each peer container in the container cluster (step 206). Program 150 performs the methods and techniques described in step 202 for each container or pod in the container cluster, as described in step 204. In one embodiment, Program 150 is attached to each container or pod in the cluster of peer containers and dynamically profiles each container or pod. In one embodiment, Program 150 removes peer containers that deviate from the cluster (e.g., within the mean or interval), at least initially. In a further embodiment, Program 150 aggregates the temporally positioned cluster behavior based on the aggregated second set of execution time features. In one embodiment, Program 150 derives a baseline (i.e., profiled) set of execution time features based on the aggregated second set of execution time features over a specific period, e.g., aggregated network traffic averaged over a 10-minute period. In this embodiment, the baseline set of execution time features represents the standard or healthy behavior of the container or pod. In these embodiments, program 150 continuously records the execution time feature set from each peer container and dynamically adjusts the baseline in accordance with the newly recorded execution time feature set. This embodiment allows program 150 to dynamically adjust the baseline despite any limitations related to the sampling rate or sampling interval. In this embodiment, program 150 adjusts the baseline in accordance with one or more determined execution time feature sets.
[0021] Program 150 identifies an abnormal container (step 208). Program 150 sequentially records the execution time feature set from the first container and from each peer container in the cluster. In one embodiment, Program 150 sequentially compares the execution time feature set from the first container with that of the peer containers in the encompassing cluster. In this embodiment, Program 150 detects and identifies abnormal container behavior so that security vulnerabilities (e.g., zero-day attacks) are discovered and mitigated. In one embodiment, Program 150 calculates or derives the difference or deviation (e.g., squared distance from the cluster mean) between each peer container (i.e., baseline) and the first container. In another embodiment, the variance is calculated from a percentage vector of system calls of each type, the number of aggregated flows, predefined items observed over a predefined time interval, the number of files touched, the number of files created, and the number of network connections or connected clients. In one embodiment, program 150 identifies a first container or any peer container as abnormal if its respective variance or deviation exceeds a predefined threshold. In one embodiment, program 150 adjusts the threshold based on the identified container purpose, thereby decreasing the threshold in response to an identified critical container purpose, such as a primary customer database.
[0022] Program 150 corrects the identified anomalous container (step 210). In response to the identified anomalous container, Program 150 initiates one or more remedial or mitigation actions. In one embodiment, Program 150 utilizes a container orchestration system to recover or replace the anomalous container with a replica container included in the associated replica set. In this embodiment, a new container is created to replace the anomalous container without disrupting the environment. In one embodiment, Program 150 calculates a container runtime risk level based on the level of variation or deviation compared to the significance or enterprise importance level of the container (e.g., the significance or effect of the container on a business process, replica set, or pod or combination thereof). In one embodiment, Program 150 uses the runtime risk level to adjust the difference threshold, similarity threshold, and difference frequency threshold, where a risky container has a lower threshold (i.e., the threshold is triggered more frequently). In one embodiment, Program 150 establishes a difference frequency threshold that allows a container to deviate one or more times until the deviation exceeds the frequency threshold. In this embodiment, program 150 adjusts the difference occurrence frequency threshold based on the container purpose. In another embodiment, if an outlier is repeated within a specified period in multiple peer containers or replica sets, program 150 adjusts the threshold to reduce the outlier repetitions.
[0023] In one embodiment, the program 150 implements security practices for abnormal containers, such as downgrading to non-privileged users, limiting resource usage, sandboxing critical processes, restricting volume mounts, and binding privileged ports. In another embodiment, the program 150 enables the program 150 to discover or identify information regarding the origin and destination of abnormal containers, and converts the abnormal containers into honeypots. In another embodiment, the program 150 automatically places abnormal containers in a sandbox host or a host's sandbox cluster (e.g., removing access rights to important systems, read-only environment, increasing backup rate, etc.). In one embodiment, the program 150 trains a model (i.e., a neural network) with a determined set of runtime features and a specified abnormal container. In this embodiment, since the trained model is supplied with a continuous set of runtime features, the program 150 uses the trained model to identify future abnormal containers. In one embodiment, the program 150 replaces a specified abnormal container within a replica set with one or more equivalent containers, and transfers the usable assets of the abnormal container to the one or more equivalent containers while maintaining the structure and settings of the one or more equivalent containers.
[0024] FIG. 3 shows a block diagram 300 illustrating the components of the server computer 120 according to an exemplary embodiment of the present invention. It should be understood that FIG. 3 is merely illustrative of one implementation and does not imply any limitations regarding the environments in which different embodiments are implemented. Many modifications can be made to the depicted environment.
[0025] Server computer 120 includes a communication fabric 304 that provides communication among a cache 303, a memory 302, a persistent storage 305, a communication unit 307, and an input / output (I / O) interface 306. The communication fabric 304 can be implemented in any architecture designed to transfer data or control information or both among processors (such as microprocessors, communication, and network processors, etc.), system memory, peripheral devices, and any other hardware components within the system. For example, the communication fabric 304 can be implemented with one or more buses or a cross-bar switch.
[0026] Memory 302 and persistent storage 305 are computer-readable storage media. In this embodiment, memory 302 includes random access memory (RAM). Generally, memory 302 can include any suitable volatile or non-volatile computer-readable storage media. Cache 303 is a high-speed memory that improves the performance of computer processor 301 by holding recently accessed data and data near the accessed data from memory 302.
[0027] Program 150 can be stored in persistent storage 305 and memory 302 for execution by one or more of the respective computer processors 301 via cache 303. In one embodiment, persistent storage 305 includes a magnetic hard disk drive. Alternatively, or in addition to the magnetic hard disk drive, persistent storage 305 can include a solid state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage media capable of storing program instructions and digital information.
[0028] The media used by persistent storage 305 may also be removable. For example, a removable hard drive may be used for persistent storage 305. Other examples include optical discs, magnetic discs, thumb drives, and smart cards inserted into the drive for transfer to another computer-readable storage medium, which is also part of persistent storage 305. Software and data can be stored in persistent storage 305 via cache 303 for access, execution, or both by one or more of the respective processors 301.
[0029] In these examples, the communication unit 307 provides communication with other data processing systems or devices. In these examples, the communication unit 307 includes one or more network interface cards. The communication unit 307 can provide communication using either or both physical and wireless communication links. Program 150 can be downloaded to persistent storage 305 via the communication unit 307.
[0030] The input / output interface 306 enables data input and output with other devices connected to the server computer 120. For example, the input / output interface 306 can provide a connection to an external device 308, such as a keyboard, keypad, touchscreen, or any other suitable input device or combination thereof. The external device 308 may also include portable computer-readable storage media, such as a thumb drive, portable optical or magnetic disk, and memory card. Software and data used to carry out embodiments of the present invention, such as program 150, can be stored on such portable computer-readable storage media and loaded into persistent storage 305 via the input / output interface 306. The input / output interface 306 also connects to the display 309.
[0031] The display 309 provides a mechanism for displaying data to the user, and may be, for example, a computer monitor.
[0032] The programs described herein are identified based on the applications in which they are implemented in particular embodiments of the present invention. However, it should be understood that any specific program terminology used herein is merely for convenience, and therefore the present invention should not be limited to use only in any particular application identified or implied by such terminology.
[0033] The present invention may be a system, method, or computer program product or a combination thereof. The computer program product may include one or more computer-readable storage media having computer-readable program instructions therein for causing a processor to implement an aspect of the present invention.
[0034] Computer-readable storage media can be tangible devices capable of storing and remembering instructions for use by instruction-executing devices. Computer-readable storage media may, but are not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A non-exclusive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random-access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved structures with recorded instructions, and any suitable combination thereof. In this specification, computer-readable storage media are not to be interpreted as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0035] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to each computing / processing device, or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on computer-readable storage media within each computing / processing device.
[0036] The computer-readable program instructions for performing the operation of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or low-level programming languages such as object-oriented programming languages like Smalltalk(R) and C++, conventional procedural programming languages such as the "C" programming language or similar programming languages, and quantum programming languages such as the "Q" programming language, Q#, the Quantum Computation Language (QCL) or similar programming languages, or assembly language or similar programming languages. The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection can be made to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, an electronic circuit, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), can execute computer-readable program instructions by utilizing state information of computer-readable program instructions in order to personalize the electronic circuit in order to perform an aspect of the present invention.
[0037] Aspects of the present invention will be described with reference to flowcharts, block diagrams, or both, of methods, apparatuses (systems), and computer program products according to embodiments of the present invention. Each block in the flowcharts, block diagrams, or both, and any combination of blocks in the flowcharts, block diagrams, or both, should be understood as being implementable by computer-readable program instructions.
[0038] These computer-readable program instructions can be provided to a general-purpose computer, special-purpose computer, or other programmable data processing device processor to produce a machine, so that the instructions, executed via a processor of a computer or other programmable data processing device, create means for implementing functions / actions specified in one or more blocks of a flowchart or block diagram, or both. These computer-readable program instructions can also be stored on computer-readable storage media that can instruct a computer, programmable data processing device, or other device or combination thereof to function in a particular way, so that the computer-readable storage media on which the instructions are stored contains a product containing instructions that implements a manner of functions / actions specified in one or more blocks of a flowchart or block diagram, or both.
[0039] Computer-readable program instructions can also be loaded into a computer, other programmable data processing device, or other device to perform a series of operational steps on the computer, other programmable device, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable device, or other device implement a function / action specified in one or more blocks of a flowchart or block diagram, or both.
[0040] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or part of an instruction containing one or more executable program instructions for implementing a specified logical function. In some alternative implementations, the functions shown in a block may occur in an order other than that shown in the figure. For example, two blocks shown consecutively may actually be executed substantially simultaneously, and depending on the functions involved, the blocks may be executed in reverse order. It should also be noted that each block in a block diagram or flowchart, or both, and any combination of blocks in a block diagram or flowchart, or both, can be implemented by a special-purpose hardware-based system that performs a specified function or action or implements a combination of special-purpose hardware and computer instructions.
[0041] The descriptions of various embodiments of the present invention are presented for illustrative purposes only and are not intended to cover or limit the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the invention. The terms used herein have been selected to best describe the principles of the embodiments, practical applications, or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method of computer information processing, wherein the method is Determining the execution time feature set of a first container by one or more computer processors, wherein the execution time feature set includes aggregated temporally arranged container operations, Based on shared container purposes, similar container behavior, and similar container file structures, the first container is clustered in one or more peer containers or peer pods using one or more computer processors. For each peer container, an additional set of execution time features is determined by one or more computer processors. The difference between the first container and each peer container is calculated by one or more computer processors, A method comprising identifying the first container as an anomaly by one or more computer processors if the calculated difference exceeds a difference threshold.
2. Calculating the difference between the first container and each equivalent container is The method according to claim 1, further comprising creating, over a specific period, an execution baseline execution time feature set based on a second execution time feature set aggregated from the clustered peer containers, by one or more computer processors.
3. The method according to claim 1, wherein the execution time feature set includes file operations, network operations, and process operations.
4. Clustering the first container with peer containers or peer pods based on the aforementioned shared container purpose is The method according to claim 1, comprising comparing the file names, folder names, parent folders, subfolders, associated permissions, creation dates, modification dates, symbolic links, file sizes, folder sizes, and file types of the first container and one or more known containers by one or more computer processors to determine the shared container purpose of the first container.
5. The method according to claim 1, wherein the difference is derived from a percentage vector of system calls, the number of aggregated placed container operations, the number of files touched, the number of files created, and the number of network connections.
6. Adding the first container to the replica set including the clustered peer containers by one or more computer processors. The method according to claim 1, further comprising:
7. Adjusting the difference threshold by one or more computer processors based on the identified container purpose and the relevant level of enterprise importance. The method according to claim 1, further comprising:
8. A computer program that causes a computer to perform the method according to any one of claims 1 to 7.
9. A storage medium comprising the computer program described in claim 8, stored in one or more computer-readable storage media.
10. A computer system, One or more computer processors, One or more computer-readable storage media, The stored program instructions include program instructions stored in the computer-readable storage medium for execution by at least one of the one or more processors, A program instruction for determining the execution time feature set of a first container, wherein the execution time feature set includes aggregated temporally arranged container operations, Program instructions for clustering the first container with one or more peer containers or peer pods based on shared container purposes, similar container behavior, and similar container file structures, Program instructions for determining the additional execution time feature set for each peer container, A program instruction for calculating the difference between the first container and each peer container, A computer system comprising a program instruction for identifying the first container as abnormal if the calculated difference exceeds a difference threshold.
11. The program instruction for calculating the difference between the first container and each peer container is: The computer system according to claim 10, comprising program instructions for creating an execution baseline execution time feature set based on an aggregated second execution time feature set from the clustered peer containers over a specific period of time.
12. The computer system according to claim 10, wherein the execution time feature set includes file operations, network operations, and process operations.
13. The program instructions for clustering the first container with one or more peer containers or peer pods based on shared container purposes, similar container behavior, and similar container file structures, The computer system according to claim 10, comprising program instructions for determining the shared container purpose of the first container by comparing the file names, folder names, parent folders, subfolders, associated permissions, creation date, modification date, symbolic links, file sizes, folder sizes, and file types of the first container and one or more known containers.
14. The computer system according to claim 10, wherein the difference is derived from a percentage vector of system calls, the number of aggregated placed container operations, the number of files touched, the number of files created, and the number of network connections.
15. The program instructions stored in the one or more computer-readable storage media are The computer system according to claim 10, further comprising program instructions for adjusting the difference threshold based on the relevant levels of the identified container purpose and enterprise importance.
Citation Information
Patent Citations
Automatic anomaly detection and resolution system
JP2018518762A
System and method for identifying compatible module
JP2020109636A
Prevention of application container failure between replicated containers
US20190163559A1
Anomaly detection through attempted reconstruction of time series data
US20190296963A1
Adaptive thresholds for containers
US20190391897A1