Q. SecureAssistはCWEに挙げられているどんなコードの脆弱性に対応していますか。

cwe_logo.jpg

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つのカテゴリに分類できます。

  1. コンポーネント間のインタラクションがセキュアでない (6 errors)
  2. リスクの高いリソースマネージメント (8 errors)
  3. 抜けの多い防御 (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