Slashdot Mirror


Known-Good MD5 Database

bgp4 writes "Have you ever examined a system you thought was broken into but you weren't sure? If only you had run an integrity verification program like osiris or Tripwire first you could have figured out what programs had been changed. In an effort to help out in the instances when you can't answer the question "what was this like before?" we've constructed a searchable database of MD5 and SHA-1 hashes for files in many standard operating systems. You can search using the filename or the checksum and see if you have a trojaned binary or an overactive imagination. Currently at knowngoods.org we have many FreeBSD, OS X, Linux, and Solaris installations checksummed and cataloged. If you have other programs or distributions you would like to see in the database, please let us know."

122 of 307 comments (clear)

  1. Yes, in fact, I have! by Anonymous Coward · · Score: 4, Funny
    Have you ever examined a system you thought was broken into but you weren't sure?
    Just about every time I've broken into a system! :)
    1. Re:Yes, in fact, I have! by Anonymous Coward · · Score: 5, Interesting

      Have to AC this one....

      [ This is a story about why getting "good" checksums to start with is very important. ]

      On a related topic: Ever examined a system you didn't think was broken into, and were sure?

      The sysadmins at my old school did. And they were wrong.

      You see, they connected a new box, the replacement main server, to the LAN, and used an easily-guessable password convention for staff accounts, PRIOR TO RUNNING TRIPWIRE on it. Seems "someone" got in and changed a few key binaries, THEN the admins ran Tripwire. Periodically, when the system got munged and a restore was required, they'd restore the original tapes, Tripwire would yell about a few binaries (including some innocuous distractors), and the admins would dutifully go to backups, find the modified binaries and restore them, figuring they had to be right, because of course, they matched the Tripwire signatures.

      Ya gotta love self-repairing back doors when you're a student at the mercy of admins who work 9-5 M-F, NFS and lpd subsystems that croak only after 10pm or on weekends, and newbies who fill up file systems.

      The local 3-person student root cabal used these back doors for several years, until the machine was replaced. AFAIK, the admins never knew. They had spent much of my undergrad time trying to find SOMETHING I'd done, to punish me for, so if they'd known about this...

    2. Re:Yes, in fact, I have! by NoData · · Score: 2

      Please see this and also this entry of The Jargon File (aka The New Hacker's Dictionary), the pre-eminent and oldest hacker slang resource, currently maintained by OSS guru Eric S. Raymond.

      (Note the etymology shows no reference to any type of necrophilic acts)

    3. Re:Yes, in fact, I have! by lamontg · · Score: 2
      AFAIK, the admins never knew. They had spent much of my undergrad time trying to find SOMETHING I'd done, to punish me for, so if they'd known about this...

      What is it with college system admins punishing undergrads for the admin's incompetence? I ran into the same kind of problem in college when the admins of my department decided to blame me for the fact that they got rooted every 6 months by the latest root-hole du jour. I did in fact hack one of their machines once, but I got the root prompt, typed 'exit' and sent a capture of the output to the admin of the box. This was back when I was incredibly naive and believe that this was "helping" the admin. After that was recieved so coldly I never did it again, but all I heard about was how they'd love to blame all their rooted boxes on me if they could only find solid evidence.

      Pricks.

  2. What about source builds? by Anonymous Coward · · Score: 5, Insightful

    Wouldn't this be useless to anybody that builds from source?

    1. Re:What about source builds? by bytesmythe · · Score: 2

      If the distributor of your source was compromised to give out a file containing a trojan or other nasty surprise, then no, it isn't useless.

      --
      bytesmythe
      Hypocrisy is the resin that holds the plywood of society together.
      -- Scott Meyer
    2. Re:What about source builds? by Cerlyn · · Score: 5, Insightful

      Indeed; the capability of such a system is a bit limited with operating systems like FreeBSD, which actively *encourage* their users to build/rebuild from sources. IIRC, FreeBSD actually only gives intermediate security updates in source code format so you have to compile them (not too hard: cd /usr/src ; make buildworld).

      So, recording the checksum to /bin/ls, etc. is a bit flawed in that when I do a "make buildworld", my custom configuration parameters from /etc/make.conf get used, overriding CPU type, if Xfree86 is installed, etc. Since my system's parameters likely will not match FreeBSD's master build system, there is a high chance that the checksums after I do a rebuild are significantly different.

      But for non-source distributions (Redhat, etc.) this concept is excellent, assuming that no one compromises the database or the OS kernel. Unfortunately, no database checksummer will ever counteract the case when the OS kernel itself is compromised, potentially returning one file when scanned and another when executed.

      Still, it wouldn't hurt for them to record source file checksums as well; after all, having an independant checksumming group would require them to be compromised as well as the FTP network, making an attacker's life harder.

    3. Re:What about source builds? by pVoid · · Score: 4, Insightful
      Indeed.

      In fact, this system would be best suited for systems which aren't OSS... such as windows =)

      crowd boos... stones and rotten tomatoes fly as author runs for cover

      :)

    4. Re:What about source builds? by caino59 · · Score: 3, Insightful

      well, that's all fine and dandy...unless your complierer is compromised....

    5. Re:What about source builds? by shamilton · · Score: 3, Insightful

      Because the default /bin/ls is lowest common denominator. As for a waste of time...

      [root@visor:/usr/src/bin/ls] /usr/bin/time make
      Warning: Object directory not changed from original /usr/src/bin/ls
      cc -O -pipe -DCOLORLS -Wall -Wformat -c cmp.c
      cc -O -pipe -DCOLORLS -Wall -Wformat -c ls.c
      cc -O -pipe -DCOLORLS -Wall -Wformat -c print.c
      print.c: In function `printcol':
      print.c:253: warning: `base' might be used uninitialized in this function
      cc -O -pipe -DCOLORLS -Wall -Wformat -c util.c
      cc -O -pipe -DCOLORLS -Wall -Wformat -static -o ls cmp.o ls.o print.o util.o -lm -ltermcap
      gzip -cn ls.1 > ls.1.gz
      1.59 real 0.35 user 0.12 sys

      I can afford the 1.59 seconds.

      sh

      --
      "[A] high IQ is like a Jeep; you will still get stuck, just farther from help!" --Just d' FAQs, c.g.a
    6. Re:What about source builds? by beebware · · Score: 3, Interesting

      Actually, I know Windows 2000 Professional has a similar system. I've recently been installing/reinstalling a few things and suddenly a box popped up saying something like "Windows File Integrity Checker. Windows has detected that vital system files have been modified and to ensure stability needs to restore these files from the Windows 2000 Professional CD". I'm not sure which files it checks or how, but I do know it has got a least "a" level of checking inbuilt.

    7. Re:What about source builds? by pVoid · · Score: 4, Informative
      Yes, the Win32 PE format (portable executable) has a checksum field which is 'normally' not used.

      It *is* checked for *some* critical system images however... I know for sure that some files in /system32 (so called 'KnownDlls') are among this list.

      Note though, that this checksum is to prevent accidental data corruption and not maintain system security integrity; since the checksum field is actually in the file itself, it can be updated after a virus/haxxor has patched the target file.

    8. Re:What about source builds? by shamilton · · Score: 2, Interesting

      Follow the logic:

      307: if (f_sortacross)
      308: base = 0;
      309: for (row = 0; row < numrows; ++row) {
      310: endcol = colwidth;
      311: if (!f_sortacross)
      312: base = row;

      It is obvious how a compiler may think base could be used uninitialised, but clearly it never is.

      sh

      --
      "[A] high IQ is like a Jeep; you will still get stuck, just farther from help!" --Just d' FAQs, c.g.a
    9. Re:What about source builds? by timeOday · · Score: 2
      Still, it wouldn't hurt for them to record source file checksums as well;
      Right. In a source distribution, checksum the source files and whatever binaries you started with (gcc etc) and what's the problem?
    10. Re:What about source builds? by deranged+unix+nut · · Score: 5, Informative

      Unless your compiler, linker, assembler, libraries, or source code have been modified.

      Sheesh, dosen't anyone read old ACM articles?

      http://www.acm.org/classics/sep95/

      At some point, unless you build your system from scratch, cross compile on multiple systems, burn your own BIOS ROM, and write the microcode for your NIC and all other interface devices, you are trusting *SOMEONE ELSE* for the security of your system.

    11. Re:What about source builds? by shamilton · · Score: 2, Interesting

      You've only proven my point, by thinking exactly what the compiler has. However, if you follow the code up (it's a bit spaghetti-like, computing the number of columns and stuff) you will see that numrows cannot be zero.

      numrows = num / numcols;
      if (num % numcols)
      ++numrows;

      sh

      --
      "[A] high IQ is like a Jeep; you will still get stuck, just farther from help!" --Just d' FAQs, c.g.a
    12. Re:What about source builds? by RDPIII · · Score: 3, Insightful
      Unfortunately, no database checksummer will ever counteract the case when the OS kernel itself is compromised, potentially returning one file when scanned and another when executed.
      Not if you execute your md5sum or other checksum program in a trusted environment, e.g., after booting a rescue system from CD/DVD-ROM. If you suspect that your system has been compromised, you probably wouldn't want to run any executables directly on that system.
      --
      Marklar: marklar
    13. Re:What about source builds? by Fweeky · · Score: 2
      Wouldn't this be useless to anybody that builds from source?

      Even worse, if you use, say, FreeBSD, and you build from some cvs tag other than RELENG_4_7_RELEASE or so (I use RELENG_4), chances are you've got quite a few small deltas dotted around the system -- something like this would need to track md5 changes of not just releases, but of the -STABLE branch (at every commit) to be useful to me -- and you've still got the security branches (RELENG_4_[1-7]) to worry about.

      It's hard, even without getting into handling the various differences compiling can introduce -- compilation date timestamps, alternate build options, etc.
    14. Re:What about source builds? by agentZ · · Score: 2

      A database of known good files for Windows is being built by the National Institute for Standards in Technology. It's called the National Software Reference Library and it costs $90 for an annual, agency-wide subscription.

      There are some significant problems with their database however:

      1. It's huge. They have a single giant flat file with SHA-1, MD5, MD4, and CRC-32 values. Right now the file, when uncompressed, is over 1GB.
      2.Over 42% of the entries are duplicates. I found this out by running sort -Uf on it.
      3. Many of the files were hashed before installation. The MD5s for these files often change the installation process.

    15. Re:What about source builds? by Curien · · Score: 2
      A few points. First, there is a better way to do this, but yours isn't it. Second, just because the compiler gives a warning doesn't mean it's wrong (or that it should be fixed). What it means is that you better know damned well *why* the compiler gave a warning and why it doesn't matter, and you should probably have a comment indicating why you're smarter than the compiler. Third, it's not worth thinking about trivially modifying this for concurrancy. If f_sortacross can be modified by another thread, each read must be locked by a mutex, greatly slowing things down inside the loop. Anyway, here's the corrected, warning-free code. It's almost funny how trivial the fix is.
      base = 0;
      for (row=0; row<numrows; ++row)
      endcol = colwidth;
      if (!f_sortacross)
      base = row;
      Yessiree, Bob. It really is that simple.
      --
      It's always a long day... 86400 doesn't fit into a short.
    16. Re:What about source builds? by blibbleblobble · · Score: 2

      Wouldn't this be useless to anybody that builds from source?

      Yeah. If you check the source code before you install it. Could you fix some bugs while you're there...

      "cofigure/make/install" is no more secure than a binary.

  3. What?! No Windows? by Anonymous Coward · · Score: 2, Insightful

    We need file verification, too! Probably more so with some of the Windows/IE vulnerabilities.

    1. Re:What?! No Windows? by carpe_noctem · · Score: 2

      Windows doesn't really have a good system of labeling releases, and I'm sure that the people running this website don't wanna do this for every service pack available for most microsoft products.

      --
      "Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
    2. Re:What?! No Windows? by frozenray · · Score: 3, Interesting

      We need file verification, too! Probably more so with some of the Windows/IE vulnerabilities.


      Don't worry, you'll have that soon. It's called Palladium.

      As my grandmother used to say: "Be careful about what you wish for, because your wishes might come true". Wise woman.

      --
      "There are already a million monkeys on a million typewriters, and Usenet is NOTHING like Shakespeare." - Blair Houghton
  4. So what about the obvious scenario... by Samir+Gupta · · Score: 2, Insightful

    What if someone hacked into the MD5 database and changed the entries? :-)

    --
    -- Samir Gupta, Ph. D. Head, New Technology Research Group, Nintendo Co. Ltd., Kyoto, Japan.
    1. Re:So what about the obvious scenario... by cscx · · Score: 2

      It wouldn't mean jack shit, except for keeping the admin on his toes.

    2. Re:So what about the obvious scenario... by neurostar · · Score: 2, Interesting

      What if someone hacked into the MD5 database and changed the entries?

      This is definately a legitimate concern. I would be wary about this.

      There is one possibility however. Even if the entries are changed maliciously, the MD5 sums might possibly be different from the rootkit that is installed. IIRC rootkits are compiled on the host machine, and this might change the MD5 sums for the rootkit. Also, there are different sources of rootkits, so that would also affect the MD5 sums and the feasibility of changing the entries.

      neurostar
    3. Re:So what about the obvious scenario... by BitHive · · Score: 4, Insightful

      Then I imagine that as soon as someone changes a hash, many secure systems will indicate they've been comprimised, and the whole thing will be quite obvious to sort out.

  5. This is one of those things... by carl67lp · · Score: 3, Insightful

    This is the type of thing that you'd ask "Why didn't they do this sooner?" -- it's just that logical of an idea.

    Absolutely fabulous, wonderful! The real trick, though, is to build up trust in your database so that those searching it will be sure that the checksums are actually correct--you know, rather than buying a burglar alarm from the robber himself. Thus, I doubt you'd be able to take submissions from users right away--at least without a competent staff checking to make sure they're correct.

    1. Re:This is one of those things... by Anonymous Coward · · Score: 3, Informative


      It WAS done sooner. Sun have a fingerprints
      database for Solaris binaries.

  6. Cool? by kir · · Score: 2, Interesting

    You know, this is sort of cool... until it gets hacked (cracked... whatever) and then your entire OS looks bad. Wait. That is COOL!

    --
    3cx.org - A truly bad website.
  7. ooooo nifty by netwiz · · Score: 5, Insightful

    I've been wondering when something along these lines would be available.

    [devil's advocate] However, how do we know that the pregenerated checksums are correct? Who watches the watchers? [/devil's advocate]

    Yah, yah, I know, the easiest way is to inspect the source for the minicompiler, the main compiler, and the program by hand, then build all of them step-by-step until you're done, then use the final binary to generate your hash. I wonder, tho, how much drift might there be in using a pre-built compiler (say I D/Led the binaries for GCC and the libraries to go with it). One tiny change in machine state (or any other number of things I would suppose) could result in the final binary being a single byte off, and the whole thing's a wash.

    Granted, I may be talking out of my ass here, could someone w/ some hard-core coding knowledge or CS experience expound on the above?

    1. Re:ooooo nifty by Mnemia · · Score: 2

      Yes, but only because this whole system is pretty weak cryptographically. What should be done is that the binary should be signed with a private key only available to the legitimate developers. This notion of having md5sums to verify integrity is useless if the hash value and the actual binary are stored on the same server, where both can be compromised at the same time.

  8. What about Windows OS? by scubacuda · · Score: 5, Insightful
    I didn't see the ability to search for Windows MD5 hashes.

    Considering its history of vulnerabilities, I'd think that this would be pretty important...

    1. Re:What about Windows OS? by Trusty+Penfold · · Score: 3, Insightful


      You can't compile a explorer.exe with a nice back door added in unless you've got the source to explorer.exe.

      Of course you can - it is trivial to alter the behaviour of a Windows executable; viruses do it all the time.

      Append the backdoor to explorer.exe, fiddle with afew bits so the backdoor gets executed first, and find a way to drop it onto the system.

    2. Re:What about Windows OS? by kubrick · · Score: 4, Insightful

      What about viruses that change the structure of the files they infect? Especially ones that haven't been spotted by the anti-virus firms yet (rare, I know, because they probably develop and release most of them).

      Also, can't people still use disassemblers to 'crack' files, and maybe add backdoors at the same time?

      Both of these activities would be reflected by checksum changes.

      --
      deus does not exist but if he does
    3. Re:What about Windows OS? by scubacuda · · Score: 2
      I'm not a programmer... ..but I have played with Tripwire on Windows.

      I thought it would work much the same way: you'd compare the DB hash with the actual hash of the file to determine its integrity (without regard to its source code).

      How does this not affect Windows?

    4. Re:What about Windows OS? by Sludge · · Score: 2
      I understand that, starting with win2k, renaming all of the mainstay windows files will have them automatically come back. But, you can disable that in the registry. So, assuming a trojan has done that...

      First, rename explorer.exe to something else. Next, create a new explorer.exe which executes whatever you want it to, and then have it execute the old explorer.exe so it behaves as normal. Transparent to most users.

    5. Re:What about Windows OS? by Tim+C · · Score: 2

      With reference to your first and third points, on the dialogue box you get when an update has been detected, there's a "Details" button that tells you exactly what has been found, what it does, etc - just as if you ran Windows Update manually.

      Besides, I really don't see the problem - even with all the patches available via Windows Update, there is still a fairly small number of possible md5sum values for each file. It wouldn't take long at all to compare the computed value with each of the known good ones, only flagging a warning if they all fail to match.

    6. Re:What about Windows OS? by Tim+C · · Score: 2

      Tiny Personal Firewall does that too (or equivalent - I don't if it's actually an md5 check), and I'm pretty sure that Norton's firewall software does as well.

    7. Re:What about Windows OS? by loconet · · Score: 2

      They only have so much hard drive space...

      --
      [alk]
    8. Re:What about Windows OS? by jafac · · Score: 2

      I'm guessing that if they did that, they'd thereafter shortly get a C&D letter from MS saying they're violating the DMCA. (whether they technically are or not).

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    9. Re:What about Windows OS? by jafac · · Score: 2

      Actually, it kinda-sorta *IS* built in.

      It's called Windows File Protection.

      The scary thing is - you can download the docs from MSDN on how it works, and then you can try to test it (go ahead, delete a file in \system32, and watch what happens) - and it in no way works as documented. It *does* protect your system files - but it has some unexpected behaviors.

      It's built into the netlogon service, so it's active as soon as you log into the system.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  9. Compromised /bin/md5 by Cadre · · Score: 5, Informative

    What they don't say and what a lot of security folks forget to do is that they can't check your checksums of binaries on the same box. You need to copy the files to another box and check the checksums there with a known good version of your checksumming binary. The local version of your checksumming binary could have been compromised.

    Heck, the utilities you used to pull the binary off the machine in question could have been compromised and may not be actually copying the binary in question, but a good version of the binary. The only way to check this would be to mount the drive on another machine and check it there... And if people aren't doing that (which it's a pain in the ass) all this website is going to do is give people a false sense of security.

    --
    All editorial writers ever do is come down from the hill after the battle is over and shoot the wounded.
    1. Re:Compromised /bin/md5 by iabervon · · Score: 2

      If md5sum doesn't work when you disable the network, be very very suspicious...

    2. Re:Compromised /bin/md5 by Idarubicin · · Score: 3, Insightful
      Heck, the utilities you used to pull the binary off the machine in question could have been compromised and may not be actually copying the binary in question, but a good version of the binary. The only way to check this would be to mount the drive on another machine and check it there... And if people aren't doing that (which it's a pain in the ass) all this website is going to do is give people a false sense of security.>Heck, the utilities you used to pull the binary off the machine in question could have been compromised and may not be actually copying the binary in question, but a good version of the binary.

      Other replies have mentioned that it might make more sense to boot off known clean read-only media, on which you also have a copy of your checksum utility.

      That said, this still provides a false sense of security. The only way to be absolutely certain that your binaries have not been compromised is the following technique:

      Have all your code written by hermit programmers. They must develop their OS and all programming tools (compilers, etc.) by themselves, on a computer that has no connection to the outside world. Taking an OS from another hermit programmer is also acceptable, as long as it is conveyed by hand from one to the other.

      You must know and trust all of the hermit programmers.

      The hermits must live, eat, and sleep in giant vaults designed to provide physical security to them and their computers. They definitely will not have telephones.

      They must develop applications from scratch--no outside data may be allowed to contaminate their pristine systems. Source code may be imported, as long as it is delivered in hard copy form and hand keyed by someone who is very security conscious.

      The hermits must hand deliver the binaries of applications to you. You should have already received a copy of their pristine OS by this method.

      Presto! Completely secure binaries. No trojans. No false sense of security.

      Oh, unless someone finds a buffer overrun that your hermits missed. Then some kiddie will own your box. Damn.

      --
      ~Idarubicin
    3. Re:Compromised /bin/md5 by CaseyB · · Score: 2
      You need to copy the files to another box and check the checksums there with a known good version of your checksumming binary

      You're being ridiculously pedantic about the theoretical limits of security, yet you naiively trust tar/dd/cp/NFS to copy the files correctly? You trust the drive firmware? The machine's BIOS? The CPU?

      Either take the security argument to its true limits, or realize that practical choices need to be made and be quiet.

    4. Re:Compromised /bin/md5 by shird · · Score: 2

      And what if you have a compromised kernel? Even if the binary on the disk is 'clean', and md5's ok on any box, when loaded and run on the compromised system any code could be run.

      But how can the kernel be compromised by just d/ling a binary you ask?...Exactly, it can't, the same with md5. If someone has managed to compromise md5 on your machine, youve got more problems than not being able to verify d/ld files, your machine has already been rooted.

      --
      I.O.U One Sig.
    5. Re:Compromised /bin/md5 by Anonymous Coward · · Score: 2, Funny

      You know they say that the average programmer has a bug in every seven lines they write.

      Then I must be an above average programmer since I have more than one bug every seven lines!

    6. Re:Compromised /bin/md5 by Tokerat · · Score: 2
      youve got more problems than not being able to verify d/ld files, your machine has already been rooted.

      Wouldn't that be the whole point to running a checksum scan on your system's binaries?

      *scan* Oh good, everything's fine.

      -OR-

      The hell? I've been r3wt3d! d00d!

      I don't think this is in reference to just verification of "d/ld" files, but a method for scanning your already existing system for problems.

      The most secure thing I can think of to do would be have a server box (a nice high powered full-throttle beast, imagine a beowulf cluster of THESE) and a security check box (P3 166 with 64MB RAM/8GB HD is plenty). Have a cron-triggered script and a checksumming verification program on the security box which in the middle of the night, or even at random times whenever, will bring up eth0 on the security box, mount the server's disks over NFS, check them, and then bring down eth0 so as to isolate the security box. Such a thing would probably work better with a cluster of servers, say a load-balancing system of web servers, so that only one box out of the total whole had to be down at once and the rest could still be functioning, while the box being checked is isolated by a controlable router or something. Of course that's gotta be secure, too....ARG headache
      --
      CAn'T CompreHend SARcaSm?
    7. Re:Compromised /bin/md5 by the+way,+what're+you · · Score: 2
      Worse, a trojaned MD5Sum could be created ( and I'm going to code one tonight ), that uses uname to find out the current host type,

      And what makes you think you can trust uname, or anything the kernel tells you for that matter? Mwu-ha-ha-ha...

      --
      example.org - powered by Linux!
    8. Re:Compromised /bin/md5 by bonzoesc · · Score: 3, Funny
      What if the hermits' computer components have backdoors that automatically insert backdoors into everything written on them?

      You'd have to have sterile hermits manufacturing CDs out of their own feces and urine (sterile) and burning code on them with laser pointers manufactured from the same source with machines made out of (you guessed it!) poop and piss.

      Now you know why I hate those filthy asshole hermits.

    9. Re:Compromised /bin/md5 by DJPenguin · · Score: 2

      OK, I'll admit I'm not 100% sure about Richard Stallman's personal life, but from what I've heard, I think I can trust /usr/bin/gcc :)

    10. Re:Compromised /bin/md5 by evilpenguin · · Score: 2

      Dont forget to make that NFS mount noexec when you do it! You can't be too careful. And while we are at it, if there are compromised machines on the network, how do you know the network data stream isn't being modified? Sure, it is not easy, but it is certainly not impossible. Remember that you are mounting an export from a potentially compromised system. If the machine had enough room on it, how do you know that you are even mounting what you think you are mounting? Maybe they copied the whole file system into a loopback filesystem and they chrooted the nfs daemon. Everything checks out fine from the checker box, but the system is now running a spam server.

      I don't think the technique is sound.

      My personal preference is to build systems where all the binaries are on WORM media (CD-R is fine) and the modifiable parts are mounted from the hard drive (/var and /home). Everything else is on the CD-R. Sure, the box might still get rooted, but it'll be damned hard to compromise the binaries.

      All this said, I completely agree with those folks who say that ultimately you trust something. You have to make practical considerations since you can only know the security is perfect if you actually fabricated every component with your own two hands.

      And, to veer into another round of MS bashing, this brigs up Palladium, which is assuring you that YOU cannot trust your computer, but Microsoft and other content providers can. Swell. I'm looking forward to that...

    11. Re:Compromised /bin/md5 by Cadre · · Score: 2
      Presto! Completely secure binaries. No trojans. No false sense of security.

      Yes yes, there is a point where the paranoia no longer pays off. :-)

      I don't think my point is outrageous because with a list of known good checksums for lots of binaries available, it makes it very easy for those of ill-will to backdoor checksum utilities.

      I think most people will agree that solutions posted in reply to my post such as booting a kernel from a r/o medium, turning off loadable kernel modules, and having important binaries (/bin/) on r/o mediums is not too paranoid (ie: hermit solution) but is very good security.

      --
      All editorial writers ever do is come down from the hill after the battle is over and shoot the wounded.
    12. Re:Compromised /bin/md5 by Cadre · · Score: 2
      Either take the security argument to its true limits, or realize that practical choices need to be made and be quiet.

      Keeping your kernel on r/o medium, turning off loadable kernel modules, and keeping your important binaries on r/o medium is a very practical choice and addresses the points that I brought up.

      --
      All editorial writers ever do is come down from the hill after the battle is over and shoot the wounded.
  10. Polymorphic files by cperciva · · Score: 5, Informative
    There is one problem with this: Some files are going to be different every time they are compiled. In particular, quite a few files include time stamps.

    A few months ago I put together a list of the "polymorphic" files in FreeBSD 4.6:

    /kernel, /boot/loader, and /boot/pxeboot all contain user, host, time, and date stamps, as expected.

    All .a files (126 in /usr/lib, one in /usr/libdata/perl/5.00503/mach/auto/DynaLoader) contain indices of .o files, including seconds-since-epoch stamps

    User, host, time, and date stamps are found in /etc/mail/freebsd.cf /usr/sbin/named /usr/libexec/named-xfer

    Time and date stamps are found in: /usr/bin/suidperl /usr/bin/ntpq /usr/sbin/ntp(d|date|dc|timeset|trace) /usr/sbin/isdn(d|debug|monitor|phone|telctl) /usr/libdata/perl/5.00503/mach/perllocal.pod

    Date stamps are found in: /usr/sbin/ppp /var/db/port.mkversion /usr/share/doc/usd/(07.mail|13.viref|18.msdiffs|19 .memacros|20.meref)/paper.ascii.gz (once you ungzip them) /usr/share/perl/man/man3/(Config|DynaLoader).3.gz (once you ungzip them)

    Files which are always the same size, but have randomized contents: /usr/share/games/fortune/*.dat /var/games/phantasia/void


    These files are always going to set off alarms if you've upgraded-by-source. (On the other hand, if a file *not* on this list has a different checksum, it probably just means that you've applied a security patch.)
  11. md5sum Binary Might Be Trojaned by John+Hasler · · Score: 5, Informative

    Boot from a known good floppy or CD to check your md5sums.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  12. Filtered as a "Hacking" site by KidSock · · Score: 4, Interesting

    Mu corporate www proxy filters this site as category "Hacking".

  13. config files by Erpo · · Score: 5, Funny

    This is great for precompiled binaries, but it won't work so well for config files - they're different from system to system. I have a better solution:

    Anyone who wants to make sure their important config files haven't been changed by an intruder can email them to me, and I'll hold on to them for safe keeping. /etc/passwd and /etc/shadow are especially likely to be modified, so I'd recommend sending those right away.

  14. Hey man... by inode_buddha · · Score: 2

    have some Ajax (TM), you can get paranoid without even smoking anything!

    --
    C|N>K
  15. Relief by eyeball · · Score: 3, Funny

    Oh good, the md5 hash for my /sbin/md5 binary matches the signature found on known-goods. Now I can sleep at night. oh, wait...

    --

    _______
    2B1ASK1
  16. What about a more targeted approach? by scubacuda · · Score: 2

    What about focusing on files that are routinely replaced with trojans, rootkits, etc.?

    I'm not saying NOT to do the rest of the files, just that these (I'd think) would be the files that you'd want to check FIRST before the rest of the system.

    Perhaps a separate section featuring these targeted areas?

  17. package mangement by hpavc · · Score: 2

    do any of the distributions allow for doing something like this via apt/dpkg?

    likely only handle part of the .rpm/.deb but it seems like something workable for the binaries that are installed.

    --
    members are seeing something, your seeing an ad
  18. Something's wrong here by phr2 · · Score: 5, Insightful
    If we need an external database of md5's to authenticate so many different files, that means that md5's weren't really the right authentication method to begin with. It's better to use digital signatures.

    The fancy way to do that is with an Authenticode-like system for signing files. Distro maintainers would sign the files in their distros, and users could also sign their own files. A simpler way would be to just have a big, signed list of md5's in some file that tripwire checks against. Tripwire would check the signature on the file before believing the md5's in it. Or the list could contain individual signatures per file instead of just hashes.

    A centralized md5 database doesn't feel so right with the free software spirit, which says (legitimate) users could modify the files at any time, or just recompile them with a slightly different compiler, etc.

    1. Re:Something's wrong here by ShmuelP · · Score: 3, Interesting

      And what's to prevent an intruder from adding a trojan to the signature-checking program/library?

      Chicken-and-egg...

      --
      Solution to blink tags: wrap them in another blink tag, with a javascript delay loop, so they cancel each other out
    2. Re:Something's wrong here by ShmuelP · · Score: 3, Informative

      A simpler way would be to just have a big, signed list of md5's in some file that tripwire checks against. Tripwire would check the signature on the file before believing the md5's in it.

      Note: this is exactly what tripwire already does. Except that it also stores other file attributes as well.

      --
      Solution to blink tags: wrap them in another blink tag, with a javascript delay loop, so they cancel each other out
    3. Re:Something's wrong here by scubacuda · · Score: 2
      Hopefully enough other people would review it.

      Perhaps some sort of rating system?

    4. Re:Something's wrong here by phr2 · · Score: 3, Interesting
      Nothing stops an intruder from trojaning the known-good-retrieval program either.

      Basically to be really careful, you have to do the checks offline, on a separate computer, i.e. not relying on executables running on a system that's been exposed to attackers.

      This is the kind of thing that the Palladium hardware should be able to help with. What Microsoft wants to do with it is evil, but it's capable of being used for good purposes too.

    5. Re:Something's wrong here by wirelessbuzzers · · Score: 2

      A MAC is probably a better idea. It's basically a hash that requires a secret key to compute. You could keep a database of known-good MACs on your hard disk, and if you suspect a crack, boot from a CD and verify them. This way you just need a special password to update or verify the database (although if you suspect the database checker has been trojaned, you'd want to boot from a read-only medium to check it). I don't see the point of a centralized database here, especially with so many people rebuilding from source. Oh yeah, and a MAC works on Windows (or, hey, MacOS) too.

      --
      I hereby place the above post in the public domain.
    6. Re:Something's wrong here by Nailer · · Score: 3, Informative

      Every package in the current Red Hat Linux is signed using GPG, and IIRC this has been the case for a few years now. Most other Linux distros also sign their packages.

    7. Re:Something's wrong here by wirelessbuzzers · · Score: 2, Informative

      MAC == Message Authentication Code. It's basically a hash with a secret key. Some good ones (in addition to algorithms written as MACs) are Encryption_Key(Hash(File)) and Hash(Key1,File,Key2)

      --
      I hereby place the above post in the public domain.
  19. Debian / debsums by zsazsa · · Score: 5, Informative

    Debian has this built into the OS with debsums.

    It does require a legit dpkg database (and md5sum, and the debsums program itself...) but it's a nice tool.

    1. Re:Debian / debsums by ecloud · · Score: 2

      And does it come with scripts to automatically check everything against the debsums database and email discrepancies like integrit does?

      They could use the debsums to "prime" the integrit db at installation time, so there is not that window of opportunity to trojan the binaries between the installation and the first integrit scan.

      (I use integrit on debian but was not aware of this debsums thing. Sounds cool.)

  20. Problems with patched OSes / custom builds by Turambar · · Score: 2, Interesting

    This sounds nice, but I see problems as installs move from the "100% installed code" to the "patch of the week" versions. Especially when you have to do custom builds of the software.

    Are you running BIND, Apache, wu-ftpd, or (shudder) Sendmail? If you are, your system won't be entirely in their shiny dbase for more than a month (probably more like a week) after you install. And if _you_ don't update it, someone will be kind enough to "update" some file for you soon enough...

    As a test, I checked /bin/ps on a few local systems. (If you don't know why I started with this one, you will. Probably sooner than you'd wish to.)

    From the dbase:

    RH 7.1 - MD5: ac0b58050deb21db1ed701277521320b
    RH 7.3 - MD5: 6d3abf4efc9235e4eb5dc540d61d42fa

    My systems:

    #1 - MD5: ac0b58050deb21db1ed701277521320b
    #2 - MD5: ac0b58050deb21db1ed701277521320b
    #3 - MD5: 9724525265900e5f9020de3b431425b1
    #4 - MD5: 881c7af31f6f447e29820fb73dc1dd9a
    #5 - MD5: 6d3abf4efc9235e4eb5dc540d61d42fa

    Binary compatibility is seen for systems 1, 2, and 5, but the RH7.2 system (#4) doesn't match. System #3 is a Gentoo system, which is probably the most secure, but also the least likely to ever match with their list. I guess that's the peril of compiling your own code.

    --

    Turambar
    ------------------------------
    Common sense is not so common.
    --Voltaire
  21. Use BITZI too! by aminorex · · Score: 3, Informative

    I'd rather see everyone using bitzi.com, since it's
    goal is to gather metadata for *every* file in the
    universe, and keep the data free, supported by a
    related business model (and a viable, sustainable
    support mechanism is GOOD), but I support this
    project too, because choice and freedom are goods.
    Therefore, I urge everyone to submit metadata
    to both projects.

    If you only submit to one, however, please submit
    to bitzi, because it provides an automation API,
    and uses better hashes.

    Note that I have no affiliation with the Bitzi company.

    --
    -I like my women like I like my tea: green-
  22. Another Resource by Taim · · Score: 5, Informative

    NIST (The National Institute of Standards and Technology) currently has a program to provide this service, though largely focused on Microsoft OSes and associated apps. It may be found here: National Software Reference Library

    The complete list of software they've checksummed can be found here: Software Listing or you can use their search engine if you're looking for a specific application here: Search Engine

  23. Needs more... by j3110 · · Score: 2

    Something to combat md5sum itself from being cracked. Perhaps a statically compiled binary that you can download with the program of your choice. Then rootkits would have to modify every program that can download a file, or the kernel. The best system would be a nice bootable CD that would scan all known file system types for files that have md5 sums of known bad files, not search for files and make sure they have a md5 sum of a good file. Then root kits will have to rely on a compiler or append random bytes to the end of the files.

    Well this gets so complicated that by the time you've thought it all out, you really need virus scanner technology to thwart root kits. Maybe a kernel patch could run a virus scan on executable files? It would be quite difficult to tamper with the actual running kernel in memory without causing the system to lock or reboot, thus giving away that the system is being tampered with. Assuming root kits are distributed in source form, you'll need heuristic scanning to find them. This means false positives and manual overides by the system administrator.

    --
    Karma Clown
  24. Combination solution. by pr0ntab · · Score: 3, Interesting

    Ideally, a simple tool should be developed that does the following:

    Compare the MD5sums of critical files to a recent known "snapshot" of the system on RO media, which only indexes files that were changed and reconciled. Perhaps there is a list of files of which only certain byte ranges (perhaps just executable ELF sections) are checked, are some are omitted. (Other slashdotters mention caches/timestamps in certain relevant files that screw up checksums). You would have a whitelist (files which must match), then a graylist (files which meet byte-range criteria), and perhaps even a blacklist that prevents files that would normally be flagged to be ignored.

    In checking full file checksums, those not explicitly listed above would fallback to a check using a HTTP get request conforming to this helpful document these guys have offered.

    And to those who were asking about other distributions: they are looking for people willing to work with them to add new distros/architectures to their database.

    --
    Fuck Beta. Fuck Dice
  25. Re:One other thing... by MavEtJu · · Score: 2

    FreeBSD doesn't ship with Apache installed. /usr/bin/ssh shows up as 69de0f3690516ffe8e7a3661f2e01b0c and 89704 bytes, but on my machine (4.7 installed last saturday) it's bf470c491274e8739111d5723b90d88f and 85832 bytes. Oh dear...

    --
    bash$ :(){ :|:&};:
  26. Bleah by digitaltraveller · · Score: 4, Informative

    NIST does this too. For a different reason though. To help forensic examiners eliminate non-important data in a suspect's computer. They use 4 different hash algorithms (MD5, SHA-1, CRC32, and one other), so good luck finding a collision for all 4. They were giving out copies of the CD-hashdb at an InfoSec conference I was at recently.

  27. Re:Useless for RPM-Based Distribuitons by Mnemia · · Score: 4, Interesting

    I'd also mention that it appears to be useless for BSD or Gentoo-like systems as well. BSD because it's built form source and the fingerprints won't always match, and Gentoo because there's already something like this built directly into the system, at least for verifying source tarballs.

    Gentoo checks the md5sum of each tarball against another file containg the known value every time it installs something. The md5sums and the sources are obtained from different servers, so a lot of the risk of trojans is removed. Granted, this doesn't do continuous monitoring like this does, but it helps ensure you don't install something bad. The biggest worry now with this system could be vulnerable if several mirrors are hacked. They're working to replace it with a private-key signed system, which is much better than and md5 based system. The reason being that, that you can verify _who_ created the checksum in addition to that the checksum matches the file.

    So, I'm not sure what the real benefit of this system is. It seems to be duplicating a lot of features that really should be built into the package manager ideally. Maybe someday we'll have package managers that actually watch their packages in realtime w/ strong crypto to make sure things are still good. That would be very cool.

  28. Excellent! by defile · · Score: 4, Interesting

    Now I can add a compromised md5sum to my rootkit which uses values from this site.

    Go team!

    1. Re:Excellent! by noahm · · Score: 2
      Now I can add a compromised md5sum to my rootkit which uses values from this site.

      Come on. This is a database of known good md5 checksums. It's not a database of known good output from some program. md5sum is no less vulnerable to rootkits than any other program on the system, but that hardly makes this a useless database.

      noah

  29. "False" senses of security by Hizonner · · Score: 5, Insightful
    Spoken like a true second-year student.

    The reality of the matter is that, while it certainly would be possible for somebody to gag a machine to evade all your wascally checksumming tricks, they frequently don't do so. And when they do it, there's the usual arms-race lag between the time when a new method of checking comes out and when they update their tools to evade it. And there's a cost to them for each defense they evade; if you want to avoid every defense you ever hear of, you basically have to roll your own rootkits, which is a huge time investment.

    And a kiddie who's out there collecting hundreds of boxes has no particular incentive to be anal about holding onto yours.

    ... and everybody makes mistakes. Yes, you're right, looking at checksums gives you absolutely no security against omniscient adversaries with infinite resources. Luckily, real adversaries are not omniscient and have limited resources. Yes, you'll even miss some of the real adversaries. You'll also catch some. Probably a lot. Nothing is perfect. Deal with it.

    Fucking pompous amateurs.

    1. Re:"False" senses of security by greenrd · · Score: 2
      Huh, you must be a high school student! Don't you know that the kernel itself can be compromised? What, do you think it's got some kind of "magic wall" around it that makes it invulnerable?

      (And no, Virginia, memory protection != invulnerable.)

    2. Re:"False" senses of security by Anonymous Coward · · Score: 2, Insightful

      He may be a second year student, but he's right. You don't check a potentially compromised system with itself! Mount the drive on a trusted system and check it there. This isn't even hard. If you suspect a breakin, schedule a half-hour of downtime and boot from a trusted CD, like Knoppix or the live filesystem that comes with Slackware, and check your HD from there. Simple!

    3. Re:"False" senses of security by yerricde · · Score: 2, Insightful

      If you suspect a breakin, schedule a half-hour of downtime and boot from a trusted CD, like Knoppix or the live filesystem that comes with Slackware, and check your HD from there.

      And if the BIOS is trojaned?

      --
      Will I retire or break 10K?
    4. Re:"False" senses of security by Alan+Shutko · · Score: 2

      The reality of the matter is that, while it certainly would be possible for somebody to gag a machine to evade all your wascally checksumming tricks, they frequently don't do so.

      No kidding. I still haven't even seen people updating the RPM md5sums, and you'd think that's something that rootkits would like to do.

      Sure, if you know your system has been compromised, you want to take it down and do a check with known-safe binaries, kernel, etc. But in the real world you can't do that daily on a production box, so checksumming on a live box is a reasonable solution.

  30. Re:Furthermore, by CableModemSniper · · Score: 3, Funny

    I need a daemon that will automatically checksum the daemon. And then a daemon to automatically checksum the checksumming daemon. And a daemon to automatically checksum the daemon checksumming daemon checksumming daemon and a daemon...

    --
    Why not fork?
  31. Er, rpm -V? by SlashChick · · Score: 5, Informative

    For Red Hat-based systems, at least, rpm -V will do pretty much exactly what you're looking for.

    From the man page for rpm:

    The general form of an rpm verify command is

    rpm {-V|--verify} [select-options] [--nodeps] [--nofiles] [--nomd5] [--noscripts]

    Verifying a package compares information about the installed files in the package with
    information about the files taken from the package metadata stored in the rpm database. Among other things, verifying compares the size, MD5 sum, permissions, type, owner and group of each file. Any discrepencies are displayed. ... The (mnemonically emBoldened) character denotes failure of the corresponding --verify test:

    S file Size differs

    M Mode differs (includes permissions and file type)

    5 MD5 sum differs

    D Device major/minor number mis-match

    L readLink(2) path mis-match

    U User ownership differs

    G Group ownership differs

    T mTime differs


    So while that's a bit cryptic, a shell script run once every x days (30? 14?) should tell you what files have changed. All you would have to do is run rpm -qa to grab a list of the packages in your system, and then loop through the list and run rpm -V for each RPM returned.

    For instance, running rpm -V on two common packages, Apache and PHP, shows me the following:
    # rpm -V php
    S.5....T c /etc/php.ini

    (php.ini has changed... which in this case means I've tweaked some of PHP's default settings.)

    # rpm -V apache
    S.5....T c /etc/httpd/conf/httpd.conf
    missing /var/www/html/index.html
    missing /var/www/html/poweredby.png

    (Okay, I've changed httpd.conf, again pretty much a given, and I've removed a couple of the default files.)

    I guess this website seems pretty unneeded to me. Granted, the above is just for RPM-based systems, but I'm sure Debian and ports have similar options. And to the people who have installed from source and say "What about me?", I say, first, never underestimate the power of a package management system, and second, check out CheckInstall, which allows you to create an RPM or DEB just by saying "checkinstall" instead of "make install". If you feel you must compile from source, checkinstall is a necessity! Using checkinstall gives you all the benefits of a package management system while still allowing for the flexibility that compiling from source provides.

    Between checkinstall and up2date, I'm a very happy Red Hat customer. I just wish more people knew about some of the truly powerful things in package management systems (such as the verify command detailed above.) Package management systems are there for a reason. Use them! :)

    1. Re:Er, rpm -V? by Nicolas+MONNET · · Score: 3, Insightful

      Usually crackers don't think of altering the RPM database containing the MD5 hashes -- it's happened to me during a Bind compromise --, but there's nothing that would prevent them from doing so ... so you need an external database.

    2. Re:Er, rpm -V? by D0wnsp0ut · · Score: 3, Informative
      For Red Hat-based systems, at least, rpm -V will do pretty much exactly what you're looking for.

      For those who pointed out that the RPM database is a local database, remember, you can get those MD5 hashes from 2 other sources:

      • your installation medium (CD)
      • from Red Hat's web site itself

      Of course, using the web site is going to be a lot more labor intensive, but it is available. Writing a script to compare hashes computed using RPMs from the CD image and comparing them to your installed binaries should be a piece of cake (using the --dump option to -ql).

      --
      "Those who would sacrifice liberty for security deserve neither!"
  32. Re:But what happens... by kasperd · · Score: 4, Insightful

    when they trojan your MD5 checksummer?

    Then your compromised system might apear to be clean. I have actually seen a system where that has happened. But the intruder forgot to trojan the rpm executable, "rpm -Va" revealed everything. But had the intruder trojaned the rpm executable too, that wouldn't have worked. The only secure way to use the verification tool is to boot from a readonly media and run the tool from there.

    --

    Do you care about the security of your wireless mouse?
  33. Prebinding on OS X breaks checksums by MotownAvi · · Score: 2, Interesting

    The problem with this is that it assumes that binaries never legitimately change. That is false in Mac OS X. The Mach-O file format allows for "pre-binding", where the linker tries to resolve imported functions and data before the app is loaded, and, if successful, writes the offsets to the file.

    I'm not familiar with the Mach-O file format, but I'd guess that the changes are confined to a small part of the file. But if you could just checksum the code sections, that might work.

    On the other hand, talking about libraries makes me think. Don't forget to check the libraries. If I trojan libc, I'll be getting all kinds of control while leaving the program binaries unmodified.

    rlwimi

  34. how does this work? by thogard · · Score: 5, Funny

    Ok, lets see if I've been hacked...
    $ md5 /dev/null
    d41d8cd98f00b204e9800998ecf8427e

    So I put d41d8cd98f00b204e9800998ecf8427e in the search engine and it came up with 560 hits (compared with 3170 from google).

    Now it appears that someone replaced my /dev/null with /private/var/servermgrd/servermgr_dirserv.lock from Mac OS X. What a bummer and its a brand new system too...

    Does the database have a way to flag files as being bad? Sa

    When I put in 3ac9bc346d736b4a51d676faa2a08a57
    I should get back:
    *** Trojaned openssh-3.4p1.tar.gz ****

    One thing that could make this useful would be a dns like interface...
    host 3ac9bc346d736b4a51d676faa2a08a57.knowngoods.org || echo bad

    1. Re:how does this work? by DJPenguin · · Score: 2

      >When I put in 3ac9bc346d736b4a51d676faa2a08a57
      I should get back:
      *** Trojaned openssh-3.4p1.tar.gz ****

      How the bloody hell will it know that? Just changing a couple of bytes in a file will completely change the checksum. There's no way of telling what the file _should_ be from the checksum.

    2. Re:how does this work? by Simon+Kongshoj · · Score: 2

      I think you're misunderstanding how MD5 and SHA-1 work. These are one-way hash algorithms, meaning that there's no way of identifying what d41d8cd98f00b204e9800998ecf8427e was originally. The algorithm doesn't allow for a "decrypt" function at all.

      The method of operation is that if you hash /dev/null (probably not the #1 trojan target though) into d41d8cd98f00b204e9800998ecf8427e, you can store that value somewhere safe (eg. on a secured remote logserver or on read-only media). Then, if /dev/null gets trojaned, a file monitoring system (like AIDE, integrit or TripWire), when running its checks, will notice that the current hash is different from the original one you've stored securely.

      Also, hashes are not unique. It's not impossible that your /dev/null hashes to the same value as some other file on another OS. Or to another file on your own system. It's very unlikely that someone can make a trojan that lets the file hash to the same value as the clean version, the slightest change to the file will result in a completely different hash value.

      So your proposition that you should be able to put in a hash value and get a *** Trojaned openssh-3.4p1.tar.gz **** response is in fact technically impossible. The system has no idea where that hash value came from. What you could do is retrieve a hash from the database, and compare it to the one your md5 program generates. Making a script to do that shouldn't be rocket science, except in the case of extremely simple rockets.

      Good reading for understanding one-way hashes (they're also used for storing passwords on Linux and UNIX systems, among other things): http://www.ch280.thinkquest.hostcenter.ch/crypto/o newaye.html

      --
      Six sick .sigs, the Number of the Beast!
    3. Re:how does this work? by thogard · · Score: 2

      3ac9bc346d736b4a51d676faa2a08a57 is the md5 a trojaned package that managed to make it to several mirrors. It was downloaded by thousands of people and is known bad.

  35. Solaris Fingerprint Database by nbvb · · Score: 5, Informative

    Sun already provides this for Solaris.

    http://sunsolve.Sun.COM/pub-cgi/fileFingerprints .p l

    It contains information for:

    Operating Systems

    Solaris SPARC - 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.5.1, 2.6, Solaris 7 and Solaris 8
    Solaris x86 - 2.1, 2.4, 2.5, 2.5.1, 2.6, Solaris 7 and Solaris 8
    Solaris PPC - 2.5.1
    Trusted Solaris SPARC - 2.5, 2.5.1 and 7
    Trusted Solaris 7 x86
    Most CDs bundled with Solaris 2.6 and later.

    Patches

    Nearly all released Solaris patches, including all SunSolve CDs to date. (4.0.11)
    All Solaris 2.6/7 Maintenance updates.
    All patches available from SunSolve.

    Unbundled Products

    Around 150 CDs with unbundled products are included. If you are missing any particular product, please feel free to send email and we will try to include it as soon as possible.

  36. Re:But what happens... by zcat_NZ · · Score: 2

    otoh if you're planning to write a trojan md5sum and need a database of 'known-good' checksums for it to return.. voila!!

    --
    455fe10422ca29c4933f95052b792ab2
  37. This is what MACs are for... by wirelessbuzzers · · Score: 2

    A MAC is like a hash with a secret key; the hash depends on both the file and the key. That way you can keep a copy of the database locally and an attacker can't change it to cover his tracks like he could an MD5 database if you kept it locally (of course he could change the verify program if that were local...but probably not without changing the file size).

    This would allow for protection of files not in an online database (compiled from source, for example) using only local files.

    You can use a block cipher chaining mode (don't remember which one) as a MAC, or use say AES_k(MD5(file)), or, IIRC you can use MD5(k_1 file k_2) where k_1 and k_2 are different secret keys (check this out before using, lots of constructions like this are totally insecure), or you can use something designed as a MAC (eg RIPEMD). Any of these could be run from a shell script to quickly verify all binaries (or whatever you were protecting).

    --
    I hereby place the above post in the public domain.
  38. Personally.. by shepd · · Score: 3, Interesting

    I like this utility. It's pretty handy, although probably not as effective as this database, unless you're running slackware, or another popular, but undatabased distro. :-)

    --
    If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
  39. What about AIDE? by strobert · · Score: 4, Interesting

    the poster mentions Tripwaire, but what about AIDE?
    In additon to being a proper Open Source project, it allows for features that (last I heard at any rate) tripwire doesn't support, like a centralized checksum DB. That feature alone makes the tool superior (IMHO). For example it makes the verification process a lot nicer (intruder can't courrpt the local md5sum's because there aren't any).

  40. Re:You know... this brings up a question.... by jcoy42 · · Score: 5, Interesting

    You could start by subscribing to the forensics mailing list over at securityfocus.com. The honeypots list is also of interest.

    Both lists have a fairly good signal-to-noise ratio, and there is a lot of good info to be had.

    If nothing else, it's certainly a good place to ask that exact question.

    You can sign up here.

    --
    Never trust an atom. They make up everything.
  41. Versions? by tconnors · · Score: 4, Insightful

    OK - debian seemed to have one version there - r5, whatever that is. How does it handle apt-get upgrades? If r5 is reffering to something like stable, then even stable changes over time (contrary to what some poeple think ;-). So do they take the checksums from a machine that was just apt-get upgraded last night, or what? If they mean an actual yearly or half yearly release, who on this world does not apt-get upgrade when there is a security fix released? So your system sure as hell aint going to match theirs.

    Then I can't imagine how you would be able to automate this, so it checks all the binaries in /bin /sbin, /usr/sbin etc - do they have some alternative to HTTP for their database?

    Doesn't seem overly useful to me....

  42. Straightforward solution by zunger · · Score: 4, Interesting

    I found a fairly straightforward solution to this problem. I wrote a small wrapper around a known-good md5 function, compiled it and placed it in a nonstandard location. (Thus it doesn't have a widely recognizeable filesize or md5 to be detected and stomped) Then I wrote a simple shell script which checksums various critical files on a regular basis and tests the MD5 values against a record it keeps, again in a private location. Whenver a change happens, it sets off alarm bells all over the place, both in syslogs and on the console.

    On top of this I stuck in one small bit of shell script that allowed me to modify a file myself without setting off alarms - it simply recalculated the md5 value and updated the record files.

    I suppose this is theoretically vulnerable to an attacker reading through /etc/crontab, then checking each local shell script for a sensor and carefully overwriting my own nonstandard code - but if any attacker has that much free time on his hands, there's a limit to how much of a sensor I can implement.

    The nice thing about this code is that it also implicitly tests for corruption of critical files after fsck-triggering events like kernel panics or total power failures. (That's actually what prompted its initial writing) And it's remarkably trivial to implement, even more so if one simply copies an off-the-shelf md5 binary rather than compiling one's own wrapper.

  43. How they check sum script files? by mentin · · Score: 2
    What about user/machine specific or configurable scripts? Those that are created during setup, and can't be check-summed.

    These files can contain trojan too, and most "modern" trojans are written in some interpreted script, not in C. How about detecting this?

    --
    MSDOS: 20+ years without remote hole in the default install
  44. Re:Furthermore, by dknj · · Score: 2

    Lisa : "Who will police the police?"
    Homer : "I dunno. Coast Guard?"

    -dk

  45. No OpenBSD Yet by ksw2 · · Score: 2

    I was dissappointed to see no OpenBSD database. :-(

  46. Re:But what happens... by hondo_san · · Score: 2, Insightful
    Kind of reinforces one thing I sometimes forget to do on a new ftp install, and that is to immediately copy all of the binaries that one would use to detect a comprimised box -- ps, top, ls, md5, and several others that one could find in a book or Wepage devoted to security -- to a read-only CD. Oh yeah, throw in NMap, too. Of course, immediately next should be Tripwire.

    That way, at the first sign of trouble, you just toss in the disk of known-good tools, with the confidence that at least that stuff is clean. Yes there are ways other than this, I'm sure, but for us non-super-guru types, it's pretty handy.

  47. Source distros! by PigleT · · Score: 3, Insightful

    "Doesn't seem overly useful to me...."

    Nor to me, for a different reason: what about those of us with CFLAGS= set to various strange funky optimizations in Gentoo? What about the Ports system in FreeBSD, similarly?

    This thing does not have the potential to spread to all distributions or all unixen.

    What about historical storage? Are they really proposing to store an md5sum for /bin/* /usr/bin/* for all packages for all distributions for all releases, or when do older things get purged?

    Seems mad to me. Would be better off staying with AIDE instead, IMO.

    --
    ~Tim
    --
    .|` Clouds cross the black moonlight,
    Rushing on down to the circle of the turn
  48. free service by Erpo · · Score: 2

    Those who want to give you their files for safekeeping should not forget to include their ip addresses, so that you can contact them in case of a problem...

    Sounds like a good idea, but that's all you can get for free. I have limited space and resources -- I can only keep track of so many password files and IP addresses at a time at no cost.

    Erpo's "Bronze Tier" security service is available for $10 per month, and for that modest fee you can have the privilege of running Erpo Inc.'s backdoord, "The most advanced intrusion detection software on the planet." (Note, UID 0 and internet access necessary for security functions to operate effectively.) For those willing to spend $50/month for a little more peace of mind, Erpo's "Silver Tier" plus package includes eight (count them, eight) bytes of space on my hard drive for a cleartext backup of your root password. Sometimes, however, that just isn't enough. For those that need the ultimate in security, Erpo Inc. offers the most comprehensive option available anywhere: the super duper "Gold Tier" uber-premium technoblaster package with cherries on top. Clients in this elite class of service have the extreme honor of keeping their servers on-site in a musty corner of my basement (T3 and battery backup provided by client, some restrictions may apply, void where prohibited). For only $100/month, I will personally look through all of your sensitive, private data to make sure it has not been compromised by an attacker. It doesn't get any better than this, folks. Sign up today at www.er....

    What? Fraud? Don't be silly.

  49. Re:don't forget the ip address by Ben+Hutchings · · Score: 3, Funny

    Will send you the files later. My address is 192.168.1.1.

  50. Re:But what happens... by Anonymous+Bullard · · Score: 2

    The only secure way to use the verification tool is to boot from a readonly media and run the tool from there.

    This would be a useful feature addition to the rescue mode of boot CDs.

    Security could/should be made more newbie-friendly.

    Another thing is that with *free* platforms the distro-builders need to earn their living from services rendered, and security is as good a service as anything. With internet access being in the core of everything, couldn't the distro companies also provide optional integrity checking service over a secure connection? I could envision a write-once space for uploaded checksums against all installed packages...

    Of course, once distros start creating such remote personal customer services the door opens for a host of new support and service packages (built-in webhosting etc., anyone?). Credible distro makers would probably benefit from their reputation at the expense of fly-by-night operators.

    --

    Should invading one's peaceful neighbours be opposed, or rewarded with trade deals?

  51. Sun is SMRT by multipartmixed · · Score: 2

    Not only that, but when you install a package with the sun pkgadd tool (like RPM, only not for use by the unwashed masses), it drops package checksums into your spool directory. You can verify checksums of every damn file you've ever installed with pkgchk -c....

    I have yet to see a root kit which modifies this checksum [although it could happen], but going to the master checksums is certainly not hard, and pkgchk -c is so nice and easy.

    --

    Do daemons dream of electric sleep()?
  52. SHA-1 by Nonesuch · · Score: 2
    An OpenBSD database of "known good" signatures would have to be SHA-1 :)

    Many (most?) of the OpenBSD users I know have custom environments, the first thing they do with a new release is 'make world', resulting in all new binaries with checksum signatures unique to their environment.

    I've been privately building up a database of "known bad", MD5/SHA1 signatures from known examples of trojaned binaries, worm DLLs, and the like.

  53. Re:only add entries by BitHive · · Score: 2
    You are stupid as hell. As soon as their stored hash doesn't match, it looks like you've been compromised, and if enough people get alarm bells going off, then it would be pretty obvious that the hash changed, not everyone's binaries. Sure, you could add new hashes for new binaries, but what are you going to call it? /bin/rootkit?

    Fuckass.

  54. "False" sense of superiority. by Cadre · · Score: 2

    You don't understand that while perfection may not be possible, there is nothing wrong to point out the imperfections.

    Fucking pompous amateurs.

    That's a pretty large ego you've got there for a guy who is willing to settle for less. You don't even seem to want to work for a better solution.

    You speak with such superiority when you fail to even point out good solutions like booting from known good read only mediums. Heck, even the anonymous cowards had something better to say.

    You've added nothing.

    --
    All editorial writers ever do is come down from the hill after the battle is over and shoot the wounded.
  55. Re:Trojan your BIOS? by kasperd · · Score: 2

    The black hats have trojaned, and will continue to trojan, a machine's flash BIOS.

    It is IMHO a bug on the MOBO if the BIOS by default can be flashed, it should be required at least to move a jumper to flash it. Another interesting approach would be to have a MOBO with two flash BIOSes, only one is writable, and the other is the one being used during boot. The roles of the two can be switched by a jumper.

    --

    Do you care about the security of your wireless mouse?
  56. How do we know knowngoods is secure/trusted? by TheLink · · Score: 2

    How do we know knowngoods is not compromised? Or how likely it is to be compromised? There is no information on how they ensure security of their site, etc. The fact they left this out seems quite damning in the light of what they are claiming to do. For all we know they could be far easier to hack than the other source sites.

    You probably need at least two different sites running different mechanisms. In fact the second site should be just a plain static webserver, everything else turned off. Forget the PHP, SSL etc. HTTP static serving is fairly easy to get right if you leave out the extras.

    --
  57. Re:or radmind by strobert · · Score: 2

    hmmm... interesting. So it almost looks like a suite of tools that will rsync (will an equiv, haven't looked to see what it is using under the hood) copies of files with some smarts about versioning... I'll have to put this on the tools to look at list. thanks for the link.