Document toolboxDocument toolbox

5.7.3. Aanvullende informatie (DevOps)

5.7.3.1. DEV

PLAN
  • Training en bewustwording

    • Training en bewustwording zijn essentieel voor de goede werking van een DevOps-team, te meer omdat de betrokken technologieën snel evolueren. Er zijn tal van gratis of betaalde trainingen beschikbaar zoals bijvoorbeeld de documentatie van Atlassian – Devops-101.

  • Beveiligingsbeleid en richtlijnen

    • "Security by design" en "privacy by design" zijn begrippen die beide onderstrepen dat beveiliging en privacy niet slechts achteraf geïmplementeerd dient te worden, maar steeds vanaf het begin ingebouwd hoort te zijn in het ontwerp en de ontwikkeling van software en systemen. De beveiligings- en privacymaatregelen dienen niet apart worden toegevoegd nadat de software is gebouwd, maar wordt opgenomen in het gehele ontwikkelingsproces, vanaf de eerste planningsfasen tot aan de implementatie en het onderhoud.

  • Risicobeheer

    • Implementeer een proces voor regelmatige risicoanalyses en evaluaties waarbij de outputs uit de Operate-fase de input vormen voor risicobeheer. Consulteer hiervoor zeker ook de extra informatie rond Risicobeheer uit het Informatieclassificatieraamwerk.

CODE
  • Veilige codeerstandaarden en ontwikkelomgeving

    • Om te voldoen aan de Minimale Maatregelen kan men gebruik maken van beveiligingsgerichte ontwikkelingsframeworks en bibliotheken (bv. OWASP Top 10)  om het risico op kwetsbaarheden te verminderen en de ontwikkeling van veilige code te vergemakkelijken.

  • Beveiliging van repositories

    • Het is belangrijk om alle code op te slaan op een door de organisatie goedgekeurde locatie opdat deze veilig beheerd en gecontroleerd kan worden. Alleen daartoe geautoriseerd personeel mag toegang hebben, steeds volgens het least privilege principe zodat de code veilig gehouden wordt en problemen voorkomen kunnen worden.

  • Scheiding van omgevingen

    • Een strikte scheiding van omgevingen houdt in dat er tussen verschillende omgevingen, zoals ontwikkeling, acceptatie en productie, een gecontroleerde ontwikkelingsworkflow is. Ontwikkelingswerkzaamheden vinden als eerste plaats in de ontwikkelingsomgeving, waar ontwikkelaars de ruimte hebben om te kunnen experimenteren, testen en herhalen zonder de operationele omgevingen te verstoren. Dit biedt een gecontroleerde en veilige ruimte waarin nieuwe functies kunnen worden ontwikkeld en bugs kunnen worden opgelost zonder risico's voor de productieomgeving. Noodwijzigingen, die bijvoorbeeld nodig zijn om urgente beveiligingslekken te verhelpen of ernstige fouten te corrigeren, kunnen echter worden uitgevoerd in de acceptatie- of zelfs de productieomgevingen, mits strikte procedures en goedkeuringsprocessen worden gevolgd om de impact op operationele systemen te minimaliseren en de integriteit van de productieomgeving te garanderen.

  •  Secrets management

    • Gevoelige informatie zoals wachtwoorden, API keys, certificaten en andere authenticatie tokens dienen veilig te worden opgeslagen op een geschikte locatie zoals een secret management tool (vb. HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, …), en nooit rechtstreeks in code- of configuratiebestanden in het repository zelf. Het accidenteel publiceren van zulke credentials op een openbaar repository is namelijk een vaak voorkomende oorzaak van cyberaanvallen.

  • Code review

    • Code review omvat het uitvoeren van een zorgvuldige controle om de codekwaliteit te garanderen, en tekortkomingen te identificeren en te mitigeren. Typisch wordt deze controle uitgevoerd door een ander teamlid dan de auteur van de code. Op die manier verbetert dit proces ook de samenwerking en kennisdeling binnen het ontwikkelingsteam. Door de andere blik van een beoordelaar wordt het risico op over het hoofd geziene fouten of ongeschikte code verminderd wat de algehele betrouwbaarheid van de software ten goede komt.

  • Secret scanning

    • Secret scanning is een techniek om automatisch op te sporen of er gevoelige informatie zoals inloggegevens of API-sleutels per ongeluk toegevoegd werden aan de codebase van een applicatie.

