Major Flaw Found In Security Products 153
ancientribe writes "A stealthy and potentially dangerous bug has been discovered in security products from eight different vendors, including Check Point Software, according to an article in Dark Reading. The so-called cross-site request forgery (CSRF) lets an attacker access the user's network and even conduct transactions on behalf of the user. It could affect over a million installations, but so far, Check Point is the only security vendor to step up and patch it. This vulnerability is found in most everything with a Web-based interface, including printers, firewalls, DSL routers, and IP phones." An article on the vulnerability from last fall quotes Jeremiah Grossman, CTO of WhiteHat Security, who calls CSRF "the sleeping giant" vulnerability: "It's not seen as a vulnerability because it works like the Web works."
Hope they used EEPROM (Score:3, Insightful)
because it sucks when there's a bug in hardware unless it's possible to do a firmware upgrade to fix or work around it.
Can someone explain this for me...? (Score:3, Insightful)
Re: (Score:2, Funny)
Re:Can someone explain this for me...? (Score:5, Informative)
It means that if you do something stupid like leave the default username/password for your "appliance" or log in and pick up a session cookie then go browse somewhere else, someone can set up a link like "http://192.168.0.1/networksetting.cgi?internet=d
Except that they don't have to convince you to click on it, they could set that as the source of an image... you'd see a broken image tag and then the internet would stop working. Then they just have to get that image tag onto a website you read, say through an ad vendor (some of whom obviously don't care that they're hosting malware, so why not?) or an email to a webmail address that doesn't filter image tags.
This is how the internet works. Your browser follows links, and doesn't know or care about whats there until it gets there.
Re: (Score:2)
There may be a lot of comments saying CSRF is so 20006. W
Re: (Score:2, Funny)
Re:Can someone explain this for me...? (Score:5, Informative)
from 1 to 0 .
[ Admin, look here!] (Score:1)
Re:Can someone explain this for me...? (Score:5, Informative)
Re: (Score:2)
from 1 to 0 .
Re: (Score:3, Interesting)
Now, if y
Re: (Score:2)
Re: (Score:2)
Is that automatic, or do you have to enable that?
Re: (Score:2)
That's pretty sad if that's all this is about. Isn't this basic stuff they teach you in college? :-) Didn't we learn anything from the "secret" backdoor passwords exploited by the UNIX worm of 1988? You don't have a single password built into ANY piece of software. You require the user to create a password when you first plug the device in. Really freaking basic stuff.
For that matter, this one would be solved by simply using an expiring session key. For that matter, this one would be solved by makin
Re: (Score:2)
1) While it does not have to do with password, it /can/. If you choose the option to auto-login, it doesn't matter if you have a valid session or not. This would work as OP described because the router's site would have stored your login info in a cookie, which it would then read when the exploit was used.
2) Reasonable, if you (the end user) don't mind authenticating before every single action you take on a web site. Personally, I /would/ mind that.
Re:Can someone explain this for me...? (Score:5, Informative)
There is a simple example / introduction to CSRF attacks here [debian-adm...ration.org].
Re:Can someone explain this for me...? (Score:5, Informative)
This lets malicious site do things like send $10 donations from your paypal account, submit blogspam, get your account balance, etc. if you can be convinced to visit malicious site.
Re: (Score:2)
For that matter, the malicious site coul
Re: (Score:2)
The best way to break tokens like that is to find some XSS on the site you're attacking -- that allows you to get javascript running within the domain of the remote site.
Re: (Score:2)
The malicious page has a submit button that they trick you into hitting which sends a request to the legit site in your name from your browser but it can't get the same token, even though it knows your IP address, unless it can break the encryption or is behind the same NAT firewall as you. S
Re: (Score:2)
That's just insane!
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
--jeffk++
Re: (Score:2)
Re: (Score:2)
This class of attack has been known for years, its only recently that its come into the spotlight, and been named and quantified. Or maybe its just a slashvertisement since CheckPoint is the first to "Patch" it. When everyone was vulnerable, why make the sheeple scared, scared users don't make online transactions. Now its "Fixed," but only the people at CheckPoint h
Re: (Score:2)
Re: (Score:2)
What the ... ? (Score:3, Interesting)
Wouldn't this be easily killed by simply having the webpage dynamically generate a page with a life of 15 minutes or less?
Or even by using some basic encryption that involves the IP address of the original request?
sheesh!
Re: (Score:2)
Does that also mean simply typing in the URL bypasses this as well?
Re: (Score:2)
Re: (Score:2)
needless to say i had to alter their proccessing page for this cause they blocked the whole damn domain not jsut the mail server..
Re: (Score:2)
But that makes me wonder if browsers could do something against this. If there's an iframe that is not visible to the user, and that tries to request a page from somewhere else, don't send cookies. Okay, maybe it's a bit more involved, but shouldn't this be doable on the browser side?
Re: (Score:1)
This really needs to be fixed a the web application level so that the program does not allow random access to important URLs but tracks the user in various ways. The program needs to use more that cookies to make sure you intend to make a purchase or modify information. For example if a direct link comes into amazon to order a product and the same user is not coming from a page that would have legitimately made that
And the "referrer page" is already known. (Score:2)
There seem to be a lot ways to defeat this "sleeping giant" of a vulnerability. And most of them seem to related to basic security practices by the websites themselves.
"Solving" this at the firewall level just seems
Re: (Score:2)
Re: (Score:1)
Re: (Score:3, Interesting)
The IP address doesn't work because the initial exploit is from the orignal user on the same computer, same ip address. Just a different tab or window of the same browser that carries the same cookie/http-auth as the original, but comes from a seperate malicious webpage.
I can think of 2 general fixes but
URL referrer (Score:2)
Re: (Score:1)
What happens in the case of https? Does the referrer come through blank?
Is there anyway you can think of around this outside of XSS?
Re: (Score:2)
As long as you're willing to inconvenience folks by requiring a valid referer, and not just trying to filter any
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
In the context I'm talking about, the browser has no control over the referrer.
Review TFA and read the pretty-good Wikipedia article about Cross-Site Request Forgery [wikipedia.org].
Then imagine a Javascript program, uploaded to a victim's browser by your hypothetical shadyhackerswebsite. (The victim's looking for instructions for how to cut down the size of his window shades and got fooled by a seeded Google response, let's say.)
The Javascript takes advantage of the breach in document security which is the subject of TFA
That's why I don't think this is a problem. (Score:2)
While that does happen, it probably would be extremely rare.
And the "attacker" would have to pre-craft the page. This would be easily defeated by simply dynamically generating each page and giving a short time to live.
The attacker would need to know the dynamically generated ID
and
He'd need to know it before that page expired
and
He'd need to get that code into his webpage that you were looking at.
Sure, this "attack" woul
Re: (Score:1)
Hopefully they use a dynamic id and include it on url's and form requests, instead of just relying on a cookie. But a lot of us web developers have just used cookies cause their cleaner and easier.
Maybe Checkpoint added the id with their patch.
Re: (Score:2, Insightful)
Re: (Score:2)
Re: (Score:1)
For server-side session variables, how does the server know which session each user is part of? If it's a magic number ensconsed into every GET and POST, then a third-party form can't guess it. (Although putting that magic
Re: (Score:2)
If by "use session variables" you mean "put all of the persistent data in the care of the client and make them resubmit it each time" there are good reasons to avoid that too. For one thing, it suffers from the same proble
Simple Solution (Score:2)
Unless of course the javascript loaded the page containing the form, parsed it and pulled out the secret variable
Re: (Score:2)
It's poor authentication on the server side. The browser is hitting links that it's given, and if you're doing something important, you shouldn't rely on the browser being fixed. The proper solution is for the server to give out a unique key with every form or link that needs to be secure, and if the key received don't match one given out to that user, it's rejected. Crackers wouldn
Re: (Score:2)
No, you're way off base. The problem is persistent credentials (cached stuff, and cookies that save your username and password). Sending your cached credentials through an encrypted connection does nothing to protect you; it only obfuscates the data being transmitted.
Update! (Score:4, Informative)
I'm surprised it took this long to find something like this, but I'm not at all surprised it existed. I've loved web interfaces like these but I've always been nervous about them.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
The sky is falling? (Score:4, Insightful)
In Check Point's case, CSRF was possible when a user was logged onto https://my.firewall/ [my.firewall] at the same time he or she was connected to a malicious Website, according to the company's patch release information.
This bad, sure, but hardly the internet-destroying calamity the article makes it sound like. When you're connected to the web interface of something critical, make sure you trust the other websites you're viewing at the same time. Am I missing something, or is this Calyptix company just trying to get its name on everyone's lips?
Re: (Score:2)
But the vunlerablity isn't limited to firewalls, of course...
Trusted sites may inadvertently launch the attack (Score:1, Interesting)
Drawing partially on a previous post, here is an example. You're on Disney's site and want to buy some toy. You think, eBay/Paypal to shop and pay for the toy would be much cheaper than Disney's site. You have both open
POST vsn GET (Score:3, Interesting)
Re:POST vsn GET (Score:4, Informative)
Using POST will help, but it doesn't solve the problem.
An attacker could still host a hidden FORM pointing at your local application, and use Javascript to submit it.
Re:POST vsn GET (Score:5, Interesting)
RFC 1945 [w3.org], section 12.2 (under the oh so stealthy heading of "Security Considerations"): But hey, that RFC was only written in 1996; why would we expect something that was specifically stated as a security problem eleven years ago to be taken into account by security vendors?
Re: (Score:1)
Re: (Score:2)
It increases the complexity and requirements of implementing the attack.
With a GET request, all you need is for the victim's browser to visit the URL. You could hide a link, or even put it as the SRC for some other tag. You could hide it in an <IMAGE>, or even a <LINK>. (Or, as another poster pointed out, in an invisible <IFRAME>.)
With POST, on the other hand, you have to get the victim to submit a deliberately crafted form. With JavaScript you could do this automatically, but that's not
Re: (Score:3, Interesting)
Not nearly as easy? Here, lets transform your sample attack into a POST-based one:
Re: (Score:2)
maybe the problem is, that a scripted POST should not be allowed.
I for one don't see a valid reason for the browser to allow a submit
method on forms with the method POST.
I'm sure this was also not in the intention of the authors of this
respective RFC, because they actually a browser to follow
a 301, 302 redirect for instance.
Re: (Score:1)
What's "a valid reason"?
We let JavaScript change the innerHTML of random form elements, reassign form actions, change URL's on the fly, make one button disabled when another checkbox is clicked. Maybe we can ask for the valid reasons for all those things.
We can't call this a flaw in JavaScript. If you were to block, say, submit()
cookie won't play (Score:2)
I don't have the time right now to give this issue any serious thought, but my immediate reaction is that the present cookie mechanism is too promiscuous. If we had the notion of a secure cookie, I suspect some of these problems could be eliminated.
A secure cookie is a cookie which includes submission directives: don't send this cookie with any request unless A and B and C are true. These conditions could be that the referrer page was fetched through the same SLL authentication, or from a page with a corr
Re: (Score:2)
Re: (Score:2)
There's nothing about this attack that makes it obviously look like an attack though (until maybe after it has happened). Unless you have javascript turned off always or have some sort of per-site whitelist, you wouldn't know when to turn it off.
And even then, I could forget javascript and trick you into submitting the form yourself by making an image submit or button that looks lik
Re: (Score:2)
<input type=hidden name=token value="34879cmaezwqph54yv78trvhzqwiurectwyerty">
I've never understood why people put any trust whatsoever in cookie security, when the WHOLE POINT of them seems to be to replay something back to the same site regardless of where you came from.
Cookies are a nice way to REMEMBER who you are
Re: (Score:2)
Re:POST vsn GET (Score:4, Informative)
This is another good reason for using Firefox extensions such as Flashblock [mozilla.org] and Noscript [noscript.net]. As a client, you can protect yourself pretty easily from a lot of these attacks. Noscript also has some nice features which help filter out the more common brands of XSS attacks.
Re: (Score:2)
Re: (Score:2)
I Don't See It As a Sleeping Giant .... (Score:2, Insightful)
So don't manage any device on your network via it's web interface while browsing web sites you don't trust on the Internet. Problem solved. In this day and age you should be careful about opening links to non-trusted sites no matter what.
If you absolutely must do both at the same time, use one browser for the web and another to manage the device. If you're on Win
This happens though. (Score:3, Interesting)
In that rare instance, I can see this as being a potential problem.
Re: (Score:2)
Check Point Edge firmware reset (Score:5, Informative)
A good explanation (Score:5, Informative)
Re: (Score:3, Interesting)
And the spider deleted everything!
Re: (Score:2)
Re: (Score:2)
GET isn't the problem. It's not requiring authentication for delete actions!
http://worsethanfailure.com/Articles/The_Spider_of _Doom.aspx [worsethanfailure.com]
Re: (Score:2, Informative)
Using POST will solve nothing. This sort of attack can still be pulled off by Javascript invoking a malicious POST request.
Re: (Score:2)
Re: (Score:2)
POST-only does help if your users have JavaScript and Flash disabled. Not entirely common, unfortunately.
Adding a unique token to each form doesn't work either. I haven't read the vulnerability anywhere, so I'm not going to say how it fails - but suffice it to say you should use something more robust. Have the user type in something that a computer can't. EG: their password or use a good CAPTCHA.
Re: (Score:2)
True. And unfortunately, easy to do with JavaScript.
The Cross-site Request Forgery FAQ (Score:3, Informative)
http://www.cgisecurity.com/articles/csrf-faq.shtm
What is the vulnerability? (Score:2)
Re: (Score:3, Informative)
You can still do hidden posts with javascript. Just hook up the post to fire on onload or onclick of anything on the malicious site. The form response can be targeted to a hidden iframe so it's invisible to the user.
Most people have already turned off their browsers post warning and even if they didn't they don't have any reason to think it's posting to their bank's website or firewall device instead of the malicious site.
Re: (Score:2, Informative)
If you are logged into /. and you happen to click on that link, your signature will be changed to "blow me"
/. set to log in automatically and save your cookie, any request from your machine
(okay, I know nothing about scripting and this is just an example but you get the idea)
How do I supply this link to your browser? One example is on a malicious web page in an image tag, there are many others.
Since you have a
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Obvious (Score:1)
New technology allows data to go through open port (Score:1)
And the news is? (Score:2)
CSRF is overblown (Score:2)
So this attack ONLY works if you already have some knowledge of the companies internal network structure.
Here is an example working CSRF attack
a) I put a CSRF attack on my blog - some AJAX request or hidden image to go to http://internalcompanysite.net/somesoftware/dosome thing?badstuff=this [internalcompanysite.net]
b) I send sysadmin an email poting at my cool blog
c) Sysadmin
Re: (Score:2)
And how often do you log into your home router? For me it is maybe once every 3 months or less.
Once again -in order for a CSRF attack to succeed the user has to be logged into the attack vector AND has to be accessing the exploit site simultaneously. And the attacker has to already know what kind of box you have, and what address it is on. Too many variables to mount any kind os useful attack, unless you already have a target