Evaluando y probando SUSE® Security
Aplicaciones de muestra
Después de haber desplegado los componentes SUSE® Security, puedes evaluarlo utilizando las aplicaciones de muestra que proporcionamos. Estas se encuentran en el repositorio de 'nvbeta en Docker Hub.
Un entorno de prueba típico basado en Kubernetes tendría un nodo maestro y de dos a tres nodos trabajadores. Puedes controlar si los pods de aplicación y los contenedores SUSE® Security se despliegan en un nodo maestro (desactivado por defecto).
Plan de Pruebas de Kubernetes
Para desplegar una aplicación de múltiples capas utilizando Nginx, Nodejs y Redis, utiliza los ejemplos a continuación (en el orden indicado). Estos pueden necesitar ser editados para el despliegue en OpenShift, Rancher y otras herramientas basadas en Kubernetes.
Crea un espacio de nombres de demostración
kubectl create namespace demo
|
La muestra a continuación utiliza apiVersion: apps/v1 requerido por Kubernetes 1.16+. |
Crea el servicio y el despliegue de Redis utilizando este yaml:
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: demo
spec:
ports:
- port: 6379
protocol: "TCP"
name: "cluster-tcp-6379"
clusterIP: None
selector:
app: redis-pod
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-pod
namespace: demo
spec:
selector:
matchLabels:
app: redis-pod
template:
metadata:
labels:
app: redis-pod
spec:
containers:
- name: redis-pod
image: redis
Crea el servicio y el despliegue de Nodejs utilizando este yaml:
apiVersion: v1
kind: Service
metadata:
name: node
namespace: demo
spec:
ports:
- port: 8888
protocol: "TCP"
name: "cluster-tcp-8888"
clusterIP: None
selector:
app: node-pod
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: node-pod
namespace: demo
spec:
selector:
matchLabels:
app: node-pod
replicas: 3
template:
metadata:
labels:
app: node-pod
spec:
containers:
- name: node-pod
image: nvbeta/node
Crea el servicio y el despliegue de Nginx utilizando este yaml:
apiVersion: v1
kind: Service
metadata:
name: nginx-webui
namespace: demo
spec:
ports:
- port: 80
name: webui
protocol: TCP
type: NodePort
selector:
app: nginx-pod
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-pod
namespace: demo
spec:
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx-pod
image: nvbeta/swarm_nginx
ports:
- containerPort: 80
protocol: TCP
Para acceder al servicio Nginx-webui externamente, encuentra el puerto aleatorio asignado a él (mapeado al puerto 80) por el NodePort:
kubectl get svc -n demo
Luego conéctate a la dirección IP pública/puerto de uno de los nodos de Kubernetes, por ejemplo, http://(public_IP):(NodePort)
Después de desplegar SUSE® Security, puedes ejecutar tráfico de prueba a través de las aplicaciones de demostración para generar las reglas de lista blanca, y luego mover todos los servicios a modo Monitor o Proteger para ver violaciones y ataques.
Generando Violaciones de Red en Kubernetes
Para generar una violación desde un pod de nodejs, encuentra un pod:
kubectl get pod -n demo
Entonces intenta algunas violaciones (reemplaza el nombre del nodo-pod):
kubectl exec node-pod-name curl www.google.com -n demo
O encuentra la dirección IP interna de otro nodo pod, como 172.30.2.21 en el ejemplo a continuación, para conectarte de un nodo a otro:
kubectl exec node-pod-name curl 172.30.2.21:8888 -n demo
Generar una Amenaza/Ataque
Para simular un ataque, inicia sesión en un contenedor y luego intenta un ataque de ping:
kubectl exec -it node-pod-name bash -n demo
Utiliza la IP interna de otro nodo pod:
ping 172.30.2.21 -s 40000
Para todo lo anterior, puedes ver los eventos de seguridad en el mapa de Actividad de Red de la consola SUSE® Security, así como en la pestaña de Notificaciones.
Pruebas de Protección de Procesos y Archivos
Intenta diversas actividades de procesos y archivos accediendo a un contenedor y ejecutando comandos como apt-get update, ssh, scp u otros. Cualquier actividad de proceso o acceso a archivos no permitido generará alertas en Notificaciones.
Escaneo de Registro y Control de Admisión
Una prueba popular es configurar el escaneo de imágenes de un registro en Activos → Registros. Después de que el escaneo esté completo, configura una regla de Control de Admisión en la directiva. Asegúrate de habilitar los Controles de Admisión y establecer una regla para Denegar cuando haya altas vulnerabilidades en una imagen. Luego elige una imagen que tenga altas vulnerabilidades e intenta desplegarla en Kubernetes. El despliegue será bloqueado en modo Protección y verás un evento en Notificaciones → Riesgos de Seguridad.
Se pueden realizar pruebas de control de admisión más avanzadas utilizando diferentes criterios en las reglas, o combinando criterios.
Plan de Pruebas nativo de Docker
Después de desplegar los SUSE® Security componentes y la(s) aplicación(es) de muestra, podrás Descubrir, Monitorizar y Proteger los contenedores en ejecución. El plan de pruebas a continuación proporciona sugerencias para generar violaciones en tiempo de ejecución del comportamiento permitido de la aplicación y escanear contenedores en busca de vulnerabilidades.
Si el enlace anterior no funciona, puedes descargarlo desde nuestro sitio web utilizando la contraseña nv1851blvd.
SUSE® Security también puede detectar amenazas a tus contenedores, como ataques DDOS. Si ejecutas una herramienta para generar tales ataques en tus contenedores, estos resultados aparecerán en Actividad de Red y en el Panel de Control.
Por ejemplo, un simple comando de ping con una carga alta mostrará el ataque Ping.Death en la consola. Para probar esto, haz lo siguiente a la dirección IP de uno de los contenedores (IP interna del contenedor).
ping <container_ip> -s 40000
En Kubernetes, puedes hacer esto desde cualquier nodo, incluyendo el maestro. En otros entornos, puede que necesites estar conectado al nodo donde se está ejecutando el contenedor.