Applications permissions are a widespread coarse-grained way to limit applications' access to sensitive information, for example sound recorded by microphone, and valuable resources, like the battery, internet traffic and account balance. They are implemented in major state of the art PDA operation systems (Android, iOS, Windows), web browsers and web services providing an OAuth API.
system providers, using trilateration to nearby wireless networks, though it is possible to implement providers utilising other sensors, like microphone, accelerometer, gysoscope and barometer and an online DB of ambient measurements
biometric sensors used for identification and authentication, like fingerprint sensor
biometric sensors used for medical and fitness purposes, like heart rate sensor
unfortunately, other sensors, such as gyroscope, accelerometer, barometer, temperature, light, proximity, voltmeter, ampermeter are usually not behind permissions, even though they pose major privacy and security risks.[3][4][5][6][7][8] This can be partially fixed with additional software, like XPrivacy.
authentication tokens (i.e. OAuth ones) of web services stored in system storage for sharing them between apps
accessing dedicated interfaces registered by other apps, like
contacts
calendars, events and appointments
superuser access on rooted devices (not quite a permission since it is used only for showing in GUI that the app uses root, lot of apps using su don't have this permission)
push-services interfaces
On Android <6 permissions are not usually revokable, though there is AppOps mechanism in some OSes (it's usually present in vanilla Android and aftermarket OSes, but usually removed in stock OSes) allowing to deprive apps access to some personal data. In Android >=6 apps can request permissions in run time, but this requires app developer collaboration (developer is free to use non-runtime permissions only and the app will likely crash if permission is not granted and the ones not granting the permission is not a target audience of an app) [9] and some permissions marked as permissions in previous versions of the OS, like internet access, are non-revocable and are not even show on apps installation. This can be fixed with XPrivacy.
On iOS usage of permissions is regulated using the guidelines.[10]
In Android ecosystem usage of permissions is often abused in order to spy on users, many applications require as much permissions as they can and monetize by integrating libraries by advertising networks, showing ads and spying on users to bstter target them.
WebPermissions
WebPermissions is a permission system for web browsers. When a web application needs some data behind a permission, it must request it first. When it does it, a user sees a window asking him to make a choice. The choice is remembered, but can be cleared lately.
audio capturing devices,[15] like soundcards, and their model names and characteristics
video capturing devices,[15] like cameras, and their identifiers and characteristics
Analysis
In some cases permissions are implemented in 'all-or-nothing' approach: a user either has to grant all the requested permissions to an app, or be unable to use the app. Even if a user can revoke a permission, the app can blackmail a user by refusing to operate, for example just crashing. There are some solutions, such as XPrivacy, which instead of providing access to the requested data instead of throwing an exception and crashing an app returning disinformation to make an app operate as if the permission was granted. It is also possible to use static analysis to analyze the requested permissions.[16]
↑Michalevsky, Yan; Nakibly, Gabi; Schulman, Aaron; Veerapandian, Gunaa Arumugam; Boneh, Dan (2015-02-10). "PowerSpy: Location Tracking using Mobile Device Power Analysis". arXiv:1502.03182 [cs.CR].
↑Mosenia, Arsalan; Dai, Xiaoliang; Mittal, Prateek; Jha, Niraj (2017). "PinMe: Tracking a Smartphone User around the World". IEEE Transactions on Multi-Scale Computing Systems: 1. doi:10.1109/TMSCS.2017.2751462. ISSN2332-7766.
↑Hua, Jingyu; Shen, Zhenyu; Zhong, Sheng (2015-05-22). "We Can Track You If You Take the Metro: Tracking Metro Riders Using Accelerometers on Smartphones". arXiv:1505.05958 [cs.CR].
↑Guri, Mordechai; Daidakulov, Andrey; Elovici, Yuval (2018-02-07). "MAGNETO: Covert Channel between Air-Gapped Systems and Nearby Smartphones via CPU-Generated Magnetic Fields". arXiv:1802.02317 [cs.CR].