Skip to main content
Parentix Blog

Parentix Blog

Search
Home
  
 

There are no items in this list.
November 08
WCF is de basis voor ServiceBus

In een eerdere blog hebben we al gemeld dat we bezig zijn met het opbouwen van een ServiceBus structuur.

De komende tijd zullen we regelmatig verslag doen van de ontwikkelingen, de pijnpunten en onze oplossingen. Deze post is de eerste post in deze reeks.

De gehele ServiceBus en alle aanverwante onderdelen worden ontwikkeld op het Microsoft .NET 4.0 platform.

WCF

Als basis voor onze ServiceBus hebben we gekozen voor WCF services. Deze services worden gehost in een eigen Windows Service of in Internet Information Services (IIS).

Aangezien de infrastructuur bestaat uit meerdere netwerken en domeinen die gescheiden zijn door firewalls, kunnen niet alle machines direct met elkaar communiceren. WCF heeft hier een mooie oplossing voor: Routing Services. Hiermee kunnen verbindingen overgezet worden naar andere types (net.tcp –> http), maar ook kan de beveiliging aangepast worden.
In ons geval was deze optie een oplossing om toch over netwerken en domeinen heen berichten uit te wisselen.

Beveiliging

Aan de beveiliging en veiligheid worden door Parentix hoge eisen gesteld. En dus ook aan onze implementatie van de ServiceBus.
De communicatie tussen WCF services kan op vele manieren worden beveiligd. Wij hebben gekozen voor een beveiliging op basis van certificaten. De diverse client- en serveronderdelen gebruiken hun eigen type certificaat, waardoor je niet zomaar een applicatie kan toevoegen aan de ServiceBus. Zonder certificaat zal geen enkel onderdeel je berichten accepteren.
Naast deze ‘signing’ functionaliteit maken we ook gebruik van encryptie. De totale inhoud van het bericht is dus ook niet meer leesbaar op het netwerk. WCF kent hier ook een aantal technieken voor, maar aangezien we toch al certificaten hebben wordt de encryptie geregeld met certificaten.

Host en Agents

Een ServiceBus kan in diverse vormen worden opgebouwd. In de post over de haalbaarheid voor Parentix is hier al over geschreven. De uiteindelijke vorm die wij aan het realiseren zijn is hierover weergegeven.

image

Er is een centrale Host waar alle berichten terecht komen. Deze regelt de distributie. De Agent wordt op iedere server in het netwerk geïnstalleerd. Om de communicatie over netwerkgrenzen en firewalls mogelijk te maken wordt op een aantal gateway servers ook de Routing Service geïnstalleerd.

Afnemers (andere applicaties die gebruik willen maken van functionaliteit) sturen een bericht naar de Host. Deze Host kijkt aan de hand van instellingen welke Agents (aanbieders) het bericht kunnen verwerken en welke dan ook werkelijk beschikbaar zijn. De Host stuurt het bericht vervolgens door en als de Agent klaar is met de verwerking gaat het antwoord via de omgekeerde weg weer terug naar de Afnemer.

Echter zijn er vele functionaliteiten te bedenken welke niet aan een server/agent gebonden zijn. Misschien wil je functionaliteit wel op iedere server in het netwerk uitvoeren. Of op alle servers binnen een domein. Die functionaliteit wordt ook door de Host geregeld. Een afnemer kan zelf aangeven of het bericht naar 1 server, naar een heel domein of naar alle servers gestuurd moet worden.

Plug-ins

De functionaliteit die wordt aangeboden door de Agents bestaat uit lossen .NET assemblies. Bij het starten kijkt een Agent welke assemblies er allemaal beschikbaar zijn en of deze functionaliteit bevatten die uitgevoerd mag worden.
Deze controle wordt gedaan aan de hand van een aantal criteria:

  1. Is de assemblies gesigned met onze plug-in key
  2. Is de functionaliteit van onze base class

Ook hier dus weer een stukje ingebouwde veiligheid om te voorkomen dat er ongecontroleerd functionaliteit kan worden toegevoegd.

In code ziet de controle er als volgt uit:

