Slashdot Mirror


A Database of Patched Software?

Midnight Warrior asks: "I am one system administrator for what is an organization of dozens of LANs. Together, we all must keep our machines patched. Now we can all watch CVE, frequent securityfocus.com, or let LWN [Updated vulnerabilities section] bring things together. LWN does a fabulous job, but I'm looking for something bigger and more personalized that doesn't require the system be on the internet. Freshmeat, SourceForge, and Google are all NULL on this question: is there a database, and scraping agents in existence that will let one person oversee dozens of OS installations, a mish-mash of software packages, and an even worse level of up-to-date patching exist so that when a new vulnerability against, say, OpenSSH comes out, I can look up which systems need to be tested and patched? My work should be limited to maintaining OS (not just Linux distros), software versions, and current patch lists. This is a classic database problem, but has someone already solved it?"

37 comments

  1. Get to work by BoomerSooner · · Score: 1

    Sounds like you've found yourself a new job. I'll leave $1 in the tips jar.

  2. You are a newbie by Anonymous Coward · · Score: 0, Funny

    All the high profile Linux hackers I know use the official update site for all their needs.

    1. Re:You are a newbie by jo42 · · Score: 1

      ...and pray that Windows Update doesn't bugger up their machines...

  3. Huh? by ichimunki · · Score: 3, Informative

    Why would you be hand-maintaining most of this software in the first place? Why not standardize on a distro or two that have auto-update functionality and use this to update via cron job against a local repository?

    --
    I do not have a signature
    1. Re:Huh? by segvio · · Score: 1

      We don't know what kind of LANs are being maintained, and it was mentioned Internet-connectivity is not always there. This has nothing to do with software selection. For all we know, he is managing Secret or Top Secret NSA or CIA LANs. Hopefully however, it this is true, he isn't asking Slashdot.

    2. Re:Huh? by ichimunki · · Score: 1

      Yeah, he also said not all Linux, so he might have some proprietary Unix systems or whatever going on-- my comment wasn't entirely fair. And really he's looking for a couple things: a central data feed of security/update info, a local database of which machines use what, and a way to relate the two. The first item in the list is the hard part, really, since software isn't all that intelligent yet and sifting through various mailing lists and security web sites to cull both unique items and relevant items is tricky business. He knows this. But my money is on the more efficient path being to minimize the amount of work by moving to operating systems that have auto-update functionality. Not really the answer he wanted, but I think it's the most pragmatic overall. I would guess that by monitoring updates done by the automatic system, he would also have some good ideas about what software on other systems was likely to need attention, as well.

      --
      I do not have a signature
    3. Re:Huh? by Creepy+Crawler · · Score: 1

      Are you soo sure of this? If I was high ranking in the government, I'd love free help and suggestions to further my plan.

      After all, the few gems that lie here are worth more than the pride of putting an ASK SLASHDOT here.

      --
    4. Re:Huh? by mabhatter654 · · Score: 1
      Yes, but not even Microsoft has ALL the patches posted for automatic update. Even with MS you have to do a fair amount of legwork for the non-common programs.

      First, you have to have a person find and catalog a location of a patch..possibly a random FTP site.
      I sounds like there are several people at various locations doing this with him. The idea here appears to be to share, and to provide a catalog of sites for easy access should the need arise. Then, even if it requires some manual work, at least they can FIND the patches, then share the patches. Which in itself is the biggest part of the admining of multiple machines.

  4. Commercial Solution? by illectro · · Score: 3, Interesting

    One possible solution is a commercial Vulnerbility assessment solution such at Qualysguard - it'll scan your network and tell you which machines need updated. You can also go open source with Nessus, but it's UI is a lot weaker and it doesn't feature the task management tools that Qualys has (and you seem to be interested in this). Of course this will only tell you about software which can be remotely exploited, local updates are somewhat hard ;-)

  5. Novell's Zenworks by Anonymous Coward · · Score: 2, Informative


    Novell has made a huge push into this space with their Zenworks package. It has all sorts of database and report writing functionality, and they've added Linux support in addition to the traditional Windows support.

    1. Re:Novell's Zenworks by Midnight+Warrior · · Score: 1

      Hmmm. Very interesting. I will have to check this out further. Thanks for the reply.

  6. I think one.. by fredan · · Score: 3, Interesting

    ...way to solve your problem is to use Gentoo.

    First run "emerge sync" and the "emerge -vp world" to see what kind of updates that would be needed on the system.

    And if you have one system that include the feature "buildpkg", the rest of your system could take the pre-compiled packages from the first system and just install it.
    (Run "emerge --usepkg -vp world")

    1. Re:I think one.. by Midnight+Warrior · · Score: 1

      Please read the question again. Heterogeneous, loosely connected machines. Add in a "not connected to the internet" catch and the mix falls apart.

    2. Re:I think one.. by fredan · · Score: 1

      no it doesn't. If you have one server internally in your network that grabs everything from the internet (every now and then) you can still continue the operation of your server(s), if the internet goes down.
      You just need to configure this in your /etc/make.conf file for this.

      Another question is, if you don't can get the update from somewhere, how do you know which upgrade to apply?
      In Gentoo you can supply all the upgrades on a cdrom to all of your servers, if you like.

    3. Re:I think one.. by Anonymous Coward · · Score: 0

      and how do you get Gentoo to update windows machines? RTFP - not all linux machines.... ASSFUCK.

  7. CVS by BigBir3d · · Score: 1

    Couldn't you just set up a CVS type system, with different branches based on architectures you are supporting? Then you would only need one machine with outside access.

    Or am I missing something obvious here (related to the discussion at hand, of course)?

  8. It's a hard problem.... by ComputerSlicer23 · · Score: 3, Insightful
    Well there are a lot of problems with this. First and foremost is having the machine maintain a list of known installed software. That means no custom installs for anything. So if you built sendmail and installed it in /usr/local, you have problems building an off the shelf solution. For a variety of reasons.

    For linux you can mostly rely on either RPM or apt to know what you have installed assuming you stay with the vendor released binaries.

    However, for windows, how do you get a list of installed software? Got me, I have no idea. How do you get a list of features you have enabled, or installed?

    Just getting a reliable list of installed software is tricky. Now you have to do it while running remotely. Even more fun. If your terribly clever you'd do this with SNMP somehow to query the hardware/software for it's current configuration for inventory of both hardware and software to ensure compliance with all your license, and to ensure no one has swiped any hardware from you.

    Now once you get that done, you have to feed it a list of known buggy software. This is also trickier then it seems. For Windows, as far as I know, the patches don't have versions, they aren't software. They are windows updates. With say RedHat software, OpenSSH 2.5 has some security flaw, but the redhat patched OpenSSH 2.5-p5 won't. So you have to be pretty darn specific.

    It'd probably be easier to have each tool setup to query the security tool of choice and send out an SNMP alert saying that something is out of date. How exactly to do that on Windows I don't know. How to do it on redhat is easy. Use rhn-applet-tui, it will tell you. You send out an SNMP alert to you SNMP monitor, which converts that into an e-mail.

    Then each machine monitors itself. You also setup the monitoring to send out a positive alert that everything is up to date once in a while (1 per day, 1 per week or 1 per month, depending on how many machines you have).

    1. Re:It's a hard problem.... by Anonymous Coward · · Score: 0

      Finding installed software isn't that tricky with the right timesaving tools on the Windows side. One tool I have found invaluable for a number of reasons is a little program called Aida32. It does a nice system inventory with all hardware, software, a good number of the licenses/keys, and various other bits of information. It is a free product and quite honestly it is better than most of the software doing the same thing (SiSoft Sandra for instance).

      On the linux side someone mentioned before that it would be simple to just standardize on an install or switch to a distribution that handled auto-updates from a central repository (could be an internal system). Just set all the clients to access this one system and run a cron job (use emerge for gentoo, apt-get for debian, urpmi for mandrake, etc) to seek and download said updates on a regular basis and point all your machines to that machine as your update repository. Makes life a little simpler at least.

  9. To be or not to be? There is no question! by Anonymous Coward · · Score: 0

    which machines need updated.

    Alright, that does it!!! I can't stand it any more. The phrase above should be correctly written; which machines need to be updated. People are getting more and more lazy with their speech and are destroying the English language. Constantly I hear people who choose to leave the words "to be" out of their vocabulary. Constantly people say things like the above or they say things like "that needs painted" and "that needs fixed". What needs to be fixed is their pathetic comprehension of the English language. For God's sake don't forget to be, you illiterate bastards!

    Once that is taken care of we can start working on things like "also too". But, that is a whole other rant.

    1. Re:To be or not to be? There is no question! by *xpenguin* · · Score: 1

      which machines need updated.

      Alright, that does it!!! I can't stand it any more. The phrase above should be correctly written; which machines need to be updated. People are getting more and more lazy with their speech and are destroying the English language.

      Have you ever thought about the fact that he might have just meant "which machines need updates."?

    2. Re:To be or not to be? There is no question! by szyzyg · · Score: 1

      Indeed isn't D next to S on most keyboards.

    3. Re:To be or not to be? There is no question! by Anonymous Coward · · Score: 0
      "which machines to be need updates."

    4. Re:To be or not to be? There is no question! by aberson · · Score: 1

      "needs updated" is also way of speaking common around Pittsburgh, PA.

  10. Use RedHat? by Koldark · · Score: 2, Informative

    I know RedHat has a nice looking system for keeping you notifed of server versions. As far as Windows? I don't know.

    --
    Mike http://thenextgenerationofradio.com
  11. Cassandra by pmeunier · · Score: 3, Informative

    Please have a look at the free Cassandra system:
    https://cassandra.cerias.purdue.edu
    You can create any number of profiles, and you get emails daily about new CVE entries in ICAT (icat.nist.gov) or Secunia advisories (Secunia) that relate to the software or keywords you select.
    You can use the freeware KeyAudit to scan your systems:
    Windows KeyAudit: http://www.sassafras.com/restricted/keyaudit/keyau dit.exe
    Mac KeyAudit: http://www.sassafras.com/restricted/keyaudit/keyau dit.sit

    Sassafras just stopped maintaining KeyAudit, so I'm looking for an alternative application scanner to replace KeyAudit, as well as a Linux/UNIX equivalent (I'm the author of Cassandra).

    I'm aware that it's not perfect, and the html and presentations are rather basic. However, it's free, it has been working for a few years now, and I'm listening for suggestions and open to criticism. I'll try to improve it as time allows.
    Cheers
    Pascal Meunier

    1. Re:Cassandra by Midnight+Warrior · · Score: 1

      Excellent. Thank you. This is very much in line with what I am thinking. Half the replies seem to think I had a system that is connected to the internet. The other half believe that everything is Linux. Even though I have had Linux running since Slackware was hot stuff, my customers are not prepared to take the Linux leap and thus have many Unix-type OSes as well as various Microsoft flavors.

      The best way to protect a computer is to not connect it to anything, or at least not the network it sits on. Good practice. Keeps production environments isolated and moderately protected.

      So again, thanks and I will check them out. Especially to see if Cassandra has a software repository that can be installed elsewhere (i.e. is OSS).

  12. Configuration management by heydrick · · Score: 3, Informative

    Use configuration management so you can control and know exactly what is running on your systems.

    Papers have been written about automating patch management using cfengine and a database.

  13. RedCarpet || RHN by Korgan · · Score: 1

    Get in touch with Novell or Redhat and find out what platforms they can support using their products. Novell's (well, Ximians really) RedCarpet would probably be more likely to allow you to run it across multiple platforms.

    There are heaps of products out there for this kind of updating. No matter what, there will always be an admin involvement in them however. You'll still need to keep an eye on things regardless of how you automate it. You'll still need to update the hosts and you'll still want to keep your eye on what the software you choose does to those hosts it monitors.

    For more broad range of platforms, Tivoli and its like spring to mind. Tivoli can cover pretty much all "mainstream" platforms out there, but its probably overkill for what you're after.

    1. Re:RedCarpet || RHN by kcb93x · · Score: 1

      Novell's got two products:

      Zenworks (for Windows)
      RedCarpet (for Linux)

      just went to a seminar on 'why Novell is into Linux,' actually, here in the Twin Cities. They gave the TCLUG (www.mn-linux.org) 15 seats. Nice presentation. They have or will have most of their Netware services (iFolder, etc) running under Linux.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  14. aborted project by MSG · · Score: 1

    I started working on this problem for the NI team where I work. They went another direction, so I shelved my work for the time being. I didn't come up with much more than a prototype, but I had planned to produce the tool you're looking for. We'd also planned on integrating it with Nessus, so the tool could display warnings detected. I wanted (though NI was a little scared of the idea) to build router ACLs from the data in the table. That way, only traffic to registered applications/hosts would be permitted in to the network. That's the only way I can conceive of keeping the information up to date: make the tool the only way to get any applications working.

    The prototype is here:
    http://phantom.dragonsdawn.net/~gordon/netw ork-map /

    Look if you like. Ignore it if you don't.

    1. Re:aborted project by Midnight+Warrior · · Score: 1

      I think I can see what you were trying to do. If automatic building of router ACLs or filter rules was your target, then you were on a reasonable path. My company also firmly believes in the human-only principle to firewall modifications, and each mod needs a 2-person check, so paranoia is sometimes warranted.

      The target I am trying to hit is a database disconnected from the production-level machines so that I can figure out which patches need to be cut to CD and moved onto the isolated networks. I have a fairly large patch time window.

      Thanks for replying.

  15. May help some by RyoSaeba · · Score: 1

    Have a look at that: http://www.shavlik.com/
    It works only for Windows, though. But reports patches, missing or not, for Windows, Office, and some other products. Probably some option to export current state, or make a report.
    Lets you push patches too, forcing installation.

    --
    Tsuyoikoto ha taisetsu da ne, dakedo namida mo hitsuyousa (Strength is an important thing, but tears too are necessary)
  16. Here's a quick idea if you need a scheme, NOW.... by protogoogoo69 · · Score: 1

    This really depends on how well managed your LANs are but can work smoothly if the architectures and OS's are homogenous (per LAN). try this:

    On each host in each LAN, make a list of programs you want to keep patched and store their names, MD5 hashes, revision numbers (or patch numbers), and revision dates in a file, say "patched.db". Ideally, you'll want to patch everything, but if your topology includes well-configured network firewalls in front of each LAN, then you can minimize and pinpoint an attack if a host gets comprimised, which gives the patch-admins in each LAN more time to patch.

    One host should be designated in each LAN as the "patch-box". (got a spare 486 and linux distro?) You'll need to have MD5SUM and (GNU?)PGP on every box in the LAN and the patch-box should be running FTP, or even SSH if you want overkill (but as long as every host has cached copies of every public key of every host in the LAN, its own private key, and can sign or verify the integrity of the data, then the security of the channel won't matter). Now, every host should MD5SUM its patched.db file and sign the md5sum with their private key. It then packages patched.db and patched.db.md5 into patched-hostname-date.tar.gz and uploads this to the patch-box.

    The patch-box then verifies the integrity of each patched.db from each host and then compares the revision numbers against the master list for that LAN, say patch-master.db. Now, at this point, you could just let the patch-boxes check sites for patches, but you specified only one host would be allowed to do this. Well, then that designated host connecting to the internet will be known as "fetch-box". Fetch-box will check for and download any patches if their revision number exceeds that of a file on in its harddrive (this will most likely need to be done manually since the integrity of the patches needs to be verified and the patches need to be tested by the network-admin, unless you can want to make use of up2date or win-auto-update). Every file/patch downloaded will be noted in a file similar to patched.db, which we'll name patch-control.db.

    Meanwhile, each patch-box from each LAN will hash&sign the patch-master.db file and package these files into patch-master-LANname-date.tar.gz and upload this file to the fetch-box. Then fetch-box will verify the integrity of each patch-master.db file and compare it against patch-control.db to determine if more entries need to be added to patch-control.db (ie. suppose host-A in LAN-B just added program-c to its inventory (AFTER implementing your patch-scheme) and this program needs to stay patched). Later, each patch-box will download and verify the hashed&signed copy of patch-control.db from fetch-box to determine if it has downloaded (and is releasing) a new patch. If so, then patch-box will download the patch, make it available for download for any host on the LAN, and update the revision numbers for patch-master.db. In turn, each host will download and verify a hashed&signed copy of patch-master.db and compare it against patched.db. If there are any changes, then it will download these files from the patch-box.

    Wash, rinse, repeat.

    Some issues:
    0) You desire quick security patching, but system reaction is unpredictable, regardless of homogenity. You should rather focus on extending the time needed to patch. This can be accomplished through well-configured firewalls, proxies, and NDS's. With more time, you can test patches to make sure they are not corrupt and not rootkits. I also hope you have good backups of every system in case you need to disconnect and restore a comprimised one.
    1) what happens when you need to downgrade software?
    2) what happens when you run into race conditions? will a file-locking scheme need to be imposed as not to corrupt these databases? (ie. touch /var/run/lock-patchdb)
    3) this can all be automated except for the part of acquiring, testing, and releasing the patches. At worst,

    --
    ...small furry creatures from Alpha Centauri...
  17. Try SuSE's Auto-Updater (YaST2) by ivi · · Score: 1


    For the end-user, SuSE's scheme is too easy
    and also -flexible- enought to enable Users
    to accept or reject offered updates to SuSE
    ans non-SuSE software.

    Why not use a similar scheme for Sys Admin?

    BTW, one of the happy surprises, that we've
    seen auto-installed by YaST2 (with User con-
    cent) is a mechanism that hides most of the
    boot-time console messages from the eyes of
    the User who doesn't care to view it - in a
    way, that also enables another User to show
    those messages (by pressing F2, I believe).

    MySQL was recently auto-updated as well.

  18. hfnetchk by Anonymous Coward · · Score: 0

    windows comes packed with this tool for monitoring and managing patch levels on multiple hosts, though it's not installed by default
    if you need to patch entire network, see the hfnetchk homepage for pro/enterprise version

  19. An experience report by crath · · Score: 1

    In 1999--2000, we tried doing what you describe (at the company I work for). We have a large WAN with a couple of hundred sites scattered around the world. We used a commercial product called Asset Insight to do the scanning on UNIX, and we used MS SMS on the PCs. Note, we have a very small number of Macs and it wasn't cost effective to address them in the project scope.

    Asset Insight and SMS allowed us to tier the data collectors: large sites consolidated their scans and then forwarded the consolidated data on to the global data collector. This was very necessary to keep network utilisation in a predictive state.

    The project's ultimate stumbling block became focused within the PCs and workstations themselves:

    • The initial scanners were too resource intensive and interfered with normal use of the machine (if they happened to run while the machine was being used).
    • The scanners were very tricky to write: every application uses a different convention to identify itself and its installed version. Even on Windows machines, where the EXE file format provides fields wherein applications developers can store application names, version, and release information, almost no applications make use of these fields.

    We still have the system deployed, but it turned out to be much less useful than we had hoped---plus, it is very labour intensive:

    • the scanners must be constantly updated and the updated scanners deployed;
    • the users must be constantly managed: users are forever removing or disabling the scanning tool

    Our approach with the data today is to focus on the major applications and OSes in use, and not worry too much about the little things. Our security team watches CERT et al and this provides the software management team with some direction w.r.t. the applications to stay on top of.

    Sorry I don't have any software recommendations, but I hope our experience will assist you in your planning.