Firefox, Opera allow crooks to hide an entire phish site in a link
Watch out for the tinyurl that isn't
A shortcoming in browsers including Firefox and Opera allows crooks to easily hide an entire malicious web page in a clickable link - ideal for fooling victims into handing over passwords and other sensitive info.
Usually, so-called "phishing attacks" rely on tricking marks into visiting websites designed by criminals to masquerade as banks and online stores, thus snaffling punters' credentials and bank account details when they try to use the bogus pages. However this requires finding somewhere to host the counterfeit sites, which are often quickly taken down by hosting companies and the authorities or blocked by filters.
Instead, the malicious web pages can be stored in data URIs - uniform resource identifiers, not to be confused with URLs - which stuff the web code into a handy string that when clicked on, instructs the browser to unpack the payload and present it as a page.
It negates the need to find somewhere to secrete your malicious page, and once shortened using a service such as TinyURL, the URI can be reduced to a small URL perfect for passing around social networks, online chats and email. Crooks may need to set up a server to receive data from victims, however.
It's a technique already documented by researchers Billy Rios and Nathan McFeters - but now Henning Klevjer, an information security student at the University of Oslo in Norway, has revisited the attack method in his paper, Phishing by data URI [PDF].
Typically an attacker would first create a standalone web page, probably using content scraped off the legitimate site it seeks to mimic before making an encoded page and embedding it into a data URI.
URI-based attacks were previously documented by Rios and McFeters as part of an attack Microsoft’s Internet Explorer 6 and 7. Klevjer's research expands on this basic theme and gives it a modern twist.
Google’s Chrome browser blocks redirection to data URIs, and other browsers have limits on the volume of data that can be packed into URIs. Klevjer created a 26KB attack page that failed to load in Internet Explorer, but worked on both Firefox and Opera.
As well as getting around the need to find a home for malicious web pages, the data URI trick can sidestep traditional scam defences, such as web filtering. Data URIs may also contain a potentially malicious Java applet, a major concern following last week's Java-related security flap, a post on Sophos's Naked Security blog notes. ®
Wait, I guess I can still do this. Somehow using TinyURL takes the fun out of it though.
But, but, but ...
I get it up to the point of using a shortened URL. A shortened URL points to a resource on a web server ... the fact that the resource is a URL at the shortening service, or a plain-old phishing page hosted anywhere ... what''s the difference?
Anyway, it's About time browsers started distrusting these shortened URL services by default.
It's also wrong
URIs are the same as URLs, or maybe URLs are a subset of URIs...
At http://www.w3.org/Addressing/ we read:
Uniform Resource Identifiers (URIs, aka URLs) are short strings that identify resources in the web: documents, images, downloadable files, services, electronic mailboxes, and other resources. They make resources available under a variety of naming schemes and access methods such as HTTP, FTP, and Internet mail addressable in the same simple way. They reduce the tedium of "log in to this server, then issue this magic command ..." down to a single click.
At RFC 3986, we read:
A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. (Syntax defined herein ....)
And in section 1.1.3. "URI, URL, and URN":
A URI can be further classified as a locator, a name, or both. The term "Uniform Resource Locator" (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network "location"). The term "Uniform Resource Name" (URN) has been used historically to refer to both URIs under the "urn" scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name. An individual scheme does not have to be classified as being just one of "name" or "locator". Instances of URIs from any given scheme may have the characteristics of names or locators or both, often depending on the persistence and care in the assignment of identifiers by the naming authority, rather than on any quality of the scheme. Future specifications and related documentation should use the general term "URI" rather than the more restrictive terms "URL" and "URN" [RFC3305].