Canais laterais divertidos e confiáveis ​​para comunicação entre contêineres

Canais laterais divertidos e confiáveis ​​para comunicação entre contêineres


Canais laterais divertidos e confiáveis ​​para comunicação entre contêineres (via) Aqui está um hack muito inteligente para comunicação entre diferentes processos executados em diferentes contêineres na mesma máquina. É baseado no abuso inteligente de bloqueios de aconselhamento POSIX que permitem que um processo crie e detecte bloqueios em intervalos de deslocamento de bytes:

Essas propriedades combinadas são suficientes para fornecer uma primitiva básica de canal lateral entre contêineres, porque um processo em um contêiner pode definir um bloqueio de leitura em algum intervalo no /proc/self/ns/timee um processo em outro contêiner pode observar a presença desse bloqueio consultando um bloqueio de gravação hipoteticamente cruzado.

Joguei a prova de conceito C no GPT-5 para obter uma explicação em nível de código e depois pedi que ele me ajudasse a descobrir como executá-lo no Docker. Aqui está a receita que funcionou para mim:

cd /tmp
wget https://github.com/crashappsec/h4x0rchat/blob/9b9d0bd5b2287501335acca35d070985e4f51079/h4x0rchat.c
docker run --rm -it -v "$PWD:/src" \
  -w /src gcc:13 bash -lc 'gcc -Wall -O2 \
  -o h4x0rchat h4x0rchat.c && ./h4x0rchat'

Execute isso docker run linha em duas janelas de terminal separadas e você pode conversar entre os dois assim:

Demonstração animada. Duas janelas de terminal. Ambos executam esse comando e, em seguida, iniciam uma interface de bate-papo l33t speak. Cada interface pede um nome ao usuário, então as mensagens digitadas em uma são exibidas instantaneamente na outra e vice-versa.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *