OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Jason Coombs (jasonc_at_science.org)
Date: Tue Feb 04 2003 - 15:47:58 CST

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    Three different rebasing scenarios:

    (1) other people's compiled code
    (2) other people's source code
    (3) your own code

    Points:

    A. There are better things to do in the case of (2) and (3) than rebase the
    binary.

    B. In the case of (1) rebasing offers some value in certain circumstances,
    particularly if you have access to the source (2) -- in which case point A
    applies and you shouldn't bother with rebasing somebody else's binary.
    Rebase the entire build, and throw in a boatload of NOPs and other
    spaghetti. The less predictable your binaries are from the perspective of a
    remote attacker, the better.

    C. Remember the threat: uncontrolled/arbitrary remote procedure calls. Don't
    let them happen in the first place. Authenticate every caller. Filter and
    block all anonymous callers. Stop the bits from entering your box (or
    process space) in the first place.

    D. Don't allow compiled code to execute on your box unless it has been
    authorized to execute in advance based on its hash code.

    E. If code is vulnerable, don't use it.

    Jason Coombs
    jasoncscience.org