CSC/ECE 517 Fall 2009/wiki1b 8 va: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Added in the list of errors)
m (Converted minuses to asterisks to make bulleted lists)
Line 1: Line 1:
***
+++
Remove these lines between the *** when done, this is to keep us on track:  
Remove these lines between the +++ when done, this is to keep us on track:  
_________ Note: the blanks are indications of where more work needs to be done
_________ Note: the blanks are indications of where more work needs to be done
() indicates things we need to consider / work on
() indicates things we need to consider / work on
Line 6: Line 6:
Wiki topic:
Wiki topic:
Today’s web developers must absolutely consider application security as they develop and deploy web applications. At the start of this year, several organizations jointly released a list of “the 25 Most Dangerous Programming Errors and How to Fix Them.” Show how the design of Ruby and Rails helps mitigate these common errors. How do Ruby and Rails compare to other Web frameworks in defending against these problems?
Today’s web developers must absolutely consider application security as they develop and deploy web applications. At the start of this year, several organizations jointly released a list of “the 25 Most Dangerous Programming Errors and How to Fix Them.” Show how the design of Ruby and Rails helps mitigate these common errors. How do Ruby and Rails compare to other Web frameworks in defending against these problems?
***
+++




Line 12: Line 12:


Built in features:
Built in features:
- Largely automated design
* Largely automated design
- duck typing ______ (this can be a good or bad thing)
* duck typing ______ (this can be a good or bad thing)


Tools and plugins: (Is this outside the scope, revisit later, lets get the basics down first) _______
Tools and plugins: (Is this outside the scope, revisit later, lets get the basics down first) _______
- Cucumber - Outside in test: (elaborate, add link) ________
* Cucumber - Outside in test: (elaborate, add link) ________
- Tarantula - A web site that tests applications for common vulnerabilities (add link) _____
* Tarantula - A web site that tests applications for common vulnerabilities (add link) _____




Line 23: Line 23:


CATEGORY: Insecure Interaction Between Components  
CATEGORY: Insecure Interaction Between Components  
   - CWE-20: Improper Input Validation  
   * CWE-20: Improper Input Validation  
     Ruby: duck typing? ______
     Ruby: duck typing? ______
   - CWE-116: Improper Encoding or Escaping of Output  
   * CWE-116: Improper Encoding or Escaping of Output  
   - CWE-89: Failure to Preserve SQL Query Structure (aka 'SQL Injection')  
   * CWE-89: Failure to Preserve SQL Query Structure (aka 'SQL Injection')  
   - CWE-79: Failure to Preserve Web Page Structure (aka 'Cross-site Scripting')  
   * CWE-79: Failure to Preserve Web Page Structure (aka 'Cross-site Scripting')  
   - CWE-78: Failure to Preserve OS Command Structure (aka 'OS Command Injection')  
   * CWE-78: Failure to Preserve OS Command Structure (aka 'OS Command Injection')  
   - CWE-319: Cleartext Transmission of Sensitive Information  
   * CWE-319: Cleartext Transmission of Sensitive Information  
   - CWE-352: Cross-Site Request Forgery (CSRF)  
   * CWE-352: Cross-Site Request Forgery (CSRF)  
   - CWE-362: Race Condition  
   * CWE-362: Race Condition  
   - CWE-209: Error Message Information Leak  
   * CWE-209: Error Message Information Leak  


CATEGORY: Risky Resource Management  
CATEGORY: Risky Resource Management  
   - CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer  
   * CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer  
   - CWE-642: External Control of Critical State Data  
   * CWE-642: External Control of Critical State Data  
   - CWE-73: External Control of File Name or Path
   * CWE-73: External Control of File Name or Path
   - CWE-426: Untrusted Search Path  
   * CWE-426: Untrusted Search Path  
   - CWE-94: Failure to Control Generation of Code (aka 'Code Injection')  
   * CWE-94: Failure to Control Generation of Code (aka 'Code Injection')  
   - CWE-494: Download of Code Without Integrity Check  
   * CWE-494: Download of Code Without Integrity Check  
   - CWE-404: Improper Resource Shutdown or Release  
   * CWE-404: Improper Resource Shutdown or Release  
   - CWE-665: Improper Initialization  
   * CWE-665: Improper Initialization  
   - CWE-682: Incorrect Calculation  
   * CWE-682: Incorrect Calculation  


CATEGORY: Porous Defenses  
CATEGORY: Porous Defenses  
   - CWE-327: Use of a Broken or Risky Cryptographic Algorithm  
   * CWE-327: Use of a Broken or Risky Cryptographic Algorithm  
   - CWE-259: Hard-Coded Password  
   * CWE-259: Hard-Coded Password  
   - CWE-732: Insecure Permission Assignment for Critical Resource  
   * CWE-732: Insecure Permission Assignment for Critical Resource  
   - CWE-330: Use of Insufficiently Random Values  
   * CWE-330: Use of Insufficiently Random Values  
   - CWE-250: Execution with Unnecessary Privileges  
   * CWE-250: Execution with Unnecessary Privileges  
   - CWE-602: Client-Side Enforcement of Server-Side Security  
   * CWE-602: Client-Side Enforcement of Server-Side Security  




References: ______ (properly structure resources)
References: ______ (properly structure resources)


- CSC 517
* CSC 517
- http://www.sans.org/top25errors/#s4 - Lists top 25 errors by category
* http://www.sans.org/top25errors/#s4 - Lists top 25 errors by category

Revision as of 22:33, 17 September 2009

+++ Remove these lines between the +++ when done, this is to keep us on track: _________ Note: the blanks are indications of where more work needs to be done () indicates things we need to consider / work on

Wiki topic: Today’s web developers must absolutely consider application security as they develop and deploy web applications. At the start of this year, several organizations jointly released a list of “the 25 Most Dangerous Programming Errors and How to Fix Them.” Show how the design of Ruby and Rails helps mitigate these common errors. How do Ruby and Rails compare to other Web frameworks in defending against these problems? +++


    Security errors are a major problem in today's applications.  Ruby on Rails has many features that automatically prevent security holes.  There are additional tools and plugins for Ruby and Rails that can reduce the risks.

Built in features:

  • Largely automated design
  • duck typing ______ (this can be a good or bad thing)

Tools and plugins: (Is this outside the scope, revisit later, lets get the basics down first) _______

  • Cucumber - Outside in test: (elaborate, add link) ________
  • Tarantula - A web site that tests applications for common vulnerabilities (add link) _____


Common security errors and their mitigations: ____ (Should we summarize the list later? This may be copying too much from the site http://www.sans.org/top25errors/#s4. Perhaps we don't need to show the mitigation of each error, just how certain features mitigate certain errors. Perhaps we could make a table)

CATEGORY: Insecure Interaction Between Components

 * CWE-20: Improper Input Validation 
   Ruby: duck typing? ______
 * 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') 
 * 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 

CATEGORY: Risky Resource Management

 * CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer 
 * 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 Code Without Integrity Check 
 * CWE-404: Improper Resource Shutdown or Release 
 * CWE-665: Improper Initialization 
 * CWE-682: Incorrect Calculation 

CATEGORY: Porous Defenses

 * 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 


References: ______ (properly structure resources)