Les Policies rules: Security modes dicover, monitor, protect, basic and zero drift
3. Les règeles Policies
- Security modes
1. Network Policy Mode
C’est le comportement des règles réseau (firewall/segmentation) appliquées aux workloads :
-
Discover: NeuVector observe le trafic, apprend les flux réseau normaux, mais ne bloque rien.
-
Monitor: Les règles existantes sont appliquées, mais les violations sont seulement loggées (alertes).
-
Protect: Les règles sont appliquées strictement : tout ce qui n’est pas autorisé est bloqué.
On commence en Discover pour apprendre, puis Monitor, et enfin Protect en prod.
2. Process Profile Mode
C’est la protection sur les processus exécutés dans les conteneurs :
-
Discover: NeuVector apprend quels processus sont légitimes pour chaque container (profil).
-
Monitor: Les processus interdits sont détectés et signalés, mais non bloqués.
-
Protect: Les processus non approuvés sont bloqués immédiatement.
Exemple : si le conteneur nginx essaie de lancer bash, ça sera bloqué en mode Protect.
3. Baseline Profile Setting
Cela concerne la prévention des dérives (drift) des conteneurs, notamment fichiers et binaires :
-
Basic: Protection basique, NeuVector empêche seulement les changements évidents non autorisés.
-
Zero Drift: Mode strict : aucun nouveau binaire, librairie ou script ne peut apparaître dans le container après son démarrage.
Zero Drift est utile pour empêcher un attaquant d’injecter du malware ou un binaire supplémentaire.
Pour faire les tests, on deploie une app de tests voting app
- Deployer une app de test voting app:
- Clone le repo et deployer voting-app
git clone https://github.com/dockersamples/example-voting-app.git
cd example-voting-app
kubectl create ns voting-app
kubectl -n voting-app apply -f k8s-specifications/
-
- Vérifier le deploiement
- Pour acceder à vote : http://node_ip:31000 et result http://node_ip:31001
- Vérifier le deploiement
kubectl get svc,po -n voting-app

-
- J'accede bien à mon voting app

- Mode Discover et basic
- Activer le mode Dicover et baisc dans Policy > Groups > nv.vote.voting-app

- Si c'est activé, la petite flèche à coté disparait

-
- On ouvre un shell dans le pod vote et lancer cette commande curl.
kubectl -n voting-app exec \
$(kubectl get po -n voting-app -l app=vote -o jsonpath='{.items[0].metadata.name}') \
-- curl -v https://suse.com
-
- La commande respond avec succès et neuvector a appris la rule curl


- Mode Monitor et basic pour le process profile
-
- Activer le mode Monitor et baisc dans Policy > Groups > nv.vote.voting-app

-
- On ouvre un shell dans le pod vote et lancer cette commande curl.
kubectl -n voting-app exec \
$(kubectl get po -n voting-app -l app=vote -o jsonpath='{.items[0].metadata.name}') \
-- curl -v https://suse.com
-
- La commande repond avec succès, mais on a une alerte Warning dans Notificatiosn > Security Events
- Nuevetcor n'apprend plus de rule en mode Monitor et ne bloque rien. C'est uniquement une alerte qui est lavée.
- La commande repond avec succès, mais on a une alerte Warning dans Notificatiosn > Security Events


- Mode Protect et basic pour le process profile
-
- Activer le mode Protect et baisc dans Policy > Groups > nv.vote.voting-app

-
- On ouvre un shell dans le pod vote et lancer cette commande curl.
kubectl -n voting-app exec \
$(kubectl get po -n voting-app -l app=vote -o jsonpath='{.items[0].metadata.name}') \
-- curl -v https://suse.com
-
- La commande repond pas, mais en plus on a une alerte Critical dans Notificatiosn > Security Events

-
- Un racourci permet d'autoriser la regle depuis ici. On clic sur deploy pour autoriser le process


- Mode Protect et basic pour le Network profile
- On va interdire l'accès exterieur au pod vote

-
- On supprime la rule auto appris par neuvector qui autoriser le traefik vers l'exterieur
- Dans Policy > Network Rules filter sur vote.Clic sur remove et Save
- On supprime la rule auto appris par neuvector qui autoriser le traefik vers l'exterieur

-
- On ouvre un shell dans le pod vote et lancer cette commande curl.
kubectl -n voting-app exec \
$(kubectl get po -n voting-app -l app=vote -o jsonpath='{.items[0].metadata.name}') \
-- curl -v https://suse.com
-
- La commande repond pas, on a un time out ou bout d'un moment. On a une alerte Critical dans Notificatiosn > Security Events

-
- On peut autoriser la regle sur review rule > deploy

Commentaires
Aucun commentaire pour le moment.