Citrix Blogs

Securing development: Virtual desktops, enterprise browsers and Cloud Development Environments

Many organizations struggle to keep an application development workflow that is secure against data leaks, while jointly preserving developers’ experience and productivity. This challenge has driven market demand for secure development environments especially due to developers being increasingly targeted by hackers. Breaches are notably around source code and credentials, some leading to personal information leaks

In this article, I’ll start with a quick rundown of the technologies available to organizations to address this challenge. Then, I’ll compare them across three dimensions: their applicability to support an application development process, their focus on security, and their impact on developer experience. At the end of this article, I’ll give a nuanced conclusion, in the sense that choosing any of these technologies shouldn’t necessarily be clear cut. In other words, mixing them could even be beneficial in some cases. 

What are virtual desktops?
The need to protect the development workflow has led to the emergence of technologies like virtual desktops. These are general-purpose desktops where developers can install applications like Integrated Development Environments (IDE) or DevOps tools (e.g. container management) and access web applications supporting their workflow. In effect, remote access to a virtual desktop removes the need to maintain sensitive data on the local device. In addition, it provides access to an alternative source of computing power to build applications. A typical access method for the remote desktop is the Remote Desktop Protocol (RDP) that streams the desktop image to the local device.      

What are enterprise browsers?
More recently, enterprise browsers have appeared as web-based alternatives to virtual desktops, although the focus is securing access to web-applications—typically SaaS servicesas opposed to providing access to a desktop. However, these browsers also support protocols like RDP to provide access to remote desktops (also as virtual machines). Vendors in this field often position themselves as a VDI replacement. A marked difference is that their offerings typically do not include computing resources. Hence, it is likely that organizations adopt them in the scope of a broader infrastructure set-up including Desktop-as-a-Service (DaaS) when computing resources are needed. 

What are secure Cloud Development Environments?
As a means to secure an application development process, a recent technology is secure Cloud Development Environments (CDEs) and the associated platform used to manage them. The basic role of such a platform is to provide online access to development environments with security mechanisms via an IDE, in addition to providing secured access to the web applications used by developers (e.g. for code management). For the latter, a technology similar to that of enterprise browsers is used. The combination of remote access via IDE and secured web browsing aims at protecting the entire developer workflow against data leaks. (This is explained in detail in this post.) Like in the case of a virtual desktop, local development data is in effect “removed” from local devices and computing is delivered via the cloud. Hence, secure CDEs can be seen as a technology blending aspects of the previous two presented here.     

The figure below depicts the three technologies compared in this article.  

From left to right, a thin client accesses a remote desktop, while an enterprise browser provides access to both web applications and remote desktops via RDP. On the right, a secure CDE platform provides a combination of remote access to a development environment via an IDE and secure web browsing.

Comparison of the technologies

Let’s dive into key differences between these three technologies and highlight their roles and benefits. Note that, albeit virtual desktops and enterprise browsers are business process-agnostic, I only discuss here their application in securing application development.   

Code development applicability 

From left to right, in both the cases of virtual desktops and enterprise browsers, a virtual machine hosts all the tools, computing power and provides connection to DevOps services. Secure cloud development provides access via IDE and secure browser to containerized environments and services, respectively.

The striking difference with a remote desktop is that developers do not need a desktop to develop applications. The platform is primarily suited for cloud-native, i.e. web-based (back-end/front-end) and mobile development (left part in the next figure). The cloud environment is accessed directly via the IDE and developers typically run web applications on an environment’s port. The running application is then accessed via a local web browser. Note that it is possible to run a desktop on the containers if needed. In this case it is steamed over a port and accessed via browser as well (right part of the figure below).

Secure cloud-based development does not require a desktop to build back-end, web, and mobile applications. The same mechanism used to run applications on containers lets users access a desktop when necessary.

Security focus of the technologies
What about their security focus? 

Impact and benefits to the developer experience
Accessibility to the platform and, more generally, the developer experience are important factors when assessing the fitness of these technologies to support development. 

Virtual desktops let developers interact with a remote desktop via a locally installed client by streaming the image of the remote desktop to the client. Such access protocol can sometimes suffer from latency due to network requirements which could impact the developer experience. (Check out this real-life story.)

Enterprise browsers let developers access web applications without usability issues. However, because developers need access to a remote desktop for coding, this requires again the use of a streaming protocol such as RDP and results in display latency impacting the developer experience and productivity.

In the case of a secure CDE platform, the IDE used for coding (right part) is not streamed to the desktop and rendered locally, which preserves the developer’s experience. In comparison, secure browsing might be implemented using streaming (left part).

A secure CDE platform provides developers access to the online development environment via a web-based IDE and to web applications via a secure browser. The web-based IDE is a web application on its own and renders natively in the browser on the developer’s device. Therefore no streaming is required which provides optimal developer experience (see the above figure). 

In contrast, the chosen implementation for the secure browser can impact the experience. However, in practice, developers spend the majority of their time in the IDE and use web applications for less frequent operations such as pull-requests.    

Opportunities when combining technologies

In general, virtual desktops and enterprise browsers play an important role across enterprise business processes by providing general-purpose security for desktops and web applications, each with distinct infrastructure requirements and performance outcomes. Historically, virtual desktops have been a staple in the enterprise environment, representing the oldest technology among the ones that I discussed in this article. 

In comparison, enterprise browsers are designed as a lightweight alternative to virtual desktop infrastructure. They are optimized mainly for SaaS applications delivered through the web. Their utilization for accessing developer desktops via RDP is akin to a modern reinterpretation of virtual desktops via a web browser.

To protect the application development process, a secure CDE platform centralizes all essential resources, including access clients (IDE and web applications) and development environments, in one place. The targeted usage allows the platform to offer context-specific security and preserves the developer experience when working in a secure environment. 

In a larger organizational context, integrating a secure CDE platform with virtual desktops or an existing enterprise browser setup might be necessary. This provides an opportunity to balance development productivity, security and asset utilization optimally. 

One key feature of a secure CDE platform is its use of a dedicated browser for safe access to web applications. This feature is particularly enhanced when integrated with an enterprise browser or application virtualization technologies. Essentially, this integration allows for replacing the CDE platform’s secure browser with a more seamless solution and incorporates secure CDE technologies into the existing infrastructure.  

This way, organizations can standardize security mechanisms across the infrastructure, ensuring access to legacy applications while modernizing application development. It also offers them an opportunity to improve asset utilization by leveraging lightweight virtualization for on-demand access to cheap computing power dedicated to development workloads (see the next figure).

In the implementation of a virtual desktop infrastructure, incorporating a secure CDE platform elevates the developer experience by providing on-demand development environments (with associated computational resources) and bolstering data access security. 

The combination between the secure CDE platform and the other technologies to fit different needs and scenarios in an enterprise setting.

In conclusion, integrations between secure CDE platforms, enterprise browsers, and virtual desktops provide opportunities for enhancing both security and productivity of the development process, while jointly improving developer experience and resource utilization. 

Although a secure CDE platform alone provides a contemporary approach to prevent data leaks during application development, it also delivers an opportunity to enrich the existing infrastructure ecosystem of modern organizations.  

Exit mobile version