inHacker
byHelen Lafayettenoviembre 24, 2021, 11:30 am
Una imagen de contenedor que extrae el tiempo de ejecución del contenedor subyacente y lo envía a un servidor remoto. Explore el tiempo de ejecución del contenedor subyacente de su plataforma de contenedor CSP preferida.
¿Como funciona?
Como muestra runc CVE-2019-5736, los tiempos de ejecución de contenedores de Linux tradicionales se exponen a los contenedores que atraviesan /proc/self/exe. whoc utilice este enlace para leer el tiempo de ejecución del contenedor que se está ejecutando.
Modo dinámico
Es decir whoc Modo estándar que funciona con tiempos de ejecución de contenedores vinculados dinámicamente.
- los whoc El punto de entrada de la imagen está activado. colocar /proc/self/exey el enlazador dinámico de la imagen (ld.so) es reemplazado por fake_ld.
- Tan pronto como se haya ejecutado la imagen, el tiempo de ejecución del contenedor se ejecuta nuevamente dentro del contenedor.
- Dado que el tiempo de ejecución está vinculado dinámicamente, el kernel carga nuestro enlazador dinámico falso en el proceso de tiempo de ejecución y le entrega la ejecución.
- fake_ld obtiene un descriptor de archivo para el binario en tiempo de ejecución abriéndolo /proc/self/exey ejecuta upload_runtime.
- upload_runtime lee el archivo binario en tiempo de ejecución /proc/self/fd/<runtime-fd> y lo envía al servidor remoto configurado.
Espere el modo Exec
Para tiempos de ejecución de contenedores vinculados estáticamente, whoc viene en un sabor diferente: whoc:waitforexec.
- upload_runtime es el punto de entrada de la imagen y se ejecuta como whoc Contenedor PID 1.
- Se espera que el usuario ingrese whoc Contenedor y obtenga un archivo que apunte a /proc/self/exe (p.ej. docker exec whoc-ctr /proc/self/exe)
- Tan pronto como se lleva a cabo la ejecución, el tiempo de ejecución del contenedor se ejecuta nuevamente dentro del contenedor
- upload_runtime lee el binario en tiempo de ejecución /proc/<runtime-pid>/exe y lo envía al servidor remoto configurado
Prueba localmente
Necesitas docker y python3 Configurar. Clona el repositorio:
$ git clone [email protected]:twistlock/whoc.git
Configure un servidor de archivos para recibir el tiempo de ejecución del contenedor extraído:
$ cd whoc$ mkdir -p stash && cd stash$ ln -s ../util/fileserver.py fileserver $ ./fileserver
En otro caparazón ejecute el whoc Imagen en el entorno de contenedor que desee, por ejemplo, Docker:
$ cd whoc$ docker build -f Dockerfile_dynamic -t whoc:latest src # or ./util/build.sh$ docker run --rm -it --net=host whoc:latest 127.0.0.1 # or ./util/run_local.sh
Asegúrese de que el servidor de archivos haya recibido el tiempo de ejecución del contenedor. Mientras caminamos whoc En Vanilla Docker, se debe ejecutar el tiempo de ejecución del contenedor recibido.
–net=host sólo se utiliza en pruebas locales para que el whoc El contenedor podría llegar fácilmente al servidor de archivos en el host a través de 127.0.0.1.
ayuda
Ayuda para whocbinario principal, upload_runtime:
Options: -p, –port Port of remote server, defaults to 8080 -e, –exec Wait-for-exec mode for static container runtimes, waits until an exec to the container occurred -b, –exec-bin In exec mode, overrides the default binary created for the exec, default is /bin/enter -a, –exec-extra-argument In exec mode, pass an additional argument to the runtime so it won’t exit quickly -r, –exec-readdir-proc In exec mode, instead of guessing the runtime pid (which gives whoc one shot of catching the runtime), find the runtime by searching for new processes under ‘/proc'»>
Usage: upload_runtime [options] <server_ip>Options:-p, --port Port of remote server, defaults to 8080-e, --exec Wait-for-exec mode for static container runtimes, waits until an exec to the container occurred-b, --exec-bin In exec mode, overrides the default binary created for the exec, default is /bin/enter-a, --exec-extra-argument In exec mode, pass an additional argument to the runtime so it won't exit quickly-r, --exec-readdir-proc In exec mode, instead of guessing the runtime pid (which gives whoc one shot of catching the runtime),find the runtime by searching for new processes under '/proc'
contenedordelejecuciónextraeimagensubyacentetiempoUna
Índice de contenido
Newsletter
What do you think?
0 Points Upvote Downvote
You May Also Like
- byHelen Lafayettenoviembre 26, 2021, 1:20 pm
- Trending byHelen Lafayettenoviembre 26, 2021, 11:30 am
- Trending byHelen Lafayettenoviembre 25, 2021, 5:52 pm
- byHelen Lafayettenoviembre 25, 2021, 1:55 pm
- Trending byHelen Lafayettenoviembre 25, 2021, 1:52 pm
- byHelen Lafayettenoviembre 24, 2021, 12:25 pm
Reply with GIF
GIPHY App Key not set. Please check settings
Don’t Miss
- Hot Popular byAlan Kimnoviembre 7, 2021, 4:46 pm
- Hot Popular byAlan Kimnoviembre 1, 2021, 10:12 pm
- Hot Popular 1 SharesbyAlan Kimnoviembre 3, 2021, 10:10 pm
- Hot byHelen Lafayetteoctubre 27, 2021, 1:47 pm
- Hot Popular byAlan Kimoctubre 27, 2021, 11:34 pm
- Hot byAlan Kimnoviembre 11, 2021, 12:31 am