Chrome 56 quietly added Bluetooth snitch API

While the research – "Most Websites Don't Need to Vibrate: A Cost-Benefit Approach to Improving Browser Security" – which you can find here at arXiv, focuses on Firefox, its findings are relevant across the board.

Graduate computer science student Peter Snyder and colleagues Cynthia Taylor and Chris Kanich structure the paper as a cost-benefit analysis of having 74 APIs with which browser authors need contend. On the benefit side, they measured the proportion of websites that use a feature (thereby making browser support important); on the cost side, they tried to measure the security exposure a feature created.

The “cost” side takes a couple of characteristics into account, including the number of historical CVEs associated with a feature (since that hints that it's hard to code to the API securely); and the number of API entry points and lines of code that are associated with a feature, since that indicates more complex code.

Their headline finding should chill browser authors:

“Blocking 15 of the 74 standards avoids 52.0 per cent of code paths related to previous CVEs, and 50.0 per cent of implementation code identified by our metric, without affecting the functionality of 94.7 per cent of measured websites.”

A search of the Mitre CVE (Common Vulnerabilities and Exposures) database yielded 1,554 CVEs for Firefox since 2010, a decent enough sample (Chrome has had 1,523 in the same period), and 175 of those related to implementations of 39 Web APIs, with 13 related to multiple standards.

The researchers crafted a browser extension to block APIs based on the risk measurement, and this is how things turned out:

Blocking risky APIs breaks hardly any websites,
but makes the user more secure.

+Comment

The results come as little surprise to Vulture South, since over the last couple of years, we've taken a growing interest in the privacy implications of APIs that serve little purpose but to profile users for advertisers.