Are there any applications that can restrict specific applications from accessing data/internet for non-rooted ICS phones? DroidWall - Android Firewall provides this functionality but it requires Root access.
Mobiwol is an Android firewall application that does not require root. They somehow use the VPN interface for firewalling (without actually connecting you to a VPN server).
We've used technology available to us from within the VPN packaging module offered by Android to be able to gain visibility to your applications' network activities
I tried it and it works fine for ICS.
Should be compatible with any device running Android 3.2 or later
The other answers are correct in that setting firewall rules requires root. And if you have root, you could simply deny internet permissions for a specific app without even needing a firewall (Permissions Denied or built-in with a CyanogenMod rom).
However, there is something you can do to partially circumvent the problem. Using Set DNS, you can change your DNS provider for wifi. Set it to something like Open DNS. From there, you can set up rules in DNS to block certain domains. Thus, when on wifi, you could block apps from making requests to a specific domain.
Unfortunately, you can't do this your your cellular connection; In fact, most cell providers override any DNS requests and use their own server no matter what.
If you set up a VPN, you could do the same thing over your cellular connection, but if you have a VPN set up, you could use that server to set up firewall rules anyway.
NoRoot Firewall works as the name suggests. I used it to keep my phone from downloading things by itself. I couldn’t make it persistent on that phone though, so it wouldn’t restart automatically. But while it’s running, it blocks unwanted apps just fine.
Restricting internet access of specific apps isn't possible on a non-rooted device. So, an app doesn't exist.
it's simply not possible for system user to prevent another process from accessing network, it can only be done by root, therefor root is required to do firewall changes to your system.