application streaming is dead. a smart way to choose an alternative

56
Application Streaming is dead. A smart way to choose an alternative Denis Gundarev Entisys Solutions

Upload: denis-gundarev

Post on 08-May-2015

697 views

Category:

Technology


0 download

DESCRIPTION

Application Streaming is dead. A smart way to choose an alternative

TRANSCRIPT

Page 1: Application Streaming is dead. A smart way to choose an alternative

Application

Streaming is dead.

A smart way to

choose an alternative

Denis Gundarev

Entisys Solutions

Page 2: Application Streaming is dead. A smart way to choose an alternative

Agenda

• What is Application Streaming (Virtualization)?

• Application Virtualization internals

• Overview of available solutions

Page 3: Application Streaming is dead. A smart way to choose an alternative

What is Application Virtualization?

• Application is executed inside the sandbox isolated from

operating system

• Improves security (isolates insecurity)

• Eliminate application conflicts

Package Deliver Execute

Page 4: Application Streaming is dead. A smart way to choose an alternative
Page 5: Application Streaming is dead. A smart way to choose an alternative
Page 6: Application Streaming is dead. A smart way to choose an alternative
Page 7: Application Streaming is dead. A smart way to choose an alternative
Page 8: Application Streaming is dead. A smart way to choose an alternative
Page 9: Application Streaming is dead. A smart way to choose an alternative
Page 10: Application Streaming is dead. A smart way to choose an alternative

Every time you disable UAC…

Steve Ballmer kills a kitten

Page 11: Application Streaming is dead. A smart way to choose an alternative

Every time you disable UAC…

Satya Nadella kills a kitten

Please, think of the kittens

Page 12: Application Streaming is dead. A smart way to choose an alternative

Every time you:

• Modifying ACLs on Program Files or HKLM

• Making user a local admin

• Just give users SeBackup, SeRestore, SeCreateGlobal and SeLoadDriver privileges, but keep them as standard users

Page 13: Application Streaming is dead. A smart way to choose an alternative

Application Isolation Environments

• Was introduced in MetaFrame Presentation Server 4.0 (2005)

• Virtualization layer that redirects system resources

• Virtualizes:

– File system

– Registry

– Named objects (events, semaphores, etc)

• Transparent to the application

• Was a great compatibility aid for:

– Applications which are not multi user friendly

– Applications which have problems coexisting on the same server

– Applications that cannot have multiple instances running simultaneously

Page 14: Application Streaming is dead. A smart way to choose an alternative

Launching initial process into AIE

File System Isolation

Isolation Environment

Launcher (aierun.exe)

Registry and

Object Isolation

Application

(eg winword.exe)

IMA

2. Launch application

suspended

4. Resume process

File System Object

ManagerRegistry

5. Read rules

from driver

and start

isolating

6. Application

execution

continues

3. Tell driver

about AIE

being

launched.

Pass down

rules

File System redirection

Registry

redirection

Named Object

redirection

File System calls

1.Retrieve

AIE data

from IMA

Page 15: Application Streaming is dead. A smart way to choose an alternative

Isolation Environment Roots

• Specifies directories and registry locations

• User Profile Root

– Changes made by the user reside here

– Suitable for Multi-user

incompatible applications

• Installation Root

– Per Isolation environment location

– Enables conflicting applications to

coexist

Page 16: Application Streaming is dead. A smart way to choose an alternative

Isolation Environment Rules

• Three types of Rules:

• Ignore

• Redirect

• Isolate

Page 17: Application Streaming is dead. A smart way to choose an alternative

Isolation Environment: IGNORE Rule

• Used to create “holes” in an isolation environment

• Virtual address is not modified by the virtualization

system

• Used to allow access outside of the isolation

environment

Page 18: Application Streaming is dead. A smart way to choose an alternative

Isolation Environment: REDIRECT Rule

• Redirects an application request for a file or registry

key to a specified location

– If an application creates the file, c:\temp\data.txt, regardless

of the user, then it might be sensible to redirect those files

to c:\aietemp\%USERNAME%

– This means, if UserA ran the application isolated, then

c:\temp\data.txt is created in c:\aietemp\UserA\data.txt

Page 19: Application Streaming is dead. A smart way to choose an alternative

Isolation Environment: ISOLATE Rule

• Per User:

– Ensure that each user gets his own copy of the

requested resource

• Per Isolation Environment:

– A single copy of the required system resource is

created in the installation root location and shared by

all users

Page 20: Application Streaming is dead. A smart way to choose an alternative

Application Streaming

• Codenamed Project Tarpon

• Introduced in Citrix Presentation Server 4.5 (2007)

• Had 6 major releases before being deprecated

• Still available with XenApp 6.5 and XenDesktop 5.6

• Completely removed in XenDesktop 7

Page 21: Application Streaming is dead. A smart way to choose an alternative

2

1

Tarpon Client

Extension of CPS Foundation

remote users

fire

