Slashdot Mirror


Computer Immune Systems

LL writes "We might soon be seeing commercial delivery of autoimmune security systems. Rather than the surface bit pattern detections of antivirus checkers, these system attempt to provoke virii in a secure area (IBM) or match network packets against signature tags (Forrest). The interesting plug is that the author suggests that large programs such as operating systems should be made in such a way that no two copies are exactly alike. Now guess what favourite beast has this trait?"

32 of 92 comments (clear)

  1. The best defence... by jd · · Score: 2
    There is a problem with the notion that you can develop an all-encompasing defence. It's called evolution. The virii that are no longer effective will be selected out, leaving those which will be impervious to this kind of defence.

    As the viable attacks will be the ones which survive, those will be the ones distributed, copied and reused. Within a given timeframe, by creating a "super-defence", you -ALSO- create "super-virii".

    The problem with any evolving system is that it will remain, over a long enough time-frame, roughly in balance. Nothing can become super-strong, without in turn strengthening it's opponents, by natural selection.

    Only a "truly perfect" defence will work, but no such defence exists, or even theoretically could exist. This leaves you with the "best practical" approach, which is to make things as protected as reasonably practical, and no more.

    This kind of approach has the advantage that you don't accelerate (too much) the development of super-bugs (as medical practices have an unfortunate tendancy to do - idiots!) whilst offering a sensible level of protection against more common attackers.

    Ideally, though, defences should do more than just defend. The more time you spend defending, the less time you have to do anything else. This, in itself, is a form of DoS attack on your system, via wetware rather than software, making the admins install so much protection that the system becomes unstable and/or unusable, under typical loads.

    What you want is a form of defence which actually contributes to the rest of the system in other ways. That way, you are gaining overall by expending the resources, and don't run into the DoS trap.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:The best defence... by jd · · Score: 2
      Besides being flamebait and a troll, you're also wrong. :) A word is a purposely organised assembly of characters, which includes anything written down and deliberately spelled a particular way.

      (This includes coined words, jargon, local dialects & local terms, regional spelling, national spelling, etc, ad nausium.)

      On top of that, I believe "virus" has a Latin root, which makes the plural "virii". This is distinct from a word such as "data", which is a plural and who's singular is datum.

      Oh, and "rap" ain't music. It's noise with speech trying to drown it out in the folorn hope nobody'll notice how cruddy it is.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:The best defence... by Tom+Christiansen · · Score: 2
      I believe "virus" has a Latin root, which makes the plural "virii". This is distinct from a word such as "data", which is a plural and who's singular is datum.
      Yes, virus was in Latin, whence it derived from the Greek digamma - iota - omicron - sigma (sorry, don't have a Greek font). That's not the issue, however.

      I can see you haven't read the other postings here lately. You see, your simplified view really was not how Latin worked. Here's the short story from today, and here's the long one from some time ago. Thank goodness we don't have to remember all those rules in English!

      I find it painfully but amusingly ironic that you should have used who's improperly in the cited passage above. You need the relative pronoun to be in the genitive case--to wit, whose. I believe this falls under the category of throwing stones in glass houses. :-)

  2. Not unique by axolotl · · Score: 3

    If you're talking about linux, why should it have this trait? Most people still use a stock kernel from their distribution. That's a lot of people using the Redhat binary kernel, say, which will be identical for every person using it.

    Sure, you can play with the config or use patches or whatever, but a lot of the code will come out the same. It's not like the compiler puts some kind of unique fingerprint on the kernel you build.

    axolotl

  3. Evolutionary Speed by Effugas · · Score: 2

    "Please fasten your seatbelts, as we are presently experiencing turbulence as the result of excessive metaphor shear."

    As much as I would absolutely love to fully envision the Net as a living, breathing organism...it isn't. There are aspects of biology that are appropriate, but I think it's fair to say that these researchers are presuming excessive organic/technical equivalence:

    Technology is externally changed, quickly, and often within the same generation of machinery. Organics internally evolve, extremely slowly, and even then almost wholly reserve their changes for the next generation.

    The fact that technology is externally changed means that there's no evolved internal consistency--the immune system must be explictly modified to support the new transplant. As biology and technology have shown us, spooging the new into the old is difficult work. The speed of modifications too is frightening--while it's obvious that the host systems change much faster in a technological environment, I'd be interested in knowing the genetic variation of attacking bacteria and virii vs. the command variation of attacking trojans and computer viruses.

    The generational woes are the killer--it is impossible to establish the biological concept of a "homeostatic self" onto systems that never stay either frozen in the present or predictable in their growth towards any degree of future.

    Now, granted: There are assuredly "all quiet" states on the average network, and recognizing such states is a common tactic of network monitoring systems. (Indeed, there's a free app out there that will generate a firewall config that will pass any traffic it noted on your network during a "trusted state" period, then block anything else.) But that's a rather blunt methodology, and denies the inevitable existance of new services. The big problem is: How does one respond to a deviation? The curse of unpredictability is the inability to automate appropriate responses. The curse of being forced to constantly formulate appropriate responses is that it's burdensome and prone to false positives. The curse of not formulating appropriate responses is that you end up not responding at all ;-) All in all, a nasty situation.

    I should be fair--I like what I'm hearing from these guys. I've been saying for quite a while that systems that prevent the results of an instability from being necessarily exploitable(essentially, randomizing and shuffling systems so that there is no predictable "skeleton key" to the system that works every time). Their talk about monocultures is perfectly appropriate here. IBMs work with victim labs is beautiful, if not more than a bit macabre if backwards ported to human biology. Even the packet signaturing is interesting. But we should be aware of the limitations of this technology, and I'm interested in just how aware these researchers are of the differences between the evolved and the created.

    Yours Truly,

    Dan Kaminsky
    DoxPara Research
    http://www.doxpara.com

    1. Re:Evolutionary Speed by Effugas · · Score: 2

      You'd think after the first 17 postings about that not being word, people would catch on. Guess not.

      Gotta love the English language. Unlike, say, Spanish or French, there is no central committee which decides which words are valid and which ones aren't. While dictionaries and Trusted Newspapers take some of the responsiblity, the general rule is rather democratic: If enough individuals use a given word to represent a consistent concept, and if that word is not a homonym of a word with a slightly different(and more standardized) spelling(their/thier/there), that word is considered coined and valid.

      Remember, it is not the purpose of a dictionary to create the language, only to reflect it.

      Altavista shows 8,496 usages of the unique word "virii". At bare mininum, "virii" qualifies as an alternative, non misspelled variant of the word "viruses".

      Don't play semantic games with me, AC ;-)

      Yours Truly,

      Dan Kaminsky
      DoxPara Research
      http://www.doxpara.com

  4. Virus solution - better security models by Frank+Sullivan · · Score: 2

    Vir[ii|uses] are a problem in the Windows world due to a lack of system security, plain and simple. While it is theoretically possible to write a Unix/Linux virus (and has been done), how will it *spread*?

    For a classic virus to work, it must attach itself to an executable, and spreads when that executable is run (modern email "virus" programs are often technically worms, not vir[ii|uses]). In Windows, this is easy, because the system directories (c:\Windows) are writable by the regular users.

    In Unix/Linux, the system directories where most binaries are (/usr/bin, /usr/lib, etc) are not writable by non-root users. If you don't run as root, a virus can't infect the binaries, because it can't write to them. Period.

    If one were to write a Unix/Linux virus, the obvious target program would be /bin/sh (or /bin/bash, etc). Infect this, and you can easily infect everything which is executed by /bin/sh, which is most programs. But how can an ordinary user attach the virus to /bin/sh? On the various Linux and commercial Unix boxen here at work, it is always owned by root/root or bin/bin, and mode 755 or 555 - unwritable by ordinary users.

    At best, a virus could affect user-owned binaries, say in ~/bin. But except for convenience scripts, who uses that? Anything widely used and standard goes into a directory protected from accidental or deliberate damage. That's just good practice.

    If all operating systems followed Unix' wise example, vir[ii|uses] would be merely an interesting theoretical exercise, rather than a serious hazard.

    ---
    120
    chars is barely sufficient

    --
    Hand me that airplane glue and I'll tell you another story.
    1. Re:Virus solution - better security models by Tom+Christiansen · · Score: 4
      To be honest, the Unix security model is almost as weak as the Windows security model in this aspect.
      What you've said is largely irrelevant. Here's something I once wrote on this matter. You can change the Perl references to Bash, to accord with your own statement. I wish I'd saved the links to Abigail's virus. Check DejaNews.

      --tom

      _______________________________

      No, it's really far more complex than that.

      You are correct that it is no mean trick to write a program that can damage the system it runs on, largely irrespective of what kind of system we're talking about. And so long as you can hoodwink some unwitting user into executing that program on their system, that program can, of course, cause damages commensurate with the privileges and capabilities of that user.

      What you've failed to consider is how the dramatic cultural differences between Unix and the much-maligned consumerist toys serve to affect the issue to our benefit and their detriment.

      Probably the most important of these cultural differences is that Unix has historically been a source-only world. Programs are distributed in the form of source code, code which shall be configured, built, and ultimately installed on the target machine. Programs solely accessible in machine language form fall immediately under a taint of mistrust.

      Think back to the last time you read a notice from someone whom you've never heard of before that was asking you to go fetch some random binary program from some random place on the net and then to run that program under full sysadmin privileges? I can already see the incredulous Unix sysadmin reading that and bursting out in uncontrollable guffaws. Because the de facto standard for program interchange in Unix is as source code, a Unix programmer will be far less likely to fall for your ploy than would your average Prisoner of Bill, who has been lulled into gullibility by a binary-only culture.

      But for the sake of the argument, let's say that you've found a way to effect this trick. Suppose you're an employee of some reasonably respected company that happens to produce a binary-only distribution of their commercial software, and you decide to sneak something wicked into the binary image. You manage to replace the standard, clean copy on your company's ftp or http server, or even floppies or CDs, with your own naughty version. People are accustomed to downloading from your company, or using your company's floppies, so they do as they've always done, run the installation as the superuser, and you thereby have your way with their system.

      If this scenario were to play out, just how dangerous--how destructive--could it really prove? Whom could you harm, and who would be immune to your ploy? The answer is that you could only hurt those folks running the exact platform for which your binary had been compiled, and everybody else is unassailable. By platform, I mean the whole feature vector that includes processor chip (eg Sparc vs Intel), operating system (e.g. SGI vs BSD), shared libraries (e.g. libc vs glibc), and site-specific configuration (e.g. shadowed vs non-shadowed password files.

      Let's not get too full of ourselves and pretend that the Unix culture's predilection for source-only program distribution derives only, or even mainly, from altruism. We have no choice in this matter. If you're on Unix, you don't have the source, then you can't run the program on all your diverse systems. And if Unix programmers do not provide source, they cannot hope to have their program as widely used as it would otherwise be.

      Consumer-targetted systems from Microsoft or Apple are two instances are a static monoculture, as vulnerable to mayhap as a field of cloned sweet corn. It only takes one genetically engineered virus to bring down the whole field. Unix is different.

      In his acclaimed essay, In The Beginning, Neal Stephenson writes:

      It is this sort of acculturation that gives Unix hackers their confidence in the system, and the attitude of calm, unshakable, annoying superiority captured in the Dilbert cartoon. Windows 95 and MacOS are products, contrived by engineers in the service of specific companies. Unix, by contrast, is not so much a product as it is a painstakingly compiled oral history of the hacker subculture. It is our Gilgamesh epic.

      What made old epics like Gilgamesh so powerful and so long-lived was that they were living bodies of narrative that many people knew by heart, and told over and over again--making their own personal embellishments whenever it struck their fancy. The bad embellishments were shouted down, the good ones picked up by others, polished, improved, and, over time, incorporated into the story. Likewise, Unix is known, loved, and understood by so many hackers that it can be re-created from scratch whenever someone needs it. This is very difficult to understand for people who are accustomed to thinking of OSes as things that absolutely have to be bought.

      There is no one thing called Unix. Instead, Unix comprises a diverse set of subtly (and often not so subtly) variant platforms. A nefarious binary laced with exquisitely designed evil bullets hidden inside it can hurt only a few of us. When Apple and Microsoft laugh at our diversity, be sure to remind them that is it their lack of the same that contributes to their incredible vulnerability--and to our strength. Hybrid vigor ultimately wins out over a monoculture, for the latter is too in-bred and fragile to prove long viable.

      Let me now return to your particular suggestion, that of a malignant Perl program activated by a Makefile rule at installation time. Because you're talking source code, and because Perl tries rather hard to attain a high level cross-platform intercompatibility, this form of subterfuge would appear exempt from the inherent protections stemming from diversity in variant Unix platforms. So, could your trick be done? How much of a problem could this really be? What might happen?

      The answer is that of course, it could be done. And in point of fact, a demonstration model is already available, courtesy of Abigail. Guess what? There's no reason to run around like a chicken with its head cut off: the sky isn't falling. This sort of approach stands little chance of making a big splash, because you aren't going to insinuate it into a place that can affect a lot of people. Sure, you might catch a few folks, but just how long to you think this kind of thing will go unnoticed? Remember, it's in source code. That means anybody who wonders what happened can just look at it. There's a very low barrier to entry. And even if the naughtiness removes itself from your copy once its dirty deeds are done, that naughtiness is still sitting there in plain view for easy inspection back wherever you got your copy from.

      Is there a way around this? Well, yes, if you're as clever as Ken Thompson. Fortunately, you aren't, and neither are the crackers. If they were, they'd doubtless receive more Turing Awards for their vaunted efforts. :-)

      The only way you're going to get good propagation is if your nastiness into a copy that a lot of people will download and install. There's a very fine reason why so many archives contain a checksum of the image. It's to help with this problem. Security of course depends on several matters, including the strength of the algorithm and the integrity of the authenticating agent. But better that than nothing.

      Let's talk about propagation some more. I assume that the goal is to have a notable impact, which means you need to spread your bad code as widely as possible. A hacked up install script, even if all goes to your liking, just doesn't have a very high rate of reproduction. First of all, how often do how many people install this software? Secondly, how do you plan to trick them into doing so? It's not really much of a challenge to get one person to this, especially if they trust. If that's your goal, maybe you'll succeed. But the risk of being traced and apprehended is high.

      So how come this stuff can spread like wildfire amongst the OS-challenged? Can't whatever mechanism that's used there be used to get at the rest of us, too?

      Over the last few years, a frighteningly frequent conduit of contagion for viral infection on toy systems has been the implicit, automatic execution of code with little or not manual intervention on the part of the box's owner. DOWN THIS PATH LIES MADNESS!. That this can ever, ever happen is as a plain a symptom of complete and total cretinization in the toybox world as you are ever going to see. It's stupid, it's crazy, and it's dangerous. Any programmer who even suggests it needs to go back to flipping hamburgers. Any user who asks for this feature needs to be quietly taken into the back room by the doleful men in long trenchcoats, where he will be told in no uncertain terms that his request is not only in the best interest of no one but criminals, but that he also now has a permanent record even for asking about it.

      No, I don't care that a customer asked for it. Customers are idiots, just like any other user. So what if they pay you? They're still idiots, and it's your professional responsibility to act responsibly, to refuse to go along with their madnesses. The customer is not always right. In fact, they're very often wrong. A physician or a lawyer doesn't do whatever the customer requests, and neither do you. They, meaning the customers or users, simply don't have the background and training; they don't have the experience of seeing why automatic execution from untrustable source is the work of the Devil.

      It's not as though we in Unix have never seen this issue before. In fact, we've seen it time and time again. And guess what? We recognized the problem and we addressed it. And we don't cater to that kind of lunacy anymore.

      Here are a few concrete examples.

      Remember when vi would--or at least, could--automatically execute macro commands embedded in a file in a specific way? That was a dubious feature called modelines. On my OpenBSD systems, if I type :set modeline, the program comes back and says set: the modeline option may never be turned on.

      Another example of learning from our mistakes is the issue of shell archives. Instead of automatically running the sharfile through /bin/sh, there are specially made unshar programs that will do the common things, safely, and nothing else.

      When CGI was first getting big, owners of toy systems would blindly install compilers and interpreters in such a way that these would easily execute arbitrary content coming in off the wire. Despite my pleas, both Netscape and Microsoft were actually advocating this! After a year of warning admins not to do this, and sending mail to the companies who were saying to just go ahead, nothing changed. So I released latro. Then and only then did various companies retract their suggestions, even though they'd been aware of the nature of the problem for a long, long time. Sure, you could be equally stupid on Unix, but for some reason, we weren't. History counts.

      Implicit execution of untrusted material is simply stupid beyond words. And for some reason, the toybox people keep falling for the same chump moves, from MIME attachments to word processor and spreadsheet macros to embedded active scripting controls. I don't know quite why they just keep doing this crap. My hunch, and it's only a hunch, is that this is happening because Microsoft and their moronic minions simply cannot for the all the tea in China ever manage to think outside of their quaint but completely fictional little single-user universe. Maybe they don't hire people who come from a background in multiuser and/or networked computing systems. Maybe they don't hire people with real experience at all, just script-kiddies trying to make a buck legitimately but with no true understanding. Maybe the software makers simply can't say no to a customer request, no matter how suicidal they know that request to be. I don't know.

      Whatever the cause, decades of history are completely and repeatedly ignored. They keep making the same mistakes, and they don't fix the underlying causes. Sure, there are things that are hard. Denial of service attacks are hard. People who know exactly all the ramifications of IP who go sending maliciously hand-crafted packets aren't much fun either.

      But these highly technical ploys aren't why most folks on their toyboxes are being screwed up, down, left, right, and sideways. They're being screwed because of very simple matters. They don't have the notion of a protected execution mode. They don't have file permissions or memory protections. They automatically execute content willy-nilly, often with complete access to the whole machine. They expect a program to show up in binary not source form. They don't compare robust checksums from a strongly authenticated sources. They live in an infinitely vulnerable monoculture. They expect things to just magically happen for them without a thought or a care, and guess what? Their wishes are duly granted, much to their eventual dismay.

      It is possible that mass-market factors may someday end up plaguing Unix systems in ways not so far removed from the stupidities that the toy boxes are riddled with. We just have to tell them no, and to condemn in the strongest and loudest possible terms any backsliding into insecurities that if we ever had, long ago banished. Looking at the Winix phenomenon, in which a dozen different vendors put together and ship their own Linux operating systems, all specifically constructed to be user-obsequious and Unix-hostile all in order to appease the lowered expectations of a hundred million Windows idiots, who, despite their numbes, really can still be wrong. The stupidity of the masses must never be underestimated.

  5. Basic Flaw by Kris_J · · Score: 2
    Normally, when anti-virus software installed on a personal computer (PC) detects a suspected but unknown virus that it cannot handle, it sounds an alarm and waits for human operators to fix the problem
    Umm, current anti-virus software does not detect suspected but unknown viruses (virii?). It's either known, named, blocked and dealt with or it's normal user code and ignored. You can get false positives and you can definately get false negatives, but there's no grey area. How can a computer possibly tell the difference between something a valid program has asked it to do and a virus without simply pattern matching?

    The human immune system knows what it should find and anything else is an invader. Computers aren't like this, they change all the time - installing programs, writing files. You can't just, I don't know, look for a different electron on the hard disk?

    The only thing I can come up with is that the anti-virus package CRCs every non-data/document file as it hits the hard drive, then if the file is modified I guess it might have a virus on it's hands (or it could just be a valid patch). But in that instance, it would be better for all the base systems in a network to be identical, rather than each one being slightly different - that way you could recognise a difference in one as a potential virus...

  6. Re:immune system analogy flawed by jetson123 · · Score: 2
    I think your observation that these are issues of time scales is very important, and it's at the heart of why I believe that the computer virus/biological virus analogy is flawed.

    The immune system was successful initially because it could very quickly generate new defense mechanisms that pathogens would take some time to adapt to through evolutionary mechanisms.

    Even so, after many millions of years of evolution, there are now numerous pathogens that simply aren't touched by the immune system at all; the only reason why those pathogens haven't wiped us out is because natural pathogens don't have malicious intent, and most of them have co-evolved to co-exist with us.

    When it comes to computer viruses, the insight to be concerned about is the insight of the virus writer. Unlike the biological world, where pathogens need to spend millions of years of evolution to figure out general mechanisms for avoiding the immune system, a virus writer can come up with a general purpose strategy for evading a "computer immune system" within days.

    If you want secure systems, in a world of human adversaries, the only way to build them is so that they are structurally secure or cryptographically secure, and those are engineering problems that are very different from what biological systems have faced until now.

    (As an aside, the next step of evolution of biological pathogens may be interesting. The immune system got us quite far, but it is growing old as a defense mechanism as pathogens have found general purpose ways of evading it. Perhaps its successor is our brain, as we design drugs and treatments rationally. It will be interesting to see how the pathogens will respond.)

  7. immune system analogy flawed by jetson123 · · Score: 3
    There are some broad analogies between biology, ecology, and computer systems. For example, "monocultures" are susceptible to "viruses". And many "viruses" can be detected effectively by tracking the appearance of "fragments" (of code or proteins) and correlating that with computer system damage. But, biology or not, those are ideas that any good engineer should come up with anyway.

    Perhaps the biggest point of departure is that biological systems are evolutionary, while computer systems are designed by humans, with knowledge of the possible countermeasures. That means that many immune system strategies just won't translate.

    But even more important is perhaps the observation that most biological systems (even plants and most animals) don't even have immune systems. They rely on other mechanisms for their defense, mechanisms that many engineers would probably consider "good engineering": make it hard for the viruses to get in, destroy viruses that do get in, minimize the effects of infection if it does occur, stop the spread of infection with various barriers, and have lots of redundancy. The evolutionary pressures for some animals to develop immune systems probably simply don't exist for computer systems.

    So, if you want to push the biology analogy, it may well be better to do without an immune system and to simply design good, strong systems.

  8. CyberLupus? by jabber · · Score: 2

    That's what you're suggesting, right? An anti-virus system which goes after valid code?
    Interesting. So if you have one of these AV systems in place, and apply a binary patch to some code (a'la Id DOOM patches), your changes will get clobbered. Makes sense, and I can see why it would - the checksums and size changed after all. But what you're saying is that this AV system could one day decide (or be prodded into) going after stable, unmodified code - having seen it as infected?

    As for CyberAIDS, I recall something from circa MS-DOS 5.0/6.0. I'd heard of a virus, aptly named CyberAIDS, which would do nothin more than disable your antivirus software. I don't know specifics, but it was interesting to me that it would trash NortonAV, CentralPoint, whatever, leaving you wide open to conventional bugs. I think (IIRC) that it would leave the TRS running, but disabled. Cold.

    --

    -- What you do today will cost you a day of your life.
  9. Way off-topic, but... by jabber · · Score: 3

    I know it's OT, but I thought it was cool..

    A few years ago, Wired (before they lost their edge) ran a pseudo-retrospect issue from the future, in which they reviewed the turn of the millenium from a few decades ahead. It was a prety neat diversion. Anyhoo...

    One of the main articles dealt with 'The Plague', a super-flu/AIDS/Ebola mutation that threatened to wipe out humanity. (It's striking how biologically apropos the computer virus analogy is, and how well it tracks with real life problems, solutions and latest computer development) The article was written in retrospect, like the whole issue, and in the form of interview with one of the top researchers involved in stopping the disease.

    The truly neat thing about the story, and what keeps me remembering it, was that the disease was cracked not by medically traditional means but by a mathematician who found a way of attacking the geometric form of the virus. I don't know how unconventional this approach is in virology, but the cross-polination of medicine and math really struck me.

    I'm a very strong believer in gestalt thinking, and in the fact that laws of nature from one field map remarkably well onto seemingly unrelated fields. Take Newton's Laws of Motion, abstract a bit and apply to sociology. Action-reaction. The Law of Entropy seems to hold true when placed in the context of politics. :) Somehow it all ties in to Asimov's Psychohistory too.

    This is why the article resonated with me, and why the topic of evolving virii triggered me to go OT about memetic cross-breeding.

    --

    -- What you do today will cost you a day of your life.
  10. Re:Evolving viruses. by JamesKPolk · · Score: 2

    Might it be more likely for a virus to grow if it focused not on making copies within a system, but if it focused on spreading itself?

    Perhaps scan the filesystem for email addresses frequently sent to, and send melissa-style mailings to them? Maybe search for common email programs, and infect them?

  11. Not particularly new by drox · · Score: 2

    While I'm glad to see this "news" hit Slashdot, I have to wonder why it wasn't considered newsworthy back in July. Check out the old news at sciencenews.org.

  12. The problem and the solution by drox · · Score: 2

    There is a problem ... It's called evolution.

    Yes, but the problem contains within it its own solution. Viruses evolve. So systems must also evolve. There will never be a perfectly secure system... for long. But neither will the most harmful viruses remain viable for long. Tremendous forces (unstoppable forces?) are quickly mobilized against them. The writers of malicious viruses are clever, but I doubt that they're as clever as the combined cleverness of all those who work to stop malicious viruses from doing their damage.

    Only a "truly perfect" defence will work, but no such defence exists, or even theoretically could exist. This leaves you with the "best practical" approach, which is to make things as protected as reasonably practical, and no more.

    Viruses, as they evolve, can be expected to arrive at the "most practical" approach, rather than the most damaging. Over time, this would lead to the evolution of stealthy viruses that do little or no harm to the systems they infect, use minimal resources, and may even offer some benefit (f'rinstance cool graphics, greater efficiency, protection against other viruses). A "most practical" virus-proofing scheme would not waste its time with these benign viruses, which would drive the evolution of ever more benign viruses.

  13. Evolving viruses. by Black+Parrot · · Score: 3

    I expect any time now to hear that someone has introduced a virus that evolves in the sense that a genetic algorithm evolves a solution to a problem. The internet is large enough an e-ecosystem to support millions of copies of a virus, so even if the survival rate of the variants produced by breeding and mutation was very low, there might be enough survivors each generation to evolve into a truly dangerous virus.

    --
    It's October 6th. Where's W2K? Over the horizon again, eh?

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:Evolving viruses. by Hard_Code · · Score: 3

      Polymorphic and 'mating' viruses have been around for quite a while. Polymorphic viruses adding random code to their source to 'shape-shift' and attempt to avoid any signature identification (basically sprinkling noops randomly around).

      Some viruses are actually pairs of viruses, which, when they find each other (both infect the same file or piece of memory, etc.), will join and/or manifest some new behavior (start their payload).

      Very interesting stuff actually. It's too bad that malicious virus writers have tainted the whole topic. Self-replicating, autonomous programs are very interesting.

      Jazilla.org - the Java Mozilla

      --

      It's 10 PM. Do you know if you're un-American?
  14. Re:Details on Forrest's research by Kaa · · Score: 2

    I haven't read the white papers (yet), just looked through the article. What is there seem interesting, but hardly earthshattering. This is basically a straightforward application of genetic algorithms to computer security. Matching concatenated sender's address, receiver's address, and the port is really only useful for smallish relatively self-contained networks where any non-regular "outside" connection is automatically suspicious. This wouldn't work at all for an e-commerce site, for example.

    The suggestion that no two operating systems are to be exactly alike is also an interesting one, but hardly practical. First of all, most security holes occur in applications, not operating systems per se. The dangers of monoculture are real, but purposefully avoiding popular software (1) leads to suboptimal solutions to problems (do you want to avoid Apache just because it is the most popular web server?); and (2) strongly smells of security through obscurity. Besides, think of technical support nightmares: does anybody really want to support hundreds and thousands of "slightly different" operating systems?

    I feel that the biological metaphors are somewhat overblown and could be misleading. On the other hand, they journalists like them...

    Kaa

    --

    Kaa
    Kaa's Law: In any sufficiently large group of people most are idiots.
  15. Re:Details on Forrest's research by Kaa · · Score: 2

    Hm, I do think some kind of fingerprint could be created for each compiled kernel

    The question wasn't kernel fingerprinting. Basically, it's the same old argument: if 90% of the world's computers run Windows, then a single flaw in Windows makes 90% of the world's computers vulnerable. As far as I understood, Forrest was arguing for internal differences in operating systems that would confuse a virus, or a root kit. Checksum are irrelevant here.

    Kaa

    --

    Kaa
    Kaa's Law: In any sufficiently large group of people most are idiots.
  16. Re: Artificial this, artifical that by Kaa · · Score: 2

    As someone much wiser than I once said:

    "Any significant advance in technology is indistinquishable from magic."


    That someone was Arthur Clark, and I belive the correct quote is "Any sufficiently advanced technology is indistinguishable from magic".

    If you put a caveman in front of an Imac, he's going to insist it's a deity

    Until he finds a heavy blunt object.

    Kaa

    --

    Kaa
    Kaa's Law: In any sufficiently large group of people most are idiots.
  17. Computer AIDS? by dkh2 · · Score: 3
    I was going to moderate the first 3 posts down another notch but I actually had a thought on this topic. I guess somebody else will have to wield the moderation on this one.

    So the idea is to increase security in a number of ways including (but not limited to) having each copy of the OS be unique, and having the AV package put the subject in a box and taunt it. (For those of you who haven't seen it, now's a good time to watch that Monty Python "Holy Grail" movie.)

    So how strong are the odds that such methods could inadvertently result in some sort of computer auto-immune disorder? Could our anti-virals manage to interpret the kernel as a virulent entity to be removed? Or, are we all just too smart (or lucky) for that to happen?
    "Una piccola canzone, un piccolo ballo, poco seltzer giù i vostri pantaloni."

    --
    My office has been taken over by iPod people.
  18. Nothing is foolproof by Robert+Link · · Score: 3
    If the point you are trying to make is that nothing is foolproof, I imagine the antivirus researchers would agree with you. I would be very surprised if they thought they could put together a system that would solve the virus problem once and for all. If they did, they probably wouldn't be using biological immune systems as a prototype, since biological immune systems are far from foolproof. After all, we still get sick from time to time. Sometimes we even die of disease; in fact, without outside intervention in the form of modern medicines and treatments we would die of disease a lot more often than we probably care to think about.


    However, like our bodily immune systems, these systems could serve as a first line of defense. Their advantage lies not so much in that they are universal proof against infection (they aren't), but in that against "routine" infections they shut the virus down before it has the opportunity to do any real damage, far faster than would be possible if human intervention were required. Inevitably, some infections will slip through (just as with biological immune systems), and when that happens you need outside intervention; i.e., the computer equivalent of a trip to the doctor's office.


    -r

  19. Re:Viruses / Virii by Tom+Christiansen · · Score: 2
    Virus is a Latin word. Both plurals are used, viruses is more common, but in scientific circles virii is used. It is one of those things like formulas formulae. Why does this always come up? And why is it that when it does come up, we're always afflicted with a spate of paradiorthosis? Sigh. The only thing more annoying than a correction is a mistaken one.

    I implore you, Mr Penguin, to read this FMTEYEWTK on the matter. Latin just didn't work the way you claim that it did, and neither does English.

  20. Re:!? (Was: Re:Viruses / Virii) by Tom+Christiansen · · Score: 2
    secondly, even if it is Latin, "virii" is not a correct Latin pluralization! ("Viri" would be.)
    It's really much more complicated than that. Here's the short version of that long one.

    Not all nouns that ended in -us became -i in the nominative plural. Only second declension masculine nouns did so. There are several (I can think of three) other flavors of -us nouns, none of which follows that rule.

    1. 2nd declension "irregulars", which were either full-time or part-time neuters and often of Greek descent, such as pelagus/*, vulgus/*, and the interesting case (as it were :-) of cêtus/cêtê.
    2. Nouns from the 3rd declension, like corpus/corpora, genus/genera, and tempus/tempora.
    3. Nouns from the 4th declension, like status/statûs, apparatus/apparatûs, and prospectus/prospectûs.

    So virus fails to follow the focus/foci rule for at least three different reasons:

    1. Virus was not masculine, but neuter.
    2. Virus was not a count noun, but a mass noun, like vulgus, which was also (usually) neuter.
    3. Virus probably wasn't even from the 2nd declension, but from the 4th declension.
  21. Artificial Immune System by 1984 · · Score: 2
    Is there not still an attack against this? You generate strings by concatenating the source IP, destination IP, and destination port (that's me saying 'IP', it only says 'address' in the article and they may mean something more complex). If randomly generated 'detectors' have more than ~25% contiguous content in common with a passing packet, the detector is ditched, as the traffic is adjudged to be of a routine nature. Then a detector sits there for two days, in which time it's still ditched if it matches something. After that long, you've probably had enough routine traffic to rule out it being a spurious detector that's going to give out a lot of false positivies. So now it gets another five days to see if it matches against any other traffic, which will sound the alarm. If it makes it through five days without doing that, it gets ditched because it's probably esoteric. If it does trigger, it gets kept for good.

    But if you have rough idea what's on the network you're trying to attack, and what hosts are on there, you may well have a good idea of roughly what kind of traffic is going about. If you know what hosts are there and have an idea of what traffic is (probably) there, then why not just bury a false ID somewhere in your packet?

    You could attempt to forge an ID from knowledge of the network, and fool the alarm mechanism by effectively masquerading as normal traffic. This is probably preventable by looking at exactly where the ID occurs in the packet and deciding if that's where it should be.

    Beyond that, though, what's to stop you quietly trickling a normal-looking flow of do-nothing packets through the network to a given port on a given host? Then when a detector is generated, it'll trigger on your harmless packets an get ditched. Then one day you make your packets do something nefarious, and they get overlooked, something like 'friendly fire'.

  22. Re: Artificial this, artifical that by Money__ · · Score: 2
    As someone much wiser than I once said:

    "Any significant advance in technology is indistinquishable from magic."

    If you are shown a card trick, it's 'AI' until you're shown how it's done. If you put a caveman in front of an Imac, he's going to insist it's a deity. Thus, Any AI system (and I may be going out on a limb here by using the term ANY) is also an AI system, untill you read and understand the source code.

    Now understand that automating a mundane decision process is what has made automation (in it's current industrial application) such a productivity booster. Afordabley automating physical processes (robots that weld car frames, robots that paint, ect.) has taken decads to come on-line, and continues to evolve. On this same liniage, Automating a decision process (i.e. automated trading systems) can and will also reap huge productivity rewards.

    I would agree with you that it truly is automation at work here, and there's nothing artificial about it. Programers work long and hard to coax the code into doing what they want it to do.
    _________________________

  23. Re:Artificial this, artifical that by Money__ · · Score: 3
    I would first like to say that the above poster is spot on with his comments, and I found his comments facinating. I would, however, like to pose a question to fellow/.ers concerning the terminology around "Artificial".

    IMNSHO, This term is very over used. Any time a system goes live on a network, it's deemed to be somehow "alive" by putting an Artificial in front of it. A good example of this was when IBMs deep blue beat the a grand master at chess (Kasparoff(sp?), it was hyped as a "giant leap forward for Artificial inteligence".

    There's nothing artificial about it. It was the result of many of the greatest programs and chess master toiling for years to pull the project off.

    Its more acurate name would be Automated Intelegance.

    And this 'Artificial Immune System' is also just and automated series of self updating decisions. Taking the human out of the loop doesn't make it artificial, it just makes it more cost effective.
    _________________________

  24. Details on Forrest's research by sloth+jr · · Score: 3
    Stephanie has some interesting intrusion detection methods. Rather than looking at signatures of data presented in an attack, her approach analyzes sequences of system calls used and compares those sequences against known "correct" behavior (for that particular program). It's strongly based on the genetic notion of self. Surprisingly good results with few false positives. But don't take my word for it - go to her site and read the white papers!

  25. Not not unique (the big picture) by codemonkey_uk · · Score: 2
    Most people still use a stock kernel from their distribution.
    ...
    ...a lot of the code will come out the same. It's not like the compiler puts some kind of unique fingerprint on the kernel you build.

    I don't think thats what the author means. I think that hes talking about other common components, like web browsers, and email clients, which is what most modern viri exploit.

    At the moment a viri author can make huge assumptions like, its a win32 os with Outlook, and winsock, and use small exploits in each of them to spread the virus.

    The linux kernal may be mostly the same accross most intalls of a popular disribution, but the differences stack up when you consdier all the other permutations of mail client & server and html renderer/http server, java VM, etc, etc, it becomes very hard to create a virus that will work with them all!

    Thad
    --

    Thad

  26. Sexual Reproduction of Computer Virii by Da+Penguin · · Score: 3
    Currently, in the scientific sense, computer viruses reproduce asexually. There is one parent involved and it produces an exact copy. But just like in science this is weak as there is no variation.

    Theoretically it should be possible to create viruses that reproduce sexually. There are two parents involved and the offspring shares traits of both parents. Have data structures similar to chromosomes that hold traits of the virus such as where it is stored, what it does, how it reproduces, its lifetime...

    The viruses would then go around looking for other viruses of the same basic type (species), mix together the chromosomes and create varied offspring. You could even have designated virus breeding grounds.

    In the programming side of this, someone would create the basic structure (species) of a virus and a way to insert traits. Virus writers would then come around and specify the traits they want, and send it out (either to a "friend" or to a possible designated virus breeding ground).

    This would create a new type of virus. One that will eventually become so varied that any in that species can not really be removed easily.

  27. Security by Spider[DAC] · · Score: 2

    What bothers me with this sort of approach is still not the attack on _my_ box, but what I will recive from the network. This antivirus cluster, how will one know that is not infected in itself? That would be one of the major security holes in this situation. Where to strike best when wanting a major payload cross the net? Yes, there. Make it ship 'antivirus' fixes that strike at some other code, or that are the virus itself. no system is ever secure in a network, and those systems will be the ones with the highest amount of crack attempts around, since the 'price' would be highest if they were cracked. (largest spread of your virus) well, more rambles... boy am I bored at work today. :)

    --
    I didn't do this, now did I?