Wat niet helemaal goed duidelijk wordt uit het nieuwsartikel, is dat het gaat om de wijze waarop deze geïmplementeerd worden. Het probleem zit hem in het feit dat developers apps gecompileerd aanleveren, waardoor ze het idee hebben dat hun data veilig is. Deze binaire data is echter tot op zekere hoogte prima te decompileren, waardoor gebruikte keys en dergelijke vrijkomen.
Het onderzoekt maakt onderscheidt tussen twee groepen. De tokens van Amazon en die van OAuth diensten. De diensten van Amazon worden gebruikt voor clouddiensten, waaronder online opslag en on-line rekenkracht bijvoorbeeld. Hiervoor is een API van Amazon beschikbaar. Duidelijk is gedocumenteerd hoe je verschillende keys aan kan maken met verschillende rechten. Op het moment dat een app alleen on-line data uitleest, is het dus niet nodig dat jij je applicatie voorziet van een rootkey, die volledige controle biedt.
OAuth diensten zijn de inlogschermpjes die af en toe in apps verschijnen. Denk hierbij bijvoorbeeld aan het inloggen op Facebook om je spelletje aan je Facebook te koppelen. Of het inloggen op Dropbox om een applicatie on-line data op te laten slaan. Dit is een volledig veilig systeem. In het onderzoek wordt echter de wijze van implementatie bekritiseert door credentials direct in de code in te bakken.
Hieronder nog wat extra info direct uit de bron:
Amazon Web Services
AWS provides various cloud computing resources that can be purchased by developers using AWS accounts and accessed by the developers' applications using AWS tokens associated with the respective AWS accounts. [...] we found 308 unique AWS tokens from the June 22, 2013 snapshot. [...] We found 94% of the tokens were still valid five months later. [...]
Amazon provides documentation describing best practices and a variety of ways to configure AWS tokens with different levels of privilege [2]. Despite this documented exibility, we were surprised to and that even though some developers only intended their applications to use AWS tokens to access AWS Simple Database or Flexible Payment Services, the tokens embedded in the applications were rootlevel credentials providing access to all the other AWS services, including creating and shutting down Elastic Compute Cloud (EC2) instances or freely accessing S3 data.
OAuth Tokens
Applications often request access to users' data to perform actions on their behalf. The standard protocol used by service providers to give access to users' data is OAuth. [...]
When implemented correctly, the OAuth authentication protocol never reveals the tokens associated with a client's OAuth credentials. The tokens are stored on the third-party's server where it can be properly safeguarded. Requests can then be proxied through the third-party's server where the tokens reside. Unfortunately, developers often adapt this protocol to mobile applications by embedding OAuth tokens directly into their mobile applications without realizing their credentials are easily compromised through decompilation. Once an attacker acquires a secret OAuth token, a wide range of attacks can be performed as the targeted third-party application is open to impersonation. For example, an attacker can perform denial of service attacks on rate limited services, access and modify application settings, expose private user information, and launch phishing attacks in an attempt to get users' access tokens.
edit:
Even voor de duidelijkheid: Jij als eindgebruiker hebt niets te vrezen voor je inloggegevens, hooguit jouw data die je vrij hebt gegeven aan een app en de kans op fishing attacks. Het zijn zogezegd de inloggegevens van de developers tot bepaalde diensten, die op straat liggen. Daarnaast staat dit alles ook geheel los van het feit dat er zoveel "clone-apps" zijn.
[Reactie gewijzigd door DEVoTi0N op 31 juli 2024 02:29]