Speeding up webbrowsing by blocking advertisers and trackers

Sophos UTM offers mighty tools to block a huge number of advertisers, webtrackers, analyzers and other stuff running in the background you usually do not want to have for traffic, performance, privacy or annoyance reasons.

However - a warning beforehand. Blocking those advertisers, trackers, adblock detectors etc. may brick specific sites, or limit functionality in unexpected ways. But for me it works quite well, maybe you will need some finetuning by allowing some services for some reason (or add more to block more). So don´t blame me, if those steps breaks your favourite sites Big Smile

Technically you have lot of features to use. Mainly those are:
- URL Filter / Categorization
- Application Control
- Manual recategorization of some annoying "Internet Services"
- Manual Blacklists (where you shouldn't have to add a lot anymore ;o)

The theory behind speedup of webbrowsing due blocking annoyances is simple. Marketing people of every companiy loves to track and analyze the usage of their website using webstats, trackers etc. Free Websites love to add ads to their sites to generate revenue.

Basically I'm not against decent use of ads, as it helps to finance free content in the web (or free apps on your phones, tablets etc.). Sadly there is no more strict border between "acceptable ads" and annoying the user, because a website becomes overloaded by ads. I don't even start to talk about those free apps/games used by my children, where always and everywhere pops up those in-app ads, and I have to take care, that the don't open them or buy by accident something. In the past many years ago you had a simple ad banner in the top, which was acceptable for me. Today that crap is embedded everywhere within websites, which annoyes me - Facebook is a nice "bad example". I hate facebook in the meanwhile (besides of all other privacy issues with it's regular privacy changes).

However: Every website opens in the background connections to all those trackers, analyzers, advertiser content servers, which slows down websurfing, as:
a) A webbrowser uses a limited number of concurrent connections to a webserver. Each connection which downloads "unnecessary" content will delay the download of the wanted, useful content
b) Unwanted stuff generates additional traffic and load on the UTM
c) It those trackers, analyzers or advertisers for some reason are slow, they will put additional delay to your surfing experience, how fast a website is loaded and displayed in the web browser

Here's a small guide to get rid of a lot of those trackers, analyzers and advertisers. I still use in my webbrowsers additional adblocker apps, which will play as "afterburner" and rip the remaining annoyances out of the websites, but with mentioned methods it becomes already quite performant and ad free also without such "afterburners" ;o)

Requirements:
- The UTM's Web Proxy has to be used
- Application Control has to be used
- As some ads and trackers work via HTTPS, HTTPS scanning will enhance filtering - especially within HTTPS websites, but the newly introduced "URL filtering only" https scanner in UTM9.2 also already should do lot good for you too ;o)

First - Let's start with the easy part:
- Block with the URL filter in the webproxy the "web ads" category. Already does lot of filtering for you...

Second - little more time required:
Build a new block rule in the application control. All the applications you want to block are found in the category "web services". Sadly there is no separate category for advertisers, trackers and analyzers - I openened a feature request for that, feel free to add your votes here ==>
Enhance Application Control App Categorization

However, there are also other services in that category as CNET or Mozilla download servers, CDN's as Akamai and other stuff you may not want to block, so you have to crawl through that "web services" list by yourself and check in the info/description of the application, if it's really a tracker, analyzer or advertiser. You finally may find >150 such applications which fit into those categories (didn't count them exactly). So create a block rule for applications (not groups), filter for "web services" and search for following terms, which should bring up most of those entries fast:

"ads"
"track"
"analy"

But always check the application description, as not all advertisers have a speaking "ads" in the name as example, and otherwise there are also allowed sites as "CNET" or "MOZILLA", which you may not want to block ;o))
Advertiser descriptions usually describe something like that here: "Visiting websites that use spoke (formerly Telecom Express) to generate ads." or "Visiting websites that use Webtrends to generate ads and collect user analytics."

Third - finetuning by recategorizing unwanted domains using the UTM9.2 "Websites" option to regategorize such site locally from category xyz to "web ads"
This can be done by yourself by monitoring ad traffic - in my case for example especially from my mobiles apps in-app ads. This list below may not fit for everyone, but it's a good start. my recategorized list of domains ("incl. subdomains" checked too) is:

EDIT 07-10-2014 - Added more entries to list:


4seeresults.com
ad.leadboltads.net
adadvisor.net
addthis.com
ads.mopub.com
adserver.idg.de
amazon-adsystem.com
analytics.twitter.com
appads.com
applifier.com
applovin.com
appsdt.com
appsher.com
appspot.com
bestofmedia.com
brightcove.com
bullbitz.com
crittercism.com
crowdscience.com
data.flurry.com
deployads.com
disqus.com
dsply.com
eloqua.com
etracker.com
etracker.de
flurry.com
formalyzer.com
gigya.com
glpals.com
google-analytics.com
googletagservices.com
graph.facebook.com
guruads.de
iadsdk.apple.com
inmobi.com
insightera.com
kissmetrics.com
kochava.com
kraken-measurements.s3.amazonaws.com
localytics.com
maxymiser.net
meetrics.net
msads.net
nmetrics.samsung.com



