Wat is een domeinanalyse?

Domeinanalyse is het proces waarbij je het probleemgebied van een softwaretoepassing onderzoekt om de relevante gegevens, processen en vereisten te begrijpen. Het helpt om de context en de vereisten van het systeem te definiëren, zodat de ontwikkelaars en andere belanghebbenden kunnen begrijpen wat het systeem moet doen.

Casus

Stel je voor dat je een app bouwt voor een bibliotheekbeheer systeem. Voordat je begint met coderen, is het belangrijk om te begrijpen welke objecten en processen in de bibliotheek van belang zijn, zoals boeken, leden, uitleenperioden en boetes.

Hoe zit een domeinanalyse in elkaar?

Een domeinanalyse begint met het verzamelen van informatie van belanghebbenden via interviews, enquêtes en bestaande systemen. Het doel is een model te creëren dat de kernaspecten van het probleemgebied vastlegt, zoals een diagram, tabel of beschrijvende gedachtegang. De domeinanalyse wordt meestal opgenomen in het Functioneel Ontwerp (-=FO=-), omdat dit document de systeemfunctionaliteit en context beschrijft.

Hoe gebruik je een domeinanalyse?

Een domeinanalyse helpt bij het ontwikkelen van een duidelijke en gedeelde beeld die door alle teamleden en belanghebbenden wordt begrepen. Dit vormt een solide basis voor verdere ontwikkeling en zorgt ervoor dat iedereen naar hetzelfde doel toewerkt.

Wanneer de domeinanalyse is voltooid, kan de volgende stap het vertalen van de bevindingen naar specifieke functionele en technische vereisten zijn. Dit kan leiden tot de ontwikkeling van domeinspecifieke modellen zoals een klassendiagram of use case diagram.

Casus

Stel je werkt aan een project waarbij je een online winkel maakt. Hier wil je door middel van domeinanalyse de belangrijkste entiteiten zoals klanten, producten, bestellingen en betalingen vastleggen.


Risk Assessment

De volgende stappen zijn doorlopen om de requirements te verzamelen:

  1. De start van het proces is een interview met een opdrachtgever geweest. Uit dit interview zijn requirements verzameld en vastgelegd in een document.
  2. Daarna is een Risk Assessment uitgevoerd in vier stappen die hierna beschreven zijn. Samengevat in onderstaande diagram.

Figuur 1: SSDLC model

Een risk assessment zal aan het eind van de vier stappen er ongeveer zo uit komen te zien.

Figuur 2: Voorbeeld risk assessment

In latere stappen is steeds weer gekeken of de requirements aangepast of uitgebreid moesten worden. Dan werden de stappen van Risk Assessment opnieuw doorlopen.

Stap 1: Assets vaststellen


Om risico’s te kunnen identificeren worden eerst de assets bepaald vanuit de vastgelegde requirements. Assets zijn hardware, software, materiële zaken (laptops, servers, routers) en immateriële (software, data, IP-adressen) onderdelen van het systeem.

Per asset is bepaald welke risico’s een rol spelen. Om hier achter te komen zijn persoonsgegevens gemarkeerd als asset. Naast het raadplegen van de AVG voor noodzakelijke maatregelen is gekeken of al sprake is van hardware of software waar rekeningen mee gehouden moet worden. Dit was nog niet het geval.

Voorbeeld 1: Voornaam en achternaam is een persoonsgegeven volgens de AVG. Dit is dus een asset. De asset is apart vastgelegd met een eigen identificatie.

Voorbeeld 2: Stel je hebt een damspel gemaakt met een scorebord om te zien wie het beste is. Hierbij is het belangrijk om te zorgen dat spellen beschermd worden en geen valse spellen plaatsvinden. Het is dus van belang om te zorgen dat elk damstuk en hierbij ook de zetten die met deze stukken gebeuren niet kunnen worden vervalst en beveiligd worden.

Stap 2: Risico’s identificeren


In een volgend semester zullen risico’s methodisch worden achterhaald. Op dit moment gebruik je je eigen kennis en die van anderen (door te overleggen) om risico’s vast te stellen. Per requirement zijn de risico’s beschreven.

Voorbeeld: De medewerker voert de naam van een collega in via de console. Om achter relevante risico’s kun je na putten uit je kennis van Inleiding Security. Welk risico is er bij invoer, verwerking en opslag van de naam? De risico’s zijn bij de asset vastgelegd. Vervolgens is een classificatie toegepast.

Stap 3: Risico’s schatten


De grootte van het risico wordt bepaald door de kans te vermenigvuldigen met de impact:

kans * impact = grootte risico

De schatting mag je doen op basis van één of meer stakeholders, die de schatting uitvoeren (eventueel middelen van de uitkomst). Deze schatting zal de kans en impact teruggeven. Daarmee wordt direct ook de grootte van een risico bepaald door de schatting op basis van één of meer stakeholders.

De kans van een risico wordt onder andere bepaald op de frequentie van de gebeurtenis. De impact van een risico is een subjectieve beoordeling op basis van de waarde van een asset binnen de applicatie.

Voorbeeld 1: In een gesprek met de lead developer zijn de factoren van kans en impact per risico langsgelopen en vastgelegd bij de requirements. Daarna is het bijgewerkte requirements document naar de lead developer en de opdrachtgever gestuurd. Dit is vastgelegd in de distributielijst. Bij deze schatting is wel gebruik gemaakt van de factoren, maar deze zijn niet gescoord.

Voorbeeld 2: In een webapplicatie met een accountsysteem zijn de inloggegevens van groot belang. Deze gegevens bepalen de autorisatie die een gebruiker krijgt binnen een applicatie. Hiervan kan gezegd worden dat een breuk op deze informatie een grote impact zou hebben.

Stap 4: Security maatregelen


Voor zaken met een middelmatig en hoog risico worden security maatregelen vastgesteld. Een mogelijke inspiratiebron voor maatregelen is de ASVS-lijst, waaruit geschikte opties kunnen worden geselecteerd.

Voorbeeld 1: Aan de hand van de risico classificatie is bepaald welke voor welke risico’s security measurements worden genomen. De maatregelen zijn bedacht door de developers op basis van hun kennis.

Voorbeeld 2: Uit het risk assessment kwam naar voren dat er een hoge kans en impact is voor het uitvoeren van cross-site-scripting. Daarom is in het technisch ontwerp beschreven op welke manier de input van gebruikers ge-sanitized wordt om deze aanvallen tegen te gaan.

Bronnen

ASVS for Dummies: https://asvs-for-dummies.pages.dev/