Use the Microsoft Security Rules rule set for legacy code analysis to maximize the number of potential security issues that are reported.
| Rule | Description |
|---|---|
| CA2100 | Review SQL queries for security vulnerabilities |
| CA2102 | Catch non-CLSCompliant exceptions in general handlers |
| CA2103 | Review imperative security |
| CA2104 | Do not declare read only mutable reference types |
| CA2105 | Array fields should not be read only |
| CA2106 | Secure asserts |
| CA2107 | Review deny and permit only usage |
| CA2108 | Review declarative security on value types |
| CA2109 | Review visible event handlers |
| CA2111 | Pointers should not be visible |
| CA2112 | Secured types should not expose fields |
| CA2114 | Method security should be a superset of type |
| CA2115 | Call GC.KeepAlive when using native resources |
| CA2116 | APTCA methods should only call APTCA methods |
| CA2117 | APTCA types should only extend APTCA base types |
| CA2118 | Review SuppressUnmanagedCodeSecurityAttribute usage |
| CA2119 | Seal methods that satisfy private interfaces |
| CA2120 | Secure serialization constructors |
| CA2121 | Static constructors should be private |
| CA2122 | Do not indirectly expose methods with link demands |
| CA2123 | Override link demands should be identical to base |
| CA2124 | Wrap vulnerable finally clauses in outer try |
| CA2126 | Type link demands require inheritance demands |
| CA2130 | Security critical constants should be transparent |
| CA2131 | Security critical types may not participate in type equivalence |
| CA2132 | Default constructors must be at least as critical as base type default constructors |
| CA2133 | Delegates must bind to methods with consistent transparency |
| CA2134 | Methods must keep consistent transparency when overriding base methods |
| CA2135 | Level 2 assemblies should not contain LinkDemands |
| CA2136 | Members should not have conflicting transparency annotations |
| CA2137 | Transparent methods must contain only verifiable IL |
| CA2138 | Transparent methods must not call methods with the SuppressUnmanagedCodeSecurity attribute |
| CA2139 | Transparent methods may not use the HandleProcessCorruptingExceptions attribute |
| CA2140 | Transparent code must not reference security critical items |
| CA2141 | Transparent methods must not satisfy LinkDemands |
| CA2142 | Transparent code should not be protected with LinkDemands |
| CA2143 | Transparent methods should not use security demands |
| CA2144 | Transparent code should not load assemblies from byte arrays |
| CA2145 | Transparent methods should not be decorated with the SuppressUnmanagedCodeSecurityAttribute |
| CA2146 | Types must be at least as critical as their base types and interfaces |
| CA2147 | Transparent methods may not use security asserts |
| CA2149 | Transparent methods must not call into native code |
| CA2210 | Assemblies should have valid strong names |
| CA2300 | Do not use insecure deserializer BinaryFormatter |
| CA2301 | Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder |
| CA2302 | Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize |
| CA2305 | Do not use insecure deserializer LosFormatter |
| CA2310 | Do not use insecure deserializer NetDataContractSerializer |
| CA2311 | Do not deserialize without first setting NetDataContractSerializer.Binder |
| CA2312 | Ensure NetDataContractSerializer.Binder is set before deserializing |
| CA2315 | Do not use insecure deserializer ObjectStateFormatter |
| CA2321 | Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver |
| CA2322 | Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing |
| CA3001 | Review code for SQL injection vulnerabilities |
| CA3002 | Review code for XSS vulnerabilities |
| CA3003 | Review code for file path injection vulnerabilities |
| CA3004 | Review code for information disclosure vulnerabilities |
| CA3005 | Review code for LDAP injection vulnerabilities |
| CA3006 | Review code for process command injection vulnerabilities |
| CA3007 | Review code for open redirect vulnerabilities |
| CA3008 | Review code for XPath injection vulnerabilities |
| CA3009 | Review code for XML injection vulnerabilities |
| CA3010 | Review code for XAML injection vulnerabilities |
| CA3011 | Review code for DLL injection vulnerabilities |
| CA3012 | Review code for regex injection vulnerabilities |
| CA5358 | Do Not Use Unsafe Cipher Modes |
| CA5403 | Do not hard-code certificate |