BUILD
  • Software Bill of Materials (SBOM) en dependency management

    • Automatische SBOM-generatie in de CI/CD heeft als doel om een volledige en up-to-date inventaris van de software zijn afhankelijkheden op te bouwen, bijvoorbeeld door middel van tools of standaarden zoals SPDX of CycloneDX. Als in een latere fase zou blijken dat een dependency van de software een kwetsbaarheid bevat, dan kan dit vastgesteld worden en kan de dependency zo snel mogelijk gepatched worden.

    • Dependency scanning en tracking op basis van de SBOM-input om risico’s sneller te identificeren: voer regelmatige scans van alle externe bibliotheken en afhankelijkheden uit om te controleren op bekende kwetsbaarheden en om ervoor te zorgen dat alleen veilige versies worden gebruikt.

  • SAST

    • Static Application Security Testing (SAST) is een methode waarbij de broncode van software wordt geanalyseerd door een specifiek daarop voorziene tool om mogelijke beveiligingskwetsbaarheden op te sporen, zonder dat de code effectief uitgevoerd worden. Tools zoals SonarQube kunnen hiervoor worden ingezet, maar er zijn ook tal van gratis en open source alternatieven zoals hier gedocumenteerd door OWASP.

  • Code signing en verificatie

    • Voor het tekenen en verifiëren van code kan er gebruik worden gemaakt van NuGet bij .NET applicaties of van NPM-packages bij JavaScript om de integriteit en authenticiteit van de code te waarborgen.

TEST
  • DAST

    • Dynamic Application Security Testing (DAST) is een methode om de beveiliging van applicaties te testen door deze tijdens runtime te analyseren. In tegenstelling tot SAST, waarbij broncode statisch wordt onderzocht, simuleert DAST aanvallen op de applicatie zoals een kwaadwillende hacker dat zou doen om zo kwetsbaarheden op te sporen. Hierdoor kunnen beveiligingslekken worden geïdentificeerd die tijdens het gebruik van de applicatie kunnen optreden. Er zijn tal van DAST-tools beschikbaar, zowel commercieel (Burp Suite, Netsparker, Veracode) of gratis en open source, zoals Zed Attack Proxy (ZAP).

  • Penetration testing

    • Een penetratietest (ook wel pentest genoemd) is een gesimuleerde cyberaanval op een computersysteem, netwerk of webapplicatie om beveiligingslekken te identificeren en te exploiteren die uitgevoerd wordt door een cybersecurityspecialist. Er zijn verschillende types van pentests:

      • White box: de pentester ontvangt alle documentatie en heeft volledige toegang tot de broncode en netwerkopzet van de omgeving.

      • Grey box: de pentester heeft slechts een beperkte kennis van de omgeving.

      • Black box: de pentester heeft geen enkele voorkennis, net zoals een echte externe aanvaller.

5.7.3.2. OPS

RELEASE
  • CI/CD Pipelines

    • Tools zoals Azure DevOps, Github Actions, Bitbucket Pipelines, Ansible, Puppet, of Chef kunnen gebruikt worden om (semi)geautomatiseerd releases uit te voeren.

  • Role-Based Access Contol (RBAC)

    • Role-Based Access Control (RBAC), of rol-gebaseerde toegangscontrole, is een methode voor het beheren van toegang tot een omgeving op basis van de rollen die toegewezen worden aan gebruikers.

  • Rollback procedures

    • Geautomatiseerde rollback-mechanismen helpen om snel terug te kunnen schakelen naar een vorige versie van de software in geval van onverwachte problemen tijdens de release.

DEPLOY
  • Infrastructure as Code (IaC)

    • Je kan tools voor Infrastrcture as Code gebruiken zoals Terraform, AWS CloudFormation, Azure Resource Manager, of Azure Bicep templates om het deployen van infrastructuurcomponenten te automatiseren en de weerbaarheid te verhogen.

    • Zorg ervoor dat IaC-configuratiebestanden zoals de Terraform state-files veilig opgeslagen worden en enkel toegankelijk zijn volgens least privilege, aangezien deze gevoelige informatie kunnen bevatten.

