Two new free testing tools can help Windows programmers build better security into their C and C++ applications. The tools enable implementation of Microsoft's SDL (Security Development Lifecycle) process, for injecting security and privacy provisions into the development lifecycle as opposed to testing during pre- and post-deployment of an application. The tools are available for free download from the Microsoft download center.
Both tools provide easy integration with TFS 2008 and the SDL Process Template for VSTS 2008.
BinScope Binary Analyzer integrates directly into the Visual Studio 2008 IDE. It analyzes binary code to validate adherence to SDL requirements for compilers and linkers. It also verifies use of strong-named assemblies and up-to-date build tools.
BinScope checks that SDL-required compiler/linker flags are being set, strong-named assemblies are in use, and up-to-date build tools are in place.
BinScope also reports on dangerous constructs that are prohibited or discouraged by the SDL (e.g. read/write shared sections and global function pointers).
To download, see BinScope Binary Analyzer.
MiniFuzz File Fuzzer is a Visual Studio 2008 add-in that implements the fuzz testing technique. Testers check application behavior by parsing files that have been deliberately corrupted. Security tests are applied to take code through different flow patterns and identify whether resulting crashes should be investigated as potential application security risks.
This tool creates multiple random variations of file content and feeds it to the application to exercise the code in an attempt to expose unexpected application behaviors.
Security Development Lifecycle team also provides:
For more information about these tools and paper, see Microsoft Security Development Lifecycle (SDL).
Bruce D. Kyle ISV Architect Evangelist | Microsoft Corporation