And those here below should be imported as URLs without "including subdomains"


m.youtube.com/_get_ads
csi.gstatic.com/csi
apps.skype.com/adcontrol/
api.skype.com/configuration/sections/ads-in-client



Fourth - Manual Blacklists
If ads or other annoyances are not domain based delivered, but by a path within a generally allowed URL, you may create manual blacklist entries for those specific paths in the web proxies filteractions. I didn't use it up to now - but keep it in mind if you have to...

Hope this helps one or the other UTM admin to speed up things even more and get rid of some annoyances in webpages. I'm happy about every feedback here in that thread, or about every vote in the feature portal for those "new" application control categories "web advertisers", "web trackers" and "web analyzers", which would ease things to block such applications quickly.

However - my experience by blocking those annoyances is quite positive up to now, and I hope lot of other people also can benefit by this mighty featureset to optimize their surfing experience.

/Sascha Cool

BTW:
Troubeshooting also shouldn't be too hard, as every block will be logged in the http.log, and the method used to block is also mentioned in the log as:
"web request blocked, forbidden category detected" ==> URL Filter Web Proxy
"web request blocked, forbidden application detected" ==> Application Control


2014:02:22-14:45:33 asg01 httpproxy[18869]: id="0066" severity="info" sys="SecureWeb" sub="http" name="web request blocked, forbidden application detected" action="block" method="GET" srcip="192.168.10.208" dstip="" user="" statuscode="403" cached="0" profile="REF_HttProContaLanclNetwo4 (LAN_CLI)" filteraction="REF_LmvZxpuYeo (LAN_STD)" size="3205" request="0x14e8aee0" url="www.google-analytics.com/ga.js" exceptions="" error="" authtime="0" dnstime="0" cattime="0" avscantime="0" fullreqtime="1224" device="0" auth="0" country="United States" application="GOOGANAL"
2014:02:22-14:45:33 asg01 httpproxy[18869]: id="0060" severity="info" sys="SecureWeb" sub="http" name="web request blocked, forbidden category detected" action="block" method="GET" srcip="192.168.10.208" dstip="" user="" statuscode="403" cached="0" profile="REF_HttProContaLanclNetwo4 (LAN_CLI)" filteraction="REF_LmvZxpuYeo (LAN_STD)" size="3278" request="0x1d3bc880" url="20minde.wemfbox.ch/.../home
  • This should be made a sticky.
  • I actually have a very large text file I am editing that contains thousands of web ad domains.  I got it from searching about changing hosts files on Android devices, but there is a lot of editing to do for the UTM to take it and use it properly.  I can post the text file when I am finished with it, that would help people block all the annoying garbage.
  • In reply to Amodin:

    I actually have a very large text file I am editing that contains thousands of web ad domains.  I got it from searching about changing hosts files on Android devices, but there is a lot of editing to do for the UTM to take it and use it properly.  I can post the text file when I am finished with it, that would help people block all the annoying garbage.


    Thank you for posting the text file when you are finished it wiil be great to block all the thousands of web ad domains annoying garbage.

    I can editing if you need help.
  • In reply to Amodin:

    I actually have a very large text file I am editing that contains thousands of web ad domains.  I got it from searching about changing hosts files on Android devices, but there is a lot of editing to do for the UTM to take it and use it properly.  I can post the text file when I am finished with it, that would help people block all the annoying garbage.


    For a hosts file this may work. Better use Adblock Plus on Android, which works quite well...I'm personally using it on all my androids since months...

    However - be careful how you want to import such a huge list into UTM. Don't try to create it as manual blacklists...I've tried that once in the past by manually migrating parts of the easy blocklist of adblock into UTM. As you may expect - regex matching is compared other URL filtering methods as CFFS or SXL categorization lookups - way slower and more resource intensive. In older UTM versions I had massive performance hit already after maybe 50 manual expressions - I don't want to guess, what you may expect with thousands of entries (maybe going to drink a coffee or two) until a webpage opens Big Smile

    If I remember right, there are some regex matching optimizations in UTM9.2, but I wouldn't try it either this way.

    If your list contains domains only, you may recategorize such domains in the "websites" part of the UTM9.2 to web ads, if they are categorized different - those local overrides should be quite efficient compared to that regex matching stuff.

    And also if it's lot of work - I'd test those domains in the list with the policy tester for their categorization, and if a domain is already categorized as "Web Ads", leave it that way...it's surely the fastest method. However - a domain list should be possible to import in one step into that "websites" part to recategorize...so it's definately worth a try Wink
  • For blacklist performance, it is dependent on how well you write your RegEx.

    The recommended and most efficient approach is to use the Website re-categorization feature, which also allows for bulk add.  Warning - bulk delete is very very slow.
  • When migrating customers from an approach with white&blacklists, my first step is to login to TrustedSource and get categorizations 100-at-a-time at https://www.trustedsource.org/en/feedback/url?action=checklist&sid=30D9A366835CC574379DC5032FFDF685.  Most of my customers don't have anything in black/whitelists.

    Cheers - Bob
  • Do I use Application Filter or Dynamic Filtering in the "Control By" field?

    Also could someone share their pre-compiled larger list?

    Here is mine:


    ^https?://([A-Za-z0-9.-]*\.)?clicks\.beap\.bc\.yahoo\.com/
    ^https?://([A-Za-z0-9.-]*\.)?secure\.footprint\.net/
    ^https?://([A-Za-z0-9.-]*\.)?match\.com/
    ^https?://([A-Za-z0-9.-]*\.)?clicks\.beap\.bc\.yahoo(\.\w{2}\.\w{2}|\.\w{2 ,4})/
    ^https?://([A-Za-z0-9.-]*\.)?sitescout(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?appnexus(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?evidon(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?mediamath(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?scorecardresearch(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?doubleclick(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?flashtalking(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?turn(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?mathtag(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?googlesyndication(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?s\.yimg\.com/cv/ae/us/audience/
    ^https?://([A-Za-z0-9.-]*\.)?clicks\.beap/
    ^https?://([A-Za-z0-9.-]*\.)?.doubleclick(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?yieldmanager(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?w55c(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?adnxs(\.\w{2}\.\w{2}|\.\w{2,4})/
    ^https?://([A-Za-z0-9.-]*\.)?advertising\.com/
    ^https?://([A-Za-z0-9.-]*\.)?evidon\.com/
    ^https?://([A-Za-z0-9.-]*\.)?scorecardresearch\.com/
    ^https?://([A-Za-z0-9.-]*\.)?flashtalking\.com/
    ^https?://([A-Za-z0-9.-]*\.)?turn\.com/
    ^https?://([A-Za-z0-9.-]*\.)?mathtag\.com/
    surveylink.yahoo.com
    ^https?://([A-Za-z0-9.-]*\.)?surveylink/
    ^https?://([A-Za-z0-9.-]*\.)?info\.yahoo\.com/
    ^https?://([A-Za-z0-9.-]*\.)?ads\.yahoo\.com/
    ^https?://([A-Za-z0-9.-]*\.)?global\.ard\.yahoo\.com/
    googlesyndication.com
  • I use the suspicious web sites to block ads....it does the job well.
  • In reply to grammatonclerick:

    Do I use Application Filter or Dynamic Filtering in the "Control By" field?

    Also could someone share their pre-compiled larger list?

    Here is mine:


    ^https?://([A-Za-z0-9.-]*\.)?clicks\.beap\.bc\.yahoo\.com/
    .....


    Hello grammatonclerick

    I use the Application Filter. dynamic sadly doesn't work, as trackers and advertisers don't have a own group, and they have to be picked manually out of the "internet services" group.

    I've seen some advertisers and trackers in your manual list as doubleclick, scorecardresearch etc., which also are available as Applications. Or otherwise, if it's a pure advertiser/tracker domain, i've simply changed their categorizaton in the web proxy from xyz to "web ads", which I block. Should be faster and less resource demanding to any manual regex.

    /Sascha
  • I use adguard.com's pop up blocker to get rid of data trackers and online advertisers.
  • Is there a way to stop canvas fingerprinting with the utm?
  • In reply to Revan:

    Is there a way to stop canvas fingerprinting with the utm?


    Please see the discussion at 
    https://community.sophos.com/products/unified-threat-management/astaroorg/f/55/t/46413

    Barry
  • In reply to Revan:

    Is there a way to stop canvas fingerprinting with the utm?


    Hi Revan

    As far as I understood that technique (little googling delivers lot of informations to that matter), I would assume, that a specific recognition of Canvas Fingerprinting may be a difficult matter or even impossible to completely detect and handle on a gateway, as it seems to  use legitimate html5 techniques in a "creative way" to fingerprint a system unigue behaivour by rendering hidden graphics or texts.

    At least my in this thread explained approach to block advertisers and trackers may help in todays situation, as AddThis seems to be the inventor of that technique (and also the mainly used one in most tested websites according to many resources in the www), and it's listed and possible to block with that guide as adverstiser or tracker in the application control. So my (unproven) theory is, that blocking AddThis also should block their fingerprinting (If you can't block the packet, block at least the bad guy trying to deliver it...).

    But if some sites start to deliver this techniques/scripts from directly their own domain instead embedded external tracker scripts, we users in general may get a hard time to fight them. At least there seems to be first browser addons (and in-browser techniques to avoid such bad stuff) in development to defend against it in general. If this will become a real issue/concern in the future, and blocking the nosy guys delivering it will not help anymore, I hope too that Sophos maybe will figure out some techniques for their products to protect against canvas fingerprinting (as there are sitting a lot of smart devs and researchers around which also figured out lot of other stuff in the past Wink)

    EDIT: Nah ! Just saw, Barry linked to another thread discussing that issue too while I was typing that text above ;o))
  • Hi all.
    Great details.
    Is there a way to block youtube adds... like add blocker for google chrome..

    thnx
  • In reply to xianx:

    Just undid a lot of work, because of games. Some games require adblocking to be disabled otherwise they won't download eg ea sites.
    Still can't get the games to work through the transparent proxy even with Sacha's information, that could be the problem.

    Ian