¿Qué hace la aplicación del servicio de verificación de filtro de intenciones de Google?

Mientras actualizaba aplicaciones en Fdroid (no estoy seguro de cuál porque era una actualización masiva, podría ser cualquiera de Activity Diary, Editor, Simple Calendar), el firewall (AFWall+, moto x 2nd gen rooteado) detectó un intento de comunicarse con una búsqueda whois identificados como servidores de amazon. La aplicación que intentó comunicarse fue el Servicio de verificación de filtro de intención de Google. ¿Alguien sabe para qué sirve esta aplicación? No estoy preguntando qué son los filtros de intención...

Respuestas (2)

Usé APKTool para encontrar los siguientes detalles:

  1. No es un Framework o una Biblioteca Compartida,
  2. No se respalda,
  3. Parece usar algunos permisos personalizados ( INTENT_FILTER_VERIFICATION_AGENT, BIND_INTENT_FILTER_VERIFIER, INTENT_FILTER_NEEDS_VERIFICATION)
  4. Tiene un receptor de transmisión, por lo que presumiblemente esto NECESITA VERIFICACIÓN está sucediendo a nivel del sistema operativo,
  5. Es un Servicio .

Intenté leer el código invertido, pero no tengo experiencia con Smali y, por lo tanto, no hice mucho progreso significativo. A continuación, utilicé AndroGuard para hacer un gráfico de llamadas:

androcg.py --output intent-filter.gml --no-isolated Intent\ Filter\ Verification\ Service_com.android.statementservice.apk

... luego convertí esto en una imagen:

import networkx as nx
import matplotlib.pyplot as plt
ifv = nx.read_gml('intent-filter.gml')
# filter out some system stuff, I think
ifv = ifv.subgraph([a for a in ifv.nodes() if not 'Landroid' in a])
# filter out some java utility type stuff, I think
ifv = ifv.subgraph([a for a in ifv.nodes() if not 'Ljava/lang' in a])
isolates = nx.isolates(ifv)
nonisolates = list(set(ifv.nodes()) - set(isolates))
ifv = ifv.subgraph(nonisolates)
relabeler = {key: key.split()[0].split('/')[-1] for key in ifv.nodes()}
ifvn = nx.relabel_nodes(ifv, relabeler)
ifvn.remove_edges_from(nx.selfloop_edges(ifvn))
nx.draw(ifvn, with_labels=True)
fig = plt.gcf()
fig.set_size_inches(18, 10)
fig.savefig('intent-filter.jpg',dpi=200)

Entiendo esto:

ingrese la descripción de la imagen aquí

Mi sospecha por el nombre del servicio es que efectivamente toma Intenty determina si eso Intentsatisface o no el (¿gramática? de...) Filtro de intención de cada componente exportable declarado públicamente en cada una Manifest.xmlde las aplicaciones del dispositivo. Este gráfico de llamadas parece apoyar mi hipótesis. En particular, URLestá en el punto muerto con una tonelada de bordes salientes, los nodos en el medio del anillo de cosas parecen verificación o filtración de algún tipo (analizar un mensaje extendido nano, mirar una respuesta de red, extraer los datos desde el Intent, obteniendo un puerto web, verificando si un protocolo es válido o no válido ...), y finalmente, los elementos más externos que solo tienen bordes entrantes parecen estar ejecutando elIntentpasándolo a un destino (p. ej., HttpURLConnection ->, NetworkResponse, AndroidAppAsset, ...), o descartándolo como no válido ( InvalidProtocolBufferNanoException, ResistanceFollowRedirects, OutOfSpaceException, ...).

Solo soy un detective aficionado y no puedo afirmar saber realmente qué significa todo esto, pero estos son mis 10 centavos. Creo que el Servicio forma la conexión entre un invocado Intenty todos los IntentFilters en aplicaciones en el dispositivo. Creo que decide qué va a qué aplicación, si algo tiene datos no válidos como en un escenario de fuzzing nulo, y si algo debe ir a la web. Creo que también detiene algún tipo de ataque de redirección infinita. Sospecho que se trata de un esfuerzo por parte del equipo de desarrollo de Android para defenderse de los ataques de comunicación entre componentes (ICC) y las vulnerabilidades de enlace de aplicación/URI. ¡Espero que esto ayude!

Creo que este es un programa de "observador", o un programa de interpretación de idiomas. Podría ser cómo los servicios MMS "adivinan" la próxima palabra que va a usar durante el envío de mensajes de texto y ofrecen sus tres mejores conjeturas como sugerencias.

Para ampliar aún más su uso, este programa es probablemente también el que envía uno de cada cinco mensajes de texto o llamadas telefónicas al FBI/CIA para "observarnos" a todos como posibles "terroristas". X(

En este momento, mis hallazgos son que las llamadas de red de esta aplicación se originan en las aplicaciones instaladas, no en esta aplicación en sí.