Firesheep was an extension for the Firefox web browser that used a packet sniffer to intercept unencrypted session cookies from websites such as Facebook and Twitter. The plugin eavesdropped on Wi-Fi communications, listening for session cookies. When it detected a session cookie, the tool used this cookie to obtain the identity belonging to that session. The collected identities are displayed in a side bar in Firefox. By clicking on a victim's name, the victim's session is taken over by the attacker. The extension was released October 2010 as a demonstration of the security risk of session hijacking vulnerabilities to users of web sites that only encrypt the login process and not the cookie created during the login process. It has been warned that the use of the extension to capture login details without permission would violate wiretapping laws and/or computer security laws in some countries. Despite the security threat surrounding Firesheep, representatives for Mozilla Add-ons have stated that it would not use the browser's internal add-on blacklist to disable use of Firesheep, as the blacklist has only been used to disable spyware or add-ons which inadvertently create security vulnerabilities, as opposed to attack tools. Note that even if they did, it wouldn't actually prevent anyone from using Firesheep, as Firefox contains a setting to disable this blacklist. However, Firesheep has been removed from the Firefox addon store. Later a similar tool called Faceniff was released for Android mobile phones.
Countermeasures
Multiple methods exist to counter Firesheep's local network sniffing, such as preventing sniffing by using a secure connection. This can be realized in several ways: for example by using HTTPS, or a virtual private network connection, or using wireless security. These approaches may be employed individually or in any combination, and their availability in any given situation will vary, in part due to web site and local network characteristics and configuration.
HTTPS
offers end-to-end security between the user agent and the web server. This works well with web sites that are offered uniformly over HTTPS. However, at the time of Firesheep's publication, many web sites employed HTTPS only during the login process, then reverted the user's session to unsecure HTTP. This can be addressed in two intersecting fashions:
First, the site can offer itself uniformly over HTTPS.
Second, the user can employ a browser extension, such as HTTPS Everywhere which can help ensure uniform HTTPS access to certain websites, whether or not the site offers itself uniformly over HTTPS by default or employs HSTS. Also, in Mozilla Firefox 4 as well as Google Chrome the user may natively hand-configure the browser to treat the site as HTTPS-only.
The end-user may also employ a virtual private network to encrypt all the traffic transmitted by their computer over the public Wi-Fi link. Users can obtain a VPN through several approaches: their employer may provide one to access their corporate network, they may host a VPN on a personal server, or they may purchase VPN services from a provider. However, one must then trust the VPN's operators not to capture the session cookies themselves. That is particularly a concern with the Tor network, for which anyone can set up an exit node and monitor traffic going to non-HTTPS websites.
Local Wi-Fi networks may be configured with varying levels of security enabled. Using a Wired Equivalent Privacy password, the attacker running Firesheep must have the password, but once this has been achieved they are able to decrypt the cookies and continue their attack. In addition, the WEP protocol has been proven to have severe flaws which allow attackers to decrypt WEP traffic very quickly, even without the password. However, using Wi-Fi Protected Access encryption offers individual user isolation, preventing the attacker from using Firesheep from decrypting cookies sent over the network even if the Firesheep user has logged into the network using the same password. An attacker would be able to manually retrieve and decrypt another user's data on a WPA-PSK connection, if the key is known and the attacker was present at the time of the handshake, or if they send a spoofed de-authenticate packet to the router, causing the user to re-authenticate and allow the attacker to capture the handshake. This attack would not work on WPA-Enterprise networks as there is no single password. On a WPA / WPA2 or Ethernet network, an attacker on the same network could still access session cookies of an unencrypted HTTP connection with a man-in-the-middle attack like ARP spoofing.