METHOD FOR SELECTIVELY EXECUTING A CONTAINER, AND NETWORK ARRANGEMENT
20230006988 · 2023-01-05
Inventors
- Michael Menth (Tübingen, DE)
- Frederik Hauser (Stuttgart, DE)
- Mark Schmidt (Tübingen, DE)
- Julian Rilli (Langenau, DE)
Cpc classification
H04L63/10
ELECTRICITY
H04L63/0892
ELECTRICITY
H04L63/0236
ELECTRICITY
H04L63/20
ELECTRICITY
H04L63/0876
ELECTRICITY
International classification
Abstract
The invention relates to a method for selectively configuring a container that contains an application, wherein user-authentication data are received by a container management component and forwarded via a container applicant to an authorisation server. This server transmits an authorisation response, on the basis of which a decision is made as to whether the application is allowed to be run in the container.
Claims
1.-46. (canceled)
47. A method for selectively executing a container that contains an application, the method comprising: a container management component receiving user authentication data; the user authentication data being forwarded to a container supplicant; the container supplicant transmitting an authorization request to an authorization server, wherein the authorization request contains at least the user authentication data; the container supplicant receiving an authorization response from the authorization server, wherein the authorization response contains at least clearance information that can assume either a positive or a negative value; the authorization response being forwarded to the container management component; the container management component deciding whether the container can be executed, wherein the container can be executed if the clearance information has a positive value, and wherein the container cannot be executed if the clearance information has a negative value; and only if the container can be executed, the container being started and executed.
48. The method as claimed in claim 47, wherein the authorization server determines the clearance information at least on the basis of the user authentication data, and/or wherein the authorization server compares the user authentication data with a number of user preset values and sets the clearance information to a positive value only if the user authentication data are consistent with one of the user preset values.
49. The method as claimed in claim 47, wherein the container supplicant is an 802.1X supplicant, and/or wherein the authorization server is an 802.1X authorization server, and/or wherein the container management component is a container management daemon.
50. The method as claimed in claim 47, further comprising: container authentication data being generated on the basis of the container or a container image of the container; and the container authentication data being transmitted to the authorization server.
51. The method as claimed in claim 50, further comprising: a nonce being received from the authentication server; and the container authentication data being altered on the basis of the nonce before the container authentication data are transmitted to the authorization server.
52. The method as claimed in claim 50, wherein the container authentication data are determined as a checksum for the container or for the container image.
53. The method as claimed in claim 50, wherein the container authentication data are an identification number of the container.
54. The method as claimed in claim 50, wherein the authorization server determines the clearance information at least on the basis of the container authentication data, and/or wherein the authorization server compares the container authentication data with a number of container preset values and sets the clearance information to a positive value only if the container authentication data are consistent with one of the container preset values.
55. The method as claimed in claim 47, wherein the authorization response contains permission information, wherein the application is executed with rights that are stipulated on the basis of the permission information.
56. The method as claimed in claim 47, further comprising a network address being allocated to the container.
57. The method as claimed in claim 56, wherein at least one of i) the network address is allocated by the container management component, ii) the authorization request contains the network address, and iii) the container management component sends the network address separately from the authorization request.
58. The method as claimed in claim 47, wherein the authorization request is transmitted to the authorization server via a container authenticator, and/or wherein the authorization response is received from the authorization server via a container authenticator.
59. The method as claimed in claim 58, further comprising: the container authenticator generating network clearance information on the basis of the authorization response; and the container authenticator transmitting the network clearance information to a network control component, wherein the network control component enables or blocks data traffic to and/or from the container on the basis of the network clearance information.
60. The method as claimed in claim 59, wherein the authorization server generates the authorization response comprising network clearance data, and wherein the container authenticator generates the network clearance information on the basis of the network clearance data.
61. The method as claimed in claim 60, wherein the authorization server generates the network clearance data on the basis of the user authentication data and/or the container authentication data.
62. The method as claimed in claim 59, wherein the network control component is arranged in such a way that all data traffic to and from the container and/or to and from a protected server is routed through the network control component.
63. The method as claimed in claim 59, further comprising: a network address being allocated to the container, wherein the container authenticator transmits the network address allocated to the container to the network control component, and wherein the network control component enables or blocks the data traffic on the basis of the network address.
64. The method as claimed in claim 59, wherein the network clearance information configures the network control component to let through only data traffic to and from the container or multiple containers.
65. The method as claimed in claim 47, the application and/or the container being downloaded from a provision server, wherein the container is configured to execute only applications downloaded from the provision server.
66. A network arrangement configured to carry out a method as claimed in claim 47, the network arrangement comprising: a first computer unit, which is configured to execute the container management component, the container and the container supplicant; and a second computer unit, which is configured to execute the authorization server, wherein the computer units are networked to one another for data traffic.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0088] The implementation disclosed herein and principles in this regard are described below with reference to the accompanying drawing, in which:
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0103] In general, it should be mentioned that container virtualizations can be implemented at operating system level. By way of example, they provide virtualized operating system environments that are isolated with regard to hardware resources and security. They typically share an operating system kernel and can contain libraries, which are needed in order to execute one or more contained applications.
[0104] Containers that can be used for the purposes of the method described herein can also be referred to as xRACs. By way of example, only specific applications with their dependencies and configurations can be contained in a container. Examples of container platforms are Docker, Kubernetes, systemd-nspawn, BSD Jails, Linux Containers, Windows Containers, Solaris Containers, Virtuozzo and rkt. Docker has been found to be particularly advantageous for the method disclosed herein.
[0105] Virtualization facilitates efficient and flexible use of hardware resources, increases security through isolation and ensures error tolerance and scalability through simple migration processes. In comparison with complete operating systems, containers additionally have the advantages described below. Owing to the shared operating system, containers require fewer CPU, memory and hard disk resources. Container images are much smaller, which facilitates distribution over numerous recipients. Containers simplify application distribution. Instead of having to provide support for complex combinations of applications, dependencies and user configurations, administrators are able to provide containers that are tested beforehand. Additionally, containers have no boot times, making them seem advantageous in particular for applications that are required only briefly.
[0106]
[0107] One of the commonest container platforms is currently Docker.
[0108] Docker uses various functions of the operating system kernel to provide isolation and resource limitation, and supports memory drivers such as for example AuFS, OverlayFS and ZFS, in order to allow stacking of a file system. A container format and a runtime environment of Docker were adopted as open industrial standards by the Open Container Initiative.
[0109] Container security platforms extend the container management daemon (CMD) by security functions. By way of example, Twistlock and the Aqua Container Security platform allow a runtime environment based on machine learning mechanisms for constantly supervising containers to detect compromising behavior and specific network firewalls to filter container traffic. The Sysdig Secure platform permits the formulation of service specifications, for example specifications based on applications, containers, hosts or network activities. The platform delivers alarms and actions based on infringements of specifications, event logging and current events. The Atomicorp Secure Docker kernel is a hardened Linux kernel that provides security-relevant features such as outbreak prevention, memory alteration prevention or prevention of direct user access through the kernel. All of the platforms are focused on supervising and monitoring possibly unreliable containers that are executed on a shared container runtime environment. Features for authenticating and authorizing (AA) users, containers and their network flows are not part of these platforms, however.
[0110] The Docker authorization framework has been part of Docker since version 1.10. It extends the Docker CMD by a REST interface for external plug-ins for authorization. Requests from the Docker CMD, for example in order to start a container, are forwarded to a plug-in for authorization, which contains mechanisms for deciding whether the request is permitted or denied. The Docker authorization framework implements no security functions but provides a basis for implementing such security concepts. The method disclosed herein further extends this.
[0111] Containers typically provide applications or services without a graphical user interface (GUI) that run in a cloud or on a data center infrastructure. Examples are containers containing web applications with their requirements, for example an nginx web server with a PHP runtime and MySQL database.
[0112] The text below provides a description of 802.1X and an explanation of how it can be used to support authentication and authorization (AA). EAPoUDP is also presented, which is an alternative protocol for data traffic for AA in 802.1X. A summary of how AA for applications is currently executed in practice is provided.
[0113] IEEE 802.1X introduces port-based network access control in wired Ethernet networks. Nevertheless, today it is known primarily from wireless 802.11 networks. One example is eduroam, which is an amalgamation of wireless campus networks from universities. Subscribers can connect to the Internet, specifically regardless of whether they are at their home university or at another university.
[0114]
[0115] 802.1X extends the Extensible Authentication Protocol (EAP) and the Remote Authentication Dial-In User Service (RADIUS) for interchanging AA data. Both have provision for fixed request and response schemes, specifically for interchanging AA data. The Diameter protocol is a less common alternative. Authentication data are transmitted in Ethernet frames as EAP-over-LAN (EAPoLAN) encapsulation between the 802.1X S and 802.1X A and as EAP-over-RADIUS (EAPoRADIUS) between 802.1X A and 802.1X AS.
[0116] Details of 802.1X are explained using a four-step approach by AA as shown in
[0117] EAPoUDP is a variation of EAP that permits the transmission of EAP data by way of UDP and IP.
[0118] 802.1X specializes in port-based access control for network hosts. In practice, AA for applications is implemented as part of the applications or using the Kerberos AA protocol.
[0119] Most network applications implement a type of AA mechanism. Examples are login forms on a home screen, where users are asked to enter valid access information in order to start using an application. Other examples are client certificates, which are used together with TLS, and an infrastructure with a public key. However, AA functionalities that are part of the application have an influence that is restricted to the client and server ends of the network application. Neither the starting of the application nor the network infrastructure in between can be controlled.
[0120] Kerberos is a network authentication protocol allowing different authentication for clients and servers via a nonsecure network. Clients are for example complete hosts, users or applications; servers represent hosts providing certain network applications. Kerberos adapts user tickets for authenticating various network applications. Kerberos needs to be implemented by applications at the client and server ends, which prevents use for older applications, which cannot be used.
[0121] FlowNAC adds fine-grained SDN network access control systems by using 802.1X for AA for applications on network hosts. This allows different versions of AA for different applications on a network host. To allow different AA for different applications on a network host, EAPoL-over-EAPoLAN encapsulations are introduced. As shown in
[0122] The text below describes RACs (restricted application containers) and the method described herein (xRAC). Additionally, the operation of the control components is explained in detail. Restricted application containers (RACs) are generally executable container images containing a single application, the dependences thereof and configuration data such as program settings and software license information. As can be seen from
[0123]
[0124] xRAC provides for execution and access control for RACs on managed hosts, for example. An RAC is preferably authenticated and authorized, specifically before execution takes place.
[0125] AA for RACs introduces two additional advantages in comparison with known application provision and network security. First, AA for RACs limits RAC execution on managed hosts to predefined RAC images and approved users. This permits network operators to guarantee that only current and unmodified RAC images can be executed. This improves computer and network security, since only valid RAC images can be executed on the managed hosts. Additionally, network operators are able to distribute RAC images to managed hosts beforehand, for example by synchronizing their set of RAC images with an internal RAC store in the background. Users therefore have access to all of the available RAC images on managed hosts, but are able to start them only after they have been authorized by AA. Finally, every RAC has a globally standard IPv6 address that can be used to identify data traffic to and from a specific RAC. RAC authorization data on the 802.1X AS contain information about how the data traffic of the RAC is supposed to be controlled by network elements. This permits configuration of network elements or network control components from the authorization server AS.
[0126] All in all, the following procedure can therefore be implemented, for example.
[0127] First, user authentication data are received from the user by the container management daemon CMD as a container management component. The user authentication data are forwarded to the container supplicant 802.1X CS. Said container supplicant generates an authorization request containing the user authentication data. In a preferred embodiment, it further generates a checksum for the container, the checksum being container authentication data that are also included in the authorization request.
[0128] The authorization request is then transmitted to the authorization server 802.1X AS via the container authenticator 802.1X CA. Said authorization server compares both the user authentication data and the checksum against applicable databases. This is referred to as authentication. If it arrives at a positive result, i.e. the user authentication data are associated with an authorized user and the checksum indicates that container and/or application have not been altered, then the authorization server generates an authorization response containing positive clearance information and, if necessary, also containing permission information. The authorization response is returned to the container supplicant 802.1X CS via the container authenticator 802.1X CA. The authorization response is then forwarded to the container management daemon CMD, which, on the basis thereof, ascertains whether an application can be executed, and if necessary with which permissions. If the response is accordingly positive, the container management daemon starts the application and allocates the appropriate permissions thereto. Should the authorization server be unable to authenticate the user, however, or should it certainly be able to authenticate the user but discover that permission is absent, then the authorization server generates an authorization response containing negative clearance information and accordingly returns said authorization response.
[0129] Additionally, after the application is started, the container RAC is allocated a unique network address, for example an IPv6 address. This address is communicated to the firewall FW.
[0130] Additionally, the container authenticator 802.1X CA notifies the firewall FW of network clearance information for the container RAC, said network clearance information originating from the authorization server 802.1X AS in the form of network clearance data. The firewall FW then controls data traffic from and to the container RAC on the basis of the network clearance information and, in so doing, identifies the container from its IPv6 address. This allows access to the protected server to be controlled, for example. To this end, in the present case, the firewall FW is arranged in such a way that all data traffic from and to the protected server passes through the firewall FW. In particular, it is possible for a protected channel, in particular a VPN channel, to be formed between the container and the protected server. This allows interchanged data to be protected against alteration and unauthorized concurrent reading.
[0131] The authorization request from the container supplicant 802.1X CS to the authorization server 802.1X AS therefore contains in particular user authentication data (UAND) and container authentication data (CAND). The authorization server 802.1X AS authenticates the user and verifies the integrity of the RAC image. If the image is valid and the user is authenticated and if the user has permission to execute the RAC, the authorization server 802.1X AS responds to the container authenticator 802.1X CA with authorization data or an authorization response. The decision can be made using a new data model, for example, which is shown in
[0132] The components managed host, container authenticator, authorization server, firewall and protected server shown in
[0133] The container authenticator 802.1X CA forwards AA data between the container supplicant 802.1X CS and the authorization server 802.1X AS. Further, it informs network control elements of authorized RACs.
[0134] In step (1) of
[0135] Various use scenarios for the approach disclosed here, or the approach according to an aspect of the invention, are described below.
[0136] A web browser in high-security environments will first be discussed. This may be relevant to research facilities, state-owned institutions or hospitals, for example, which work with highly sensitive data and need to shield their internal network from the Internet. Web browsers are still needed for various activities, however. It is proposed that web browsers be used as RACs on managed hosts. The isolation of RACs prevents malicious users from abusing Internet access in order to externalize internal information or to contaminate the internal network with infectious downloads. The network flow control of RACs guarantees that only the web browser can reach the Internet. If the data traffic of the RAC is encrypted, for example for DNS requests and website data, network control elements can still carry out packet filtering on the basis of the IP address of the RAC.
[0137] Additionally, applications that work with confidential data, for example relating to research activities, medical documentation or public offices, are discussed. This often involves the need to access confidential data on servers. If such applications are provided as RACs on managed hosts as described herein, only legitimate users can access these servers. The isolation feature of the RAC prevents remote hackers from accessing the server. They normally gain system access through gateways provided by a virus or a Trojan horse, such malware normally being picked up via browser downloads or email attachments, which is not possible with RACs. It is further possible for malicious users of legitimate applications to use hacker tools to gain access to the server and to reveal information therefrom, which is not possible in the digital domain with an isolated application. The isolation of RACs prevents malicious users or applications from attacking the server. The network flow control guarantees that the server can be reached only by legitimate RACs and users, but not by other RACs or the managed host itself.
[0138] xRAC extends the advantages that are known generally for virtualization and container virtualization and have been described earlier. Additionally, xRAC can guarantee that only valid containers are executed on managed hosts, and that they can be used only by legitimate users. Thus, xRAC performs AA (authentication and authorization) for applications without the need to modify same, which is a particular advantage for older applications. Further, the container authenticator 802.1X CA can configure network control elements such that authorized RACs have access to protected network resources. RACs allow this control because all network traffic of an RAC is identified by a single IPv6 address. This is a particular advantage because networks today have no information about legitimate flow, and numerous application flows can have the same IP address. Applications may even be invisible on account of encryption. Thus, xRAC provides a solution to the serious problem of controlling legitimate traffic. xRAC is flexible in this regard, as it implements software-defined network access control by interacting with other network control elements. In particular, it is not dependent on specific technologies or limited thereto.
[0139] A prototype for implementations of xRAC is discussed below.
[0140]
[0141] Nested virtualization can be used in this case, i.e. a virtual machine (VM) encapsulates all parts of the test environment, including the managed host. This approach permits the whole test environment to be migrated to other hardware platforms. In the present case, KVM hypervisor with QEMU for hardware-assisted virtualization and libvirt for the orchestration was used for a test. The managed host, the two web servers and a RADIUS server run as nested VMs using Ubuntu 17.04. An Open vSwitch is used as the SDN switch, which is controlled by a Ryu SDN controller.
[0142] Version 17.05 of Docker is used as the container virtualization platform for implementing RACs in the present case. The Docker CMD is configured such that each RAC receives an IPv6 address that is unique worldwide and can be reached by other network hosts.
[0143] In the present case, the 802.1X CS is implemented as a plug-in for the Docker authorization framework, which has been described earlier. The plug-in is programmed in Python and uses a Flask library for implementing a REST interface.
[0144] The 802.1X CA is programmed as an SDN application for the Ryu SDN controller in the present case. The 802.1X A, which is known from the prior art, is extended by the addition of support for authentication with the 802.1X CS using EAPoUDP. The 802.1X CA opens a UDP socket on port 5995 and awaits connections from the 802.1X CS. The 802.1X CA can still act as an older 802.1X A, which performs AA for network hosts in the old 802.1X using EAPoL. As an example of network control using xRAC, a limited MAC-learning switch is implemented. This learns MAC addresses of connected hosts, but only forwards packets if the IP addresses of transmitter and receiver are on a whitelist. The whitelist contains static entries, for example for public servers, and dynamic entries, which can be modified by the 802.1X CA after receiving CAZD from the 802.1X AS. The limited MAC-learning switch is implemented by extending the L2 switching SDN application of the Ryu SDN controller framework.
[0145] Additionally, the frequently used software FreeRADIUS is used as 802.1X AS, with an AA data model being extended in order to implement CAND and CAZD. In FreeRADIUS, it is possible to implement additional attributes for AA and simple features by using specific attributes, which are defined in the unlang processing language. The defined AA data model can easily be extended and can be modified by adding multiple vendor-specific attributes (VSAs).
[0146] Two web server VMs in the test environment operate a Python web server, which delivers HTML files using the HTTP. The protected web server with the static IPv6 address 2001:db8::aa:0 delivers an HTML page with the clause “protected content”. The public web server with the static IPv6 address 2001:db8::bb:0 delivers an HTML page with the clause “public content”.
[0147] To demonstrate the functionality, experiments were performed with the test environment described.
[0148] The experiments look in particular at the communication between the managed host, a specific RAC, the protected web server and the public web server. A wget tool is encapsulated as the RAC, in order to receive files using the HTTP. In the experiments that follow, the RAC is used in order to request an HTML file from both the protected web server and the public web server. UAND, CAND and CAZD are added on the RADIUS server in order to permit a specific user to execute the RAC and to access the protected web server.
[0149] The experiments shown in
[0150] In summary, it can be stated that xRAC is proposed, a concept for the performance of access control for restricted application containers (RACs) on managed clients. It involves authentication and authorization (AA) for RACs such that only current RAC images can be executed by approved users. Further, the authorization is extended to protected network resources, specifically such that authorized RACs are able to access them. Data traffic control is simplified by the fact that all traffic of an RAC is identified by its IPv6 address. The architecture of xRAC is presented and a prototype implementation is used to show that xRAC can be set up using standardized technology, protocols and infrastructure. A prototype of xRAC uses Docker as the container virtualization platform for distributing and executing RACs, and signaling based on 802.1X components. Modifications can be made to a supplicant, an authenticator and an authorization server, as a result of which both user and container AA data can be interchanged. Furthermore, the container authenticator is extended in order to inform required network control elements about authorized RACs. xRAC supports software-defined network control and improves network security without modifying core components of applications, hosts and infrastructure.
[0151] Mentioned steps of the method according to an aspect of the invention can preferably be performed in the order indicated. A different order is also possible, however, if it makes technical sense. The method according to an aspect of the invention can be performed in one of its embodiments, for example with a particular combination of steps, such that no further steps are performed. Further steps may also be performed in principle, however, even steps that are not mentioned.
[0152] It should be pointed out that features in the claims and in the description may be described in combination, for example in order to facilitate comprehension, even though they can also be used separately from one another. A person skilled in the art will see that such features can also be combined with other features or combinations of features independently of one another.
[0153] Dependency references in subclaims can denote preferred combinations of the respective features, but do not exclude other combinations of features.