December 2, 2002
In This Issue
Etcetera
    Tech Talk

    An eEye Guide to Internal Software Auditing

    In a previous Versa newsletter, we featured an article about some of the techniques eEye’s research team uses to discover vulnerabilities in existing software products. By illustrating how a general user can identify the weak points in software, we were able to show software makers where to first look when starting to reinforce and secure their products. In this article we’d like to offer a glimpse into how eEye performs security auditing during the development of our software, including some key things to keep in mind while testing and a few tips for developing a test plan.

    As software auditors, you should begin by examining the state of your environment before you introduce the software product in question. Record the state of the file system, registry, process table, and other utilized resources available for the software product from the operating system. Next, install the software application and perform the necessary actions so that the package is functional and operating. After installation is complete, record the state of the file system, registry, process table, and other utilized resources again. Compare this record with the previous analysis so that you can build a list of any modifications that were made to the system by introducing the application.

    Once complete, organize this list of modifications in a way so you can begin mapping out points of input. A point of input is simply a channel that you can use to communicate with a component of the introduced application. A point of input could be a running service, a listening port, a library, an interface or any other resource that is utilized to get information to the core application being audited. After mapping out all the points of input you can begin to build a test plan.

    There are 6 key points to keep in mind when auditing your software:

    • Older untested components of a package are usually highly vulnerable if they contain unfamiliar or rarely used features.
    • New components that incorporate many new features and are rushed to awaiting customers are usually highly vulnerable.
    • The larger the project (i.e. high number of components), the more unmanageable the QA process becomes; therefore large applications are usually highly vulnerable.
    • Applications containing features that are very difficult to develop and implement are likely vulnerable.
    • If a component of the software is difficult to create for the developer, it is most likely very difficult for the QA engineer to properly test.
    • If the person that created the software does not prioritize security, or does not understand the basics of writing secure code, the software they create is most likely highly vulnerable.
    During your testing you should incorporate a series of monitoring technologies to scrutinize resource consumption, application faults and other alterations in your environment. Having access to this information will allow you to notice and correlate more subtle flaws in your target software. The more aware you are, the more you will notice; sometimes the biggest security holes in the world can only be seen for a split second.

    Since you may be limited in the time available to perform the security auditing, you may consider developing automated technologies to handle such tasks. Automated and reusable test scripts will help you discover flaws that you may otherwise overlook, and will allow you to test many more pieces in the same amount of time. For those components that cannot be confidently tested using automated scripts, stick to a test plan of manual audits.

    Vulnerabilities in software applications are among the most exploited, most unpredictable, and most widespread of all network security problems. Application security auditing is rarely a rewarding process, but is an absolutely necessary one in order to keep the users of your software secure and happy.

    Riley Hassell
    Security Research Associate
    eEye Digital Security

    News & Articles
    The following articles represent the opinions of their respective authors. They do not necessarily represent the opinions of eEye Digital Security.

    Network World - COMDEX Panel: Accept the Net is Vulnerable to Attack
    "Companies and home Internet users need to accept that the global computer network is inherently vulnerable to attacks, worms, trojans and anything else miscreants want to unleash on it, and then accept that securing the system is everyone's responsibility, a panel of security experts said Monday at the Comdex trade show." Full Article

    Washington Post - U.S. Government Flunks Computer Security Tests
    "The U.S. government has earned failing marks for computer security for the second year in a row, according to a report released today by a congressional oversight committee." Full Article

    BBC News - Hack Attacks on Rise in Asia
    "Hackers based in Indonesia and Malaysia have been launching digital attacks on neighboring countries, say computer security experts. October, the month in which a bomb exploded on the Indonesian island of Bali, has seen heightened cyber attacks in South East Asia and Oceania, according to a report from security firm mi2g." Full Article

    PC World - Microsoft Refutes Reports of Windows Flaws
    "Microsoft is responding to a report published last week by London-based security intelligence firm Mi2g that claims the Apple Macintosh operating system and certain varieties of Unix are less vulnerable to attack than the popular Windows and Linux operating systems." Full Article

    Reader Q&A

    Q: We're having performance issues with our web applications - what should we do?

    A: Assuming you've taken all the right steps in terms of checking for vulnerabilities with applications such as eEye's Retina Network Security Scanner, making sure systems/applications are all properly patched, and making sure there aren't any obvious hardware related issues adversely affecting the applications, there are a variety of tools that can help you hone in on potential application issues.

    Without more details on the application, configuration, and infrastructure, you may want to start by running a network traffic analysis product like eEye's Iris to perform some quick forensics on the traffic the application is receiving. Iris will enable you to visually monitor and reassemble all traffic at a network level and watch statistical information on the bandwidth and packet size distribution. This enables you to determine if the requests via HTTP or the network traffic are a contributing factor to poor performance.

    Another excellent product designed to improve performance and reliability of web applications is IntegriTea from a company called TeaLeaf. Similar to Iris in terms of its visual monitoring ability, IntegriTea tackles the problem from the end-users perspective by capturing and monitoring what the real user does and sees, recreating the problem in the context in which it occurred, and ultimately correlating the problem back to the user and where it originated.

    Give these products a try, they'll undoubtedly save you endless hours trying to recreate and dissect the problems on your own.

    Have a question you would like answered? Send it to versa@eEye.com, and win an eEye t-shirt if we select your question for an upcoming newsletter.

    Announcements

    Macromedia ColdFusion/JRun Remote SYSTEM Buffer Overflow
    Release Date: November 12, 2002
    Severity: High (Remote SYSTEM Level Code Execution)

    Description: Macromedia JRun and ColdFusion IIS ISAPI handlers contain various heap overflows when handling URI filenames. By supplying a filename over 4096 bytes in size, heap memory can be overwritten. Various structures can be overwritten in the process heap to gain control of the remote IIS process with SYSTEM level access. This makes it rather simple for attackers to remotely compromise Microsoft IIS web servers running vulnerable versions of Macromedia Coldfusion or JRun. Full Article

    New Release: Enterprise Vulnerability Assessment Solution
    eEye has introduced the first truly end-to-end enterprise-ready vulnerability assessment and remediation management solution, through a seamless integration of its best-in-class Retina® Network Security Scanner technology with the sophisticated REM™ Remote Enterprise Management system. Designed specifically for customers with large and distributed networks, eEye's solution provides a complete vulnerability assessment and remediation process that enables organizations to proactively control and manage the state of network security in a proactive and efficient fashion. This solution gathers security vulnerability events from Retina scanners positioned throughout the enterprise and reports on these issues into a centralized management system. From a central console, these events can be automatically analyzed and delegated to IT staff for prompt remediation. Full Article

    Retina Wins the Network World 'Best of the Tests' Award
    Retina, bests the security software category because of its speed and accuracy in pinpointing security holes in an enterprise network and for its intuitive management interface and its ability to fix some vulnerabilities when they are pinpointed. Full Article

    New Version - Retina 4.9.32
    This version includes two new valuable audits: "No Remote Registry Access Available" and "System Not Responding on Forced Scan".

    These audits are used to notify the user when they do not have administrative privileges on a remote system that is being scanned. Several Retina checks rely on administrator level rights, but in the case when the user does not have these privileges, Retina will identify that the machine may not be getting a full audit. Full Article

    Etcetera

    Top 10 Vulnerabilities of the Month for November 2002
    More

    http://www.wired.com/news/conflict/0,2100,55967,00.html">More

    HOW TO SUBSCRIBE
    To subscribe to this and other eEye newsletters, please visit: http://www.eeye.com/html/resources/newsletters/subscribe.html

    FEEDBACK
    The eEye newsletter staff welcomes any comments, questions or suggestions from our readers. We hope that you will not hesitate to contact us with any feedback you may have. Send all feedback to versa@eeye.com.

    DISCLAIMER
    The information within this newsletter may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties with regard to this information. In no event shall the author be liable for any damages whatsoever arising out of or in connection with the use or spread of this information. Any use of this information is at the user's own risk.

    NOTICE
    Permission is hereby granted for the redistribution of this newsletter electronically. It is not to be edited in any way without the express consent of eEye. If you wish to reprint the whole or any part of this newsletter in any other medium excluding electronic medium, please email versa@eeye.com for permission.