How to track network requests?

Hello!

I am part of a research team who need advice on how to track and intercept network requests from a device.

More specifically, we are interested in collecting the websites the research participants have tried to access. We want something like what YouGov does with their Pulse App.

Also, is it possible to implement this without having to rely on an external server that acts as a intermediary?

How do we achieve this? We'd appreciate a detailed response with helpful links to how to implement it. Thank you very much for your time.

Replies

On what platform? iOS?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

@eskimo I need to implement this for both iOS and macOS. Thanks.

Doing this is tricky, especially on iOS.

Are these research participants using their own devices?

Are these research participants part of your organisation, like employees or students? Or members of the public?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

@eskimo the participants will be volunteers from the public that consent to their network data being collected over a period of 2-3 months

the participants will be volunteers from the public

Given that, I don’t see any way to achieve your goal, at least on iOS.

iOS has a general policy that highly intrusive network monitoring [1] can only be deployed to supervised devices [2]. If these users are using their own devices then they can’t be supervised.

Folks often try to get around this privacy policy by abusing the packet tunnel provider mechanism. This generally doesn’t end well, which is why we published TN3120 Expected use cases for Network Extension packet tunnel providers.

Moreover, even if you manage to get yourself into a privileged network position where you can see all traffic, that doesn’t let you “track and intercept network requests from a device”. Apple is in the process of rolling out more and more on-the-wire privacy features — things like iCloud Private Relay — that are specifically designed to prevent someone in a privileged network position from being able to see what the user is doing.


All of the above is from a networking perspective. There may be other options in the Safari extensions space. I’m not an expert on that technology, so I can’t offer any answers there. If you want to explore that, I recommend that you start a new thread with appropriate tags (Safari, Safari Extensions, and so on).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] This includes NE content filters but also things like the global HTTP proxy payload in a configuration profile.

[2] There are some exceptions to this for content filters. For the details, see TN3134 Network Extension provider deployment. However, I don’t think any of those exceptions will help you.