Security Review: Facebook Applications

By vkirst at 10:26 pm on January 9, 2009 | 6 Comments

In mid-2007, Facebook launched a free development platform that allows independent designers to create applications that integrate with core features of Facebook. Since then, over 33,000 applications have been made, the most popular of the applications having over 16 million monthly active users. Facebook applications are intended to be opt-in modular extensions of Facebook for which users can voluntarily register. Facebook itself is composed of a collection of applications; many of the features people perceive as emblematic of Facebook (e.g. the Wall, Photos, and Events, to name a few) are actually “applications” in this design scheme, and they are provided by Facebook by default when one registers for the website.

Since its initial launching, 3rd party applications have caused an influx of problems for Facebook and its users. Advertisement-heavy applications spammed users and popular applications cluttered profiles, reducing the usability of the website. In July 2008, Facebook implemented a considerable redesign to reduce the prominence of applications on Facebook profiles. However, applications pose significant security issues that have yet to be addressed.

Assets and Security Goals

  • User Privacy. Many Facebook users trust the website with an abundance of highly sensitive information, such as religious and political views, phone numbers, home addresses, and even credit card numbers.
  • Facebook Source Code. Facebook itself runs the risk of revealing its source code or security holes by allowing developers to make API calls on Facebook data. Carelessness in the platform could result in ruining essential parts of the site.
  • Facebook Reputation. Facebook applications are embedded in the Facebook interface. Even though they are often developed by 3rd parties completely outside of Facebook’s control, users still perceive Facebook to be partly responsible for the applications.
  • Facebook Liability. Allowing independent developers to create applications for their website could potentially put Facebook into legal trouble if the developers created malicious applications.

Adversaries/Threats

  • Thieves and Spammers. A social networking site as widespread as Facebook contains an abundance of information hackers would love to obtain. Spammers could get a hold of not only emails, phone numbers, and home addresses, but also a list of interests that allow for targeted advertisements. Gift and donation applications often take credit card numbers, which may or may not be secured.
  • Stalkers. Facebook is a repository of photos and contact information. Exploiting security flaws in applications, stalkers could indirectly retrieve personal information about the users of the application.
  • Government and Schools. Government, schools, and other authoritative figures may use Facebook to look for evidence of “wrongdoings” in the eyes of the authority. While Facebook itself takes measures to protect the privacy of users, these 3rd party applications are usually far less secure, but still have access to the information stored on Facebook such as profile information.

Potential Weaknesses

  • Applications have access to the information of users’ friends. When a user installs a Facebook application, the application developer has access to all the public information on a user’s profile – and all that user’s friends’ information. Therefore there is no way to completely opt out of giving Facebook applications your information unless none of your friends add applications. One can edit the amount of information apps can see, but this feature is unknown and hidden away (not to mention unintuitive), and the default options allow apps to access copious amounts of user information.
  • Poorly coded/secured applications. Applications can be written by anyone, even programmers with only a cursory knowledge of PHP and SQL, and code is stored entirely on 3rd party servers. Many applications do not have any sort of authentication on their servers when processing queries from their own Facebook applications, something the most novice hackers can intercept. (See Risks for more information).
  • Malicious applications. Anyone can make a Facebook application, and Facebook applications provide an environment conducive for convincing attacks. A famous example was the Secret Crush application that led users to download malware onto their machines.
  • “Extended permissions” are easy to obtain. Facebook attempts to limit developer’s access to user’s Facebook accounts by default, but developers can request “extended permissions” through simple API calls. Extended permissions allow the application to email the user, send text messages to and from the users, access the user’s data even when they are offline, and other invasive activities. The user must OK these requests, but many times users will accept the request, unsure of what it does. The permissions are also revocable, but again, many users do not know what these permissions are or why they would be revoked.
  • No enforced terms of service for applications. Facebook washes its hands of all legal responsibility via its terms of service:

    When you install a Developer Application, you understand that … we are not responsible for your use of or inability to use any Developer Applications, including without limitation the content, accuracy, or reliability of such Developer Application and the privacy practices or other policies of the Developer. YOU USE SUCH DEVELOPER APPLICATIONS AT YOUR OWN RISK.

    While Facebook has a set of guidelines for 3rd party applications, Facebook makes no guarantee that these applications will obey the guidelines. This means that if an application stores your personal information indefinitely, sells your contact information, or otherwise abuses your privacy, Facebook will make no action to rectify the situation.

Potential Defenses

Facebook should have legal backing behind the Platform Application Terms of Use. Without legal backing, the document has no power at all.

Facebook could also play a larger role in the development process. Right now, applications are created entirely on the developer’s webspace, and the application queries this “callback url” for the content that should be rendered in the application canvas page. If Facebook hosted databases and webspace for applications, there would be less flexibility in application creation, but Facebook could employ tactics that would help enforce secure transactions.

Facebook could make privacy issues clear to the user. Very few users know exactly how much information applications are allowed to see. When a user adds an application, Facebook warns the user that the app has access to his or her information, but there’s no mention to the user’s friends, even though they too are giving up information.

Facebook could simply require a fee to develop applications. This would deter many amateurs from cobbling poorly designed applications.

