Slashdot Mirror


Web Services - More Secure or Less?

visibleman asks: "I have recently moved onto a project which is based around web services and SOAP and have, therefore, been doing some reading on those subjects. One thing which keeps coming up is that web services are claimed to be more secure than CORBA and RMI because it means drilling less holes through firewalls. If I was a firewall administrator (I am not, I am a developer) I would want to know that if I open up a port (port 80 for instance) I know what kind of requests are coming through it. Since SOAP is essentially a mechanism for sending functional requests over a port specified for web page requests this would make me nervous. My preference would be that requests for web pages go over one port and requests to run services go over another - favouring an IIOP solution. Am I off my trolley or would other Slashdotters have similar fears?"

300 comments

  1. The tendancy to run everything on port80 by mosch · · Score: 5, Insightful
    It's a new trend, run everything on port 80 so your network admin has less to worry about, but that whole concept is a steaming pile of shit.

    The security or insecurity of a service has nothing to do with whether or not the request can be brokered by a webserver. All this really accomplishes is setting up the webserver as a massive single point of failure, and making it harder to audit what services a particular box is running.

    When you use the paradigm that each service has an associated port, you can be sure that nobody is running any unknown services merely by blocking ports. When everything is on port 80, the firewall becomes much less useful.

    1. Re:The tendancy to run everything on port80 by xyzzy · · Score: 5, Informative

      Exactly, there has been much gnashing of teeth on the xml-dist-app list about this (a SOAP standardization list).

      Although SOAP is bound to HTTP, there is no requirement that you use port 80 -- it's just a well-known HTTP port. As long as the people who need to use your service agree to it, you can use port 12345 if you want. If you are really paranoid, you should be running HTTP over something more secure, like a VPN between you and the service requestor, and not the public (great unwashed) internet.

    2. Re:The tendancy to run everything on port80 by MikeBabcock · · Score: 2

      As the original poster said as well, this means that now you don't know that port 80 traffic is web traffic anymore and application-specific proxies are required more and more often instead of simple port openings.

      --
      - Michael T. Babcock (Yes, I blog)
    3. Re:The tendancy to run everything on port80 by mikeee · · Score: 4, Insightful

      When you use the paradigm that each service has an associated port, you can be sure that nobody is running any unknown services merely by blocking ports

      Ah ha! Pronoun trouble!

      Unfortunately, you can only be sure that nobody is running any unknown services if they use the paradigm that each service has an associated port. Some fool rigs up a VPN layered over HTTPS or DNS, and what good is your firewall then?

      In some ways, SOAP's obvious security problem is better; at least it's clear you're screwed.

      Solving this correctly is a very hard problem.

    4. Re:The tendancy to run everything on port80 by Anonymous Coward · · Score: 1, Funny


      A three digit user ID...
      </OBEISANCE>

    5. Re:The tendancy to run everything on port80 by freeside · · Score: 1

      The fact that you run some protocol over HTTP
      (and that's essentially is what SOAP is, I think)
      does not make firewalls less useful. It just requires newer firewalls that "know" how SOAP looks and can burn few more CPU cycles and detect it. So with new gen firewalls, you will be able to say I "allow HTTP, I prohibit SOAP"... Stateful inspection, man.... Firewalls are not what they were used to be, they don't look at the port alone anymore

    6. Re:The tendancy to run everything on port80 by Matt2000 · · Score: 0, Offtopic


      I think its appropriate to put a steaming pile of shit on port 80, however if it's a streaming pile of shit I'd recommend ports 8805 and up.

      --

    7. Re:The tendancy to run everything on port80 by Thomas+Charron · · Score: 4, Informative

      SOAP is NOT bound to HTTP by any means. It is the most popular implementation of the transport layer, but it can, just as I'm looking at now, go thru other transports, such as an SSL socket connection.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    8. Re:The tendancy to run everything on port80 by KyleCordes · · Score: 5, Informative

      It's not about security, it's about the adminstrative effort of getting a firewall configuration change made in a large organization. In short, it's really hard to do.

      Here's a purposely oversimplified and perhaps harsh explanation:

      Simplisting firewall adminstrators don't care what you send over the network, as long as it's on port 80. More sophisticated adminstrators also insist that it's HTTP. Even more sophisticated ones inspect in more detail, such as checking to see if files transferred have viruses in them.

      It's only a matter of time before firewall adminstrators notice that SOAP requests are really RPC calls, and block them by default - then we will all be back to having to get specific configuration changes done to let apps work over the firewall. We won't want to do that for the same reasons we don't want to try to convince someone that it's OK to open a port.

      I predict that there will therefore be a way developed to wrap SOAP not only in HTTP, but in HTML. The XML SOAP request could sit inside of simple HTML wrapper tags; this would let it go through the likely block-by-default of SOAP traffic.

    9. Re:The tendancy to run everything on port80 by Saint+Stephen · · Score: 2, Interesting

      Check out DIME. Direct Internet Message Encapsulation. The successor to http, and will be the preferred protocol for Soap.

      Soap makes me happy. If we all shut up, just shut up and be proper and diligent, we just *might* be able to put these platform wars behind us. Of course some amoung us will do everything short of homicide to fuck it up, because they have a vested interest in keeping us fighting each other, but maybe some people will get it.

    10. Re:The tendancy to run everything on port80 by Thomas+Charron · · Score: 2

      I'll have to take a greater look at it. I was using SSL sockets simply becouse of the simple availability of software, really. Does it provide session based encryption?

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    11. Re:The tendancy to run everything on port80 by xyzzy · · Score: 2

      Right, I should have written "the most common binding". However, I would hazard a guess that 90%+ of SOAP implementations are using HTTP, and not DIME, BEEP/BXXP, or (gasp) SMTP(!).

    12. Re:The tendancy to run everything on port80 by xyzzy · · Score: 1

      At the risk of replying to a troll, I'd say that if your organization is so fscked that you'd rather obscure what you're doing rather than attempt to cooperate with another arm of your organization -- well, you've got more severe problems than SOAP security! :-)

      I, for one, am rather glad that SOAP is light on the security front. Security is a discipline all in its own, with its own science and technologies. If you start to intermingle it with too many other things, not only is it more burdensome, but you run the risk of missing things. If you are worried, for instance, about people spying on your SOAP traffic, don't build an "encrypted SOAP", use one of the 6.02E23 other transport protocol security mechanisms that have been designed and thoroughly thought out (SSL,IPsec,you-name-it). Let SOAP (or whatever you are developing) do what IT does well, and let the security do what IT does well.

    13. Re:The tendancy to run everything on port80 by chris_7d0h · · Score: 1

      > Security is a discipline all in its own

      Yes and no.

      Security should be in the mind of any architect and developer.
      Network security is just one part of the whole.
      You also have exploits in the code due to slips in the design and implementation (Look at the long running show "IIS buffer overflow", for ex.).
      Then you also have security as a mindset, but that's out of scope for a technical discussion.

      --
      In a society that believes in nothing, fear becomes the only agenda ~ Bill Durodié
    14. Re:The tendancy to run everything on port80 by paranoic · · Score: 1

      I agree, but think of the customer trying to run your program on a non standard port.

      1. There is no firewall so there is no problem.

      2. There is a firewall with that port blocked. They have to track down their sysadmin and have that person turn it on.

      In a perfect world #2 works as it should. In the real world, the sysadmin is offsite on a contract basis. You're program has now caused an additional expense for your customer. Never mind dealing with the sysadmin who can't configure the firewall correctly.

      Remember all your customer wanted was for you program to run. They DIDN'T want to spend weeks debugging your program, which is were the blame will fall.

    15. Re:The tendancy to run everything on port80 by swillden · · Score: 2

      It's not about security, it's about the adminstrative effort of getting a firewall configuration change made in a large organization.

      You mean it's all about avoiding security. Security policies are getting in your way, so you're finding a way to quietly violate their spirit while conforming to their letter. That's a great way to completely compromise the security of your company's IT infrastructure. Good job.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    16. Re:The tendancy to run everything on port80 by dasunt · · Score: 2


      But port 12345 is already being used. :P

    17. Re:The tendancy to run everything on port80 by Anonymous Coward · · Score: 0

      How will stateful inspection help if you use HTTPS for transport?

    18. Re:The tendancy to run everything on port80 by Anonymous Coward · · Score: 0

      SOAP is not bound to HTTP - that's just the most popular implementation.

      We've got a project where we're doing SOAP via email (SMTP/POP3) for async stuff. Works like a champ.

    19. Re:The tendancy to run everything on port80 by mentin · · Score: 1

      The difference between SOAP and old RPC protocols is its Request-Responce model, that is similar to HTTP. So Firewall can read a request, inspect it, send it to server, receive responce, and send it to client. You don't have any long open TCP connection, server can't send anything itself without explicit request, only one response to one request, so on. So it is easy for firewall to check this interaction, which was impossible with RPC.
      Since this model is similar enough to HTTP, it makes sence to use port 80, because even simple firewalls that don't know anything about SOAP can do some work with SOAP firewalling.

      --
      MSDOS: 20+ years without remote hole in the default install
    20. Re:The tendancy to run everything on port80 by DotComVictim · · Score: 1

      The fact is, the port that a service, or group of services is running on, does not matter. What matters in the syntax and semantics of the messages exchanged between the client and server. A modern firewall needs to be intelligent enough to interpret the syntax and semantics of requests before allowing them to pass.

      Until recently, most hacking attacks and defense mechanisms have focused mostly on syntactic attacks (buffer overflows and parsing induced logic errors being the most relevant attacks; sandboxes and ruleset based detection being the most relevant defenses). These types of attacks are easy for firewalls to understand and defend against.

      The type of attacks that are not easy to defend against are semantic attacks. These attacks depend on behaviors not specified explicitly by any type of protocol operation, but by the side effects of those operations on complex software systems. An example of this would be a site allowing FTP uploads, with a daemon periodically scanning the incoming directory. Suppose a specially formed filename could be used to attack the scanning daemon - there is nothing suspicious about this at the syntactic level, and firewalls would be none the wiser.

      Any protocol designed to have side effects on the server, where custom server applications may depend on and use the results of those side effects is vulnerable to these types of attacks. SOAP is one way of doing this, but is no different than the HTTP POST method - both provide the same inherent danger.

      Don't get me wrong - I agree that separating services by port is a good idea. It's just not enough. Modern firewalls can selectively filter out HTTP requests based on regular expression matches in the header fields - this is all you need to stop something like SOAP from being accessible through a firewall. Establishing different levels of permission for any object protocol through HTTP is left as an exercise to the reader.

    21. Re:The tendancy to run everything on port80 by haruharaharu · · Score: 2

      you're finding a way to quietly violate their spirit while conforming to their letter. That's a great way to completely compromise the security of your company's IT infrastructure. Good job.

      I'm just saving my boss the trouble of doing it himself

      --
      Reboot macht Frei.
    22. Re:The tendancy to run everything on port80 by chris_mahan · · Score: 1

      Company security is usually formulated by an exec who got a call from a government agency that required them to implement a security scheme. The exec freaks, and decides that fine-tuning the security is not worth the hassle (not knowing), so the decision comes down: close everything except email and web (SSL being web, really).

      Of course, that's akin to closing the Mexican border when terrorists are coming in through Canada, regardless of how many people have legitimate business going back and forth.

      --

      "Piter, too, is dead."

    23. Re:The tendancy to run everything on port80 by ahde · · Score: 1

      you need to look at the other side of the issue. Maybe the admin doesn't want the users running your program through his network. I'll admit there a lot of ignorant bone-headed admins out there, but chances are their network is insecure already, so soap doesn't matter to them one way or another.

    24. Re:The tendancy to run everything on port80 by adamy · · Score: 0, Offtopic

      THis is off topic but...
      In response to your Sig. The difference between science and religeon is that Religeon is based on belief and Science is based on doubt.

      Now programming on the other hand contains a big chunk of religeon, voodoo, and black magic :)

      --
      Open Source Identity Management: FreeIPA.org
    25. Re:The tendancy to run everything on port80 by ahde · · Score: 2

      if you're already burning a "few more CPU cycles" to assemble, parse, analyze, and resend all your packets, what's a few more to brute force decrypt?

    26. Re:The tendancy to run everything on port80 by some_austin_guy · · Score: 1

      Software vendors view their customers' network administrators as deployment obstacles. It isn't that software vendors are trying to make life easier for network administrators, but rather that they want to bypass network administrators.

    27. Re:The tendancy to run everything on port80 by ahde · · Score: 2

      port numbers are a *convention* that makes filtering easier. If the large majority of messages over each port are benign (or at least known) -- then it makes it easier to handle the exceptions. If you know that HTTP requests over port 80 are going to be handled statically most of the time then it is safer to accept them. But if the relative security of a port is compromised, then it becomes harder to spot portential threats.

      The same principle, in reverse, is why phil zimmerman (and others) advocates email encryption. The more common encryption is, the less strong the protocol needs to be to achieve relative security. It takes more work to filter thorough a million 46 bit ciphertexts than 1 128 bit. Technically this isn't true, but practically it is.

      It is easier to spot a smoking gun if there are only two people in the room than if you are in a stadium full of people.

    28. Re:The tendancy to run everything on port80 by jstoner · · Score: 1
      Security is a discipline all in its own, with its own science and technologies. If you start to intermingle it with too many other things, not only is it more burdensome, but you run the risk of missing things.

      I'm sorry, but this is painfully naive. Yes, security is a discipline all in its own, but that hardly separates it from other things. If your application has a buffer overrun or a poorly designed authorization scheme, you're still insecure. If you allow bad passwords, you're still insecure. Security is intermingled with every line of code you write, whether you like it or not.

      Whatever port you run on, the attitude of "secure the transport and the system will be secure" is a big big problem.

      That said, I agree with your point about not rolling your own secure transport--leave that to the people who do it for a living. History is full of examples of people who thought crypto was easy, and got bit on the ass.

      --

      'In knowledge is power, in wisdom humility.'
    29. Re:The tendancy to run everything on port80 by chris_7d0h · · Score: 1

      And the off-topic warning remains.

      I agree with you, in principle.
      However, it was a jest to the "Scientific Community" at large.
      There is a disturbing pattern which re-emerge again and again.

      Lights please (example x2)..
      - - - - - - - - -
      HSCS: The world is flat.
      TSCL: THE WORLD IS FLAT.
      SWNI: No it's round.
      TSCL: SHUT UP! STONE HIM!

      ... a few hundred years pass by ...

      HSCS: Acupuncture is bogus. That it works more often than western medicine in some areas are pure coincidence. If it had worked we would already have thought of it.
      TSCL: ACUPUNCTURE IS A JOKE!!
      SWNI: But I took this idea from people who have practiced it and cured people for thousands of years.
      TSCL: BOGUUUUS! THAT PROVES NOTHING! WE FORBID YOU FROM PRACTICE CHARLATAN! SUE HER!

      - - - - - - - - -
      HSCS = High Standing Contemporary Scientist.
      SWNI = Scientist With New (/outrageous) Ideas.
      TSCL = The Scientific Community at Large.

      Hrm.. yes...

      --
      In a society that believes in nothing, fear becomes the only agenda ~ Bill Durodié
    30. Re:The tendancy to run everything on port80 by h2odragon · · Score: 1
      "If we just all shut up, maybe everyone will be forced to use *MY* platform... and maybe i can speed the process by casting aspersions on the motives of those who think a little differently than I. After all, there could be no greater sin than disgreeing with the great Me."

      I bet you pushed S/MIME too.

    31. Re:The tendancy to run everything on port80 by HamNRye · · Score: 2

      One could simply look at Grc.com and read Steve's account of his DDOS attack. They were able to contain the attack by only allowing Port 80 traffic.

      Hmmm, I think around here it takes a couple of weeks to get your Security ID, and you can't get around the building. Maybe we should just have one security ID and let everybody use it. That would be alot simpler.

      Desiging poor protocols to combat poor management is a lose/lose situation.

      This would be like saying that all users should be administrators so they can access the CD-ROM because it takes forever for the SA to change the mount permissions. Actually that's just the solution Microsoft took in Windows XP.

      The sad thing is, SOAP will be used because it's easy, it will be insecure as heck, and it will stay around for years even though we know it should not be used on our network. Sounds like IIS don't it??

      One poster pointed out that a POST request is not much more secure because there is usually not much security checking in the CGI scripts, and that XML programmers will do a better job.

      Problem one: These uber-programmers cannot work with a non-standard port, but have the wherewithall to properly secure their scripts?? Problem Two: Who will these XML programmers be?? The same ones who are writing cgi scripts today.

      This is just another case of creating tomorrow's problems today!

      Jason Maggard
      Shakespearian Monkey
      Nothing4sale.org

      Security How-TO:
      Find the telephone cable in the back of your computer and remove it.

    32. Re:The tendancy to run everything on port80 by Anonymous Coward · · Score: 0

      More like this:

      HSCS: The world is flat.
      TSCL: THE WORLD IS FLAT.
      SWNI: No it's round, see, I have this evidence here; the coriolis effect, length of a day in different latitudes, curvature of the horizon, etc.
      TSCL: SHUT UP! STONE HIM!

      WJNA: Acupuncture is real! Psychic phenomena are real! ET is among us!
      TSCL: Where is the evidence?
      WJNA: Well, you see, we are all creatures of light, and light is a frequency, and colors are frequencies too, and two frequencies resonate together, therefore the resonant frequency combines with the music of the spheres, which when you multiply by the numerological value of OSAMA BIN LADEN, gives us this quatrain from Nostradamus...
      TSCL: Shut the fuck up.

      - - - - - - - - -
      WJNA: Whack Job New Ager.

    33. Re:The tendancy to run everything on port80 by Bat_Masterson · · Score: 1

      But, if SOAP is going to pipe all sorts of requests across one port, does it really matter if you force people to connect to that port via a secure connection? I mean, that may keep out the average hacker, but your service requestor still has access to all sorts of things that you may not want him to have access to -- right?

    34. Re:The tendancy to run everything on port80 by Bat_Masterson · · Score: 1

      Can you say Trojan Horse virus?

    35. Re:The tendancy to run everything on port80 by msaavedra · · Score: 2

      I looked up DIME on Google and this looks to be a protocol developed by Microsoft specifically for use with SOAP, and by extension .NET. Is this going to be an open standard, approved by the W3C or another body? Now that the anti-trust threat has mostly been eliminated, I can see this becoming a typical MS-style moving-target type of "standard" that is nearly impossible for third-parties to implement well. I'm trying not to be paranoid, but this makes me a bit nervous to think of this as the successor to HTTP.

      --
      "Any fool can make a rule, and any fool will mind it."
      --Henry David Thoreau
    36. Re:The tendancy to run everything on port80 by xyzzy · · Score: 2

      That depends entirely on how you author your SOAP application. SOAP describes (at a high level) how you can make applications talk to each other, ala TCP/IP. It does not (and should not) define what the two applications say to each other.

    37. Re:The tendancy to run everything on port80 by Anonymous Coward · · Score: 0

      If that person has to use an HTTP proxy and authenticate to it, then that person could get caught.

      Sure SSL stuff is encrypted but "Mean Old Admin" could notice some weird stuff in the proxy logs, and voila account blocked (e.g. 1MB of transfers taking 10 hours, or >20MB of transfers).

      It's easy to notice the weird stuff since 90% of the users visit the same old sites. Filter those out and it's easier to find the 1% you need to watch.

      And no one inside needs to access DNS outside- coz they use the proxy - only the proxy needs to know. They can use the internal DNS but all they get is info about the internal domain.

      You can still tunnel out, but by that time they might as well go home and use their own ISP, or use IP over carrier pigeons.

      The real problem with this SOAP/"everything over HTTP" people are pushing is you end up having two networks that want to talk a lot of different stuff to each other in great detail.

      Putting a firewall between such networks is usually counter productive. Because the whole idea of a firewall is to block almost everything.

      And having one or both of these networks exposed to hostile/unsecured networks is crazy.

      Think about it. Should something on an unsecured network be able to ask a server on a secured network to run hundreds of undeterminable remote procedures for it?

      That's the big problem.

      "Mean Old Admin" blocked everything other than HTTP in order to block EVERYTHING THAT PEOPLE NOW WANT TO DO OVER SOAP from getting through to corporate networks. Yes sir, Mean Old Admin thinks that it's a bad idea to have someone outside telling your internal servers to run arbitrary stuff.

      "Mean Old Admin" knows that most of those SOAP programmers are clueless about security if not why did they design such a protocol in the first place.

      Because if it's on a trusted network why bother with tunnelling, HTTP style overheads etc- go direct. If it's on an untrusted network - JUST SAY NO.

      Are you sure people can code this sort of stuff securely? If a lot of people start doing this, we'd probably need BUGTRAQ-SOAP.

  2. Viruses by boltar · · Score: 0

    Whatever you do you can virtually guarantee that
    M$ will come out with blurb about "rich" programmer
    experiences or "Meeting todays challenges" or some
    other marketdroid BS and will promptly throw some
    "features" into SOAP that no one really needs
    that will be a virus writers dream. No I don't
    know what these might be but I'm just going by
    their previous track record on security.

  3. From a security standpoint by Omnifarious · · Score: 5, Insightful

    I don't think it matters which you use. Allowing people to make functional requests to programs inside your firewall is just as much of a security risk either way. I actually think the function call model is an evil, misleading, broken way of thinking about messages over networks, but like several other practices, people seem bound and determined that this is the way to do things. If you must do this evil thing, it probably doesn't matter (from a security standpoint) how you do it.

    The only thing you really gain by not going through port 80 is that the attacker theoretically won't be able to break into your web server software by breaking into your RPC software, but I wouldn't count on that being the case. Besides, either way, they've gotten onto your box, does it really matter how?

    Holes in firewalls aren't intrinsically bad things. It's what they lead to that's the problem.

    1. Re:From a security standpoint by kaisyain · · Score: 3, Interesting

      The document you reference has no explanation about why the function call model is evil, misleading, or broken. All you do is put forward a short argument that it more tightly couples endpoints than exchanging XML documents and that it is lower performance than dumping raw memory.

      That is hardly reason for calling it evil.

      To call it misleading you would need to provide an argument for why the function call paradigm makes sense when both program components are on the local machine but not when they are distributed. Why should that make a difference? Why should I care where the other end of my transaction be located?

      It seems your arguments have more to do with current implementations than any morality inherent in the function call paradigm. I notice that your own alternative is written in C++, which uses the function call paradigm rather than the obviously more efficient, correct, and aesthetically pleasing message passing paradigm.

    2. Re:From a security standpoint by Anonymous Coward · · Score: 0

      One question I have is how do you do authentication with web services. Also HTTPS is relatively expensive and might not be the perfect alternative in every scenario. So you end up sending everything in plain text xml across the wire? This may not be appropriate in a lot of cases (especially with the authentication process)

      Any thoughts. (be gentle, I'm pretty new to this!)

    3. Re:From a security standpoint by Omnifarious · · Score: 3, Interesting

      The document you reference has no explanation about why the function call model is evil, misleading, or broken. All you do is put forward a short argument that it more tightly couples endpoints than exchanging XML documents and that it is lower performance than dumping raw memory.

      I also complain a lot about latency, and I should complain about the lack of a shared address space, which leads to even more latency. That's the biggest issue. The function call model encourages you to ignore unavoidable latency in network messages. It's a fine model for things within the same process, but latency makes it misleading and evil for network messages.

      To call it misleading you would need to provide an argument for why the function call paradigm makes sense when both program components are on the local machine but not when they are distributed. Why should that make a difference? Why should I care where the other end of my transaction be located?

      Because, when it's located far away, you have several issues to contend with. First, a function call normally has a latency in the nanosecond range. A network message over the Internet normally has a latency in the millisecond range. Even LAN messages have a latency in the 100s of microsecond range. That's at least 4-5 orders of magnitude (base 10) difference. That's gigantically huge. Yet, it sits there in your program looking like an innocent function call that you'd normally expect to extract an overhead of a few nanseconds.

      The other problem is that you don't have very much control over the state of the other program, especially if someone else wrote it. You're essentially introducing close state dependencies between programs that are largely unrelated, and several milliseconds apart. There is nothing _inherent_ about the function call model that forces you to introduce these dependencies, but everything that everybody knows about programming causes you to make certain assumptions about function calls that just aren't true for network messages, especially between largely unrelated programs.

      RPC is evil because it hides those essential differences from you.

    4. Re:From a security standpoint by kaisyain · · Score: 2, Informative

      If I make a function call that's because I want it to be synchronous (well, or because I'm too lazy or the language I'm using makes it far too hard to do asynchronous properly). I expect it to take however long it takes. Some of that time will be function call overhead. Some will be disk overhead. Some will be processing overhead. Some will be network overhead. All of those things are always there. I think you're making too much of an issue out of the increased function call overhead when there are plenty of other reasons a function might take many milliseconds to respond.

      If I move my program from a flash device to an old MFM drive the drive latency would increase substantially but I don't think that would be reason for calling all synchronous disk I/O broken, evil, and misleading.

    5. Re:From a security standpoint by mosch · · Score: 2

      Actually i'm more concerned about somebody executing illegal RPC requests because of a flaw in the web server. A lot of this bullshit tends to be implemented on IIS after all.

    6. Re:From a security standpoint by Chris+Parrinello · · Score: 3, Insightful

      I find it amusing that what you call "evil" is the reason why RPC and Corba/IIOP are they way they are. They're hiding the fact that the method call you make might be in process or might be on a remote machine.

      "The other problem is that you don't have very much control over the state of the other program, especially if someone else wrote it."

      And with SOAP and XML, you have total control over the remote program? Having "loosely coupled" "general" SOAP messages won't solve incorrect implementations of the remote service.

    7. Re:From a security standpoint by billcopc · · Score: 2

      Mod Omnifarious' post up, he's got a seriously valid and important point here.

      --
      -Billco, Fnarg.com
    8. Re:From a security standpoint by Dalroth · · Score: 2, Interesting

      Anybody who uses SOAP requests for doing small and frequent function calls over the net is foolish and deserves to suffer the consequences he will face for his foolishness.

      On the other hand, however, those who use SOAP calls correctly will reap the benefits SOAP has to offer.

      An example:

      I work for a mortgage company. We had an online rate search engine (till the market went sour anyway). One of our clients ran a few XML queries to our engine (they were located in California, we are in Chicago). Here are the two most important queries.

      1. The Loan Search: they would ask a few questions, and then do a Loan Search with one XML query and cache the results.

      2. Apply for a loan: they would acquire all information related to applying for a loan, and then send one XML query at the end containing all that information.

      Had SOAP and WebServices been available at the time to use in place of custom built XML handling methods (not to even mention production ready XML libraries) our jobs would have been a lot easier.

      Had we used SOAP to handle every request (including sending every individual piece of information seperately, or sending an XML document back and forth for every step of the loan application process) our application would have been a hideous failure. Instead, it worked just fine. The biggest problems were my XML parsing techniques were lackluster (this was the first work with XML I had done so it was a little slow) and the market just wasn't there for online mortgaging (to this day, only about half a percent of people who get mortgages actually buy their mortgages entirely online).

      SOAP has it's uses, but like any good technology, people can abuse it. As always, time will seperate the good programmers from the bad programmers. Therefore, my conclusion is that SOAP is not inherently evil, rather a lot of crappy programmers are! :)

      Bryan

    9. Re:From a security standpoint by Omnifarious · · Score: 2

      One question I have is how do you do authentication with web services. Also HTTPS is relatively expensive and might not be the perfect alternative in every scenario. So you end up sending everything in plain text xml across the wire? This may not be appropriate in a lot of cases (especially with the authentication process)

      SSL isn't an RPC protocol. It's fine to use to hide your data. :-)

    10. Re:From a security standpoint by Omnifarious · · Score: 2

      I don't like SOAP either. When I talked about XML in my 'paper', I meant XML documents that aren't designed to encapsulate a function call, but merely carry information.

    11. Re:From a security standpoint by Omnifarious · · Score: 2

      Oops, I didn't answer your question before. You don't WANT to use SSL because it's expensive.

      Well, SSL/TLS, or something like it is the only solution that's really any better than plain text XML. If you think something more obscure is better, you're just fooling yourself. Though you can use something other than HTTPS (which assumes you will be making HTTP requests over SSL/TLS) you might want to design your own protocol and encapsulate it in SSL/TLS instead.

      The advantage to doing your own protocol would be that you could have different session setup and teardown semantics than HTTP. HTTP tends to assume that you'll fetch a web page (or a few pages in HTTP/1.1) then disconnect. You might to avoid the setup and teardown overhead because that's the most expensive part of an SSL/TLS session, so designing your own protocol that kept the connection around longer might be an idea.

    12. Re:From a security standpoint by Computer! · · Score: 2

      Anybody who uses SOAP requests for doing small and frequent function calls over the net is foolish and deserves to suffer the consequences he will face for his foolishness.

      You can't make blanket statements like that. If I am writing an ecommerce app that interfaces with a FedEx web service to get prices for shipping to various destinations for certain services at a certain weight, and I make a call every time a customer wants to know how much shipping would cost, I can get that aspect of the system up and running in less than half the time it would take to develop the in-house data structures, load them, and continue to load them daily (or maybe several times a day, depending on how often the data changes). Yes, I know that last sentence was a run-on, but you get the point. If time-to-market is a high priority (and it should be), then frequent small calls to internet web services could be the answer to a lot of problems.

      --
      If you fall off a building, go real limp, because maybe you'll look like a dummy and people will be like hey, free dummy
    13. Re:From a security standpoint by Dalroth · · Score: 1
      But you make that call one time, at the end of your application when you need to do the final calculation for the shipping bill, correct?

      If, however, you have a search page that could throw up 50 different products, and you query fed-ex for each individual product every time you load the page (without doing any caching) then I guarantee your web site will tank under a heavy load.

      I suppose I should qualify my statement a little more, nonetheless:

      Anybody who foolishly uses web services without taking into consideration the latencies and overheads involved deserves to suffer the consequences.

      Does that make you happier?

      Anyway, my original point still stands: The technology is sound when used properly, and the good programmers will, as always, seperate themselves from the bad.

    14. Re:From a security standpoint by Jerf · · Score: 2

      You write a lot of good reasons to not use RPC calls like normal function calls.

      How fortunate that I don't know anyone who does.

      Just because there's a performance difference between RPC and LPC doesn't mean that we HAVE to have a different interface for the two. In fact, it's downright stupid to deny yourself the simplicity of function-like RPC calling when it's what the situation calls for.

      If a program in question has other needs, then do something else.

      You are making a mountain out of a molehill. Show me a program that has the problems you are so worried about. I don't see one. I see programmers using RPC and other methods correctly for the situation.

      For a change.

    15. Re:From a security standpoint by Porag_Spliffing · · Score: 1

      Holes in firewalls aren't intrinsically bad things. It's what they lead to that's the problem.

      The sad fact is that all firewalls are intrinsically holes.

      Back in the mists of time.........

      First we had the simple trusting internet

      .rhosts files , IP based authentication. We trusted people would use their real IP address.

      The some stinking cracker came and spoofed it

      Then we had passwords on our services

      The some stinking cracker came and sniffed it

      Then we thought we would limit services, well it's easy, lets uses those nice allocated port numbers....

      Guess what, some stinking M$ + plenty others came and spoofed it

      The problem is when you can not authenticate and trust the parties communicating through your firewall a sophisticated adversery can get anything he likes tunnelled through anthing you allow.

      I send HTML chosen from an agreed set of 256
      -
      You reply HTML from similar pool

      we have 2 way 8 bit traffic. Tunneling any proto is left as an excercise for the reader

      You can assume that the BigBad.Net will be evil so you have to trust you internal users not to download latest CoolApp and not to be sophisticated hackers. Or put them all on locked down OS (No boot from removable media, case alarm) Or have separate net-connected network from real work network AND the same difficulty to move data to/from this net as to move it in/out of your office.

      I have worked in Military secure systems and been involved in testing and deployment of secure bank remote access (remote managment for THE big iron) . In either of these you would not dream of allowing either side of the dialog to be unauthenticated (/What you have/What you are/What you know - choose 2 minimum) Without this level of authetication security is an illusion.

      Once you allow dialog with a non-trusted end it is really a case of damage limitation, SOAP just moves the barier down IQ a few points.

      --
      Maybe you live in interesting times
    16. Re:From a security standpoint by haruharaharu · · Score: 2

      XML documents that aren't designed to encapsulate a function call, but merely carry information.

      in SOAP, XML is used to encapsulate function call ids and arguments - it's just data

      --
      Reboot macht Frei.
    17. Re:From a security standpoint by Omnifarious · · Score: 2

      I don't know of any programs outside of a proprietary environment that do that. I know of some older research grade programs that do that. I haven't investigated GNOME carefully.

      I think that the simplicity is as false as the simplicity of starting up a new thread for every connection when you have to talk to 5000 people at once.

    18. Re:From a security standpoint by Omnifarious · · Score: 3, Insightful

      Does a call that results in a bunch of SOAP formatted XML being put on the wire look like a function call or not? Does that function call have arguments that mirror the data stuck on the wire or not? If the answer is yes, then SOAP is designed to encapsulate a function call, and is evil.

    19. Re:From a security standpoint by Jerf · · Score: 2

      There you go again, proving something wrong by pulling an example of a dumb thing you can do with a technology. Who the hell starts up 5000 threads on a routine basis? If that's happening, you're probably out of the tested and claimed domain of the program.

      You seem to want programs to prevent you from using them wrongly. Can't happen. Mathematically provable for sufficiently precise definitions of "wrong". If you insist on living in that world, expect to pay the usual price for a disconnection from reality, whereas the rest of will continue to have tools that allow us to do dumb things like open 15000 GUI windows, but somehow, we manage to avoid it, without people like you holding our hands.

      Except on porn sites & typo sites.

    20. Re:From a security standpoint by Omnifarious · · Score: 2

      Umm, I've seen plenty of programs that have a threading model just as I described. If you listened to people 2-3 years ago, that idea was all the rage.

      I don't want things that prevent you from doing stupid stuff. I just want things that don't encourage you to.

    21. Re:From a security standpoint by Eugene+O'Neil · · Score: 1

      What exactly is it about threads that "encourage" people to use a one-thread-per-client model?

      What is it about RPC that encourages people to to ignore network overhead?

      What is it about table saws that encourage people to cut off their thumbs?

      In all of these cases, the correct answer is nothing at all. Idiots do not need to be encouraged to do stupid stuff... they are quite able to do it on their own initiative. Powerful tools give people the ability to do amazing things, for good or for bad. Just be glad you can't cut your thumb off with a bad RPC call.

    22. Re:From a security standpoint by Computer! · · Score: 1

      Right, right. Of course there's always design considerations. I would think that even the caching would make use of some sort of loop, tacking the shipping cost onto each product record once per day. I'm just saying that I'd rather use an inefficient methodology than delay my project's completion. For something that was likely to change often, I might even make the call in real-time, rather than try to develop a caching algorythm.

      --
      If you fall off a building, go real limp, because maybe you'll look like a dummy and people will be like hey, free dummy
    23. Re:From a security standpoint by crucini · · Score: 2

      I agree with your concerns. Any subsystem which is not under my control needs to be viewed with suspicion. If I use a library, I go through a period of verification, making sure that my code works with the library. I don't lightly upgrade to a newer version.

      Currently, a lot of my code exchanges XML messages with other systems. I log every request and response to aid in troubleshooting. I log the actual messages, not the logical structure, because quite often an error on the other end generates malformed XML, which would mean there's no logical structure to log. Of course many of the issues I am troubleshooting would go away if SOAP were adopted - there would be less room for different implementations of XML generators/parsers, etc.

      I tried SOAP::Lite, and besides being slow it dies if you call a service that is not offered by the server. That is a consistent extension of the 'procedure call' metaphor, but it's very irritating because I don't want my code to exit based on a condition beyond my control - someone else's server. Of course it can be fixed with an eval, but it's indicative of this problematic mindset you identified.

    24. Re:From a security standpoint by crucini · · Score: 2
      For something that was likely to change often, I might even make the call in real-time, rather than try to develop a caching algorythm.

      In Perl, at least, this is easy. You can either use Memoize to automatically cache the function, or use the 'orcish maneuver':
      my $shipping_price = $shipping_price{ $zip1 }{ $zip2 }{ $weight } ||= get_shipping_price($zip1, $zip2, $weight);
      Of course this assumes they don't offer free shipping. It also assumes the process won't be alive long enough to hold stale values.
  4. Overestimating Firewalls. by -brazil- · · Score: 5, Insightful

    Off the trolley, I'd say. It's a fundamental and unavoidable weakness of packet firewalls that they filter ports, not services. It's completely naive to believe that port 80 will always be harmless HTTP traffic. ANYTHING can run on port 80, and there's nothing you can do against it unless you have absolute control over all machines behind the firewall.

    --

    The illegal we do immediately. The unconstitutional takes a little longer.
    --Henry Kissinger

    1. Re:Overestimating Firewalls. by dda · · Score: 1

      Exactly, I'm curruntly working in a bank where I only have access to the outside using the port 80, that doesn't avoid the fact I can receive any kind of files using my webmail server !

    2. Re:Overestimating Firewalls. by VA+Software · · Score: 1

      "ANYTHING can run on port 80"

      Well, no. Anything can come in on port 80, but you've got a single process listening. Filter ports at the firewall, filter services etc. in the server.

      unless you have absolute control over all machines behind the firewall

      Isn't that the point of firewalls ... you trust everything inside and distrust everything outside.

      --

      ---
      http://slashdot.org/moderation.shtml
    3. Re:Overestimating Firewalls. by pjgunst · · Score: 2, Informative

      Isn't that the point of firewalls ... you trust everything inside and distrust everything outside.

      Errr.. no. Every competent network administrator distrusts the inside as much as the outside (except for the DMZ).

    4. Re:Overestimating Firewalls. by duffbeer703 · · Score: 2

      I work at a gov't agency where everything is blocked.

      So I just use citrix to connect to my house via port 443. I can use all the apps (icq, etc) on my home machine no problem.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    5. Re:Overestimating Firewalls. by gorilla · · Score: 2

      There are firewalls which filter both ports & services at the same time, those using application layer proxies. If you configure one of those firewalls to run HTTP on a port, and instead send SMTP messages to that port, then the firewall will block those SMTP messages.

    6. Re:Overestimating Firewalls. by BlueUnderwear · · Score: 2
      Exactly, I'm curruntly working in a bank where I only have access to the outside using the port 80, that doesn't avoid the fact I can receive any kind of files using my webmail server !

      Exactly. And if the bank you work at allows https traffic, it's even more fun: as https is normally encrypted, the firewall cannot even make sure that the traffic passing over port 443 is indeed https. When I worked at a bank, I had telnet servers running on port 443 of a couple of machines outside, and could happily log in to them from work...

      --
      Say no to software patents.
    7. Re:Overestimating Firewalls. by BlueUnderwear · · Score: 2
      Every competent network administrator distrusts the inside as much as the outside.

      This is even more true if the institution to be "protected" is a school. It's as necessary to protect the world outside from your own evil students than it is to protect your network from the world outside...

      --
      Say no to software patents.
    8. Re:Overestimating Firewalls. by Anonymous Coward · · Score: 1, Insightful

      I used to be a Sun security consultant. I have not met a single client who did not ask us to switch off application-level proxies a few days after we switched them on. The problem with HTTP, for example, is that most proxies alert/choke on most fancy pages (showstoppers: porn and corporate sites; usually we got official complaints about the latter :). Not to mention the (increasing) amount of SSL or ssh traffic out there, where a proxy is usually a waste of resources. (Although ssh proxies have their own benefits, but they are not widely used.)

      Note that the above applies to several leading vendors' products, maybe the difference was the number of days between installation and removal. The best proxies lasted for about five days, the worst for two (max).

    9. Re:Overestimating Firewalls. by Mannerism · · Score: 1

      I work at a gov't agency where everything is blocked. So I just use citrix to connect to my house via port 443. I can use all the apps (icq, etc) on my home machine no problem.

      Doesn't that strike you as unethical?

      I think users who (through ignorance, negligence, or malice) fail to respect their organization's security policies are more of a threat than SOAP slipping through (sorry) on port 80.

    10. Re:Overestimating Firewalls. by Anonymous Coward · · Score: 0

      Too bad most schools don't think like this.... Horribly lax security was the one fun thing about being a student ;)

    11. Re:Overestimating Firewalls. by Xi · · Score: 1

      The point of web services it to get through firewalls.

    12. Re:Overestimating Firewalls. by ahde · · Score: 2

      its naive to use weak passwords, but that doesn't mean that we need microsoft or some other company to DOS your system tryping to crack them.

    13. Re:Overestimating Firewalls. by GC · · Score: 1

      Not really a huge issue. The Citrix Winframe client would need to have a known vulnerability and be exploited for company to be exploitable by his actions. Then again, the case is the same for Netscape or IE clients running HTTP.

    14. Re:Overestimating Firewalls. by hearingaid · · Score: 2

      That's interesting. The canonical Zwicky book takes a hard line against packet-based firewalling, for exactly the reason that this whole discussion suggests: you don't know what's going on on a port unless you do some kind of inspection of the packet.

      I run a partial application-based proxy setup on my home network (mostly, I run things through nec socks5, but I have some app-specific proxies setup, and as soon as I get a box with a fast & big HD I'm going to have squid, oh yes :) and I couldn't be happier. In some ways, it's more of a hassle than NAT; but from a security standpoint...

      No question. Zwicky - and AT&T - are right. Proxies are better.

      --

      my old sig used to be funny, but then slashcode ate it and now it's not funny anymore

    15. Re:Overestimating Firewalls. by Tony-A · · Score: 1

      Isn't that the point of firewalls ... you trust everything inside and distrust everything outside.
      Psst. Wanna buy a bridge?
      If anyone inside has ever gotten an email or visited a web page, there is no way a firewall can make you safe. The main thing a firewall can do is prevent the crossing of insiders posing as outsiders and vice-versa.

  5. keep reading by Anonymous Coward · · Score: 0

    you don't have to run SOAP over TCP-80...the protocol is based on HTTP, that isn't to say that it is HTTTP. You should be able to work out with other sites what port numbers you'll be using.

  6. Firewalling & administration by BlackSol · · Score: 3, Insightful

    I agree with you, the seperation of the ports is more secure due to the fact you need to do less filtering to monitor the incoming requests. However this assumes a competent administrator setting up the firewall, and your code is secure.

    Forcing requests to utilize web services is an easier security model. Singular port monitoring is required and ddos, proper request structure, overflows and the like are handled by the web server, thus abstracted from your application layer and upgradable with less affect on your development. Also its assumed you are using a professional level web server (Apache, Iplanet, NES, or even IIS), meaning a greater user base resulting in problems getting found quicker and fixed faster.

    --
    $sig=$1 if($brain =~ /idea\s+(.*)/i);
    1. Re:Firewalling & administration by avandesande · · Score: 1

      In agree. I would rather have all my stuff going through a known xml/soap parser, then have some c program listening on a port, ripe for a buffer overrun. Although it is certainly possible to write a safe c networking program, when working with outside vendors/contractors you have to assume the worst.

      --
      love is just extroverted narcissism
    2. Re:Firewalling & administration by Hank+Scorpio · · Score: 1
      Also its assumed you are using a professional level web server (Apache, Iplanet, NES, or even IIS)

      Nintendo Entertainment System is a web server now?? You mean, all these years I've been just playing Super Mario Bros. I could've been serving web pages from my living room?? Boy, I feel out of touch!

      :)

    3. Re:Firewalling & administration by BlackSol · · Score: 1

      Yep, You too can utilize mario to stomp out renegade requests, while luigie serves up cgi scripts to Bowser (hmmm could bowser be related mozilla?)

      Just incase someone wasn't clear its Netscape Enterprise Server that is slightly more known for its web serving services than nintendo.

      --
      $sig=$1 if($brain =~ /idea\s+(.*)/i);
  7. Separate Ports for Separate Functions by digital_freedom · · Score: 5, Insightful

    I totally agree with the idea that separate services receive separate ports. This makes a lot of sense for security, in that you can track excatly what SOAP requests are being made to your servers and allows you to shut them off if necessary. Going over Port 80 makes it virtually impossible for a company to disable a SOAP service from the firewall without expensive packet inspection at the firewall. The drawback that I can see with not going over port 80 is trying to get the Networking group to punch a hole in the firewall for that port. A separate port also makes things more secure in that if you want to use SOAP internally to your network, you don't allow other people to easily send SOAP requests from the external network. We use CORBA at my company and we don't open the ports to the open internet, but we do keep them open on internal firewalls. If hackers knew that we had CORBA servers, they could inspect what services we had and possibly do malicious harm.

    Separate but equal is what I say.

    1. Re:Separate Ports for Separate Functions by exodus2 · · Score: 1

      there is a CORBA firewall now my company is working on an implementation of it.

      --
      .sigs suck, thus nothing here.
  8. In fact, you could just embed everything in HTTP by jbaltz · · Score: 1

    It's kind of a false security feeling, since you could just encapsulate whatever request you want within HTTP -- for example, one system I know of does exactly that (name supplied upon request) by encapsulating all the objects it passes in XML inside of the HTTP request.

    --
    I am the Lorvax, I speak for the machines.
  9. My problem is usually the range of ports... by (H)elix1 · · Score: 2

    Having software that talks on a specific port is not too hard to deal with -- port 80, 8080, 1234123, whatever...

    I've worked with stuff that required a range of ports (like thousands of them), which is what makes your IP people freak. Far more common than one would think.

    1. Re:My problem is usually the range of ports... by Anonymous Coward · · Score: 0

      not too hard to deal with -- port 80, 8080, 1234123, whatever...

      Wow ... you're good!

    2. Re:My problem is usually the range of ports... by Anonymous Coward · · Score: 0

      Yes, IPv6 has 2^32 available ports per system, too.

    3. Re:My problem is usually the range of ports... by GC · · Score: 2

      Yep the range of ports thing is bad. FTP is the worst.

      Isn't the data-port assignment reversed as well in FTP, so if it is enabled on the firewall it has to allow traffic to "any" port on the server hosts or something like that?

      Now that is a security issue...

  10. SOAP can use other protocols by Auxon · · Score: 1

    You don't have to use port 80 for SOAP requests. You can use other protocols, eg. FTP. You can make your own protocol if you like, and add whatever security you need.

  11. SOAP by Jon+Peterson · · Score: 5, Interesting

    Hi,

    SOAP is transport independant. That's one of its (theoretical) virtues. You can implement SOAP over SMTP, HTTP, whatever.

    Practically, it does seem fair to say that HTTP is what an awful lot of SOAP tools are going to be expecting, and given that SOAP is still quite bleeding edge, I wouldn't want to try using another transport protocol unless I could afford time and skill to do a lot of fixing up.

    However, HTTP doesn't have to run on port 80. Furthermore, most SOAP implementations will be (well, claim to be) happy on HTTPS too, so that's an easy way to do encryption.

    As for the 'web page vs functional' thing, well that's not so simple. A request for a page produced by a CGI script is a functional request coming from strangers over the web. SOAP need not be different.

    At the moment, if I want to make an XML version of my content available to folks, I might tell them to use HTTP GET with a URL that invokes a CGI program that returns some XML.

    In the future, I might want to make the same XML available via the getXML method my Website class, and then SOAP enable my Website class.

    The differences isn't that great.

    --
    ----- .sig: file not found
  12. It probably makes it MORE secure by telstar · · Score: 1

    My experience has been that those that configure firewalls are more likely to introduce security issues that more they are required to configure, so establishing port 80 as the common gateway through which this type of traffic flows reduces that opportunity for this type of mistake. It does put the burdon on the developer to ensure that the code is functionally secure, but I'd rather have that burdon be on myself than the firewall admins.

    1. Re:It probably makes it MORE secure by ers81239 · · Score: 1

      Yeah, no request is so simple that an admin can't make a real mess out of it.

      --
      there are 2 kinds of people. those who divide people into 2 kinds, and those who don't.
    2. Re:It probably makes it MORE secure by O2n · · Score: 1

      [...] establishing port 80 as the common gateway through which this type of traffic flows reduces that opportunity for this type of mistake.

      I think you missed completely the very reason of existence for the firewall.

      If you stuff everything thru port 80, you can as well stop using a firewall, cause it will be just sitting there adding one hop to the packets' route.

      I'd rather have that burdon be on myself than the firewall admins.

      Well, I'd not. :) Historically speaking, the bugs are created by developers, not system/firewall administrators; if you hire somebody with 2-3 years' experience in firewall administration I'm sure they'll do *much* better in their field than someone with the same experience in programming (due also to the nature of the work, obviously).

      (I may be biased... I'm a sysadmin myself :)

    3. Re:It probably makes it MORE secure by Anonymous Coward · · Score: 1

      While I agree that the more complex the FW config gets the more chances for error there is. I think were all missing the point of firewalls we have moved well beond the days simple port based firewalling. Statefull inspection is the more important aspect of a modern firewall so tunneling through an existing protocal be be usefull if the inspection engine is flexable enough. It would be better overall if a singular protocal was standardized upon so the firewalls can be updated to support it with state etc as that offers the best protection. And may I make this clear I'm talking about a singular application server but rather a good framework that can be extened as required without rewriting the spec and supports HA and high performace as part of design.

    4. Re:It probably makes it MORE secure by Anonymous Coward · · Score: 0

      It's spelled "burden," fuckface.

    5. Re:It probably makes it MORE secure by ahde · · Score: 2

      except that if we can use port filtering primarily, it reduces the amount of work by orders of magnitude

  13. Damned if you do, damned if you don't. by Anonymous Coward · · Score: 0

    Microsoft was blamed for not using it's own port for DCOM, now, that they are using SOAP, your complaining.

    Go figure :)

  14. Security's as good as your web server by RichiP · · Score: 1

    Of course, with the recent spate of attacks on Microsoft IIS and its penchance for being cracked, I would say that for now it would be a great security risk.

    I haven't heard a lot of new vulnerabilities in Apache, though

  15. Re: -blank- by mrbinary · · Score: 0, Offtopic

    OK, the person who posted this nonsense 15 times in a row is officially a knob. WRT the question posed, I agree completely, having specific ports that perform functional requests are far superior. Just look at the problems that MS had recently with providing print services over HTTP. Knowing precisely what functionality is provided via a specific port is the only way to effectively filter and block potentially malicious traffic. Nowadays it seems people want to be able to start and stop their dishwasher via HTTP/XML, it's lunacy IMHO, but then I'm very old-school. Still, I've never been cracked or infected so maybe I'm doing something right.

    --

    ----
    Slán leat agus go n'eirí an bóthar leat
  16. SOAP security by Stultsinator · · Score: 2, Interesting

    We are currently using SOAP-like mechanisms, and there are a number of security precautions that can be implemented that in my opinion balance the threat of accepting such messages.

    Possibly the most secure precaution is using SSL for the requests. You can require a client certificate to access the service and your site certificate will reassure your partners that they have connected to the correct server. In addition, you can build in custom username/password fields into the app, or have each message PGP signed.

    Another option is to move your application to a different IP address and use the firewall to restrict access to it. This method is good if your partners are known ahead of time.

    Hope this helps.

  17. Why do you care? by matthew.thompson · · Score: 2

    It shouldn't matter what ports you open up on your firewall - what you are interested in is what will be receiving these requests.

    We've all seen that access to port 80 can cause problems with incorectly configured IIS machines anyway.

    Basically as a person responsible for security and firewall configuration you don't just enable access on a port just because someone asks for it - you check out what is going to be used and make a decision AND warnings to those involved.

    --
    Matt Thompson - Actuality - Insert product here.
  18. In theory ... by King+Of+Chat · · Score: 5, Informative
    It can be really quite secure because:

    You can use any port you choose. A bit "security through obscurity" this one, but no harm there>

    You don't really need a full web server. All you're going to get is an HTTP request with a SOAP envelope thingy inside. If it doesn't match the WSDL (or whatever) schema thingy you've published, then just ignore it. You only need give the information to people who are going to be legitimately calling your service. Of course you're still vulnerable to normal DoS, but then isn't everyone.

    It is quite possible to digitally sign SOAP requests. Just ignore anything not signed/not signed by a recognized customer.

    If you are only exepcting SOAP requests from a few other servers, then consider client-side SSL. Since only a few servers will be calling you, then you'll only need a few client certs.

    Like everything, it's as secure as you make it. If you expose "FuckMyOS" as a SOAP method and publish it through UDDI or something then ... well ... you get what you ask for. Signatures on SOAP requests aren't (easily) supported by everything yet - but then SOAP implementations differ (eg MS SOAP has no types, IBM SOAP does). This isn't a major issue as it's pretty easy to roll your own request - it's only XML after all.

    PS I have no opinion on Vladinator's website.

    --
    This sig made only from recycled ASCII
    1. Re:In theory ... by Nohea · · Score: 2

      I have to agree, because letting in "dangerous" function requests in over HTTP is fairly close to the same risks as running CGI scripts.

      CGI programmers have had to be trained to code safely, not doing stuff like:

      system "$unchecked_input";

      SOAP programmers have to trained similarly. GIve 'em some rope, but make sure they don't hang you with it!

    2. Re:In theory ... by codeartist · · Score: 1

      Does that mean its soap on a rope?

    3. Re:In theory ... by ahde · · Score: 2

      I am not running any CGI scripts to view slashdot. All I receive is HTML. I am not at risk from requesting a CGI script.

  19. The *reason* for the tendancy by clary · · Score: 2

    The real reason HTTP and port 80 is seen as neat is that it is probably already open, so you don't have to deal with that mean old network admin who just wants to spoil your fun.

    You don't have to answer difficult questions about how your service is secured, how it might be exploited to reach other resources within the firewall, etc. You ride the coattails of the "harmless" web server traffic.

    --

    "Rub her feet." -- L.L.

    1. Re:The *reason* for the tendancy by ostiguy · · Score: 5, Insightful

      I am a mean old network admin for a software consultancy company. I can therefore understand mean old network admins.

      The problem with big companies who give us big bucks to develop web apps is that the firewall/security teams are totally unresponsive to requests from development teams. A lot of firewall teams act as if nothing is ever up for discussion, and 80 and 443 are all that will ever be. System security would be a lot stronger if the security teams worked along with development teams, but instead a ton of security teams have a fortress mentality, for both system security, and their own interactions - locking themselves away from contact. As a result, everything and anything will eventually be pushed thru 80 and 443.

      ostiguy

    2. Re:The *reason* for the tendancy by smittyoneeach · · Score: 2, Insightful

      So, you're saying the security 'problem' has more
      to do with the people-ware than the software.

      Security people win if absolutely nothing happens.
      Greater traffic == greater tendency for things to go awry.

      Management, if it can be awakened, needs to step
      in and restore balance between security and operational concerns.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    3. Re:The *reason* for the tendancy by ackthpt · · Score: 3, Funny
      There's always the honor system...

      oooooooooooooooooooooooooooooo
      o __________Notice _________ o
      o If you are a cracker or o
      o terrorist please use port o
      o port 80 as it is secure. o
      o Otherwise you may use the o
      o non-secure port 2000. o
      o Thanks and have a nice day o
      oooooooooooooooooooooooooooooo

      --

      A feeling of having made the same mistake before: Deja Foobar
    4. Re:The *reason* for the tendancy by ahde · · Score: 2, Insightful

      So you are willing to demolish the TCP/IP protocol to spite a few paranoid admins.

      If you are developing an application that Company X needs to use and it has to communicate through the firewall, a simple phone call to PA's manager would solve the problem. But the real reason you want to run SOAP on port 80 is because you don't have a legitimate reason for your application to be running inside the corporate firewall. By legitimate, I mean in the minds of management. No, a "harmless" "e-commerce" "web-app" for music/pr0n/gambling/shopping/whatever is not likely to be considered a legitimate reason.

      Any admin would much rather have a program using port 12345, because then, if there is an exploit or malevolent user, it can be blocked at the packet level, instead of putting together every response and parsing the entire message using an infinite symbol list and AI that can detect the potential threat in any file sent through the only port on the only address on the only host in the network, if you can call it that anymore.

    5. Re:The *reason* for the tendancy by keath_milligan · · Score: 2, Insightful

      Same goes for third-party web-based applications and services. It is VERY difficult to convince an IT group to open new ports - even if they are for established, standardized protocols.

      Running on ports other than 80 is frequently a deal-breaker when trying to sell network applications into highly security-conscious environments. Most network admins equate more open ports with less security whether it is justified or not. HTTP is something they know and understand and already have set their network up to suppor - SOAP just makes sense.

    6. Re:The *reason* for the tendancy by abe+ferlman · · Score: 3, Funny

      Just don't drop your SOAP on port 80 if you know what's good for you...

      --
      microsoftword.mp3 - it doesn't care that they're not words...
    7. Re:The *reason* for the tendancy by Anonymous Coward · · Score: 0

      I'll concur with this.
      Back when I was at AOL (1995 or so) the firewall team's philosophy could be summed up as this:
      Don't bother analyzing traffic makeup. Give no notification and keep turning things off until someone complains.
      Repeat at random intervals throughout the year.
      Got to be that they were the first people my team called when things weren't working. Heck, they even choked one of the ports that the AOL client software used once! I believe they finally got reined in when they ended up blocking a Vice President's access to a partnering company's private pre-product-launch website for long enough to almost lose us the account.
    8. Re:The *reason* for the tendancy by ostiguy · · Score: 3, Insightful

      Yes, I, a single netadmin, am well on my way to destroying TCP/IP.

      SOAP is being pushed as an alternative to EDI, Corba, etc, etc (this isn't my area, remember, I am the netadmin trying to destroy tcp/ip). This is because firewall/security teams are not interested in working with (their company's) vendors to establish IPSec tunnels, or SSL tunnels for various apps. Instead of quicker binary transfer within a ssl or ipsec tunnel, stuff will be kludged into https, lest the firewall team's sensibilities be offended.

      There will be a huge market for near (as near as one can get) wirespeed http proxies soon as a result. Pretty soon some one will build some hack with some beta of .net that is vulnerable, and all hell will break loose as http becomes the big threat (as seen on the front of Infoweek/world/land, etc). A big market will result as companies throw proxies in front of their webservers , and in front of their end users internally to protect against this self generated menace.

      ostiguy

    9. Re:The *reason* for the tendancy by Tony-A · · Score: 1

      You either made my day or ruined it.
      I'm not sure which.

    10. Re:The *reason* for the tendancy by puppy0341 · · Score: 1

      Your so damn right man.

    11. Re:The *reason* for the tendancy by Anonymous Coward · · Score: 0

      your firewall/admin has gotta be pretty broken
      if they can't figure out how to firewall traffic to a specific machine. say you have a SOAP server on ip 2.3.4.5 port 80 thats being exploited. well hell, block traffic going to 2.3.4.5 port 80! if using ipchains, ipchains -A input -s 0/0 -d 2.3.4.5 80 -j REJECT. using another port does not make anything more or less secure. at best it makes it easier to differentiate traffic with sniffers but that can help the bad guys too. this post will probably get lost in the thread though.

    12. Re:The *reason* for the tendancy by Anonymous Coward · · Score: 0

      its funny to see netadmins think their
      network is secure if all they have "open"
      is 80. i have friends who work at a company
      who is run by such folks. so i fire up a SSH
      daemon on one of my servers on port 80 and
      they get out just fine. they could tunnel
      all their traffic out if they wanted to to
      hit pr0n, or whatever and the netadmins wouldn't
      have a clue. so much for port 80 security.

  20. Your correct web services are insecure by Anonymous Coward · · Score: 0

    The reason people use them over port 80 is to get around the firewall. The whole point of blocking the other ports is to prevent people from calling functions over http!

    Say your software automatically generates service stubs for you, a clueless developer may deploy the whole thing as a service without giving it a second thought!



    IIOP supports mature encription/authentication and can be proxied through a firewall (while losing performance/functionality) when you add all of the features of security to SOAP it ends up more complex than Corba.



    SOAP is good for very particular small markets (i.e. sending SMS, Checking weather/stocks etc...) its useless for real world enterprise communications.


    The "do everything with XML" motto is just plain stupid, while XML is excellent for many things its performance/security will be considerably lower than IIOP. Plus you will lose the readability and simplicity of the XML standard. Sadly this fad has gone too far, it will go the way of "push technology" in no time.

  21. Fear by Anonymous Coward · · Score: 0

    People fear what they do not understand.

  22. better to separate your ports by TheSHAD0W · · Score: 3, Insightful

    IMO you should run separate functions on separate ports. I don't think this increases or decreases security much, but it greatly improves scalability.

    I could, for instance, run my setup on a single box; and then, when traffic went up and the service got popular, replace the box with a Linux firewall to an intranet. The functions could then be divided among several machines on that intranet, and having the firewall box route different ports to their dedicated machines would be a trivial task.

    Hell, you could even have redundant machines for critical operations, and if a failure occurred you need only change the routing on the firewall box to get things back up.

    1. Re:better to separate your ports by Anonymous Coward · · Score: 0

      Because G-d knows, you wouldn't want a NONlinux firewall. Thanks for your continually dopey comments.

    2. Re:better to separate your ports by TheSHAD0W · · Score: 1

      I said that's what *I* would do. Feel free to use your own system. Idiot.

    3. Re:better to separate your ports by Anonymous Coward · · Score: 0

      Hi, you used your +1 bonus to reply to a troll. Nice work, there, moron.

    4. Re:better to separate your ports by Anonymous Coward · · Score: 0

      Off course. Load balancing. Why would you need two ports? Just load balance the IP...

  23. IIOP by oops · · Score: 1

    You could run IIOP through your firewall, no problem. I've used CORBA implementations that require the client to talk to a broker daemon on a known port.

    But if you start using transient IORs, then you have a problem. This occurs when the service broker (on your known port) starts up a service on another port, and then gives you back that IOR. You now have to access the CORBA service through that second, dynamically allocated port number.

    This port will be in a known range, but that range could be in the hundreds/thousands. This is where your firewall gets in the way. Consequently the easiest thing to do is use persistent IORs.

  24. Use what already exists by Anonymous Coward · · Score: 0

    The security advantage of SOAP isn't that it goes over the same port as HTTP but that it's capable of using the same security features as HTTP, such as SSL (which is port 443 anyway.)

  25. More Security Means Knowing What is Going On by zgrossbart · · Score: 2, Informative

    My real concern about tunneling everything through a single port or protocol is that it makes network auditing much more difficult. If there is a security problem, or just a general network problem, the fact that everything looks like HTTP doesn't help track down the problem.

    However, there is a flip side to this. I have been in the position of trying to convince large companies to change their firewall configurations. It would be easier to make lead in to gold than to get a large company to allow communications through a new port on their firewall.

    This basically means that putting everything through port 80 serves two purposes. It give people the perception of security, and it lets the project actually happen. It is the case that not having to change your network configuration is a powerful marketing tool, but it doesn't make anything more secure. All of these issues are addressed in just about every networking book out there.

  26. Isn't this just an idea for a portal? by isa-kuruption · · Score: 3, Interesting

    Portals are nice, from a security perspective. You can run all your applications behind a front-end webserver, only accessible via port 80. Some nice firewalls, like Checkpoint, have an HTTP security server which does bounds checking and similar to HTTP requests. Couple this with a good, reliable webserver (apache or netscape), and any applications running behind the portal are less susceptable to an overflow attack since the only machine that can access these applications is the webserver, which means an attacker would have to compromise the web server first.

    Also by doing portals in this way, you can force users to authenticate an HTTPS session before accessing the portal site, and the services behind the portal. Of course, how you do authentication can be anything from login/pass to securid or X.509 certificates. Once the users authenticate themselves, then accessing the applications "through port 80" is more secure.

    However, setting up multiple DMZs is the way to go. In my example above, where the webserver accesses the services behind the portal, you'd set up those applications in their own DMZ (seperate from the webserver DMZ). Access to this DMZ wouldn't be allowed directly from the outside (restricted by FW), which again would require a compromise of the web server. The other advantage is, if an attacker were to compromise the application *somehow* without a webserver compromise, then this would restrict them to only boxes in this second DMZ and therefore would not compromise the webserver ALSO. Setting up a DMZ correctly means a lot. You can set up a DMZ to accept incoming connections but not to allow anything outbound (except for state traffic). This would prevent an attacker, who has compromised services in the DMZ, from attacking anything else from that point into the rest of your network.

    1. Re:Isn't this just an idea for a portal? by cowbutt · · Score: 2
      Some nice firewalls, like Checkpoint, have an HTTP security server which does bounds checking and similar to HTTP requests.


      That's all very well, but the inspection performed by the FW-1 HTTP Security Server is quite expensive in performance terms (effectively it turns FW-1 from a stateful packet filter into a proxy).


      Not only that, but historically, there have been plenty of problems with the Security Servers to the extent that I wouldn't be happy deploying it on a production, high traffic network (and certainly not without extensive validation).


      To be fair, I haven't worked with FW-1 recently and haven't looked at NG (aka v5) at all, so things may well have gotten better.


      --

    2. Re:Isn't this just an idea for a portal? by isa-kuruption · · Score: 2

      There is a solution for high-traffic networks: Firewall sandwich.

      And you're right, the HTTP security service is resource intensive, but that's why you get a few boxes in a sandwich and the load is lessened.

      It all has to do with costs on whether you want to implement such a solution.

    3. Re:Isn't this just an idea for a portal? by Anonymous Coward · · Score: 0

      Speaking as a professional pen-tester, I can tell
      you that the weak point in your plan is the assumption that the web application itself is secure. The general grasp of security concepts
      amongst many web developers, particularly those
      that started as "HTML programmers" and worked their way up, is abysmal! All the classic mistakes that C programmers have made and learnt from over the last thirty years are being made all over again by
      inexperienced web developers.

  27. A remote computer by Boss,+Pointy+Haired · · Score: 1

    accessing a web service is no different to a remote human accessing a dynamic web page.

    Sure, you need to consider the security aspects of your borders, but you must concentrate your security efforts on what goes on inside.

    I think.

  28. Valid question. by Thomas+Charron · · Score: 2

    This is definatly a valid question, and I think, personally, the answer would be yes, the entire notion of web services have some serious security reprocusions. In the past, web traffic was web traffic. Now that HTTP is being used to essentially tunnel an RPC call into your servers, it means that that same servers that have, time after time, been compromised, are now the same servers providing vital access to critical data systems.

    Now, this does NOT mean that web services are bad, simply that web services have to be written with the understanding that they ARE more open then normal simple RPC calls. Greater use of this design means greater risk in general, since now access to functions that may be suseptable to buffer overflows, denial or service attacks, etc, are basically sitting out there in the open. I've never heard of a denial of service attack targeted at an RPC mechanism, but with little or NO modification, this type of attack could be deployed 'out of the box'.

    New security measures will have to be created in order to thwart this greater risk that will now be exposed.

    --
    -- I'm the root of all that's evil, but you can call me cookie..
  29. Less administration maybe by ssb · · Score: 1

    This kind of setup will only be as secure as:

    1. The web server software(glares at IIS)
    2. The programming of the individual web service itself.

    Apache has been checked over and over for security problems, its much more likely to be secure than some corba/rmi/etc server that much fewer people use.

  30. Building analogy by 1984 · · Score: 3, Insightful

    This isn't a perfect analogy, but think of it like a building, where port 80 is the front door that comes into the foyer. The windows are miscellaneous ports, and the loading dock is some port you use for something else (maybe 22).

    Let's say you have a security system hooked up to the front door, the windows, loading dock doors etc. Normally pretty much anyone is allowed to walk through the front door. You do hope nobody manages to climb in through a window, and you have strictly controlled access via the loading dock.

    Now if your reception is poorly designed your only hope is that nobody who walks through the front door hacks off the head of your receptionist and proceeds to go walkabout through the building screwing with things. If your reception is well designed this will be hard to do.

    You could even have it so that there's some hazard to those right there in reception but breaking out of reception is as hard as breaking in any other way. But you don't just assume it's secure because it's nicely decorated or (in this case) because so many people walk through receptions it *must* be secure.

    It's just a security model. If you alter the constraints and facilities of the environment, then you've also changed the range of threats to that environment. And you tailor the prophylactic security, intrusion detection and response to the potential threats and damage of compromise.

    Overall, if you want to have any security, you have to think about security. However the hell you set up your systems.

    1. Re:Building analogy by Anonymous Coward · · Score: 0

      and the loading dock is some port you use for something else (maybe 22)

      When I think of the loading dock I imagine port 21 (FTP), not port 22 (SSH). But hey, if you loading dock needs to be secure then 22 might be appropriate.

    2. Re:Building analogy by Anonymous Coward · · Score: 0

      think of it like a building, where port 80 is the front door that comes into the foyer. The windows are miscellaneous ports, and the loading dock is some port you use for something else (maybe 22).

      No, a better analogy would be to think of each port as a general-purpose pass. Person comes into the building, shows his/her pass (port number), and gets access, or doesn't get access. Delivery drivers pave Pass #80, security people have pass #22. If someone doesn't have a pass, or has a pass with an invalid number, they aren't allowed in.

  31. Applications Control Security by The_Pey · · Score: 1

    Port 80 is not necessarily an open door. While it's true that there will be a multitude of SOAP calls running through port 80, the idea is to have the applications control the security. Your application that you develop should have enough control to accept only those calls that you want to go through and throw out anything that is invalid.

    Control your infrastructure and control your applications and you will be much better off.

    --
    Hmmm...
  32. Implementing IP over SOAP by melquiades · · Score: 5, Funny

    It's a new trend, run everything on port 80 so your network admin has less to worry about, but that whole concept is a steaming pile of shit.

    So true.

    It's taken many years to build up the many layers of network security we have. One of the main reason SOAP is so easy to use is that it drills a hole right through all those layers. In other words, SOAP is easy because it encourages you to ignore everything that makes remote applications hard -- like security.

    As an example of just how wacky the everything-on-port-80 idea is, and how dangerous, consider this idea I heard from Bruce Schneier: implement IP over SOAP: have a SOAP service listening at two endpoints for IP packets, and forward those packets over SOAP to the other endpoint. Then make one of those endpoints the default gateway for packets into the otherwise-secure network at the other end....

    Just ponder that.

    1. Re:Implementing IP over SOAP by Thomas+Charron · · Score: 2

      Actually, there is already an implementation of something simular to this in httptunnel. I forget the web address of it, but you can find it via freshmeat.net. Basically, it tunnels either IP socket data over HTTP, or, as an even MORE evil thing, raw ethernet data.. 8-O

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    2. Re:Implementing IP over SOAP by Anonymous Coward · · Score: 1, Informative

      http://rfc.dk/3093

    3. Re:Implementing IP over SOAP by miguel · · Score: 3, Informative

      SOAP does not drill any holes that POST would not have.

      And you are most likely going to find SOAP engines that perform a lot of error checking and parsing of an XML message behore handing it to you than your average cgi-bin script that gets the POST request.

    4. Re:Implementing IP over SOAP by Anonymous Coward · · Score: 0

      If you have an sshd listening on port 443 somewhere, you can fool your company's web proxy into forwarding your ssh traffic. Write a little perl script to do the CONNECT for you, and use ssh's ProxyCommand directive. Works great for me (my employer allows NO traffic to the internet, only through squid).

  33. Makes my job easier by JoshuaDFranklin · · Score: 1

    I am an admin, and I would just love it if everything came over port 80...make my job tending the firewalls much easier :)
    'Course, I'd have to be sure to do all the security updates so I could blame problems on the software vendor--but we already have to do that with Microsoft anyway!

    1. Re:Makes my job easier by Anonymous Coward · · Score: 0

      If everything came over port 80 then you wouldn't need a firewall! That'd make it real easy to administer.

  34. What happened to IP over HTTP by MichaelJames · · Score: 1

    I saw a RFP for IP over HTTP, it would solve all firewall problems forever, for everything. I think it came out the begining of April a couple years ago ...

    http://www.isi.edu/in-notes/rfc3093.txt

    1. Re:What happened to IP over HTTP by Anonymous Coward · · Score: 0

      Duh. You are a fucking moron. That rfc was an April Fool's joke. Did you not look at the date, idiot? You stupid twat!

  35. Nope, not off your trolley by stwman2 · · Score: 1

    Different ports for different services? Different directories for different files? Wouldn't it be easier to look for a file in one directory? Yes, putting all in one directory/shoving all services through one port, would be easier - much less to keep track of. However, I like to know that my conf files are in /etc, system binaries in /usr/sbin, and so forth. And I like to know what services are accessing what port. Port 21? Oh, someone's hitting ftp. Port 80? Http. Port 23? Telnet. Yes, services can be run on any port. And one can look at the traffic to verify that's really what's passing through. But starting a trend of using one port for more than one purpose is non-sense - perhaps just making it easier for less knowlegable people to 'administer' a network. Maybe easier, but not better, and certainly not more secure.

  36. A positive note.. by Thomas+Charron · · Score: 4, Interesting

    After posting my last reply, I thought of something that is a GOOD thing regarding SOAP over HTTP that deserves mentioning. By directing and detecting all web traffic, you now have a transactional log off all RPC calls being made into your system. So while yes, you are possibly exposing things, you have a much better logging mechanism in a central location then you would have by having any given application tunneling thru its own socket, making calls to its hearts content. All calls cal now be logged, filter, redirected, etc..

    Now of course, this does apply only to SOAP over HTTP, and possibly not SMTP/POP3, Raw socket, MSMQ, etc..etc..

    --
    -- I'm the root of all that's evil, but you can call me cookie..
  37. SSL by Anonymous Coward · · Score: 0

    Having worked on a large SOAP app that utilises Perl/SOAP/mod_perl and Delphi/XMetal, I can honestly say that it's no big deal having the SOAP requests served through the same machine, running on the same port.

    At the end of the day, it's not the port that makes transfers secure, it's encryption.

    SOAP is easily tunnelled over SSL, and obviously you can take full advantage of Apache's (mod_ssl) SSL support, with client certificates etc.

    Security is about keeping information secure, not how many holes you've got in your firewall.

  38. Cryptogram by Hobbex · · Score: 2

    Bruce Schneier covered this more than a year ago in the 15.06.2000 cryptogram. Anyone who has read Schneier's newsletter long enough begins to realize that he is the Cassandra of the Internet...

  39. Exactly by JMZero · · Score: 1

    Years ago we tried to set up client Internet access via odd port numbers. Resistance every step of the way from client networking people, client management, and even our own ISP (who controlled our firewall, in those days). I can't even imagine trying it now that web based everything is even more entrenched.

    SOAP has merely subscribed to the common perception - the Internet is the WWW. I think it's probably the only way it would have caught on as much as it has.

    Full disclosure: our web apps create "bitty windows" to exchange data. I apologize to anyone who feels dirty after hearing that.

    --
    Let's not stir that bag of worms...
  40. Re:SOAP by Howie · · Score: 1

    In the future, I might want to make the same XML available via the getXML method my Website class, and then SOAP enable my Website class.

    Right. Why stop at serving bulky data, when you can wrap the bulky data in more bulky data.

    I've been looking at XML-RPC a bit lately, and apart from the security issues (which for me would be solved by having some sort of broker/proxy outside the firewall and SSL), the sheer inefficiency of the thing bothers me a lot.

    --
    "don't fall into the fallacy of believing that Perl can solve social problems. Maybe Perl 6 can, but that's a ways off"
  41. SOAP requests *can* be filtered by dacron · · Score: 4, Informative

    SOAP has actually gone well out of its way to allow server admins to filter requests. It makes use of the "Mandatory Header" aspects of the HTTP protocol such that every soap request must come with an HTTP header specifying which function is being called. Since it's in the header, a server doesn't need to know SOAP to filter, it justs needs to know HTTP, and the server can simply turn away anything that doesn't provide such a header.

    I agree there is still a major lack of support for this type of filtering, and even the standard leaves something to be desired in this respect, but the SOAP designers definitely did think that this was a big enough problem to provide facilities for future closing of these holes.
    It's a bit of a pain to administer, but it definitely *can* be done.

    1. Re:SOAP requests *can* be filtered by mark+tillotson · · Score: 1

      So your threat model is someone who can't
      figure out how to fake an HTTP header?

    2. Re:SOAP requests *can* be filtered by Dasein · · Score: 1

      SOAP implementation are required to check the HTTP header against the requests. This means that you can take an F5 box or firewall, dump anything that doesn't have the right header on the floor.

      Now the request gets to the server. It's guaranteed to have the right HTTP header. The SOAP implementation is required to validate the header against the request and possibly validates the entire thing against an XML schema.

      Now at the application level you know that 1) You have a request for a valid SOAP Service and 2) It is a well formed request that's been structurally validated. So the application can now validate the semantics of the request. Making sure that you aren't asking for an invoice the doesn't belong to you -- those sorts of application specific checks.

      The point is the header specifies the SOAP service which can be filtered on a firewall and the SOAP Envelope contains enough information to cross check and validate the endpoint and request back at the server level. There's plenty there to work with. How many "I only allow port 80 and 443)" admins will understand this, I don't know but running it over port 80 is emphatically not about the server side.

      Coupled with the fact that you can run this over SSL with client-side certs can make it pretty secure.

      --
      You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
    3. Re:SOAP requests *can* be filtered by ahde · · Score: 2

      unless the soap request lies. The only way you can tell that is to look at the entire message.

  42. Umm, NO! by schon · · Score: 1

    You're talking about security.

    My experience has been that those that configure firewalls are more likely to introduce security issues

    Then the firewall admin is incompetant.

    A real firewall admin will understand the protocols involved, and will have a hell of a lot better understanding of security issues than a programmer.

    Saying you'd trust a developer to make better security decisions than a firewall admin is like saying you think a secretary would be better at fighting crime than a police officer.

    1. Re:Umm, NO! by kz45 · · Score: 0

      A real firewall admin will understand the protocols involved, and will have a hell of a lot better understanding of security issues than a programmer.

      a real programmer will also understand the protocols invlolved.

      I think a good sys admin should have experience in both programming and security. More so in the latter.

  43. security through your web server by mydigitalself · · Score: 1

    from my experience using .NET, each service is a virtual directory within an http server.

    on a virtual directory you can implement ACL's based not only on IP origin, but windows users/active directory/whatever.

    so what's the problem? just because now its not in your gauntlet ruleset doesn't make it any less secure or auditable.

  44. Non issue by Hard_Code · · Score: 2

    This is a non-issue. You can run any protocol over any port. If you thwart your own firewalls by running all services through the same port that's your own damn fault (or your clients' fault).

    --

    It's 10 PM. Do you know if you're un-American?
  45. jesus christ by Anonymous Coward · · Score: 0, Flamebait

    SOAP is essentially a mechanism for sending functional requests over a port specified for web page requests this would make me nervous.

    No, it's not insecure. It's just that you're an idiot. Go fuck yourself./P.

  46. Open Port != Security Risk by Anonymous Coward · · Score: 0

    > One thing which keeps coming up is that web
    > services are claimed to be more secure than
    > CORBA and RMI because it means drilling less
    > holes through firewalls.

    An open port is as secure as the service behind it accepting connections. If your implementation of CORBA/RMI is tight and there aren't any vulnerabilities, it's equally secure to going through a web server.

    I think one reason people like using port 80 + app/web server, in addition to the fact that it's probably open on the client's end, is the fact that there's a LOT of security work being done on Apache. It's a nice feeling to run Apache as nobody, have it hit your little app, and not worry as much because it's relatively tried n' tested.

  47. Interesting view of SOAP by plaidlad · · Score: 1

    I have heard it said that saying "SOAP is a firewall friendly protocol!" is like saying "They're armed with head-friendly bullets!"

    I'd be wary of *any* protocol capable of passing non-web traffic over open ports through a firewall...

    --
    "Of course I'm wrong... That's how I get to 'right'." - Gil Grissom
  48. OF COURSE its more secure!!! ;) by einhverfr · · Score: 3, Insightful

    I don't know about you, but this thing seems much more like-- Firewall Enhancement Protocol. The writers of this rfc seem to think that this is the best thing for the internet since OSPF....

    Seriously-- allowing ANY sort of RPC through a firewall has some serious risks.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:OF COURSE its more secure!!! ;) by Cato · · Score: 3, Insightful

      You did notice this RFC was dated April 1st, didn't you? It's poking fun at people who think tunnelling through firewalls is a good idea...

    2. Re:OF COURSE its more secure!!! ;) by Anonymous Coward · · Score: 0

      Yes, but obviously the moderators did not before they moderated me as insiteful...

    3. Re:OF COURSE its more secure!!! ;) by einhverfr · · Score: 2

      You did notice this RFC was dated April 1st, didn't you? It's poking fun at people who think tunnelling through firewalls is a good idea...

      My point was half-joking and half-satire....

      SOAP and XML-RPC really do look like FEP to me-- tunneling everything through port 80 so that the firewall does not really filter them... This is exactly the thing that the Firewall Enhancement Protocol RFC was poking fun at...

      Some people have suggested IP over SOAP which REALLY looks like FEP.

      --

      LedgerSMB: Open source Accounting/ERP
  49. ?Secure? as in probably/maybe/hope so by Anonymous Coward · · Score: 0
    We've recently learned a little more about the feeling of insecurity one suffers when one of their public servers is compromised. Live & learn, & learn, & learn. If someone tales you they offer 100% data security, on a 'public' webserver, they're exaggerating by some %.

    We're of the opinion, that if you want total data security, you'd be wise to keep IT (the data) off a 'pubic' web server. That could/should/will? change, but NOT by some perpetuation of total BS, lack of disclosure to save face, crud.

    Check out our web address giveaway. includes a year's free hosting. In case you need somewhere to hang your hack (see also: VA Larry lays cullame to EVERYBODY's work), whilst the GNU millennium kicks in. We have some other options for any who are interested.

  50. proxy vs. packet-filtering firewalls by brettbender · · Score: 1

    A packet-filtering firewall looks at headers -- source and destination address, port, flags, etc.

    This is cheap, quick, and failure-prone (since the mapping of headers to applications is mostly by mutual consensus, and an attacker, or a developer with a deadline looking to bypass the foot-dragging firewall admin, can be assumed to not be "playing fair"). You have no little or no control over packet data/payload. This translates, at a higher layer, to no control over what service runs on a particular TCP port.

    OTOH, a proxy firewall "knows" something about your service protocol. It inspects packet payloads and makes decisions (drop, pass, rewrite) based on the content. This is expensive, slow, and failure-prone (hey, the proxy has to correctly parse the service protocol AND be configured correctly!).

    Net result -- if you use a packet-filtering firewall and make the assumption that "port 80 means HTTP", sooner or later you're going to be wrong. You need to move up the protocol stack and make filtering decisions based on payload (e.g. is this request, whether HTTP or SOAP, one that I wish to act on?). That's the job of the proxy firewall (or your web/app server -- the line can get blurry).

  51. Re:In fact, you could just embed everything in HTT by smittyoneeach · · Score: 1

    Shhhhhhh!
    The market depends on people eschewing simple
    solutions using existing resources.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  52. use strong auth and partitioning by gdon · · Score: 1

    As always, strong authentication (along with a fine appreciation of the remaining risks) is the obligatory path, whatever the service is. The next step is clever partitioning : if your front end server gets compromised, try to reduce the possibilities of spreading through your network, using physical separation, filtering devices, DMZs ... And of course, take care of your server software and audit the app's code. Evnetually, you may add an app level filtering proxy, but I don't know if there is such a beast for SOAP requests.

    It is true however that multiplexing every app protocol on the planet through a single HTTP canal may make HTTP look like NetBios (damn "three ports fit all" paradigm). Handle with care !

    Do you agree ?

    --
    gdon
  53. hint by ckuhtz · · Score: 1

    IIOP isn't bidirectional across all firewalls if NAT is employed. Specifically with Checkpoint firewalls, you basically can only go one way (due to embedded IP addrs and such).

    --

    Poof.
  54. Re:SOAP by Freytur · · Score: 1

    Hi,
    there already exists at least one secure SOAP implementation (using HTTPS) I know about and you may download it free for development purposes.

    The best of this implementation is the NetBeans (Forte) module for developers. IMHO those guys have made a really good work.

  55. I agree by Anonymous Coward · · Score: 0

    Firewall/Security administrators are concerned with _what_ data goes in and out of the network and not _how many_ holes have to be put in a firewall. If all the companies secrets are being sent out of port 80 then the network is not secure and the firewall is useless. A good firewall administrator can manage a firewall with one hole or many holes and understands what is going in and out of the network. This not to say that web services is totally insecure, it is to say that security is not something that stops at the firewall, it goes down to all data in, out and on the network and included the content of that data.

    Michael Marschall

  56. Web Services Security Publications by DreamTheater · · Score: 1, Informative
    I wrote an article on this subject for XML Journal. Check out Volume 2 Issue 9. Also, my new book
    • Professional XML Web Services
    expands on this topic quite a bit. Both are available at www.markrichman.com
  57. securing apps is the real deal by Anonymous Coward · · Score: 0
    securing the port is a trivial issue. Securing 80 or the IIOP ports or the RMI ports at the "firewall" is a pile of dunk. Using SSL to do the comm is more important and RMI/SSL IIOP/SSL is real. The real issue that is not addressed in this question is securing the applications themselves by allowing for authentication. There web services doesn't specify anything, it is a huge hole. So while the port 80 is "secured" or whatever that means to the manager that goes "oh ok them I am safe" you are really securing the little entry from the backyard, while the front door to the house is wide open with neon signs saying "steal me! steal me!".

    App securing and propagation of security context/credential is the key, microsoft "passport" is aimed at that, by adding proprietary protocols to propagate credentials and implement security in a way that will be MS specific.

    For more interoperability there, check J2EE that does specify security propagation at the wire leve with RMI/IIOP. And I am going to plug a project I work on (had to ;-) for the J2EE reference implementation with JAAS so that you can plug in your legacy stuff in there as well. Then we DO offer a WSDL/UDDI port to web-services to communicate with EJB so you leverage that model of security and VOILA, secured webservices.

  58. Port 80 already used for "services" - CGI by Anonymous Coward · · Score: 0, Offtopic

    HTTP has supported extremely simple transactions/services support for years through CGI. Essentially your entire question is moot.

  59. Layer 7 firewalling by garver · · Score: 2

    Yes, another port would be simpler to secure. Without that, firewall administrators will simply go higher in the stack and look at layer 7. In other words, the firewall will have to pick out the URL and apply rules to that. Of course, this also implies the firewall is tracking connections, etc. It can no longer be just a dumb packet filter, but no serious firewall is.

    In the end, the lack of a port as a service differentiator isn't a big deal. What is important is that you have something wich differentiates the service. A URL can do that, it just costs a little more CPU.

    1. Re:Layer 7 firewalling by ahde · · Score: 2

      a little more CPU may not be much for an occasional packet, But you're talking at least 10x as much work for every request that goes through port 80 -- and intend to send more through it.

      compare this:

      does tcp port = 80
      optionally assemble and check for http request patterns (is valid request)
      if suspicious look for known exploit signatures

      to

      log incoming host request
      nslookup to verify
      translate name
      assemble packets
      parse message
      checksum
      compare url with known good
      optionally anayze dtd/program flow
      if suspicious check with known exploit signatures

      And the second ruleset is going to let alot more through. The advantage of the first message is that you can just reject anything that looks suspicious on port 80. You may have to be more cautious with packets coming through on port 12345, but there are far fewer of them.

  60. Incoming requests and firewalls by Builder · · Score: 1

    As a sysadmin, I prefer to have each service running on a separate port and if it is a soap based service, just add the port number to the request.

    This means that I can control what is being accessed by whom at the firewall, machine and application level.

    The big problem with this is that many corporate firewalls prevent outgoing connections to non-standard ports. So if I want my developers apps to be open to the world, I often have to go against my first choice and run the services on port 80.

    Just my 2p

  61. don't rely on packet filtering by Mastedon · · Score: 1, Insightful

    As long as you rely on packet filtering only, then anybody that meets the filter criteria can sneak whatever they want through the firewall on an open port.

    The answer would be to build a stateful inspection engine for soap-over-insertprotocolhere, and then use that to verify the legitimacy of teh soap messages. A daunting task, since a firewall vendor is going to have trouble validating code that you are writing!

  62. Firewalls will have to become heuristic by Ars-Fartsica · · Score: 4, Insightful
    At some point it will be simply impossible to effectively firewall by port, protocol or syntax. There are so many ways of piping functionality acrosss the network that firewalls are simply going to have to become intelligent about what represents a hostile bytestream.

    I wonder if anyone is working on this?

    1. Re:Firewalls will have to become heuristic by boxless · · Score: 0

      Yes,yes, absolutely. This has bothered me for some time.

      But this really gets at intrusion detection and monitoring, which I think are the most important aspects of security (and often overlooked).

      A really cool thing to be working on would be an IDS that utilized heuristics. That to me means that the IDS is looking at the patterns of communication, not just the communication. That's been a well known method in code breaking for years. If an IDS could raise a flag when some rogue engineer's workstation started doing funny things over HTTP at 3am (because he was tunnelled in using some un-approved desktop sharing software, for example), and it had never seen that activity before, it should at least log and alert.

    2. Re:Firewalls will have to become heuristic by Anonymous Coward · · Score: 0

      One simple heuristic is to watch for statistical changes -- a sudden variation in the length or frequency of HTTP messages, for example, or disproportionately large messages coming from particular sources.

    3. Re:Firewalls will have to become heuristic by Anonymous Coward · · Score: 0

      anti* software is hard to write.
      I know what you're thinking.
      It's all in the body language.

  63. More appropriate question? by f00zbll · · Score: 2, Interesting
    To me the more appropriate question is what is quicker/easier to develop? Configuring the network firewall, servers and router is the job of the Network and system administrator, so do you really have much influence over those factors?

    Having done sys admin work, it's much easier and less work to go through port 80. That's one less port to keep track of and allows me to build expertise on securing HTTP. Learning to secure a lot of different ports isn't hard though time consuming. Teaching it to new staff and making sure they understand all of it isn't. That's one reason for the adoption of SOAP and other XML/HTTP protocols.

    From a developer perspective, would you rather build in IPSec to your IIOP, CORBA application, or setup HTTPS and go through a well tested system? Rolling your own security on top of IIOP and CORBA isn't a trivial task. You could build your own encryption wrapper for IIOP or CORBA, but you would have to handle all the key storage, key management, encryp/decrypt, secure sessions, and authentication to create robust, reliable security.

    If your application really needs greater than 128bit SSL, then going through a web server on port 80 doesn't do anything 4 U. To my knowledge RMI can make HTTP connections via java.rmi.server.RMISocketFactory. There are existing Java libs to handle both SSL and key management, so going with port 80 is really a administration choice.

    1. Re:More appropriate question? by ahde · · Score: 2

      so use your soap protocol on some random high port with its own httpd.

      No one is saying you can't use soap. But the fact is that SOAP is designed to hide in seemingly safe requests. If it wasn't on port 80 (or 443), no one would want to use SOAP. Period. Soap is not port or protocol independent. The only reason it exists is to tunnel through firewalls, and more particularly to run on client systems with limited TCP/IP implementations (win9x). And no one is going to create soap clients that are build on full Apache Webserver implementations. They will be custom built, buggy, closed source applications that perform one task that the user may want (stock ticker/music service/etc), but be specifically designed as trojans so that the company that persuades the user to download them will have access to other data and services on the client computer. Just because it is Microsoft or some other benevolent company doing doesn't make it right or safe.

  64. "Harmless http?" by einhverfr · · Score: 2

    Off the trolley, I'd say. It's a fundamental and unavoidable weakness of packet firewalls that they filter ports, not services. It's completely naive to believe that port 80 will always be harmless HTTP traffic. ANYTHING can run on port 80, and there's nothing you can do against it unless you have absolute control over all machines behind the firewall.

    Hmmm.... Not only can XLM-RPC and SOAP also run on port 80, but that HTTP traffic can be mighty harmfull... Thinking of Nimda, Code Red, and CRII.... The problem is that any "protocol" is fundamentally used to exchange instructions and these instructions can be used for all sorts of stuff.... So filter based on services, but please keep the services in your DMZ ;)

    Basically, this means--

    filter based on IP address and port number. only allow those things to pass through the firewall that you absolutely need (possible exception of outgoing TCP connections, at your discression) and keep it all inventoried.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:"Harmless http?" by madburn · · Score: 1

      RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 is a good read. It illustrates that, contrary to popular belief, HTTP is not a protocol defined solely for "web page requests". It is actually a general-purpose protocol for reading and writing data, creating and deleting resources, proxying, etc. No wonder SOAP (amongst other things) builds on top of it. It is a very flexible network transport layer. The danger really comes from how HTTP/SOAP are implemented. In other words, how secure is the server? Recent issues with IIS allowing full write access to FAT-based web directories shows how poor security design in software can lead to all kinds of unintended consequences.

  65. RPC evil (latency & failure potential) by kevin_butler · · Score: 1

    Two cases:

    doSomethingRemote() # RPC that may take 100 ms and may throw an exception because of network failures

    and

    doSomethingRemote2() # local call that formats information into a message to send to a socket, then waits for the response, possibly taking 100 ms and possibly throwing an exception because of network failures

    What is the primary difference? The amount of programmer effort required to implement #2.

    If you're going to use remote functionality, you're going to pay the price whether you do it in a standardized, automated way, or in a custom, manual way. Yes, you need to be aware of the performance implications, but you need to be aware of the performance implications of _ANY_ function you call - the function may do database accesses, may open files, may consume huge amounts of memory, may sleep for 10 minutes, etc. These concerns are not unique to RPC.

    1. Re:RPC evil (latency & failure potential) by ahde · · Score: 2

      exception handling is easier in omni's way, but probly not enough to justify the programming overhead. But a message loop is more graceful and more flexible from an OO perspective too. Think about the other latency case -- user interface.

      while (response = network_event_handler(request) == NULL)
      {
      wait();
      if (timeout())
      {
      exception("Time to find out who's running Gnutella");
      }
      }

  66. Re:SOAP by Computer! · · Score: 2

    Right. Why stop at serving bulky data, when you can wrap the bulky data in more bulky data.

    Why? Ask anyone who writes tools that piggyback off of Ebay if they wish Ebay supplied XML representation of auction data. They will pee themselves, then scream out loud with joy. XML provides a way to exchange data that is human and machine readable. It also responds well to compression, due to redundancy.

    --
    If you fall off a building, go real limp, because maybe you'll look like a dummy and people will be like hey, free dummy
  67. Just use HTTPS? by jfsather · · Score: 1

    Why can't you use HTTPS? I'm not sure what the implementation in VB/VC++ would be like, but doing it in Java is quite easy (go grab the Sun JSSE libs and look at the examples). Just setup the authentication and you are good to go. I built an internal relay inside our network. It listens on port XXXX and then sends the request to port 443 on the remote machine. I wrote the connector in Java but was talking to an MS ASP box. Even though we were not using true SOAP encapsulation it was a cutomized XML RPC type call so it is pretty close. I had to write a relay because the internal request was coming from a C program and the C programmer didn't know how to handle HTTPS authentication/verification. This was for some e-commerce type stuff. The managers here seem to think that is enough.

    As a side note, the relay is actually faster than individual, direct connections since in Java it takes a while to generate the KeyStore.

    -J

  68. Easier Administration??? by sdb6247 · · Score: 0

    This is very disconcerting to me.

    How many posts have I seen talking about how much easier running multiple services over port 80 would make their firewall administration? WTF???

    How many of you out there are real administrators? Running multiple services over a single port does not make anything easier, it makes it more difficult, because you've just eliminated your first line of defense against getting cracked; the port-blocking mechanism.

    If these are services that you use on your network, then fine, but there are many people out there that will end up with a default installation on their server that includes a bunch of shit they don't even use or know about.

    And another thing... a couple posts mentioned how great this is because now you can log stuff right into your http logs. GREAT! That's the most jacked opinion I've ever heard. Nothing like clogging up a service log with other services' information. Perhaps us linux users should just eliminate everything in /var/log except for 'messages', then we've got all our logs conveniently in one location.

    Seriously, though, I'm sure that SOAP is wonderful when used appropriately... It's just that most of you are not fully understanding the issue at hand: bozo here who made the intial post doesn't realize that he doesn't have to do things this way. Since when does any back-end shit he writes have to be done over port 80???

    Can we please start seeing some real questions being posted, please?

    --
    ---- Please flame below this line ----
  69. I asked MS the same question at PDC 2000 by merlin_jim · · Score: 3, Informative

    I asked pretty much the same thing of Microsoft when they first announced .NET (which is closely tied to SOAP) For anyone who's curious, I asked a couple people, so I don't really remember WHO I talked to, but I do know that Scott Gu was one of the people.

    Their response?

    Developers are tired of being hampered by netadmins, trying to open up unsecure ports just so that DCOM will work. Basically, SOAP is a way to do it where you don't have to open up esoteric and undocumented ports and protocols...

    As far as security goes... it's up to the implementors. SOAP does have one advantage over some other forms of RPC, in that it has a few built in forms of authentication and is explicit as opposed to implicit. That means you can't just randomly activate bits of code just because you can log onto a server.

    Another advantage of SOAP is that a decent XML coder can write his own parser for the protocol, so you don't have to use the vendor's, and you can customize your parser to only pass safe requests.

    Of course, some of the MS people indicated that they felt I should use the MS parser at this point. I haven't seen anything bad with it, but I wouldn't have any qualms about writing my own if the business needs dictated it...

    --
    I am disrespectful to dirt! Can you see that I am serious?!
  70. "If you do this you'll get in trouble!" by Nicolas+MONNET · · Score: 2, Interesting

    I was contracting at company X a few years ago. I needed to use some piece of software for my project, and the demo site for said software ran on port 8081.

    Which was blocked by the company firewall.

    So I go ask the admin why it's blocked. I mean, WTF, blocking random _incoming_ ports I can understand, but outgoing ports? When there's already port 80 and 21 wide open? Not to mention DNS[1].

    "We don't open it because it's more secure that way", he said. "But it's not more secure!" "YES it is!" "Why?" ".... BECAUSE!"

    "Ok but look I could just make an SSH tunnel on port 80 with pppd and I can bypass all that stuff ..."

    He replied: "well if you do that, you'll get in a LOT of trouble, and the company is going to sue you! And I warn you because I have logs of everything!"

    Now what's really interesting is that I had been running this particular setup (pppd through ssh on port 80) for a couple months already, and nobody noticed.

    [1] You think you've secured everything and that no info can get through your highly secure firewall? But have you thought about the DNS?

    $ host the.root.password.is.iluvmom.crackersite.net

  71. SOAP is designed to combat security by ahde · · Score: 5, Informative

    SOAP was developed specifically so companies (such as Microsoft) can execute arbitrary code through otherwise secure firewalls where all they have to do is get the user to download a simple client program that wraps the commands in an XML format and sends it as an innocent looking HTTP response. It was designed to *solve* the problem of corporate users wanting to run network applications that are verboten or otherwize blocked by their network administrators.

    SOAP is designed with security in mind. Security circumvention.

    1. Re:SOAP is designed to combat security by ethereal · · Score: 2, Insightful

      I think that is this article's most insightful comment so far. cf also the comment above where Bruce Schneier points this out.

      --

      Your right to not believe: Americans United for Separation of Church and

  72. Steven Deering and the IETF by Scott.Simpson · · Score: 2, Insightful

    Steven Deering from the IETF had an interesting point about running a bunch of services on top top port 80. If you run a bunch of services on top of port 80, all you done is build a protocol stack on top of things running on port 80 and you've turned TCP into a layer 2 protocol. You haven't solved anything, and in fact, you've moved your problem up a level. This is ridiculous. We need to get back to running separate services on separate ports just as the Internet was designed to do.

    1. Re:Steven Deering and the IETF by Anonymous Coward · · Score: 0

      "We need to get back to running separate services on separate ports just as the Internet was designed to do."

      The Internet was designed?

  73. Bruce Schneier on SOAP by heilbron · · Score: 4, Interesting

    Bruce Schneier had an interesting statement on security and SOAP:

    <a href="http://www.counterpane.com/crypto-gram-0006. html#SOAP">CryptoGram Newsletter on 2001-June-15:SOAP</a>

  74. You'd be crazy to let IIOP through a firewall by Anonymous Coward · · Score: 0

    IIOP is so rife with problems and can so easily crash an ORB server you'd be crazy to let it through the firewall. Show me a single public IIOP address (IOR) and I'll show you a system that is never up.

  75. You should try running an ASP. by AugstWest · · Score: 5, Informative

    I work for an ASP, and we basically have to build full web applications that function like Office tools, and believe me, port 80 is a necessity.

    We need to fire up a java applet on the client machine that maintains a session with the server. We also need to allow chat.

    I can't begin to tell you how many million sof dollars we've lost as a company because of large corporations that refuse to adjust their firewall settings to accomodate web applications.

    Some of them don't want .jar files being executed. Some of them just don't want to allow anything but port 80.

    If we're only allowed traffic on port 80, which is the case when dealing with 90% of corporate environments, your choice is either a) get the services running over port 80 or b) give up on maintaining your business.

    1. Re:You should try running an ASP. by ahde · · Score: 2

      guess what--

      they don't want your app running through port 80 either. You are tricking their users into downloading a trojan and illegally circumventing their security. That's why they had the other ports closed in the first place. It may be anal, it may be ignorant, but it is their decision.

    2. Re:You should try running an ASP. by AugstWest · · Score: 2

      uh.... No, i'm not tricking anyone into downloading a trojan. It's a web application.

      You know, everyone is going on about ASPs and web apps, huge companies like WebLogic and projects like, oh, say, Tomcat and Jserv are built around them.

      Of course, the model is flawed if your entire means of getting people to interact with the application is through web forms. They're not very interactive.

      Of course, you could always build huge ActiveX modules to do it for you, but we chose Java instead. Unfortunately, it's a Microsoft world out there, and they've done a pretty good job of making sure we're not going to have an easy time of it.

      But you know, MS is out there to help businesses, right?

  76. CORBA and public internet != friends by Anonymous Coward · · Score: 0

    Opening a CORBA/IIOP port to the Internet is an invitation to say "hack me". There are a million ways in which to bring any ORB to its knees. CORBA only works in a trusted environment. No CORBA vendors can agree on security standards anyway - so most shops don't have any CORBA security, so you might as well avoid CORBA altogether.

  77. Re:He's NOT trolling by CharlieG · · Score: 2

    He wasn't trolling. I've spent upto 6 months trying to get a port opened, only to be refused. Work for a bung company owned by another big company that says "You will not open a port", and you have 12 levels of management to go through to even ASK

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  78. Slashcode is in Perl by Anonymous Coward · · Score: 0

    LOTS of bugs and security exploits there. Should have used VB running in XP to get bulletproof performance and lightning fast response.

  79. Less is more by Anonymous Coward · · Score: 0

    Always remember that less is more. Less web security can lead to more of it because when you look at the absolute picture you can see that the more will eventually be overtaken by the lesser in small amounts. Hence, more cannot be the lesser of the two but less can be greater than the more.

  80. web services security as an emerging market by mbogosian · · Score: 3, Insightful

    To date, there have been a large number of tools dedicated to the creation and deployment of web services, but relatively little thought has been given to relationship management between services (a subset of which is security). Only a handful of companies (e.g., the deftly-named Grand Central and Flamenco) have started to broach this issue.

    I think we can expect to see a large amount of activity in the area of what it takes to connect web services in the real world (i.e., with sensitive data, in business-critical operations, etc.) in the near future. One certainly would not one's web services to be abused/cracked as easily as Microsoft's Passport "technology". It will be interesting to see how this new market evolves.

  81. Bleh. by dave-fu · · Score: 1

    If you're using SOAP, make sure you have a validation schema that you run all incoming messages through and drop anything that doesn't pass it. If you're running anything else, I dunno. Re-examine your code and make sure you don't have any obvious buffer overflows waiting to happen.
    As with most of the Ask Slashdot questions, I'll beg the question: was a Google search and a little common sense really so scary that you needed the hand-holding and warm fuzzies that a few nodding heads who may not have any idea what you're talking about will provide you?

    --
    Easy does it!
    This comment has been submitted already, 276865 hours , 59 minutes ago. No need to try again.
  82. Don't forget the reality of the customer! by uppity_frodo · · Score: 2, Insightful

    Don't forget that there are a lot of customers out there that can only contact sites on port 80 and 443. I have run into this time and again. You want to use a port other than 80 for admin or security reason, only to find out that your customers security practices don't allow communication to other ports.

    This is true for both consumers and business customers.

    So while you might want to run a service or application on another port, you might be locked into port 80.

    Just something to keep in mind.

    Beside, you shouldn't rely on the obscure ports for you security. You should build security into your application from the start. And you should NEVER trust any data that comes from "outside" your applications.

    Cheers!

  83. problem with one service one port by Anonymous Coward · · Score: 0

    one of the biggest disadvantage of one service one port concept is that it exposes internal resources to outside world. ports are finite resources and part of OS. If you have one port one service, you would run out of services soon. so there needs to be a mechanism to share ports. the most open ports nowadays is 80. so people are devising a way to share this port for multiple things. there is nothing wrong with this. SOAP is a way to share http protocol for things other than web page download. What is wrong with that?

  84. Why do we even need ports in the first place? by rice_burners_suck · · Score: 3, Insightful

    I would say that drilling open a bunch of ports on a firewall is probably safer than opening port 80 and nothing else and running all services through this port. Why do you suppose we have ports in the first place? If everything is supposed to run on just one port, than we should have just an IP address and no ports at all! But we do have ports, 64K of them.

    In my opinion, every "server" program running on a computer should have its own dedicated ports which it listens on and performs operations through. For secure operation, you decide which services you need and enable only those services. Since all ports not used by these services are, well, not used, then you should block those ports in your firewall.

    Want more security? Most non-computer people simply don't understand the concept of good computer maintainence. I keep telling people that just like any machine, computers need to be well maintained or their operation degrades over time. (And that means that security vulnerabilities become more likely as time goes by without proper maintainence.) This includes software and hardware maintainence. Once you have a well functional system working, you can search for big security vulnerabilities, like unnecessary programs or whatever. Once those are gone, you look for smaller things, like software configuration that might allow an intruder to get increased priveledges. Once those are gone, you can go deeper, by getting some h4x0r programs and torture testing your system (being careful not to mess up other peoples' systems in the process). Once you can't get into your own system, you can go deeper yet by examining and auditing the source code of programs you're running (if the source is available to you). I'm sure there are about 30 other steps in between these, but these four are the big tick-marks I can think of right now. Oh well.

  85. SSL by KyleCordes · · Score: 2

    Yes, SSL is a *huge* hole in the idea that a firewall can statefully inspect everything going through and place strong limits on what can be send. To allow SSL, you have to allow arbitrary binary data on port 443.

    The only way to stop it is to block SSL / HTTPS. Ah, that's a fantastic way to increase security ;-)

  86. SOAP is definitly more secure and more managable by tarun · · Score: 0, Flamebait

    As other people have pointed out, CGI scripts etc are probably more inherently secure compared to SOAP. With SOAP, one can look at a particular HTTP header to find out which service or method is being called and weather user has permissions to access it (one such opens source Apache module that does this is available here. This will alow you to selectively open SOAP services on per-user (or per-group) basis where users are authenticated by specifying a password or XML Signature.

    From adminstration point of view, it is definitly far more convinient to watch just one port even when you are not a lazy administrator and watch, log and manually scan each suspicious packet going inside your network. and that is why SOAP is plus-plus. I do not see how just using IIOP instead of HTTP increases the security.

  87. agreed: he is *SO* *NOT* trolling (my experiences) by lordpixel · · Score: 2, Insightful

    Every large organization I've worked for is like that. They *will not* open new ports, but most of them pay no attention to what's going on on 80, 25 and the few other ports they do allow.

    Its hardly surprising: they've all been sold on the all they need is a firewall. Then when they discover they need a policy for that firewall and for handling requests from their staff, they all choose to do "whatever everyone else does". This means HTTP, SMTP and POP bascially. (I'll refrain from commenting on how "secure" those three are.)

    I was once told (at a previous job) I couldn't have CDDB because it was MP3-ish and might be used by music pirates. (In case you don't know, its a service for looking up the titles of songs, not getting the music itself. I explained this to the guy. He said "I know" but its still not happening.)

    Actually the other thing that goes on is people outsource their firewall management. Every time you call you wait a week to get the person who knows their account, then they charge $$$ per hour to make a change. I think we found the real cause of my "no-CDDB" problem.

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

  88. "Web RPCs Considered Harmful" by kmacleod · · Score: 2, Informative

    I wrote "Web RPCs Considered Harmful" that briefly addresses the security issue.

    Summary (and using more recent terminology): Web services that expose more new and unique code are more likely to expose bugs. RPCs, SOAP, and CGIs all encourage developers to write more exposed code by making that style easier to do.

    One better alternative is to be more data-driven (some would say "functional", as in "functional programming"), so that you only expose data (via a standard server which would typically be more mature, heavily reviewed code).

    Alas, that's an entirely different way of thinking that most people are not used to, since it flies in the face of "normal procedural or OO programming" that happens on the desktop. Some examples, though, are Linda Systems (TupleSpaces), REST (the traditional WWW architecture), and even P2P to a large extent.

  89. Re:He's NOT trolling by jalane · · Score: 1

    Agreed. I've working in the financial industry for many years, and now I'm working for a subsidiary of a subsidiary of a multinational publishing company. I can't even ask to get a DNS entry added, 'cause the people I have to ask don't want the red tape from the people they have to ask, who don't want ...

    The most common response I've gotten to trying to open a port (for inbound SSH, restricted by incoming IP) is that "policy is not to open up any ports". At a previous employer, a request to change the policy was refused on the grounds that it would violate the policy whose change is being requested!

    And don't forget that delaying and refusing requests from other divisions/departments in a large corporation is a prime tool for a manager to show importance and hold onto his/her "turf"... In times of layoffs, every manager's inner control-freak comes out.

    It's really quite impossible to get a reasonable request through the layers of cluelessness that exists between you and the network admin who can make the change, and then only if (s)he can convince the PHBs above of its necessity. Violating the spirit of the rules, but not their letter, is often the only way to get an essential network service in large organizations.

    And, yes, if XML-RPC/SOAP gets blocked, then certainly it's going to get base-64 encoded in an HTML "PUT" in order to get it through. Sucks, but that's corporate reality.

  90. I can't believe this by Col.+Panic · · Score: 1
    However, Firewalls are built to protect from external threats, not internal ones.

    Bzzzt - try again. Firewalls are built to protect from threats, internal or external. This RFC is the steaming pile of shit.

    I especially like this one: bypassing the IT manager in charge of the Firewall ... no need to waste time involving any managers for approval.

    1. Re:I can't believe this by Anonymous Coward · · Score: 0

      Didn't you see the published date of the RFC, you moron? 1st April 2001. Obviously an April Fool's joke .. and just look who the fool is here! Haha!

    2. Re:I can't believe this by Col.+Panic · · Score: 1

      Oh - duh :/

    3. Re:I can't believe this by Anonymous Coward · · Score: 0

      Yeah, duh indeed. You are stupid!

    4. Re:I can't believe this by Col.+Panic · · Score: 1
      Oh fuck you

      one one thousand ... two one thousand ...

  91. Protocols are unproven and the overhead is huge by lordpixel · · Score: 1

    Here's the other thing that drives me crazy about this:

    The overhead of all of the layers required to do RPC over HTTP (yes, I know it doesn't have to be HTTP, but that's what we're discussing here) is huge compared to the performance on raw sockets.

    Secondly, the protocols in question are brand new. As are all the implementations. They haven't been audited, field tested or generally kicked around enough. Certainly not as much as the 30 year old ones, or even HTTP - and HTTP is very very simple - these are full function calling systems!

    Sure, there's probably some benefit in that the modern protocols were designed with security in mind, and the older ones usually didn't consider it, but that won't protect us from design flaws or implementation bugs that there hasn't been time for the community to find.

    So all in all I think all we did was bow to ignorance and introduce a lot of redundant overhead which is *less* proven secure than the older stuff.

    Its funny, its so obviously the classic tradeoff between security and convenience. It seems people want these services, but they were insecure. So now they're still wanted, but just tunnelled through something to give everyone a *very probably false* sense of security.

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

  92. SSH over HTTP by battjt · · Score: 1
    I use MindBright's ssh applet to proxy SSH over HTTP. Once that's done, anything can be tunneled.

    Joe

    --
    Joe Batt Solid Design
  93. Re:agreed: he is *SO* *NOT* trolling (my experienc by Anonymous Coward · · Score: 0

    I can understand not enabling CDDB under the "Why should I lift a finger so that you can fuck around instead of working" policy that most admins operate under.

  94. No more harmful than a CGI or Servlet by badmonkey · · Score: 1

    A web service running on port 80 is no more or less secure than a CGI or Servlet running there. You can view the url as a commandline interface just as the web-rpc uses the XML interface.. for example
    http://somehost/KickMe?function=giveAwaySecrets? pa ram0=patentPipeline
    could return an XML document full of company secrets and what not just as easily as a "web service" could.
    Clearly its the same idea, just not wrapped in the latest and greatest XML technologies.

    Web Services are no big deal security-wise, if you look at things this way.

    1. Re:No more harmful than a CGI or Servlet by Genus+Marmota · · Score: 2, Insightful
      It's not the same at all. In your example, the firewall would have to be configured to allow requests on port 80 to be passed to somehost.yourcompany.com. Unless somehost is intended as a web server, that would be poor practice. Additionally, the trojan CGI has to be running/installed on the web server (KickMe). At any decently run site the installed CGIs and servlets will be examined fairly carefully before exposing them to the public.

      OTOH, in order for everyone inside the firewall to use soap application servers on the outside, port 80 traffic has to be allowed in both directions for all machines. Any PC could have a trojaned app installed and the firewall can do nothing about it. Likely as not, those users are less security concious than the admin of a publicly available web server.

    2. Re:No more harmful than a CGI or Servlet by ahde · · Score: 2

      i don't allow CGIs or servlets exposed to the world to run on my client machines.

  95. the sky is falling by Anonymous Coward · · Score: 0

    People, soap is in no way tied to port 80. You can just as easily make soap requests over port 25 via smtp.

    Oh dear, soap requests going to a web server!

    someone explain to me how this is any more of a risk than a form posting to a cgi program? Both are transmited via http, but you're freaking out because one method of data transfer is called SOAP and the other is CGI? Filter out all M-POST requests. Write secure applications. Dont allow world access to that specific CGI. What the hell are you freaking out about? Think SOAP == Agreed upon cross language standard.

    I know, how bout you secure your application? Yeah! Wouldnt that be great! I know you think Having A Firewall will make your dick larger and your network failure proof, but that just isnt the case. For gods sake this is the best 'I do not understand and fear the unknown'. YOu're all a bunch of hyporcrites. IF you got this attitude from your boss about linux you'd all be flaming him. Look at yourselves. Go read the OPEN STANDARD. I can tell by the comments that most of you have no idea what the hell you're talking about.

    Why use soap over http? Because then there is only ONE port open and ONE application to audit and secure. If you really understood the protocol this wouldnt be an issue.

    Besides, the soap server doesnt have to be world accessible. In fact, why dont you restrict access to the soap server(cgi) in your web server?

    Write a soap.cgi and use Soap::Lite, add apache rule to restrict access.

    Oh look! You dont have to wait 2 weeks for your change request to filter through the 80 departments of IT! You can get WORK DONE!

    Or, you could implement the same functionality with plain old CGI. Except it'd be more work and harder to make work cross-language. I know you idiots like to reinvent the wheel, but this is the most asinine 'the sky is falling' discussion I've seen here to date.

  96. You can tunnel anything inside of anything. by booch · · Score: 3, Informative

    One problem with firewalls (especially packet filters) is that it's hard to know exactly what data is flowing through. You can really tunnel any protocol over any other - you just need to know how to encapsulate and decapsulate it. Distinguishing whether data is regular data or encapsulated data of another type is hard to do. So I suspect that security people are going to have a hard time, unless we can convince the developers that they *need* firewalls and to stop tunneling holes through.

    --
    Software sucks. Open Source sucks less.
  97. Death of a Salesman by Anonymous Coward · · Score: 0

    Or Death of a Sales Engineer. I worked for a place that learned that the hard way -- never try a customer demo on anything that doesn't run over port 80. The nutzoid places even block 8080 and 443 and sometimes even block JAR and CAB files.

    Unfortunately our app wasn't that flexible, so they ended up hauling 3 laptops and a minihub out to the customer site.

  98. debate summary by ethereal · · Score: 2

    I will now summarize this entire article into two opposing viewpoints:

    • SOAP is great - it lets you work around those annoying firewalls and get stuff done on port 80!
    • SOAP is wrong - firewalls are there for a reason, and just running everything on port 80 doesn't make it any more secure.

    I tend to agree with the second argument, but until we have powerful stateful protocol filters for all protocols that could go through port 80 or wherever, there's no real difference between opening 50 separate holes or one big one. Even then, bad stuff can get in and out over https, etc. So SOAP doesn't really make things much worse, it just points out security issues that we've been ignoring all along.

    --

    Your right to not believe: Americans United for Separation of Church and

    1. Re:debate summary by kz45 · · Score: 0

      from the photos on the gnu website, I think richard stallman needs to use SOAP. (more than once a year).

  99. SOAP is definitly more secure by tarun · · Score: 1

    As other people have pointed out, CGI/PHP/JSP scripts servlets etc are almost always more inherently insecure compared to SOAP. With SOAP, one can look at a particular HTTP header to find out which service or method is being called and if user has permissions to access it (one such opens source Apache module that does this is available here. (This module will alow you to selectively open SOAP services on per-user (or per-group) basis where users are authenticated by specifying a password or XML Signature.)

    From adminstration point of view, it is definitly far more convinient to keep tab on just one port even when you are not a lazy administrator and watch, log and manually scan each suspicious packet going inside your network. and that is why SOAP is plus-plus. Also, I do not see how just using IIOP instead of HTTP increases security of a service accessed.

  100. The Real Reason ... by StormyMonday · · Score: 3, Insightful

    ... for the SOAP protocol is that Microsoft's ActiveX services use a portmapper to get dynamic port numbers for their services. Needless to say, this is absolute hell to try to run through a firewall with anything resembling security.

    Hence SOAP. You piggyback your ActiveX control onto another service (HTTP) that uses a single port. Smart admins will use something other than port 80; we know how many of *those* there are.

    There is also the problem that firewall admins tend to take their job seriously -- they know that if anything nasty gets into the network, they'll get blamed for it. They tend to be *very* conservitave. Web admins don't -- most of them think that the worst that can happen if they get hacked is that they'll get pitchers of nekkid wimmen on the corporate homepage. They don't care. *Much* easier to deal with web admins than firewall admins. Lotsa places will even let you have your own web server if you promise to be nice.

    As to what it can lead to, check out RFC 3093, Firewall Enhancement Protocol (FEP)

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
    1. Re:The Real Reason ... by Anonymous Coward · · Score: 0

      • As to what it can lead to, check out RFC 3093, Firewall Enhancement Protocol (FEP)
      That RFC was an APRIL FOOL'S JOKE, you stupid twat.

      Jesus Fucking Christ, some of you people are morons.

    2. Re:The Real Reason ... by talks_to_birds · · Score: 1
      ah, yes!

      Good 'ol RFC 3093, Firewall Enhancement Protocol (FEP) -- heh..

      To quote:

      "RFC 3093 - Firewall Enhancement Protocol - 1 April 2001"

      Cherished excerpts:

      "We offer freedom to innovate without additionally compromising external security, and the best part, no need to waste time involving any managers for approval."

      Certainly an idea who's time has come ;-)

      "The IP datagram is carried in the message body of the HTTP message and the TCP packet header information is encoded into HTTP headers of the message. This ASCII encoding of the header fields has many advantages, including human readability, increasing the debuggability of new applications, and easy logging of packet information. If this becomes widely adopted, tools like tcpdump will become obsolete."

      Why no one's done all of this sooner, I don't know..

      t_t_b

      --
      I'm on PJ's "enemies" list! Are you?
  101. Firewalls are lame anyway by real+gumby · · Score: 2, Insightful

    A firewall is the wrong approach anyway. It presumes that you can declare a sure perimeter behind which things can be "trusted."

    There are so many ways around most firewalls (modems, wireless networks, unscrupulous visitors, virii on removable media and whotnot) that the firewall is really just the "front door."

    End-to-end security -- defense in depth -- is the only way to be sure. Each machine has to be "strong enough" -- just like most office desks and doors are equipped with locks, though most of us don't use 'em.

    Clearly we live in a world where most desktops are _completely_ insecure, so firewalls aren't completely worthless. But perhaps SOAP and the like will have some benefit through clueing in some of the clueless that there's more to security than throwing up a firewall.

    1. Re:Firewalls are lame anyway by GC · · Score: 2

      OK. Don't you ever go about implementing a firewall until you've read a little more.

      You shouldn't completely trust all the networks that your firewall separates.

      You seem to have completely missed the point, or have only implemented firewalls that allow full outbound access.

  102. gnu httptunnel vs. Mindterm (Re:SSH over HTTP) by fetta · · Score: 2, Informative

    Mindterm looks interesting, but the GNU httptunnel application (here is another link) mentioned in another post will do roughly the same thing, and you can easily use ssh over httptunnel to tunnel other protocols.

    Better yet, unlike Mindbright's applet, httptunnel is free software (GPL). Mindbright's applet does sound like it has some nice bell's and whistles, though. Probably worth paying for if you were going to roll SSS over HTTP out as a solution to a larger group of users. (using ssh over httptunnel works great, but it can be a little confusing to set up the first time.) Otherwise, try httptunnel instead.

    BlueCollarTech.com

    --
    ** The opinions expressed here are my own, and do not reflect those of my employers - past, present, or future**
    1. Re:gnu httptunnel vs. Mindterm (Re:SSH over HTTP) by battjt · · Score: 1

      I linked to the commercial product. There is also an older GPL'd version of mindterm.

      I use mindterm to VNC to my home box from any machine at any client site (using just applets, there is zero footprint).

      Joe

      --
      Joe Batt Solid Design
  103. Re:agreed: he is *SO* *NOT* trolling (my experienc by lordpixel · · Score: 1

    Heh, well I knew an admin at a 30 year old company (no .domb this one) who setup an mp3 jukebox with html interface for streaming to the whole office. YMMV :)

    Besides, I can actually listen to music and work at the same time you know...

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

  104. Good Security = Good Policies & Practices by elliotj · · Score: 2, Insightful

    Fact is that running SOAP over port 80 or not doesn't make much difference. Someone once said that IT secuirty is 20% technology and 80% policy and practice. These numbers are debatable, but I agree with the premise.

    The problem is that certain things have to be open on a networked computer in order to benefit from the networking in the first place. You need layered security. You can't just secure your physical, network and transport layers and expect everything to be okay. You need to know what's going on all the way up to the application layer.

    You need to use DMZs, staggered firewalls, SSL, SSH, applications that force you to login, appropriate file/directory/service security permissions. You need to know at any time what software your boxes are running, and make an effort to understand how that software works and what issues it presents. You need to patch commercial software, read the bug lists and do penetration testing.

    There's obviously more that can be added to this list, but the point is that security is process not a technical specification, a device...or a choice of port.

    Most organizations don't invest enough in this process because those controlling expenditure tend not to understand the importance. Also, security is one of those things you only notice when it doesn't work, so it is assumed you are doing it, and you'll never shine for doing a great job at it.

    I think it will take a much more hostile Internet security environment to wake people up to the need to invest in the most critical security capital of all: talented, educated and dedicated human beings.

  105. XML=impedance mismatch=bugs=holes by brenfern · · Score: 2, Interesting

    The issue with SOAP is not one of security - what port you run on is neither here nor there - but the fact that most technologies based on XML are a load of old rubbish.

    XML may be a "standard" but so are technologies such as Java serialisation and they work just fine over HTTP. This works automatically and leads to fewer programming errors due to "impedance mismatch", surely the chief source of any security holes and other bugs.

    I don't buy the argument that an XML schema is any more future-proof than a Java class spec. Java handles class changes etc. quite elegantly. And I don't buy the "XML is language-independent" line either - it's just hard to read XML in any language. So you have to use that awful Xerces stuff that changes every 2 months, with little backward compatibility between versions.

    Don't be fooled - there is simply nothing that uses XML that can't be done more elegantly some other way. XML is not a technology - it, along with SOAP, is a completely pointless standard.

  106. Re:agreed: he is *SO* *NOT* trolling (my experienc by ahde · · Score: 2

    bring your jacket liner to work. or use google. Your company doesn't need to buy more hardware and hire more techs just so you can remember which track is "Hit Me Baby One More Time"

  107. All true by Anonymous Coward · · Score: 1, Informative

    We run into the same problems with our clients. We've got milestones to meet to make the suites happy, but the IT guys are totally unresponsive when it comes to opening up the firewall. Thus we aim for 80.

  108. Relevant, but different. by nead · · Score: 1

    My company produces a client/server product that communicates via our custom message based protocol over a persistent TCP/IP socket. Because our product is designed to work from any computer, we have to consider that there is potentially many firewalls that we simply could never hope to have opened up for our service.

    For that reason, the application server runs on ports 80 and 443. The traffic between the client and the server is very much *not* HTTP, or HTTPS, so we do run into problems with firewalls that can inspect and identify HTTP packets, but aside from those rare instances, this is an elegant solution to the firewall problem.

    Is there something inherently wrong or evil with this solution?

  109. Re:agreed: he is *SO* *NOT* trolling (my experienc by lordpixel · · Score: 1

    That's right, genius boy. You need to hire more people and buy additional hardware to open a port or to download a few song titles. Not. Wakeup call - we had a flat rate T1. They didn't care if we ran high bandwidth stuff like streaming audio - and we could, because real audio tunnels on port 80.

    Anyway, its called "an example".

    As in, an example of how stupid it is that people can stream audio or use dangerous RPC like services or whatever, so long as its port 80, but something *completely innocuous* and *low bandwidth* is blocked purely because its on a different port.

    Both you, and that company, need hitting with a cluestick...

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

  110. Apache is the new inetd by ipoverscsi · · Score: 5, Interesting

    A couple of rebuttals if I may.

    Many people claim that one can run services on any port they choose, so port filtering is not the same thing as service filtering. True, but if people ran anything on any port we would have no concept of well-known-services at specific ports. Moving web traffic from port 80 makes almost no sense because that's where everyone is going to look for it by default. There is a high probability, then, that filtering on specific ports will filter specific services.

    Network administrators, by default, are highly suspicious and paranoid people. They don't even trust the people they work with, and for good reason. If they could force everyone to use pine or mutt for e-mail reading, I'm sure they would since it is less succeptible to Outlook-born viruses. If development teams would communicate with and seek advice from the security team when developing applications I'm sure there wouldn't be as much hostility to opening a port as there is when approached with "We just wrote an application. Can we have a free port?"[1]. In the latter case, the security team has no idea what the application does or how it was developed and is certainly not inclined to open a port to untrusted software.

    Finally, on to the subject of my article, Apache (or whatever server you're running) is the inetd of the future. Look at the facts:

    • both listen on one or more ports for requests
    • when a request comes in it is dispatched to the correct subsystem
    • most security (ssl, https, tcpwrappers) is handled by the daemon before it gets to the service handler
    • the service handler can perform further accouting or security checks
    • the daemon handles all the networking details on behalf of the subsystem
    Add to this the fact that this is all multiplexed on a single port, and configuring your firewall should be a breeze. Virtually anything you can do with inetd you can do with a good web server.

    Paradoxically, network admins appear less paranoid about their web servers than other inetd-based or standalone services. Some guy codes up a web app and, with little fuss, gets it deployed on the server. No code review, no hassle, no problem! There are only two reasons I can think of for this behavior: 1) The administrator inherently trusts the web server, or 2) the web server box is in a DMZ. I would be suspicious of administrators in the former case.

    Despite the security advantages of a DMZ, it is still necessary for application developers to communicate with security people. Say, for example, that a web application is deployed on server in a DMZ and that the machine is later compromized. If the application had a configuration file with passwords for a database, the database should now be considered compromized. Damage can be reduced or prevented by correct configuration of the database (providing write access only to a specific table rather than the whole database), but you should check with the security people before actual deployment.[2]

    [1] The standard answer to this question is "No". Note that the administrator only answers the question asked. If you want to be more successful in the future, present a full document detailing what the software does, how it works, and maybe provide the admin with a code review, THEN ask for a port. I know this is a lot of work, but it is necessary to maintain the security of the network. You may not take security seriously, but your administrator does.

    [2] Yes, I know that there are moron security people out there. My comment assumes you have good to excellent security people working in your company.

  111. Re:He's NOT trolling by Malcontent · · Score: 2

    I too have been in your situation many times. Anybody who claims that the private industry is somehow more efficient or clueful then the govt needs to read your post.

    --

    War is necrophilia.

  112. Re:He's NOT trolling by ogren · · Score: 1

    I agree. I've seen many, many organizations where it is a flat out policy not to open ports other than 80/443.

    I've always assumed that firewall administrators would soon block non-HTML traffic to eliminate these remote SOAP RPC calls.

    That's when I'll make my fortune by patenting the idea of making RPC calls via Steganography. In order to execute a web service, you'll encrypt your SOAP message with gpgp, hide it in a JPG, and post it to a predetermined Ebay auction.

  113. choose two by ahde · · Score: 2

    host address and protocol?

  114. One fish, two fish, red fish, blowfish! by jeremiahstanley · · Score: 2, Interesting

    As most of the forum here says, security doesn't start at the port level. It comes from that application itself. If you SOAP transport accepts data from whoever send it, that is bad (just restricting IP's is stupid as well as it is brainless to spoof that). I would suggest running an authentication method on all trafic coming and going.

    This can be done in any number of ways. Signing all the XML data with a GPG key to verify ownership of the data or the cheesy secret key method. Read up on how SSH works and key based authentication will seem like a viable option

  115. Re:He's NOT trolling by jdaily · · Score: 1

    I've been the guy blocking open port requests for months on end.

    I'm afraid it's a necessary evil. Without the bureaucracy to prevent quick firewall changes, it would be more difficult to conduct a security review before the port has been opened. Of course, once a port is open and services are running, turning it off becomes a near impossibility.

    You'd be amazed how little some software vendors seem to understand firewalls and the Internet. I've seen requests to open up a half-dozen ports through the firewall, including incoming ports to provide data that could be retrieved from the inside, were the software to allow it.

    If your firewall is in the right hands, all those bureaucratic hurdles are a force for good, not evil. Unfortunately, that's a fairly large caveat.

  116. Good policies are hard to come by by SecurityGuy · · Score: 2
    We like to say the solution is largely policy based, but IMO that's largely wrong. What we too often end up with is policy that doesn't necessarily have technical merit. What we need is education, top to bottom, so the high level guys drafting policies write a good one, not one that makes those who push the buttons to implement it chuckle and the end users just work around it.


    I think you're dead on that what's missing is intelligent human beings who can look at a particular instance and correctly apply security procedures, including but not limited to policies, to protect assets to the degree warranted by business needs.

  117. Re:SOAP by tartley · · Score: 1

    >> It also responds well to compression, due to redundancy. This isn't really a good thing about XML, so much as a description of how to lessen the impact of one of the bad things about XML.

  118. SOAP even works via SMTP (Email) by JohnDenver · · Score: 2

    The subject is all I wanted to say...

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  119. Re:SOAP by Computer! · · Score: 2

    You're right. Although many other means of transferring data do not compress well due to their "efficiency". XML responds well to data compression algorythms for several reasons. Unicode text always compresses pretty well. The redundancy is just one aspect.

    --
    If you fall off a building, go real limp, because maybe you'll look like a dummy and people will be like hey, free dummy
  120. SOAP not the issue by Dasein · · Score: 2, Informative

    The problem with IIOP and DRPC is that they encode the communication enpoints as a hard IP address and port in the requests on the wire.

    This makes these products virtually incompatable with network address translation (NAT) out of the box. Basically, the NAT boxes will translate a local, non-routable IP address into the IP address of the NAT box with a made-up port number. The problem is they don't modify the IP address and port numbers imbedded into the IIOP message.

    There are products that will do this but you have a choice: 1) Teach your admins about another product and install the product both at your site and the client site or 2) teach them how to secure web services using the existing firewalls, load balancers, and SSL that they already understand -- no client site modifications required.

    Securing web services properly (IMHO) requires that you have a layer 7 device that can look at the incoming SOAP requests and dump requests for an unknown endpoint on the floor immediately. The you have to make sure the request gets properly validated by the SOAP implementation and application layer.

    So on the one hand you have IIOP and DRPC that require additional products or you have SOAP with requires you to apply the products that, if you have a significant web presence, you already have. Seems like an easy choice to me but you have to understand how all the pieces fit together. If you don't have that expertise in house, go rent it from somewhere.

    --
    You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
  121. SOAP isn't the only danger by TheKMachine · · Score: 1

    I would just like to point out that the "everything on port 80" trend isn't limited to SOAP. WebDAV and most IM systems already work on the HTTP port and I see how this could be dangerous.

    This sort of thing puts the burdon on Firewall developers to improve packet inspection when those resources could very well be used to create more useful things such as a better integrated IDS. It's just plain stupid, when the TCP protocol is so well stablished for assuring a certain level of security, to make things more complex on benefit of dumb users who don't know firewalls. It's obvious that really sensitve stuff should use SSL, but this cannot be the rule.

  122. Security thru Obscurity? by Anonymous Coward · · Score: 0

    So let me get this straight...

    SOAP is insecure because it runs on port 80? Why? Who cares? What's this got to do with security?

    You can switch it to port 1234... but what does that gain you?

  123. Re:SOAP by Howie · · Score: 1

    I understand why they would want XML.

    My point was that SOAP and XML-RPC work by encapsulating the response to a function call in XML. If the response already is XML this is particularly redundant.

    --
    "don't fall into the fallacy of believing that Perl can solve social problems. Maybe Perl 6 can, but that's a ways off"
  124. One thread per client by yerricde · · Score: 2

    What exactly is it about threads that "encourage" people to use a one-thread-per-client model?

    The fact that it's the only available method under some systems. For instance, last time I checked, 100% Pure Java(tm) applications had no nonblocking I/O facility, so you had to open a thread for each concurrent I/O stream.

    What is it about RPC that encourages people to to ignore network overhead?

    Try developers designing, testing, and optimizing an application on a local LAN and then wondering why it doesn't work across the full Internet.

    --
    Will I retire or break 10K?
  125. SOAP on a ROPE by yerricde · · Score: 2

    If you want "soap on a rope", you might want to look at the Remote Object Proxy Engine (ROPE), a part of Microsoft's SOAP implementation that translates COM calls to SOAP calls.

    --
    Will I retire or break 10K?
  126. It's up to you by Anonymous Coward · · Score: 0

    Your system is only as secure as the programs you allow to run on it. If a remote procedure call comes in, no matter how, it's up to you to handle it in a secure way.

  127. Security policy MUST enable business, not inhibit by ajv · · Score: 3, Insightful

    It's not about the connection method, it's the content that traverses the corporate boundary that is the issue.

    If the content shouldn't be going over the boundary, then it doesn't matter how you achieved it - you're still in the wrong. You could do it in CORBA, you could do it in simple HTTP GET and POSTs, it doesn't matter.

    As a developer, I can make SOAP invisible to all firewall administrators using HTTPS or abusing their firewall's limitations (most firewalls are incredibly stupid - they don't and can't parse even basic protocols like HTTP, thus let anything that goes out on port X out if port X is allowed outbound.

    As a person responsible for security, your use of any services not explicitly allowed is probably against security policy. But security policy is there to enable business, not inhibit it. This is the single biggest failing of most security people: they lose sight of why they are there!.

    If it takes too long to get a content-flow approved, then that is a failing of the content-flow negotiation process, and it's not about technology at all.

    --
    Andrew van der Stock
  128. Re:He's NOT trolling by budgenator · · Score: 2

    While i realy don't know jack about networking and security, I can't remember an exploit that made big headlines that ran over a port higher than 1024. The ports lower than 1025 have to be opened by a process that at least initialy has root privs, force a buffer overflow and you've got instant root privs and a wide open system.

    if the port is greater than 1024 then any UID can open it, overflow it and you only get the privs of the opening UID. This will usualy stop the kiddies dead in there tracks, you're not going to stop a hardcore hacker that realy wants in anyways, usualy around the firewall through some salesweenies modem and telephone extention.

    Another thing is what about outgoing connections? Don't they establish a dialog, you know two way, as in talking also involve listening.

    I guess what I'm realy pointing out is security is an illusion, the best you can hope for is to make the effort to hack your system greater than the rewards gained. A computer encased in concrete sitting on the bottom of the ocean is as secure as they get, but not very usefull. Force everybody to go around your security policies, and you've got no security.
    <obigatoryRant>
    Beside I'll bet that you don't block SMTP, and Email read on one of the Microsoft virus launchers is about as insecure as you can get.</obigatoryRant>

    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  129. The real conflict. by TheLink · · Score: 2

    The real problem with this SOAP/"everything over HTTP" thing people are pushing is it's about having two networks that want to talk a lot of arbitrary stuff to each other, on almost any topic unimaginable.

    Putting a firewall between such networks is usually counter productive. Because the whole idea of a firewall is to block almost everything. Otherwise what is the firewall for?

    Worse, people are actually suggesting that one or both of these networks will be exposed to hostile/unsecured networks.

    Think about it. Should something on an unsecured network be able to ask a server on a secured network to run hundreds or thousands of undeterminable remote procedures for it?

    That's where the main problem is.

    "Mean Old Admin" blocked everything other than HTTP in order to block EVERYTHING THAT PEOPLE NOW WANT TO DO OVER SOAP from getting through to corporate networks. Yes sir, Mean Old Admin thinks that it's a bad idea to have someone outside telling your internal servers to run arbitrary stuff.

    "Mean Old Admin" knows that most of those SOAP programmers are clueless about security if not why did they design such a protocol in the first place.

    Because if it's on trusted networks why bother with tunnelling, HTTP/XML etc- go direct less overheads. If it's on an untrusted network, you got a LOT of explaining and justification to do.

    Seems a lot of programmers couldn't explain and justify why they would want to do everything over untrusted networks that's why they are trying to sneak everything over HTTP.

    So can we be sure these people can code this stuff securely?

    If a lot of people start doing this, we'd probably need BUGTRAQ-SOAP soon.

    --
  130. Use SOAPAction http header for firewall filtering by sourcecode · · Score: 1
    Aside from SSL; there are other ways to ensure that the HTTP request comes from trusted clients.
    • Signed SOAP requests by embedding XML digital sigs
    • Use SOAPAction header to provide app level filtering


    Here's an extract from the SOAP spec on SOAPAction:


    The SOAPAction HTTP request header field can be used to indicate the intent of the SOAP HTTP request. The value is a URI identifying the intent. SOAP places no restrictions on the format or specificity of the URI or that it is resolvable. An HTTP client MUST use this header field when issuing a SOAP HTTP Request.




    The presence and content of the SOAPAction header field can be used by servers such as firewalls to appropriately filter SOAP request messages in HTTP. The header field value of empty string ("") means that the intent of the SOAP message is provided by the HTTP Request-URI. No value means that there is no indication of the intent of the message

  131. Re:He's NOT trolling by Hast · · Score: 1
    if the port is greater than 1024 then any UID can open it, overflow it and you only get the privs of the opening UID.


    Yes, but that doesn't help you if the application is actually runs as root. (Sub 1024 ports are blocked for users because they are reserved ports, ftp and such should not be "spoofable" by users.) If your web server runs as root it doesn't matter if it's at port 80 or port 8080. If it's hacked it will give a root priviliges in any case. (Not that a www server /should/ be running as root.)

    Another thing is what about outgoing connections? Don't they establish a dialog, you know two way, as in talking also involve listening.


    Yes, when an outgoing connection is established then the firewall/NAT will redirect a port in the other direction for the "answer". However this port is bound to a specific IP. (The IP of the computer the internal computer was contacting.) So it's not all that easy to exploit. (It can be done of course.)

    And of course security is an illusion. You are never completely safe. That doesn't mean you should begin doing stupid things just because "well we are not safe anyways". Then you might as well tear the firewall down, it won't do you any good.
  132. Re: SOAP by ahde · · Score: 2

    A request for a page produced by a CGI script is plain text. The CGI server runs a local, trusted application that outputs a plain HTTP text stream that is sent to the client that requested it (usually a web browser) and is not interpretted (except by javascript or a browser plugin)

    SOAP implements the equivalent of allowing a remote host to send executable code to the client over a connection that is expecting plain text. It is the equivalent of having Outlook with VB Macros enabled that automatically executes as soon as an email is *received*. The biggest difference is that it is port 80 instead of 25. You will rely completely on the application itself to enforce whatever security restrictions.

    Chances are that some SOAP applications will be browser plugins. But this is an opportunity for every SOAP service provider to lock you in to their proprietary interpreter, displayer, whatever; and believe me, they will.

  133. Re:It's the client by ahde · · Score: 2

    SOAP bypasses security on the client-side. The host running the SOAP server knows the inherent risks. The same as running any network available service. What soap does is run a server process on the client's machine that attempts to bypass any firewall as well as allowing executable code to be run on the client.

  134. Re:agreed: he is *SO* *NOT* trolling (my experienc by ahde · · Score: 2

    if you use soap, you will

  135. 'Pubic' web server? by Anonymous Coward · · Score: 0

    you'd be wise to keep IT (the data) off a 'pubic' web server.

    What exactly does a 'pubic' web server contain? Porn?

  136. Re:He's NOT trolling by jdaily · · Score: 1

    Well, we didn't use Outlook, and all SMTP traffic was filtered through two different platforms with virus scanning on at least one.

    The company also did periodic checks on phone lines to make certain only authorized modems would respond.

    As someone else has pointed out, the UID question is a non-starter. It requires root privileges to bind a service to a port lower than 1024, but not to run the service past that point.

    Outgoing connections were very limited as well, and as the other response pointed out, firewalls handle those relatively securely.

    Anyway, this is a previous employer, but I still don't want to get too detailed about their security setup. Suffice it to say that I don't think a paranoid firewall policy is unreasonable, particularly for a large company.