For Each dllFile As String In Directory.GetFiles(privateFileFolder, "*.dll")     Dim name As AssemblyName = AssemblyName.GetAssemblyName(dllFile)     Dim pk() As Byte = name.GetPublicKey()     If (pk Is Nothing) Then         Continue For     End If     If (pluginPublicKey <> Convert.ToBase64String(pk)) Then         Continue For     End If     Dim assembly As Assembly = assembly.LoadFrom(dllFile)     Try         GetPluginObjects(assembly)     Catch ex As Exception         Log(Logging.LOG_SEVERITY.LogWarning, "Error on loading plugin”)     End Try
Next

Op dit moment hebben we ervoor gekozen om alle plug-ins op iedere Agent neer te zetten. In theorie kan dus iedere Agent alle functionaliteiten uitvoeren. Omdat er soms afhankelijkheden zijn met andere software die op de server geïnstalleerd moet zijn kan dit echter niet. Om dit op te lossen gebruikt de Host een aantal configuratie instellingen om berichten bij de juiste Agents af te leveren.

Vervolg

De volgende post zal ingaan op onze Enterprise Services. Deze services zijn centraal beschikbaar binnen alle netwerken en bieden onder andere logging en configuratie services.

August 05
Het Service Level Agreement (SLA) bij Parentix

We krijgen regelmatig de vraag van (potentiele) klanten hoe we de kwaliteit van onze diensten vastleggen en op welke manier we dat formaliseren. Zoals elk hosting bedrijf of service provider doen we dat door middel van een Service Level Agreement (SLA). Door onze afwijkende dienstverlening ten opzichte van traditionele hosters hebben we echter een andere opzet gekozen dan de standaard opzet. Deze blog post legt uit waarom en hoe we dit hebben beschreven voor onze klanten

Service Guarantee

Afwijkende dienstverlening

Als hosting bedrijf of service provider lever je veelal een technisch georiënteerde dienst. Parentix is specialist in het online beschikbaar stellen van bedrijf kritische applicaties van Exact en Microsoft op het Windows platform. Dit vraagt een andere benadering dan bijvoorbeeld website hosting.

Het is altijd onze overtuiging geweest dat praten vanuit de techniek niet is wat onze (potentiele) klant vraagt als het gaat om business software. We hebben ons portfolio dan ook opgezet rondom de verschillende business software producten waarin we gespecialiseerd zijn: Hosted Exact Globe, Hosted Exact Synergy (Enterprise), Hosted Qics Time, Hosted Exchange, Hosted Office en aanvullende producten. En vervolgens onze overeenkomsten en SLA’s hierop aangesloten.

Uiteindelijk neemt onze klant dan ook de beschikbaarheid, performance en veiligheid van bijvoorbeeld Hosted Exact Globe af. Dat is wat we leveren. Niet de beschikbaarheid van de technische componenten, zoals de internet uplink, het Windows besturingssysteem of de snelheid waarmee SQL server reageert. Dit zijn slechts onderdelen die in orde moeten zijn om de applicaties goed te laten werken. Enkel hierop garanties geven heeft in onze ogen geen zin.

Documentstructuur

Bij het uitbesteden van je business applicaties is het belangrijk dat diverse zaken goed zijn vastgelegd. Hierbij moet je denken aan kwaliteit van service, garantie van continuïteit, eigendom van data en procedures bij calamiteiten.

Om dit goed vast te leggen voor beide partijen hebben we bij Parentix de volgende documentenstructuur opgezet:

  • Overeenkomst – Vastlegging van contractpartijen, looptijd, maandelijkse vergoedingen en eventuele bijzondere voorwaarden
  • De overeenkomst verwijst vervolgens naar de volgende documenten
    • Algemene voorwaarden
    • SLA – Beschrijving te leveren diensten
    • Dossier Afspraken en Procedures – Vastlegging procedures, escalatiepaden en contactpersonen

Een heldere en eenvoudige structuur die veel duidelijkheid geeft. De diensten die onze klanten afnemen zijn vastgelegd in een Service Level Agreement (SLA), die onderdeel is van de overeenkomst.

Service Level Agreement

Het SLA bij Parentix is volgens een vaste structuur opgebouwd:

  1. De Service Definitie - Wat wordt er geleverd?
  2. De Service Level Specificatie – Het vastleggen van de kwaliteitsnormen
  3. Randvoorwaarden – Welke voorwaarden zijn noodzakelijk om wederzijds aan het SLA te voldoen.
  4. Service Management afspraken – Het vastleggen van beslismomenten en overlegstructuur.

De Service Definitie

De service definitie geeft weer welk bedrijfsproces van de klant wordt ondersteund, wat de scope is en welke service ondersteuning van toepassing is. Veelal standaard tekst die aangepast wordt op basis van de hosted producten die de klant afneemt.

In het volgende hoofdstuk binnen het SLA wordt  vervolgens daadwerkelijk vastgelegd conform welke kwaliteit elke beschreven service wordt geleverd.

De Service Level Specificatie

Definities

Het is niet de bedoeling van deze post om een volledige uitleg te geven van ITIL (en ook bijkans onmogelijk), echter zal ik toch stil moeten staan bij enkele definities die van toepassing zijn.

In het SLA worden verschillende termen gehanteerd, waarvan drie termen belangrijk zijn:

  • Service Windows - Het tijdvak waarbinnen een bepaalde dienst met een zekere garantie en met een afgesproken beschikbaarheid niveau wordt aangeboden. In ons geval is dit 7x24x365, altijd dus.
  • Beschikbaarheidsniveau – Per te leveren service (Hosted Exact Globe, Hosted Exact Synergy (Enterprise), Hosted Exchange, etc) wordt een beschikbaarheidspercentage afgesproken. In ons geval is dit vaak 99,5 of 99,9%, afhankelijk van de producten die een klant kiest.
  • Maintenance Window – Een (afgesproken) tijdvak waarin onderhoud plaatsvindt die mogelijk verstoring veroorzaakt in het gebruik van de service. Onderscheid wordt gemaakt in verschillende soorten maintenance windows, hierover zal ik later een blog post schrijven.

Beschikbaarheidsniveau

De primaire service, (bijvoorbeeld Hosted Exact Globe) wordt continu de beschikbaarheid van gemeten. Hierbij wordt uitgegaan van de volgende formule:

((Service Window – Maintenance Window) – Storing) / (Service Window - Maintenance Window) = beschikbaarheidspercentage

Dit lijkt een moeilijke formule, maar is het niet. De tijd van een ongeplande storing bepaalt feitelijk het percentage van de beschikbaarheid van de applicatie.

In het SLA is onderstaande tabel opgenomen, inclusief de beschrijving van de technische maatregel die getroffen wordt.

Beschikbaarheid

Max.downtijd in uren per jaar

Max.downtijd in dagen per jaar

Technische Maatregel

99,99%

0,876

0,0365

Conform 99,9% plus hot standby uitwijk op 2e locatie inclusief real-time data replicatie

99,90%

8,76

0,365

Conform 99% plus voor geïnstalleerde uitwijk op 2e locatie en data verlies tot laatste back-up conform SLA

99,50%

43,8

1,825

Conform 99% plus voor iedere applicatie dient ieder component dubbel uitgevoerd te zijn met geautomatiseerde failover (clustering/NLB)

99%

87,6

3,65

Conform 98% met data verlies tot laatste back-up conform SLA

98%

175,2

7,3

Standaard maatregelen, geen garanties omtrent data verlies

Per afgenomen applicatie wordt vervolgens een mapping gemaakt die de beschikbaarheid weergeeft:

Software

Beschikbaarheid

License

Media

Exact Globe

99,5%

Klant

Download

Exact Synergy (Enterprise)

99,5%

Klant

Download

Microsoft Office

99,5%

SPLA - Microsoft

Parentix

Microsoft Exchange

99,5%

SPLA - Microsoft

Parentix

Canon scankoppeling

99,5%

Klant

Download

Tot slot is het belangrijk om iets te zeggen over de performance van de applicaties. Zo is het belangrijk dat de betreffende applicaties altijd lekker werken en dat de gebruiker niet gehinderd wordt in de uitvoer van zijn of haar werkzaamheden.

Veiligheid

Met het beschrijven van de beschikbaarheid is een belangrijk onderdeel beschreven, echter de belangrijkste nog niet. Veiligheid. Dit onderwerp is veelomvattend en verdient een aparte blog post. In het SLA staan alle zaken, die je wat veiligheid betreft mag verwachten, beschreven. Fysieke en logische beveiliging, dataretentie, uitwijk, allemaal onderwerpen die beschreven zijn.

ISO Logo Registered firmIn een eerdere blog post heb ik in hoofdlijnen ons Information Security Management System (ISMS) beschreven conform onze ISO27001 certificering. In een latere post zal ik dieper in gaan op (data)security in het algemeen.

 

Overige garanties

Naast het voorgaande worden nog veel andere zaken beschreven, zoals:

  • Service ondersteuning
    • Gedurende welke tijden is de supportdesk open?
    • Hoe wordt elk aangemeld incident geregistreerd en geprioriteerd?
    • Binnen welke tijd wordt gereageerd?
  • Wijzigingen en releases
    • Continue Microsoft updates
    • Hoe vaak wordt een nieuwe update van Exact geïnstalleerd?
    • Tussentijdse patches
  • Contingency
    • Hoe wordt de uitwijk geregeld bij een grote calamiteit?
  • Bewaartermijn data
    • Back-ups worden meerdere malen per dag gemaakt, maar hoe lang worden deze bewaard? En welk onderscheid wordt gemaakt tussen verschillende datagroepen?
  • 24x7 bereikbaarheid bij P1 incidenten
  • Service beëindiging
    • Prettig om te weten dat gegarandeerd meegewerkt wordt bij het beëindigen van de dienstverlening en overdracht naar een andere partij.

Randvoorwaarden

Per klant kunnen de randvoorwaarden verschillen, maar in hoofdlijnen wordt hier vastgelegd aan welke voorwaarden de ICT omgeving aan de klantkant moet voldoen. Hierbij moet je denken aan minimaal vereiste versie van de browser en minimale kwaliteit van de internetverbinding.

Service Management

Tot slot leggen we in het SLA nog de volgende punten vast:

  • Overzicht beslismomenten en beslisstructuur – Het is belangrijk om vast te leggen wie wat precies mag en kan binnen het kader van het nakomen van het SLA. Zo is het mogelijk dat verschillende medewerkers van de klant user mutaties mogen doorgeven, maar dat alleen de financieel directeur het SLA mag evalueren en veranderen. Typisch iets wat we vastleggen in dit hoofdstuk.
  • Verder bevat het SLA een standaard agenda voor het periodieke overleg. Welke incidenten hebben plaatsgevonden, wat is de releasekalender en welke verwachtingen zijn er met betrekking tot groei of krimp van de organisatie?
  • Welke procedure te volgen bij calamiteiten of conflicten?
  • Wijzigingsprocedure van het SLA

Tot Slot

Het vastleggen van de service specificaties op business applicatie niveau brengt veel voordelen voor de klant en maakt het discussiëren hierover eenvoudig. Een applicatie is simpelweg beschikbaar of niet. Toch merken we vaak dat het flink wat uitleg vraagt, aangezien het nogal afwijkt van wat de markt hanteert. Parentix hanteert het credo dat het voor iedereen begrijpelijk moet zijn, zonder de complexiteit te onderschatten. Wij denken dat bereikt te hebben door de garanties een niveau hoger te brengen en de feitelijke techniek ondergeschikt te maken.

Uiteindelijk is een SLA een formeel document waar je bij voorkeur niet op wil terug vallen. In de praktijk komt het neer op een goede dienstverlening die geboden moet worden en dat de gebruikers tevreden zijn. Alleen dan is de samenwerking geslaagd.


Verantwoording

  • Diverse stukken tekst zijn overgenomen uit de SLA templates van Parentix
  • Graphic Service Guarantee – Diverse sites, via Google Picture Search

July 25
Onderzoek naar haalbaarheid Parentix Service Bus gestart

Afgelopen week was het eindelijk zo ver. We zijn gestart met het onderzoek naar de haalbaarheid van de Parentix Service Bus. Een grote en belangrijke stap in de verdere ontwikkeling van onze organisatie.

Leuk zal je misschien denken. Maar wat is dat, een Service Bus? En wat heb ik eraan?

Het Concept ‘Service Bus’

Een Service Bus (ook wel Enterprise Service Bus genoemd) is een architectuur waarin de communicatie tussen afnemers van ‘diensten’ en aanbieders van ‘diensten’ vereenvoudigd wordt.

image

In een traditionele architectuur communiceren afnemers en aanbieders direct met elkaar (linker schema). In een Service Bus architectuur weten de afnemers enkel welke ‘diensten’ beschikbaar zijn, maar niet waar deze zich bevinden. Een afnemer stuurt een bericht naar de Service Bus, waarna deze het bericht doorstuurt naar de betreffende aanbieder(s). Er is dus geen directe verbinding tussen de afnemers en aanbieders.

Waarom een Service Bus?

De operationele omgeving van Parentix is een complex geheel van servers, firewalls, domeinen, etc. Beveiliging speelt hierbij een grote rol. Niet iedereen mag en kan overal bij. Maar aan de andere kant wil je wel overal bij kunnen om bijvoorbeeld informatie uit een database te halen, of de grootte van klantfolders op een server te bepalen. Dit probleem is natuurlijk op te lossen door diverse poorten te openen in het netwerk, of door super-user accounts te gebruiken die overal bij kunnen. Echter komt dat de beveiliging niet ten goede. Ook de beheersbaarheid van de omgeving wordt er door een dergelijke keuze niet beter op. Het betekent extra administratie (welke account kan wat, welke poort is nu wel of niet open, etc.) en dus een risico op fouten en beveiligingsproblemen.

Een Service Bus biedt hierin een aantal oplossingen:

Beheersbaar
  • Op een centrale plaats worden alle instellingen en accounts beheerd.
  • Via de management interface kan op ieder moment de status bekeken worden van alle services.
  • Log informatie is op een centrale locatie beschikbaar.
  • Updaten van de software is centraal geregeld.

Veiligheid
  • De communicatie tussen de services van de Service Bus is beveiligd en gecodeerd .
  • De afnemers verzenden en ontvangen hun berichten gecodeerd.
  • Er is slechts één manier van communiceren op het netwerk.
Schaalbaar
  • Bij het groeien van de omgeving groeit de Service Bus automatisch mee. (Nieuwe server –> nieuwe aanbieder)
  • Een ‘dienst’ kan door meerdere aanbieders uitgevoerd worden
  • Meerdere berichten worden parallel uitgevoerd, waardoor optimaal gebruik gemaakt wordt van de machine capaciteit
Herbruikbaar
  • Een ‘dienst’ bevat heel specifieke functionaliteit (aanmaken gebruiker, ophalen databases, etc.) waardoor deze makkelijk hergebruikt kan worden in een andere oplossing.

De geplande Parentix implementatie

De Parentix Service Bus zal bestaan uit een aantal onderdelen die nauw met elkaar samenwerken.

image

Applicatie services

Het hart van de Service Bus is de Host service. Deze service zorgt voor het routeren van de berichten naar de aanbieders van ‘diensten’. Hij ‘weet’ welk bericht naar welke aanbieder is gestuurd en zorgt ervoor dat het resultaat/antwoord aan de juiste afnemer wordt teruggegeven.

De aanbieders zijn Agent services. Op iedere server is zo’n Agent aanwezig. Deze Agents worden een management interface centraal geconfigureerd (welke ‘diensten’ kan/mag hij aanbieden, etc.).

Bij iedere Agent is vervolgens ook  een Updater services aanwezig. Deze Updater service controleert regelmatig of er een nieuwe versie van de software beschikbaar is. Vanaf een centrale plaats kan op deze manier snel een nieuwe versie van de Service Bus worden uitgerold naar de servers.

Enterprise services

Naast deze specifieke applicatie services bestaat het Service Bus platform ook uit een aantal gemeenschappelijke Enterprise Services. Deze services worden ook door andere applicaties gebruikt en bevatten de volgende functies:

  • Centrale configuratie
  • Centrale logging
  • Uniforme data toegang en verwerking
  • Centraal beheer
Planning

Op het moment van schrijven van deze post is gestart met het onderzoek naar de algoritmes om dit voor elkaar te krijgen. Het Plan van Aanpak is intussen afgerond.

En hoe nu verder…

De bedoeling is om verschillende algoritmes te ontwikkelingen en hiermee tot een oplossingsrichting en proof of concept te komen. Indien de proof of concept slaagt zullen we een prototype bouwen.

Na succesvolle afronding van voorgaande is de bedoeling dat we geleidelijk alle applicaties gaan aansluiten op de Service Bus. Per applicatie zal bepaald worden welke functionaliteit als ‘dienst’ beschikbaar wordt gemaakt, waarna vervolgens de applicatie wordt aangepast zodat deze de nieuwe ‘dienst' via de Service Bus zal gaan aanroepen.

Nieuwe functionaliteit wordt direct als ‘dienst’ en afnemer gerealiseerd, zodat we snel het aantal ‘diensten’ die beschikbaar zijn uitbreiden en gaan hergebruiken.

Met deze richting bereid Parentix zich verder voor op de toekomst. Nieuwe wensen kunnen snel worden gerealiseerd. Beheer van de omgeving wordt overzichtelijker. En nieuwe technische ontwikkelingen kunnen ‘makkelijk’ worden toegevoegd aan ons platform.

March 17
Een online meeting met Microsoft Lync

Vandaag was het zover, mijn eerste online meeting met onze accountant. Vorige week werd ik gebeld door hem met het verzoek om een afspraak te maken voor het doorspreken van wat documenten, uurtje was genoeg. Mijn suggestie was om een online meeting te plannen, scheelde toch minimaal een uur reistijd.

Dus een blog post die de stappen beschrijft om tot een online meeting te komen met het gebruik van Microsoft Lync bij Parentix.

Stap 1: Meeting plannen

De eerste stap is om de online meeting te plannen. Hiervoor heb ik uiteraard Outlook gebruikt.

OnlineMeeting

Vervolgens heb ik de accountant uitgenodigd voor de meeting, waarna hij onderstaande mail ontvangt met inloggegevens. Uiteraard staat deze afspraak direct in zijn Outlook agenda.

OnlineMeeting2

Stap 2: De Meeting

En vandaag was het zover. Ik zit thuis klaar achter mijn werkplek, de accountant klikt op de link in de afspraak in zijn agenda en komt automatisch in de lobby van de online meeting terecht. Dit is overigens afhankelijk van de instellingen die meegegeven zijn bij het plannen van de online meeting en zijn achteraf ook aan te passen door de meeting eigenaar (presenter).

image

Na het goedkeuren door mij (presenter) is Mart onderdeel van de meeting. We voegen audio toe en kunnen vervolgens, al chattend en pratend naar hetzelfde document kijken. Voor de accountant een nieuwe ervaring. Binnen een uur hebben we samen het document definitief gemaakt.

OnlineMeeting6

Uiteraard hadden we ook nog video toe kunnen voegen, dit hebben we echter achterwege gelaten. In dit geval voegde het geen waarde toe.

Conclusie:

Face-2-face meetings blijven noodzakelijk vanwege vele redenen, de online meeting biedt echter uitstekende mogelijkheden om veel reistijd te besparen. Een mooi voorbeeld van nieuwe techniek die ongetwijfeld op korte termijn voor iedereen beschikbaar zal komen.


Verantwoording:

  • Enkele screen shots zijn achteraf gemaakt ter verduidelijking.
February 16
ISO 27001 Certificering – Een lust of een last?

Vorige week was het weer zover, de jaarlijkse assessment dag door een auditor voor onze ISO 27001 certificering. Op weg naar kantoor besefte ik me dat het een business-as-usual dag zou worden en dat ik in voorgaande jaren nog wel eens gespannen was voor een audit. Maar niets van dat alles vandaag, het Information Management Security System (ISMS) is intussen zo verankerd in onze organisatie, dat de jaarlijkse assessment een formaliteit is geworden. Al denkend kwam ik uit bij het eerste moment dat we de mogelijkheid tot certificeren besproken, zo’n zes jaar geleden.

In deze post zal ik toelichten hoe we tot deze beslissing zijn gekomen en welke stappen we hebben gezet om gecertificeerd te raken en wat we doen om gecertificeerd te blijven. Gaandeweg zal ik ook iets meer uitleggen over ISO 27001 en de gevolgen ervan voor onze organisatie.

Wat is ISO 27001?

Om volledig te zijn, ik heb het hier over de norm ISO/IEC 27001:2005 voor informatiebeveiliging (kortweg ISO 27001). Dit is de ISO-standaard voor Informatiebeveiliging. De standaard schrijft voor welke eisen er zijn aan informatiebeveiliging binnen een organisatie en hoe het management-systeem in elkaar moet zitten waarmee informatiebeveiliging wordt beheerd.

De certificering volgens deze standaard is een erkenning dat de gecertificeerde organisatie informatiebeveiliging goed heeft georganiseerd en geïmplementeerd. De standaard ISO 27001 bestaat sinds 2005; deze is gestandaardiseerd en geïnternationaliseerd volgens de normen van ISO op basis van de eerdere standaard BS7799 van het British Standards Institute. Sommige bedrijven zijn nog gecertificeerd volgens deze eerdere versie BS7799.

We gaan het doen!

In 2005 kregen we van diverse klanten de vraag hoe we bij Parentix de informatie beveiliging hadden geregeld. Eeuh, hoe bedoel je? We doen aan fysieke en technische toegangsbeveiliging, we maken uiteraard dagelijks back-ups en doen veel om beschikbaarheid en performance te garanderen. Dus hebben we informatiebeveiliging prima geregeld….toch?

En na diverse vragen en geen actie van onze kant bleef er toch wat knagen. Tijd voor wat research dus. Wat houdt de ISO 27001 certificering precies in? Wat moet je er voor doen en bovenal wat is het resultaat? Na wat leeswerk kwamen we steeds meer tot de conclusie dat het een uitstekend kader is om je organisatie naar een hoger niveau te brengen, op alle gebieden. Het biedt een uitstekend kader en topic lijst om af te werken naar een gestructureerde manier van informatiebeveiliging.

Naarmate we het er vaker over hadden kwamen we tot de conclusie dat we dit moesten gaan doen. En dus namen we medio 2006 de beslissing om een project op te starten om gecertificeerd te worden, toen nog met als doel simpelweg het certificaat. En ja, wat dan? Dat wisten we ook nog niet precies. We zijn begonnen met het samenstellen van een projectteam, het verstrekken van de opdracht aan dit team en het beschikbaar stellen van tijd en budget.

Eerst was nodig om de vragen “Wat is informatiebeveiliging?” en “Waarom is het nodig?” te beantwoorden.

Wat is Informatiebeveiliging?

Informatie is een bedrijfsmiddel dat, net als andere belangrijke bedrijfsmiddelen, waarde heeft voor Parentix, partners en klanten en voortdurend op een passende manier beveiligd dient te zijn. Informatiebeveiliging beschermt informatie tegen een breed scala aan bedreigingen, om de continuïteit van de bedrijfsvoering van Parentix te waarborgen, de schade voor Parentix te minimaliseren en het rendement op investeringen en kansen te optimaliseren.

Informatie komt in veel vormen voor. Het kan afgedrukt of geschreven zijn op papier, elektronisch opgeslagen zijn, per post of via elektronische media worden verzonden, getoond worden in films of de gesproken vorm aannemen. Welke vorm de informatie ook heeft, of op welke manier ze ook wordt gedeeld of verzonden, ze dient altijd passend beveiligd te zijn.

Informatiebeveiliging wordt gekarakteriseerd als het waarborgen van:

  • Beschikbaarheid: waarborgen dat geautoriseerde gebruikers op de juiste momenten tijdig toegang hebben tot informatie en aanverwante bedrijfsmiddelen;
  • Integriteit: het waarborgen van de correctheid en de volledigheid van informatie en verwerking;
  • Vertrouwelijkheid: waarborgen dat informatie alleen toegankelijk is voor degenen, die hiertoe geautoriseerd zijn.

Informatiebeveiliging wordt bereikt door een passende verzameling beveiligings­maatregelen in te zetten, zoals beleid, organisatiestructuren, gedragsregels, procedures en softwarefuncties. Deze beveiligingsmaatregelen dienen te worden vastgesteld om te waarborgen dat de specifieke beveiligingsdoelstellingen van Parentix worden bereikt.

Waarom informatiebeveiliging nodig is

Informatie en de ondersteunende processen, systemen en netwerken zijn belangrijke bedrijfsmiddelen. De beschikbaarheid, integriteit en vertrouwelijkheid ervan kunnen van essentieel belang zijn voor het behoud van de concurrentiepositie, cashflow, winstgevendheid, naleving van de wet en het imago van Parentix.

In toenemende mate worden organisaties en hun informatiesystemen en netwerken geconfronteerd met beveiligingsrisico's uit allerlei bronnen, waaronder computerfraude, spionage, sabotage, vandalisme, brand en overstromingen. Nieuwe oorzaken van schade, zoals computervirussen, computer hacking en het verhinderen van dienstverlening komen steeds vaker voor, worden steeds ambitieuzer en steeds meer verfijnd.

Afhankelijkheid van informatiesystemen en -diensten betekent dat organisaties steeds kwetsbaarder worden voor bedreigingen van de beveiliging. De onderlinge verbondenheid van openbare en private netwerken en het delen van informatiemiddelen maken het steeds moeilijker om de toegang te beveiligen. De trend naar gedistribueerde gegevensverwerking heeft de doeltreffendheid van centrale, specialistische sturing verzwakt.

Veel informatiesystemen zijn niet ontworpen met het oog op veiligheid. De beveiliging die met technische middelen kan worden bereikt is begrensd en dient te worden ondersteund door passend beheer en procedures. Om te bepalen welke beveiligingsmaatregelen gebruikt moeten worden is een zorgvuldige planning en aandacht voor het detail vereist. Management van informatiebeveiliging verlangt tenminste de inzet van alle medewerkers van Parentix. Bovendien is deelname van derden, klanten en aandeelhouders vereist. Ook kan specialistisch advies van externe organisaties nodig zijn.

Planning

Na het bepalen van de definities is onderstaande planning opgesteld, alhoewel we ons beseften dat deze ambitieus was:

  • oktober 2006: initiatie project
  • december 2006: proef-audit
  • februari 2007: deadline documentatie
  • maart 2007: documentatie-audit
  • maart 2007: implementatie-audit en certificering

Een planning die we overigens met vereende krachten hebben gehaald. Op 28 maart 2007 is de implementatie-audit succesvol afgesloten en het certificaat verstrekt voor drie jaar. Elk jaar een assessment-audit en na drie jaar weer een volledige audit.

Doel gehaald dus, maar we zijn steeds meer tot de conclusie gekomen dat het certificaat niet meer is dan een bevestiging van een ISMS dat zijn werk goed doet. Want pas na de certificering gaat het Information Security Management System (ISMS) zijn werk doen en daarmee zijn waarde in de praktijk bewijzen.

Wat houdt de implementatie nu echt in?

Per wereldwijde regio worden verschillende principes gehanteerd. Je moet bijvoorbeeld eerst kiezen of je “Control-based” of “Risk-based” gaat starten. Wij hebben voor het laatste gekozen, echter wordt in de Verenigde Staten het eerste principe meestal gehanteerd. Zo is het aan de Westkust van de VS belangrijk om datacenters neer te zetten die bestand zijn tegen aardbevingen en worden gebouwen op veren neergezet. Hier in Nederland wordt veel gebruik gemaakt van verhoogde vloeren, iets wat ondenkbaar is in bepaalde gedeeltes van de VS. Het is dus belangrijk om te bepalen vanuit welke positie je gaat starten en wat de reden is dat je dit doet. En voor wie je dit doet.

De standaard schrijft voor dat op basis van een inventarisatie van assets en een risico-analyse bepaalt moet worden welke technische, beleidsmatige en administratieve maatregelen genomen moeten worden om de beschikbaarheid, vertrouwelijkheid en integriteit van informatie te borgen. Maatregelen zoals het instellen van een beveiligingscommissie, een continuïteitsplan, screenen van nieuwe medewerkers en effectief incident management, maar ook de voor de hand liggende dingen zoals netwerk- en toegangsbeveiliging en virusbescherming. Een en ander moet afdoende zijn gedocumenteerd, op niveau van onder andere beleid, procedures, werkinstructies en audit trails.

Parentix heeft er nadrukkelijk voor gekozen om een praktijkgerichte en pragmatische certificering na te streven. Dat betekent dat beleid, procedures en werkinstructies in het management-systeem volledig worden gedocumenteerd zoals ze in de operationele praktijk al gelden en/of moeten gaan gelden. Geen papieren exercitie dus, maar een gelegenheid om meteen een slag te maken naar documentatie en structurering van de werkzaamheden in de organisatie.

In de praktijk komt het erop neer dat het management systeem gedocumenteerd is in een Handboek waarin alle maatregelen kort staan beschreven, en een grote set procedures, werkinstructies en overige documenten waarin diverse zaken in meer detail wordt uitgewerkt. Het is een levend geheel dat volgens de Plan-Do-Check-Act-cyclus wordt onderhouden.

Bij de documentatie-audit zijn alle documenten bestudeerd en is vastgesteld of het gedocumenteerde management systeem voldoet aan de eisen van ISO. De auditor beoordeelt vervolgens of de documenten goed doordacht zijn, goed samenhangen en goed aansluiten bij de ISO-standaard.

Bij de implementatie-audit is een aantal betrokkenen geïnterviewd om te toetsen of het management-systeem ook echt voldoende in de praktijk is gebracht. De auditor moet vervolgens constateren dat de operationele praktijk goed overeenstemt met het gedocumenteerde management-systeem. Zo niet, dan leidt dit tot een lijst van (kritische) afwijkingen die je binnen afzienbare tijd moet aanpassen.

Onderstaand geeft een goed overzicht van het proces.

ISO27001

PDCA Cyclus

Het ISMS van Parentix is ontworpen en wordt geïmplementeerd en onderhouden volgens de Plan-Do-Check-Act-methodologie (PDCA). Een algemeen bekend, iteratief principe om bedrijfsprocessen continue te verbeteren.

PDCA Cycle

De Plan Fase - het ISMS vaststellen

Het ISMS heeft als basis de Reikwijdte (Scope) en het Beveiligingsbeleid. Het ISMS omvat onder andere een systematische aanpak van risicobeoordeling waarin de criteria voor de evaluatie van risico’s worden gedefinieerd.

Het resultaat van de risicobeoordeling (de Risicoanalyse) is als basis gebruikt voor de selectie van maatregelen uit Annex A van ISO 27001:2005. Deze selectie wordt beschreven in de Verklaring van Toepasselijkheid en onderbouwd en uitgewerkt in het Handboek Informatiebeveiliging).

