heygrc
SOC 2 CC8.1 in code

Wijzigingsbeheer, in de pipeline.

CC8.1 is het SOC 2-criterium voor wijzigingsbeheer: wijzigingen aan infrastructuur, data en software moeten geautoriseerd, ontworpen, ontwikkeld, getest en goedgekeurd zijn voordat ze live gaan. Een groot deel hiervan bevindt zich in je pipeline en branch protection, wat betekent dat een pull request stilletjes de controles kan verwijderen die bepalen hoe wijzigingen worden geïmplementeerd.

How it shows up in a diff

The shapes the same control failure takes.

CC8.1 verzwakt wanneer een wijziging het proces verzwakt dat wijzigingen zou moeten beheersen. De terugkerende patronen:

  • Een vereiste goedkeuring wordt verwijderd

    Een vereiste review of goedkeuringsstap voor een productie-implementatie wordt verwijderd uit de CI-configuratie of branch protection, zodat wijzigingen zonder goedkeuring kunnen worden geïmplementeerd.

  • Een migratie overslaat de review

    Een databasemigratie of datawijziging wordt gekoppeld om tijdens de implementatie uit te voeren, zonder afzonderlijke review of goedkeuring van een wijziging die productiedata aanpast.

  • Tests blokkeren de merge niet meer

    Een vereiste statuscontrole (de testsuite, een beveiligingsscan) wordt niet-blokkerend gemaakt of verwijderd, zodat onverifieerde wijzigingen kunnen worden gemerged.

  • Een omzeilpad wordt toegevoegd

    Een nood- of adminpad wordt toegevoegd waardoor een wijziging buiten de normale pipeline in productie kan komen, zonder equivalente controles.

  • De rollback wordt verwijderd

    Een veilige rollback- of terugdraaioptie voor migratie wordt verwijderd, zodat een wijziging kan worden geïmplementeerd die niet netjes kan worden teruggedraaid als er iets misgaat.

Worked example

Een vereiste goedkeuring voor implementatie, verwijderd.

Een vereiste handmatige goedkeuring voor productie-implementaties heeft de releases vertraagd, dus een wijziging verwijdert de beschermingsregel. Implementaties gaan sneller, en nu bereikt elke merge naar main de productie zonder dat iemand de wijziging goedkeurt.

.github/workflows/deploy.yml+0 -2
jobs:  deploy:-    environment:-      name: production   # requires a reviewer approval    steps:
heygrcSOC 2 CC8.1

Het verwijderen van de vereiste goedkeuring voor de productieomgeving betekent dat wijzigingen nu zonder goedkeuring in productie komen. CC8.1 vereist dat wijzigingen geautoriseerd en goedgekeurd zijn voordat ze live gaan. Als goedkeuringen te langzaam zijn, beperk dan wie of wat ze nodig heeft, of automatiseer de controles, maar behoud een goedkeuringsstap in plaats van deze te verwijderen.

What an auditor does with this

Wijzigingsbeheer wordt getoetst aan de hand van echte wijzigingen.

Een auditor selecteert wijzigingen die naar productie zijn gegaan en controleert of er bewijs is dat elke wijziging is beoordeeld, getest en goedgekeurd, vaak via de pull request, de goedkeuringen en de geslaagde controles. Een wijziging die een vereiste goedkeuring heeft verwijderd of een test niet-blokkerend heeft gemaakt, is de leemte achter dat bewijs, en dit is zichtbaar in de diff van de pipeline of branch-protection-configuratie.

What this is, and is not

Een review, niet je releaseproces.

heygrc markeert wijzigingen die CC8.1 raken en verwijst naar het criterium, zodat de correctie in de pull request kan plaatsvinden. Het voert geen implementaties uit of beheert je branch protection niet. Het detecteert het moment waarop een wijziging het proces verzwakt dat wijzigingen beheert, in de diff.