Per-application updaters

Contents

Per-application updaters

This is a name we've made up for those helper applications that most Windows applications install to run at startup, applications whose sole role is to keep the main application up to date. It polls for changes and, when found, copies down and installs the updated application.

Features

  • Small programs whose aim in life is poll for changed versions of the main program and, when needed, to download and install it.
  • Programs are either installed in Pattern - The Windows Registry under HKLM\Software\Microsoft\Windows\Current Version\Run.
  • Some products (such as BackWeb) can trickle-feed updates down using spare/idle bandwidth.

Advantages

  • Keeps client machines up to date.
  • Ensures that security patches are rolled out, reducing the exposure to the machine to exploits.
  • It's the only way to update native applications on windows systems, unless you are Microsoft or a PC vendor that has installed a central updater tool.
  • The HTTP GET requests used for polling provide statistics on how many machines are using you software; if the request includes a unique machine ID, statistics on how often specific machines reboot.
  • If the artifacts are downloaded from an HTTPS channel, there is no need to resort to signing or other techniques to authenticate the downloaded artifacts.

Disadvantages

  • A windows PC ends up with one such updater per application: Adobe Acrobat, Java JRE, Real Player, etc., all install such updaters.
  • Multiple updaters slow down system boot time and take memory away from user applications.
  • If the updater is non resident (and only polls on startup), then long-running hosts will not poll for updates except after the monthly [Windows Update] reboot.
  • Updaters that prompt the user for an update are making the assumption that a user is present this does not hold server side and that it is acceptable to pause the operation of the system until the update has taken place.
  • Different applications can install different versions of system libraries, leading to inconsistencies.
  • If artifacts are not downloaded over HTTPS, then some other mechanism is needed to prevent the updater being vulnerable to downloading malicious artifacts from DNS-cache pollution, subverted WLAN access points or other techniques that subvert hostname lookup. As every updater is written by a third party (and usually closed source), there is no easy way to determine how secure the updaters actually are.

If you hand off system maintenance to multiple vendor-specific applications, then your systems soon diverge. At the same time, it is imperative to keep every windows application that can load content supplied by untrusted sources up to date, simply to prevent exploitation from security holes. As every application that opens data files or even renders text using user-installed fonts can be supplied files that trigger buffer overflows, pretty much every application needs to be kept up to date, somehow.

SmartFrog support

We don't support this at all. We prefer the approach taken by the Linux distributions, in which a central updater pulls down updated artifacts from one or more central repositories. We strongly recommend coming up with a solution for windows that keeps clients up to date in a managed form, rather than leaving it to individual applications to install updaters.

Get SmartFrog at SourceForge.net. Fast, secure and Free Open Source software downloads