De Do Fase - het ISMS implementeren en uitvoeren

Het Beveiligingsplan is gebaseerd op de beslissingen en keuzes uit de Plan-fase en worden de benodigde stappen weergegeven, prioriteiten toegekend en taken aan verantwoordelijke functionarissen toegewezen om de gestelde doelstellingen te bereiken

Het MT heeft de benodigde middelen zoals beschreven in het Beveiligingsplan toegekend, waaronder ook begrepen de tijdsbesteding van de Directeur Operations en de ISMS-beheerder, het opnemen van taken en verantwoordelijkheden op het gebied van informatiebeveiliging in het Medewerker statuut en de functiebeschrijvingen, investeringen in producten en diensten voor informatiebeveiliging.

Alle geselecteerde maatregelen (zoals beschreven in de Verklaring van Toepasselijkheid) zijn geïmplementeerd om de gestelde doelstellingen te behalen. De organisatie bewaakt en meet de effectiviteit van de maatregelen. Hiertoe zijn alle bewakingsprocedures en -maatregelen geïmplementeerd die volgens de beschreven maatregelen zijn vereist.

De Check Fase - het ISMS bewaken en evalueren

De logboeken en registraties worden gebruikt om zo snel mogelijk verwerkingsfouten en beveiligingsincidenten op te merken, mislukte en geslaagde pogingen tot schending van de informatiebeveiliging te identificeren, management in staat te stellen om te beoordelen of de beveiligingsmaatregelen voldoen aan de gestelde criteria en actie te ondernemen om enige schending van de informatiebeveiliging op te lossen.

