Beveiligingsbeleid Perflectie Architectuur & Procedures
30 november 2015
Versiebeheer Naam
Functie
Datum
Versie
Dimitri Tholen
Software Architect
12 december 2014
0.1
Dimitri Tholen
Software Architect
10 februari 2015
0.2
Dimitri Tholen
Software Architect
18 februari 2015
0.3
Dimitri Tholen
Software Architect
30 november 2015
0.4
Alle rechten voorbehouden Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar gemaakt, in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen of op enig andere manier, zonder voorafgaande schriftelijke toestemming van Perflectie.
2
c
Introductie Binnen Perflectie wordt zeer veel waarde gehecht aan de bescherming van persoonsgegevens. Dit uit zich in de naleving van de privacy wet-‐ en regelgeving. Naast deze vastgestelde regels hanteert de IT-‐ en Ontwikkelafdeling een set eigen procedures om de veiligheid van de persoonsgegevens en de stabiliteit van de applicatie te waarborgen.
3
Inhoudsopgave Introductie ............................................................................................................................................................................... 3 1.
Technische documentatie ..................................................................................................................................... 5
2.
Server .............................................................................................................................................................................. 6 2.1
Programmatuur .................................................................................................................................................. 6
2.2
Updates ................................................................................................................................................................. 6
2.3
Datacentrum ....................................................................................................................................................... 6
2.4
Toegankelijkheid ................................................................................................................................................ 6
3.
OTAP ............................................................................................................................................................................... 7
4.
Database ........................................................................................................................................................................ 8
5.
4.1
Toegankelijkheid ................................................................................................................................................ 8
4.2
Back-‐up .................................................................................................................................................................. 8
Applicatie ...................................................................................................................................................................... 9 5.1
Logging .................................................................................................................................................................. 9
5.2
Encryptie ............................................................................................................................................................... 9
5.3
Foutafhandeling ................................................................................................................................................. 9
5.4
Cookies ................................................................................................................................................................... 9
5.5
Autorisatie ......................................................................................................................................................... 10
5.5.1 5.6 6.
Autorisatie Matrixen ............................................................................................................................... 10
Rollen .................................................................................................................................................................. 11
Broncode .................................................................................................................................................................... 12 6.1
Git ......................................................................................................................................................................... 12
6.2
Hosting van versiebeheersysteem ............................................................................................................. 12
6.3
Toegankelijkheid ............................................................................................................................................. 12
7.
Data uitwisseling ..................................................................................................................................................... 13
8.
Continuïteitsplanning ............................................................................................................................................ 14 8.1
Disaster Recovery ............................................................................................................................................ 14
4
c
1. Technische documentatie Ter ondersteuning van de ontwikkeling van Perflectie wordt er gebruik gemaakt van diverse technische documenten, zoals bijvoorbeeld schema’s, diagrammen en ‘wireframes’. Deze documenten worden beschikbaar gesteld aan de ontwikkelaars en het IT-‐management via de dienst Google Drive en/of de Source Control server. Technische documentatie bevat verder geen gevoelige informatie.
5
2. Server
Perflectie draait op een Virtual Private Server van TransIP1. Het beheer van de server is in handen van de server administrator van Perflectie. Medewerkers van TransIP hebben geen toegang tot de operationele zijde van Perflectie. Perflectie behoudt het recht om medewerkers van TransIP toegang tot de server te verlenen indien zij dit nodig acht vanuit een technische behoefte. 2.1 Programmatuur De server draait op Windows Server 2012 met uiterst geringe features. Vrijwel alle programmatuur is onderdeel van het Microsoft server platform, zoals Internet Information Manager en Server Manager. 2.2 Updates De server wordt automatisch voorzien van de laatste updates. 2.3 Datacentrum Het datacentrum is in handen van The Datacenter Group te Amsterdam. Het datacentrum heeft 24/7 on-‐site bewaking, biometrische identificatie en een HD CCTV netwerk. Het datacentrum is ISO 9001, ISO 27001 en ISO 14001 gecertificeerd. Daarmee zijn kwaliteitsmanagement, beveiliging en milieumanagement optimaal gewaarborgd. 2.4 Toegankelijkheid Het datacentrum is onbereikbaar voor onbevoegden. De server is via een Remote Desktopverbinding beschikbaar voor de server administrator en – in het geval van deployment – voor de in-‐house ontwikkelaars van Perflectie.
1
https://www.transip.nl
6
c
3. OTAP
Perflectie maakt gebruik van de een Ontwikkel-‐, Test-‐ en Productie omgeving. Elk van deze omgevingen draait op een aparte server.
7
4. Database
Perflectie maakt gebruik van een instantie van SQL Server 2012 Express. De database server wordt niet gebruikt voor andere applicaties en/of doeleinden. Naast de Perflectie applicatie database host de server tevens de Perflectie error logging database. 4.1 Toegankelijkheid De database server wordt beheerd door de server administrator. Naast de server administrator heeft de database administrator volledige toegang tot de database server. De ontwikkelaars van Perflectie hebben uitsluitend leesrechten op de productiedatabase. 4.2 Back-‐up Er wordt elke dag om 01:00 een back-‐up gemaakt van de productie-‐, test-‐ en error logging databases. De back-‐ups worden veilig opgeslagen op één of meerdere externe dragers, zoals externe schijven en beveiligde Cloud Storage diensten.
8
c
5. Applicatie
5.1
Perflectie hanteert een strikt error logging beleid. De logs worden opgeslagen in een aparte SQL-‐database en bevatten geen persoonlijke informatie. 5.2 Encryptie Perflectie maakt gebruik van de encryptie en hashing functionaliteit van het ontwikkelplatform. Op het moment van schrijven bestaat het hashing algoritme uit een SHA12 versleutelde “key” welke is gegenereerd door een PBKDF23 functie. Alle wachtwoorden worden versleuteld middels deze methode. 5.3
Foutafhandeling
Het ontwikkelteam doet er alles aan om fouten in de applicatie op te vangen en af te handelen. Mocht er toch onverhoopt een fout de eindgebruiker bereiken, dan treedt er een mechanisme in werking die de technische details van de desbetreffende fout verbergt. Deze details zijn achteraf op te halen door ontwikkelaars van Perflectie. 5.4
Logging
Cookies
Perflectie maakt gebruik van cookies om de gebruikerservaring te verbeteren. De informatie bevat geen gevoelige persoonlijke informatie. De informatie die wordt opgeslagen in het cookie zijn met name de tijdzone van de gebruiker, de rol van de gebruiker binnen de applicatie en persoonlijke informatie, zoals het email adres van de gebruiker en de volledige naam van de gebruiker.
Deze informatie wordt versleuteld opgeslagen zodat een cookie nooit kan worden gelezen door een externe partij.
2 3
http://en.wikipedia.org/wiki/SHA-‐1 http://en.wikipedia.org/wiki/PBKDF2
9
5.5
Autorisatie
Het cookie in sectie 6.4 bestaat uit een serie ‘Claims’. Perflectie maakt namelijk gebruik van een Claims-‐gebaseerd Identity model. Een claim kan bijvoorbeeld een rol binnen Perflectie zijn. 5.5.1 Autorisatie Matrixen
5.5.1.1
Test omgeving
Rollen
Server
Database
Senior developer
RW
Developer
RW
QA officer
R
Head of IT
RW
DBA
RW
Scheduler
Customer support Translator
5.5.1.2
Live omgeving
Rollen
Server
Senior developer
Database
Scheduler
RW
Developer QA officer Head of IT
RW
DBA
RW
Customer support Translator
10
c 5.5.1.3
Overige
Rollen
Github
Senior developer
RW
Developer
RW
Superuser in Applicatie
Mail client
SMS client
RW
R
R
QA officer Head of IT DBA Customer support Translator
5.6
RW
Rollen
Een gebruiker van Perflectie krijgt op basis van zijn of haar rol toegang tot afgeschermde delen van de applicatie. Er worden geen rechten gekoppeld aan individuele gebruikers. Hiermee voorkomt Perflectie dat één gebruiker ongemerkt meer rechten ontvangt dan zijn of haar bevoegdheid voorschrijft.
11
6. Broncode
De broncode van Perflectie bestaat deels uit maatwerk en deels uit voorgeprogrammeerde code van het applicatie framework, welke de basis vormt van de Perflectie applicatie. Perflectie maakt in de backend gebruik van ASP.NET MVC en Web API van Microsoft. 6.1 Git Perflectie maakt gebruik van een versiebeheer systeem genaamd Git. Git is een gedistribueerd versiebeheersysteem, waarbij – in tegenstelling tot andere versiebeheer systemen – niet slechts de wijzigingen worden gedownload van de server, maar juist een complete kopie van de broncode (de ‘repository’), inclusief alle wijzigingen van alle teamleden. Op deze manier is de code altijd veilig, want bij het uitvallen van één systeem kan één van de andere systemen de distributie zonder dataverlies herstellen. 6.2 Hosting van versiebeheersysteem Perflectie maakt gebruik van Github.com. 6.3 Toegankelijkheid De Git repository is alleen toegankelijk voor de ontwikkelaars van Perflectie. Er is per ontwikkelaar een account nodig met de bijbehorende lees-‐ en schrijfrechten.
12
c
7. Data uitwisseling
Om een unieke ervaring te bieden bij het gebruik van de diensten van Perflectie, kunnen we informatie exporteren naar applicaties en websites van onze externe partners. Onze partners kunnen informatie ophalen via onze beveiligde Application Programming Interface (API). Door middel van deze API bepaalt Perflectie welke gegevens kunnen worden uitgewisseld.
13
8. Continuïteitsplanning
Er kan altijd iets misgaan met de server, maar in tegenstelling tot vroegere tijden, is het tegenwoordig vrij eenvoudig om de ‘downtime’ te beperken en de data van de applicatie veilig te stellen. 8.1 Disaster Recovery Perflectie heeft een efficiënt ‘rampenplan’ op de plank liggen. Bij ernstig falen van de server kan Perflectie binnen zeer korte tijd weer in de lucht zijn. Het platform kan in de regel binnen de tijdspan van 1 uur weer volledig operationeel zijn. Bij deze berekening wordt uitgegaan van het correct functioneren van de diensten van de domein registrar en volledige toegang tot de DNS van Perflectie.nl. Mocht deze toegang niet kunnen worden verleend, dan zal Perflectie tijdelijk worden opgezet onder een andere domeinnaam totdat de domein registrar weer toegang kan verlenen tot de DNS van Perflectie.nl.
14