Postepay e quel vizietto di contattare servizi in background

Update 17:30: ho modificato il precedente titolo “Postepay e quel vizietto di contattare server di terze parti” in quanto, finche’ non si fa dello sniffing, non e’ possibile sapere a chi e’ destinato il traffico. Il bello e’ che lo avevo scritto anche nei commenti, ma mi era sfuggito il titolo ed e’ rimasto cosi’ quando l’ho pubblicato ^_^ Ribadisco, ho rimosso l’app perche’ effettuava delle chiamate in background pur non essendo stata avviata e senza un motivo apparente. Grazie ai ragazzi di 01tribe per avermi fatto notare la svista.
———————–

Stavo facendo un po’ sano di debug di una mia app Android quando,casualmente, mi cade l’occhio su queste stringhe nella shell con l’output di adb logcat:

D/dalvikvm(27834): GC_CONCURRENT freed 429K, 6% free 8894K/9412K, paused 26ms+47ms, total 115ms
D/kM      (27834): =============================== RESPONSE START ================================
D/kM      (27834): <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
D/kM      (27834): <ns2:context-response xmlns:ns2="http://moni.01tribe.com/context">
D/kM      (27834):     <ns2:response-header>
D/kM      (27834):         <ns2:status>
D/kM      (27834):             <ns2:status-code>999</ns2:status-code>
D/kM      (27834):             <ns2:status-description>Non e' stato possibile verificare la disponibilita' dei servizi</ns2:status-description>
D/kM      (27834):         </ns2:status>
D/kM      (27834):         <ns2:trace-id>791654851</ns2:trace-id>
D/kM      (27834):     </ns2:response-header>
D/kM      (27834):     <ns2:body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="PivotOutAppCheck"/>
D/kM      (27834): </ns2:context-response>
D/kM      (27834): ================================ RESPONSE END ================================
I/System.out(27834): <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
I/System.out(27834): <ns2:context-response xmlns:ns2="http://www.01tribe.com/context">
I/System.out(27834):     <ns2:response-header>
I/System.out(27834):         <ns2:status>
I/System.out(27834):             <ns2:status-code>999</ns2:status-code>
I/System.out(27834):             <ns2:status-description>Non e' stato possibile verificare la disponibilita' dei servizi</ns2:status-description>
I/System.out(27834):         </ns2:status>
I/System.out(27834):         <ns2:trace-id>791654851</ns2:trace-id>
I/System.out(27834):     </ns2:response-header>
I/System.out(27834):     <ns2:body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="PivotOutAppCheck"/>
I/System.out(27834): </ns2:context-response>
D/EXPIRED (27834): <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
D/EXPIRED (27834): <ns2:context-response xmlns:ns2="http://www.01tribe.com/context">
D/EXPIRED (27834):     <ns2:response-header>
D/EXPIRED (27834):         <ns2:status>
D/EXPIRED (27834):             <ns2:status-code>999</ns2:status-code>
D/EXPIRED (27834):             <ns2:status-description>Non e' stato possibile verificare la disponibilita' dei servizi</ns2:status-description>
D/EXPIRED (27834):         </ns2:status>
D/EXPIRED (27834):         <ns2:trace-id>791654851</ns2:trace-id>
D/EXPIRED (27834):     </ns2:response-header>
D/EXPIRED (27834):     <ns2:body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="PivotOutAppCheck"/>
D/EXPIRED (27834): </ns2:context-response>
D/fB      (27834): Siamo spiacenti. Non è stato possibile effettuare l'operazione richiesta. Si prega di riprovare più tardi

Mmmm, insospettito da un messaggio del genere, inizio a chiedermi cosa possa averlo generato e, scorrendo il log, trovo poco sopra quest’altro messaggio:

D/kM      (27834): +++++++++++++++++++++++++++++++ REQUEST START +++++++++++++++++++++++++++++++
D/kM      (27834):<?xml version="1.0" encoding="UTF-8"?>
<context:context-request xmlns:context="http://www.01tribe.com/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <context:request-header>
    <context:trace-id>791654851</context:trace-id>
    <context:channel>mobile</context:channel>
    <context:workflow-name>appCheckPublicWorkflow</context:workflow-name>
    <context:action-name>ActionAppCheck</context:action-name>
    <context:user-agent>Android</context:user-agent>
    <context:language-code>it</context:language-code>
    <context:country-code>IT</context:country-code>
  </context:request-header>
  <context:body>
    <PivotInAppCheck>
      <appName>postepay</appName>
      <appVersion>1.2.3</appVersion>
    </PivotInAppCheck>
  </context:body>
</context:context-request>
D/kM      (27834): ++++++++++++++++++++++++++++++++ REQUEST END ++++++++++++++++++++++++++++++++

Postepay app on Android E scopro che l’artefice di tutto questo e’ l’applicazione Postepay, realizzata da 01tribe.

Ora, de gustibus, ma a me app che mandano richieste in background a servizi senza dirmi niente, senza essere in esecuzione e che richiedono permessi anche un po’ sospetti (tipo Phone calls, Your social information) anche se poi vengono tutti usati legittimamente dentro l’app, a me queste app mi provocano una reazione immediata: disinstallazione.

Certo, potrei controllare con uno sniffer il traffico realmente scambiato (ammesso di riuscire a riprodurre questa situazione) e verificare che sia innocuo per la mia privacy, ma in questo momento ho altro da fare, quindi bye bye Postepay, io ho installato la tua app, non capisco perche’ devi contattare server di un sito di cui non so niente in background. E per fare cosa poi?

4 Comments

  1. Beh se volevi il saldo della tua postepay senza fare richieste ad alcun servizio … Chiedi una magia ;)

    Prova a vedere anche a che indirizzo sono i servizi :) forse poi sarai più tranquillo!

  2. Ti ringrazio per la risposta. Il problema è che non ho mai scritto che volevo controllare il mio saldo, ma ho anzi scritto che l’app era chiusa (e intendo proprio mai lanciata dopo l’ultimo riavvio del dispositivo).
    Inoltre, se le mie credenziali e il mio saldo passano su una connessione http e quindi non sicura, seconda buona ragione per disinstallare l’app. Passando poi anche per servizi di terze parti, terza buona ragione.

  3. Appcheck è scritto :) forse è un check di sicurezza generico. Non vedo tuoi dati nei log :)

    Perché dici terze parti? e da cosa hai evinto che sia http e non https?

  4. Ancora grazie per le risposte.

    Senza fare sniffing, purtroppo non posso sapere quali dati manda la chiamata in questione e la dicitura appcheck nell’xml non significa potenzialmente nulla. Se poi dati sensibili fossero pure buttati nel log, questo si che sarebbe ancora più grave! :)

    Riguardo agli “altri 2 buoni motivi per…” che ho scritto, erano riferiti al tuo commento in cui mi dicevi di controllare a che servizio erano fatte le chiamate. Senza sniffing, non posso saperlo, e posso solo vedere dal testo del log che ci sono diversi riferimenti a 01tribe. Se quindi fossero veramente fatti verso i vostri server, la cosa non mi piacerebbe per niente. Ma sono al max supposizioni, niente di più.

    Comunque il motivo per cui ho disinstallato l’app è che ha fatto queste chiamate senza essere in esecuzione. Non è un comportamento che mi piace, dato che lo trovo ingiustificato per un’app di questo tipo. Come scrivevo, de gustibus :)

    Se vuoi aiutarmi a chiarire i dubbi, o magari a correggere qualche castroneria che ho scritto, sono tutto orecchie.

Leave a Reply