heygrc
SOC 2 CC6.6 dans le code

Garder l'extérieur à l'extérieur.

CC6.6 est le critère SOC 2 concernant la protection contre les menaces en provenance de sources extérieures aux limites de votre système : le périmètre. Il exige que vous placiez des contrôles d'accès entre le monde extérieur et vos systèmes, afin que ce qui ne doit être accessible que depuis l'intérieur ne soit pas ouvert sur internet. La majeure partie de ce périmètre est désormais définie par de l'infrastructure-as-code : un groupe de sécurité, une règle de pare-feu, une politique réseau, ce qui signifie qu'il est décidé dans une pull request et peut être élargi en une seule modification.

How it shows up in a diff

The shapes the same control failure takes.

CC6.6 est affaibli lorsqu'un changement ouvre la frontière, généralement pour rendre quelque chose rapidement accessible. Les formes récurrentes :

  • Un pare-feu ou un groupe de sécurité ouvert au monde

    La source d'une règle d'entrée est élargie à 0.0.0.0/0 (ou ::/0), donc un port qui n'était accessible que depuis l'intérieur est désormais accessible depuis tout internet.

  • Une ressource gérée est rendue accessible publiquement

    Une base de données, un cache ou un bucket passe de privé à public (un indicateur d'accès public, un sous-réseau public), de sorte qu'il peut être atteint directement depuis l'extérieur plutôt que uniquement via l'application.

  • Un port d'administration ou de gestion est exposé

    SSH, RDP, un port de base de données ou une console d'administration est ouvert sur internet au lieu d'être accessible via un bastion ou un VPN.

  • Une liste blanche est élargie

    Une plage source restrictive est élargie, une adresse unique devient une plage entière, ou une liste blanche gagne un joker, de sorte qu'une plus grande partie de l'extérieur peut entrer.

  • Un contrôle de frontière est contourné

    Un nouveau chemin contourne le load balancer, la passerelle ou le WAF qui précède le système, de sorte que le trafic externe atteint directement un service interne.

Worked example

Un groupe de sécurité qui ouvre une base de données sur internet.

Une base de données Postgres gérée, située sur un point de terminaison routable publiquement, doit être accessible depuis le portable d'un ingénieur pour une migration ponctuelle. La source de la règle d'entrée est donc élargie pour la faire fonctionner. La modification rapide est laissée en place, et désormais le groupe de sécurité accepte les connexions depuis n'importe quelle adresse, et non plus uniquement depuis le sous-réseau de l'application, sur une base de données qui a un chemin depuis internet.

infra/security_groups.tf+1 -1
resource "aws_security_group_rule" "db_ingress" {  from_port   = 5432-  cidr_blocks = [var.app_subnet_cidr]+  cidr_blocks = ["0.0.0.0/0"]}
heygrcSOC 2 CC6.6

Cela supprime la restriction de source sur le port de la base de données, donc le groupe de sécurité autorise désormais les entrées depuis n'importe quelle adresse. Sur une base de données accessible depuis internet, cela signifie depuis tout internet. CC6.6 concerne la protection contre les menaces en provenance de l'extérieur des limites de votre système, et une base de données accessible depuis n'importe où est précisément l'exposition qu'il vise à éviter. Restreignez la source au sous-réseau ou au groupe de sécurité de l'application, ou accédez-y via un bastion pour un accès ponctuel, plutôt que via 0.0.0.0/0.

What an auditor does with this

Le périmètre est vérifié par rapport à ce qui est réellement accessible.

Un auditeur ne se contente pas de prendre pour argent comptant l'affirmation 'nous avons un pare-feu' ; il examine le périmètre réel : quels ports sont ouverts, vers quelles sources, et si quelque chose qui doit rester interne est accessible depuis l'extérieur. Un groupe de sécurité ouvert à 0.0.0.0/0, une base de données rendue accessible publiquement ou un port d'administration exposé sur internet sont des exceptions qui deviennent des constats, et elles arrivent généralement via une seule modification d'infrastructure. Les détecter au niveau du diff permet d'éviter que l'exposition ne se retrouve dans l'environnement échantillonné par l'audit.

What this is, and is not

Une revue, pas un scan réseau.

heygrc signale les modifications qui concernent CC6.6 et cite le critère afin que la correction ait lieu dans la pull request. Il ne scanne pas votre périmètre ni n'exécute vos outils d'évaluation de la posture cloud. Il détecte le moment où une modification ouvre la frontière, au niveau du diff.