Technology Review - Published By MIT
Advertisement

Software That Fixes Itself

A new tool aims to fix misbehaving programs without shutting them down.

By Erica Naone

Thursday, October 29, 2009

smaller text tool iconmedium text tool iconlarger text tool icon

Martin Rinard, a professor of computer science at MIT, is unabashed about the ultimate goal of his group's research: "delivering an immortal, invulnerable program." In work presented this month at the ACM Symposium on Operating Systems Principles in Big Sky, MT, a group of MIT researchers, led by Rinard and Michael Ernst, who is now an associate professor at the University of Washington, developed software that can find and fix certain types of software bugs within a matter of minutes.

Credit: Technology Review

When a potentially harmful vulnerability is discovered in a piece of software, it takes nearly a month on average for human engineers to come up with a fix and to push the fix out to affected systems, according to a report issued by security company Symantec in 2006. The researchers, who collaborated with a startup called Determina on the work, hope that the new software, called ClearView, will speed this process up, making software significantly more resilient against failure or attack.

ClearView works without assistance from humans and without access to a program's underlying source code (an often proprietary set of instructions that defines how a piece of software will behave). Instead, the system monitors the behavior of a binary: the form the program takes in order to execute instructions on a computer's hardware.

By observing a program's normal behavior and assigning a set of rules, ClearView detects certain types of errors, particularly those caused when an attacker injects malicious input into a program. When something goes wrong, ClearView detects the anomaly and identifies the rules that have been violated. It then comes up with several potential patches designed to force the software to follow the violated rules. (The patches are applied directly to the binary, bypassing the source code.) ClearView analyzes these possibilities to decide which are most likely to work, then installs the top candidates and tests their effectiveness. If additional rules are violated, or if a patch causes the system to crash, ClearView rejects it and tries another.

Story continues below


ClearView is particularly effective when installed on a group of machines running the same software. In that case, what ClearView learns from errors on one machine is used to fix all the others. Because it doesn't require access to source code, Rinard says that ClearView could be used to fix programs without requiring the cooperation of the company that made the software, or to repair programs that are no longer being maintained. He hopes the system could extend the life of older versions of software, created by companies that have gone out of business, in addition to protecting current software.

To test the system, the researchers installed ClearView on a group of computers running Firefox and hired an independent team to attack the Web browser. The hostile team used 10 different attack methods, each of which involved injecting some malicious code into Firefox. ClearView successfully blocked all of the would-be attacks by detecting misbehavior and terminating the application before the attack could have its intended effect. The very first time ClearView encounters an exploit it closes the program and begins analyzing the binary, searching for a patch that could have stopped the error.