OPERATE
  • Patch en vulnerability management

    • Het regelmatig uitvoeren van geautomatiseerde kwetsbaarheidsscans op zowel containers als virtuele machines is essentieel om de kwetsbaarheden op te sporen. Daarnaast is een uitgewerkt proces voor het patchen van deze kwetsbaarheden van groot belang. Er zijn tal van tools op de markt voor vulnerability scanning, zoals OpenVAS, Nessus, Qualys, Docker Bench for Security, Clair en Anchore Engine.

  • Gepriviligeerd Toegangsbeheer

    • Geprivilegieerd toegangsbeheer omvat het beheren en beperken van toegang tot gevoelige systemen en gegevens binnen organisaties, met behulp van tools zoals CyberArk Privileged Access Security, BeyondTrust Privileged Access Management en Thycotic Secret Server. Deze platforms hebben functies zoals wachtwoordbeheer en rotatie, sessiebeheer, en toegangscontrole om zo de risico's van ongeautoriseerde toegang tot accounts te verminderen. Digitaal Vlaanderen biedt hierrond ook de PAMaaS-dienst aan.

  • Back-up en Disaster Recovery

    • Back-up- en disaster recovery (DR)-oplossingen kunnen ingezet worden om gegevensverlies en bedrijfscontinuïteit te waarborgen, zoals onder meer Azure Backup, AWS Backup, Dell NetWorker, en Veeam Backup & Replication. Daarnaast is het in cloudomgevingen belangrijker om oplossing zoals versioning of object lock voor object storage-oplossingen te gebruiken, en immutable backups (backups die niet verwijderd kunnen worden) om het risico op permanent dataverlies tegen te gaan.

  • Continuous Improvement (Continue verbetering)

    • Implementeer een proces voor Continuous Improvement door doorlopend feedback te verzamelen, post-incident reviews (PIR) uit te voeren en lessons learned te implementeren.

  • Sleutelbeheer

    • Wanneer een encryptiesleutel definitief is verwijderd is bijgevolg ook alle data die ermee geëncrypteerd werd permanent ontoegankelijk. Om die reden zorg je er best voor dat steeds de soft delete-functie geactiveerd is wanneer sleutels verwijderd worden: hierdoor wordt een sleutel eerst gemarkeerd als verwijderd, maar wordt deze pas definitief verwijderd na een verplichte wachtperiode. Zo kan de verwijdering nog ongedaan gemaakt worden wanneer deze niet terecht bleek.

  • Scheiding van omgevingen

    • Soms kan het delen van bepaalde onderdelen tussen verschillende niet-productieomgevingen handig zijn, bijvoorbeeld door een gedeelde databankserver of application gateway te gebruiken. De productieomgeving moet echter steeds gescheiden zijn, en het hergebruiken van data uit productie in andere omgevingen mag alleen als die omgevingen net zo goed beveiligd zijn als de productieomgeving, of als de gegevens geanonimiseerd zijn. Vooral bij gevoelige gegevens, zoals persoonsgegevens, moeten men extra voorzichtig zijn om te voorkomen dat ze per ongeluk naar ontwikkel- of testdatabases worden gekopieerd.

MONITOR
  • Voortdurend monitoren

    • Tools zoals Prometheus, Grafana, of cloud native monitoringdiensten zoals Azure Monitor en Amazon CloudWatch zorgen voor een continue monitoring van applicaties en infrastructuur.

  • Incident response

    • Wanneer er een beveiligingsincident optreedt is het belangrijk om zo snel mogelijk op te treden. Hiervoor wordt doorgaans een incident detection and response of extended detection and response (XDR)-oplossing gebruikt zodat de impact van cybersecurity-incidenten kan beperkt worden. Er zijn tal van oplossingen op de markt, zoals Splunk Enterprise Security, IBM QRadar, Azure Sentinel, en CrowdStrike Falcon. Deze tools bieden functionaliteiten zoals realtime monitoring, detectie van bedreigingen, forensische analyse en incidentresponsautomatisering om snel te reageren op incidenten en de schade te beperken.