Did I read "JOURNALISM" in ShagDevil's post? Holy crap, no wonder "Grossberg" (rofl) sounded so smart in his thread!
Ok, here we go...amazingSuperNewAndImprovedDoesItAll Program...v1.0.0.
Firewall
Stateful and stateless packet inspecting covering most of the layers if not all; remember, this guy wants it all. Has a huge learning curve which there's a "default" which allows most common applications (IE, Explorer, WMSN, AIM, Yahoo!, etc...) and has the most intelligent "AI" code that knows when the user is trying to do something as opposed to a program randomly wanting to access the Inter/Intra-net. Blocks everything by default except said assumed rules in prior mention. All programs that are reported show file, file size, location, standard stuff...
Problems
1. Who's to say what is accepted and not? A firewall should ask every time a program that's not on the list tries to get on the inter/intra-net. Common knowledge, right? What happens when a common user is asked? Either they A) say "Always allow" without reading anything about it or B) they somehow find the "Allow all traffic", which defeats the entire purpose of the firewall.
There are more that could be mentioned, but this is the biggest one I've seen.
Antivirus
Auto-updates every day and installs anything found because the server's considered trusted (it's on the "allowed" list in the associated firewall, which breaks rules 1-10 on default firewall settings). Scans the entire drive every week, regardless of the time needed because of the gigs of data any given user may have. Scans every file opened, altered, created, changed, etc... Checks when a file is loaded in memory versus the physical file to see if anything suspicious could happen, regardless of whether or not the user has enough available ram because they're trying to load 483 pictures from their digicam while they're playing music and doing a spreadsheet ... on 128mb of ram that came with their spanking new Dell/HP/Compaq/Gateway.
While we're at it, let's deploy a measure of Tripwire...AV could check MD5 sums on the database cache version of a file versus what's actually on disk. This way anything could be reported if it changed. The default database scan would include system files and most important directories.
Problems
1. Full scans take a while, regardless. Especially if it's an end-user who doesn't think about the stuff they load onto a machine so veritable THOUSANDS of files are going to be there and when said scan kicks off, if a user is on, chances are they'll say "I can do this later" or "WTF IS THIS SH!T" and will cancel it. YAY WE HAVE CIRCUMVENTED THE ENTIRE AV SCAN BY A CANCEL BUTTON WOOHAAAAA! So yeah, right...where were we? What's that you say, no cancel button? Great! Here comes the whole Big Brother regime!
2. File checking isn't a problem, since it's on an on-demand basis, but loading any given file into memory and then having it checked with another "safe" copy in memory is. Imagine the memory needed for that? I don't even know, so I won't guess. But we're making sure they're safe, even though we're killing performance...who cares!
3. I can't even imagine the implications of a tripwire-like database that's supposed to manage itself when an end-user might have any say in the matter, not even including the things that go wrong when windows updates itself (per this guy's idea) and a ton of system files get updated. Nobody can EVER verify the integrity 100% of any given thing at an immediate time so if the AV/Firewall locks access to that file because it doesn't match the database cache and is newer than the stored one. Oh, you didn't need that svchost.exe did you? I'm sorry, you lose, delete now... So if a file is denied access by the database's own program (called filelock.exe, for example) and is denied all activity to the inter/intra-net by the firewall and can't alter any files per the AV locking it down....what if that file is filelock.exe? What happens then? If you're lucky, the system loops and dies. If not, filelock.exe is now out of the equation and it's PARTY TIME AT IP ADDRESS ... YEEEHAAAAAAWWWWWW! Or better, what if it was the firewall itself (main executable)? And the AV? You see where THIS is going.
Spyware
Fairly straight-forward. Have a reference list just like Spybot and Ad-Aware use, have it loaded into memory at boot time and have the real-time monitor active. But that's kind of a trojan method, wouldn't you say? If you don't the user a choice? Who cares, onward we go. Prevent all modifications to the registry and keep files from being created that are considered spyware. Run scans every week and get rid of anything that matches the reference list.
Problems
Real-time monitor would be shot in the face by the user after about the second time of installing something. Here's a live scenario. Joe Blow buys an Nvidia card, comes home and installs it. He's installing the drivers when the alert window pops up and says "Hey, someone's trying to put something into HKLM/Software/Microsoft/Driver/etcetcetc, want to allow or disable?". He doesn't know to look for NVidia because NVidia doesn't name everything as such and hits "DENY". No problems there...immediately he's asked if Windows really SHOULD have that unsigned driver and accidentally hits cancel because he was hitting the deny button (or even the allow button) on his alert window for spyware. The machine reboots and things are ALL F'D UP because now, the drivers weren't loaded right, there's no uninstall because it never made it into the registry and a reinstall doesn't work because some string that sounds like vaguely pronounceable line-noise is out there. And this is just one that I can think of.
The main issue is that if you prevent the registry from being written to, you don't put anything needed in, registered dlls aren't inserted, no uninstall strings are written, no aliases or variables are allowed in so if you did have the program "installed", it wouldn't work. Ever. More on this, but I'm writing a book, blah...
So, I think I'll write Mr. Mossberg of the Journalism-type and see what he thinks. I'm sure he has all the answers to these petty, easily-resolved problems.
...
I think I exploded my brain writing this...the problems that I can think of don't even come close to the problems that would be encountered upon releasing a program like this to the masses.