Of course, the ideas stated above would be very expensive to implement and annoying for usablity. Instead, Facebook has simple measures in place to help users determine “spammy” applications and safe applications. Facebook recently created an Application Verification Process that essentially gives a seal of approval to applications that pass Facebook’s standards. The seal of approval is expensive, though – the application alone is $375 (reduced to $175 for students and non-profits). It is also not likely that “verified” apps will be tested for robust code; verified apps only guarantee that the intentions are good, not the implementation.

Risks

Perhaps the biggest security risk raised by independent Facebook applications is the quality of code generated by amateur developers. While the platform code itself is fairly secure, literally anyone can make a Facebook application, and often these programmers know very little about basic website security. Many applications do not have any sort of authentication on their servers when processing queries from their own Facebook applications, something the most novice hackers can intercept.

The Moods Application was a notorious example and there is a YouTube video explaining how it could be hacked using Firebug. (The Moods Application has since fixed this security hole, but it is representative of the poor code prevalent on applications.)

While changing your friend’s “mood” is fairly innocuous, one can imagine the ramifications of poorly secured applications. There have been Facebook applications that could register users to vote in the 2008 election and applications that take credit card numbers for donations to charities; even if the intentions of the application developers are earnest, poor code can make these applications a hacker’s goldmine.

Furthermore, these risks are far greater when taking into account that (naturally) not all developers are trying to develop applications in earnest.

Conclusions

Facebook has the ability to make applications more secure and responsible of user privacy. Quite frankly, Facebook does not want to do this. Enforcing security involves a lot of manpower and financial obligation, and it introduces difficult usability challenges. The attraction to developing on the Facebook platform is exactly this abundance of easily accessible private information, and Facebook would lose a lot of its draw by tightening security.

While Facebook applications seem unreliable right now, applications could be even more damaging in the future. Currently the average Facebook user is a college student, but in a few years many of these college students will graduate and obtain jobs. The information being hosted on Facebook now –photos, comments, groups, interests – could be accessible to future employers, business partners, or political rivals. Although Facebook has some provisions to protect users, applications are an easy way to sidestep any security measures put in place by Facebook.

Filed under: Security Reviews6 Comments »

6 Comments

  • 1
    Get your own gravatar for comments by visiting gravatar.com

    Pingback by Facebook Security

    January 10, 2009 @ 12:03 am

    […] the website of the University of Washington Computer Security and Research, they have posted a review on facebook security, which is worth reading for anyone with an account with that […]

  • 2
    Get your own gravatar for comments by visiting gravatar.com

    Comment by kosh

    January 11, 2009 @ 9:23 pm

    I really think that Facebook jumped the gun released it’s application framework a little too soon.

    For one, there is no way for the company to police all of the apps submitted without incurring huge cost overhead. But, for a company like Facebook, which still doesn’t quite have model to generate money from users, this is definitely a hard thing to do.

    The result? –> The users get short changed and are put at risk while facebook tries to experiment apps as a way make money (or break even).

    I really don’t see a viable solution for this issue unless it is acquired by a big profit generating corporation (read Google or M$) which has the resources and the a reputation at stake (to guarantee privacy and security for the user).

  • 3
    Get your own gravatar for comments by visiting gravatar.com

    Comment by Joylynford

    January 13, 2009 @ 1:33 am

    the recent reports regarding the hacking of social bookmarking accounts has made me to think twice to be a part of such sites. is facebook protected towards such hacking

  • 4
    Get your own gravatar for comments by visiting gravatar.com

    Comment by hanum

    January 13, 2009 @ 6:17 am

    So, how to prevent a Facebook hack from suspicious 3rd party applications? Any suggestion? Thank’s before

    Gunadarma University
    Indonesia

  • 5
    Get your own gravatar for comments by visiting gravatar.com

    Comment by Sean Miller

    January 15, 2009 @ 12:23 pm

    With social networking sites being as popular as they are, they are certainly going to be targets of not only attacks such as hacking, but also social engineering attacks. I agree with Kosh that Facebook has definitely jumped the gun on allowing 3rd parties, of whom they seem to have little legal responsibility for, to have access to the entirety of our and our friends profile information.

    It seems to me that they could cut down on the likely hood of an attack by allowing only trusted developers to publish content for applications, but it removes the openness of Facebook.

    With the amount of information that is stored on Facebook and how easily a faulty application can be used to step around privacy barriers, Facebook should highly consider either spending the money to make these applications safe, or limit what can be published. Without either of these steps, Facebook looks like a huge threat just waiting to be leapt upon.

  • 6
    Get your own gravatar for comments by visiting gravatar.com

    Comment by Lisa Permatasari

    January 16, 2009 @ 6:33 pm

    I also agree that Facebook should have rules of who have permission of writing applications. Like stated in the review, developers can have access to the database, so if developers who have bad intention are making applications, they can play around with the database. They can steal users’ private information. Or it could be that irresponsible developers misused the database.

    One solution that I could think about is for Facebook to choose some applications randomly and check them. By doing this, there is possibility that they find any security problem in the codes and if the application is malicious, they can block the developer from making another application.

RSS feed for comments on this post