Wibu-Systems, leverancier van de CodeMeter technologie voor het beveiliging en licentiebeheer van software, heeft aansluiting gemaakt met de uitrol van software-applicaties in de vorm van Docker containers. De populariteit van deze zogeheten microservices – applicaties opgedeeld in functionele modules, die elk geïsoleerd draaien in containers – groeit onder invloed van ’hyper converged computing’ in IT-omgevingen ondergebracht in zowel de public als de private cloud.
Containersystemen zoals Docker kenmerken zich door hun gemak in operationele gebruik waardoor applicaties snel zijn op– en af te schalen en de werkbelasting binnen een cloud-omgeving nauwkeurig is af te stellen op de voorhanden IT-bronnen in een datacentrum. Het werken met microservices sluit goed aan bij de huidige opvatting over softwareontwikkeling door verschillende multidisciplinair samengestelde teams. Die werken samen volgens het Agile-principe in projecten met gelijktijdig coderen, testen en operationeel opleveren (DevOps). De betrokken softwarebouwers zien hun expertise en inspanning graag beveiligd tegen ongeoorloofd gebruik of kopiëren van de applicatie en het verder inbreuk maken op het intellectuele eigendomsrecht (Intellectual Property: IP). Met de CodeMeter technologie zijn softwarecontainers op een correcte manier te binden aan de licentierechten van een applicatie, zodat ze zich gemakkelijk in meervoudige vorm laten activeren en kopiëren.
De gedachte achter het verpakken van software in containers is niet nieuw. De basis functionaliteit maakt al heel lang deel uit van het Linux-besturingssysteem. Dankzij het oorspronkelijk ’open source’ Docker project maakte de IT-wereld kennis met dit gebruiksvriendelijke systeem voor het uitrollen van applicaties. Docker geldt als een de facto standaard sinds Microsoft besloot om de containertechnologie deel uit te laten maken van Windows Server 2016 en Windows 10. Containers zijn in essentie kleine virtuele machines (VM’s) zonder eigen besturingssysteem. Ze delen gezamenlijk de OS ’kernel’ en andere belangrijke besturingsbestanden van hun host-systeem. Daarop leggen ze beduidend minder beslag dan de volledig VM’s onder een op virtualisatie gericht besturingssysteem, terwijl ze dezelfde services bieden. Ze zijn dus met minder systeembronnen in het datacentrum te draaien, te onderhouden, op te waarderen en te voorzien van beveiligingspatches.
Bij het activeren van de software in de containers is er geen opstart procedure nodig voor het besturingssysteem of modules uit andere softwarebibliotheken. Ze hebben direct toegang tot de componenten en data in de onderste laag van het besturingssysteem. Daardoor kunnen ’on the fly’ gemakkelijk containers worden toegevoegd. Wanneer het operationele proces volledig geautomatiseerd is ingericht, laat het geheel zich perfect schalen naar de actuele omvang van de werklast. Die zal in het geval van bijvoorbeeld een online toepassing sterk variëren, afhankelijk van de tijdzones en de locaties waar het systeem beschikbaar is. Voor het verder automatiseren van de beheerprocessen rond softwarecontainers komen we terecht bij een ander fenomeen, opgegroeid in de open source gemeenschap: Kubernetes. Deze technologie biedt een raamwerk van beheeroplossingen voor het verhogen van de veerkracht van gedistribueerde containerapplicaties met functies voor orkestratie, op- en afschaling en herstel bij onverhoopte storingen.
Tot zover de positieve punten van een containertoepassing. De nadelen liggen op het vlak van beveiliging. In vergelijking tot traditionele virtualisatietechnologie zijn individuele containers minder geïsoleerd van elkaar en van de host. De processen in de containers delen dezelfde systeembibliotheken en dezelfde ’kernel’, waardoor compatibiliteitsproblemen kunnen ontstaan. Eventuele zwakheden en fouten in de software van het host-systeem raken ook de microservices in de containers en beïnvloeden daarmee de prestaties van een cloud native applicatie.
Naast het beveiligingsaspect levert CodeMeter in combinatie met Docker de mogelijkheid licenties te beheren van software, opgesplitst in functionele modules, ondergebracht in een reeks van containers. Een licentie wordt gekopieerd en gebonden aan een container. In essentie verschillen de verschillende installaties van de CodeMeter licentieserver per container niet. De bindingeigenschappen blijven gelijk. De beveiligde applicatie in de Docker container kan de licentie ook via een cloud server krijgen. De gebruiker heeft drie opties voor het huisvesten van het licentiecontrolemechanisme: in hardware (CmDongles); in software (CmActLicenses) en in de cloud (CmCloudlicenses). Om meervoudige installaties van de CodeMeter licentieserver mogelijk te maken, zijn vanaf versie 6.90 twee wijzigingen aangebracht die de werking van een container beïnvloeden.
De eerste wijziging heeft betrekking op varianten in CmActLicences, het activeringsmechanisme van licenties die in een Docker container actief mogen zijn. Zo zijn er licenties aan te maken zonder een concrete binding met de hardware van een systeem (NoneBind). Met deze licenties laten beveiligde applicaties zich alleen maar ontcijferen in het geval van een Protection Only toepassing. Wanneer deze licenties bij een reeks van containers zijn aangebracht bestaat er geen risico van frauderen. Softwareontwikkelaars kunnen CmActLicenses ook specifiek voor meervoudig containergebruik instellen via een instructie voor het gebruik van alleen Universal Firm Codes.
De tweede wijziging betreft de werking van het bindingmechanisme in samenhang met netwerkkoppelingen. Om blootstelling aan mogelijke aanvallen te voorkomen, bindt de CodeMeter licentieserver alleen via poort 22350 in het geval de server is geconfigureerd om te werken binnen een netwerk. Actief binnen een Docker container ontvangt de server alleen aanvragen van actieve applicaties en reageert dan ofwel via een licentie in de container of geeft de aanvraag als client door aan een andere CodeMeter licentieserver in het netwerk.