From: Grant Taylor on
Ansgar -59cobalt- Wiechers wrote:
> Sorry, but that's just ridiculous. If you're that concerned about
> security, you don't allow SNMP or RPC in the first place. Period.
> Rather than running additional code on the servers, you'd lock them
> down tight, update them frequently, and monitor them closely.

I was just using SNMP / RPC as an example.

For the sake of discussion, please provide a service that would be
needed internally to support line-of-business applications (even in a
DMZ) that would not be allowed externally.

> You don't seem understand how SNMP works. What exactly prevents
> compromised server A from spoofing the source address of the SNMP
> packets it sends to victim server B on the same network segment? The
> protocol is UDP-based after all.

I do understand SNMP well enough for this discussion. There is nothing
that prevents the compromised server from spoofing any thing.

However, I think we can agree on the fact that there is an order of
magnitude difference in complexity in mal-ware that is capable of
spoofing IP and possibly MAC addresses verses not doing so and relying
on the OS IP stack. Likewise, I believe there is quite a bit of
difference in the number of each.

You can't protect against everything. There is a point of diminishing
return with more security.

> You mean the "sanitizing reverse proxy" thingie? Those are not about
> egress filtering, but ingress filtering. They sanitize (i.e. rewrite/
> canonicalize) the input data stream going from a client to a server,
> and thus protect a server from malicious user-supplied data.
> mod_security for Apache is an example of this kind of software.

No. I mean an edge firewall that is (hopefully) only allowing replies
from TCP ports 80 and 443 (and possibly some ICMP) as well as only
allowing the internal subnet as a source IP range.

I am perfectly aware of what a reverse (or forward) proxy is for and can
do. I was not bringing them in to this discussion.

> As explained above, this won't necessarily work as you expect.

Aside from IP spoofing and your opinion that the firewalls present a
bigger target, I fail to see how this will not work or at least help
prevent (read: slow down / limit attack) internally initiated attacks.

> SSH is a perfect example of a service that does not need to be
> "protected" with a local firewall at all. You disallow password
> authentication and restrict which user can login from where.

Other than the fact that SSH is a little more intelligent about the
application layer, I believe it too is equally susceptible to the IP
spoofing that you were referring to above. (Granted, once successfully
spoofed, there is a greater hurtle to overcome at the application layer
with encryption RSA keys and the likes.)

> If you're referring to exploitable vulnerabilities: trying to
> "protect" SSH with some kind of personal firewall would just move the
> problem from sshd to the personal firewall instead of solving it, and
> I clearly trust SSH more than any personal firewall. IPv6, anyone?

I will agree that SSH is quite a bit more hardened than most public
services, and can probably withstand quite an onslaught.

For the sake of discussion, suppose that the server farm that we are
talking about is for multiple MS-SQL servers that have to allow inbound
connections, at least from the systems behind the edge firewall.

> I don't consider the potential gain in security (which may be a lot
> less than you expect, as explained above) worth the additional
> complexity and effort in keeping another piece of software
> up-to-date.

That is a valid opinion that I can't argue with. Nor can I say that
it's logically wrong. The only thing that I can say is that mine
differs from yours.

> Of course not, because that's not what management of services is
> about. I believe I already said that if you want that level of
> isolation, you're far better off putting the servers in separate
> DMZs.

I was referring to something specifically meant to remotely manage the
configuration of aspects of services in such as you can control what IPs
that SSH (or what ever) will talk to.

I am referring to a server farm / DMZ of servers for a given task, off
by them selves. I.e. a subnet dedicated to web servers or email servers
or db servers or ...

Or do I mis-understand you in such as you are stating to put each
individual server in it's own DMZ away from other servers?



Grant. . . .
From: Grant Taylor on
Ansgar -59cobalt- Wiechers wrote:
> True, but besides the point. Repeating myself: even the best employees
> are still human and *will* make mistakes here and there. Unnecessarily
> raising the complexity of a system will only increase the chances of
> this happening.

I agree. The human element of a network is (at times) one of it's
weakest links.



Grant. . . .
From: gufus on
Hi Grant,

13 Apr 10, Grant Taylor writes to All:

>> True, but besides the point. Repeating myself: even the
>> best employees are still human and *will* make mistakes

> I agree. The human element of a network is (at times) one
> of it's weakest links.

Hmmmm... sounds like an echo here. <grin>

With only basic networking skills, I'm taking notes on you discussion with
Ansgar, interesting to-say-the least.

gufus

--
K Klement

Enhance your marketing at http://www.gypsy-designs.com
mailto:info(a)gypsy-designs.com
Gypsy Designs Fax: (403) 242-3221

.... A man without a religion is like a fish without a bicycle.
From: Ansgar -59cobalt- Wiechers on
Grant Taylor <gtaylor(a)riverviewtech.net> wrote:
> Ansgar -59cobalt- Wiechers wrote:
>> Sorry, but that's just ridiculous. If you're that concerned about
>> security, you don't allow SNMP or RPC in the first place. Period.
>> Rather than running additional code on the servers, you'd lock them
>> down tight, update them frequently, and monitor them closely.
>
> I was just using SNMP / RPC as an example.
>
> For the sake of discussion, please provide a service that would be
> needed internally to support line-of-business applications (even in a
> DMZ) that would not be allowed externally.

The only services that come to mind are Remote Desktop and SSH.

