ShapeShifter: Beatable, But We'll Hear More About It
When a ShapeShifter appliance is installed in a datacenter alongside a web server, it takes the website's content and rewrites it before sending it to the user's browser, using techniques to obfuscate the contents such as changing the names of various form fields, or perhaps using obfuscated JavaScript to generate the page contents. (Many Slashdotters will understand these terms, but if you're not sure what I mean by "changing form fields" or "obfuscated JavaScript," it's a bit too technical to explain within this article. Suffice to say that obfuscated JavaScript is itself not a new idea; you can see a demonstration here, which takes simple JavaScript code and rewrites it in such a way that it's much harder to scan automatically, but the code still does the same thing.) The idea is that by obscuring the webpage contents, ShapeShifter makes it harder for bots and malware to conduct automated attacks against the website, since the bots now have to be smart enough to parse the obfuscated JavaScript or decipher the renamed form fields.
The idea has attracted glowing reviews from tech writers, including some who say they can "barely stay awake for a lot of startup pitches" but who were evidently enthralled by this one. My first reaction was that it's not hard to think of ways that this system can be defeated, and some readers will have thought of some ways to attack it even before finishing the previous paragraph. However, the attacks will perhaps require some malware and bot writers to rewrite their malicious programs to target websites in new ways. It remains to be seen how long that will take, and whether Shape will have a countermove after bots evolve to defeat their systems.
If you watch the video on Shape Security's website and pay close attention to their claims, note that they never actually say that ShapeShifter can stop malware from stealing a user's credentials — perhaps a deliberate omission for honesty's sake, since their technology, as they've described it, cannot prevent that. If your machine is infected with malware, and you're filling out a form on a website, the malware can eavesdrop at the level of the user interface to watch what you're typing into a form -- and if you fill out a form which contains a password field, or which contains a string of numbers that pass the credit card number checksum, the malware can capture the entire form contents and silently transmit it back to the attacker. No amount of obfuscation and shapeshifting in the HTML can stop the malware from capturing your password at the user interface level.
Now consider, instead, two of the claims actually made in the ShapeShifter video:
"Financial sites face man-in-the-browser attacks. This kind of bot waits for a legitimate user to authenticate, and then manipulates financial transactions. By disrupting the scripts that Man-in-the-Browser bots rely on, the ShapeShifter allows banks to safely serve their customers, even when their customers are infected with malware."
and
"On e-commerce sites, account takeover has evolved into a serious source of losses. 60% of users use the same password across multiple sites. When user credentials on one site are compromised, attackers program bots to test user credentials on other sites. The ShapeShifter prevents bots from testing stolen credentials on your website."
What both of these claims are essentially saying that once your credentials have been stolen, ShapeShifter can mitigate the damage by preventing a bot from executing transactions using those stolen credentials, or from testing those credentials on other sites. However, I would argue that once your credentials have been stolen successfully, 90% of the damage has been done. ShapeShifter can't do anything to stop a human from testing your stolen credentials manually, and if the attacker has already infected your machine, they can use your machine as a proxy when testing out your credentials, so that the target website doesn't even notice a login from an unusual IP address.
And is it even true that ShapeShifter can stop bots from automating an attack against a target website? Even if a website relayed through ShapeShifter has its HTML obfuscated with JavaScript and re-named form fields, it's still easy to write scripts that automate the act of launching a web browser and filling content into those form fields — such as entering a username and password into two fields, and submitting them to see if the website accepts the login. I'm not sure (it's been a long time since I've written browser automation code, using frameworks like Selenium), but I think you can even automate the interaction "silently," without actually opening up a visible browser window. Which, of course, means you can do it on a user's machine that has been conscripted into a botnet, without the user knowing what's going on.
Now, automating interaction with a website through the browser, may be harder than writing a script to interact with the website at the network level. But as long as someone figures out a way to do it, they can sell the method and the toolkit to others. (The credit card security breach at Target was carried out using software that a 17-year-old wrote and sold off-the-shelf on the black market.)
What about straight denial-of-service attacks, where an attacker doesn't care about breaking into a website or stealing data, but simply wants to take it offline by flooding it with traffic? Could ShapeShifter protect against those types of attacks? It depends on the type of attack. If you're trying to take down a website simply by sending an overwhelming number of requests for the website's front page, and nothing else, then ShapeShifter wouldn't be able to mitigate this attack, since every incoming front-page request still has to be passed through to the web server being protected, and if that's too much for the web server to handle, it will still go down. On the other hand, some denial-of-service attacks use more sophisticated tricks, like running a search query on the target website — knowing that handling a search query requires a lot more processing power than simply serving up the site's front page, so it would take a smaller number of requests to effectively tie up the webserver. If ShapeShifter can effectively stop bots from logging in to a website, running search queries, or performing other actions that are resource-intensive, then that type of denial-of-service attack could be stopped or slowed down.
So, at least based on the product description from the company itself, can ShapeShifter stop malware from stealing your users' logins on your site? Definitely not. Can ShapeShifter stop a botnet from conducting automated attacks against your user interface? For some types of botnets, maybe, but probably not in the long run. Will ShapeShifter be able to evolve a defense against bots that use browser automation? It's hard to see what they could possibly do in response. One of the company founders says, "We are populating our roadmap for the next five, six or seven steps cybercriminals will make and figuring out a countermove," but without knowing what those countermoves are, we only have their word to go on.
But in spite of my misgivings, I wouldn't predict on that basis that the product won't sell a lot of units. Some companies may buy the box without realizing that it does nothing to prevent their users' credentials from being compromised by malware, and that it provides only limited protection against automated attacks. Some companies may realize the limitations of the protection, but decide to buy it anyway because it looks good to their investors or their cybersecurity insurance underwriters. In such situations, even just the appearance of proactivity can be worth a million dollars a year.
How about using this type of technology to remove parts of sites they don't like? or perhaps inserting ads or tracking code or anything else you can imagine.
It's a matter of when, not if, these devices will be hacked and then the people on the wrong side of them will get targeted attacks just for them. Special! (not so much)
We don't actually provide any extra security, you'll still get ripped off, but we'll see if we can't momentarily confuse the malware with the classic "Hey, look over there" trick.
But, in the meantime, we'll mangle your web pages so we can convince you something is actually happening.
This sounds less than useful on first skimming. In fact, it sounds like an obfuscated snake-oil salesman.
Lost at C:>. Found at C.
I don't know what kind of system of black mail has given you the power to turn /. into your personal blog, but please stop using it like one. Length does not equal insight, your posts are not more or less important than those of other users, stop shitting up /.
Slashvertisements?
Save a million dollars a year.
obfuscation is not security.
Rene Auberjenois was not available for comment
about Bennett Haselton's thoughts. He has no particular expertise in the (many) areas he comments on, nor does anyone find his thoughts insightful. Why is he accorded such special treatment on ./?
What does this software to do protect me against that?
"Our Patented Secret Sauce(tm) will add Obscurity(tm) to your Security, allowing it to defeat 100% of existing exploits!"
...In much the same way that moving the doorknob from the left side of your door to the right side will prevent intruders from opening it tomorrow the same way they did yesterday. It's a nice idea, but unless it makes existing web pages completely unusable by humans as well as bots, it's only going to be a speed bump for exploits to get over.
I forsee this breaking websites in weird ways, because what they thought was an invariant change was not for the entirely of browsers out there.
Point in case, the people surfing the web using telnet to port 80 are going to be very pissed.
The summary says:
/vertising a product, that you know doesn't work?
"..most programmers will immediately spot several ways that the system can be defeated..."
So I don't get it. You are
.
Obfuscation and field renaming are old things on the server. It helps against casual attackers, but it also makes it harder to debug. It can also introduce errors and other security flaws if you are not careful.
This probably ends up breaking screen readers, and therefore would put the sites using it in violation of the Americans with Disabilities Act. If it doesn't break screen readers then it is easy to write a bot that gets the data anyway. So if it works it's illegal.
Not a sentence!
Where is the link so we can crowdfund this turd of a project? Or are you just trying to drum up some press to present to investors?
In either case you should probably come up with something better than security through obscurity.
It only adds a hurdle for malware, but might cause a bad guy to not bother. But just like putting a security company sign in your yard, it tells hackers what tool to use for the job.
I once proposed a product at my company that we called "job security" -- it was simply a rackmount box with a metric fuck-ton of blinking lights, and ports on the back to connect ethernet cables that run nowhere.
And the idea behind it was that you buy the unit, install it in your datacenter, and when you're about to get laid off, you point frantically to the box and scream "Oh, yeah, well, who's going to run *that* for you?"
Frankly, this new product sounds like my idea with a bit more of a story behind it. I suppose had we actually *made* the box, we would have eventually figured out some technical sounding crap to go along with it -- my guess is that's the step represented as "?????" followed by "profit".
If telephones are outlawed, then only outlaws will have telephones.
Though this tool might prevent DOM traversal and node name referencing, it most certainly will strive to keep the website layout the same, from the user's point of view. Therefore, a simple bypass is to look for inputs via relative page positioning. That should completely bypass the anti-bot automation functionality. This type of check would be easiest to perform at a lower-level, but it certainly can be done via bot injected Javascript.
A bad idea from several angles
(1) It obfuscate malware fingerprints for code fingerprint based malware detectors on consumer machines, making it more likely you will be hit by an attack, rather than less likely
(2) It increases the code size and therefore the data usage for the consumer downloading the web pages in question
(3) By effectively generating a new web page each time, it damages the ability to cache, costing the site itself more bandwidth as well, not just the end user
I can see companies like Verizon with monthly data caps loving this a lot, but it's probably not worth it to almost everyone else.
If the dom, class names, id's etc are rewritten, it could make automated attacks more difficult. Typically automated attacks will have to locate form elements through some selector (that's how selenium works, and you could do the same with phantom.js). But, at least with phantom, you could scan a rendered dom, and actually use the location of the elements (x,y coords) to figure what fields to fill out and submit. If the UI looks the same to the end user, then an automated render will have to show everything in the same location. It may take a little more effort to write a tester script against a given site, but really, writing the tester is probably only 1% of the effort involved. If you make that take twice as long, you've only increased the effort level by an additional 1%. Given the potential problems this rewriting could create for legitimate uses of a predictable or semantic dom, well ... you tell me. Wish I could get this level of exposure for my software products.
IF your bank or e-commerce site isn't using HTTPS run away, if they are this thing is at best useless.
This might prevent someone from using CURL to hack a system, but there are ways to simulate a browser in an automated way. My main concern about this is from the perspective of a web developer. The last thing I want is a system that chews up my HTML response in a way that I have no control over. Also, I'd be curious to see what the performance of this appliance is under a full load. I can only imagine how much slower an ASP .NET application would run through it...
Breaking search indexes one obfuscated jrofvgr ng n gvzr.
I don't know what kind of system of black mail has given you the power to turn /. into your personal blog, but please stop using it like one. Length does not equal insight, your posts are not more or less important than those of other users, stop shitting up /.
Bennett, please disregard that. People do like summaries and quick reads, which is what the quoted first paragraph you provided delivers. Slashdot's audience is a little too accustomed to having to click on links to see the real article ("mindless link propagation"). Coupling that with the fact that nobody actually RTFA, you get comments like what we see above.
Frankly, I'm happy to see original content on Slashdot (well, beyond book reviews and Ask Slashdot). Thank you for contributing a real story directly to this site rather than posting it elsewhere and linking it in a Slashdot article.
(That said, I do agree with krauch aum that "length does not equal insight," I just happen to have differed in opinion about whether this article has insight. I'd also agree that this reads a little more like a blog than I'd personally like; I'm happier with items that are more like news articles than op-eds. I'd still rate this as a good write-up overall.)
Use my userscript to add story images to Slashdot. There's no going back.
Attackers have been utilizing JavaScript obfuscation for eons, so naturally there are plenty of deobfuscation tools. An updated piece of malware wouldn't even have to drive the browser to circumvent this mitigation, it could simply use a JavaScript engine like V8 or SpiderMonkey to execute the JavaScript that decodes the page, not unlike malware analysts already do.
The hackers they're trying to target are the ones that will easily bypass this. These people can look at code and fucking destroy it without even thinking about it. It's a gift that could be used for a lot of good sadly it's not.
They're treating the symptoms of the problem, not the cause. This is usually a bad idea.
C'mon....are we really worried about a use case for telnet websurfing?
Porn, of course. After a while you don't even see the code anymore -- just blonde, brunette, redhead...
It was called Greenborder and it was in the early 2ks: http://googlesystem.blogspot.c...
Yeah, sure. Having a "protection" which forces you to open one of the bigger security-holes a webpage has ...
No, thank you.
On the other hand, this ShapeShifter method could be worth something to someone who wants to make sure his advertisement revenue will be harder to twarth by pesky AdBlock (and-alike) users.
The headline is absolutely un-parseable and makes no sense.
Try:
"Malware-stopping product 'Shapeshifter' could improve with more work."
I ...think... that's what the long article is trying to say.
Can't this be broken with document.getElementsByTagName("input") ?
So does this mean Greasemonkey and Stylish won't work on pages using this technique? I hope it doesn't spread widely.
Actually, I guess Greasemonkey scripts could be written to tease out what they need anyway, but it would be much harder.
(T>t && O(n)--) == sqrt(666)
The real value here is it enables much more granular logging.
I object to this article, however, on grounds that this is not news. It's a press release, and crap like this is why I only visit slashdot every few months any more.
http://tinyurl.com/4ny52