Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 202241002422 filed in India entitled “PRE-POPULATED SECURITY POLICIES FOR VIRTUAL DESKTOP SESSIONS”, on Jan. 15, 2022, by VMware, Inc., which is herein incorporated in its entirety by reference for all purposes.
The present disclosure relates to computing environments, and more particularly to methods, techniques, and systems for pre-populating security policies for virtual desktop sessions in a cloud computing infrastructure.
Virtual desktops provided as part of a virtual desktop infrastructure (VDI) or desktop-as-a-service (DAAS) offerings are becoming more commonplace in today's enterprise work environments. The security of having a remotely stored desktop, ability to access the desktop from any location and on any device, centralized desktop management, efficient use of hardware resources, as well as numerous other benefits made possible by VDI/DAAS are a large benefit for many organizations.
In a VDI or DAAS environment, each user in an enterprise may be provisioned a virtual desktop and is allowed to access the provisioned virtual desktop over a remote network connection, such as a wide area network (WAN) connection. The virtual desktops are hosted on servers that reside in a data center of the enterprise (or a third-party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktop and all of the application execution takes place on the remote host server which is linked to the local client device over a network using a remote display protocol, such as remote desktop protocol (RDP), PC-over-IP protocol (PCoIP), virtual network computing (VNC) protocol, or the like. Using the remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, with only the display, keyboard, and mouse information communicated with the client device.
The drawings described herein are for illustration purposes and are not intended to limit the scope of the present subject matter in any way.
Examples described herein may provide an enhanced computer-based and/or network-based method, technique, and system to pre-populate security policies for virtual desktop sessions in a computing environment. The computing environment may be a virtual computing environment (e.g., a cloud computing environment, a virtualized environment, and the like). The virtual computing environment may be a pool or collection of cloud infrastructure resources designed for enterprise needs. The resources may be a processor (e.g., central processing unit (CPU)), memory (e.g., random-access memory (RAM)), storage (e.g., disk space), and networking (e.g., bandwidth). Further, the virtual computing environment may be a virtual representation of the physical data center, complete with servers, storage clusters, and networking components, all of which may reside in virtual space being hosted by one or more physical data centers. The virtual computing environment may include multiple physical computers (e.g., servers) executing different computing-instances or workloads (e.g., virtual machines, containers, and the like). The workloads may execute different types of applications.
In such a virtualized environment, virtual desktops may be provided as part of a virtual desktop infrastructure (VDI) or desktop-as-a-service (DAAS) offerings. A virtual desktop is executed on a virtual machine managed by a hypervisor executed on a server in the data center. In this example, the virtual desktop is an interface available to an individual user in the virtualized environment. Further, an experience of using desktop virtualization may be interpreted by users based on a responsiveness of the virtual desktop. In some examples, the responsiveness of the virtual desktop may be affected by multiple factors such as logon time, retrieving and configuring the virtual machine with security policies, session response time, and the like.
For example, in the VDI, the virtual machines are associated with a pool in designated servers and consumed on a per-need basis. When a user attempts to get a session with his virtual desktop, a virtual machine may be retrieved from the pool of available virtual machines and customized for that user by adding the necessary applications, files, and user data to that virtual machine. Once the user stops using the virtual machine, the virtual machine goes back into the pool and becomes available to other users.
To harden the virtual machines and to reduce attack surface (i.e., a sum of all possible security risk exposures where an unauthorized user can try to enter data to or extract data from the virtual machines), the users/security administrators create the security rules and policies as follows:
Further, to enable out of box security, the above-mentioned security rules and policies have to be pulled from a cloud-based endpoint protection platform (e.g., a carbon black cloud (CBC) infrastructure) for a user at the time when the user logs into the virtual machine. This process can take a significant amount of time and places a strain on the cloud-based endpoint protection platform. For example, during a login storm, when multiple users attempt to log into their virtual desktops, policies for all users may have to be fetched from the cloud-based endpoint protection platform and may end up in an unacceptable delay in the security decision. Such delays may eventually affect cloud-based endpoint protection platform scalability, stability, and efficacy. Also, whenever a new virtual session is launched, the above-mentioned tasks, such as retrieving security rules and policies from a cloud service, are performed for launching the virtual desktop or applications. These tasks may lead to latency of the actual desktop and session launch and therefore gives a negative impact on the overall end user experience.
Examples described herein provides a management node for pre-populating security policies for a virtual desktop session before a user logs into the virtual desktop session. During operation, the management node may receive data related to a login pattern of a user over a period of time. Further, the management node may predict a time to launch a virtual desktop session for the user based on the received data. Prior to the predicted time, the management node may assign a virtual machine from a pool of available virtual machines to the user, fetch a security policy from a cloud-based endpoint protection platform via a network, and populate the virtual machine with the security policy. Furthermore, the management node may create the virtual desktop session using the virtual machine populated with the security policy in response to a determination that the user logged into the virtual desktop session prior to an expiration of a timer. Also, the management node may discard the fetched security policy from the virtual machine in response to a determination that the timer expires without the user logged into the virtual desktop session. Upon discarding the fetched security policy from the virtual machine, the management node may place the virtual machine back in the pool of available virtual machines.
Thus, examples described herein pro-actively populate rapid configurations, security rules, and user customized policies in advance of user login, thereby effectively distributing the load on the VDI resources over a wider time interval. Since the virtual desktop session is created before a user logs into the virtual desktop session, the created virtual session may be provided to the user instantly without any delay when the user logs into the virtual desktop session.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present techniques. It will be apparent, however, to one skilled in the art that the present apparatus, devices, and systems may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
System Overview and Examples of Operation
Further, system 100 may include management node 102 communicatively connected to cloud computing infrastructure 112 to manage different objects/resources in cloud computing infrastructure 112. Management node 102 may refer to a computing device, or computer program (i.e., executing on a computing device), that provides services to host servers 114A-114N. For example, management node 102 may execute centralized management services that may be interconnected to manage the resources centrally in cloud computing infrastructure 112. In an example, a resource may be a server resource, a storage resource, a network resource, a virtual resource, or the like in cloud computing infrastructure 112. For example, the resource may include components in cloud computing infrastructure 112 such as host servers 114A-114N, virtual machines VM 1-VM N, and the like. In some examples, cloud computing infrastructure 112 may be managed by one or more administrators via management node 102.
Furthermore, system 100 includes a cloud-based endpoint protection platform 118 (e.g., VMware Carbon Black Cloud). VMware Carbon Black Cloud is a software as a service (SaaS) solution that provides next-generation anti-virus (NGAV), endpoint detection and response (EDR), advanced threat hunting, and vulnerability management within a single console using a single, lightweight agent. Example cloud-based endpoint protection platform 118 may include a security policy 120 to lock down endpoints and critical systems, prevent unwanted changes, ensure continuous compliance with regulatory mandates, and the like. In an example, cloud-based endpoint protection platform 118 may be communicatively coupled to management node 102 to provide security policy 120 to provide protection to resources in cloud computing infrastructure 112.
As shown in
In some examples, a host server (e.g., 114A-114N) can interoperate with a client device 122 to provide virtual desktop (VD) services to the user of client device 122. Client device 122 may be a computing device (e.g., a thin client, a mobile device, or the like) including an operating system 124 to execute different applications on client device 122. Further, client device 122 can execute an operating system (OS) 124 that hosts a virtual desktop (VD) client 126. Virtual desktop client 126 can be a stand-alone, designated client application (“native client”), or a web browser (“web client”). In some cases, a standard web browser may be modified with a plugin to operate as a web client. The interaction between the virtual desktop and client device 122 can be facilitated by virtual desktop client 126 running in operating system 124 which communicates with host server's (e.g., 114A-14N) side virtual desktop agent (e.g., 130A-130N) that is running on guest operating system (e.g., 128A-128N). For example, the interaction can be performed by virtual desktop agent 130A transmitting encoded visual display information (e.g., framebuffer data) over network 132 to virtual desktop client 126 and virtual desktop client 126 in turn transmitting user input events (e.g., keyboard, mouse events, and the like) to remote desktop agent 130A. In this context, the terms “desktop”, “remote desktop”, and “virtual desktop” refer to a computing environment in which the user can launch, interact with, and manage the user's applications, settings, and data. Further, client device 122 can allow the user to view on a desktop graphical user interface (on a local display device) his/her desktop that is running remotely on host server (e.g., one of 114A-114N), as well as provide commands for controlling the desktop. In this manner, the user of client device 122 can interact with the desktops hosted on host server (e.g., 114A-114N) as if the desktops were executing locally on client device 122.
As shown in
As shown in
Further, advisory module 108 may predict a time to launch the virtual desktop session for the user based on the received data. As described above, the virtual desktop session may be executed on virtual machine (e.g., one of VM 1-VM N) managed by a hypervisor (i.e., virtualization layer 116A-116N) executed on a server (i.e., host 114A-114N) in a data center (e.g., cloud computing infrastructure 112). Further, virtual machine (e.g., one of VM 1-VM N) may be assigned to the user and accessed via remote network connection 132.
In an example, advisory module 108 analyzes the data related to the login pattern by applying a machine learning model to the data related to the login pattern of the user. For example, advisory module 108 analyzes the data related to the login pattern (e.g., stored in database 110) selected from a group consisting of historical user login data, administrator-specified rules for assigning the virtual desktop session at a defined time, and lightweight directory access protocol (LDAP)/active directory log scrapping and location services. Further, advisory module 108 may predict the time to launch the virtual desktop session for the user based on the analysis of the data. For example, advisory module 108 may analyze the data using machine learning techniques to determine which specific user should have VM assigned to him. For example, the advisory service may analyse the historical patterns of user logins learned from collecting usage data (e.g., time, location, and the like) related to user login times across the organization in order to determine that a VM should be assigned for a specific user at a particular time. In an example, a pre-launch time for launching the virtual desktop session may be set at a predefined time before the predicted time. For example, the pre-launch time may be set 30 minutes before the predicted time of the user launching time.
Furthermore, advisory module 108 may fetch, via network 132, security policy 120 from cloud-based endpoint protection platform 118 prior to the predicted time. In an example, security policy 120 includes rapid configuration rules, an application control policy to allow or deny an execution of a selected application, a user specific access control and network policy, or any combination thereof. Rapid configuration rules may describe how to enable and configure sets of rules that can be used to accomplish tasks such as application optimization, operating system and application hardening, and approval of files delivered by software distribution systems.
Further, advisory module 108 may populate a virtual machine (e.g., one of available virtual machines VM 1 to VM N) with security policy 120 before the user logs into the virtual desktop session. Further, advisory module 108 may create the virtual desktop session using virtual machine (e.g., one of VM 1 to VM N) populated with security policy 120 in response to a determination that the user logged into the virtual desktop session prior to an expiration of a timer. When client device 122 is accessing a remote desktop using a remote desktop protocol (e.g., RDP, PCoIP, VNC, etc.), the graphical user interface (GUI) of the desktop is generated on corresponding host (e.g., 114A-114N), the GUI image data is then encoded and transmitted over network 132 to client device 122, where it is decoded and displayed to the user.
Furthermore, advisory module 108 may discard fetched security policy 120 from virtual machine (e.g., one of VM 1 to VM N) in response to a determination that the timer expires without the user logged in to the virtual desktop session. In another example, advisory module 108 may predict a location of the user corresponding to the predicted time to launch the virtual desktop session based on analyzing the received data. Further, advisory module 108 may select a data center at a particular location to provision the virtual machine with the security policy based on the predicted time and predicted location. For example, location is one of the factors to be considered when selecting the data center. An increased distance between an organization and the data center may impact a network speed. Therefore, the virtual machine can be provisioned in the selected data center that can enhance the network speed. Similarly, various other factors such as reliability, security, network services capacity, emergency backup, and the like can be considered to select the data center.
Thus, advisory module 108 can intake and analyse data from a number of different sources, such as usage history, administrator specified rules, LDAP/Active directory log scrapping and location services, and the like. Once advisory module 108 predicts a time and location for user to login, advisory module 108 begins to pre-fetch rules and policies (i.e., security policy 120) for that user from cloud-based endpoint protection platform 118 and also associate purge timer. If user does not login prior to expiration of purge timer, pre-fetched policy 120 is purged. If the login event is detected prior to expiration of the purge timer, the purge time is cancelled and pre-fetched policies and rules 120 are used to create the virtual desktop session for the user. Hence, pre-fetching security policy 120 before the user logins to the VDI based on analytic data may reduce load on cloud-based endpoint protection platform 118 and increasing efficacy and scalability.
In some examples, the functionalities described in
Further, the virtual desktop environment illustrated in
At 202, data related to a login pattern of a user over a period of time may be received by advisory module 108 from database 110. At 204, a time (i.e., a pre-launch time) to launch a virtual desktop session for the user may be predicted by advisory module 108 based on the received data.
At 206, the security policy may be fetched from cloud-based endpoint protection platform 118. At 208, the virtual machine VM 1 from a pool of available virtual machines may be assigned to the user and the virtual machine may be populated with the security policy. At 210, a timer defining a timeout period upon populating the virtual machine may be initiated.
At 212, a login request to a virtual desktop session may be received from the user via client device 122 prior to an expiration of the timer. At 214, the virtual desktop session may be created using the virtual machine populated with the security policy in response to a determination that the user logged into the virtual desktop session prior to an expiration of the timer. Further at 216, the user may access the virtual desktop session using VM 1.
At 302, a login pattern of a user may be monitored over a period of time. In an example, monitoring the login pattern of the user includes monitoring the login pattern of the user by applying a machine learning model to data related to the login pattern of the user. For example, monitoring the login pattern of the user includes analyzing data selected from a group consisting of historical user login data, administrator-specified rules for assigning the virtual desktop session at a defined time, and lightweight directory access protocol (LDAP)/active directory log scrapping and location services. Further, the login pattern of the user may be monitored based on the analysis of the data, for instance, by applying the machine learning model.
At 304, a pre-launch time to launch a virtual desktop session for the user may be predicted based on the monitored login pattern. In an example, the virtual desktop session is executed on a virtual machine managed by a hypervisor executed on a server in the data center. The virtual machine may be assigned to the user and accessed via a client device.
At 306, a pre-launch virtual desktop session for the user may be initiated based on the predicted pre-launch time. In an example, initiating the pre-launch virtual desktop session includes fetching, via a network, a security policy from a cloud-based endpoint protection platform prior to the predicted pre-launch time and populating a virtual machine with the fetched security policy. In an example, fetching the security policy from the cloud-based endpoint protection platform includes fetching the security policy from the cloud-based endpoint protection platform before the user logs into the virtual desktop session using the pre-launch time. An example security policy includes rapid configuration rules, an application control policy to allow or deny an execution of a selected application, a user specific access control and network policy, or any combination thereof.
In an example, a location of the user likely to login to the virtual desktop session may be predicted based on the login pattern. Further, the data center may be selected based on the predicted location of the user. Furthermore, the virtual machine in the selected data center may be populated with the fetched security policy based on the pre-launch time.
At 308, the pre-launched virtual desktop session may be provided to the user in response to a determination that the user logged into the virtual desktop session prior to an expiration of a timer. In an example, the pre-launched virtual desktop session remains in an active state. Whenever the user logs in to the virtual desktop session, since the pre-launched initiated session is in active state, the user may be authenticated and the virtual desktop session may be provided to the user instantly without any delay.
Further, the fetched security policy may be discarded from the virtual machine in response to a determination that the timer expires without the user logged into the virtual desktop session. In this example, the pre-launched virtual desktop session may be disconnected when the user login is delayed for a pre-defined time after the pre-launch time.
Computer-readable storage medium 404 may store instructions 406, 408, 410, 412, 414, 416, and 418. Instructions 406 may be executed by processor 402 to receive data related to a login pattern of a user over a period of time. Instructions 408 may be executed by processor 402 to predict a time to launch a virtual desktop session for the user based on the received data. In an example, instructions to predict the time to launch the virtual desktop session include instructions to:
Instructions 410 may be executed by processor 402 to assign a virtual machine from a pool of available virtual machines to the user prior to the predicted time. Further, instructions 412 may be executed by processor 402 to fetch, via a network, a security policy from a cloud-based endpoint protection platform. Furthermore, instructions 414 may be executed by processor 402 to populate the virtual machine with the security policy.
In an example, computer-readable storage medium 404 may store instructions to:
Instructions 416 may be executed by processor 402 to initiate a timer defining a timeout period upon populating the virtual machine. Instructions 418 may be executed by processor 402 to create the virtual desktop session using the virtual machine populated with the security policy in response to a determination that the user logged into the virtual desktop session prior to an expiration of the timer. In an example, instructions to create the virtual desktop session include instructions to execute the virtual desktop session on the virtual machine managed by a hypervisor executed on a server in a data center. The virtual machine may be accessed via a remote network connection.
Further, computer-readable storage medium 404 may store instructions to:
Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other computer-readable software instructions or structured data) on a non-transitory computer-readable medium (e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more host computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques.
It may be noted that the above-described examples of the present solution are for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
The terms “include,” “have,” and variations thereof, as used herein, have the same meaning as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on”, as used herein, means “based at least in part on.” Thus, a feature that is described as based on some stimulus can be based on the stimulus or a combination of stimuli including the stimulus.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples can be made without departing from the spirit and scope of the present subject matter that is defined in the following claims.
Number | Date | Country | Kind |
---|---|---|---|
202241002422 | Jan 2022 | IN | national |