Roliga och pålitliga sidokanaler för kommunikation över behållare

Roliga och pålitliga sidokanaler för kommunikation över behållare


Roliga och pålitliga sidokanaler för kommunikation över behållare (via) Här är ett mycket smart hack för att kommunicera mellan olika processer som körs i olika behållare på samma maskin. Den är baserad på smart missbruk av POSIX-rådgivningslås som tillåter en process för att skapa och upptäcka lås över byteoffsetintervall:

Dessa egenskaper kombinerade är tillräckligt för att ge en grundläggande sidokanalprimitiv för flera behållare, eftersom en process i en behållare kan ställa in ett läslås vid något intervall på /proc/self/ns/timeoch en process i en annan behållare kan observera närvaron av det låset genom att fråga efter ett hypotetiskt skärande skrivlås.

Jag dumpade C proof-of-concept i GPT-5 för en förklaring på kodnivå, och fick den sedan hjälpa mig att ta reda på hur man kör den i Docker. Här är receptet som fungerade för mig:

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'

Kör det docker run linje i två separata terminalfönster och du kan chatta mellan de två så här:

Animerad demo. Två terminalfönster. Båda kör det kommandot och startar sedan ett l33t talk-chattgränssnitt. Varje gränssnitt ber användaren om ett namn, sedan visas meddelanden som skrivs i det ena direkt i det andra och 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 *