Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Software Bug Science Technology

Fixing Bugs, But Bypassing the Source Code 234

shreshtha contributes this snippet from MIT's Technology Review: "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, his group has developed software that can find and fix certain types of software bugs within a matter of minutes." Interestingly, this software doesn't need access to the source code of the target program.
This discussion has been archived. No new comments can be posted.

Fixing Bugs, But Bypassing the Source Code

Comments Filter:
  • by SnarfQuest ( 469614 ) on Thursday October 29, 2009 @07:17PM (#29918169)

    If MS included this in Windows, you'd never get to see the login screen because the CPU would be so busy fixing bugs.

  • clearview (Score:4, Insightful)

    by wizardforce ( 1005805 ) on Thursday October 29, 2009 @07:22PM (#29918219) Journal

    If the programs that Clearview is monitering/patching are the target, wouldn't it make sense for an attacker to focus on Clearview first? Perhaps even alter its function to serve the purposes of the attacker instead of the user. Why attack the programs it is patching when you could hit Clearview and gain the ability to hijack everything it is patching?

  • by MobileTatsu-NJG ( 946591 ) on Thursday October 29, 2009 @07:45PM (#29918429)

    If MS included this in Windows, you'd never get to see the login screen because the CPU would be so busy fixing bugs.

    Geez... imagine the sheer volume of .CONF files a Linux user would have to waft through just to get this to check a distro for bugs.

  • No Silver Bullet (Score:3, Insightful)

    by gweihir ( 88907 ) on Thursday October 29, 2009 @07:52PM (#29918487)

    There has been no silver bullet in Software Engineering, not for attacker and not for defenders. I highly doubt this is one. From the article, I gather that this is actually some kind of macro Design by Contract based self-fixer. This means it is at best just as good as the people writing the contracts. It will however fail for more complex contracts, which are needed frequently in practice, unless it can get over all sorts of theoretical and practical limitations. And it will make behavior non-predictable, since your software could be patched at any time.

    I would say this is a pretty bad idea, both from a security point of view and from a data-integrity and software reliability point of view.

  • by billcopc ( 196330 ) <vrillco@yahoo.com> on Thursday October 29, 2009 @07:52PM (#29918493) Homepage

    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

    Yes. It takes us 5 seconds to an hour to actually come up with the fix, the remainder of the month is spent in bureaucratic hell - sitting in a trouble ticket queue, sitting in a verification queue, sitting in a QA manager's inbox, sitting with the communications team.

    Clearview, if it does what it says on the tin, only addresses the 5 second problem. Any "sane" dev shop would still run the resultant patch through the many cogs and loops of modern software management. You won't get your hole patched any quicker, you'll just have shifted the coders' attention away from your own app's bugs, and onto Clearview's bugs. Net gain: less than zero.

    Theoretically and conceptually, it's an interesting tool (you know, like Intercal). It just doesn't really fit in the industry, IMHO.

  • How about (Score:5, Insightful)

    by raddan ( 519638 ) * on Thursday October 29, 2009 @08:02PM (#29918583)
    "Entscheidungsproblem [wikipedia.org]". You'd think a professor of CS at MIT would have heard of it.
  • by Wonko the Sane ( 25252 ) * on Thursday October 29, 2009 @08:19PM (#29918795) Journal

    The fiendish prof announced that he will run that code through itself. Whatever letter grade it spits out will be his thesis grade. He got a D. He begged and cried and threw a hissy fit and wangled a B and scraped through the degree.

    Fiendish? What could possibly be more fair and objective than making him eat his own dogfood?

  • by mattack2 ( 1165421 ) on Thursday October 29, 2009 @08:24PM (#29918885)

    "Fiendish" prof? If this is even a true story, it rates a "duhh!" Of course he should have ran his analyzer on his own code..

  • by KillerBob ( 217953 ) on Thursday October 29, 2009 @08:43PM (#29919079)

    Either that or put in an author check that automatically spits out an A+ if it detects that the author of the code was himself....

  • Re:How about (Score:3, Insightful)

    by Migala77 ( 1179151 ) on Thursday October 29, 2009 @09:17PM (#29919369)

    ClearView doesn't have to prove that a program is either correct or incorrect. It only has to detect certain types of bugs, and fix them. There is no guarantee your program is correct after running it.

    And personally I can't think of any cases where a buffer overflow is part of a correct program...

  • by Missing_dc ( 1074809 ) on Thursday October 29, 2009 @09:33PM (#29919485)

    Me-thinks someone sounds jealous they did not think of it first.

  • thesis grade? (Score:2, Insightful)

    by pigwiggle ( 882643 ) on Thursday October 29, 2009 @09:45PM (#29919589) Homepage

    Hmmm. Sounds like some CS urban legend. Never heard - not once - of a "thesis grade". Pass, no-pass, conditional pass. I didn't receive a grade myself. Just a diploma. Be great for those kind of folks that put GPA's on their CV, though.

  • by lgw ( 121541 ) on Thursday October 29, 2009 @09:47PM (#29919611) Journal

    But was it a source patch, or a binary patch? A binary patch is at best a dirty work-around, becuase the bug will keep reappearing in subsequent released of the software (perhaps even in needed patches for other issues).

  • Re:clearview (Score:4, Insightful)

    by BitZtream ( 692029 ) on Thursday October 29, 2009 @10:09PM (#29919769)

    Really ... they know what they are doing? Then why is it called:

    Research

    If they knew what they were doing it wouldn't really be research would it.

    ALL software has bugs. Adding more software to fix bugs ... introduces more bugs.

    This doesn't just apply to software, it applies to just about everything, right down to the atoms that make of the universe from our perspective. As far as we can figure, the universe itself will break down to a state that will no longer support life as we know it. Adding more layers of protection falls under the laws of diminishing returns, software, hardware, bridges, cars, or molecules.

  • by Mike610544 ( 578872 ) on Thursday October 29, 2009 @10:15PM (#29919805)

    It will basically find average the number of lines per function, ratio of code to comment, and other such metrics and give a letter grade to the code.

    //
    // Are
    // two
    // numbers
    // equal?
    //
    int is_equal(int a, int b) {
    if ((a = b)) {
    return 1;
    }
    return 0;
    }
    // This
    // function
    // only
    // takes
    // up
    // 6
    // lines

    Do I get an A?

  • by Jah-Wren Ryel ( 80510 ) on Thursday October 29, 2009 @10:32PM (#29919933)

    Being graded on the quality of the ideas in the thesis and not the implementation?

    Why even implement then? Just write a paper and be done with it.

    In other words, if the MSc thesis requirements include an implementation then clearly the quality of the implementation is going to be evaluated.

    If that guy ever gets a real job outside of academia the lesson he learned from that singular experience will probably define his career.

  • Re:How about (Score:5, Insightful)

    by eggnoglatte ( 1047660 ) on Thursday October 29, 2009 @10:36PM (#29919969)

    Except that you are making two mistakes:

    - the Entscheidungsproblem refers to the problem of finding a general solution that will determine for all possible programs whether or not they are correct. This is an undecidable problem. However, this does NOT mean you can't find a solution for certain subclasses of programs, or a program that finds certain kinds of flaws.

    - also, you already know there is an error (otherwise the program wouldn't be triggered), and the type of error (e.g. NULL pointer, array index out of bounds etc.) . That makes much easier again than the general Entscheidungsproblem.

  • Re:How about (Score:4, Insightful)

    by blueg3 ( 192743 ) on Thursday October 29, 2009 @11:22PM (#29920255)

    Your claim to expertise is having read a single popular book, but you can't spot the common error of claiming because a general solution can't exist, no specific solution can exist?

  • Re:How about (Score:4, Insightful)

    by marciot ( 598356 ) on Thursday October 29, 2009 @11:51PM (#29920411)

    Car analogy - Clearview isn't figuring out whether the whole car is perfect (in the real world it's 100% likely to be imperfect anyway ;) ), all it does is help detect and fix the holes in the exterior.

    I ran this program on my car and all was good until I went to fill up the gas tank. Bloody hell, Clearview got rid of the gas tank orifice!

  • by Alpha830RulZ ( 939527 ) on Friday October 30, 2009 @12:27AM (#29920615)

    paff. People have been doing this with SuperZap on mainframe code for 30 years. Kids.

    Now get off my lawn.

  • Re:I sure wouldn't (Score:2, Insightful)

    by pinkushun ( 1467193 ) on Friday October 30, 2009 @02:16AM (#29920991) Journal

    That would obviously bring SkyNet into existence!

  • Re:How about (Score:3, Insightful)

    by mmcdouga ( 459816 ) <mmcdougaNO@SPAMsaul.cis.upenn.edu> on Friday October 30, 2009 @08:14AM (#29922341) Homepage

    Even if the modified program fails to crash and fails to trigger the anomaly detector, there's no way to prove that the program still works as intended. For example, suppose the fix of an overflow also elides the initialization of some other variable, which results in data corruption? How is that better than an overflow/crash?

    The approach is valuable even if you can't prove the program still works as intended (which is impossible in general). The goal is to have a program that works a bit better than it would without ClearView.

    For example, the unmodified web server may have a buffer overflow that can lead to the system being hijacked. ClearView modifies the program so that a connection is prematurely dropped, but hijacking is prevented. Neither behavior was what was the programmer intended, but we've taken a serious bug and replaced it with a minor bug. That's valuable.

    The real issue is whether the modifications do in fact make the program work a bit better. Rinard's experiments indicate that they do, at least for the applications used in the experiments.

  • Re:How about (Score:3, Insightful)

    by slimjim8094 ( 941042 ) on Friday October 30, 2009 @12:36PM (#29925467)

    You (perhaps) joke, but this is a real problem. In context, a bug in one program would be a feature in another...

    This is a trivial example, but imagine a program designed to segfault: int main() { char* p=0; char x=*p; }.

    How do you fix this? What's correct? Do you assign p to a safe value? If so, what? Do you simply remove the assignment of x? What about anything downstream that uses x? What if you wanted it to crash? What if p was assigned by a function (scanf)? What should it be?

    Without knowing the purpose, intent, and processes of the program, this simple bug is unfixable. A human could say "I meant to assign p" or "scanf shouldn't be giving me null..." or even adding a conditional that spits out an error message and continues.

    In a sense, these programs fail because their behavior is undefined. And it's undefined for a reason - there's many states it could be, and one it should be, and it's not matching up.

Remember to say hello to your bank teller.

Working...