FxCOP 10.0(ppt)

advertisement
SECURITY TOOLS FOR
SOFTWARE DEVELOPMENT
FXCOP 10.0
David Angulo Rubio
OVERVIEW
Security Development Life Cycle Tool
 What is FxCOP
 Why use FxCOP
 Code Analysis
 Rules checked by FxCOP
 Sample rule
 Possibilities
 Using FxCOP
 Conclusion

THE SECURITY DEVELOPMENT LIFECYCLE
(SDL) AND FXCOP
Security best practices in Microsoft
 Provides guidance within established
development processes

Design considerations
 Creating effective security plans
 Leveraging tools across the
development cycle


Better then simply hunting for bugs
Requirements
Design
Implementation
Verification
Release
Response
FXCOP
Began as an internal Microsoft Solution
 Enforces adherence to .NET Framework Design
Guidelines
 Available free

http://www.microsoft.com/download/en/details.aspx?id=6544.

Uses “Introspection”
Faster analysis
 Multi-thread analysis

Contains over 200 rules
 Ability to create custom rules

FXCOP
A static code analysis tool that examines
managed assemblies for design and code
correctness issues
 Console and graphical applications that manage:

Targets (items for analysis)
 Rules (checks to execute)
 Messages (feedback from rules)


A general infrastructure for writing checks
against managed code
WHY USE FXCOP
Do you:
 Have a well defined coding standards
 But have no way of enforcing those
standards?
 Spend much time writing code
 But even more time editing code?
 Want to have your applications run smoothly
 But seem to always be held back by errors?
 Then…FxCop is for you!

CODE ANALYSIS
Unlike traditional analysis tools (Lint for C),
FxCOP does not analyze source code. Instead, it
analyzes the binary Common Intermediate
Language (CIL) generated by the .NET compilers
and persisted in the .NET assemblies (EXE and
DLL files). Analysis is enable by the rich
metadata that is part of the CIL.
 By analyzing assemblies directly, FxCOP avoids
being tied to any particular programming
language: it will work without modification
against C#, VB.net, and potentially any other
.NET languages

RULES
The tool is designed to check .NET code for
violations of a wide range of programming rules
and conventions. The rules included with FxCOP
draw heavily upon Microsoft’s Framework Design
Guidelines.
 The rules checked by FxCOP include: Design,
Globalization,Interoperabiliyy,Mobility,
Naming, Performance, Portability, Security,
Usage

SAMPLE METADATA XML
POSSIBILITIES








Ensure that the names of controls on forms and web
pages follow your naming conventions.
Check that your preferred controls, components, and
classes are used instead of alternatives.
Inspect literal arguments values being passed to your
methods.
Examine control structures, such as conditions and
loops, to evaluate code metrics.
Determine the callers and callees of methods.
Spell-check text elements such as identifiers, literals,
and resource strings.
Verify that elements are properly documented with
XML documentation comments.
Build standalone tools that take advantage of FxCOP
code analysis APIs
USING FXCOP

Recall that FxCOP checks compiled assemblies. Prior to running
FxCOP, you need to compile the program that you want to check.
SUMMARY
FxCOP is a free static code analysis tool from
Microsoft that checks .NET managed code
assemblies for conformance to Microsoft's .NET
Framework Design Guidelines
 FxCOP analyzes the compiled object code, not the
original source code
 FxCOP includes both GUI and command line
versions of the tool
 FxCOP ensures that the specified rules are used
in the source code.

Download