Was macht die Intent Filter Verification Service App von Google?

Während der Aktualisierung von Apps auf Fdroid (nicht sicher, welche, da es sich um eine Massenaktualisierung handelte, könnte eine beliebige aus Activity Diary, Editor, Simple Calendar sein), hat die Firewall (AFWall+, moto x 2nd gen rooted) einen Versuch abgefangen, mit einer Whois-Suche zu kommunizieren als Amazon-Server identifiziert. Die App, die zu kommunizieren versuchte, war der Intent Filter Verification Service von Google. Weiß jemand wofür diese App ist? Ich frage nicht, was Absichtsfilter sind ....

Antworten (2)

Ich habe APKTool verwendet , um die folgenden Details zu finden:

  1. Es ist kein Framework oder eine gemeinsam genutzte Bibliothek,
  2. Es wird nicht gesichert,
  3. Es scheint einige benutzerdefinierte Berechtigungen zu verwenden ( INTENT_FILTER_VERIFICATION_AGENT, BIND_INTENT_FILTER_VERIFIER, INTENT_FILTER_NEEDS_VERIFICATION)
  4. Es hat einen Broadcast Receiver, also passiert dieses NEEDS VERIFICATION-Zeug vermutlich auf Betriebssystemebene,
  5. Es ist ein Dienst .

Ich habe versucht, den umgekehrten Code zu lesen, aber ich habe keine Erfahrung mit Smali und habe daher keine großen sinnvollen Fortschritte gemacht. Als nächstes habe ich AndroGuard verwendet, um ein Anrufdiagramm zu erstellen:

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

... dann habe ich daraus ein Bild gemacht:

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)

Ich bekomme das:

Geben Sie hier die Bildbeschreibung ein

Mein Verdacht aus dem Namen des Dienstes ist, dass er effektiv einen nimmt und bestimmt, ob das die (Grammatik? des ...) Absichtsfilter jeder öffentlich deklarierten exportierbaren Komponente in jeder für alle Apps auf dem Gerät erfüllt Intentoder nicht . Dieser Anrufgraph scheint meine Hypothese irgendwie zu stützen. Insbesondere ist der Totpunkt mit einer Menge ausgehender Kanten, die Knoten im mittleren Ring des Zeugs sehen aus wie eine Art Überprüfung oder Filterung (Parsen eines erweiterten Nachrichten-Nanos, Betrachten einer Netzwerkantwort, Abrufen der Daten). aus dem , einen Webport abrufen, prüfen, ob ein Protokoll gültig oder ungültig ist ...), und schließlich scheinen die äußersten Elemente, die nur eingehende Kanten haben, so, als würden sie entweder ausführenIntentManifest.xmlURLIntentIntentB. durch Weiterleiten an ein Ziel (z. B. , HttpURLConnection ->, NetworkResponse, AndroidAppAsset...) oder durch Verwerfen als ungültig ( InvalidProtocolBufferNanoException, ResistanceFollowRedirects, OutOfSpaceException, ...).

Ich bin nur ein Amateurdetektiv und kann nicht behaupten, wirklich zu wissen, was das alles bedeutet, aber das sind meine 10 Cent. Ich denke, dass der Dienst die Verbindung zwischen einem aufgerufenen Intentund allen IntentFilters in Apps auf dem Gerät herstellt. Ich denke, es entscheidet, was an welche App geht, ob etwas ungültige Daten hat, wie in einem Null-Fuzzing-Szenario, und ob etwas ins Web gehen soll. Ich denke, es stoppt auch eine Art Infinite-Redirect-Angriff. Ich vermute, dass dies ein Versuch des Android-Entwicklerteams ist, sich gegen ICC-Angriffe (Inter-Component Communication) und App-Link-/URI-Schwachstellen zu verteidigen. Hoffe das hilft!

Ich denke, das ist ein "Beobachter"-Programm oder ein Sprachinterpretationsprogramm. Es könnte sein, wie die MMS-Dienste das nächste Wort „erraten“, das Sie beim SMS-Versand verwenden werden, und die drei besten Vermutungen als Vorschläge anbieten.

Um seinen Nutzen weiter auszudehnen, ist dieses Programm wahrscheinlich auch dasjenige, das jeden fünften Text oder Anruf an das FBI/CIA weiterleitet, um uns alle als potenzielle "Terroristen" zu "beobachten". x(

Im Moment habe ich festgestellt, dass die Netzwerkaufrufe von dieser App von installierten Apps stammen, nicht von dieser App selbst.