Prerequisits: conèixer Docker i Docker Swarm.
L'emmascarament de claus a nivell d'Administració de Sistemes és de vital importancia. Es un fet demostrat estadísticament, que els atacs amb objectiu de obtenir dades sensibles, es produeix amb més èxit desde l'interior de les organizacións, que no pas desde l'exterior.
Degut a aquest perill, les claus d'accés a serveis d'identificació d'usuaris i cualsevol alta dada considerada secreta, és inconvenient sigui emmagatzemada en clar (es llelleixi directament).
El repte consisteix en mantenir organitzada la informació i continguda dintre de l'àmbit adient.
El problema moltes vegades, es que sengon la sensibilitat o interés de una persona o grup, una clau privada por ser de domini públic fàcilment.
Un altre problema similar són els paràmetres de crida a processos, que per deducció aporten molta informació al atacants de sistemes. El atacants poden ser molts i organitzats, sient preparats per la seva particular inauguració; El mateix dia de posta en producció d'un entorn productiu públic pot patir atacs-de-dia-cero, degut principalment a la visibilitat de paràmetres i deficiencia en l’emmascarament de secrets.
En l'entorn d'ensenyament aixó por esdevenir en que un alumne perdi la privacitat d'accés al seu espai cloud, que un profesor tingui seguidors anònims del seu treball (especialment d'exàmens que prepara) o qualsevol altre alteració de l’àmbit al què pertany una l'informació. En en menys d'un any lectiu, un equip d'ensenyament, pot trobar-se directa o indirectament, amb aquesta varietat de casos (exemples amb justificacions):
Els objectius son clars:
¿Que esdevé quan un curs docent termina?
Una ingent quantitat d'informació de persones, proves avaluatòries i material docent son on no haurien de ser. En el millor del casos queden dins de l'entorn educatiu, però em de preocuparnos de tot lo que ha sortit.
Pensem maleficament ara:
Després no ens ha de sobtar que:
¿Que podem fer com a tècnics, desenvolupadors, prof@s, etc?
Securitzar els paràmetres, paraules de pas i altres secrets per tal que Docker y Docker-Swarm siguin una eines segures de baix a alt nivell.
La part atacant coneixent paràmetres pot intentar a posteri l'atack de injecció de SQL, desbordament de buffer, creació de procesos de captació de dades i malversació en general del sistema Docker.
La part atacant coneixent paraules de pas, pot entrar en la part d'administració del servei, crear backdoors, sabotejar el sistema per conseguir denegació del servei, establir un sistema home-al-mig, entre d'altres.
A continuació s'explica el concepte de secret en detall i com comunicar i crear el pont entre Docker i Docker-Swarm per tal de poder intercanviar secrets mitjançant la comanda «docker swarm join-token».
Pel que fa als serveis de Docker Swarm, un secret és una gota de dades, com ara una contrasenya, una clau privada SSH, un certificat SSL o una altra dada que no s'hauria de transmetre a través d'una xarxa o emmagatzemar sense xifrar en un fitxer Dockerfile o a l'aplicació de la vostra aplicació. codi font. Podeu utilitzar els secrets de Docker per gestionar de manera centralitzada aquestes dades i transmetre-les de manera segura només als contenidors que hi necessiten accedir. Els secrets es xifren durant el trànsit i en repòs en un eixam Docker. Un secret determinat només és accessible per als serveis als quals se'n ha concedit un accés explícit, i només mentre s'executen aquestes tasques de servei.
Podeu utilitzar secrets per gestionar les dades sensibles que necessiti un contenidor en temps d'execució, però no voleu emmagatzemar-les a la imatge o al control de fonts, com ara:
Noms d'usuari i contrasenyes Certificats i claus TLS Claus SSH Altres dades importants com el nom d'una base de dades o servidor intern Cadenas genèriques o contingut binari (fins a 500 kb de mida)
Nota: els secrets de Docker només estan disponibles per als serveis d'eixam, no per als contenidors autònoms. Per utilitzar aquesta funció, penseu a adaptar el vostre contenidor perquè funcioni com a servei. Els contenidors amb estat normalment es poden executar amb una escala d'1 sense canviar el codi del contenidor.
Un altre cas d'ús per utilitzar secrets és proporcionar una capa d'abstracció entre el contenidor i un conjunt de credencials. Penseu en un escenari en què tingueu entorns de desenvolupament, proves i producció separats per a la vostra aplicació. Cadascun d'aquests entorns pot tenir credencials diferents, emmagatzemades als eixams de desenvolupament, proves i producció amb el mateix nom secret. Els vostres contenidors només necessiten saber el nom del secret per funcionar en els tres entorns.
També podeu utilitzar secrets per gestionar dades no sensibles, com ara fitxers de configuració. Tanmateix, Docker admet l'ús de configuracions per emmagatzemar dades no sensibles. Les configuracions es munten directament al sistema de fitxers del contenidor, sense utilitzar un disc RAM.
Aquesta ordre funciona amb l'orquestrador Swarm.
$docker swarm join-token [OPCIONS] (worker|manager)
Els tokens d'unió són secrets que permeten a un node unir-se al swarm. Hi ha dos tipus de tokens d'unió diferents disponibles:
En executar swarm join, el token es traspasa fent servir el paràmetre «–token». Els nodes utilitzen el token només quan s'uneixen al swarm.
Aquesta es una comanda de gestió del cluster i s'ha d'executar en el gestor de nodes swarm.
–quiet
només mostra el token.
-q
mateix efecte que –quiet
.
–rotate
Rotació del token d'unió.
–rotate
:
Com que els tokens permeten que nous nodes s'uneixin al swarm, hauríeu de mantenir-los en secret. Aneu especialment amb compte amb els tokens de gestor, ja que permeten que nous nodes de gestor s'uneixin al swarm.
Un administrador malició té el potencial d'interrompre el funcionament del vostre swarm.
Gireu el token d'unió del vostre swarm si surten canvis inesperats al control de versions, si és robat o un node està compromès. També és possible que vulgueu girar el testimoni periòdicament per assegurar-vos que les filtracions de testimoni desconegudes no permetin que un node maliciós s'uneixi al swarm.
Worker o Mánager sobre el que executem l'ordre.
https://docs.docker.com/engine/reference/commandline/swarm_join-token/#examples
General sobre Docker: https://docs.docker.com/engine/swarm/secrets/
Docker swarm: https://docs.docker.com/engine/reference/commandline/swarm/Enllaç extern
Docker swarm join-token: https://docs.docker.com/engine/reference/commandline/swarm_join-token/