Aller au contenu principal
Sommaire de la formation

Les Policies rules: Network Rules, DLP Sensors

coolibra119 vues

3. Les Policies rules

  • Network Rules

  • DLP Sensors

  • WAF Sensors


3.1 Network Rules

Les Network Rules définissent le comportement autorisé ou interdit du trafic réseau entre les conteneurs, les hôtes et les services. Elles permettent de contrôler les connexions entrantes et sortantes, de détecter et bloquer les communications non autorisées, et d’appliquer des politiques de segmentation réseau pour renforcer la sécurité du cluster.

NeuVector crée automatiquement des règles réseau à partir des applications en cours d'exécution en mode Découverte. Vous pouvez également les ajouter manuellement dans n'importe quel mode : Discover, Monitor, or Protect. Les règles peuvent être ajoutées ou modifiées depuis l'interface de ligne de commande (CLI) ou l'API REST

  • Avant de créer les rules, il faut activer le mode network sur protect

  • Clic sur Policy > Network rules
    • Autoriser uniquement l'application http sur les ports 80 et 443. clic sur save

 

 

  • On peut voir les alertes dans Notifications > Security Events

 

3.2 DLP Sensors

Les DLP Sensors (Data Loss Prevention) surveillent le contenu des données qui transitent ou sont stockées afin de détecter des informations sensibles, telles que des mots de passe, des numéros de cartes bancaires ou des données personnelles. Ces capteurs peuvent générer des alertes ou bloquer les transmissions non conformes pour prévenir les fuites de données.

  • Créer un DLP sensor
    • Blocage de mot de passe, token et api-key en clair dans les headers des requetes.
    • La Regex
\b([Pp]ass(word|wd)?|[Pp]wd|[Tt]oken|[Aa]pi([-_]?key|[-_]?token)?|[Kk]ey|[Bb]earer)\b[:= ]+[A-Za-z0-9_\-]+

 

    • Dans Policy > DLP Sensors > Clic sur Add

 

    • Clic le sensor pour ajouter les rules

 

    • On ajouter la regex pour le header, url, body et packet

 

 

    • Test sans le DLP
      • Deployer cete app de test
apiVersion: v1
kind: Namespace
metadata:
  name: todolist
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgresql
  namespace: todolist
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgresql
  template:
    metadata:
      labels:
        app: postgresql
    spec:
      containers:
      - name: postgresql
        image: postgres:13
        ports:
        - containerPort: 5432
        env:
        - name: POSTGRES_DB
          value: todolist
        - name: POSTGRES_USER
          value: postgres
        - name: POSTGRES_PASSWORD
          value: password
        volumeMounts:
        - name: postgres-storage
          mountPath: /var/lib/postgresql/data
      volumes:
      - name: postgres-storage
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: postgresql-service
  namespace: todolist
spec:
  selector:
    app: postgresql
  ports:
  - protocol: TCP
    port: 5432
    targetPort: 5432
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: todolist-app
  namespace: todolist
spec:
  replicas: 1
  selector:
    matchLabels:
      app: todolist-app
  template:
    metadata:
      labels:
        app: todolist-app
    spec:
      containers:
      - name: todolist-app
        image: ceticdocker/todolist:$TAG
        ports:
        - containerPort: 5000
        env:
        - name: DATABASE_URL
          value: "postgresql://postgres:password@postgresql-service:5432/todolist"
        - name: PORT
          value: "5000"
        livenessProbe:
          httpGet:
            path: /health
            port: 5000
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /health
            port: 5000
          initialDelaySeconds: 5
          periodSeconds: 5
---

apiVersion: v1
kind: Service
metadata:
  name: todolist-service
  namespace: todolist
spec:
  selector:
    app: todolist-app
  ports:
  - protocol: TCP
    port: 80
    targetPort: 5000
    nodePort: 30180
  type: NodePort

 

    • Acceder à l'url : http://node_ip:30180/
      • Ajouter des todos et aucune alerte ne être dans Notificatiosn > Security Events

 

    • Activer le mode Monitor et Basic sur le group nv.todolist-app.todolist

    • Activer le DLP sur le pod todolist
      • Dans policy > Groups > select nv.todolist-app.todolist > select DLP > Configure > select sensor block-cleartext-secrets

 

 

    • Lancer l'application todolist sur le navigateur: http://node_ip:30180/
      • Ajouter des todos ex: ces 2: 
        • pwd: sohp5hai4Obieveiph9toedai4xieCha
        • Credit card: 4485-2800-2097-2372

 

 

 

 

    • Nous somme en mode Monitor et Basic donc les requetes ne pas bloquées mais une alerte Warning a été levée dans Notifications > Security Events
      • Chose intéressante, le DLP à detecté le header, l'url, body et packet en même temps.

 

    • On peut télécharger et le  PCAP et analyser avec un outils comme wireshark.

 

    • Maintenant, on active le mode Protect et Basic sur le group nv.todolist-app.todolist

 

      • Ajouter des todos ex: ces 2: 
        • pwd: ooj6Wie6Omahxeegahghoot
        • Credit card: 4485-2800-2097-2372

 

    • Nous somme en mode Protect et Basic donc les requetes sont  bloquées en plus une alerte Critical a été levée dans Notifications > Security Events.
      • Meme la suppression de todo avec secret n'est pas possible car le DLP bloque.

 

  • Cleanup
    • Remettre le mode Discover et Basic pour éviter des surprise dans la suite. Enlever également le DLP sur le group nv.todolist-app.todolist

 

Commentaires

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.