wall

fire

wall

local users

AccessGateway Advanced

AccessControl

Web Servers ApplicationServers

IMA Service

PN Agent

Persistent

Store

AIE

PN Agent

Access

Management

Console

Tarpon App

Subsystem

Tarpon Session

Subsystem

Tarpon Client

Tarpon Profiler

License

Server

Web

Interface

AIE

AIE

Tarpon Client

AIE

PresentationServers

DatabasesFile Servers

New Apps

License

Presentation Server

Data

Collector

Page 22: Application Streaming is dead. A smart way to choose an alternative

2

2

Project Tarpon Infrastructure

Profiling Station

File Share / NASProject Tarpon

Server Farm

Web Interface

Clients

SMB

SMB

HTTP/

HTTPS

XML

SMB

License Server

27000

Page 23: Application Streaming is dead. A smart way to choose an alternative

23 |

Application Virtualization Internals

Page 24: Application Streaming is dead. A smart way to choose an alternative

How it works

• Two main components of Application Virtualization:• Isolation/Redirection

• Delivery mechanism

• Optional features:• File type associations and OS integration

• Rights Management and usage tracking

• Packaging

• Shareable sandboxes

Page 25: Application Streaming is dead. A smart way to choose an alternative

File I/O Redirection options

• API Hooking • at USER or Kernel Level

• Hooking CreateFile, OpenFile, DeleteFile, NtCreateFile, NtOpenFile, NtDeleteFile etc

• Hooking into System Service Descriptor Table (SSDT)

• File System Filter Driver or Mini-Filter• Write file system driver to redirect virtualized file requests.

Page 26: Application Streaming is dead. A smart way to choose an alternative

Registry Redirection Options

• API Hooking at USER Level• Hooking advapi32.dll - RegCreateKeyEx, RegDeleteKeyEx etc

• Hooking Ntdll.dll – NtCreateKey, NtDeleteKey etc

• API Hooking at Kernel Level• Hooking SSDT – NtCreateKey, NtDeleteKey etc

Page 27: Application Streaming is dead. A smart way to choose an alternative

Players on App Virtualization Market

Page 28: Application Streaming is dead. A smart way to choose an alternative

Players on App Virtualization Market

• Microsoft App-V

• VMware ThinApp

• CloudVolumes

• Symantec Workspace Streaming

• Spoon (Novell ZENworks)

• Numecent Jukebox

• FSLogix

• Sandboxie

• Microsoft Windows

Page 29: Application Streaming is dead. A smart way to choose an alternative

Microsoft App-V

• Version 2.0 was released in 2002 by Softricity

• ~8 major and ~50 minor releases before App-V 5.0

• App-V 5.0 is completely rewritten and released in 2012

• Available as a part of MDOP under SA

• App-V 5.0 is only supported version for XenDesktop 7

Page 30: Application Streaming is dead. A smart way to choose an alternative

App-V 5.0 Cons

• Requires SA

• Requires management servers

• Requires SQL

• User-level apps only

• Cannot virtualize drivers

• Cannot isolate applications that are a part of the OS

Page 31: Application Streaming is dead. A smart way to choose an alternative

App-V Pros

• Tons of information on Internet

• Huge user community

• Integration with System Center

• Integration with XenDesktop

• Managed by PowerShell

Page 32: Application Streaming is dead. A smart way to choose an alternative

VMware ThinApp

• Uses user-mode hooks

• Application packaging solution, just like PortableApps.com

• emulates the Windows COM and DCOM

• Supports Streaming Execution (SMB/CIFS) and Deployed Execution (i.e. USB)

• Does not support installed Apps

• No centralized management

Page 33: Application Streaming is dead. A smart way to choose an alternative

CloudVolumes

• AppStack – basically a VHD or VMDK attached to a VM

• Web-based management console that communicates with hypervisor

• Full support for server software

• Available Now: VMware ESX 5.0, 5.1, Coming soon… HyperV, Azure, Amazon EC2

Page 34: Application Streaming is dead. A smart way to choose an alternative

CloudVolumes

Page 35: Application Streaming is dead. A smart way to choose an alternative

CloudVolumes

Page 36: Application Streaming is dead. A smart way to choose an alternative

CloudVolumes pros

• Server software support

• No streaming or any other delivery mechanism

• Combination of file system minifilters and a service

• Text file-driven configuration

• Storage segregation on the hypervisor layer

• Per-machine or per-user assignments

• No packaging

Page 37: Application Streaming is dead. A smart way to choose an alternative

CloudVolumes cons

• Works with virtual workloads only

• Came out of stealth mode in 2013

• Text file-driven configuration

• No integration with VDI brokers

Page 38: Application Streaming is dead. A smart way to choose an alternative

Symantec/Altiris SVS

• Now called Symantec Workspace Virtualization

• Kernel-level hooks

• Umanaged computers support

• Application license management

• Best in class integration with OS

