Slashdot Mirror


Major Flaw Found In Security Products

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."

153 comments

  1. Hope they used EEPROM by jshriverWVU · · Score: 2, Insightful
    routers, IP phones, etc

    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.

  2. Can someone explain this for me...? by mikecardii · · Score: 3, Insightful

    I'm not completely retarded at computers, I just like reading comments on /. so I don't call attention to myself because for the most part I look like a complete dumbass. Yet this sentance makes no sense to me. "It's not seen as a vulnerability because it works like the Web works." What does this mean?

    1. Re:Can someone explain this for me...? by MDHowle · · Score: 2, Funny

      Sounds like the old saying "it's not a bug. it's a feature!"

    2. Re:Can someone explain this for me...? by mikecardii · · Score: 0

      Hahaha alright. Thanks.

    3. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 5, Informative

      What does this mean?

      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=di sabled&username=Admin&password=" and if they convince you to click on it, your internet turns off.

      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.

    4. Re:Can someone explain this for me...? by stevey · · Score: 5, Informative

      There is a simple example / introduction to CSRF attacks here.

    5. Re:Can someone explain this for me...? by dch24 · · Score: 4, Informative

      Parent link is very helpful in understanding CSRF. In brief: malicious site knows or guesses you are logged in at paypal, slashdot, some valuable site, etc. ... malicious site sends you javascript that generates a form and submits it to valuable site. Valuable site sees it coming from your browser, so the cookies are valid. You are logged in, aren't you?

      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.

    6. Re:Can someone explain this for me...? by spood · · Score: 1

      Hence the reason to disable remote 3rd party images in your browser of choice (e.g. Firefox) and never click on 3rd party URLs. See also the Netflix CSRF vulnerability that allowed an attacker to add a movie to a user's queue, move it to the top of the list, and change the shipping address for the user to his own to get free movies. Who here checks the box to stay logged into Netflix? Note that the "add movie to queue" portion still hasn't been fixed.

      There may be a lot of comments saying CSRF is so 20006. Well, yes, that is true, but Grossman is probably right in that this year will be a big year for reporting the vulnerabilities (also known as session riding), because almost no Web site has any CSRF protections.

      --
      ---- Just another spud server.
    7. Re:Can someone explain this for me...? by dgatwood · · Score: 1

      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 making each operation require a confirmation dialog that contains a one-time authorization key value. That's stuff that you really should do in any public-facing CGI scripts anyway to avoid double submits.

      Sigh.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    8. Re:Can someone explain this for me...? by skiingyac · · Score: 1

      Ok, but they say adding a token fixes the problem? So, website X shows me a form with some randomly-generated token field that's good for say 15 minutes, and unless my form submission has that field set to a valid token, then it is rejected? The token would need to be tied to something so that only a request I send creates a valid token for me... otherwise the malicious site can request the form itself, getting a valid token, and use it for the malicious submission.

      For that matter, the malicious site could just use some javascript running in my browser to request the form (as me), parse out the token, and then use it for the submission.

      Can someone tell me how this token helps? This is the same as those goofy images that banks & other places now make you pick, so that when you come back, they show it to you after you enter your username to let you know they are the real site before you enter your password.... what is to stop someone from making a site where you enter your username, the server submits it to the bank site, grabs the image, and shows it to you?

    9. Re:Can someone explain this for me...? by gEvil+(beta) · · Score: 2, Funny

      There may be a lot of comments saying CSRF is so 20006. Pfffft. I'm certain they'll have things fixed by then...
      --
      This guy's the limit!
    10. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      I guess it would not be that hard. Take /. for example. I use the cookie to log in automatically. Someone could post a link in any message that had the code to modify or use your /. credentials. Now my bank? I've never seen any of you jackasses from /. posting messages in my banks interface so that would be much harder to rope people in. I guess those email about my BB&T account needing to be updated, "click this link to continue" would be a good vehicle for this but at a much lower success rate because they are sent out at random. My bank closes the session after 5 minutes of inactivity and 30 minutes total I believe so the risk is even much less. Best case scenario would be someone would have to fool me into following a link that had code specific to my bank and within 5 minutes of my using that banks web site. How you would transfer money or change any credentials by using a generic preconfigued form would SEEM very unlikely although possible, how would you know what account to take it out of and how to transfer it? I had to go through a 3 step process and get a snail mail to add an external bank account to transfer money there from my account. Changing the password and logging in themselves would seem possible though.

      Bottom line, I don't think this flaw is as bad as the summary implies although many applicances that have similar setups and defaults may be a good target.

    11. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      You simplify this a little much.

      It means that if you do something stupid like leave the default username/password for your "appliance"

      This has nothing to do with default usernames and passwords.

      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.

      You can also use JavaScript to create the request.

      This is how the internet works. Your browser follows links, and doesn't know or care about whats there until it gets there.

      Yes, but the mitigation mechanism available seems reasonable. If you design your application with the requirement that a user authenticate before using a form, and that the form submission be from an actual user, then you can create unique tokens (just like the session cookie) inserted in the form, and associated to the user. The server will then ignore any submissions that do not have the correct, erm... form cookie.

      This would help, because the form cookie would not be available to the attacker without making at least 2 requests to your server. Theoretically, it's harder to make 2 requests to your server (parsing the results of the first request) than it is to make 1 request to your server.

    12. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      For that matter, this one would be solved by making each operation require a confirmation dialog that contains a one-time authorization key value. So you're suggesting that every operation require a confirmation box- do you work for Microft? "You chose to view your banking details: Allow or Deny?" "You chose to view a check image: Allow or Deny?" "You chose to transfer $23.00 from Checkings to Savings: Allow or Deny?" "You chose to sign out: Allow or Deny?" Sure, some confirmation is beneficial, but I would very quickly give up on web applications (not even just web 2.0) if I had to confirm every operation.

      From all the discussions about Microsoft and Apple (iTunes), I thought the Slashdot approach is to "trust" the consumer and not force legitimate users to prove themselves innocent?
    13. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      One technique to lessen this risk to to use multiple browsers (or browsers in separate VM's). Cookies from the logged-in browser won't get sent out when using the other. One could even set up different browsers to use different proxies at different IP addresses.

    14. Re:Can someone explain this for me...? by numatrix · · Score: 1

      No it can't. The same-origin policy prevents javascript from one website from accessing objects returned from another website. Kinda. It's complicated and there are occasionally ways to hack it, but generally speaking when same-origin is working, the token is a pretty secure mechanism.

      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. /Then/ you can do what you described above and have your javascript access the token and return it. That's what Samy did with the SamyIsMyHero worm.

      http://en.wikipedia.org/wiki/Same_origin_policy
      http://namb.la/popular/tech.html

    15. Re:Can someone explain this for me...? by rthille · · Score: 1

      WTF? Javascript can do POSTs to unrelated sites, and the browser includes authentication/cookies appropriate to that site? (Please excuse my ignorance, I'm no web developer) Really? WTF?

      That's just insane!

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    16. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      It has nothing to do with your choice of username and password. That session cookie is enough, by itself, for another site to run amok in your account. The good thing is that CSRF is easy to prevent just by using a different, unique token on each form. The other site won't know the token, and so won't be able to spoof a request from you. The bad thing is that most web developers don't know about CSRF yet, or how to prevent it. So the vast, vast majority of sites are sitting ducks.

    17. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      Huh. I'm not...

    18. Re:Can someone explain this for me...? by nonsequitor · · Score: 1

      And I thought my friend who works as a vulnerability researcher was overly paranoid when he had a browser profile only for bank transactions.

      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 have fixed it.

      I wonder how many other design level vulnerabilities there are which don't get press because no one has a solution they can market yet.

    19. Re:Can someone explain this for me...? by planckscale · · Score: 4, Informative
      By the way to not allow images execept from the original website, in FireFox2, open about:config, modify the value of the preference permissions.default.image

      from 1 to 0 .

      --
      Namaste
    20. Re:Can someone explain this for me...? by danweber · · Score: 1

      You might ask "why are you allowed to submit forms to different URLs?" The answer is because that's how the web was specified to work from the beginning. In a way, the CSRF issue has grown because modern web-browsing includes multiple tabs and windows. JavaScript really isn't at fault. I suppose you could try to make it such that JavaScript cannot do any events, but that would totally break GMail. You can submit hostile forms without JavaScript, too. Just trick the user into clicking on a button that is actually the "submit" for your hostile form.

    21. Re:Can someone explain this for me...? by Em+Adespoton · · Score: 1

      One solution that goes a long way towards solving the problem is to use the NoScript plugin for Firefox, with the default set to not allow sites to run javascript. Then you have to add sites you trust to your whitelist. If said sites get hacked, you have a problem. If you end up manually submitting data on a "bad" site, you have a problem. It protects against 90% of the cases however, and makes this vulnerability that much less of a juicy target.

    22. Re:Can someone explain this for me...? by iago-vL · · Score: 5, Informative

      Of course, while that's generally good advice, it does very little to prevent CSRF. Instead of using an image, they could use an iframe or JavaScript code or anything else that loads a URL.

    23. Re:Can someone explain this for me...? by danweber · · Score: 1

      Now its "Fixed," but only the people at CheckPoint have fixed it.

      No, some others were fixed before the testing happened. CheckPoint was just the only vulnerable vendor to fix.

    24. Re:Can someone explain this for me...? by thePowerOfGrayskull · · Score: 1

      By the way to not allow images execept from the original website, in FireFox2, open about:config, modify the value of the preference permissions.default.image

      from 1 to 0 .

      The problem with this is that a lot of sites use different servers to legitimately host their images. ie, media.example.com hosting images for www.example.com.
    25. Re:Can someone explain this for me...? by thePowerOfGrayskull · · Score: 1

      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.

    26. Re:Can someone explain this for me...? by bibi-pov · · Score: 1

      Mod Parent Up ! And I had unused mod points yesterday, classic.

    27. Re:Can someone explain this for me...? by brunascle · · Score: 1

      i'm thinking we should at least discuss the option of having browsers prohibit any POST from one domain to another.

    28. Re:Can someone explain this for me...? by Intron · · Score: 1

      Suppose that when you request the page with the form on it from the legit site it encrypts your IP address and includes it on the page as a hidden field. Hitting submit returns the token which matches your IP address.

      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. So watch out for your little brother.

      --
      Intron: the portion of DNA which expresses nothing useful.
    29. Re:Can someone explain this for me...? by Lehk228 · · Score: 1

      many attacks can be in an img src="" tag

      --
      Snowden and Manning are heroes.
    30. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      It would however be possible (wouldn't it?) to use a small iframe, to load the form, and then scroll the iframe to the button to confirm the action, so that only the button is visible... then, you have to make the user click on the button, which should be quite easy, if the iframe is located near a form to post a comment, or sign some petition... (and with JavaScript, you could check the location of the iframe, and confirm your faked form, if it changed (that is, the user clicked on the button) so that the user do not notice anything)... Of course, if the label of the button is "Confirm payment", or something like this, it probably won't be easy (but not impossible) to convince the user...

      Note that depending on the attacked page design, you might even make the user fill the possible captcha...

      And with JavaScript, your could even change your own faked page, after the user clicked on the first button, and guide him to click on a second button... (like a confirmation button).

      And then... what about using CSS pop-above, above the iframe, to hide/replace some visible parts? You could even hide/replace part of the button label... (the user won't be able to click on your pop-above, to activate the button, but you might guide him to click on the real button part... like if the button label is "Confirm payment", you could hide "payment", or replace it with "======="... the user will most probably click on the "Confirm" part of the button...). With this, you could make the user fill multiple parts of the form... What about making the user fill your own bank/Paypal/other account number, like it was a captcha? Huge.

    31. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      If the user's browser autofill passwords, you might also make the user login, and then redirect the user to some other page, or even guide the user through the interface, completely bypassing any token thing...

    32. Re:Can someone explain this for me...? by Kingrames · · Score: 1

      "Hence the reason to disable remote 3rd party images in your browser of choice (e.g. Firefox) "

      Is that automatic, or do you have to enable that?

      --
      If you can read this, I forgot to post anonymously.
    33. Re:Can someone explain this for me...? by jrumney · · Score: 1

      Javascript very much is at fault here, if it does allow submitting posts. Allowing HTTP requests only to the originating site is one of the basic security constraints of the Java sandbox, so its not like this is a brand new vulnerability that noone ever thought about before. Yes, it'll break AJAX mashups, but it needs to be done.

    34. Re:Can someone explain this for me...? by statusbar · · Score: 1

      As others have posted, javascript is only one way to implement the hack. the HTML tags: img, form, a, and iframes all have the capability too!

      --jeffk++

      --
      ipv6 is my vpn
    35. Re:Can someone explain this for me...? by Anonymous Coward · · Score: 0

      For that we use NoScript :)

    36. Re:Can someone explain this for me...? by owlstead · · Score: 2, Interesting

      The bigger problem is that, indeed, the browser accepts data from any source to be put in a page, as well as allow communications to any destination. This can be images, video's, web-casts, posts, redirects, css pages - the works. To make matters worse, you cannot even trust links anymore, you never know what the scripting which is behind the link is going to do. This is just like Outlook displaying mails in Internet explorer, it's damn convenient at times, but it's really, really bad for security.

      Now, if you would have to do this over again, sites should only accept data from and communications to a single domain and it sub-domains (e.g. slashdot.org and images.slashdot.org). Links to outside pages should be highlighted, and scripts should not be able to influence them. Of course, this would mean that you cannot use cross site cookies, counters, off-site images etc. These should be implemented/pushed to the original site (or maybe you could do something with a sub-domain).

      Yes, this would be a lot of work, and yes you would loose just a bit of functionality. But think of the security advantages of this approach. Even better, think of the annoyances that you would loose, no more waiting for pages while a (&*^(*& ad or page counter fails to load. Frames were a horrible idea, but it would have been a lot better if the frames all originated from the same site, I know that.

    37. Re:Can someone explain this for me...? by thePowerOfGrayskull · · Score: 1

      I wish I had a long rebuttal prepared... but I actually agree.

    38. Re:Can someone explain this for me...? by kylehase · · Score: 1

      You could do that but then you'll miss out on most of those http://*/ads/* images!

      --
      You want fun, go home and buy a monkey!
    39. Re:Can someone explain this for me...? by void_bips(brain) · · Score: 1

      Try and understand what CSRF is and you will understand the meaning of the sentence my friend.
      You will also understand why he calls it the *sleeping giant*.

      By the way, Jeremiah is not just another guy. He is one of the "Top 25 CTOs" by InfoWorld.

      --
      Blog
  3. What the ... ? by khasim · · Score: 2, Interesting

    CSRF works like this: An attacker identifies a URL on a Website -- such as Netflix or a bank -- that initiates typical Web functions such as making a purchase, changing an email address or transferring funds. "The attacker takes that URL and loads it to a Web page they control," White Hat's Grossman says.

    The actual attack occurs when the user visits the attacker-controlled Web page via a legit link, which forces the browser -- using legitimate, authenticated cookies -- to make malicious requests. The user has no clue as to what's happening.

    And the catch is that neither the original Website nor the user's computer is necessarily compromised, Grossman says.

    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!
    1. Re:What the ... ? by Volante3192 · · Score: 1

      The actual attack occurs when the user visits the attacker-controlled Web page via a legit link

      Does that also mean simply typing in the URL bypasses this as well?

    2. Re:What the ... ? by ghoti · · Score: 1

      If I understand this correctly, the request comes from the user's browser, and so also from the same IP. But a timeout would help (it's just less convenient).

      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?

      --
      EagerEyes.org: Visualization and Visual Communication
    3. Re:What the ... ? by accessdeniednsp · · Score: 1

      I think that's one of the changes Check Point is making to the Edge appliances. There are no details in the release notes for v7.0.45 of their Edge firmware, but I think they added some session timeout/cookie timeout stuff. This came out rather quickly, so it must not have been too hard to "fix".

    4. Re:What the ... ? by jmyers · · Score: 1

      I don't think a timeout will help much. It seems to me the most likely or simple to implement attack would be to use this on a community site where the attacker and victim are currently logged in to the same site. From one article it appears myspace was already attacked this way some time ago.

    5. Re:What the ... ? by bryguy5 · · Score: 3, Interesting

      Expiring the Session in a short time frame like 15 minutes does limit the damage, but doesn't eliminate the threat. The above example said Checkpoint was only vunerable when both were open at the same time.

      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 both would require changes to the browser.

      1) Allow Users/Webservers to determine that a cookie should be bound to a particular window, so that a request originating from a different window containing the malicious site does not include the cookie.

      2) Add an extension to the cookie protocol where the cookie always sends the url and ipaddress that is the source of the request (I haven't thought out what the source is with confusing external js scripts which may be controled by js in the main html) - this would allow sites to weed out requests generated from malicious sources.

      Both of these would still allow the exploit to be used in XSS situations, but could plug the hole in the more general cases.

      Without a change to the browsers your best off generating some type of session token and passing it back and forth on the url and using that and a cookie as two part authentication. The malicious site shouldn't be able to read or guess the url's. A lot messier than simple cookie based authentication.

    6. Re:What the ... ? by jmyers · · Score: 1

      The browser would have to second guess what you are trying to do and that would not be good.

      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 request it should be denied.

    7. Re:What the ... ? by Intron · · Score: 1

      No. Its not a phish address. The malicious webpage has elements that will be downloaded by your browser automatically, like images, javascript and styles. One of these could actually be a link to Slashdot (for example) that requests an action there. If you are still logged into Slashdot it will perform the action because the request really came from your browser, which knows the session and your Slashdot cookies.

      --
      Intron: the portion of DNA which expresses nothing useful.
    8. Re:What the ... ? by bhmit1 · · Score: 1

      Wouldn't this be easily killed by simply having the webpage dynamically generate a page with a life of 15 minutes or less?
      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't know which key you were given and so they couldn't make a malicious form or link for you to click.

      The server also needs to be sure the user logs out using a timeout, and with supported browsers, some javascript that lets you know when they've left your page. And finally, at a higher business perspective, you shouldn't do something that can't be undone when it's initiated from an unsecure browser. E.g. Make sure you can untransfer any money.

      One browser side change I can think of would be every time a browser takes you to an https link from some other site, you get a new https session that the server would use to require a new login (actually, it's possible browsers already do this, I don't get into that level of detail). Your site would need https, and again, that's something the server would need to have code to support.
    9. Re:What the ... ? by morgan_greywolf · · Score: 2, Insightful

      I've said from the first day I learned what a 'cookie' was that using cookies alone for authentication is a very bad idea. Here is the real fix: don't use cookies alone for authentication. Your idea of using a session token passed on the URL is one such idea. Can anyone think of others?

    10. Re:What the ... ? by Amouth · · Score: 1

      i find this kinda intresting.. exchange years ago disabled url's to the same domain as the mail server cause people where getting e-mails with links in them that would use OWA to delete mail or change passwords and so on and so forth

      needless to say i had to alter their proccessing page for this cause they blocked the whole damn domain not jsut the mail server..

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    11. Re:What the ... ? by Anonymous Coward · · Score: 0

      I've often wondered why session variables aren't more commonly-used as an authentication means- possibly passed through the URL or even as a "hidden" field in a form. Really, as far as I'm aware, the only reason cookies should be used is for persistent logons (which is where this vulnerability steps in). I block all cookies for Firefox and only allow it for websites (like my bank) where I really need to log-in. Still, I would prefer that such websites used session variables to store state information rather than relying on umpteen different cookies on my computer.

      But perhaps my thinking is too simplistic.

    12. Re:What the ... ? by danweber · · Score: 1

      Almost any persistent authentication is vulnerable to CSRF. If it's a cookie, or HTTP Basic Authentication, or a server-side session that is assigned based on the client's IP address, in all those cases the server still sees the same browser with the same permissions doing the request.

      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 number into every GET means it's part of every URL, and URL's have a way of leaking.)

    13. Re:What the ... ? by Josef+Meixner · · Score: 1

      Session tokens appear in the referrer. So on a forum which allows user controlled images I can just craft an image which makes a request to my server, gets the referrer with the security token and then sends a HTTP redirect response (e.g. 302) to tell your browser to visit a different site. It is primitive to add the correct security token and your browser sends the right cookie. So the attack is more limited, but obviously the security token idea will only work partially.

      It will also work on any site having ads when I can get into the ads stream. You need to rewrite the session token for each and every request. But I don't see an easy way to then allow multiple frames to be open with that site. Also caching of pages is no longer possible.

      One other way is to ask for confirmation on state changing requests. But honestly do you want to see "Are you sure" all the time?

    14. Re:What the ... ? by octaene · · Score: 1

      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.

    15. Re:What the ... ? by profplump · · Score: 1

      If by "use session variables" you mean "put my session ID in a variable" that's a bad idea -- it's actually less secure than cookies. For one thing, you can leak the URL in a number of ways, including the referrer header, or even a copy and paste when you want to IM the URL to your friend.

      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 problems as the last scenario -- your authentication data needs to be in every URL that might generate a GET request. For another, there are limitations on the amount of data that you can submit in a GET request. As a general rule you have to validate every piece of information you get from the client; if you don't ever send a piece of data to the client (say a temp file path name), you don't ever have to validate it. Finally the logic involved in constructing URLs becomes complicated, particular in applications where not every page needs the same bits of information -- you have to construct a general system for forwarding submitted parameters, even if you don't know what they are in the current context.

    16. Re:What the ... ? by userlame · · Score: 1

      You use a one-time token tied to the session data. Add it to every internal link in a single page view then the next request, invalidate that token and create a new one to tag on to every link.

      This would get complex when dealing with things like ajax requests, forms, etc., but I believe it could be done.

      Thanks for the idea, GP. :)

    17. Re:What the ... ? by BillyBlaze · · Score: 1

      It seems to me the real problem is that the cookie namespace is unnecessarily shared between multiple tabs/windows. Why not have different tabs run in a completely separate process? Clicking links or opening tabs to the same domain would be kept in the same process, but everything else (searching, typing in addresses, clicking bookmarks, etc.) would open tabs in a new process, with none of the session information of wherever you were before. I bet this would also decrease lock contention, help with memory fragmentation, and improve performance and robustness. Why don't we do it?

  4. Update! by accessdeniednsp · · Score: 3, Informative

    Anyone here like me who does managed firewall work, please notify your clients and get them updated! But this is Slashdot, and we all update our stuff don't we? :) Also, this kind of thing is irrespective of whether or not you allow remote web management of your device. Also, this is further evidence for why you should not use the default internal IP range the device gives you. Please always change the local LAN IP range!

    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.

    1. Re:Update! by gEvil+(beta) · · Score: 1

      Also, this is further evidence for why you should not use the default internal IP range the device gives you. Please always change the local LAN IP range! I certainly need to read up some more on this, but from the sounds of the first article, it doesn't seem like changing the default IP range would stop this exploit from working.
      --
      This guy's the limit!
    2. Re:Update! by accessdeniednsp · · Score: 1

      The advisory I read earlier this week for the Check Point Edge firewall, specifically, said the URL would have been most effective if the attacker knew the device's IP. The proof-of-concept I saw worked to add a new admin user and password to the device. It used "https://192.168.10.1/blah blah" which is the default IP of the Edge out-of-the-box. Although for the Edge, specifically, it acts as a DNS proxy which can intercept the silly "my.firewall" and "my.vpn" DNS names and redirects them to the device itself which negates any advantages of changing the IP range... >sigh.

      Other devices (Linksys, etc) use 192.168.1.1 (as we know all too well). So changing the IP (preferably the range, but at least the device) would help mitigate this attack. (keyword: "help")

      The Check Point Edge attack was slick. Simple, effective, and scary.

    3. Re:Update! by gEvil+(beta) · · Score: 1

      Gotcha. Thanks for the info.

      --
      This guy's the limit!
    4. Re:Update! by jesseck · · Score: 1

      It seemed that these malicious sites need to use the default user name and password... something that should be changed during initial configuration.

    5. Re:Update! by danweber · · Score: 1
      No. What makes this attack scary is that they can submit requests as you even without knowing your username and password.

      Knowing the username and password is a separate way of using this attack, in which they trick you into (first) logging in and (then) doing the bad stuff.

      This is one of the reasons that home routers, which often use HTTP Basic Authentication, are ironically more secure: HTTP Authentication pops up that annoying box we all hate. It's a pretty big signal that Something Weird Is Going On.

      See Drive-By Pharming at http://www.securityfocus.com/archive/1/460251 or the article linked from TFA, http://labs.calyptix.com/csrf-tracking.php

  5. The sky is falling? by Verteiron · · Score: 3, Insightful

    From TFA:
    In Check Point's case, CSRF was possible when a user was logged onto https://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?

    --
    End of lesson. You may press the button.
    1. Re:The sky is falling? by Daniel_Staal · · Score: 1

      For that matter, I can't think of a time when I've opened another website while using the web interface for a firewall. If I'm configuring a firewall that's what I'm doing, and the rest of my internet connection is probably non-fuctional until I get the firewall set up.

      But the vunlerablity isn't limited to firewalls, of course...

      --
      'Sensible' is a curse word.
    2. Re:The sky is falling? by Anonymous Coward · · Score: 0

      This is why I have a copy of Firefox installed with its homepage set to https://my.firewall/ that does nothing else. That copy of Firefox will never have another page loaded in it. It's my firewall management interface, and that's all it is.

      Well, that and the fact that my Safe@Office's web interface doesn't like OmniWeb.

    3. Re:The sky is falling? by LeadSongDog · · Score: 1

      Why run anything as complex as FF to control your firewall? The firewall's browser interface shouldn't need to use anything more than html.

      --
      Oh, I'm sorry sir, I thought you were referring to me, Mr. Wensleydale.
    4. Re:The sky is falling? by Anonymous Coward · · Score: 0
  6. POST vsn GET by El_Muerte_TDS · · Score: 2, Interesting

    Is that not the reason to use POST for important actions (e.g. modification to data) rather than GET?

    1. Re:POST vsn GET by stevey · · 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.

    2. Re:POST vsn GET by ckd · · Score: 5, Interesting

      Is that not the reason to use POST for important actions (e.g. modification to data) rather than GET? Indeed it is, but why should the vendors of security appliances be any better at reading RFCs than anyone else?

      RFC 1945, section 12.2 (under the oh so stealthy heading of "Security Considerations"):

      The writers of client software should be aware that the software represents the user in their interactions over the Internet, and should be careful to allow the user to be aware of any actions they may take which may have an unexpected significance to themselves or others.

      In particular, the convention has been established that the GET and HEAD methods should never have the significance of taking an action other than retrieval. These methods should be considered "safe." This allows user agents to represent other methods, such as POST, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.
      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?
    3. Re:POST vsn GET by gazbo · · Score: 1

      Yeah! Useless fucks! Unleash the righteous rage, brother! Or, you know, talk about a subject you have basic understanding of. POST doesn't prevent CSRF in any significant way.

    4. Re:POST vsn GET by Anonymous Coward · · Score: 0

      It doesn't really matter. I think the description in the article is poor, it took me a while to figure out what they are talking about.

      I think it works like this.

      You find a form or forms on a web site that does something that would be useful for you to control. Say turn on remote management of a NAT router and set the password back to the default.

      Then you embed a hidden copy of the form on your website filled out with whatever you want. When someone clicks on a link on your site it submits the form to their router at the default ip. If you did not log out of the router the last time you did something with it, then the submission will be accepted and your router will be reconfigured. Of course none of this will show up in your browser. This could be done with GET or POST. You could think of this as a form of automated phishing.

      One way to make these attacks more difficult would be for browsers to only allow forms to be submitted back to the originating domain, just like java and javascript can only talk back to their originators. However, that would likely break a lot of sites.

    5. Re:POST vsn GET by vipw · · Score: 1

      And in the real world, who approves every post that scripts make on behalf of the user? I know that I don't.

    6. Re:POST vsn GET by spood · · Score: 3, Informative

      While it's true that it's much better to follow the RFC here, just switching to POST doesn't solve the CSRF problem. An attacker could set up a malicious Web page which has a form with all the necessary parameters and a JavaScript to automatically submit it, hence meeting the POST requirement. Similarly, if the client has an older version of Flash or a buggy version which does not obey same-source security principles, the attacker could embed a malicious SWF which creates the entire HTTP request from scratch, even forging the Referer header if you were checking that as a security measure.

      This is another good reason for using Firefox extensions such as Flashblock and Noscript. 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.

      --
      ---- Just another spud server.
    7. Re:POST vsn GET by Solra+Bizna · · Score: 1

      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 nearly as easy as <LINK REL="stylesheet" TYPE="text/css" SRC="http://www.bankofsomethingorother.com/account .asp?action=transfer&amount=1000.00&dest=716281" />.

      One way to completely protect against this "vulnerability" with currently implemented technology is to be really strict about Referer headers. No header = request denied. Source other than same site = request denied. Problem solved, unless modern browsers have some screwed up behaviors I don't know about.

      -:sigma.SB

      --
      WARN
      THERE IS ANOTHER SYSTEM
    8. Re:POST vsn GET by accessdeniednsp · · Score: 1

      Standards? We don't need no stinkin' standards! ;-)

    9. Re:POST vsn GET by Anonymous Coward · · Score: 0

      It is, in fact, just as easy to create a form in HTML and use javascript submit(); to submit it.

    10. Re:POST vsn GET by asdfghjklqwertyuiop · · Score: 2, Interesting

      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 nearly as easy as


      Not nearly as easy? Here, lets transform your sample attack into a POST-based one:

      <form id="funnyform" action="http://www.bankofsomethingorother.com/acco unt.asp" method=post>
      <input type=hidden name="action" value="transfer">
      <input type=hidden name="amount" value="1000.00">
      <input type=hidden name="dest" value="716281">
      </form>
      <script language="javascript">
      document.forms['funnyform' ].submit();
      </script>
      That wasn't very hard at all. POST gains you nothing security-wise.

    11. Re:POST vsn GET by platypus · · Score: 1

      Yeah,

      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.

    12. Re:POST vsn GET by danweber · · Score: 1

      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.

      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() actions on POST forms, you would 1) break a lot of functionality on 90% of websites that have a function validate your form before submission, and 2) not solve the problem, because it wouldn't be that hard for someone skilled in JavaScript to work around that restriction.

    13. Re:POST vsn GET by Carnildo · · Score: 1

      I can block your attack by turning off Javascript. There's nothing I can do in the typical browser to block a GET-based attack.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    14. Re:POST vsn GET by asdfghjklqwertyuiop · · Score: 1

      I can block your attack by turning off Javascript. There's nothing I can do in the typical browser to block a GET-based attack.


      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 like something totally innocuous.
    15. Re:POST vsn GET by loginx · · Score: 1

      I can send any payload through POST by using AJAX, and you'll never even notice it's been done unless you're monitoring AJAX requests with firebug.

    16. Re:POST vsn GET by Anonymous Coward · · Score: 0

      As someone who also notified Checkpoint about this vulnerability (a week earlier than Calyptix in fact), I think I should comment that using POST won't help unless you've disabled javascript. We provided a proof-of-concept form in our advisory which exploits the vulnerability. http://www.louhi.fi/advisory/checkpoint_070626.txt

      CSRF is quite a wide spread problem in web applications, most of the applications do not have protection mechanisms against it. CSRF combined with persistent XSS plus a hint of social engineering means that one can own victims' adsl-routers/firewalls. Consider a scenario where attacker changes the firewall rules to allow all traffic and port forwards it to a LAN ip-address.

      The problem with embedded web management is that it has to be done right the first time since most of the home users won't update their devices even if new firmware releases were available.

    17. Re:POST vsn GET by NoseyNick · · Score: 1

      You forgot:
      <input type=hidden name=token value="34879cmaezwqph54yv78trvhzqwiurectwyerty">
      ... which stores my session, and can't be stolen by your form or even your JS on another page in another tab. Who needs cookies if every operation is a POST anyway?

      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, they've never been a nice way to PROVE who you are.

      --
      Nick Waterman, Sr Tech Director, #include <stddisclaimer>
  7. I Don't See It As a Sleeping Giant .... by Luscious868 · · Score: 2, Insightful

    All it takes is one malicious site to be open at the same time the Web interface is, and the attacker can gain access to your network, he says.

    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 Windows and you've got a brain then you've already installed a second browser to avoid the headache that is IE when possible anyway.

  8. Check Point Edge firmware reset by accessdeniednsp · · Score: 4, Informative

    Anyone with a Check Point Edge or SofaWare appliance, be aware that if you do the reset procedure, you will be restoring both the original configuration *AND* the original firmware image that shipped with the product. Yes, the original image is still there. If you have a very old v3.x firmware box like I had one time, after upgrading to v6.5.x (back then) and then doing a reset, you're in for a surprise :)

  9. A good explanation by athloi · · Score: 5, Informative

    CSRF explained, albeit clumsily. The examples made the article. Solution: use POST requests for user actions, and add unique tokens to each form.

    1. Re:A good explanation by rthille · · Score: 2, Interesting

      You should never use GET for actions. The last company I was at had a 'delete' link that was a GET action. And we had a spider that indexed our intranet...

      And the spider deleted everything!

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    2. Re:A good explanation by asdfghjklqwertyuiop · · Score: 1, Informative

      Solution: use POST requests for user actions


      Using POST will solve nothing. This sort of attack can still be pulled off by Javascript invoking a malicious POST request.

    3. Re:A good explanation by FooAtWFU · · Score: 1

      A POST with a unique ID of some sort generated for each form, however, will.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    4. Re:A good explanation by guruevi · · Score: 1

      How come your spider even has such permissions?

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    5. Re:A good explanation by Anonymous Coward · · Score: 0

      As will a GET...and so we're back to square 1.

    6. Re:A good explanation by brunascle · · Score: 1

      true, but get still shouldnt be used for actions, not just because of CSRF.

    7. Re:A good explanation by The+MAZZTer · · Score: 1

      GET isn't the problem. It's not requiring authentication for delete actions!

      http://worsethanfailure.com/Articles/The_Spider_of _Doom.aspx

    8. Re:A good explanation by dblyth · · Score: 1

      What about checking the referrer HTTP header? If the action came from the "authorized" window, the browser should attach the proper referrer URL. For the requests that come from the malicious browser, the referrer header would have to be forged for it to work correctly.

    9. Re:A good explanation by Matthew+Strahan · · Score: 1

      Note that POST requests don't prevent CSRF. You can easily bypass it using an automatically submitted form. This also gets past the CSRF protection in ajax functions.

      <html><body onload="document.myform.submit()">
      <form method=POST action=target name=myform>
      <input type=hidden name=targetvalname value=targetvalname>
      </form>
      </body></html>

      In short, you need to use a randomly generated form specific value to protect against CSRF whether you're using GET or POST if the action is sensitive. All this falls down of course as soon as you have a XSS flaw though.

      Next you can tell everyone why a spider was allowed to access deletion pages.

    10. Re:A good explanation by Bob9113 · · Score: 1

      For the requests that come from the malicious browser, the referrer header would have to be forged for it to work correctly.

      True. And unfortunately, easy to do with JavaScript.

    11. Re:A good explanation by Bob9113 · · Score: 1

      Solution: use POST requests for user actions, and add unique tokens to each form.

      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.

  10. And the "referrer page" is already known. by khasim · · Score: 1

    I may be wrong, but I think Amazon already implements something like that. I cannot bookmark my "shopping cart" page ... and then go into it from a different computer with a different IP address. Even if I'm logged into Amazon on both computers.

    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 ... weird.

  11. The Cross-site Request Forgery FAQ by mrkitty · · Score: 2, Informative
    --
    Believe me, if I started murdering people, there would be none of you left.
  12. This happens though. by khasim · · Score: 2, Interesting

    You'll be looking for the solution to a problem on a web page and trying it on your firewall.

    In that rare instance, I can see this as being a potential problem.

  13. URL referrer by oliverthered · · Score: 1

    So long as the malicious site isn't on HTTPS you should get a url referrer with the request that doesn't look like the one you'd expect to get from a legitimate request.

    --
    thank God the internet isn't a human right.
    1. Re:URL referrer by bryguy5 · · Score: 1

      You're right I just thought of this. I generally do referrer filters, but didn't really think through why.

      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?

    2. Re:URL referrer by numatrix · · Score: 1

      Actually, there are a couple of ways to prevent an innocent third-party browser from sending referer information, HTTP redirects for one. That combined with the fact that many browser security extensions and firewalls block sending of referers means that you can't distinguish between users intentionally trying not to leak information and an innocent client tricked into visiting without a referer.

      As long as you're willing to inconvenience folks by requiring a valid referer, and not just trying to filter anything besides yours while still allowing blanks, then you'll be fine. At least, you will until someone discovers another arbitrary header vulnerability like those found previously in IE's XMLHTTPPC or Flash. ;-)

    3. Re:URL referrer by idontgno · · Score: 1

      Oh, I don't know. If an attacker is going to research the target form page well enough to generate convincing POST content, I would hope he or she would go a little further and research the referrer URL pattern and synthesize that as well.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    4. Re:URL referrer by poor_boi · · Score: 1

      It should not be possible to ``synthesize'' the referer. Your browser should protect the referer header and make sure it's valid for you. So if you're visiting http://www.shadyhackerswebsite.com/ that contains an IFRAME which loads http://www.paypal.com/cgi-bin/transfer_money.pl?to =hacker@shady@shadyhackerswebsite.com&amount=10000 .00 >, your browser should enforce that the referer is http://www.shadyhackerswebsite.com/. If your browser does not protect your referer, and lets http://www.shadyhackerswebsite.com/ ``synthesize'' it before the IFRAME loads, it's a problem/bug with your Web Browser.

    5. Re:URL referrer by idontgno · · Score: 1

      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.

      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: if the brower the Javascript is running in has another window or tab open, and that tab (for instance) is authenticated into a trusted web-form-based site (like online banking), the Javascript can take advantage of the authenticated state of the other session to submit a form URL to the target website.

      So, you say that referrer checking should safeguard that, because the white-hat browser session (doing real e-banking business, for instance) would have a valid referrer URL in the form submission but the black-hat Javascript can't.

      This latter assertion (the Javascript can't synthesize the referrer) is wrong. Read http://www.cgisecurity.com/lib/XmlHTTPRequest.shtm l to see how to spoof a referrer string in a Javascript-based GET or POST.

      Now, are you arguing that maybe the browser's HTTP interface should be intervening by validating any outbound referrer? That isn't happening. I don't know the mechanics of Javascript implementations in browsers, particularly in reference to the HTTP interface of the browser engine itself, but I'm guessing that they're independent and the browser has very little supervisory control over what Javascript is doing with the XmlHTTPRequest method. In other words, the browser will play by the referrer rules, but Javascript isn't obligated to.

      By the way, to some extent I'm simply speculating, but the experts have already spoken. Read http://www.cgisecurity.com/articles/csrf-faq.shtml , and note well the following question/answer:

      Can CSRF be prevented by implementing referrer checking?
      No. Referer headers can be spoofed using XMLHTTP and by using flash as demonstrated by Amit Klein and rapid7 and therefore cannot be trusted.

      And yes, it's a bug. The real bug is the stupid conceit that HTTP can be stateful, first and foremost. You can hack at it and create state with cookies and the like, but if browser software can send valid information then crafted mobile malware can send invalid information and break state and get away with it.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
  14. What is the vulnerability? by Ed+Avis · · Score: 1

    Could anyone explain what this is all about? The article doesn't go into much detail. We all know that any http GET request can be accessed from another website, for example by putting it inside an IMG tag. When the user's browser visits the site, it goes and fetches all the image URIs. But that doesn't seem like an attack, because as we all know, you should never use GET requests for anything other than harmless idempotent information retrieval (to perform potentially dangerous operations use POST requests, which cannot be linked to).

    Is there something else going on here?

    --
    -- Ed Avis ed@membled.com
    1. Re:What is the vulnerability? by bryguy5 · · Score: 3, Informative

      POST doesn't help onclick=form.submit()

      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.

    2. Re:What is the vulnerability? by nolife · · Score: 2, Informative
      I supply your browser a link like this:

      http://slashdot.org/users.pl?op=edituser?sig="blow me"
      If you are logged into /. and you happen to click on that link, your signature will be changed to "blow me"
      (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 /. set to log in automatically and save your cookie, any request from your machine to my malicious site would change your signature.
      --
      Bad boys rape our young girls but Violet gives willingly.
    3. Re:What is the vulnerability? by fbjon · · Score: 1

      In principle, yes, but slashdot requires the correct form key to be submitted as well, so merely clicking on the link won't do. If you could sneak some javascript into the url, then it might be possible to fetch a key first, but slashdot is too restrictive for that, I believe.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    4. Re:What is the vulnerability? by The+MAZZTer · · Score: 1

      Also JavaScript cannot retrieve information from remote sites (using AJAX) EXCEPT the server that served the script itself. This prevents lots of ugly cross-site scripting problems, but there is still nothing to prevent iframes and forms from going to any website with any data. Even reading back data might not be too much of a problem with iframes (iframe object has a contentDocument method).

    5. Re:What is the vulnerability? by Ed+Avis · · Score: 1

      Javascript is allowed to submit forms to other websites? If that's really true, there would be thousands of exploits by now.

      --
      -- Ed Avis ed@membled.com
    6. Re:What is the vulnerability? by Ed+Avis · · Score: 1

      If that attack worked, it would be because of a bug in Slashdot - the users.pl script shouldn't allow any setting to be updated just from a GET request. It should require a form submission (POST request) to perform any operation that has a permanent effect. There is no limit to stupidity on the Internet, so I would not be surprised if some bank website allows you to get account.php?transfer_amount_dollars=1000000;dest_a ccount=12345 but really, if you write web applications where a simple link can have dangerous effects, you deserve what you get.

      --
      -- Ed Avis ed@membled.com
  15. That's why I don't think this is a problem. by khasim · · Score: 1

    The above example said Checkpoint was only vunerable when both were open at the same time.

    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" would work on static pages. Or pages that use a guessable format (based upon "screen name" or some such). But that's about it.
    1. Re:That's why I don't think this is a problem. by bryguy5 · · Score: 1

      The problem is these security appliances use firmware that's not updated frequently so the format is very predictable.

      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.

  16. Re:I Don't See It As a Sleeping Giant .... by Anonymous Coward · · Score: 0

    And that's exactly why this is such a concern. Everyone is going to ignore it and think they are safe.

    You don't have to have the two sites open at the same time, you just have to have not logged out of the sensitive site when you visit the malicious site. Given that at least one popular consumer firewall doesn't let you log out, it may not be as easy as you think to log out.

    Finally, do you really expect every web surfer out there to clear their cookies and close their browser every time they log into anything sensitive? Do you even think every web surfer out there has any idea what is sensitive and what is not? How about that little web control panel that is only used locally, so it doesn't really need to worry about security?

  17. Obvious by edraven · · Score: 1

    It's things like this that make me laugh out loud any time I see a security related product, or any product where security is a strong concern for that matter, with a web interface.

  18. Re:I Don't See It As a Sleeping Giant .... by darkmeridian · · Score: 1

    Personally, I surf with Firefox and control with IE (compatible with the intranet).

    --
    A NYC lawyer blogs. http://www.chuangblog.com/
  19. Trusted sites may inadvertently launch the attack by Anonymous Coward · · Score: 1, Interesting

    Unfortunately, even if you trust all the sites and they are all trustworthy and well-known, you can still get hit. It is a _potential_ calamity (hence the "sleeping giant" reference) and this is why the advice to companies that require security in their public web-apps is to review them now.

    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 in your browser. While you are logged into Paypal, suddenly an ad on Disney's site updates. Site ad's come from 3rd party websites. It turns out the new ad is not an image or whatever but a bit of javascript code. The code sends a request to Paypal to transfer money from the currently logged-in account to some recipient account. The request is accompanied by your current Paypal session cookie. Paypal receives this request FROM YOU to transfer money to the recipient with the session cookie validating that IT IS YOU and YOU ARE LOGGED IN. Viola! You didn't even know that it happened (until you noticed the money gone and your past "request" in Paypal's history). [I don't know if this could happen to Paypal, it depends on their system, I'm just talking of the hypothetical.]

    Now, it's not difficult to design sites in a way to prevent this attack, however, this design is a low-level design decision. To retroactively repair a site to prevent this attack may or may not require the modification of everything on the site, depending on how the original design was done. This can't sit well with companies that are potentially vulnerable.

    This problem has existed for a long time (something like a decade), but apparently people are only realizing it now. Now it's a race between the patchers and the attackers. Now, the chance of proper attack conditions existing is very low IMO, but spread this over millions of users, combinations of target sites and hosting sites, and you will have a few hits and it only takes one hit to make an attacker a lot of money (or simply amuse themselves).

    My two cents.
    --Dave Romig, Jr.

  20. Why won't this work on my setup by Anonymous Coward · · Score: 0

    How can I get IPTables at the command line to do this?

  21. give me a cheap fix by Anonymous Coward · · Score: 0

    2 cheapest ways to fix:

    1. cookie / session authority per form

    2. validate important transactions with either
    "pls enter the" {random} "digit of your password"
    or
    "type the letter shown on this image"

  22. Step out of the tunnel by Anonymous Coward · · Score: 0

    Routers are not the only target! Any kind of bank website, or server app that sits behind your firewall could be at risk to CRSF. I

  23. Re:I Don't See It As a Sleeping Giant .... by Anonymous Coward · · Score: 0

    Straw Poll:

    How many people are browsing Slashdot right now with a web interface to a router or appliance open?

    I/m betting that there are enough of you out there for me do do some nasty stuff if i had a 0day in /. and some less then respectable intentions.

  24. New technology allows data to go through open port by staretrabant · · Score: 1

    UTM is the new buzzword for security appliances, which for the lay person is: unified threat management. As complicated as UTMs are, when sold to SMB users, as described in the article, most do not employ a full-time sys-ad and either self configure or hire a consultant. The problem is that daily business needs are dynamic and the average VP/CFO/CTO/CSO/CIO all in one will not configure all of the flags, filters, and rules to adequately protect the internal network, like accidentally placing the file server in the DMZ. These UTM devices are marketed as the drop in fix-all plug it in and forget about it solution, and not to mention affordable for the SMB market. UTMs are also in the Enterprise market as large companies buy smaller companies to create SOA UTMs, like Cisco buying Iron Port, and are a morphed version of VPN, IPS, Firewall, NAC, and AV rolled into one. Traditionally each device required a sys ad and now with the new SOA model only 1 person is needed to manage that 1 box. So now imagine what 4 sys ads did and there is 1 sys ad with 1 device and the many flags? In the end the private network still gets hacked since the ports are open on the firewall and the NAC and IPS do not detect the hostile packets as the hackers have already found a way to bypass the security. Why so complicated? What about just closing the ports on the firewall entirely and using a basic commodity firewall? Then how is traffic going to get through like VPN? Easy. Steelcape Inc has engineered a new protocol that allows traffic to go through the closed ports on a firewall thus eliminating the primary attack vector of hackers. Set up takes only minutes and there is an added layer of security with an enterprise server that determines which zones can transact data which is similar to a VLAN. If these SMBs used the Steelcape solution they would have kept their firewalls and had a securer network.

  25. [ Admin, look here!] by Jaggo · · Score: 1

    Umm, I think this comment should probably be bumped [modded] up. I'ts darned helpful information.

  26. I'm not worried by Anonymous Coward · · Score: 0

    It seems rather foolish to me to be browsing the web in one tab/window while another is logged into your credit card or paypal account. That isn't even a natural workflow for me. When i log into something like that, i'm there to do something and then get out, not hang out. The real culprit seems to be cookie retention. I know cookies are very useful and i'd even say indispensible. However, I don't think any software should retain cookies between sessions. I always configure my browsers to delete cookies upon exiting. Trusting a computer to have your password is more dangerous than trusting a person to have your password.

  27. Re:New technology allows data to go through open p by Anonymous Coward · · Score: 0

    Steelcape Inc has engineered a new protocol that allows traffic to go through the closed ports on a firewall thus eliminating the primary attack vector of hackers. I'm sorry, but that sounds oxy-moronic. How does a method of allowing traffic to go through CLOSED ports on a firewall eliminate attack vectors? Seems like saying armor-piercing bullets increase the protectiveness of armor
    OR...
    post your password on slashdot and it will be secure...
  28. Re:New technology allows data to go through open p by danweber · · Score: 1

    If it's the device I've heard about before, it tunnels the things you need through non-TCP protocols.

    So, yeah, you don't need to open up *any* TCP ports. I'm not sure it buys you anything, besides the customer's ear for 2 seconds.

  29. Patch? by bunco · · Score: 1

    Aside from referrer checks, I don't see how a security gateway is supposed to prevent this.

  30. Some one please find some supporting information!! by Anonymous Coward · · Score: 0

    I don't see any release information on Checkpoints site. The software download comes from a non checkpoint site. The patch release notes are an image of a pirate guy. Unless some one can supply some other supporting info this is a HOAX and should be removed from the Main page. On another note don't these articles get investigated before posting? Isn't there a responsibly of due diligence by the /. Admins!!!!

  31. Fix the browsers by pgm33 · · Score: 1

    Change the web browsers. Firewall sites from each other in the browser. Any http authentication / cookies / SSL Client certificates used to access a site or that were created by a site must not be acessable or usable from another site for anything.

    While we're at it. Allow users to clear HTTP authentication passwords and SSL client authentication or better yet, clear them when the user closes the last page that uses them.

    This caching of authentication while any browser instance keeps running is dangerous and, for most users, unexpected.

  32. Re:Some one please find some supporting informatio by danweber · · Score: 1

    The software download comes from a non checkpoint site.

    No it doesn't. There's no "software download" from the Sofaware site, the company that handles Check Point's SMB business.

    If you have a Check Point product affected by this, it's probably already downloaded the 7.0.45x fix.

  33. Simple Solution by cs668 · · Score: 1

    I think that simply creating a unique ID for each form/URL and validating that on the Post/Get request should stop the problem.

    Unless of course the javascript loaded the page containing the form, parsed it and pulled out the secret variable :-(

  34. Boycott third-party cookies by LeadSongDog · · Score: 1

    Ok, it won't solve the problem, but you know you want to do it anyway ;/)

    --
    Oh, I'm sorry sir, I thought you were referring to me, Mr. Wensleydale.
  35. And the news is? by Rich · · Score: 1

    This has been old news for years, there are much bigger and more real problems out there in commercial sites. Before I worry about CSRF, I'd far rather people sorted out SQL injection and XSS which are ridiculously common. If a site is (reasonably) secure (something I rarely see) then modern frameworks like django already provide tools that eliminate this issue see http://www.djangoproject.com/documentation/csrf/

  36. Re:New technology allows data to go through open p by staretrabant · · Score: 1

    You are somewhat correct. The attack vectors that are eliminated by closing ports on the firewall are:
    1) Port based exploits
    2) Man-in-the-middle attacks
    3) Wireless attacks-as long as router or AP is protected by Steelcape
    4) DNS hijacking
    5) packet ip spoofing and hijacking
    If TJMAXX was using a stronger password policy and was using Steelcape's protocol from the WAP or wireless router to the wireless device or to the server there would be no $6 billion dollar poster child, since their firewall would have denied the hackers attempts to access their private network.

  37. Re:New technology allows data to go through open p by staretrabant · · Score: 1

    see for yourself:

    http://www.steelcape.com/

  38. Re:M$ UR DAYZ R NUMBURD by Anonymous Coward · · Score: 0

    Well it got you as far as Slashdot.

    Next thing you know you'll be revising Wikipedia entries.

  39. cookie won't play by epine · · Score: 1


    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 correct referrer tag, or not from any page containing/enabling Javascript, or pointless friviolity 2.0, or ideally, all of the above.

    These cookie directives would allow a well-implemented user agent to protect the user against many of the attack scenarios described in this thread. Presumably the site issuing the cookie in the first place knows what kinds of pages and content the cookie should be associated with for legitimate uses.

    Most of the hacks described here would become useless if the cookie won't play. Am I missing something, or is this problem really that stupid?

  40. Re:New technology allows data to go through open p by Slashcrap · · Score: 1

    see for yourself:

    http://www.steelcape.com/ Congratulations, you've invented your own tunneling protocol. Like IPSEC or GRE, except instead of being carefully designed and peer reviewed by the IETF it's been tossed together by some no-name, snake oil vendor that thinks spamming Slashdot is an acceptable marketing strategy.

    You do realise that anyone can click your username and instantly see how you're posting the same irrelevant shit to different stories, right?
  41. Re:New technology allows data to go through open p by cheese-cube · · Score: 1

    Wow a user-marketingdroid.

  42. CSRF is overblown by brunes69 · · Score: 1

    And this is why - in order to forge the request you have to know the internal IP or host you're trying to exploit in order to construct the CSRF attack vector.

    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
    b) I send sysadmin an email poting at my cool blog
    c) Sysadmin visits my cool blog boom he is expoited!

    Problem? how did I know what internalcompanysite.net was, or where somesoftware is? Answer: I don't.

    CSRF can only be used if you already know the attack vectors for the company. Otherwise it is useless.

    1. Re:CSRF is overblown by fatovich · · Score: 1

      Sure but how long until malware sites have all of the defaults for the web interfaces of the linksys, netgear, dlink, cisco gear. Change DNS server properties and game over SOHO users.

    2. Re:CSRF is overblown by brunes69 · · Score: 1

      There is no such thing as a "default" for an IP. It is different for every network.

      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 at the site.