Slashdot Mirror


Google NativeClient Security Contest

An anonymous reader writes "You may remember Google's NativeClient project, discussed here last December. Don't be fooled into calling this ActiveX 2.0 — rather than a model of trust and authentication, NaCl is designed to make dangerous code impossible by enforcing a set of a rules at load time that guarantee hostile code simply cannot execute (PDF). NaCl is still in heavy development, but the developers want to encourage low-level security experts to take a look at their design and code. To this end Google has opened the NativeClient Security Contest, and will award prizes topping out at $2^13 to top bug submitters. If you're familiar with low level security, memory segmentation, accurate disassembly of hostile code, code alignment, and related topics, do take a look. Mac, Linux, and Windows are all supported."

7 of 175 comments (clear)

  1. x86 in the browser? Ugh... by gravos · · Score: 5, Insightful

    I'm sorry, I just don't buy this whole thing. x86 in the browser? Ugh... Because all that we need is to further promote an archaic instruction set that won't die because of all the pre-existing code compiled for it. An instruction set that was finally starting to loosen its grip as the industry worked toward more abstract solutions.

  2. dangerous code impossible? by thermian · · Score: 5, Insightful

    I doubt that. More likely they intend to make its detection and negation easier.

    After all, the best language man can devise can only work as well as the coders who utilise it. If they are forced to cut corners in order to meet deadlines, errors will creep in, and we all know the urge to be first to profit is a prime reason for such things.

    --
    A learning experience is one of those things that say, 'You know that thing you just did? Don't do that.' - D. Adams
    1. Re:dangerous code impossible? by Cyberax · · Score: 4, Insightful

      Nope. NaCl is designed to be secure, read the PDF (I read it some time ago).

      It's not really that hard, VMWare/VBox does something like this for 10 years now.

      There might be some subtle race condition bugs, but so far it looks very well thought out.

  3. Proofs are only as good as the implementation. by Anonymous Coward · · Score: 5, Insightful

    Beware of bugs in the above code; I have only proved it correct, not tried it.
    - Knuth

  4. This is like the opening of a monster movie by Sloppy · · Score: 3, Insightful

    where the scientist is saying he's covered all the bases, and nothing can go wrong.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  5. 2^13? by Moraelin · · Score: 4, Insightful

    Admittedly, it's after past 1AM, so maybe my maths stopped working by now, but isn't 2^13 about 8000 dollars for the grand prize? It seems a bit low for all the work of basically reviewing their code and concepts.

    Hostile code disassembly? If it were that simple to disassemble someone else's code and automatically prove that it can't do anything wrong -- including by having security holes exploitable by a third party -- forget the browser, we'd have it standard in the OS or in the last step of make/ant/whatever. We could all stop worrying about antiviruses (who, in turn, would stop needing signatures and heuristics updated all the time anyway), reviewing code by hand to see if all buffers are checked, etc. Just run the magic utility and it'll tell you.

    I'm willing to bet that at least the antivirus makers have tried that before, you know, what with all of them offering some forms of heuristics by now, and none of them got it past the level of hit-and-miss. More miss than hit, in fact.

    Not saying that Google couldn't have got some genius that actually made it work, but at the very least it's not going to be a trivial job digging through all their cases to check if they really checked all possible attack vectors.

    And 8192 dollars doesn't really seem to be much incentive for doing that work.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:2^13? by Cyberax · · Score: 3, Insightful

      NaCl just does not check that there's no buffer overflows, instead it isolates the program to make sure that buffer overflows do not cause problems.

      I.e. you can can overflow, use dangling pointers and cause all sorts of access violations to your heart's contents inside the NaCl sandbox. But it won't cause a security breach.