High secure Citrix Virtual Apps and Desktops
Door Vincent van Zeijl
Citrix Virtual Apps en Desktops (CVAD), voorheen XenApp, is tegenwoordig vrij eenvoudig te installeren. De setup installeert ook de benodigde middleware componenten, rollen en features. Zo heb je in een paar minuten een draaiende omgeving, maar daarna valt er nog heel wat te tweaken en dat is zeker nodig in de huidige wereld waar hackers vrij spel hebben.
Daarom ga ik hier in op een aantal beveiliging instellingen. Eigenlijk zou elke CVAD-omgeving deze instellingen moeten hebben. Sommigen liggen misschien heel erg voor de hand, maar anderen zijn wat minder bekend.
Portal benaderen via HTTP is natuurlijk niet meer van deze tijd
De Citrix web portal, ook wel StoreFront genoemd, is de eerste ingang, om als medewerker bij de applicaties te komen. Na een default installatie kun je deze portal benaderen via een HTTP-verbinding. Dat is natuurlijk niet meer van deze tijd. Vraag meteen een certificaat aan voor deze website en zet IIS op HTTPS only, door in ieder geval de HTTP-binding te verwijderen. Nog beter is het om Require SSL in te stellen in IIS. Dan accepteert de webserver helemaal geen HTTP-verkeer meer. Mocht je de CVAD-omgeving ook voor externe gebruikers willen ontsluiten plaats er dan een Citrix Gateway (Netscaler) voor als ICA-proxy. De Netscaler is een hardend appliance die secure de authenticatie van de gebruikers voor zijn rekening kan nemen al vorens de gebruiker de StoreFront server kan benaderen. De Citrix Gateway kan ook Multi Factor Authenticatie aanbieden.
Default is een risico
Zodra een medewerker via storefront een applicatie gaat starten op een Citrix Server of desktop wordt er een rechtstreekse connectie gemaakt vanuit de Citrix Client (Receiver of Workspace App) naar de Citrix-server. Dit verloopt over poort 1494 of 2598 via het ICA/HDX-protocol. Default is dit niet versleuteld en omdat de gebruiker maar 1 keer hoeft aan te loggen op de portal en verder met Single Sign-On werkt, is dit een risico.
Je kunt dit heel makkelijk ondervangen door op elke Delivery Group secure ICA aan te zetten. Het resultaat is direct een end-to-end versleuteling zonder al te veel performance impact. Secure ICA is echter een versleuteling op basis van RC5 encryptie en daardoor niet FIPS Compliant. Vraag je dus goed af of dit voldoende is in jouw omgeving.
Mocht je het verkeer end-to-end FIPS-compliant willen maken, dan kun je Secure VDA gebruiken. Hiervoor heb je op elke server een certificaat nodig en wordt het verkeer end-to-end via SSL/TLS beveiligd. De versleuteling (min 2048-bits) van het certificaat en de TLS-versie (TLS 1.2 of hoger) kun je dan zelf instellen.
Zoals ik al eerder zei, wordt in een Citrix-omgeving op verschillende plaatsen Single Sign-On gebruikt. Zo ook voor het XML-verkeer vanaf de StoreFront server naar de Delivery Controllers. Hoewel dit verkeer meestal alleen intern verkeer is, kan het toch een reden zijn om dit te versleutelen.
Default verloopt het XML-verkeer over poort 80. Wil je dit verkeer versleutelen via SSL/TLS dan moet je ook hiervoor een certificaat aanvragen en de broker service op de Delivery Controller hieraan binden. Ook op de StoreFront server moet er een aanpassing komen, omdat nu het XML-verkeer naar de Delivery Controllers via poort 443 gaat verlopen. Het is tegenwoordig niet ongebruikelijk om ook intern verkeer te beveiligen.
Wie gebruikt er nog het Self-Singed certificaat?
Citrix licensing is nog een voorbeeld van intern verkeer. De Delivery Controllers verbinden naar de license server om een valide licentie op te halen. De license server wordt default wel geïnstalleerd met een certificaat voor de webserver, maar dat is een self-signed certificaat. En wie gebruikt er tegenwoordig nog een self-signed certificaat in een productie omgeving? Voor de volledigheid moet ik wel vermelden dat er geen authenticatie verkeer over deze verbinding loopt. Mocht je het licentie-verkeer beter willen beveiligen dan kun je het self-singed certificaat vervangen voor een valide certificaat. Daarnaast kun je in een configuratie bestand op de licentie server instellen af je SSL ondersteund of bijvoorbeeld alleen TLS1.2 of hoger. Misschien is het handig om in je hele Windows omgeving SSLv2 en SSLv3 uit te schakelen en alleen TLS1.2 te ondersteunen.
Goede auditing is van belang
Een goede auditing is van belang in de huidige omstandigheden waar hackers vrij spel hebben. In Citrix Studio worden alle acties altijd gelogd. Zo kun je altijd terugkijken wie welke actie gedaan heeft. Echter is er een belangrijke instelling die default niet aan staat. Mocht de logging database niet beschikbaar zijn, dan kun je nog steeds wijzigingen maken in je omgeving. Ik kan me voorstellen dat je dat niet wilt. Om de beveiliging op te schroeven kun je onderstaande instelling zetten. Daarna is het niet meer mogelijk om ook maar iets aan te passen in Studio als de logging database niet beschikbaar is.
Policies instellen
Met Citrix Virtual Apps en Desktops kun je ook heel veel policies instellen. Een deel daarvan heeft ook een security impact. Een voorbeeld daarvan zijn de disconnect en idle timers. Wordt een sessie niet meer gebruikt dan kan deze afgesloten worden. Er zijn ook heel veel client redirection policies mogelijk. Het is maar de vraag of je b.v. client drives standaard gekoppeld wilt hebben in een sessie en of je daar dan naartoe mag schrijven.
Mocht je naar aanleiding van dit artikel vragen hebben of een check van jouw omgeving willen dan kun je altijd contact met ons opnemen. We hebben veel ervaring met het ontwerpen en bouwen van CVAD-omgevingen, ook in het bankwezen of Healthcare.