The good news is that only that last part is required if you would like to try this, now that the commonly used hostnames are published.
Folks can add the full list to a system such as Pi-Hole, and if they notice any hits for the listed servers, they can then route their device traffic through a tool such as Bettercap or Burp Suite in order to discover the offending app(s) and what information they are sending.
You were involved? Why am I not surprised! Thanks for doing your part my friend.
information security research. ceo @ sudo security group (https://verify.ly).
previously: founder of "Chronic Dev Team" responsible for many years of iOS jailbreaking solutions (24kPwn, absinthe, corona, greenpois0n, etc).
https://www.google.com/search?q=will+strafach
http://www.bing.com/search?q=will+strafach
Not to be a smartass (otherwise I’d have used LMGTFY for the URL), but seriously there’s a ton of info simply gathered just by searching his name.
The problem I see with that is that apps could easily start proxying the requests though their own servers.
I could also imagine ways around that. For instance their proprietary SDK could generate the data and cryptographically sign it. Or they could require that app makers set up a special subdomain that points to their ip address. I guess it would only be worth the trouble if enough people care about it.
It is a genuinely tricky challenge from their perspective.
The only app I have found this happen with is Uber:
https://www.businessinsider.com/uber-iphone-app-secret-acces...
1. You can inspect HTTPS traffic by installing a trusted MITM cert on your device - no jailbreaking necessary.
2. You can inspect the libraries provided by the owners of tracking endpoints to see what they collect and transfer.
3. Decompiling app bundles is usually pretty effective, and you can download them straight from iTunes.
Then they'll just move to pinned certs in the apps?
1b. Or you can pin the public key and ignore the certificate altogether, new certificates for the same key can be obtained as necessary.
2. The maximum certificate lifetime is currently 825 days, which, unless you're on another planet, is not "yearly".
3. If you're pinning for an application (not a generic website accessible in browsers) you don't need a certificate from the Web PKI at all, you can mint your own, ignore the lifetime rules, write Emoji in the Common Name field, use a different RSA exponent, the world is your oyster.
1b. You should not reuse private keys between certificates and never for intermediate or root.
2. It's yearly or 2 years for the most common suppliers.
3. Have fun getting your certificate accepted from every device and operating system.
Anyway. I am not saying that it can't be done, I'm saying that there are a lot of challenges to doing it properly and any mistake will make the app completely broken.
You have full control in a native iOS app over which certificates you accept or reject. Which is why the author specified that the trick would work if the endpoint is just for apps.
The first suspicion arises when the app uses more bandwidth if you move it a lot, compared to the app on a stationary phone. I guess researchers can emulate the "moving". And they can virtualize the clock as well. So in principle they can send the app around the world in a matter of seconds and see what the app does on the network.
I’ve only done this for apps not using certificate pinning. It gets more complicated from there.
https://jimshaver.net/2015/02/11/decrypting-tls-browser-traf...
No such thing exists