11 votos

Si la Mac de firma de código es manipulado, ¿qué puede fallar?

¿Qué molestias o problemas reales que pueden ocurrir cuando la firma digital de una aplicación para Mac que está roto?

Aplicaciones en un Mac puede ser firmado digitalmente. Cuando la firma es de alguna manera rotos, yo conozco a un par de aplicaciones puede notar que. Pero no sé en qué detalle estos serán sólo molestias o realmente va a romper cosas:

  • El firewall de OS X no puede ser capaz de ajustar correctamente ad hoc de la firma, causando una repetidamente aparezca el mensaje "¿desea que la aplicación '[ .. ] " para aceptar conexiones de red entrantes?"

  • Aplicaciones permitido por el control Parental podría dejar de correr?

  • Acceso a llaveros podría ser roto?

  • Algunos dicen actualización de software de Apple podría fallar. Si es cierto, entonces me pregunto si esto realmente depende de la Firma de Código de la firma, o podría deberse a que algunos no-coincidencia de hash para la aplicación completa, o información de lista de materiales de los archivos.

Más información de fondo a continuación.


La firma de código de detalles puede ser mostrado usando:

codesign --display -vv /Applications/iTunes.app/

...que daría algo como lo siguiente (pero no advertir acerca de las modificaciones):

[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]

La firma se puede validar mediante:

codesign --verify -vv /Applications/iTunes.app/

Lo que daría:

/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement

...o (incluso cuando simplemente poniendo adicional sobre el archivo en una aplicación ./Contenido/carpeta de Recursos):

/Applications/iTunes.app/: a sealed resource is missing or invalid

...o (tal vez peor que el mensaje de arriba):

/Applications/iTunes.app/: code or signature modified

La firma de código se remonta a OS 9 o versiones anteriores, pero la implementación actual se introdujo en 10.5 Leopard. Ars Technica escribe:

La firma de código lazos de un sistema de encriptación verificable identidad a una colección de código y se asegura de que cualquier modificación a que el código es detectado. No se ofrecen garantías sobre las partes involucradas. Por ejemplo, si descarga una aplicación firmada por Acme Inc., usted puede probar nada acerca de él, excepto que vino desde la misma entidad, alegando ser Acme Inc. la última vez que has descargado algo de su sitio web.

Este ejemplo, en realidad pone de relieve la aplicación más útil de la tecnología desde la perspectiva del consumidor. Cuando se actualiza una aplicación para Mac OS X hoy [en 10.4 Tiger, AvB], el usuario a menudo se le pedirá que vuelva a verificar que esta aplicación está permitido el acceso a las llaves para recuperar los nombres de usuario y contraseñas. Esta parece una buena característica de seguridad, pero todo lo que realmente hace es entrenar a los usuarios de Mac a ciegas haga clic en "Permitir Siempre", cada vez que aparece. Y realmente, ¿qué es el usuario medio va a hacer, ejecute el archivo ejecutable a través de un desensamblador y comprobar manualmente que el código es seguro?

Una solicitud firmada, por otro lado, se puede demostrar matemáticamente que es de hecho una nueva versión de la misma aplicación desde el mismo proveedor que usted expresó su confianza en el pasado. El resultado es una final para los cuadros de diálogo pidiéndole que confirme una elección cuya seguridad no hay una manera de comprobar.

Para el firewall de 10.5 Leopard, Apple explica:

Al agregar una aplicación a esta lista, Mac OS X firma digitalmente la solicitud (si no se ha firmado ya). Si la solicitud es posterior modificación, se le preguntará si desea permitir o denegar conexiones de red entrantes. La mayoría de las aplicaciones no se modifican a sí mismas, y esta es una característica de seguridad que le notifica el cambio.

[..]

Todas las aplicaciones que no están en la lista que han sido firmadas digitalmente por una Autoridad de certificación de confianza por el sistema (para el propósito de la firma de código) tienen derecho a recibir conexiones entrantes. Cada aplicación de Apple en Leopard ha sido firmado por Apple y está autorizado para recibir conexiones entrantes. Si desea denegar una aplicación firmada digitalmente primero debe agregar a la lista y, a continuación, denegarla.

En 10.6 Snow Leopard, la última se hizo más explícita (y puede ser deshabilitado) como "permitir Automáticamente que el software firmado para recibir conexiones entrantes. Permite que el software firmado por una entidad de certificación válida para proporcionar servicios accesibles desde la red".

Mac OS X 10.6 Firewall: Automatically allow signed software to receive incoming connections

(En 10.6, el 10.5.1 opciones de "Permitir todas las conexiones entrantes", "Permitir sólo a los servicios esenciales" y "Establecer el acceso a determinados servicios y aplicaciones" se han refundido en una opción para "Bloquear todas las conexiones entrantes", o una lista de aplicaciones permitidas y las opciones de "permitir Automáticamente que el software firmado para recibir conexiones entrantes" y "Activar el modo de stealth". Antes de la 10.5.1 actualización, "Permitir sólo a los servicios esenciales" se llama en realidad "Bloquear todas las conexiones entrantes".)

Para (Apple) las aplicaciones que de alguna manera tienen su firma original roto, este ad hoc de la firma de alguna manera podría no ser persistentes, y se sabe que han causado problemas para configd, mDNSResponder y racoon.

3voto

Kearns Puntos 614

Lo que si puedo decir es Candybar, el icono de personalización de la aplicación utilizada por mucha gente, se rompe la firma digital de al menos el Finder y Dock (y probablemente algunas otras aplicaciones del sistema), ya que los cambios de los archivos de recursos, y, sin embargo, hasta ahora nada ha sido reportado como un problema a causa de esto. Así que un in-the-wild muestreo con núcleo de componentes de sistema operativo que iba a decir - no mucho!

EDIT: aquí está el resultado de la comprobación de mi firma de código para mi Dock en Snow Leopard:

⚛$ codesign --verify --verbose /System/Library/CoreServices/Dock.app/
/System/Library/CoreServices/Dock.app/: a sealed resource is missing or invalid
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-big.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/finder.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/frontline.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_large.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_medium.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-l.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-m.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-sm.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-xl.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png: resource modified

1voto

Kit Roed Puntos 1922

Un ejemplo de firma de código de 'break' de una aplicación:

  • Acceso A Llaveros.la aplicación no permite ver las contraseñas si se detecta que ha sido manipulado.

Fuente: Apple Lista de Correo y Jaharmi de la Irrealidad

0voto

Peter Wagenet Puntos 121

Un poco de la explicación detallada de firma de código en Snow Leopard se proporciona en ars technica, Snow Leopard revisión. Como lo que yo puedo decir, romper el código de la firma de no romper nada. Sin embargo, hará que las aplicaciones a ser que no son de confianza que significa tener que verificar más de sus acciones.

0voto

Ferruccio Puntos 51508

Yo estaba reparando mi Permisos de Disco de el otro día (desde la Utilidad de Discos), y me esta advertencia:

Warning: SUID file "System/.../ARDAgent" has been modified and will not be repaired.

Así que hay algo que va a suceder. No sé lo importante que es eso.

0voto

Hasaan Chop Puntos 2878

La implementación actual de firma de código es bastante debilucho y fue, probablemente, se precipitó fuera de la puerta para el beneficio de los desarrolladores de iPhone. Esperemos que serán obligatorias en algún momento en el futuro, y esperemos que se convertirá en mucho más fácil y más barato que el tiempo también.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: