User:J Rodriguez MIT/sandbox

= Clickjacking = From Wikipedia, the free encyclopedia

Clickjacking (classified as a User Interface redress attack, UI redress attack, UI redressing) is a malicious technique of tricking a user into clicking on something different from what the user perceives, thus potentially revealing confidential information or allowing others to take control of their computer while clicking on seemingly innocuous objects, including web pages.

In Web browsers, clickjacking is a browser security issue that is a vulnerability across a variety of browsers and platforms. Clickjacking can also take place outside of web browsers, including applications. 

A clickjack takes the form of embedded code or a script that can execute without the user's knowledge, such as clicking on a button that appears to perform another function.

Clickjacking is an instance of the confused deputy problem, a term used to describe when a computer is innocently fooled into misusing its authority.

History
In 2002, it had been noted that it was possible to load a transparent layer over a web page and have the user's input affect the transparent layer without the user noticing. However, this was mainly ignored as a major issue until 2008. 

In 2008, Jeremiah Grossman and Robert Hansen had discovered that Adobe Flash Player was able to be clickjacked, allowing an attacker to gain access of the computer without the user's knowledge. 

The term "clickjacking" was coined by Jeremiah Grossman and Robert Hansen, a portmanteau of the words "click" and "hijacking."  

As more attacks of a similar nature were discovered, the focus of the term "UI redressing" was changed to describe the category of these attacks, rather than just clickjacking itself.

Description
Clickjacking takes advantage of vulnerabilities that are present in applications and web pages to allow the attacker to manipulate the user's computer.

For example, a clickjacked page tricks a user into performing undesired actions by clicking on a concealed link. On a clickjacked page, the attackers load another page over it in a transparent layer. The unsuspecting users think that they are clicking visible buttons, while they are actually performing actions on the invisible page. The hidden page may be an authentic page; therefore, the attackers can trick users into performing actions which the users never intended. There is no way of tracing such actions to the attackers later, as the users would have been genuinely authenticated on the hidden page.

Clickjacking is not limited to this type though, and are present in other forms.

Clickjacking Categories

 * Classic clickjacking: clickjacking that works mostly through a web browser
 * Likejacking: clickjacking that utilizes Facebook's social media capabilities
 * Nested clickjacking: clickjacking tailored to affect Google+
 * Cursorjacking: clickjacking that manipulates the cursor's appearance and location
 * Browserless clickjacking: clickjacking that does not use a browser
 * Cookiejacking: clickjacking that acquires cookies from browsers
 * Filejacking: clickjacking that is capable of setting up the affected device as a file server
 * Password manager attack: clickjacking that utilizes a vulnerability in the autofill capability of browsers

Classic Clickjacking
Classic clickjacking refers to when an attacker uses hidden layers on web pages to manipulate the actions a user's cursor does, resulting in the user being mislead about what truly is being clicked on.

A user might receive an email with a link to a video about a news item, but another webpage, say a product page on Amazon, can be "hidden" on top or underneath the "PLAY" button of the news video. The user tries to "play" the video but actually "buys" the product from Amazon. The hacker can only send a single click, so they rely on the fact that the visitor is both logged into Amazon.com and has 1-click ordering enabled.

While technical implementation of these attacks may be challenging due to cross-browser incompatibilities, a number of tools such as BeEF or Metasploit Project offer almost fully automated exploitation of clients on vulnerable websites. Clickjacking may be facilitated by - or may facilitate - other web attacks, such as XSS.

Likejacking
Likejacking is a malicious technique of tricking users of a website into "liking" a Facebook page that they did not intentionally mean to "like". The term "likejacking" came from a comment posted by Corey Ballou in the article How to "Like" Anything on the Web (Safely), which is one of the first documented postings explaining the possibility of malicious activity regarding Facebook's "like" button.

According to an article in IEEE Spectrum, a solution to likejacking was developed at one of Facebook's hackathons. A "Like" bookmarklet is available that avoids the possibility of likejacking present in the Facebook like button.

Nested Clickjacking
Nested clickjacking, compared to classical clickjacking, works by embedding a malicious web frame between two frames of the original, harmless web page: that from the framed page and that which is displayed on the top window. This works due to a vulnerability in the HTTP header, in which, when this element has the value  , the web browser only checks the two aforementioned layers. The fact that additional frames can be added in between these two while remaining undetected means that attackers can use this for their benefit.

In the past, with Google+ and the faulty version of, attackers were able to insert frames of their choice by using the vulnerability present in Google's Image Search engine. In between the image display frames, which were present in Google+ as well, these attacker-controlled frames were able to load and not be restricted, allowing for the attackers to mislead whoever came upon the image display page.

Cursorjacking
Cursorjacking is a UI redressing technique to change the cursor from the location the user perceives, discovered in 2010 by Eddy Bordi, a researcher at Vulnerability.fr, Marcus Niemietz demonstrated this with a custom cursor icon, and in 2012 Mario Heiderich by hiding the cursor.

