#riscos #contedores #HPC #docker #singularity #udocker
Traballo de Fin de Grao presentado na Universidade de Santiago de Compostela para o obtención do Grao en Enxeñaría Informática. O presente traballo recolle o estudo realizado no Centro de Supercomputación de Galicia no referente aos riscos de utilizarmos tecnoloxías de contedorización en entornos HPC (High Performance Computing).
Os obxectivos deste proxecto céntranse en dous puntos:
- Analizar distintas implantacións de tecnoloxías de contedorización: Docker, Singularity e Udocker, dende o punto de vista das implicacións de seguridade.
- Determinar os cambios necesarios para poder empregar contedores nun entorno HPC multiusuario de xeito seguro.
- Tecnoloxías
- Detección de vulnerabilidades en imaxes
- Validación de imaxes
- Redes
- Limitación de recursos
- Propostas de mellora
Unha introdución ás tecnoloxías de contedorización empregadas ao longo de todo o estudo. Un resumo de aspectos coma o seu funcionamento, seguridade, fluxos de traballo ou limitacións son explicados aquí.
As tecnoloxías de contedorización empregadas son:
- Docker
- Singularity
- Udocker
Neste capítulo teranse en conta os riscos aos que un sistema baseado en contedores débese afrontar antes incluso de tratar cos mesmos. Debido á mobilidade que presentan os contedores, debemos estudar antes a existencia de vulnerabilidades nos mesmos, para non pór en risco o noso propio sistema.
Para facer o estudo dun xeito práctico, empregaremos as ferramentas Docker Hub (imaxes Docker) e Clair (imaxes Docker e Singularity).
Continuando co estudo previo, o seguinte paso é asegurar a validación das imaxes, de forma que estas non sexan modificadas por persoas non autorizadas nin sufran cambios indesexábeis.
Un dos aspectos máis controvertidos á hora de traballar con contedores é o seu xeito de xestionar as redes. Dependendo da tecnoloxía de contedorización a empregar esta xestión serán completamente diferente e suporá a existencia de diferentes riscos.
Realización de probas de ARP spoofing, Man in the middle e MAC flooding.
Cando facemos emprega de contedores nun entorno multiusuario debemos ter en conta que existe a posibilidade de que un contedor se apropie de todos os recursos, deixando aos demais inútiles. Un control dos recursos dos que dispón cada contedor é un punto importante neste tipo de entornos.
Recomendacións para mellorar a seguridade de entornos similares ao tratado ao longo do traballo:
- Contedores correndo sobre máquinas virtuais.
- Aplicación de capas externas de seguridade:
- Modelo centralizado: MAC e SELinux.
- Actualización do sistema.
- Auditoría do sistema.
- Docker Bench Audit Tool
- Listaxe de boas prácticas:
- Manter só o esencial.
- Empregar sistemas de só lectura.
- Limitar as chamadas ao kernel.
- Limitar os recursos.
- Reducir as vulnerabilidades existentes nas imaxes.
- Manter actualizadas as tecnoloxías de virtualización.
- Tratamento adecuada da información confidencial.
- Non dar acceso a directorios perigosos da máquina anfitrioa.
- Configurar ferramentas de xestión de OOM.
- Configurar o socket de Docker de xeito seguro se é precisa unha conexión en rede.
- Establecer un sistema de detección de vulnerabilidades en imaxes.
- Empregar mecanismos de validación de imaxes.
- Empregar mecanismos externos de seguridade.
- Manter o sistema actualizado.