De medewerkers van Parentix en het MT evalueren regelmatig en minstens jaarlijks de effectiviteit van het ISMS en streven continu naar verbetering van de effectiviteit van het ISMS door analyse van audit resultaten en bewaking van incidenten en activiteiten.

Jaarlijks, maar ook tussentijds bij significante wijzigingen in Parentix, technologie, bedrijfsprocessen, bekende bedreigingen of anders (bijvoorbeeld op het gebied van wet- of regelgeving of maatschappelijk), evalueert Parentix alle aspecten van haar risico beoordeling en risico behandelingsplan, inclusief de grootte van restrisico’s en acceptabele risico’s (met inachtneming van eventuele wijzigingen in de effectiviteit van maatregelen) die kunnen zijn beïnvloed door deze wijzigingen; bovendien voert de Organisatie in die gevallen zo nodig aanvullende beoordelingen uit van specifieke risico’s met betrekking tot nieuwe technologieën, systeem- en overige wijzigingen die de informatie activa van de Organisatie raken.

Het management zorgt voor regelmatige interne ISMS- en overige audits. De resultaten van deze audits vormen de input voor de evaluaties. Activiteiten en incidenten die de effectiviteit van het ISMS kunnen beïnvloeden worden geregistreerd en geëvalueerd bij de management evaluatie.