Jordi Chancel, a researcher at Alternativ-Testing.fr, discovered a cursorjacking vulnerability using Flash, HTML and JavaScript code in Mozilla Firefox on Mac OS X systems (fixed in Firefox 30.0) which can lead to arbitrary code execution and webcam spying.

A second CursorJacking vulnerability was again discovered by Jordi Chancel in Mozilla Firefox on Mac OS X systems (fixed in Firefox 37.0) using once again Flash, HTML and JavaScript code which can lead also to the spying of the webcam and the execution of a malicious addon allowing the execution of a malware on the computer of the trapped user.

Browserless Clickjacking
In browserless clickjacking, attackers utilize vulnerabilities in programs to replicate classical clickjacking in them, without being required to use the presence of a web browser.

This method of clickjacking is mainly prevalent among mobile devices, usually on Android devices, especially due to the way in which toast notifications work. Because toast notifications have a small delay in between the moment the notification is requested and the moment the notification actually displays on-screen, attackers are capable of using that gap to create a dummy button that lies hidden underneath the notification and can still be clicked on.

Cookiejacking
Cookiejacking is a form of clickjacking in which cookies are stolen from web browsers. This is done by tricking the user into dragging an object which seemingly appears harmless, but is in fact making the user select the entire content of the cookie being targeted. From there, the attacker can acquire the cookie and all of the data that is within it.

Filejacking
In filejacking, attackers use the web browser's capability to navigate through the computer and access computer files in order to acquire personal data. It does so by tricking the user into establishing an active file server (through the file and folder selection window that browsers use). With this, attackers can now access and take files from their victims' computers.

Password manager attack
A 2014 paper from researcher at the Carnegie Mellon University found that while browsers refuse to autofill if the protocol on the current login page is different from the protocol at the time the password was saved, some password managers would insecurely fill in passwords for the http version of https-saved passwords. Most managers did not protect against iFrame- and redirection-based attacks and exposed additional passwords where password synchronization had been used between multiple devices.

NoScript
Protection against clickjacking (including likejacking) can be added to Mozilla Firefox desktop and mobile versions by installing the NoScript add-on: its ClearClick feature, released on 8 October 2008, prevents users from clicking on invisible or "redressed" page elements of embedded documents or applets. According to Google's "Browser Security Handbook" from year 2008, NoScript's ClearClick is "the only freely available product that offers a reasonable degree of protection" against Clickjacking. Protection from the newer cursorjacking attack was added to NoScript 2.2.8 RC1.

GuardedID
GuardedID (a commercial product) includes client-side clickjack protection for users of Internet Explorer and Firefox without interfering with the operation of legitimate iFrames. GuardedID clickjack protection forces all frames to become visible.

Gazelle
Gazelle is a Microsoft Research project secure web browser based on IE, that uses an OS-like security model, and has its own limited defenses against clickjacking. In Gazelle, a window of different origin may only draw dynamic content over another window's screen space if the content it draws is opaque.

Framekiller
Web site owners can protect their users against UI redressing (frame based clickjacking) on the server side by including a framekiller JavaScript snippet in those pages they do not want to be included inside frames from different sources.

Such JavaScript-based protection, unfortunately, is not always reliable. This is especially true on Internet Explorer, where this kind of countermeasure can be circumvented "by design" by including the targeted page inside an  element.

X-Frame-Options
Introduced in 2009 in Internet Explorer 8 was a new HTTP header  which offered a partial protection against clickjacking  and was shortly after adopted by other browsers (Safari, Firefox, Chrome, and Opera ). The header, when set by website owner, declares its preferred framing policy: values of,  , or   will prevent any framing, framing by external sites, or allow framing only by the specified site, respectively. In addition to that, some advertising sites return a non-standard  value with the intention to allow framing their content on any page (equivalent of not setting X-Frame-Options at all).

In 2013 the X-Frame-Options header has been officially published as RFC 7034, but is not an internet standard. The document is provided for informational purposes only.

A security header like X-Frame-Options will not protect users against clickjacking attacks that are not using a frame.

Content Security Policy
The  directive of Content Security Policy (introduced in version 1.1) can allow or disallow embedding of content by potentially hostile pages using iframe, object, etc. This directive obsoletes the X-Frame-Options directive. If a page is served with both headers, the frame-ancestors policy should be preferred by the browser. —although some popular browsers disobey this requirement.

Example frame-ancestors policies: Content-Security-Policy: frame-ancestors 'none' Content-Security-Policy: frame-ancestors 'self' Content-Security-Policy: frame-ancestors www.example.com www.wikipedia.org
 * 1) Disallow embedding. All iframes etc. will be blank, or contain a browser specific error page.
 * 1) Allow embedding of own content only.
 * 1) Allow specific origins to embed this content