8 puntos por GN⁺ 2025-02-04 | 2 comentarios | Compartir por WhatsApp
  • httptap es una herramienta que permite ver fácilmente las solicitudes HTTP y HTTPS realizadas por programas de Linux
    • Se puede usar httptap -- para rastrear las solicitudes de red de un comando específico
  • Por ejemplo, si se envía una solicitud a una URL específica con el comando curl, httptap muestra esa solicitud y la respuesta
    • httptap no requiere privilegios de root y no afecta a todo el sistema
    • Actualmente solo funciona en Linux, y portarlo a otros sistemas operativos es difícil
  • Instalación
  • Inicio rápido
    • Se puede enviar una solicitud HTTP con el comando curl y revisar la solicitud y la respuesta con httptap
    • Si se usa la opción -L para seguir redirecciones, se generan solicitudes HTTP adicionales
  • Ejemplos de uso con Google Cloud y kubectl
    • Se pueden rastrear las solicitudes HTTP que ocurren al listar instancias de cómputo de Google Cloud con el comando gcloud compute instances list
    • Se pueden rastrear las solicitudes HTTP que ocurren al listar recursos de un clúster de Kubernetes con el comando kubectl get all
  • DNS-over-HTTP
    • Se pueden realizar solicitudes DNS-over-HTTP usando la opción --doh-url de curl.
    • Se pueden revisar las solicitudes y respuestas DNS con httptap.
  • Salida HAR
    • Es posible volcar las solicitudes y respuestas HTTP a un archivo HAR.
    • El archivo HAR se puede visualizar con distintos viewers.
  • Cómo funciona
    • httptap usa namespaces de red para ejecutar el comando en un entorno aislado
    • Crea un dispositivo TUN para rastrear el tráfico de red y genera una autoridad certificadora temporal para descifrar tráfico HTTPS
  • Precauciones
    • El proceso no puede recibir conexiones de red entrantes.
    • Se requiere acceso a /dev/net/tun.
    • Todas las solicitudes ICMP echo se responden localmente sin enviar paquetes ICMP a la red real

2 comentarios

 
halfenif 2025-02-06

it was developed at the Monastic Academy in Vermont in the US. We believe that a monastic schedule, and the practice of the Buddhist spiritual path more generally, provide ideal conditions for technological development.

Al probarlo y ver GitHub. ¿Entrenamiento monástico? Hasta pensé que quizá lo hicieron personas que practican eso como parte de un logro espiritual.

 
GN⁺ 2025-02-04
Comentarios en Hacker News
  • La sección "How it was made" del README es tan interesante como la herramienta en sí

    • El desarrollo de software se llevó a cabo mediante vida en comunidad y práctica de meditación
    • La idea de ejecutar procesos en un espacio de nombres de red aislado es genial
    • Me interesa la parte de HTTPS, donde se establece una variable de entorno para indicar al programa que use el bundle de CA del directorio temporal
    • Puede ocurrir un problema similar a http_proxy, y el programa podría ignorar la variable
    • Monta un sistema de archivos superpuesto en /etc/resolv.conf, y me pregunto si ayudaría montar el directorio /etc/ca-certificates usando el bundle temporal de CA
  • httptap es un trazador de HTTP a nivel de proceso que puede ejecutarse sin privilegios de root

    • Se ejecuta con httptap <command> para rastrear solicitudes y respuestas HTTP/HTTPS en la salida estándar
    • Ejecuta el comando en un espacio de nombres de red aislado y usa su propia pila TCP/IP
    • No es un proxy HTTP, y no hace falta configurar el comando para que use un proxy HTTP
    • Descifra tráfico TLS generando una CA en tiempo real
    • No instala reglas de iptables ni hace cambios globales en el sistema
  • Otra herramienta para analizar tráfico de red sin privilegios de root es rootless Podman con Pasta

    • Agregando la opción --network=pasta:--pcap,myfile.pcap se registra el tráfico de red en un archivo PCAP
    • Escribí un ejemplo sencillo para analizar el archivo PCAP registrado con tshark
  • Usar un dispositivo TUN es una idea genial, y la sección "How it was made" está entre las mejores que he visto en un README de Github

    • Estoy desarrollando una herramienta llamada Subtrace, que puede interceptar automáticamente las solicitudes entrantes y salientes
    • Usa Seccomp BPF para interceptar llamadas al sistema como socket, connect, recv y accept, y proxyear todas las conexiones TCP a través de Subtrace
    • Analiza las solicitudes HTTP desde el flujo TCP y se las muestra al usuario en la pestaña Network de Chrome DevTools
  • Lo voy a usar de inmediato para depurar configuraciones de nginx

    • Ahora uso curl -v para revisar manualmente la salida, pero esta herramienta permite detectar al instante cosas como bucles de redirección
  • Hace poco implementé una función similar en mitmproxy, pero con otras compensaciones

    • Requiere privilegios de root y todavía no hay instalación automática de certificados
    • No hace falta ejecutar la app en un espacio de nombres dedicado, así que puede capturar procesos que ya están en ejecución
  • Otro enfoque que usa LD_PRELOAD puede fallar con ELF enlazados estáticamente, por ejemplo binarios de golang

  • Es un gran aprovechamiento de la pila TCP/IP en espacio de usuario de gVisor

  • Mitmproxy v11.1 también puede hacer algo similar