Bevindingen uit de bewaking en evaluatie activiteiten worden verwerkt in het Beveiligingsplan.

De Act Fase - het ISMS onderhouden en verbeteren

Indien in de Check-fase mogelijke verbetering van het ISMS worden geïdentificeerd, worden deze geïmplementeerd als zij voldoen aan de criteria uit het risico behandelingsplan. Parentix heeft in het gehele ISMS gedocumenteerde procedures voor correctieve en preventieve actie beschreven. Preventie is een element van alle maatregelen.

De resultaten van evaluaties worden aan alle betrokkenen gecommuniceerd en eventuele resulterende acties belegd bij de juiste functionarissen.

Geïmplementeerde verbeteringen maken deel uit van het ISMS en zijn dan ook onderworpen aan hetzelfde regime van controle en evaluatie.

Wat betekent dit in de praktijk?

Kort samengevat: heel veel. Zoals ik eerder stelde, pas na een tijdje gaat het ISMS zijn waarde in de praktijk bewijzen. En deze waarde blijkt vooral in het hoge veiligheids bewustzijn bij alle medewerkers. Vanaf het moment van indiensttreding wordt dit benadrukt en vastgelegd door middel van een geheimhoudings clausule in de arbeidsovereenkomst, het gekoppelde medewerker statuut en ons hele ISMS.

