1 puntos por GN⁺ 2024-03-10 | 1 comentarios | Compartir por WhatsApp

Incidente de seguridad 12604 de Apple curl

  • El 28 de diciembre de 2023, se presentó el reporte de bug 12604 en el rastreador de issues de curl.
  • El título del problema era "flag –cacert behavior isn’t consistent between macOS and Linux", señalando que el comportamiento de la bandera --cacert no es consistente entre macOS y Linux.
  • El reportero mostró que la versión de curl incluida con macOS se comporta de forma distinta al binario de curl compilado completamente desde el código abierto.

La versión de Apple revisa en segundo lugar el almacén de CA del sistema

  • La opción de línea de comandos --cacert ofrece una forma de indicarle a curl que confíe solo en un conjunto específico de certificados CA.
  • Al usar en macOS la versión de curl proporcionada por Apple, si el conjunto de certificados CA entregado falla en la validación, aparentemente revisa en segundo lugar el almacén de CA del sistema.
  • Esto no está documentado y es un comportamiento inesperado para el usuario.

Esto es un problema de seguridad

  • Cuando el usuario ejecuta la verificación con un archivo de certificados CA especificado, si en el almacén de CA del sistema existe un certificado capaz de validar el servidor, la verificación no falla.
  • Esto provoca un problema de seguridad en el que una verificación de certificados que no debería pasar termina pasando.

Apple dice que no hay problema

  • El 8 de marzo de 2024, Apple Product Security respondió que la versión de OpenSSL (LibreSSL) usa intencionalmente el almacén de confianza del sistema integrado como fuente de confianza predeterminada.
  • Como el certificado del servidor puede validarse correctamente usando el almacén de confianza del sistema integrado, no lo consideran un problema.

No estoy de acuerdo

  • Debido a esta función no documentada, la validación de certificados CA usando curl en macOS no es completamente confiable y no coincide con la documentación.
  • Esto puede confundir a los usuarios.
  • Como este problema no es una vulnerabilidad de seguridad en la versión de curl que distribuimos, no emitiremos un CVE.
  • Estrictamente hablando, el problema no está en el código de curl, sino en la versión de LibreSSL que Apple proporciona y usa para compilar curl.

Opinión de GN⁺

  • Este incidente subraya la importancia de la seguridad y la confiabilidad del software. Cuando un usuario quiere usar únicamente los certificados CA en los que confía explícitamente, que el sistema acepte implícitamente otros certificados puede generar una seria preocupación de seguridad.
  • La respuesta de Apple muestra que existe una brecha entre los criterios de seguridad definidos por la empresa y las expectativas de la comunidad de código abierto. Esto puede detonar una discusión sobre cómo usuarios y desarrolladores deben percibir y gestionar la seguridad en esa plataforma.
  • Este tipo de problemas destaca los asuntos de dependencias e integración que pueden surgir al usar software de código abierto. Los desarrolladores deben reconocer estas diferencias y responder adecuadamente al usar bibliotecas y herramientas provistas por una plataforma específica.
  • Otros proyectos que ofrecen funciones similares incluyen OpenSSL y GnuTLS, cada uno con su propia filosofía e implementación de seguridad. Los usuarios y desarrolladores pueden considerar estas alternativas.
  • Al adoptar una tecnología, se debe revisar cuidadosamente su modelo de seguridad y la compatibilidad entre plataformas. Este incidente pone de relieve la importancia de la elección tecnológica al revelar que la implementación de LibreSSL de Apple funciona de manera distinta al comportamiento estándar de curl.

1 comentarios

 
GN⁺ 2024-03-10
Opinión de Hacker News
  • Crítica a cierta "función" de Apple

    • Esta función puede añadir cálculos innecesarios o romper el modelo de verificación esperado.
    • La razón por la que un usuario querría proporcionar su propia CA puede ser que esa CA no esté en el paquete del sistema operativo o que quiera validar contra una CA específica.
    • Este comportamiento de Apple no es el resultado esperado.
  • La política de Apple prevalece independientemente de la intención del propietario del dispositivo Apple

    • No es un fenómeno sorprendente, sino algo habitual, que la política de Apple prevalezca ignorando lo que quiere el "propietario" del dispositivo Apple.
  • Explicación sobre el uso del almacén de CA en libcurl

    • Si se configura la opción CURLSSLOPT_NATIVE_CA, libcurl utiliza el almacén de CA predeterminado del sistema operativo para realizar la validación de certificados.
    • Si se configura un archivo o directorio de certificados CA, estos también se buscan junto con el almacén de CA predeterminado.
    • Si se combina con la opción --cacert, libcurl puede intentar respetar ambas configuraciones, lo que sugiere que podrían ser mutuamente excluyentes.
  • Una situación similar al incidente de SQLite F_BARRIERFSYNC

    • Parece que Apple no le da importancia.
  • Necesidad de que curl haga una corrección según lo señalado por Daniel

    • Si Daniel señala un problema en curl, Apple debería corregirlo.
  • Problemas en la documentación de curl y una falla de seguridad en libcurl

    • curl no implementa directamente todos los protocolos, sino que da soporte a varias bibliotecas.
    • La desventaja de este enfoque es que es difícil garantizar un comportamiento consistente entre backends independientes.
    • libressl no es una reimplementación perfecta de openssl y no tiene la obligación de imitar por completo su API.
    • curl tiene dos opciones: dejar de dar soporte a esa biblioteca o documentar el problema.
    • Para evitar romper el código de los usuarios, al menos debería documentar el problema.
    • El enfoque de libressl tiene fallas desde el punto de vista de la seguridad y podría haber razones para abrir un CVE.
  • Desconfianza hacia el software incluido en macOS

    • Se usa MacPorts para sobrescribir las herramientas incluidas en macOS (por ejemplo, curl), ya que a menudo están desactualizadas o tienen problemas.
  • El comportamiento predeterminado de Apple puede considerarse una puerta trasera

    • No se dice que sea intencional o malicioso, pero en la práctica podría funcionar como una puerta trasera.
    • Agregar claves al esquema de autenticación del usuario es como agregar una puerta trasera.
  • Crítica a que Apple no da importancia a la seguridad del usuario

    • El comportamiento predeterminado y el comportamiento alternativo son distintos.
    • Se sugiere que el equipo de seguridad de Apple podría tener problemas de comprensión lectora.