>> You don't seem understand how SNMP works. What exactly prevents
>> compromised server A from spoofing the source address of the SNMP
>> packets it sends to victim server B on the same network segment? The
>> protocol is UDP-based after all.
>
> I do understand SNMP well enough for this discussion. There is
> nothing that prevents the compromised server from spoofing any thing.
>
> However, I think we can agree on the fact that there is an order of
> magnitude difference in complexity in mal-ware that is capable of
> spoofing IP and possibly MAC addresses verses not doing so and relying
> on the OS IP stack.

No, actually we can't agree on that, as it's just plain wrong. Unless
you are talking about script-kiddy level, spoofing of addresses (either
IP or MAC) is the most basic of the basics. And in case of UDP sending
the packet with a fake sender address is all there is to it. It's
neither difficult nor complex at all.

[...]
>> As explained above, this won't necessarily work as you expect.
>
> Aside from IP spoofing and your opinion that the firewalls present a
> bigger target, I fail to see how this will not work or at least help
> prevent (read: slow down / limit attack) internally initiated attacks.

Because with UDP you don't need to establish a connection. You write the
spoofed sender address to the packet, fire and forget.

>> SSH is a perfect example of a service that does not need to be
>> "protected" with a local firewall at all. You disallow password
>> authentication and restrict which user can login from where.
>
> Other than the fact that SSH is a little more intelligent about the
> application layer, I believe it too is equally susceptible to the IP
> spoofing that you were referring to above.

On top of being a lot more intelligent at the application layer, SSH
(unlike SNMP) is also TCP-based. How do you think the compromised host
is going to receive TCP response packets when they're not going back to
the attacker's IP address? Unlike UDP, TCP is not stateless.

> (Granted, once successfully spoofed, there is a greater hurtle to
> overcome at the application layer with encryption RSA keys and the
> likes.)

That (and the user/source restrictions) come on top of the problem of
intercepting/spoofing a TCP connection.

>> If you're referring to exploitable vulnerabilities: trying to
>> "protect" SSH with some kind of personal firewall would just move the
>> problem from sshd to the personal firewall instead of solving it, and
>> I clearly trust SSH more than any personal firewall. IPv6, anyone?
>
> I will agree that SSH is quite a bit more hardened than most public
> services, and can probably withstand quite an onslaught.
>
> For the sake of discussion, suppose that the server farm that we are
> talking about is for multiple MS-SQL servers that have to allow inbound
> connections, at least from the systems behind the edge firewall.

Please be more specific about the scenario. By "from the systems behind
the edge firewall" you mean connections from within some LAN (management
or whatever) to the servers in the DMZ? What kind of connection? Why
wouldn't RDP suffice? Why can't the connection be tunneled (e.g. with
stunnel) in case RDP does not suffice?

>> Of course not, because that's not what management of services is
>> about. I believe I already said that if you want that level of
>> isolation, you're far better off putting the servers in separate
>> DMZs.
>
> I was referring to something specifically meant to remotely manage the
> configuration of aspects of services in such as you can control what
> IPs that SSH (or what ever) will talk to.
>
> I am referring to a server farm / DMZ of servers for a given task, off
> by them selves. I.e. a subnet dedicated to web servers or email
> servers or db servers or ...

In a scenario like that: if an attacker can exploit one server, he can
exploit the other (similar) servers just the same. No need at all to
take a different route for compromizing them.

> Or do I mis-understand you in such as you are stating to put each
> individual server in it's own DMZ away from other servers?

For a server farm as you described above: no. But as explained above,
there's no need to further isolate them anyway. For servers carrying out
different tasks it might be an option.

cu
59cobalt
--
"If a software developer ever believes a rootkit is a necessary part of
their architecture they should go back and re-architect their solution."
--Mark Russinovich
From: Grant Taylor on
Ansgar -59cobalt- Wiechers wrote:
> The only services that come to mind are Remote Desktop and SSH.

RDP.

> No, actually we can't agree on that, as it's just plain wrong. Unless
> you are talking about script-kiddy level, spoofing of addresses
> (either IP or MAC) is the most basic of the basics. And in case of
> UDP sending the packet with a fake sender address is all there is to
> it. It's neither difficult nor complex at all.

I was referring to script-kiddy.

I'm of the opinion that little will stop a properly motivated skilled
attacker.

The rest of the chaff is what I'm thinking about protecting against.

> On top of being a lot more intelligent at the application layer, SSH
> (unlike SNMP) is also TCP-based. How do you think the compromised
> host is going to receive TCP response packets when they're not going
> back to the attacker's IP address? Unlike UDP, TCP is not stateless.

The compromised host would need to be in the return path or local LAN of
the spoofed host.

> That (and the user/source restrictions) come on top of the problem of
> intercepting/spoofing a TCP connection.

Agreed.

> Please be more specific about the scenario. By "from the systems
> behind the edge firewall" you mean connections from within some LAN
> (management or whatever) to the servers in the DMZ? What kind of
> connection? Why wouldn't RDP suffice? Why can't the connection be
> tunneled (e.g. with stunnel) in case RDP does not suffice?

Let's say that it's a routed VLAN that is firewalled and using globally
routable IPs for the servers in said VLAN. (Said another way, the same
broadcast domain.)

RDP or SSH should suffice for management. But what about some other
service that is used by the server. - I've never messed with it, what
ports need to be open for MS Cluster Server to communicate with each other?

> In a scenario like that: if an attacker can exploit one server, he
> can exploit the other (similar) servers just the same. No need at all
> to take a different route for compromizing them.

As long as the edge firewall will allow access to the other servers (not
doing some sort of load balancing based on source IP that would ensure
that one IP would talk to one server) sure.

That is also assuming that all the servers are serving the same content.
That assumption might not be the case for a web farm that assigns a
(vulnerable) web site to some but not all servers.



Grant. . . .