On Tuesday 09 April 2002 03:48, Brian J. Murrell wrote:

> I must be missing something here because we seem be going around
> and around on this issue.  There are no "defined" ports that you
> can discern what gets opened and what doesn't.  It sounds to me
> like all ports are ephemeral, which makes sense because one TCP/UDP
> device is mapping ports for a whole network of clients.  They can't
> all ask for port 80.

You are missing the fact that UPnP portmapping is not for the ISP 
environment. It's intended scope is small networks.

> It sounds like once a client has gotten a port, .NET acts as a
> "lookup" service so that parties wishing to meet can find out what
> ports their friends are on.  So if client software is asking for
> ephemeral (non-predictable) ports how can you use the port number
> to "firewall" what they are doing?

UPnP and .NET is different beasts. Don't mix the two. They serve 
different purposes independent of each other.

The firewall has two sources of information on what the user is up to 
be doing

a) The port numbers requested to be opened. Note that UPnP requires 
the application to specify exact which port it wants to be opened, it 
do not provide a "give me a port I can use" call. In most cases this 
is a 1-1 map of the ports that whould have been used if the computer 
was connected directly to the Internet.

b) The port descriptions assigned by the application.

> To put another way, an ISP could try to stop users from setting up
> web servers but that is futile because as a protocol, HTTP allows
> the specification of a port.

Correct, and is why you have connection tracking and stateful 
firewalls, to be able to block "random ports" unless a proper 
initiation is seen.

UPnP as such do not probit such firewalling. UPnP only allows the 
inside client to allocate port numbers on the outside. How/if/why you 
then firewall these ports is up to the implementation.

> Well, yes, UPnP could refuse to open the requested ports but then
> it's pointless.  See this is the problem.  Other than trusting the
> client software to announce who it is, truthfully, there does not
> seem to be any way to determine one access reqeust from another.

How would that be pointless?

You know the port number, and what the application claims it is to be 
used for. You know the other traffic initiated by the application 
announcing these ports to the other end. In many senses no different 
than FTP PORT.

As I said before, implementing connection tracking helpers for odd 
protocols is a lot simpler than full payload NAT.

> Oh no?  So there are no "real programs" that have been designed to
> tunnel through HTTP in order to circumvent firewalls?.  "Real
> program" developers do not give two hoots about network security as
> much as they wanna provide the "ultimate user experience" and will
> circumvent whatever measures they can to do so.

This mainly is a social issue, not a technical. If you have users 
running such programs then you have a major social problem on your 
hands. No firewalling will help you unless combined with other 
actions to hunt these activities down.

Please distinguish between programs run intentionally by the user, 
and trojans run unintentionally.

> Where "THIS port" is what?  Unless it's a predictable value, you
> can't base access control on it.

THE port the application wants to show to the outside, also carrying 
a description telling what the application claims the port is to be 
used for.

> But you know that it will not be limited to environments where the
> primary concern is access and not security, but will be deployed by
> unknowing/security ignorant network admins when the <choose your
> favourite computer-toy liking executive> of the company sees he can
> use MS IM and NetMeeting (and who knows what is to come) if they
> install it.

And? These are not likely to have a security policy to start with, 
and are also likely to click on every "please click on me" button 
they find, leaving only a couple of hours before they computer is 
invaded by a trojan completely opening up their network (with or 
without UPnP support in the NAT gateway) if someone choose to attack 
them.

> > For the sake of keeping this discussion on level think of UPnP as
> > nothing more than NAT traversal.
>
> That is exactly what I am thinking of it as.  But unlike
> netfilter's NAT, it seems I have to take it all or leave it.  I
> can't choose what I will NAT for and what I won't.

What makes you thing UPnP leaves you with less choice than iptables? 
In fact, a proper UPnP implementation would just add to the filtering 
capabilities you already have.

> > It is the UPnP daemons responsibility to set up a policy on what
> > the user may request, filters on intended uses etc, and to
> > integrate this with the firewalling in a sensible manner.
>
> If it can be done, then hooray.  I am not hopeful it has this
> sophistication -- that can be trusted.

I know where I want to go, and the capabilities it would give, and 
how to build on this to further increase security.

> I think we are likely converging on parallel thoughts.  "In violent
> agreement" as the saying goes.  :-)

Perhaps.

Regards
Henrik

Reply via email to