M. Takebe is a contributor on ISO/IEC TR 24772:2010 that is Information technology -- Programming languages -- Guidance to avoiding vulnerabilities in programming languages through language selection and use.
• Technical Report • Programming language specific vulnerabilities • Guidance to avoid or mitigate vulnerabilities • Sources are o Safety (MISRA, MISRA C++ etc) o CERT C guidelines o Ada Quality and Style Guide o JSF AV C++ Guidelines o CWE ISO/IEC TR 24772 2
Scope, 2 Ref, 3 Term 4. Concepts 5. Vulnerability issues 6. Programming language vulnerabilities 7. Application vulnerabilities 8. New vulnerabilities A. Vulnerability taxonomy and list B. Language specific template C.Ada D. C E. Python F. Ruby G.SPARK H. PHP I. Fortran ISO/IEC TR 24772 3
SC 22/WG 23 + other WG • SC 22 Structure o WG4 - COBOL o WG5 - Fortran o WG9 - Ada o WG14 - C o WG17 - Prolog o WG19 - Formal Specification Languages o WG21 - C++ o WG23 Programming Language Vulnerabilities ISO/IEC TR 24772 4
to be avoided o Body -> Language independent vulnerabilities • Intended audience o Those who are concerned with assuring the predictable execution of the software o Developers, QA, maintainer of SW system • How to use this document o Programmers to learn vul of unfamiliar lang o Tool vendors to identify vul label to implement in the tools o Reference to write coding guidelines @organization ISO/IEC TR 24772 6
• Data representation o Data type, Bit representation, Floating point, Numeric conversion, String termination, Buffer boundary, Null Pointer etc • Machine dependent • Independent from Usage ISO/IEC TR 24772 8
[XZL] 17. Sensitive Information Uncleared Before Use [XZK] 18. Path Traversal [EWR] 19. Missing Required Cryptographic Step [XZS] 20. Insufficiently Protected Credentials [XYM] 21. Missing or Inconsistent Access Control [XZN] 22. Authentication Logic Error [XZO] 23. Hard-coded Password [XYP] 24. Download of Code Without Integrity Check [DLB] 25. Incorrect Authorization [BJE] 26. Inclusion of Functionality from Untrusted Control Sphere [DHU] 27. Improper Restriction of Excessive Authentication Attempts [WPL] 28. URL Redirection to Untrusted Site ('Open Redirect') [PYQ] 29. Use of a One-Way Hash without a Salt [MVX] ISO/IEC TR 24772 14
Covered CWE top 25 • OWASP top 10 is tightly linked with CWE top 25 • OWASP is being incorporated • ISO/IEC JTC 1 SC 22/WG 23 appreciates mutual cooperative relationship or liaison, if possible ISO/IEC TR 24772 17