Entre as empresas e entidades que fizeram parte deste esforço, destacam-se a Symantec, Microsoft, Oracle, Secunia, VeriSign, RSA, Red Hat, a NSA (National Security Agency), o DHS (US Department of Homeland Security), o OWASP, a University of California at Davis e a Purdue University. O MITRE e o SANS Institute foram responsável por coordenar a iniciativa.
São falhas normalmente cometidas pelos desenvolvedores de software que causam os principais problemas de segurança nas aplicações web. A lista está disponibilizada no site do SANS, juntamente com as orientações sobre o que são e como evitar estes erros. Os 25 principais problemas selecionados pelos especialistas, divididos em 3 categorias, são os seguintes:
- CATEGORY: Insecure Interaction Between Components
- CWE-20: Improper Input Validation
- CWE-116: Improper Encoding or Escaping of Output
- CWE-89: Failure to Preserve SQL Query Structure (aka 'SQL Injection')
- CWE-79: Failure to Preserve Web Page Structure (aka 'Cross-site Scripting' - XSS)
- CWE-78: Failure to Preserve OS Command Structure (aka 'OS Command Injection')
- CWE-319: Cleartext Transmission of Sensitive Information
- CWE-352: Cross-Site Request Forgery (CSRF)
- CWE-362: Race Condition
- CWE-209: Error Message Information Leak
- CWE-20: Improper Input Validation
- CATEGORY: Risky Resource Management
- CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer [Buffer overflows]
- CWE-642: External Control of Critical State Data
- CWE-73: External Control of File Name or Path
- CWE-426: Untrusted Search Path
- CWE-94: Failure to Control Generation of Code (aka 'Code Injection')
- CWE-494: Download of [third-party] Code Without Integrity Check
- CWE-404: Improper Resource Shutdown or Release
- CWE-665: Improper Initialization
- CWE-682: Incorrect Calculation [over the inputs that are used in numeric calculations]
- CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer [Buffer overflows]
- CATEGORY: Porous Defenses
- CWE-285: Improper Access Control (Authorization)
- CWE-327: Use of a Broken or Risky Cryptographic Algorithm
- CWE-259: Hard-Coded Password
- CWE-732: Insecure Permission Assignment for Critical Resource
- CWE-330: Use of Insufficiently Random Values
- CWE-250: Execution with Unnecessary Privileges
- CWE-602: Client-Side Enforcement of Server-Side Security
- CWE-285: Improper Access Control (Authorization)
Esta lista, apresentada com detalhes no site do SANS pode ser de grande utilidade para auxiliar desenvolvedores e auditores de código. Esta não é a primeira nem a única tentativa de orientar os desenvolvedores sobre como desenvolver metodologias de codificação segura (ou pelo menos apresentar algum recurso simples e didático para orientá-los sobre as principais falhas que costumam ocasionar bugs de segurança). Uma ótima fonte de informações, que eu já comentei anteriormente, é o projeto OWASP (Open Web Application Security Project).
Nenhum comentário:
Postar um comentário