Prisma Cloud Compute ofrece una protección integral para aplicaciones y cargas de trabajo Cloud Native en entornos modernos. Desde la seguridad en contenedores hasta la protección en tiempo de ejecución, Prisma Cloud cuenta cobertura en cada paso del ciclo de vida de tu aplicación.
- Seguridad en Contenedores y Kubernetes: Fortaleciendo tus contenedores y orquestaciones de Kubernetes contra vulnerabilidades.
- Protección en Tiempo de Ejecución: Monitorización constante para detectar y responder ante cualquier actividad sospechosa.
- Integraciones de DevOps: Integración fluida con tus herramientas y flujos de trabajo de CI/CD.
- Visibilidad y Control de Vulnerabilidades: Análisis profundos para mantener tus aplicaciones seguras y sólidas.
- Acceso a Servidores Remotos: Asegura una conexión a través del puerto 22.
- Usuario de Prisma Cloud: Accede a todas las funcionalidades de la consola de Prisma Cloud.
- Seguridad Primero: Priorizamos un entorno controlado y seguro.
- Colaboración: Promovemos el aprendizaje colaborativo.
Este apartado te guiará en el proceso de conexión remota a un clúster de Kubernetes mediante SSH y cómo acceder al clúster utilizando el archivo kubeconfig.
Para administrar un clúster de Kubernetes, a menudo necesitas conectarte a uno de los nodos (generalmente el plano de control) a través de SSH. Este proceso te permite ejecutar comandos y administrar recursos del clúster directamente.
-
Abrir la Terminal: Dependiendo de tu sistema operativo, abre tu terminal o cliente SSH de preferencia.
-
Conectar vía SSH: Utiliza el comando SSH para conectarte al nodo. Necesitarás la dirección IP o el nombre de host del nodo, así como las credenciales de usuario:
bashCopy code
ssh [usuario]@[dirección-IP-o-nombre-host]
Reemplaza
[usuario]
con tu nombre de usuario y[dirección-IP-o-nombre-host]
con la dirección IP o el nombre del host del nodo a conectar. -
Autenticación: Proporciona la contraseña o utiliza una clave SSH para autenticarte, según la configuración de tu servidor.
Una vez conectado al nodo a través de SSH, puedes acceder al clúster de Kubernetes utilizando el archivo kubeconfig
.
-
Ubicación de Kubeconfig: Por defecto, el archivo
kubeconfig
se encuentra en~/.kube/config
en el plano de control. Asegúrate de estar en el directorio correcto o especifica la ruta al archivo al ejecutar comandos dekubectl
. -
Acceso al clúster: Para acceder al clúster, utilizamos el siguiente comando dentro del directorio de trabajo predeterminado:
export KUBECONFIG=kubeconfig
-
Comprobación del Acceso: Para verificar que tienes acceso al clúster, utiliza:
kubectl get nodes
Esto te mostrará información básica sobre el clúster de Kubernetes.
-
Gestión del Clúster: Ahora puedes ejecutar comandos
kubectl
para administrar recursos, desplegar aplicaciones, monitorear el estado del clúster, y más.
El DaemonSet Defender de Prisma Cloud es un agente de seguridad que se despliega en cada nodo de un clúster de Kubernetes. Funciona como un DaemonSet, asegurándose de que cada nodo en el clúster tenga un pod del Defender. Esto permite una cobertura completa y una protección consistente a través de todo el clúster.
Configurar y desplegar el DaemonSet Defender de Prisma Cloud para una protección robusta en tu clúster de Kubernetes.
- Inicie sesión en la consola de Prisma Cloud.
- Navegue a
Manage > Defenders > Manual Deploy
. - Seleccione Kubernetes como el tipo de Defender.
- Configure las opciones de despliegue según sus necesidades.
- Inicie sesión en el servidor del Plano de Control.
- Abra la terminal y cargue el archivo YAML.
- Cree un namespace para todas las actividades que realizará durante el workshop con
kubectl create namespace <namespace>
- Ejecute
kubectl apply -f <nombre_del_archivo>.yaml -n <namespace>
. - Verifique los pods con
kubectl get pods -n <namespace>
.
- Monitoree los Defenders desde la consola de Prisma Cloud.
- Revise el estado y los logs en
Manage > Defenders > Defenders:Deployed
.
La protección en tiempo de ejecución se refiere a la capacidad de detectar y mitigar amenazas y actividades maliciosas mientras las aplicaciones están en funcionamiento. A diferencia de las medidas preventivas que se aplican durante las etapas de desarrollo o despliegue, la protección en tiempo de ejecución se ocupa de identificar y reaccionar a los problemas en vivo.
Experimentar las capacidades de protección en tiempo de ejecución de Prisma Cloud.
- Cree un Pod para simular procesos comunes en ataques.
- Use
kubectl apply -f pod-process.yaml -n <namespace>
.
apiVersion: v1
kind: Pod
metadata:
name: process-pod
spec:
containers:
- name: tools-container
image: alpine
command: ["/bin/sh"]
args: ["-c", "apk update; apk add --no-cache nmap curl wget; sleep infinity"]
Al realizar pruebas de seguridad en entornos de Kubernetes, es fundamental ser consciente de los riesgos asociados con el uso de herramientas como apk
, wget
y curl
. Aunque estas herramientas son esenciales para probar y asegurar redes y aplicaciones, su uso indebido o no controlado puede representar riesgos de seguridad significativos.
-
apk:
- Riesgo: La gestión inadecuada de paquetes con apk puede llevar a varios riesgos de seguridad. Instalar paquetes desconocidos o no confiables puede introducir vulnerabilidades o malware en el sistema. Además, la falta de actualizaciones regulares de paquetes puede dejar el sistema expuesto a exploits conocidos.
- Protección: Para mitigar estos riesgos, es crucial monitorizar y controlar el uso de apk en el entorno de Alpine Linux
-
wget:
- Riesgo:
wget
puede descargar contenido y scripts maliciosos de Internet. En manos equivocadas, podría facilitar la introducción de malware o contenido no deseado en el sistema. - Protección: Restringir el uso de
wget
a fuentes confiables y monitorizar las descargas para detectar comportamientos inusuales.
- Riesgo:
-
curl:
- Riesgo: Similar a
wget
,curl
puede ser utilizado para descargar archivos o interactuar con servicios externos. Puede ser utilizado en ataques de exfiltración de datos o para recibir comandos de un servidor de comando y control. - Protección: Supervisar el uso de
curl
, especialmente en lo que respecta a destinos externos y asegurar que solo se comunique con destinos confiables.
- Riesgo: Similar a
Una vez que hayas desplegado el pod de pruebas, es momento de interactuar con él y ejecutar herramientas de seguridad comunes para observar cómo Prisma Cloud responde a diversas actividades.
-
Acceder al Contenedor: Utiliza el siguiente comando para acceder al contenedor que acabas de desplegar:
kubectl exec -it process-pod -n <namespace> -- /bin/sh
-
Ejecución de apk:
-
Propósito:
apk
se utiliza para instalar paquetes maliciosos. -
Comando de Ejemplo:
apk add <MALICIOUS_PACKAGE>
-
-
Uso de wget:
-
Propósito:
wget
se utiliza para descargar archivos o páginas web desde la línea de comandos. -
Comando de Ejemplo:
wget https://amazon.com
-
Este comando descargará la página de inicio de
amazon.com
.
-
-
Aplicación de curl:
-
Propósito:
curl
es una herramienta para transferir datos desde o hacia un servidor, utilizando una variedad de protocolos. -
Comando de Ejemplo:
bashCopy code
curl -I https://facebook.com
-
Este comando muestra las cabeceras HTTP de
facebook.com
.
-
Mientras ejecutas estos comandos, observa cómo Prisma Cloud detecta y responde a estas actividades. Estas herramientas, aunque benignas en sí mismas, pueden ser utilizadas para actividades maliciosas y, por lo tanto, pueden desencadenar alertas en sistemas de seguridad.
- Monitorización en Prisma Cloud: Asegúrate de revisar las alertas y registros en Prisma Cloud para ver cómo se manejan estas herramientas y comandos.
- Ejecuta Comandos: Sé parte activa de las pruebas de seguridad.
- Observa y Aprende: Descubre cómo Prisma Cloud maneja diversas amenazas en tiempo real.
La imagen rcmelendez/xmrig
es una implementación de XMRig, un software popular para la minería de criptomonedas. Esta imagen, creada por el usuario rcmelendez
, se utiliza en este workshop para demostrar la eficacia de Prisma Cloud en la detección de actividades potencialmente maliciosas.
El objetivo de esta sección del workshop es experimentar cómo Prisma Cloud detecta y maneja la ejecución de un contenedor que podría estar realizando actividades no deseadas, como la minería de criptomonedas.
- Creación del Pod: Utilice el siguiente manifiesto para crear un pod con XMRig:
apiVersion: v1
kind: Pod
metadata:
name: xmrig-pod
spec:
containers:
- name: xmrig-container
image: rcmelendez/xmrig
resources:
limits:
cpu: "1"
memory: "500Mi"
requests:
cpu: "0.5"
memory: "250Mi"
Despliegue el pod con el siguiente comando:
kubectl apply -f xmrig-pod.yaml -n <namespace>
Observación: Monitoree las alertas y eventos en Prisma Cloud tras el despliegue del pod para observar su comportamiento.
- Uso de un Entorno Controlado: Es vital realizar estas pruebas en un entorno seguro y aislado, para evitar impactos no deseados.
- Propósito Educativo: Este ejercicio está diseñado con fines educativos, enfocándose en entender cómo Prisma Cloud responde a actividades potencialmente riesgosas.
Damn Vulnerable Web Application (DVWA) es una aplicación web PHP/MySQL que ha sido diseñada con múltiples vulnerabilidades de seguridad intencionales. Es una herramienta educativa utilizada por profesionales de la seguridad y desarrolladores para aprender y practicar las habilidades de seguridad web en un entorno controlado.
Desplegar DVWA en tu clúster de Kubernetes para permitir la interacción con una aplicación web intencionalmente vulnerable, proporcionando un entorno práctico para aprender sobre seguridad en aplicaciones web.
Cada participante debe crear un namespace único en Kubernetes para aislar su instancia de DVWA:
Utilice el siguiente manifiesto de Kubernetes para desplegar DVWA en su namespace:
apiVersion: apps/v1
kind: Deployment
metadata:
name: dvwa-deployment
spec:
replicas: 1
selector:
matchLabels:
app: dvwa
template:
metadata:
labels:
app: dvwa
spec:
containers:
- name: dvwa
image: vulnerables/web-dvwa
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: dvwa-service
spec:
selector:
app: dvwa
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
-
Despliegue DVWA en su namespace con el siguiente comando:
kubectl apply -f dvwa.yaml -n <namespace>
-
Verifique que los pods estén funcionando correctamente:
kubectl get pods -n <namespace>
-
Acceda a DVWA a través del LoadBalancer utilizando la IP externa del servicio:
kubectl get svc -n <namespace>
- Monitoreo Continuo: Utilice Prisma Cloud para monitorear las instancias DVWA desplegadas y observar las vulnerabilidades y eventos de seguridad.
- Entorno Seguro: DVWA es una aplicación vulnerable por diseño. Asegúrese de desplegarla en un entorno controlado y aislado.
- Fines Educativos: Este despliegue está orientado al aprendizaje y la experimentación en el campo de la seguridad informática.
Realizar pruebas de seguridad utilizando DVWA para entender y aprender sobre diferentes tipos de vulnerabilidades web. Se abordarán tres tipos de ataques: inyección SQL, Cross-Site Scripting (XSS) y Command Injection.
La inyección SQL explota vulnerabilidades en la interacción entre una aplicación y su base de datos. El objetivo es manipular o extraer datos de manera no autorizada.
Ejemplo de Comando de Prueba:
-
Acceda a la sección SQL Injection en DVWA.
-
Intente el siguiente comando en el campo de entrada:
' UNION SELECT null, username, password FROM users --
-
Este comando utiliza la operación
UNION
para combinar el resultado de la consulta con datos seleccionados de la tabla de usuarios, revelando nombres de usuario y contraseñas.
XSS permite a un atacante inyectar scripts en páginas vistas por otros usuarios, lo que puede llevar al robo de sesiones de usuario o a la alteración de la experiencia del usuario.
Ejemplo de Comando de Prueba:
-
Vaya a la sección XSS (Reflected) en DVWA.
-
En el campo de entrada correspondiente, intente el siguiente script:
<script>fetch('/').then(resp => resp.text()).then(text => alert(text))</script>
-
Este script más avanzado utiliza
fetch
para obtener el contenido de la página actual y luego lo muestra en una alerta, demostrando la capacidad de ejecutar scripts más complejos.
La inyección de comandos permite a un atacante ejecutar comandos arbitrarios en el servidor a través de una aplicación web vulnerable.
Ejemplo de Comando de Prueba:
-
Diríjase a la sección Command Injection en DVWA.
-
Utilice el siguiente comando en el campo de entrada:
; cat /etc/passwd #
-
Este comando aprovecha la vulnerabilidad para ejecutar el comando
cat /etc/passwd
, permitiendo al atacante ver los nombres de usuario en el servidor.
- Estos ejemplos de comandos son para propósitos educativos y deben ser usados solo en entornos de prueba seguros y controlados.
- La comprensión y prueba de estos ataques ayuda a desarrollar mejores prácticas de programación y estrategias de defensa en aplicaciones web.
- Observación: Utilice Prisma Cloud para monitorear estas pruebas y observe cómo se detectan y gestionan los intentos de ataque.
- Entorno Seguro y Controlado: Realice estas pruebas en un entorno seguro y no en aplicaciones de producción.
- Fines Educativos: Estas pruebas deben realizarse solo con fines educativos y de aprendizaje sobre la seguridad informática.
Comprender los fundamentos de Cloud Native Network Segmentation (CNNS) en Kubernetes y aprender a configurar y aplicar políticas de seguridad mediante Prisma Cloud, una plataforma integral para la seguridad de aplicaciones cloud native.
CNNS es una capacidad esencial en la protección de entornos Kubernetes, especialmente en la era de la nube y las arquitecturas de microservicios. Prisma Cloud, una solución avanzada para la seguridad en la nube, aborda estos desafíos ofreciendo una protección integral en la red para contenedores y servicios en la nube.
Prisma Cloud permite a las organizaciones implementar CNNS de forma efectiva en sus clústeres de Kubernetes, aprovechando sus capacidades avanzadas para obtener una protección sólida y una gestión de riesgos eficaz. Los usuarios pueden definir políticas detalladas, monitorear el tráfico e investigar rápidamente los incidentes, todo dentro de una interfaz unificada y fácil de usar.
Para experimentar con CNNS, desplegaremos una aplicación de muestra en Kubernetes.
Manifiesto de Kubernetes:
---
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: nginx
---
apiVersion: v1
kind: Pod
metadata:
name: curl-pod
labels:
app: curl
spec:
containers:
- name: curl-container
image: appropriate/curl
command: ["sh", "-c", "sleep 3600"]
---
apiVersion: v1
kind: Service
metadata:
name: curl-service
spec:
type: ClusterIP
ports:
- port: 8080
selector:
app: curl
Instrucciones de Despliegue:
-
Despliegue el pod en Kubernetes con:
kubectl apply -f cnns.yaml -n <namespace>
-
Comprobación del Estado de los Pods: Utilice el comando
kubectl get pods
para revisar el estado de los pods de WordPress y MySQL. Ambos deben estar en estadoRunning
.kubectl get pods -n <namespace> -o wide
-
Acceso al Interfaz web: Si ha configurado un servicio LoadBalancer, intente acceder a la interfaz web de WordPress a través de un navegador. La capacidad de iniciar sesión y realizar operaciones indica una conexión exitosa. Obtenga la IP externa con
kubectl get svc -n <namespace>
-
Pruebas de Conectividad Directa: Realice un chequeo de conectividad directa desde el curl-pod al pod de nginx-pod.
kubectl exec -it [nombre-curl-pod] -n <namespace> -- /bin/sh
Intente obtener información de manera directa al pod de ngix
curl <IP_NGNIX_POD>:<PORT>
- Observación: Utilice Prisma Cloud para monitorear el cumplimiento de las políticas de CNNS y detectar cualquier desviación o intento de ataque.
- Prácticas Seguras: Asegúrese de seguir las mejores prácticas de seguridad al configurar CNNS.
- Fines Educativos: Este módulo está destinado para fines educativos y de aprendizaje sobre la implementación y gestión de CNNS en Kubernetes.
Queremos expresar nuestro más sincero agradecimiento a todos los participantes por dedicar su tiempo y esfuerzo en este workshop. Su entusiasmo y compromiso han sido fundamentales para el éxito de esta jornada de aprendizaje.
Esperamos que las sesiones y las actividades del workshop hayan sido enriquecedoras y que hayan proporcionado valiosos conocimientos y habilidades prácticas en Kubernetes, seguridad en la nube y las tecnologías relacionadas.
Les animamos a todos a continuar explorando, aprendiendo y aplicando lo que han adquirido aquí en sus proyectos con Prisma Cloud. Manténganse conectados para futuros eventos y oportunidades de aprendizaje con NETDATA INNOVATION CENTER.
Esperamos verlos nuevamente en nuestros próximos eventos y talleres. ¡Hasta pronto y sigan innovando!