In de dagelijkse praktijk wordt dit ook continu gehanteerd. Een voorbeeld hiervan is de werkwijze bij security incidenten. Deze worden vastgelegd, gecommuniceerd en geanalyseerd. Een security incident geven wij een veel bredere betekenis dan je initieel zou denken. Een volgelopen harde schijf, Windows Updates, anti-virus, zeer snel groeiende database, memory issues, plotseling herstartende server, licentie problemen, of een specifieke back-up die niet gelopen heeft. Volgens ons allemaal voorbeelden van security incidenten.

Een security incident wordt gedetecteerd, geregistreerd en geanalyseerd. Op basis hiervan wordt een directe actie uitgezet om het op te lossen en de betreffende klant(en) op de hoogte te stellen. Daarnaast worden periodiek deze incidenten geanalyseerd op verbeteringen die gestructureerd doorgevoerd kunnen worden. En tot slot wordt het proces ook weer periodiek geanalyseerd, gecontroleerd en vastgelegd om te controleren dat het ook daadwerkelijk gebeurd. Een typisch iteratief proces dat een steeds grotere cirkel bestrijkt.

Een tweede voorbeeld is de documentatie, deze is uitgebreid en gestructureerd. Onderstaand geeft een goed overzicht van de documentatie die continu gegenereerd wordt.

