On Monday 08 April 2002 00:28, Brian J. Murrell wrote:

> Right!  But my impression is that you have no idea which
> application is requesting the access through the UPnP server.  A
> security policy of "allow whatever the clients ask for" is no
> security policy at all, and unless the firewall/UPnP server knows
> which application each request is for (without having to resort to
> trusing the application asking to tell it truthfully) then how do
> you implement a security policy around this?

The UPnP server do not officially know the application no, but in 
each portmap request there is at least a connection description / 
comment describing the use connection, and due to the leverage ontop 
of HTTP there should also be a User-Agent header. The use and format 
and of both is up to the application.

> Right, and a good reason to disallow it, but in contrast, and IRC
> DCC has to go along with an IRC usage.  If a trojan wants to
> emulate the IRC protocol then yes it will get it's port open but
> that's an amount of work to go to get a trojan listening on the
> network.

So is it to discover the UPnP device, send UPnP portmap request 
etc..

Further, if your UPnP device (i.e. the NAT:ing firewall) requires 
authentication then it is not likely a trojan gets very far unless it 
can persuade the user to provide the needed credentials.

> But it's not a choice of "various" protocols.  From my
> understanding, once you turn on UPnP, any application that knows
> how to ask the server can have whatever access (listening ports,
> sending port, any numbers of these) it wants gets it.

Only within the limitations of what the UPnP device accepts.

> So if a single UPnP using application has been determined to
> have a vulnerability, there is no way to disable the use of that
> one application without disabling all UPnP enabled apps.

Not unless there is a fingerprint of this application of some sort 
no. However, in most cases I expect applications to be easily 
fingerprinted.

> But if you firewall understands the protocols, you can choose which
> applications are allowed access and which are not.

And in such case you do not have a need for UPnP port forwarding.

> So UPnP allows one to differentiate applications making requests
> for access?  I.e.  Messenger is allowed but NetMeeting is not?  How
> does the UPnP server know which application on a machine is making
> the requests for ports?

UPnP port forwarding as such do not guarantee that you can 
differentiate the applications, or that the you can trust whatever 
the applications claim to be. But due to the richness of information 
in the protocols involved you are extremely likely to make rules 
differentiating these applications.



Note to anyone looking for specs: The relevant part of the UPnP specs 
is WANIP/PPPConnection, specifically the sections relating to NAT 
portmapping. This specifies how a client can request portmappings to 
be set up on a UPnP WAN device, allowing connections to be forwarded 
to the client. This is specifically designed for NAT devices, and not 
general firewalling.

The UPnP NAT portmapping protocol is overly simple in nature, and 
very limited capabilities. It is not likely to scale to more than a 
handful of concurrent clients, or to get IETF acceptance I hope.. but 
interesting none the less.

Regards
Henrik


Reply via email to