Updating is an area where we feel quite torn, because it just cannot be solved perfectly. On the one hand, privacy paranoia should require all Internet connections to be established on explicit user request and choice. Background downloads are often among malware criteria, and as such, we wanted to avoid them for a long time.
On the other hand, there's user comfort. The average user does not want to be disturbed by having to actively care about his security software too much, and we can't blame him for that. Allowing an application to download at will requires (or at least should require) a lot of trust really. Of course, allowing a software to tell the user what it thinks is malware means a lot of trust as well already, so the trust may still be there. No reason to use it without a lof of thinking though.
The compromise we're going to approach is a dual approach. We'll still need manual updating for situations like running Spybot from a bootable CD, where background service downloads are not an option. So a kind of manual updater for such situations will persist. At the same time, we'll offer a no-interaction-required background download service.
The next issue with updates is about version checking. Currently, downloaded.ini is used to check which updates have already been downloaded. If you delete this file, it gets recreated based on file dates of archives in the updates folder. And if you install updates through a manual updater, it should get updated as well. Still, this method is far from perfect as soon as the user "plays" around in the Updates folder, e.g. to clean up old archives or create a portable edition - something he should be able to do without having to pay attention to the ini files in there. The 2.0 updating will therefore use dedicated updates per file instead of combining files in archives, and determine which are needed based on each files property (version resource for executables and libraries, other parts for data files).
Another side-effect of having one update per file is that it can easily support the new integrity checks, which would allow to replace single destroyed/corrupted files with originals.
On NT+ (2k, XP, Vista, ...) systems, a system service is the next point that we needed to discuss. On the one hand, a service would allow users with restricted rights to update Spybot. On the other hand, updaters are a field where many an antivirus application had security holes in the past. Since system services have system privileges, the interface for this needed to be tight, not comfortable (speaking from the developers standpoint, not a user one).
No screenshots here since this is mostly technical background stuff.
To sum up a few things:
On the other hand, there's user comfort. The average user does not want to be disturbed by having to actively care about his security software too much, and we can't blame him for that. Allowing an application to download at will requires (or at least should require) a lot of trust really. Of course, allowing a software to tell the user what it thinks is malware means a lot of trust as well already, so the trust may still be there. No reason to use it without a lof of thinking though.
The compromise we're going to approach is a dual approach. We'll still need manual updating for situations like running Spybot from a bootable CD, where background service downloads are not an option. So a kind of manual updater for such situations will persist. At the same time, we'll offer a no-interaction-required background download service.
The next issue with updates is about version checking. Currently, downloaded.ini is used to check which updates have already been downloaded. If you delete this file, it gets recreated based on file dates of archives in the updates folder. And if you install updates through a manual updater, it should get updated as well. Still, this method is far from perfect as soon as the user "plays" around in the Updates folder, e.g. to clean up old archives or create a portable edition - something he should be able to do without having to pay attention to the ini files in there. The 2.0 updating will therefore use dedicated updates per file instead of combining files in archives, and determine which are needed based on each files property (version resource for executables and libraries, other parts for data files).
Another side-effect of having one update per file is that it can easily support the new integrity checks, which would allow to replace single destroyed/corrupted files with originals.
On NT+ (2k, XP, Vista, ...) systems, a system service is the next point that we needed to discuss. On the one hand, a service would allow users with restricted rights to update Spybot. On the other hand, updaters are a field where many an antivirus application had security holes in the past. Since system services have system privileges, the interface for this needed to be tight, not comfortable (speaking from the developers standpoint, not a user one).
No screenshots here since this is mostly technical background stuff.
To sum up a few things:
- No more shutdown of all updates while new updates are uploaded.
- Fallbacks if main server is not available.
- Background updating.
- File-by-file updates to support integrity checks.
- More safety measures to ensure authenticity of updates.