I wouldn't say that temporarily allowing a Template VM full access to
the internet is a big risk in itself. Remember that the primary reason
for blocking internet traffic from VMs (e.g. from Template VMs) is to
prevent user mistakes (e.g. that the user do not start surfing the Web
in the Template VM).
So, if you decided (for whatever reason) to trust software XYZ (perhaps
because they have nice-looking website, or something) and want to
install it in your template (perhaps a different template than the
default system one would make sense), then it really doesn't matter that
you also allow networking for the time you're installing it. Even if you
didn't open the firewall, but if the software was malicious, your
template VM (and all VMs based on it) would still be doomed.
And even if the software is not intentionally malicious, but just buggy
in a way that it could be automatically exploited whenever the VM has
unrestricted access to the Internat (e.g. because it automatically
connects to some servers, and can easily get exploited then), then even
if you could prevent its exploitation in the template (by keeping strict
f/w rules), it would get exploited the VMs based on this template anyway.
So, it all comes down to realizing the following:
1) If you install untrusted software, the VM will get compromise,
regardless of how strict your f/w rules are.
2) Use different template (or standalone VMs) for installing untrusted
software packages.
BTW, there is more software that requires internet access to perform
installation -- the most annoying for me being Thunderbird which must be
allowed full Internet access whenever it wants to update its extensions
(which it wants to do after each TB upgrade). This is a problem for some
of my VMs that use TB, but have networking limited only e.g. to my
mailserver (in order to prevent simple mistakes such as me clicking on
an URL in a message). In that case I manually add "*/*" rules in the
firewall for this VM and *must remember* to manually remove a minute
later. Perhaps, in order to prevent a user mistake, we could add an
option "Temporarily allow full Internet access" in the Manager/Firewall
config, and qubes core would ensure to remove this extra rule on the
next VM reboot (or perhaps after some predefined timeout, such as... 5
minutes). Just in case the user forgot...
joanna.