Diagram ISMS Documentatie

Documenten binnen het ISMS worden nooit geaccordeerd door de eigenaar; voor elke document laag wordt hierna eenduidig bepaald welke functionaris bevoegd is om de documenten te autoriseren.

Een derde voorbeeld is de “Daily Checklist” die automatisch aangemaakt wordt in het systeem en vervolgens systematisch wordt afgewerkt door het verantwoordelijke team. Per regel wordt vastgelegd wie het heeft uitgevoerd, wanneer dit heeft plaatsgevonden en wat het resultaat is. Daarnaast wordt continue gereageerd op alerts uit de verschillende management systemen. Op basis van deze input wordt door senior engineers gekeken naar trends die vervolgens in team meetings worden besproken. En dit is uiteraard de start van vervolg projecten om verbeteringen door te voeren.

Conclusie

Samengevat bestaat de certificering uit een analyse van de risico’s, de maatregelen die ja daarvoor treft, deze vervolgens implementeert en vastlegt, waarna je deze tot slot periodiek controleert. Geen rocket science, maar wel iets waarvoor je als organisatie strategisch kiest en gestructureerd moet uitvoeren.

Een gevleugelde uitspraak van de auditor is: “Het maakt mij niet uit wat je doet, als je maar doet wat je zelf hebt bepaald. Dat is wat ik controleer.” En zo is het maar net. Certificering is de eerste stap, het ISMS laten functioneren in de dagelijkse praktijk is de tweede stap en hier vervolgens verbeteringen in aanbrengen is de derde stap. De implementatie van het ISMS kun je uitvoeren als een project, de werking ervan is toch echt onderdeel van de dagelijkse bedrijfsvoering voor de gehele organisatie.