Page 39: Application Streaming is dead. A smart way to choose an alternative

Spoon

• Formerly Xenocode

• Web portal for app access

• Desktop integration

• Works over HTTP/HTTPS

• License management

• Available as SaaS offering

• Server software support

• Auditing

• Support for installed applications

• Application snapshots

Page 40: Application Streaming is dead. A smart way to choose an alternative

Numecent Jukebox

• HTTP-based streaming

• Encrypted cache

• Virtualized File System

• DRM and license control

• OPSWAT integration

• Kernel-level file system driver

• Web portal for user access

• Currently targeted for ISVs and MSP

• No publicly available demos or code

Page 41: Application Streaming is dead. A smart way to choose an alternative

Numecent Jukebox

• Patents:

• Software streaming system and method

• Intelligent Network Streaming and Execution System for Conventionally Coded Applications

• Rule-based application access management

• Opportunistic block transmission with time constraints

• Deriving component statistics for a stream enabled application

Page 42: Application Streaming is dead. A smart way to choose an alternative
Page 43: Application Streaming is dead. A smart way to choose an alternative
Page 44: Application Streaming is dead. A smart way to choose an alternative

FSLogix

• AIE:Ressurection

• Came out of stealth mode about in July 2013

• First release planned in Q3 2013

• No streaming, no packaging

• Combination of file system minifilter and user-level hooks

• Support changes in realtime

• Text-file based configs with a GUI editor

Page 45: Application Streaming is dead. A smart way to choose an alternative

FSLogix

Page 46: Application Streaming is dead. A smart way to choose an alternative

FSLogix

Page 47: Application Streaming is dead. A smart way to choose an alternative

FSLogix

Page 48: Application Streaming is dead. A smart way to choose an alternative

Sandboxie

• Isolated sandboxes for applications

• Virtualizes Files, Disk Devices, Registry Keys, Process and Thread objects, Driver objects, and objects used for Inter-process communication: Named Pipes and Mailbox Objects, Events, Mutexs(Mutants in NT speak), Semaphores, Sections and LPC Ports

• Not designed for VDI

• Not designed for Enterprise

• Developed by one person

Page 49: Application Streaming is dead. A smart way to choose an alternative

Microsoft Windows

• UAC Virtualization is available out of the box

• Application compatibility toolkit can be used to manage folder and registry redirection

• No additional software needed

Page 50: Application Streaming is dead. A smart way to choose an alternative

What Are Shims?

• Applied to specific apps

– Configured with Compatibility Administrator in the App Compat Toolkit

– Deployable to enterprise

• Changes what the app thinks it sees

• Does not change what app is allowed to do

Page 51: Application Streaming is dead. A smart way to choose an alternative

What Are Shims Good For?

• Great for many kinds of bugs:

– Bad Windows version checks

– Writing to HKCR at runtime

– Unnecessary checks for “am I admin?”

– Writing to WRP-protected keys and files

– Windows thinks your app is an installer

– File/Registry redirections

Page 52: Application Streaming is dead. A smart way to choose an alternative

Version Lie Shims

• Win95VersionLie

• WinNT4SP5VersionLie

• Win98VersionLie

• Win2000VersionLie

• Win2000SP1VersionLie

• Win2000SP2VersionLie

• Win2000SP3VersionLie

• WinXPVersionLie

• WinXPSP1VersionLie

• WinXPSP2VersionLie

• Win2K3RTMVersionLie

• Win2K3SP1VersionLie

• VistaRTMVersionLie

• VistaSP1VersionLie

• VistaSP2VersionLie

• Win7RTMVersionLie

Page 53: Application Streaming is dead. A smart way to choose an alternative

Most Used Shims

• VirtualRegistry

– Fixes the problem with reading/writing registry value

– AddRedirect ( HKLM\Key ^ HKCU\Key ^ HKLM\Key2 ^ HKCU\Key2)

• CorrectFilePaths

– Fixes the problem with reading/writing a file

– c:\Program.ini=%AppData%\Program.ini

• WRPRegDeleteKey

– Lie when app tries to delete protected OS registry key

• ForceAdminAccess

– Spoofs queries of administrator group membership

• VirtualizeDeleteFile

– Spoofs deletion of global file

• LocalMappedObject

– Forces global section objects into user’s namespace

• VirtualizeHKCRLite, VirtualizeRegisterTypeLib

– Redirects global registration of COM objects

Page 54: Application Streaming is dead. A smart way to choose an alternative

Conclusion

• There are many vendors on the market

• If you care about App compatibility, take a look at simple solutions

• Consider using SaaS-based services

• Check the Application Virtualization Smackdown from Ruben Spruijt

– http://www.pqr.com

– 61 pages cover major vendors on the market

Page 55: Application Streaming is dead. A smart way to choose an alternative

Conclusion

Page 56: Application Streaming is dead. A smart way to choose an alternative

Contacts

• @fdwl

• meetup.com/BayCUG

[email protected]