Detect user agents with fake version numbers

There are lots of user agents going around which have fake version numbers, the user agent parser detects and warns about these.

Chrome user agents with fake version numbers

Recently we discovered that our user agent database has been filling up with millions of new Chrome user agents, all of which had been "seen" exactly once. On closer inspection, it turned out that the Chrome version number given was completely fake; made up by a random number generator.

So while the structure of the user agent resembled a normal Chrome user agent, it became obvious that something was sending faked version numbers.

We have developed a way to identify these fake Chrome version numbers in user agents and warn you about them. If we find them in the API Parse requests you send (or the batch parse requests), we will set is_weird to true and set the is_weird_reason_code to fake_version_number.

Identifying fake Chrome version numbers in user agents

To give you an example, here's a sample of records from the database with the problem:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_6) AppleWebKit/531.2.0 (KHTML, like Gecko) Chrome/38.0.884.0 Safari/531.2.0 Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_5) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/35.0.806.0 Safari/533.2.0 Mozilla/5.0 (X11; Linux i686 AppleWebKit/536.2.1 (KHTML, like Gecko) Chrome/37.0.875.0 Safari/536.2.1 Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/535.0.0 (KHTML, like Gecko) Chrome/37.0.881.0 Safari/535.0.0 Mozilla/5.0 (Windows; U; Windows NT 5.3) AppleWebKit/536.0.2 (KHTML, like Gecko) Chrome/36.0.866.0 Safari/536.0.2 Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/531.1.1 (KHTML, like Gecko) Chrome/36.0.866.0 Safari/531.1.1 Mozilla/5.0 (Windows; U; Windows NT 6.3) AppleWebKit/538.2.0 (KHTML, like Gecko) Chrome/36.0.877.0 Safari/538.2.0 Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/535.0.0 (KHTML, like Gecko) Chrome/39.0.844.0 Safari/535.0.0 Mozilla/5.0 (Windows; U; Windows NT 6.2) AppleWebKit/534.1.1 (KHTML, like Gecko) Chrome/37.0.876.0 Safari/534.1.1 Mozilla/5.0 (Windows; U; Windows NT 5.3) AppleWebKit/532.0.0 (KHTML, like Gecko) Chrome/36.0.824.0 Safari/532.0.0 Mozilla/5.0 (Windows; U; Windows NT 5.3) AppleWebKit/533.0.0 (KHTML, like Gecko) Chrome/36.0.826.0 Safari/533.0.0 Mozilla/5.0 (Windows; U; Windows NT 6.0) AppleWebKit/532.0.2 (KHTML, like Gecko) Chrome/38.0.841.0 Safari/532.0.2 Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/538.1.2 (KHTML, like Gecko) Chrome/36.0.820.0 Safari/538.1.2 Mozilla/5.0 (Windows; U; Windows NT 6.0) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/35.0.837.0 Safari/532.2.0 Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/536.2.1 (KHTML, like Gecko) Chrome/36.0.826.0 Safari/536.2.1 Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/535.1.0 (KHTML, like Gecko) Chrome/36.0.854.0 Safari/535.1.0 Mozilla/5.0 (Windows; U; Windows NT 5.3) AppleWebKit/536.2.0 (KHTML, like Gecko) Chrome/37.0.836.0 Safari/536.2.0 Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.2 (KHTML, like Gecko) Chrome/35.0.858.0 Safari/538.0.2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2962.81 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2915.24 Safari/537.36 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2920.37 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2764.84 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2814.60 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2628.70 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2880.94 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2767.81 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2802.65 Safari/537.36 Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2850.31 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2658.3 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2689.56 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2656.85 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3952.0 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2782.55 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.7.720.346 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.15.9828.264 Safari/537.36 Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2921.221 Safari/537.36 Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.3054.205 Safari/537.36 Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2676.72 Safari/537.36 Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2881.15 Safari/537.36 Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2915.93 Safari/537.36 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2911.99 Safari/537.36 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2927.96 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2804.21 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2855.55 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2656.80 Safari/537.36 Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2851.49 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2765.8 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.87.3279.373 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2889.51 Safari/537.36 Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2630.57 Safari/537.36

At first glance, they all look fairly reasonable, but if you actually search the web for any of those Chrome versions (eg "Chrome 36.0.824.0") you'll see that it's not a real version number - there are no release notes from Google/Chromium about it, there are no bug reports, blog posts, download links or anything like that.

Our user agent parser maintains a list of all known Chrome Desktop versions which were released (including betas and development versions) and checks the Chrome version numbers from user agents against them. If we find that the version supplied is invalid, we mark it as weird.

What your system decides to do with this information is entirely up to you and your business logic, but you have the ability to find out if the version is real or not; this can be helpful in spotting bots that change their user agents or visitors with user agent randomizing extensions.

Get started now

The API is free to use and easy to set up, so why not get started right now.

Do you have a question? Get in touch! We'd love to help you.