En dan kom ik bij de startvraag: ISO 27001 Certificering – Een lust of een last? Wat mij betreft zijn beide stellingen juist, het is maar net op welk moment de vraag beantwoord wordt. Zodra je start met het denk- en oriëntatie proces is het zeker een last en dat blijft het ook wel een tijdje. Maar naarmate het ISMS zijn werk doet wordt het steeds meer een lust. Mensen raken ermee vertrouwd, zien steeds meer de voordelen en het systeem heeft een zelfreinigend vermogen. De belangrijkste conclusie is dan ook dat de veiligheid is verhoogd, het aantal incidenten gedaald en de klanttevredenheid gestegen. En dat is uiteindelijk waar we het voor doen.

Maar…., zonder de weloverwogen strategische keuze, het noodzakelijke management commitment en een aanwezig DNA in de organisatie voor informatiebeveiliging wordt het nooit wat, begin er dan gewoon niet aan. Gecertificeerd worden en blijven voor ISO 27001 doe je omdat je het wilt, kunt en belangrijk vindt, niet om het certificaat te hebben.


Verantwoording
January 04
Call transfer issue in Lync Server 2010

I recently migrated our organization to Microsoft Lync Server 2010 and ran into a peculiar problem which I thought might be worthwhile sharing. Our internal users were not able to transfer calls directly with the Lync 2010 client, which was very disruptive. Here is what happened.

image

After the user selected the desired person to transfer to (step 1), the call went into transfer state (step 2). 

image

A transfer was now attempted for 30 seconds after which the transfer failed with error “Cannot complete the transfer” (step 3). Luckily the user was given the option to resume the call to try another method of transferring the call, for instance by using the new Call Park feature.

image

However, when the user tried to resume the call too fast, he was confronted with yet another message: “An error occurred while trying to take the call off hold” (step 4).

image

Repeated attempts to resume the call eventually succeeded after a varying number of seconds, and the user was back in the original conversation after loosing roughly 45 seconds of precious productivity.

Neither the client’s nor the servers’ Windows event logs nor the standard Lync Server logs showed any signs of an issue, so I was faced with a bit of a mystery.

To learn more about why this happened I first turned on Lync client logging, then used Snooper.exe from the Lync Server 2010 Resource Kit to debug the output. I could see a SIP REFER request for the Mediation server being sent to the Front End server. Then a 30 second pause, then a client error “OUTGOING_REFER_TRANSACTION::OnTimerExpire MaxRetransmits for request Done terminating transaction”.

Using the Lync Server Logging Tool I logged MediationServer TF_PROTOCOL messages with a log level of Warning and higher. Analyzing the result with Snooper.exe, two consecutive messages stood out:

1) An outgoing SIP message sent from the external interface of the Mediation server to the upstream ITSP (Interoute) requesting a REFER for the call.

2) An outgoing SIP message sent from the internal interface of the Mediation server to the Front End server with a “408 Request Timeout” error, with reason “Gateway did not respond in a timely manner (timeout).”

Instead of handling the call transfer internally, Lync  was asking the ITSP to handle the transfer on their session border controller. Apparently this is an unsupported feature with Interoute, but luckily it’s easy to turn off in the Lync Server Control Panel under Voice Routing –> Trunk Configuration.

image

Fixing the issue was now a matter of disabling the feature, committing the change and allowing the Replica Replicator Agent Service to do its magic! Keep in mind that the “Enable refer support” setting is enabled by default when creating a new trunk configuration.

Now, this still left the little mystery of not being able to resume the call immediately after the transfer failed. As it turns out, the transfer timeout (OnTimerExpire) on the client takes exactly 30 seconds, while the gateway timeout on the Mediation server took 34 seconds when I tested it. Although the client was ready to come up for air and resume the call, the Mediation server still had 4 seconds of breath left in its lungs. Once the SIP REFER timed out on the Mediation server, the call was released and the user was able to resume the call again.

(As a side note to any Microsoft devs stumbling upon this post; it would be nice to have a “Cancel transfer” option to resume the call immediately. The other person may just be leaving the desk to get some coffee, or the agent may realize he has chosen the wrong person from the list to transfer to.)