Comments

  • Is this for Real? (note to author)
    Wouldn't a break through like this have academic research associated with it, like articles in famous journals? Why weren't any cited in this article, at minimum state the journal name.
        The reason I say this, is because this breakthrough is so astounding (accessing bits and applying patch via AI) that one would think it is make believe.
    Here is a note to the author, any time something seems to unbelievable, or way out of the ordinary, try and give the readers some creditable sources to help in making the story more believable.
    That aside, I really like the technology and think it has great promise especially for military applications that need to always run! 
      Thanks
    Dr. Brian Glassman
    Rate this comment: 12345

    briang1621
    10/30/2009
    Posts:124
    Avg Rating:
    4/5
    • Re: Is this for Real? (note to author)
      I was also somewhat troubled by the lack of references to published research in this article. For those who are interested, here's a link to a conference paper on the system: http://people.csail.mit.edu/rinard/paper/sosp09.pdf
      Rate this comment: 12345

      Falaina
      10/30/2009
      Posts:1
      Avg Rating:
      4/5
    • Re: Is this for Real? (note to author)
      Yes its called OS/2. IBM introduced it in c. 1985 but Microsoft killed it because it put Windoze to shame as it worked too well. IBM eventually gave up the struggle as it didn't make them any money because it doesn't crash and as it is multi-threaded is immune to viruses because if the virus killed one thread the others took over and the virus was extinguished after one generation.

      IBM made money by fixing all the glitches with Windoze which they're still doing today ...

      My husband is an OS/2 nut so I know the whole story..
      Rate this comment: 12345

      cathy247
      11/03/2009
      Posts:1
      Avg Rating:
      2/5
    • Re: Is this for Real? (note to author)
      I think is impressive to get a complete system to actually do this in a running system.

      Looking at the software and detecting the anomalies by an attack is like building an software profiling database noticing an altered behavior. When detecting changes in stack, pointers and statements the situation is less complicated than looking at the whole program. At this level the is to reorganize the instructions to be more robust, without breaking the overall design. It's lika an recompilation of intruction flow from the orignal compilation. And at this level there would be a lot of approches to patch a program that would apply in a wide range of attacks.
      Rate this comment: 12345

      lteliasson
      11/09/2009
      Posts:1
  • What's the next step?
    I remember hearing about IBM's work on "self-healing" software several years ago, but never heard anything about their software repair efforts. I'm glad the ClearView developers have made progress on this idea.

    I'd love to know what this software could do with patches generated randomly, by neural nets or genetic algorithms. Could it analyze software binaries that are known to work and make them faster?

    Post-compiler optimization?  That could be very interesting.
    Rate this comment: 12345

    davistv
    10/31/2009
    Posts:1
    Avg Rating:
    4/5
  • Reference for Article
    Some posters stated there was a lack of references for the self-repairing software. Here is a link to a paper published on the research:
    http://people.csail.mit.edu/rinard/paper/sosp09.pdf
    Rate this comment: 12345

    misswebbie
    10/31/2009
    Posts:1
    Avg Rating:
    5/5
  • and if it got in the wrong hands?
    this seems like a pretty big step.  I just have to wonder what happens when somebody turns it around.  Seems to me like it would be very simple to turn this program around and make it quickly destroy a binary, or slip malicious code in at the binary level that would be virtually invisible to the user.  Hate to be Mr. Negative, but it just seems like it could be pretty powerful for good and bad...

    BTW, so when does Skynet come online?
    Rate this comment: 12345

    digbob
    10/31/2009
    Posts:1
    Avg Rating:
    4/5
  • Not yet...
    Just remember that we're talking about "Artificial" intelligence, and dealing with entirely new problems and related heuristics to solve them is not a trivial issue.  An untrained automated healer has the same potential to do damage as the original defect, does it not?
    Rate this comment: 12345

    RickBullotta
    10/31/2009
    Posts:1
    Avg Rating:
    5/5
  • [no subject]
    This is very interesting and all, but to be honest, it would only slow/stop script kiddies. The 'advanced' hackers (I hate this word) would eventually find a way to bypass this software, there are numerous ways.

    I can think of a few:

    If run on a local machine, hook the scanning functions and whenever called.. return "nothing has changed"

    If on a remote target, depending on how quickly "ClearView" can detect an exploit, your payload could jump into ClearViews address space and modify it, then proceed.

    Bottom line is this, if there's a will, there's a way.

    On the other hand, I do find this research very interesting and a step forward, but it wont be THE answer. Honestly, I don't believe it's possible to stop "hackers".

    We not only have more time, than the software developers, but the WILL to tinker and break. As well as the HUGE community sharing ideas.

    Many > few
    Rate this comment: 12345

    tyme
    10/31/2009
    Posts:1
    Avg Rating:
    5/5
  • Just how does ClearView define an error?
    How does ClearView define an "error"? If I could get it to think a login or DRM verification failure is an error, would it automatically "fix" it for me? ClearView could be the ultimate hackers tool...
    Rate this comment: 12345

    sentee
    11/01/2009
    Posts:1
    Avg Rating:
    5/5
    • Re: Just how does ClearView define an error?
      A possible method. The OS generates the error or fault  depending of the abnormal condition. In a Rules based Expert System of this nature a rule for each OS generated error could be created to reflect the characteristics of the error. The rule is aware of the proper instruction sequence and the data flow. Once an error is thrown, a Analysis engine compares the machine/program generated data against a normal data example. Depending on the Knowledge Rule the data can be modified or a error message can be generated.
      Rate this comment: 12345

      jkeithbrown
      11/03/2009
      Posts:1
      Avg Rating:
      3/5

Log In

Forgot your password?     Register »
Advertisement
Advertisement
Advertisement
Subscribe to Technology Review's daily e-mail update. Enter your e-mail address

TECHNOLOGY RESOURCES
Advertisement
MIT Massachusetts Institute of Technology © 2010 Technology Review. All Rights Reserved.