7 votos

¿Por qué sería una aplicación controlar constantemente/etc/passwd?

Noté hoy que Adobe Desktop Services está monitoreando constantemente / etc / passwd.

introduzca la descripción de la imagen aquí

Sería el punto? Las contraseñas no se almacenan en / etc / passwd, entonces ¿por qué una aplicación monitorearía / etc / passwd? ¿Qué información podrían estar tratando de monitorear?

5voto

user91500 Puntos 6355

De Escritorio de Adobe Servicio no estaba mirando a su /etc/passwd. Apple del sistema de biblioteca.

Apple del sistema de biblioteca, quería saber su nombre de usuario para que pueda encontrar su directorio de inicio. Entonces decidió que la mejor manera de averiguar su nombre de usuario fue a buscar en /etc/passwd. De Escritorio de Adobe Servicio sólo quería saber la ruta de acceso a su directorio home, y (correctamente) que se utiliza el CoreFoundation marco para ello. Es por eso que la llamada aparece en Adobe proceso.

Detalles

En tu captura de pantalla, la Llamada de la entrada dice algo como _fsi_get_user. Este es el símbolo de una subrutina privada en uno de macOS del sistema de bibliotecas, libsystem_info.dylib, que se encuentra en /usr/lib/system.

El público el código fuente de la _fsi_get_user función revela la siguiente lógica:

if (geteuid() == 0)
{
  // […]
}
else
{
  f = fopen(_PATH_PASSWD, "r");
  _fsi_get_validation(si, VALIDATION_PASSWD, _PATH_PASSWD, f, &va, &vb);
  fmt = 1;
}

Mirando el descompilar el código en libsystem_info.dylib (por ejemplo, el uso de la Tolva Desensamblador) confirma que _PATH_PASSWD es de hecho el nombre de archivo /etc/passwd. (El código fuente más abajo en file_module.c también explica por qué hay una llamada a fstat inmediatamente después de la fopen: la aplicación de la _fsi_get_validation hace que la figura fuera de la última fecha de modificación de su /etc/passwd.)

En otras palabras: Adobe no estaba buscando en su archivo passwd; Apple del sistema de biblioteca.

Conectar los puntos

Hay muchas posibles pilas de llamadas que pueden conectarse de Escritorio de Adobe de Servicio el código de la _fsi_get_user función. Un poco de análisis estático sugiere el candidato más plausible sería NSHomeDirectory, una clase de utilidad en Foundation.framework.

Busca en el Escritorio de Adobe del Servicio binario revela que, de hecho, se llama [NSHomeDirectory UTF8String]:

*100032ac4   call   imp___stubs__NSHomeDirectory
*100032ac9   mov    rsi, qword [0x10008a178]  ; "UTF8String"
*100032ad0   mov    rdi, rax
*100032ad3   call   qword [_objc_msgSend_100088350]

La implementación de Apple NSHomeDirectory nos conducirá a /etc/passwd con bastante rapidez. Mi conjetura más probable de la cadena de llamadas a la función sería:

De Escritorio de Adobe Servicio → [NSHomeDirectory UTF8String] ( Foundation.framework) → NSHomeDirectoryForUserCFCopyHomeDirectoryURLForUser ( CoreFoundation.framework) → _CFCopyHomeDirURLForUsergetpwuid ( libsystem_info.dylib, re-exportados a través de libSystem.B.dylib) → si_user_byuid (esto es que Apple decide en tiempo de ejecución de la fuente que se va a utilizar. Por ejemplo, si el ID de usuario es de entre 1 y 499, su /etc/passwd será consultado en lugar de los Servicios de Directorio.) → file_user_byuid_fsi_get_user.

Para estar más seguro, he analizado el binario de Escritorio de Adobe Servicio y como era de esperar, no contiene una sola referencia a /etc/passwd. (No he comprobado si es o no de Escritorio de Adobe Servicio de otros sombra de las cosas, sin embargo.)

Todo el análisis hubiera sido un poco más fácil si hubiera hecho clic en una de las entradas antes de que se creó la captura de pantalla. Su aplicación, a continuación, han demostrado el correspondiente seguimiento de la pila en la parte inferior de la esquina derecha (es la de las líneas, donde dice: Seguimiento de la Pila). Pero bueno, yo tenía un montón de diversión de averiguar lo que ocurría, y he aprendido mucho de esa manera!

Verificación

Para confirmar que mi análisis es correcto, puede que desee haga clic en uno de los /etc/passwd entradas en sus Instrumentos de aplicación y encontrar los términos NSHomeDirectory y file_user_byuid en algún lugar en el seguimiento de la pila.

1voto

Jose Chavez Puntos 645

A partir de la información en la captura de pantalla, el programa no está tratando de "vigilar" el contenido del archivo. Es en lugar de pedir en reiteradas ocasiones por los metadatos acerca del archivo (es decir, no existe el archivo, ¿qué tan grande es, cuándo fue creado, etc).

Sólo el Adobe puede decir por qué se ha codificado su programa de la manera que lo hicieron.

Sin embargo, tenga en cuenta que hay múltiples explicaciones lógicas de por qué hicieron lo que hicieron - que no entraña ningún tipo de "espionaje" o de "infame" de las actividades.

Por ejemplo este particular demonio programa (es decir, un servicio en segundo plano) puede verificar constantemente la existencia de /etc/password con el fin de determinar que se trata de (a) no aislados, y (b) no despojado de sus permisos por lo que está prohibido para examinar ese archivo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X