A. SecureAssistは、CWE Top 25に挙げられている問題に対応しています。またより詳細なエラーの発生リスクも軽減します。
CWEとは、「共通脆弱性タイプ一覧」(Common Weakness Enumeration)と解説されることがあります(IPA)。これはソフトウェアにおけるセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準を目指すものです。CWE/SANS Top 2011 “2011 CWE/SANS Top 25 Most Dangerous Software Errors” すなわち、「2011年版 Common Weakness Enumeration/SANS トップ25最も危険性の高いソフトウェア(プログラミング)のエラー」は、OWASP Top 10と並んでよく参照される、セキュア開発に不可欠な情報を含む示唆に富む一覧です。
このトップ25は、SANSによると、3つのカテゴリに分類できます。
- コンポーネント間のインタラクションがセキュアでない (6 errors)
- リスクの高いリソースマネージメント (8 errors)
- 抜けの多い防御 (11 errors)
カテゴリ1 コンポーネント間のインタラクションがセキュアでない (6 errors)
- CWE-89 Improper Neutralization of Special Elements used in an SQL Command (‘SQL
- CWE-78 Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’)
- CWE-79 Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
- CWE-434 Unrestricted Upload of File with Dangerous Type
- CWE-352 Cross-Site Request Forgery (CSRF)
- CWE-601 URL Redirection to Untrusted Site (‘Open Redirect’)
カテゴリ2 リスクの高いリソースマネージメント (8 errors)
- CWE-120 Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’)
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’)
- CWE-494 Download of Code Without Integrity Check
- CWE-829 Inclusion of Functionality from Untrusted Control Sphere
- CWE-676 Use of Potentially Dangerous Function
- CWE-131 Incorrect Calculation of Buffer Size
- CWE-134 Uncontrolled Format String
- CWE-190 Integer Overflow or Wraparound
カテゴリ3 抜けの多い防御(11 errors)
- CWE-306 Missing Authentication for Critical Function
- CWE-862 Missing Authorization
- CWE-798 Use of Hard-coded Credentials
- CWE-311 Missing Encryption of Sensitive Data
- CWE-807 Reliance on Untrusted Inputs in a Security Decision
- CWE-250 Execution with Unnecessary Privileges
- CWE-863 Incorrect Authorization
- CWE-732 Incorrect Permission Assignment for Critical Resource
- CWE-327 Use of a Broken or Risky Cryptographic Algorithm
- CWE-307 Improper Restriction of Excessive Authentication Attempts
- CWE-759 Use of a One-Way Hash without a Salt
SecureAssistは、これらの問題がコーディング中に混入しないよう、またコードの中に潜んでいるこのようなエラーを直接指摘し、修正を促します。あるいは間接的に成立可能性を軽減できます。間接的にというのは、あるエラーは、より詳細な複数のエラーの同時に成立することにより出現しますが、そのようなより下位のエラーの発生を詳細に防ぐことにより、有効性を発揮します。
また、さらに個別のCWEへの対応を示します。以下のCWE項目について、実際のテスト項目ならびにSecureAssistが示す修正ガイドにより、コーディングに混入するエラーのリスクを軽減することに貢献します。
- CWE-11: ASP.NET Misconfiguration
- CWE-20: Improper Input Validation
- CWE-22: Improper Limitation of a Pathname to a Restricted Directory(‘Path Traversal’)
- CWE-78: Improper Sanitization of Special Elements used in an OS Command (‘OS Command Injection’)
- CWE-79: Failure to Preserve Web Page Structure (‘Cross-site Scripting’)
- CWE-89: Improper Sanitization of Special Elements used in an SQL Command (‘SQL Injection’)
- CWE-90: Improper Neutralization of Special Elements used in an LDAP Query (‘LDAP Injection’)
- CWE-101: Struts Validation Problems
- CWE-112: Missing XML Validation
- CWE-113: Improper Neutralization of CRLF Sequences
- CWE-116: Improper encoding or escaping
- CWE-117: Improper Output Sanitization for Logs
- CWE-120: Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’)
- CWE-200: Information Exposure
- CWE-209: Information Exposure Through an Error Message
- CWE-264: Permissions, Privileges, and Access Controls
- CWE-319: Cleartext Transmission of Sensitive Information
- CWE-325: Missing Required Cryptographic Step
- CWE-327: Use of a Broken or Risky Cryptographic Algorithm
- CWE-328: Reversible One-Way Hash
- CWE-330: Use of Insufficiently Random Values
- CWE-359: Exposure of Private Information
- CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization (‘Race Condition’)
- CWE-377: Insecure Temporary File
- CWE-388: Error Handling
- CWE-400: Resource exhaustion
- CWE-404: Improper Resource Shutdown or Release
- CWE-425: Direct Request (‘Forced Browsing’)
- CWE-459: Incomplete Cleanup
- CWE-472: External control of immutable web parameter
- CWE-521: Weak Password Requirements
- CWE-532: Information Exposure Through Log Files
- CWE-534: Information Exposure Through Debug Log Files
- CWE-556: ASP.NET Misconfiguration: Use of Identity Impersonation
- CWE-565: Validation and Integrity Checking
- CWE-568: finalize() Method Without super.finalize()
- CWE-583: finalize() method declared public
- CWE-586: Explicit Call to Finalize()
- CWE-598: Information Exposure Through Query Strings in GET Request
- CWE-601: URL Redirection to Untrusted Site (‘Open Redirect’)
- CWE-613: Insufficient Session Expiration
- CWE-614: Sensitive Cookie in HTTPS Session Without ‘Secure’ Attribute
- CWE-615: Information Leak Through Comments
- CWE-643: Improper Neutralization of Data within XPath Expressions (‘XPath injection’)
- CWE-657: Violation of Secure Design Principles
- CWE-710: Coding Standards Violation
- CWE-730: OWASP Top Ten 2004 Category A9 – Denial of Service
- CWE-776: Unrestricted Recursive Entity References in DTDs (‘XML Bomb’)
- CWE-798: Use of hard coded credentials