|Click here for more articles.|
According to Duo Security, the vulnerability rested in the way application-specific passwords (ASPs) were used for applications that do not support logins using two-step verification. Designed with an eye towards improving account security, two-step verification provides users with a special code via text message or phone call when they attempt to log on to their Google account. The user will then have to enter that code as well in order to log in.
"Generally, once you turn on 2-step verification, Google asks you to create a separate Application-Specific Password for each application you use (hence “Application-Specific”) that doesn’t support logins using 2-step verification," blogs Adam Goodman, principal security architect at Duo Security. "Then you use that ASP in place of your actual password. In more-concrete terms, you create ASPs for most client applications that don’t use a web-based login: email clients using IMAP and SMTP (Apple Mail, Thunderbird, etc.); chat clients communicating over XMPP (Adium, Pidgin, etc.), and calendar applications that sync using CalDAV (iCal, etc.)."
In recent versions of Android and ChromeOS, Google has included in their browser an auto-login mechanism for Google accounts, explains Goodman. After the user's device is linked to a Google account, the browser will let the user utilize the device's existing authorization to skip Google's web-based sign-on prompts.
Before a patch was issued last week, this auto-login worked for even the most sensitive parts of Google's account setting portal, including the "Account recovery options" page where someone can add or edit the email addresses and phone numbers to which Google would send password-reset messages.
This means an ASP, for example, can link an Android device to a Google account and with that linked device access the account's recovery options and gain full control, he adds.
"We think it’s a rather significant hole in a strong authentication system if a user still has some form of 'password' that is sufficient to take over full control of his account," blogs Goodman. "However, we’re still confident that — even before rolling out their fix — enabling Google’s 2-step verification was unequivocally better than not doing so."
A successful attack would require first stealing a user's ASP, which could theoretically be accomplished via malware or a phishing attack.
Google declined to comment on the vulnerability. However, Duo Security CTO Jon Oberheide notes that there is more that could be done to limit the privileges of individual application-specific passwords.
"In this specific case, it would be better if a user could create an application-specific password that was actually specific to an application or to a subset of data within your Google account," he says. "For example, you could create an ASP that was limited to the GTalk application. Therefore, if an attacker captured that ASP, they would only be able to access your GTalk account instead of having full access to your Google account and associated services. Alternately, an ASP (or similar access token) could be created that allowed an external service to interact with a specific document with your GDrive, without giving full access."
"While these fine-grained access controls are ideal, they're likely hard for Google to implement given how intertwined their various services are," he says. "More importantly, maintaining an appropriate level of granularity while making it understandable by your Average Joe user is a significant challenge. [The] bottom line is that two-factor authentication is hard to get right in complicated identity ecosystems. Even Google makes mistakes."
Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.